본문 바로가기
카테고리 없음

AI 비서는 이미 코드 작성방식을 어떻게 바꾸고 있나 Copilot GPT python

by EasyGPT 2023. 12. 19.
반응형

How AI assistants are already changing the way code gets made

AI 비서는 이미 코드 작성방식을 어떻게 바꾸고 있나

AI 코딩 도우미는 여전히 존재하지만, 얼마나 큰 차이를 만들어내는지는 아직 불분명합니다.

AI coding assistants are here to stay—but just how big a difference they make is still unclear.

By Will Douglas Heavenarchive page

December 6, 2023

'어시스턴트'로 우주비행사를 꿈꾸는 잠자는 소년 코드 윈도우를 꿈꾸는 우주 헬멧에

STEPHANIE ARNETT/MITTR | GETTY

Noah Gift는, 올봄 Duke University, North Carolina에서 코딩수업을 시작한 지 2주 만에 학생들에게 자신이 준 강의자료를 버리라고 말했습니다.

이제 학생들은 가장 인기 있는 입문용 프로그래밍 언어 중 하나인 Python을 사용하는 대신 더 새롭고 강력하며 배우기 훨씬 어려운 언어인 Rust를 사용하게 됩니다.

Two weeks into the coding class he was teaching at Duke University in North Carolina this spring, Noah Gift told his students to throw out the course materials he’d given them. Instead of working with Python, one of the most popular entry-level programming languages, the students would now be using Rust, a language that was newer, more powerful, and much harder to learn.

25년 경력의 소프트웨어 개발자 Gift는 이제 막 Rust를 직접 배웠습니다.

그러나 그는 학생들이 마지막 순간에 교체해도 괜찮을 것이라고 확신했습니다.

OpenAI의 최신 대규모 언어모델 GPT-3.5 및 GPT-4를 기반으로 구축된 컴퓨터코드용 터보차저 자동완성 기능인 Copilot이라는 AI 도구인 특별한 새로운 조수도 각자 얻게 되었기 때문입니다.

Gift, a software developer with 25 years of experience, had only just learned Rust himself. But he was confident his students would be fine with the last-minute switch-up. That’s because they’d also each get a special new sidekick: an AI tool called Copilot, a turbocharged autocomplete for computer code, built on top of OpenAI’s latest large language models, GPT-3.5 and GPT-4.

Copilot은 1억 명 이상의 프로그래머가 사용하는 온라인 소프트웨어 개발 플랫폼을 운영하는 회사인 GitHub에서 제작했습니다.

이 도구는 사용자가 입력하는 모든 키 입력을 모니터링하고, 즉시 수행하려는 작업을 예측하며, 이를 수행하는 데 사용할 수 있는 논스톱 코드 조각 스트림을 제공합니다.

GitHub의 모회사인 Microsoft의 지인으로부터 Copilot에 대한 이야기를 들었던 Gift는 단번에 그 잠재력을 보았습니다.

Copilot is made by GitHub, a firm that runs an online software development platform used by more than 100 million programmers. The tool monitors every keystroke you make, predicts what you are trying to do on the fly, and offers up a nonstop stream of code snippets you could use to do it. Gift, who had been told about Copilot by someone he knew at GitHub’s parent company, Microsoft, saw its potential at once.

“Copilot이 없었다면 Rust를 그렇게 빨리 배울 수 없었을 겁니다”라고 그는 말합니다.

“기본적으로 레벨 업을 시도하는 동안 내 질문에 답할 수 있는 슈퍼스마트 어시스턴트가 내 옆에 있었습니다.

수업 시간에 이 제품을 사용하기 시작해야 한다는 것은 제게는 너무나 당연했습니다.”

Gift는 혼자가 아닙니다.

컴퓨터과학 학생이나 프로그래머에게 Copilot을 사용하는지 물어보면 이제 많은 사람들이 손을 듭니다.

이 기사를 위해 인터뷰한 사람들은 모두 Copilot을 직접 사용했다고 말했습니다.

심지어 도구의 문제점을 지적한 사람들도 마찬가지였습니다.

“There’s no way I could have learned Rust as quickly as I did without Copilot,” he says. “I basically had a supersmart assistant next to me that could answer my questions while I tried to level up. It was pretty obvious to me that we should start using it in class.”

Gift isn't alone. Ask a room of computer science students or programmers if they use Copilot, and many now raise a hand. All the people interviewed for this article said they used Copilot themselves—even those who pointed out problems with the tool.

교육을 제공하는 ChatGPT와 마찬가지로 Copilot은 사람들에게 기존 작업을 수행하는 새로운 방법을 제공하여 전체 직업을 뒤바꾸고 있습니다.

Microsoft의 Visual Studio 소프트웨어(코드작성, 디버깅 및 배포를 위한 일종의 업계표준 멀티도구)용 유료 플러그인으로 패키지된 Copilot은 이 기술의 가장 매끄러운 버전입니다.

