>기술 주변기기 >일체 포함 >그것은 성취인가, 아니면 약화인가? AI 코드 생성 도구와 프로그래머 간의 분쟁

그것은 성취인가, 아니면 약화인가? AI 코드 생성 도구와 프로그래머 간의 분쟁

PHPz
PHPz앞으로
2023-04-08 21:11:01996검색

프로그래머는 교체될 운명인가요? OpenAI의 대규모 언어 모델 GPT-3이 간단한 서면 지침을 기반으로 HTML 웹 사이트를 생성하는 놀라운 능력을 보여준 이후로 컴퓨터 프로그래밍 커뮤니티는 이 질문에 사로잡혀 왔습니다.

그 이후 몇 달 동안 자연어 설명(인간의 언어 또는 서면)을 기반으로 간단하지만 완전한 컴퓨터 프로그램을 작성하고 프로그래머의 작업 속도를 높일 수 있는 자동 프로그래밍 도우미가 등장했습니다. AI가 프로그래머의 작업을 어느 정도 대체하거나 향상시킬 수 있을까요?

IEEE Spectrum은 이에 대해 일부 전문가에게 물었고, 나쁜 소식은 프로그래밍이 대체될 운명에 처해 있다는 것입니다. 그러나 좋은 소식은 컴퓨터 프로그래밍과 소프트웨어 개발이 가까운 미래에도 인간과 관련된 작업으로 남을 것으로 보인다는 것입니다. 동시에 AI 기반 자동 코드 생성은 더 짧은 시간에 더 많은 코드를 작성할 수 있게 함으로써 소프트웨어 개발을 점점 더 가속화하고 있습니다.

Amazon AI Services 부사장 Vasi Philomin은 "AI가 인간 개발자를 완전히 대체할 것이라고는 생각하지 않습니다. AI 도구는 프로그래머를 일상 업무에서 해방시킬 수 있지만 컴퓨터 프로그래밍의 창의적인 작업은 계속 존재할 것입니다. "

10년 후 개발자가 되고 싶다면 반드시 프로그래밍 언어를 배울 필요는 없습니다. 대신, 컴퓨터 프로그램 작성의 의미, 개념 및 논리적 순서를 이해해야 하며, 이를 통해 소프트웨어 개발이 더 많은 사람들에게 공개될 것입니다.

컴퓨터 프로그래밍은 점점 더 지능화되고 자동화되고 있습니다.

전자 컴퓨터 프로그래밍이 1940년대에 시작되었을 때 프로그래머들은 디지털 기계어 코드를 사용하여 작성했습니다. 1950년대 중반이 되어서야 미국의 저명한 여성 컴퓨터 과학자인 Grace Hopper와 Remington Rand Company의 그녀 팀이 FLOW-MATIC을 개발했습니다. FLOW-MATIC은 프로그래머가 제한된 영어 어휘를 사용하여 프로그램을 작성할 수 있도록 했습니다.

그 이후로 프로그래밍 언어는 점점 더 효율적이게 되었고, 프로그래머의 작업 효율성도 더욱 높아졌습니다.

AI가 작성한 코드는 사람들이 코딩을 전혀 하지 않고도 소프트웨어를 작성할 수 있게 되면서 더 넓은 변화의 선두에 서 있습니다. 이제 사람들이 간단한 드래그 앤 드롭 및 버튼 클릭 기능을 사용하여 기계 학습 모델을 구축할 수 있는 Akkio와 같은 코드 없는 AI 개발 플랫폼이 있습니다. Microsoft의 Power Platform에는 사용자가 설명만으로 간단한 애플리케이션을 생성할 수 있는 일련의 로우 코드 제품이 포함되어 있습니다.

그것은 성취인가, 아니면 약화인가? AI 코드 생성 도구와 프로그래머 간의 분쟁

올해 6월 Amazon은 GitHub의 Copilot과 유사한 기계 학습 기반 프로그래밍 도우미인 CodeWhisperer의 미리 보기 버전을 출시했습니다. 두 도구 모두 대규모 코드 기반에서 훈련된 LLM(대형 언어 모델)을 기반으로 합니다. 프로그래머가 코드를 작성할 때 CodeWhisperer와 Copilot은 모두 자동 완성 제안을 제공하고 간단한 자연어 구문을 기반으로 실행 가능한 지침을 제안합니다.

그것은 성취인가, 아니면 약화인가? AI 코드 생성 도구와 프로그래머 간의 분쟁

