AI가 개발자 생산성에 미치는 영향: GitHub Copilot 증거
AI가 개발자 생산성에 미치는 영향: GitHub Copilot 증거
초록
생성 AI 도구는 인간의 생산성을 높일 수 있습니다. 이 논문은 AI 쌍 프로그래머인 GitHub Copilot을 사용한 통제된 실험의 결과를 제시합니다. 채용된 소프트웨어 개발자는 가능한 한 빨리 JavaScript로 HTTP 서버를 구현하도록 요청받았습니다. AI 쌍 프로그래머에 접근할 수 있는 실험군(treatment group)은 대조군(control group)보다 55.8% 더 빨리 작업을 완료했습니다. 관찰된 이기종 효과는 AI 쌍 프로그래머가 사람들이 소프트웨어 개발 경력으로 전환하는 데 도움이 될 가능성을 보여줍니다.
소개
인공 지능(AI) 응용 프로그램은 인간의 생산성을 높일 수 있습니다. 다양한 AI 모델은 자연어 이해에서 이미지 인식에 이르는 분야에서 인간 수준의 능력을 입증했습니다[Zhang et al., 2022]. 이러한 시스템이 실제 세계에 배포될 때 노동 생산성을 어떻게 변경합니까? AI 도구에 대한 인식, 사람들이 이를 사용하는 방법, 보안 및 교육에 미치는 영향을 연구하는 문헌이 증가하고 있지만 [Nguyen and Nadi, 2022, Barke et al., 2022, Finnie-Ansley et al., 2022, Sandoval et al. ., 2022] 전문적인 맥락에서 AI 기반 도구의 생산성 영향에 대한 연구는 거의 없었습니다. [Mozannar et al., 2022, Vaithilingam et al., 2022, Ziegler et al., 2022]. AI의 잠재적인 생산성 영향은 고용, 기술 및 기업 조직의 변화를 포함하여 노동 시장과 기업에 중요한 영향을 미칩니다[Raj and Seamans, 2018, Agrawal et al., 2019].
이 논문은 소프트웨어 개발에 대한 AI 도구의 생산성 효과를 연구합니다. 컨텍스트를 기반으로 코드와 전체 기능을 실시간으로 제안하는 AI 쌍 프로그래머인 GitHub Copilot의 통제된 평가판을 소개합니다. GitHub Copilot은 OpenAI의 생성 AI 모델인 Codex[Chen et al., 2021]로 구동됩니다. 평가판에서 프로그래머는 가능한 한 빨리 JavaScript로 HTTP 서버를 구현하도록 임무를 부여받고 인센티브를 받았습니다. 실험군은 GitHub Copilot에 액세스할 수 있었고 도구 사용 방법을 설명하는 간단한 비디오를 시청했습니다. 대조군은 GitHub Copilot에 액세스할 수 없었지만 그 외에는 제약이 없었습니다. 즉, 인터넷 검색과 Stack Overflow를 자유롭게 사용하여 작업을 완료할 수 있었습니다.
실험군과 대조군 사이의 성능 차이는 통계적으로나 실질적으로 유의미합니다. 실험군은 작업을 55.8% 더 빨리 완료했습니다(95% 신뢰 구간: 21-89%). 프로그래밍 경험이 적은 개발자, 나이가 많은 프로그래머, 하루에 더 많은 시간을 프로그래밍하는 개발자가 가장 많은 혜택을 받았습니다. 이러한 이기종 효과는 소프트웨어 개발 경력에 대한 접근 확대를 지원하는 AI 쌍 프로그래머에 대한 약속을 가리킵니다. 논문은 다음과 같이 진행됩니다. 먼저 대조 시험의 디자인을 설명하고 요약 통계를 제공합니다. 그런 다음 결과를 제시합니다. 우리는 AI 기반 도구에 대한 생산성 연구를 위한 연구의 의미, 그 한계, AI 기반 생산성의 광범위한 경제적 영향에 대한 향후 연구 방향에 대한 논의로 결론을 내립니다.
연구설계
우리는 프로그래밍 작업에서 GitHub Copilot을 사용하여 미생물에 미치는 영향을 측정하기 위해 통제를 시행했습니다. 발생은 2022년 5월 15일에 시작되어 GitHub Copilot이 마감되기 직전인 2022년 6월 20일에 끝났습니다. 우리는 프리랜서 플랫폼인 Upwork를 95명의 전문 프로그래머를 통해 진행했습니다. 개체 참여는 Upwork에서 프리랜서 개발자를 배제하는 고용 공고로 광고되었습니다. 그림 1과 2는 Upwork의 상호 연결에 따라 서명을 위해 청구되어 전송된 채용 공고와 빡을(각각) 보여줍니다. 지갑이 계약에 서명하면 구제로 통제 그룹과 셀 그룹으로 나 초급입니다.
그림 3은 이메일을 각 그룹을 통해 전송된 지침을 제시합니다. 셀을 렙 그룹은 GitHub Copilot을 소개하는 1분의 비디오를 배상했습니다. 지침 외에 도구에 대한 액세스 권한이 부여되면 GitHub Copilot에 대한 설치 지침이 포함된 자동 이메일도 제공됩니다. 우리는 실제 발생 후 원격 분석을 통해 처리된 그룹의 모든 것이 가중되어 GitHub Copilot을 구성하고 가입을 최소하지 않은 5명을 기록하여 권장 사항을 공유하여 GitHub Copilot 없이 발생을 시작을 확인합니다. 처리군과 모든 연령, 의무, 위치, 교육 배경과 같은 인구통계학적 정보를 제공하기 위해 항목 설문조사를 최소로 지정했습니다. 채용을 시작하기 전에 Microsoft Research Ethics Review Board로부터 연구 승인을 받았습니다.
저작권은 JavaScript로 HTTP 서버를 작성하라는 지시를 받았습니다. 처리 그룹은 GitHub Copilot을 사용하여 작업을 제한했지만 제어 그룹은 사용할 수 없습니다. 셀을 펜션 그룹에서 GitHub Copilot을 사용하는 것보다 배상은 소프트웨어 개발에 가득 차 있습니다. 인터넷 검색 및 스택 플로어와 같이 일반적으로 정보를 사용할 수 있음을 나타냅니다.
우리는 각 그룹에 대한 성능 측정으로 작업 성공 및 작업 완료 시간이라는 두 가지 메트릭을 계산했습니다. 작업 성공은 작업을 적절하게 완료한 그룹의 참가자 비율로 측정되었습니다. 작업 완료 시간은 작업 시작부터 종료까지의 시간으로 측정되었습니다. 소프트웨어 개발자의 생산성을 측정하기 어렵기 때문에 표준화된 작업을 사용하면 정확한 성능 측정이 가능합니다.
작업을 관리하기 위해 우리는 교사가 코딩 과제를 발행하고 채점할 수 있는 플랫폼인 GitHub Classroom을 사용했습니다. 이런 식으로 각 참가자의 타이밍과 완성도를 정확하게 측정했습니다. 이 지침은 참가자들에게 템플릿 리포지토리를 참조하는 단일 과제가 있는 특정 GitHub Classroom 인스턴스에 대한 링크를 제공했습니다. 과제에 참여할 때 참가자는 작업 설명(그림 4 참조)과 참가자가 구축할 수 있는 골격 코드베이스가 포함된 템플릿 저장소의 개인 복사본을 받았습니다. 해당 개인 복사본의 생성 날짜와 시간은 타임스탬프를 생성했습니다. 각 참가자의 리포지토리는 비공개이며 실험을 수행하는 연구원에게는 표시되지만 다른 참가자에게는 표시되지 않습니다.
제출 정확성에 대한 12개의 검사로 구성된 테스트 스위트를 저장소에 포함했습니다. 제출이 통과되면 집계한 12개의 테스트가 모두 성공적으로 완료된 것입니다. 참가자는 테스트를 볼 수 있지만 변경할 수는 없습니다.
참가자가 변경 사항을 커밋하고 GitHub에 푸시하면 GitHub Classroom은 제출 시 테스트 도구 모음을 실행하고 통과한 테스트 수를 보고했습니다. 참가자는 원하는 만큼 자주 푸시하고 매번 타임스탬프를 자동으로 기록할 수 있습니다. 리포지토리 생성 타임스탬프와 12개 테스트를 모두 성공적으로 통과한 첫 번째 커밋 타임스탬프 사이의 경과 시간을 참가자의 작업 완료 시간으로 계산했습니다.
테스트 스위트 실행의 전체 기록은 각 리포지토리에서 볼 수 있으므로 연구원은 작업을 완전히 완료하지 않은 참가자의 부분 결과를 관찰할 수 있습니다. 참가자의 최종 보상은 완료 시간과 이전에 참가자와 공유한 규모를 기준으로 계산됩니다(그림 1 참조).
우리는 각 그룹에 대한 성능 측정으로 작업 성공 및 작업 완료 시간이라는 두 가지 메트릭을 계산했습니다. 작업 성공은 작업을 적절하게 완료한 그룹의 참가자 비율로 측정되었습니다. 작업 완료 시간은 작업 시작부터 종료까지의 시간으로 측정되었습니다. 소프트웨어 개발자의 생산성을 측정하기 어렵기 때문에 표준화된 작업을 사용하면 정확한 성능 측정이 가능합니다.
작업을 관리하기 위해 우리는 교사가 코딩 과제를 발행하고 채점할 수 있는 플랫폼인 GitHub Classroom을 사용했습니다. 이런 식으로 각 참가자의 타이밍과 완성도를 정확하게 측정했습니다. 이 지침은 참가자들에게 템플릿 리포지토리를 참조하는 단일 과제가 있는 특정 GitHub Classroom 인스턴스에 대한 링크를 제공했습니다. 과제에 참여할 때 참가자는 작업 설명(그림 4 참조)과 참가자가 구축할 수 있는 골격 코드베이스가 포함된 템플릿 저장소의 개인 복사본을 받았습니다. 해당 개인 복사본의 생성 날짜와 시간은 타임스탬프를 생성했습니다. 각 참가자의 리포지토리는 비공개이며 실험을 수행하는 연구원에게는 표시되지만 다른 참가자에게는 표시되지 않습니다.
제출 정확성에 대한 12개의 검사로 구성된 테스트 스위트를 저장소에 포함했습니다. 제출이 통과되면 집계한 12개의 테스트가 모두 성공적으로 완료된 것입니다. 참가자는 테스트를 볼 수 있지만 변경할 수는 없습니다.
참가자가 변경 사항을 커밋하고 GitHub에 푸시하면 GitHub Classroom은 제출 시 테스트 도구 모음을 실행하고 통과한 테스트 수를 보고했습니다. 참가자는 원하는 만큼 자주 푸시하고 매번 타임스탬프를 자동으로 기록할 수 있습니다. 리포지토리 생성 타임스탬프와 12개 테스트를 모두 성공적으로 통과한 첫 번째 커밋 타임스탬프 사이의 경과 시간을 참가자의 작업 완료 시간으로 계산했습니다.
테스트 스위트 실행의 전체 기록은 각 리포지토리에서 볼 수 있으므로 연구원은 작업을 완전히 완료하지 않은 참가자의 부분 결과를 관찰할 수 있습니다. 참가자의 최종 보상은 완료 시간과 이전에 참가자와 공유한 규모를 기준으로 계산됩니다(그림 1 참조).
또한 치료 그룹의 성공률이 대조군보다 7% 포인트 높지만 추정치는 통계적으로 유의하지 않으며 95% 신뢰 구간은 [-0.11, 0.25]입니다.
그런 다음 이 효과가 경험, 고용 상태, 소득, 교육 및 소프트웨어 언어 선호도를 포함한 다양한 차원에서 이질적인지 조사합니다. 처리 효과는 관심 있는 공변량의 선형 함수라고 가정합니다. 우리는 [Athey and Imbens, 2015]([Banerjee and Duflo, 2003] 및 [Carneiro et al., 2011] 참조)에서 HorvitzThomson 변환을 적용한 다음 관찰 가능 항목에 대한 변환된 관심 결과를 회귀합니다. 표 1의 추정치는 이 회귀의 계수를 보고합니다. 그 결과, 경험이 적은 개발자(전문 코딩 경력), 코딩 부하가 많은 개발자(하루 코딩 시간), 나이든 개발자(25~44세 개발자)가 Copilot에서 더 많은 혜택을 받는 것으로 나타났습니다.
우리는 과목의 경험에 대해 알아보기 위해 두 가지 질문으로 종료 설문 조사를 실시했습니다. 먼저 Copilot이 작업 완료를 위해 제공한 생산성 향상 또는 손실(백분율)을 추정하도록 요청했습니다. 제어 그룹은 작업 중에 Copilot에 노출되지 않았지만 이 질문에 답하기 전에 Copilot의 기능을 인식할 수 있도록 자습서 비디오를 제공했습니다. 그림 7은 통제 그룹과 처리 그룹의 자가 보고 생산성 이득 추정치의 분포를 나타냅니다. 평균적으로 치료 그룹과 통제 그룹의 참가자 모두 생산성이 35% 증가한 것으로 추정했는데, 이는 드러난 생산성의 55.8% 증가에 비해 과소 평가된 것입니다.
두 번째 질문에서는 참가자들에게 GitHub Copilot 릴리스에 대한 알림을 받고 싶은 가장 높은 월별 가격을 물었습니다. 의도는 이 질문에 대한 답이 개발자의 지불 의향에 대한 상한선을 제공하므로 개발자의 Copilot에 대한 지불 의향에 대해 알아보는 것입니다. 그림 8은 통제 그룹과 처리 그룹에 대해 분리된 관련 없는 가격의 분포를 나타냅니다. 처리 그룹의 평균 무관 가격은 $27.25이고 통제 그룹의 평균 무관 가격은 $16.91입니다. 차이는 95% 수준에서 통계적으로 유의합니다. 이 결과는 지불 의향이 통제 그룹보다 상당히 높기 때문에 처리 그룹이 작업 중에 Copilot으로부터 혜택을 받았다는 간접적인 증거를 제공합니다.
논의
이 문서는 소프트웨어 개발에서 생성 AI 도구의 생산성 효과에 대한 증거를 제시합니다. 우리가 아는 한, 전문 소프트웨어 개발에서 AI 도구의 생산성을 측정하는 최초의 통제된 실험입니다. 우리의 결과는 Copilot이 생산성에 통계적으로나 실질적으로 상당한 영향을 미친다는 것을 시사합니다. GitHub Copilot에 액세스할 수 있는 치료 그룹은 통제 그룹보다 작업을 55.8% 더 빨리 완료할 수 있었습니다.
소프트웨어 개발에서 AI 기반 도구의 생산성 영향에 대한 추가 조사가 필요합니다. 이 연구는 개발자가 전문 독점 및/또는 오픈 소스 설정에서 대규모 프로젝트에 대해 공동 작업하는 작업 대신 정확한 생산성 측정을 얻기 위한 실험에서 표준화된 프로그래밍 작업을 조사합니다. 생산성 이점은 특정 작업 및 프로그래밍 언어에 따라 다를 수 있으므로 결과가 다른 작업에 어떻게 일반화되는지 이해하려면 더 많은 연구가 필요합니다. 마지막으로, 이 연구는 AI가 코드 품질에 미치는 영향을 조사하지 않습니다. AI 지원은 프로그래머가 작성하는 것보다 더 나은 코드를 제안하는 경우 코드 품질을 향상시킬 수 있으며, 프로그래머가 코드에 덜 주의를 기울이면 품질을 저하시킬 수 있습니다. 코드 품질에는 AI의 실제 영향을 변경할 수 있는 성능 및 보안 고려 사항이 있을 수 있습니다.
이 연구에서 확인된 이기종 효과는 면밀한 주의를 요합니다. 우리의 결과는 경험이 적은 프로그래머가 Copilot에서 더 많은 이점을 얻을 수 있음을 시사합니다. 이 결과가 추가 연구에서 지속된다면, 초보 프로그래머와 고령 프로그래머의 생산성 이점은 소프트웨어 개발로 직업 전환을 지원하는 기술 이니셔티브에 대한 중요한 가능성을 가리킵니다.
이러한 모델의 경제적 영향은 또한 노동 시장에 대한 영향에 특히 주의를 기울여 추가 연구[Manning et al., 2022]를 보증합니다. 2021년에 미국에서 460만 명이 넘는 사람들이 컴퓨터 프로그래머, 데이터 과학자, 통계학자를 포함하는 노동통계국 범주인 컴퓨터 및 수학 직업에 종사했습니다. 이 노동자들은 4,648억 달러 또는 미국 GDP의 약 2%를 벌었습니다. 이 연구의 결과를 인구 수준으로 추정하면 생산성이 55.8% 증가한다는 것은 경제에서 상당한 비용 절감을 의미하고 GDP 성장에 눈에 띄는 영향을 미칠 것입니다. 아직까지는 그러한 이익이 어떻게 분배되고 AI 기반 개발자 도구를 통합하기 위해 작업이 어떻게 변경될지는 불분명합니다. 그러한 영향을 고려하고 처음부터 이러한 영향에 대한 연구를 시작하는 것이 중요합니다[Klinova and Korinek, 2021].
The Impact of AI on Developer Productivity: Evidence from GitHub Copilot