하지만 코더가 사용할 수 있는 유일한 도구는 아닙니다.

지난 8월 Meta는 GPT-4에 대한 Meta의 답변인 Llama 2를 기반으로 하는 Code Llama라는 무료 코드생성 모델을 출시했습니다.

같은 달, 이미지제작모델 Stable Diffusion을 개발한 회사 Stability AI가 StableCode를 출시했습니다.

그리고 물론 OpenAI가 처음부터 코드 작성 및 디버깅을 도울 수 있는 챗봇으로 소개한 ChatGPT도 있습니다.

Like ChatGPT with education, Copilot is upending an entire profession by giving people new ways to perform old tasks. Packaged as a paid-for plug-in for Microsoft’s Visual Studio software (a kind of industry-standard multi-tool for writing, debugging, and deploying code), Copilot is the slickest version of this tech. But it’s not the only tool available to coders. In August, Meta released a free code-generation model called Code Llama, based on Llama 2, Meta’s answer to GPT-4. The same month, Stability AI—the firm behind the image-making model Stable Diffusion—put out StableCode. And, of course, there’s ChatGPT, which OpenAI has pitched from the start as a chatbot that can help write and debug code.

Related Story

 

The inside story of how ChatGPT was built from the people who made it

ChatGPT를 만든 사람들이 들려주는 ChatGPT의 내부 이야기

문화 현상의 무대 뒤에서 우리를 안내하는 독점적 대화

Exclusive conversations that take us behind the scenes of a cultural phenomenon.

Meta에서 Code Llama 팀을 이끈 Gabriel Synnaeve는 “머신러닝 모델이 많은 사람들에게 정말 유용했던 것은 이번이 처음입니다”라고 말합니다.

"단지 괴상한 일이 아니라 실제로 유용합니다."

“It’s the first time that machine-learning models have been really useful for a lot of people,” says Gabriel Synnaeve, who led the team behind Code Llama at Meta. “It’s not just nerding out—it’s actually useful.”

Microsoft와 Google이 유사한 생성모델을 전 세계 수십억 명이 사용하는 사무용 소프트웨어에 도입하려고 하는 가운데(Microsoft는 Office 365 전체에서 Copilot을 브랜드이름으로 사용하기 시작), 이러한 도구가 프로그래머를 위해 정확히 무엇을 하는지 물어볼 가치가 있습니다.

그들은 수십 년 된 직업의 기본을 어떻게 바꾸고 있습니까?

프로그래머가 더 많은, 더 나은 소프트웨어를 만드는 데 도움이 될까요?

아니면 IP와 저작권을 둘러싼 법적 싸움에 휘말리게 될까요?

With Microsoft and Google about to stir similar generative models into office software used by billions around the world (Microsoft has started using Copilot as a brand name across Office 365), it’s worth asking exactly what these tools do for programmers. How are they changing the basics of a decades-old job? Will they help programmers make more and better software? Or will they get bogged down in legal fights over IP and copyright?

Cranking out code

표면적으로 코드를 작성하려면 일부 프로그래밍언어로 된 명령문과 지침을 텍스트 파일에 입력해야 합니다.

그런 다음 이는 컴퓨터가 실행할 수 있는 기계어 코드(바이너리의 0과 1에서 한 단계 더 높은 수준)로 변환됩니다.

실제로 프로그래머는 인터넷검색, 일반적 문제에 대한 해결방법을 찾거나 알고리즘을 작성하는 더 빠른 방법을 찾기 위해 온라인 포럼을 훑어보는 데 많은 시간을 소비합니다.

미리 작성된 기존 코드 덩어리는 용도가 변경되며, 새로운 소프트웨어는 종종 콜라주처럼 결합됩니다.

On the surface, writing code involves typing statements and instructions in some programming language into a text file. This then gets translated into machine code that a computer can run—a level up from the 0s and 1s of binary. In practice, programmers also spend a lot of time googling, looking up workarounds for common problems or skimming online forums for faster ways to write an algorithm. Existing chunks of prewritten code then get repurposed, and new software often comes together like a collage.

그러나 이러한 조회에는 시간이 걸리고 프로그래머가 생각을 코드로 변환하는 흐름에서 벗어날 수 있다고 GitHub CEO Thomas Dohmke는 말합니다.

"탭이 많이 열려 있고, 휴가를 계획하고 있고, 책을 읽고 있을 수도 있습니다.

뉴스. 마침내 필요한 텍스트를 복사하고 코드로 돌아가지만 20분이 지나서 흐름을 잃어버렸습니다.”

But these look-ups take time and let programmers out of the flow of converting thoughts into code, says Thomas Dohmke, GitHub’s CEO: “You’ve got a lot of tabs open, you’re planning a vacation, maybe you’re reading the news. At last you copy the text you need and go back to your code, but it’s 20 minutes later and you lost the flow.”