며칠 전 GitHub는 2,000명의 개발자를 대상으로 설문 조사를 실시한 결과 Copilot이 일부 코딩 작업에 소요되는 시간을 절반으로 단축하고 개발자의 작업에 대한 전반적인 만족도를 높인 것으로 나타났습니다.

코드 자동 완성을 넘어서는 것은 쉽지 않습니다

하지만 자동 완성 이상의 것을 원한다면 문제는 컴퓨터에 의도를 가르치는 데 있습니다. 소프트웨어 요구사항은 모호한 경우가 많으며 자연어는 매우 부정확합니다.

영국의 인공지능 스타트업인 Diffblue는 AI를 사용하여 코드를 확인하고 수정하는 데 전념하고 있습니다. 공동 창업자 중 한 명인 Peter Schrammel은 영어 작문 표준의 모호성을 해결하려면 다음과 같이 해야 한다고 말했습니다. 점진적인 개선을 통해 인간과 기계 간의 대화를 시작해 보세요.

이러한 문제를 해결하기 위해 Microsoft 연구진은 최근 LLM 기반 코드 생성에 피드백 메커니즘을 추가하여 컴퓨터가 코드를 생성하기 전에 프로그래머에게 모호성을 명확히 하도록 요청할 것을 제안했습니다. TiCoder라고 하는 Microsoft의 대화형 시스템은 "TDUIF(테스트 기반 사용자 의도 형식화)"를 생성하여 사용자 의도를 구체화하고 공식화합니다.

TDUIF는 반복 피드백을 사용하여 프로그래머의 알고리즘 의도를 파악한 다음 프로그래머가 표현한 의도와 일치하는 코드를 생성하려고 시도합니다. 아래 그림은 TDUIF의 작업 흐름을 보여줍니다.

그것은 성취인가, 아니면 약화인가? AI 코드 생성 도구와 프로그래머 간의 분쟁

논문 주소: https://arxiv.org/abs/2208.05950

관련 논문에 따르면 MBPP(Mostly Basic 프로그래밍 문제) 벤치마크에서 평가한 결과 TiCoder 자동 생성된 코드의 정확도가 48%에서 85%로 향상되었습니다. 기계 생성 코드를 평가하도록 설계된 MBPP는 초급 프로그래머가 해결해야 하는 약 1,000개의 크라우드소싱 Python 프로그래밍 문제로 구성됩니다.

코드 단위는 수백 줄이 될 수 있으며, 독립적으로 유지 관리되고 실행될 수 있는 프로그램의 가장 작은 부분입니다. 단위 테스트 모음은 일반적으로 각각 10~20줄의 코드가 포함된 수십 개의 단위 테스트로 구성됩니다. 이 테스트는 단위가 예상대로 작동하는지 확인하므로 단위를 서로 쌓을 때 프로그램이 예상대로 작동합니다.

단위 테스트는 개별 기능을 디버깅하고 코드를 수동으로 변경할 때 오류를 감지하는 데 매우 유용합니다. 또한 단위 테스트는 코드 단위에 대한 사양 역할을 하며 프로그래머가 깨끗하고 버그 없는 코드를 작성하도록 안내하는 역할을 합니다. 단위 테스트를 먼저 작성하는 진정한 테스트 기반 개발을 추구하는 프로그래머는 많지 않지만, 단위 테스트는 단위와 함께 작성되는 경우가 많습니다.

전문가들은 AI 코드 생성으로 인해 인간 프로그래머가 일자리를 잃지 않을 것이라고 믿습니다.

2019 Diffblue 개발자 설문 조사 결과에 따르면 개발자는 프로덕션용 작성 대신 품질 관리 테스트 작성에 시간의 약 35%를 소비합니다. 따라서 이 작업 부분을 자동화하면 생산성이 크게 향상될 수 있습니다.

동시에 Copilot, CodeWhisperer 및 기타 AI 프로그래밍 보조 패키지를 단위 테스트 작성을 위한 대화형 자동 완성 도구로 사용할 수 있습니다. 프로그래머는 코딩 제안을 받고 가장 적합한 코딩을 선택합니다.

올해 2월 DeepMind는 완전히 자동화된 코드 생성을 위해 AlphaCode를 추가로 사용했습니다. AlphaCode는 자연어 명령을 기반으로 간단한 컴퓨터 프로그램을 작성할 수 있는 대규모 언어 모델입니다. 먼저 문제에 대한 자연어 설명을 인코딩한 다음 결과 벡터를 솔루션에 필요한 코드로 디코딩하는 인코더-디코더 Transformer 아키텍처를 사용합니다.