Copilot 및 이와 유사한 다른 프로그램(코드 보조자)의 핵심 아이디어는 프로그래머가 작성 중인 코드 바로 옆에 필요한 정보를 넣는 것입니다.

The key idea behind Copilot and other programs like it, sometimes called code assistants, is to put the information that programmers need right next to the code they are writing.

이 도구는 프로그래머가 작업 중인 파일은 물론 동일한 프로젝트에서 링크되거나 편집된 다른 파일의 코드와 주석(자연어로 작성된 설명 또는 메모)을 추적하고 이 모든 텍스트를 보냅니다.

Copilot 뒤의 대규모 언어모델을 프롬프트로 사용합니다. (GitHub는 OpenAI와 함께 Codex라 불리는 Copilot 모델을 공동개발. 이는 코드에 맞게 미세 조정된 대규모 언어모델)

그런 다음 Copilot은 프로그래머가 하려는 작업을 예측하고 이를 수행하기 위한 코드를 제안합니다.

The tool tracks the code and comments (descriptions or notes written in natural language) in the file that a programmer is working on, as well as other files that it links to or that have been edited in the same project, and sends all this text to the large language model behind Copilot as a prompt. (GitHub co-developed Copilot's model, called Codex, with OpenAI. It is a large language model fine-tuned on code.) Copilot then predicts what the programmer is trying to do and suggests code to do it.

코드와 Codex 사이의 이러한 왕복은 초당 여러 번 발생하며 프로그래머가 입력하면 메시지가 업데이트됩니다.

언제든지 프로그래머는 탭 키를 눌러 Copilot이 제안하는 내용을 수락하거나 무시하고 계속 입력할 수 있습니다.

This round trip between code and Codex happens multiple times a second, the prompt updating as the programmer types. At any moment, the programmer can accept what Copilot suggests by hitting the tab key, or ignore it and carry on typing.

tab button이 많이 눌리는 것 같습니다.

GitHub 사용자 데이터에 따르면 도구가 일반 출시된 지 1년 후인 6월에 GitHub와 컨설팅 회사 Keystone Strategy가 발표한 거의 백만 명의 Copilot 사용자를 대상으로 한 연구에 따르면 프로그래머는 제안의 평균 약 30%를 수락한 것으로 나타났습니다.

“작년에 Copilot은 10억 줄이 넘는 코드를 제안했고 개발자들의 승인을 받았습니다”라고 Dohmke는 말합니다.

"컴퓨터 내부에서 실행되는 것은 확률론적 앵무새가 생성한 코드입니다."

The tab button seems to get hit a lot. A study of almost a million Copilot users published by GitHub and the consulting firm Keystone Strategy in June—a year after the tool’s general release—found that programmers accepted on average around 30% of its suggestions, according to GitHub’s user data.

“In the last year Copilot has suggested—and had okayed by developers—more than a billion lines of code,” says Dohmke. “Out there, running inside computers, is code generated by a stochastic parrot.”

Copilot은 코딩의 기본 기술을 변경했습니다.

ChatGPT 또는 Stable Diffusion 같은 이미지 제작자와 마찬가지로 도구의 출력은 원하는 것과 정확히 일치하지 않는 경우가 많지만 거의 비슷할 수 있습니다.

소프트웨어개발에서 기계학습 도구 사용을 연구하는 캐나다Polytechnique Montréal 연구원 Arghavan Moradi Dakhel은 "맞을 수도 있고 아닐 수도 있지만 좋은 시작입니다."라고 말합니다.

프로그래밍은 프롬프트가 됩니다.

처음부터 코드를 작성하는 대신 작업에는 절반만 구성된 코드를 조정하고 대규모 언어 모델을 조정하여 더 많은 내용을 생성하는 작업이 포함됩니다.

Copilot has changed the basic skills of coding. As with ChatGPT or image makers like Stable Diffusion, the tool’s output is often not exactly what’s wanted—but it can be close. “Maybe it’s correct, maybe it’s not—but it’s a good start,” says Arghavan Moradi Dakhel, a researcher at Polytechnique Montréal in Canada who studies the use of machine-learning tools in software development. Programming becomes prompting: rather than coming up with code from scratch, the work involves tweaking half-formed code and nudging a large language model to produce something more on point.

하지만 Copilot은 아직 어디에나 있는 것이 아닙니다.

애플을 비롯한 일부 기업에서는 IP와 기타 개인데이터가 경쟁업체에 유출될 것을 우려해 직원들에게 이를 사용하지 말라고 요청했습니다.

대규모 소프트웨어 프로젝트에서 코드를 분석하기 위해 AI를 사용하는 Merly CEO Justin Gottschlich에게 이는 항상 거래를 중단시키는 일이 될 것입니다.

“내가 Google 또는 Intel이고 내 IP가 소스 코드라면 나는 결코 이용할 예정이다”고 말했습니다.

“내 영업 비밀도 모두 당신에게 보내면 어떨까요? 집을 떠나기 전에 바지를 입는 것은 당연한 일입니다.”

Dohmke는 이것이 주요 고객의 거부감을 인식하고 회사가 코드가 Microsoft 서버로 전송되지 않도록 기업이 사내에서 실행할 수 있는 Copilot 버전을 개발 중이라고 말했습니다.

But Copilot isn’t everywhere yet. Some firms, including Apple, have asked employees not to use it, wary of leaking IP and other private data to competitors. For Justin Gottschlich, CEO of Merly, a startup that uses AI to analyze code across large software projects, that will always be a deal-breaker: “If I’m Google or Intel and my IP is my source code, I’m never going to use it,” he says. “Why don’t I just send you all my trade secrets too? It’s just put-your-pants-on-before-you-leave-the-house kind of obvious.” Dohmke is aware this is a turn-off for key customers and says that the firm is working on a version of Copilot that businesses can run in-house, so that code isn’t sent to Microsoft’s servers.

Copilot은 또한 자신의 코드가 동의없이 모델을 훈련하는 데 사용된 것에 불만품은 프로그래머들이 제기한 소송의 중심에 있습니다.

Microsoft는 잠재적 소송을 경계하는 해당 모델 사용자에게 면책을 제공했습니다.

그러나 법적 문제가 법원에서 해결되려면 수년이 걸릴 것입니다.

Copilot is also at the center of a lawsuit filed by programmers unhappy that their code was used to train the models behind it without their consent. Microsoft has offered indemnity to users of its models who are wary of potential litigation. But the legal issues will take years to play out in the courts.

Dohmke는 낙관적이며 장점이 단점보다 더 크다고 확신합니다.

“우리는 미국, 영국, 유럽 국회의원들이 우리에게 지시하는 대로 무엇이든 조정할 것입니다”라고 그는 말합니다.

"그러나 여기에는 권리보호와 개인정보보호 사이에 중간 균형이 있으며, 인류로서 한 걸음 더 나아가고 있습니다."

그것은 CEO에게 기대할 수 있는 종류의 싸움 이야기입니다.

하지만 이는 새롭고 미지의 영역입니다.

GitHub는 더 광범위한 AI 기반 전문 비서를 위한 길을 닦을 수 있는 뻔뻔한 실험을 주도하고 있습니다.

Dohmke is bullish, confident that the pros outweigh the cons: “We will adjust to whatever US, UK, or European lawmakers tell us to do,” he says. “But there is a middle balance here between protecting rights—and protecting privacy—and us as humanity making a step forward.” That’s the kind of fighting talk you’d expect from a CEO. But this is new, uncharted territory. If nothing else, GitHub is leading a brazen experiment that could pave the way for a wider range of AI-powered professional assistants.

Code whisperer

코드 속삭이는 사람

GitHub는 OpenAI가 GPT-3을 출시한 직후인 2020년 6월부터 Copilot 작업을 시작했습니다.

프로그래머는 항상 지름길과 속도 향상을 모색해 왔습니다.

"그것은 소프트웨어 개발자가 되는 DNA의 일부입니다."라고 Dohmke는 말합니다.

"우리는 상용구 코드의 문제를 해결하고 싶었습니다.

작성하기에는 재미없지만 시간이 많이 걸리는 코드를 생성할 수 있을까요?"

GitHub started working on Copilot in June 2020, soon after OpenAI released GPT-3. Programmers have always been on the lookout for shortcuts and speedups. “It’s part of the DNA of being a software developer,” says Dohmke. “We wanted to solve this problem of boilerplate code—can we generate code that is no fun to write but takes up time?”


Related Story

ChatGPT는 교육을 파괴하는 것이 아니라 변화시킬 것입니다

ChatGPT is going to change education, not destroy it

The narrative around cheating students doesn’t tell the whole story. Meet the teachers who think generative AI could actually make learning better.

부정행위를 하는 학생에 대한 이야기가 전체 이야기를 말해주지는 않습니다.

생성 AI가 실제로 학습을 더 좋게 만들 수 있다고 생각하는 교사를 만나보세요.

그들이 뭔가에 관심을 갖게 된 첫 번째 신호는 회사의 프로그래머들에게 취업면접에서 누군가에게 물어볼 수 있는 코딩테스트를 제출하도록 요청했을 때 나타났습니다.

"여기 코드가 있습니다. 마무리하세요" GitHub는 이를 도구의 초기 버전에 제공하고 각 테스트를 150번 시도하도록 했습니다.

많은 시도를 통해 그들은 이 도구가 그 중 92%를 해결할 수 있다는 것을 발견했습니다.

그들은 GitHub의 온라인 플랫폼에서 가져온 50,000개의 문제를 가지고 다시 시도했고, 도구는 그 중 절반 이상을 해결했습니다.

"이를 통해 우리는 궁극적으로 Copilot이 될 제품을 만들 수 있다는 확신을 갖게 되었습니다"라고 Dohmke는 말합니다.

The first sign they were onto something came when they asked programmers at the company to submit coding tests that they might ask somebody at a job interview: “Here’s some code—finish it off.” GitHub gave these to an early version of the tool and let it try each test 150 times. Given that many attempts, they found that the tool could solve 92% of them. They tried again with 50,000 problems taken from GitHub’s online platform, and the tool solved just over half of them. “That gave us confidence that we could build what ultimately became Copilot,” says Dohmke.

2023년 GitHub와 Microsoft 연구원으로 구성된 팀은 소규모 연구를 통해 Copilot이 프로그래머에게 미치는 영향을 테스트했습니다.

그들은 95명에게 웹서버를 구축하도록 요청했고(사소하지 않은 작업이지만 Dohmke가 언급하는 일종의 공통 상용구코드와 관련된 작업) Copilot에 대한 절반의 액세스 권한을 부여했습니다.

Copilot을 사용하는 사람들은 평균 55% 더 빠르게 작업을 완료했습니다.

인터넷 검색의 필요성을 대체하는 강력한 AI는 유용합니다 - 하지만 이것이 게임 체인저일까요?

의견은 나뉘어져 있습니다.

In 2023, a team of GitHub and Microsoft researchers tested the impact of Copilot on programmers in a small study. They asked 95 people to build a web server (a non-trivial task, but one involving the kind of common, boilerplate code that Dohmke refers to) and gave half access to Copilot. Those using Copilot completed the task on average 55% faster.

A powerful AI that replaces the need for googling is useful—but is it a game changer? Opinion is split.

https://amzn.to/3Rvsstd

 

Keystone Strategy의 공동 창립자 Harvard Business School에서 디지털혁신을 연구하고 있는 교수 Marco Iansiti는 "제가 생각하는 방식은 숙련된 개발자가 옆에 앉아서 추천을 속삭이는 것입니다."라고 말합니다.

"예전에는 스스로 문제를 찾아야 했는데, 이제는-읭-- 자동으로 제안이 옵니다."

“The way that I would think about it is that you have an experienced developer sitting next to you whispering recommendations,” says Marco Iansiti, a Keystone Strategy cofounder and a professor at Harvard Business School, where he studies digital transformation. “You used to have to look things up on your own, and now—whammo—here comes the suggestion automatically.”

수년간 자동코드 생성작업을 진행해 온 Gottschlich는 그다지 인상적이지 않았습니다.

그는 Copilot과 같은 대규모 언어모델을 기반으로 하는 새로운 도구의 물결을 언급하면서 "솔직히 말해서 코드 도우미는 더 큰 규모의 체계에서는 별로 흥미롭지 않습니다"라고 말합니다.

“그들은 주로 인간 프로그래머가 할 수 있는 일에 묶여 있습니다.

현 단계에서는 인간프로그래머가 하는 것 이상 기적적인 일을 할 수 없을 것입니다.”

Merly의 기술이 코드에서 버그를 찾아 자체적으로 수정한다고 주장하는 Gottschlich는(하지만 작동방식에 대해서는 밝히지 않음) 더 큰 생각을 하고 있습니다.

그는 언젠가 AI가 방대하고 복잡한 코드 라이브러리를 관리하고 인간 엔지니어에게 이를 유지관리하는 방법을 지시할 것으로 예상합니다.

그러나 그는 대규모 언어모델이 해당 작업에 적합한 기술이라고 생각하지 않습니다.

Gottschlich, who has been working on automatic code generation for years, is less impressed. “To be frank, code assistants are fairly uninteresting in the larger scheme of things,” he says, referring to the new wave of tools based on large language models, like Copilot. “They are principally bound by what the human programmer is capable of doing. They’ll never likely at this stage be able to do something miraculous beyond what the human programmer is doing.”

Gottschlich, who claims that Merly’s tech finds bugs in code and fixes them by itself (but who doesn’t shed light on how that works), is thinking bigger. He sees AI one day taking on the management of vast and complex libraries of code, directing human engineers in how to maintain it. But he doesn’t think large language models are the right tech for that job.

그럼에도 불구하고 수백만 명 사람들이 항상 수행하는 작업에 작은 변화가 생기면 빠르게 늘어날 수 있습니다.

예를 들어 Iansiti는 엄청난 주장을 합니다.

그는 Copilot과 그와 같은 도구의 영향이 2030년까지 세계 경제에 1조 5천억 달러를 추가할 수 있다고 믿습니다.

학문적 추정치이지만 그보다 훨씬 더 클 수도 있습니다”라고 그는 말합니다.

“소프트웨어와 관련된 일이 너무 많습니다.

소프트웨어개발이 실제로 어떻게 작동하는지에 대해 방향을 바꾸면 경제에 무한한 영향을 미칠 것입니다.”

Even so, small changes to a task that millions of people do all the time can add up fast. Iansiti, for example, makes a huge claim: he believes that the impact of Copilot—and tools like it—could add $1.5 trillion to the global economy by 2030. “It’s more of a back-of-the-envelope thing, not really an academic estimate, but it could be a lot larger than that as well,” he says. “There’s so much stuff that hinges on software. If you move the needle on how software development really works, it will have an infinite impact on the economy.”

Iansiti에게 있어 이는 기존 개발자가 더 많은 코드를 생성하도록 하는 것만이 아닙니다.

그는 기업이 더 적은 비용으로 더 많은 코드를 얻을 수 있기 때문에 이러한 도구가 프로그래머에 대한 수요를 증가시킬 것이라고 주장합니다.

동시에 이러한 도구가 진입장벽을 낮추기 때문에 더 많은 코더가 있을 것입니다.

“우리는 소프트웨어 개발에 기여할 수 있는 사람이 확대되는 것을 보게 될 것입니다”라고 그는 말합니다.

또는 GitHub의 수석연구책임자 Idan Gazit이 말했듯이 기타를 든 사람이 바로 기본 곡을 연주할 수 있다고 상상해 보세요.

훨씬 더 많은 기타 연주자와 훨씬 더 많은 음악이 있을 것입니다.

For Iansiti, it’s not just about getting existing developers to produce more code. He argues that these tools will increase the demand for programmers because companies could get more code for less money. At the same time, there will be more coders because these tools lower the barrier to entry. “We’re going to see an expansion in who can contribute to software development,” he says.

Or as Idan Gazit, GitHub’s senior director of research, puts it: imagine if anyone who picked up a guitar could play a basic tune straight away. There would be a lot more guitar players and a lot more music.

많은 사람들은 Gift가 발견한 것처럼 Copilot을 사용하면 프로그래밍을 더 쉽게 배울 수 있다는 데 동의합니다.

“Rust는 매우 어려운 언어로 알려져 있습니다”라고 그는 말합니다.

"하지만 학생들이 얼마나 잘 해냈는지, 그리고 그들이 만든 프로젝트가 얼마나 복잡하고 유용한지 보고 기분 좋게 충격을 받았습니다."

Gift는 챗봇이 포함된 완전한 웹앱을 구축할 수 있었다고 말합니다.

그러나 모든 사람이 Gift의 강의계획서변경에 만족한 것은 아닙니다.

그는 조교 중 한 명이 신입생들에게 Copilot을 사용하지 말라고 말했습니다.

Copilot은 제대로 학습하는 데 방해가 되기 때문입니다.

Gift는 Copilot이 벗고 싶지 않을 수도 있는 보조바퀴와 같다는 점을 인정합니다.

하지만 그는 그것이 문제라고 생각하지 않습니다.

“우리는 무엇을 하려고 하는 걸까요? 우리는 복잡한 시스템을 구축하려고 노력하고 있습니다.”

그리고 이를 위해 프로그래머는 사용 가능한 모든 도구를 사용해야 한다고 그는 주장합니다.

Many agree that Copilot makes it easier to pick up programming—as Gift found. “Rust has got a reputation for being a very difficult language,” he says. “But I was pleasantly shocked at how well the students did and at the projects they built—how complex and useful they were.” Gift says they were able to build complete web apps with chatbots in them.

Not everyone was happy with Gift’s syllabus change, however. He says that one of his teaching assistants told new students not to use Copilot because it was a crutch that would stop them from learning properly. Gift accepts that Copilot is like training wheels that you might not want to take off. But he doesn’t think that’s a problem: “What are we trying to do? We’re trying to build complex systems.” And to do that, he argues, programmers should use whatever tools are available.

컴퓨팅 역사에서 프로그래머가 자신과 컴퓨터가 실행할 수 있는 기계어 코드 사이에 점점 더 많은 소프트웨어 계층에 의존해 온 것은 사실입니다.

그들은 펀치카드와 어셈블리코드에서 비교적 읽고 쓰기 쉬운 Python과 같은 프로그래밍 언어로 전환했습니다.

이러한 언어는 컴파일러라는 소프트웨어에 의해 기계어 코드로 번역되기 때문에 가능합니다.

"80년대와 90년대에 코딩을 시작했을 때도 여전히 CPU가 어떻게 작동하는지 알아야 했습니다"라고 Dohmke는 말합니다.

"이제 웹애플리케이션을 작성할 때 CPU나 웹서버는 거의 생각하지 않습니다."

It is true that the history of computing has seen programmers rely on more and more layers of software between themselves and the machine code that computers can run. They have gone from punch cards and assembly code to programming languages like Python that are relatively easy to read and write. That’s possible because such languages get translated into machine code by software called compilers. “When I started coding in the ’80s and ’90s, you still had to know how a CPU worked,” says Dohmke. “Now when you write a web application, you almost never think about the CPU or the web server.”

버그잡기 및 코드 테스트도구의 긴 목록을 추가하면 프로그래머는 대량의 자동화된 지원에 익숙해집니다.

여러 면에서 Copilot과 기타 제품은 최신 트렌드에 불과합니다.

“저는 Python이 사람이 읽을 수 있도록 작성되었기 때문에 25년 동안 Python을 사용했습니다”라고 Gift는 말합니다.

“내 생각엔 그건 더 이상 중요하지 않아요.”

그러나 그는 Copilot이 무료 이용권이 아니라고 지적합니다.

"Copilot은 당신의 능력을 반영합니다"라고 그는 말합니다.

"모든 사람의 기분을 조금이라도 올려주지만, 당신이 서투른 프로그래머라면 여전히 약점이 있을 것입니다."

Add in a long list of bug-catching and code-testing tools, and programmers are used to a large amount of automated support. In many ways, Copilot and others are just the latest wave. “I used Python for 25 years because it was written to be readable by humans,” says Gift. “In my opinion, that doesn’t matter anymore.”

But he points out that Copilot isn’t a free pass. “Copilot reflects your ability,” he says. “It lifts everyone up a little bit, but if you’re a poor programmer you’ll still have weaknesses.”

https://smartstore.naver.com/dopza/products/4569179898

Work to be done

해야 할 일

이러한 도구의 실제 영향을 평가할 때 가장 큰 문제는 대부분의 데이터 여전히 일화적이라는 것입니다.

GitHub의 연구에 따르면 프로그래머는 제안의 30%를 수락한 것으로 나타났습니다(Dohmke는 "30%는 어떤 종류의 업계 시나리오에서도 이 세상에서 벗어난 것입니다"라고 말합니다).

그러나 프로그래머가 이러한 제안을 수락하고 다른 제안을 거부한 이유는 분명하지 않습니다.

같은 연구에서는 또한 경험이 적은 프로그래머가 더 많은 제안을 받아들였으며, 프로그래머가 도구에 익숙해짐에 따라 더 많은 제안을 받아들인 것으로 나타났습니다.

그러나 다시 말하지만 그 이유는 아닙니다.

Iansiti는 “이것이 무엇을 의미하는지 이해하려면 훨씬 더 깊이 들어가야 합니다.”라고 말합니다.

"코딩 프로세스 자체가 어떻게 발전하고 있는지 실제로 이해하기 위해 수행해야 할 작업이 있으며 해당 작업은 모두 미정입니다."

Copilot 같은 도구에 대한 대부분의 독립적 연구는 제안하는 코드의 정확성에 중점을 두었습니다.

모든 대규모 언어모델과 마찬가지로 이러한 도구는 말도 안되는 결과를 생성할 수 있습니다.

코드를 사용하면 구별하기 어려울 수 있습니다.

특히 Copilot에 가장 의존하는 것처럼 보이는 경험이 적은 사용자의 경우 더욱 그렇습니다.

A big problem with assessing the true impact of such tools is that most of the data is still anecdotal. GitHub’s study showed that programmers were accepting 30% of suggestions (“30% is out of this world in any kind of industry scenario,” says Dohmke), but it is not clear why the programmers accepted those suggestions and rejected others.

The same study also revealed that less experienced programmers accepted more suggestions and that programmers accepted more suggestions as they grew used to the tool—but, again, not why. “We need to go a lot deeper to understand what that means,” says Iansiti. “There’s work to be done to really get a sense of how the coding process itself is developing, and that work is all TBD.”

Most independent studies of tools like Copilot have focused on the correctness of the code that they suggest. Like all large language models, these tools can produce nonsense. With code it can be hard to tell—especially for less experienced users, who also seem to rely on Copilot the most.

지난 몇 년 동안 여러 연구팀은 Copilot이 코드에 버그나 보안결함을 삽입할 수 있다는 사실을 발견했습니다.

GitHub는 Copilot 제안의 정확성을 개선하느라 바빴습니다.

최신 버전 도구는 사용자에게 제안하기 전에 일반적 보안 버그를 필터링하도록 훈련된 두 번째 모델을 통해 코드를 실행한다고 주장합니다.

그러나 버그 외에 다른 품질문제도 있다고 Dakhel은 말합니다.

그녀와 그녀 동료들은 Copilot이 지나치게 복잡하거나 전문가들이 모범 사례로 간주하는 것을 준수하지 않는 코드를 제안할 수 있다는 사실을 발견했습니다.

이는 복잡하거나 불분명한 코드가 다른 사람들이 읽고 확인하고 확장하기 어렵기 때문에 문제가 됩니다.

문제는 모델이 훈련데이터만큼만 좋다는 것입니다.

그리고 Copilot의 모델은 15년 전의 GitHub 온라인저장소에서 가져온 방대한 코드 라이브러리에서 훈련되었습니다.

이 코드에는 버그뿐만 아니라 코드 작성 당시 알려지지 않았던 보안 결함도 포함되어 있습니다.

여기에 경험이 없는 프로그래머가 숙련된 프로그래머보다 이 도구를 더 많이 사용한다는 사실을 추가하면 장기적으로 소프트웨어개발팀에 더 많은 작업을 수행할 수 있다고 Dakhel은 말합니다.

전문프로그래머는 비전문가가 작성한 코드를 다시 확인하는 데 더 많은 시간을 소비해야 할 수도 있습니다.

Several teams of researchers in the last couple of years have found that Copilot can insert bugs or security flaws into code. GitHub has been busy improving the accuracy of Copilot’s suggestions. It claims that the latest version of the tool runs code through a second model trained to filter out common security bugs before making a suggestion to users.

But there are other quality issues beyond bugs, says Dakhel. She and her colleagues have found that Copilot can suggest code that is overly complex or doesn’t adhere to what professionals consider best practices, which is a problem because complex or unclear code is harder for other people to read, check, and extend.

The problem is that models are only as good as their training data. And Copilot’s models were trained on a vast library of code taken from GitHub’s online repository, which goes back 15 years. This code contains not only bugs but also security flaws that were not known about when the code was written.

Add to this the fact that inexperienced programmers use the tool more than experienced ones, and it could make more work for software development teams in the long run, says Dakhel. Expert programmers may have to spend more time double-checking the code put through by non-experts.

Dakhel은 이제 전문프로그래머와 비전문프로그래머 사이 격차를 더 완전하게 연구하기를 희망합니다.

Copilot이 출시되기 전 그녀와 그녀 동료들은 기계학습을 사용하여 코드를 통해 전문프로그래머를 감지했습니다.

그러나 Copilot은 이제 코드가 전문프로그래머에 의해 작성되었는지 아니면 경험이 부족한 프로그래머가 AI 도움을 받아 작성했는지 구별하기가 더 어려워졌기 때문에 자신의 데이터를 망쳤습니다.

이제 그녀는 Copilot을 직접 사용해 본 후 자신의 접근방식을 사용하여 그것이 어떤 종류의 향상을 주는지 연구할 계획입니다.

“그런 도구를 사용하는 주니어 개발자가 전문 개발자가 될 것으로 예측되는지, 아니면 그들이 주니어 개발자라는 것이 여전히 감지될 수 있는지 궁금합니다.”라고 그녀는 말합니다.

"이 도구가 사람들에게 얼마나 큰 레벨 업을 제공하는지 측정하는 방법이 될 수 있습니다."

Dakhel now hopes to study the gap between expert and non-expert programmers more fully. Before Copilot was released, she and her colleagues were using machine learning to detect expert programmers by their code. But Copilot messed with her data because now it was harder to tell whether code had been written by an expert programmer or a less experienced one with AI help.

Now, having played around with Copilot herself, she plans to use her approach to study what kind of boost it gives. “I’m curious to know if junior developers using such a tool will be predicted to be expert developers or if it’s still detectable that they are junior developers,” she says. “It could be a way of measuring how big a level up these tools give people."

궁극적으로 심사위원단이 나오기까지 오래 기다릴 필요가 없을 수도 있습니다.

소프트웨어개발은 비즈니스 활동에 대해 가장 잘 문서화되고 철저하게 측정되는 것 중 하나입니다.

Copilot이 작동하면 사용됩니다.

그렇지 않다면 사용되지 않을 것입니다.

그 동안 이러한 도구는 점점 더 좋아지고 있습니다.

그러나 화면에 텍스트를 입력하는 프로그래밍이 소프트웨어개발의 전체 작업 중 작은 부분이라는 점은 주목할 가치가 있습니다.

여기에는 코드설계, 테스트 및 배포를 포함하여 복잡한 퍼즐의 여러 부분을 관리하는 작업이 포함됩니다.

이전의 많은 프로그램과 마찬가지로 Copilot은 해당 작업의 일부를 더 빠르게 만들 수 있지만 완전히 재발명하지는 않습니다.

Ultimately, we might not have to wait long before the jury is in. Software development is one of the most well documented and thoroughly measured of business activities. If Copilot works, it will get used. If it doesn’t, it won’t. In the meantime, these tools are getting better all the time.

Yet it is worth noting that programming—typing text onto a screen—is a small part of the overall job of software development. It involves managing multiple parts of a complex puzzle, including designing the code, testing it, and deploying it. Copilot, like many programs before it, can make parts of that job faster, but it won’t reinvent it completely.

Synnaeve는 “항상 프로그래머는 있을 것입니다”라고 말합니다.

“그들은 많은 도움을 받게 되겠지만, 결국 중요한 것은 어떤 문제를 해결해야 하는지 이해하는 것입니다.

그것을 정말 잘하고, 그것을 프로그램으로 번역하는 것, 그것이 프로그래머의 임무입니다.”

“There’s always going to be programmers,” says Synnaeve. “They will get a lot of help, but in the end what matters is understanding which problems need solving. To do that really well and translate that into a program—that’s the job of programmers.”

by Will Douglas Heaven

https://amzn.to/3Rvsstd

반응형

댓글