그것은 성취인가, 아니면 약화인가? AI 코드 생성 도구와 프로그래머 간의 분쟁

알파코드 개요. 이미지 출처: https://arxiv.org/pdf/2203.07814.pdf

모델은 합리적으로 보이는 코드를 생성할 수 있을 때까지 GitHub 저장소에서 먼저 훈련되었습니다. 모델을 미세 조정하기 위해 DeepMind는 15,000쌍의 자연어 문제 설명과 이전 프로그래밍 대회의 성공적인 코드 솔루션을 사용하여 입출력 예제의 전용 데이터 세트를 만들었습니다.

AlphaCode가 훈련되고 미세 조정되면 이전에 본 적이 없는 문제에 대해 테스트할 수 있습니다. 마지막 단계는 많은 수의 솔루션을 생성한 다음 필터링 알고리즘을 사용하여 최상의 솔루션을 선택하는 것입니다. DeepMind의 딥러닝 팀장인 Oriol Vinyals는 언어 모델을 거의 백만 번 샘플링하여 다양한 프로그램을 만들었다고 믿습니다.

샘플 선택 프로세스를 최적화하기 위해 DeepMind는 클러스터링 알고리즘을 사용하여 솔루션을 그룹화합니다. 클러스터링 프로세스는 실행 가능한 솔루션을 그룹화하는 경향이 있으므로 프로그래머가 작성한 대로 작동할 가능성이 있는 후보의 작은 하위 집합을 더 쉽게 찾을 수 있습니다.

시스템을 테스트하기 위해 DeepMind는 인기 있는 Codeforces 플랫폼의 인간 프로그래밍 대회에 AlphaCode가 작성한 10개의 프로그램을 제출했으며 솔루션 순위는 상위 54%에 들었습니다.

최근 인터뷰에서 오리올 비냘스는 "프로그램을 만들려면 코딩하지 않고 그냥 자연어로 작성하면 반대편에서 해결책이 나오나요?"라고 수사적으로 질문했다. , 이 목표를 달성하려면 시간이 걸리며 아마도 수십 년이 걸릴 것이라고 주장합니다.

유명한 AI 학자인 Landing AI 창립자이자 CEO인 Andrew Ng는 사람이 컴퓨터에게 임의로 복잡한 컴퓨터 프로그램을 작성하고 자동으로 코딩을 완료하라고 지시할 수 있는 능력은 아직 멀었다고 말했습니다.

그러나 불과 몇 년 만에 AI 코드 생성이 얼마나 빠르게 진행되었는지를 고려하면, AI 시스템이 결국 자연어 명령을 기반으로 코드를 작성할 수 있게 되는 것은 피할 수 없는 진화 추세로 보입니다. 그리고 손으로 프로그래밍하는 소프트웨어 프로그램은 점점 손으로 뜨개질하는 스웨터와 비슷해질 것입니다.

컴퓨터에 자연어 지침을 제공하기 위해 개발자는 여전히 일부 논리적, 기능적 개념과 구조화 방법을 이해해야 합니다. 개발자가 특정 프로그래밍 언어를 배우지 않거나 컴퓨터 코드를 작성하지 않더라도 프로그래밍의 기본을 배워야 합니다. 결과적으로 이는 더 많은 프로그래머가 점점 더 다양한 소프트웨어를 만들 수 있게 해줄 것입니다.

Vasi Philomin은 AI가 인간 개발자를 대체할 것이라고 믿지 않는다고 말했습니다. AI는 개발자가 수행해야 하는 비천하고 일상적인 작업을 제거하여 더 가치 있는 일에 집중할 수 있도록 해줍니다.

Peter Schrammel은 또한 AI 자동 코드 생성을 통해 소프트웨어 개발자가 더 어렵고 도전적인 작업에 집중할 수 있다는 데 동의합니다. 하지만 적어도 기계가 이해하는 것이 인간의 의도인지는 확인이 필요하다고 덧붙였다.

그는 또한 소프트웨어 개발자가 자동화된 코딩 도구로 대체되기 때문에 일자리를 잃지 않을 것이며 작성할 소프트웨어가 항상 더 많아질 것이라고 말했습니다.

위 내용은 그것은 성취인가, 아니면 약화인가? AI 코드 생성 도구와 프로그래머 간의 분쟁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제