>기술 주변기기 >일체 포함 >Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

王林
王林앞으로
2023-09-05 23:29:111396검색

스스로 코드를 작성할 수 있는 기계를 만드는 것은 컴퓨터 과학과 인공 지능 분야의 선구자들이 추구해 온 목표입니다. GPT형 대형 모델의 급속한 발전으로 이러한 목표는 그 어느 때보다 가까워지고 있습니다.

대형 언어 모델의 출현으로 연구자들은 모델의 프로그래밍 기능에 점점 더 많은 관심을 끌었습니다. 이러한 상황에서 Shanghai Jiao Tong University의 APEX 연구소는 LLM의 프로그래밍 이해 및 코드 생성 기능을 평가하는 데 초점을 맞춘 이중 언어 벤치마크 데이터 세트인 CodeApex를 출시했습니다.

대규모 언어 모델의 프로그래밍 이해 능력을 평가하기 위해 CodeApex는 개념 이해, 상식 추론, 다중 홉 추론이라는 세 가지 유형의 객관식 질문을 설계했습니다. 또한 CodeApex는 알고리즘 질문과 해당 테스트 사례를 활용하여 LLM의 코드 생성 기능을 평가합니다. CodeApex는 코딩 작업에 대해 총 14개의 대규모 언어 모델을 평가했습니다. 그 중 GPT3.5-turbo는 이 두 작업에서 각각 약 50%와 56%의 정확도를 달성하여 최고의 프로그래밍 능력을 보여줍니다. 대규모 언어 모델에는 프로그래밍 작업에서 여전히 개선의 여지가 많다는 것을 알 수 있습니다. 자체 코드를 작성할 수 있는 기계를 구축하는 것은 매우 유망한 미래입니다.

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

  • 웹사이트: https://apex.sjtu.edu.cn/codeapex/
  • 코드: https://github.com/APEXLAB/CodeApex.git
  • Paper: https://apex.sjtu.edu.cn/codeapex/paper/

Introduction

프로그래밍 이해와 코드 생성은 소프트웨어 엔지니어링과 개선의 핵심 작업입니다. 개발자 생산성, 코드 품질 향상, 소프트웨어 개발 프로세스 자동화에 핵심적인 역할을 합니다. 그러나 이러한 작업은 코드의 복잡성과 의미론적 다양성으로 인해 대규모 모델의 경우 여전히 어려운 작업입니다. 일반적인 자연어 처리와 비교하여 LLM을 사용하여 코드를 생성하려면 문법, 구조, 세부 처리 및 컨텍스트 이해에 더 중점을 두어야 하며 생성된 콘텐츠의 정확성에 대한 요구 사항이 매우 높습니다. 전통적인 접근 방식에는 문법 규칙 기반 모델, 템플릿 기반 모델, 규칙 기반 모델이 포함되며, 이러한 모델은 적용 범위와 정확성이 제한된 수동으로 설계된 규칙과 경험적 알고리즘에 의존하는 경우가 많습니다.

최근 몇 년 동안 CodeBERT 및 GPT3.5와 같은 대규모 사전 훈련 모델이 등장하면서 연구자들은 프로그래밍 이해 및 코드 생성 작업에 이러한 모델을 적용하는 방법을 모색하기 시작했습니다. 이러한 모델은 훈련 중에 코드 생성 작업을 통합하여 코드를 이해하고 생성할 수 있도록 합니다. 그러나 코드 이해 및 생성에서 LLM의 진행 상황에 대한 공정한 평가는 공개적으로 사용 가능한 고품질의 다양한 벤치마크 데이터 세트가 부족하기 때문에 어렵습니다. 따라서 코드 의미와 구조를 광범위하게 다루는 벤치마크 데이터 세트를 설정하는 것은 프로그래밍 이해 및 코드 생성에 대한 연구를 촉진하는 데 중요합니다.

기존 코드 벤치마크 데이터세트는 LLM에 적용할 때 적용성 및 다양성의 문제가 있습니다. 예를 들어 일부 데이터 세트는 Bert 유형의 양방향 언어 모델링 LLM을 평가하는 데 더 적합합니다. 그러나 기존 다국어 코드 벤치마크 데이터 세트(예: Human-Eval)에는 비교적 간단한 문제가 포함되어 있고 다양성이 부족하며 일부 기본적인 기능 코드만 구현할 수 있습니다.

위의 격차를 메우기 위해 Shanghai Jiao Tong University의 APEX 데이터 및 지식 관리 연구소는 대규모 모델 코드 이해 및 생성을 위한 새로운 평가 벤치마크인 CodeApex를 구축했습니다. 획기적인 이중 언어(영어, 중국어) 벤치마크 데이터 세트인 CodeApex는 LLM의 프로그래밍 이해 및 코드 생성 기능을 평가하는 데 중점을 둡니다.

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

CodeApex의 전반적인 실험 장면은 위 그림과 같습니다.

프로그래밍 이해의 첫 번째 작업에는 개념 이해, 상식 추론, 다중 홉 추론으로 나누어지는 250개의 객관식 문제가 포함됩니다. 테스트에 사용되는 문제는 대학의 다양한 과정(프로그래밍, 데이터 구조, 알고리즘)의 최종 시험 문제에서 선택되므로 데이터가 이미 LLM 교육 코퍼스에 있을 위험이 크게 줄어듭니다. CodeApex는 0샷, 2샷, 5샷의 세 가지 시나리오에서 LLM의 코드 이해 능력을 테스트했으며, Answer-Only 및 Chain-of-Thought 모드가 LLM 기능에 미치는 영향도 테스트했습니다.

두 번째 태스크 코드 생성에는 476개의 C++ 기반 알고리즘 문제가 포함되어 있으며 이진 검색, 깊이 우선 검색 등과 같은 일반적인 알고리즘 지식 포인트를 다룹니다. CodeApex는 문제에 대한 설명과 문제를 구현하는 함수 프로토타입을 제공하며 LLM이 함수의 주요 부분을 완료하도록 요구합니다. CodeApex는 함수 전용 시나리오와 컨텍스트 포함 함수라는 두 가지 시나리오도 제공합니다. 차이점은 전자는 대상 함수에 대한 설명만 제공하는 반면 후자는 대상 함수에 대한 설명 외에도 제공된다는 점입니다. 대상 함수의 호출 코드와 시간, 입력 및 출력 설명.

실험 결과, 모델별로 코드 관련 작업에서 서로 다른 성능을 발휘하는 것으로 나타났으며, GPT3.5-터보는 뛰어난 경쟁력과 확실한 장점을 보여줍니다. 또한 CodeApex는 이중 언어 시나리오에서 LLM의 성능을 비교하여 서로 다른 결과를 보여주었습니다. 전반적으로 CodeApex 순위에서 LLM의 정확성을 향상시킬 여지가 여전히 상당하며, 이는 코드 관련 작업에서 LLM의 잠재력이 아직 완전히 활용되지 않았음을 나타냅니다.

코드 이해

대규모 언어 모델을 실제 코드 생성 시나리오에 완전히 통합하려면 프로그래밍 이해가 필수적입니다. 프로그래밍 이해에는 구문 숙달, 코드 실행 흐름 이해, 실행 알고리즘 이해 등 코드를 모든 측면에서 이해하는 능력이 필요합니다.

CodeApex는 대학 기말고사 문제에서 250개의 객관식 문제를 테스트 데이터로 추출했습니다. 이러한 테스트 데이터는 개념 이해, 상식 추론, 다중 홉 추론의 세 가지 범주로 구분됩니다.

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

테스트 모드에는 답변 전용 및 사고 사슬이라는 두 가지 범주가 있습니다.

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

실험 결과 및 결론

코드 이해 작업에 대한 CodeApex의 중국어 및 영어 평가 결과는 다음 두 표와 같습니다. (가장 성능이 뛰어난 모델은 굵은 글씨로 표시되고 그 다음으로 성능이 뛰어난 모델은 밑줄이 그어져 있습니다.)

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

이로부터 다음과 같은 결론을 도출할 수 있습니다.

  • 이중 언어 능숙도 비교. 중국어 버전이 영어 버전보다 높은 점수를 받았습니다. 크게 두 가지 이유가 있습니다. (1) 원본 문제 설명은 중국 대학의 기말고사에서 나온 것이므로 시험 문제는 원래 중국어로 제시되었습니다. 영어로 번역하더라도 여전히 중국인 특유의 언어 습관이 남아 있습니다. 따라서 이러한 편향된 영어 질문이 LLM에 입력되면 모델의 인코딩 결과에 약간의 노이즈가 도입될 수 있습니다. (2) 평가된 모델의 대부분은 주로 중국 데이터를 대상으로 훈련되어 결과가 좋지 않습니다.
  • 다양한 질문 유형의 능력 비교. 이 세 가지 문제 범주 전체에서 모델의 약 절반이 개념 이해에서 가장 잘 수행되었으며, 이는 훈련을 받는 동안 프로그래밍 개념에 대한 지식이 포함되었을 가능성이 있음을 시사합니다. 대부분의 모델은 다중 홉 추론에 비해 상식 추론에서 더 높은 점수를 얻었으며, 이는 추론 단계가 증가함에 따라 LLM의 성능이 크게 감소함을 나타냅니다.
  • CoT 사고 체인 모델의 역할. CoT 모드에서 대부분 모델의 정확도는 Answer-Only 모드에 가깝거나 낮습니다. 이 현상에는 두 가지 이유가 있습니다. (1) 평가된 모델 크기가 CoT 출현 기능을 갖춘 모델 크기에 도달하지 않습니다. 이전 연구에서는 CoT가 출현하려면 LLM에 최소 60B 매개변수가 필요하다고 믿었습니다. 매개변수 수가 충분하지 않으면 CoT 설정으로 인해 추가 소음이 발생할 수 있으며 LLM에서 생성된 응답이 불안정해질 수 있습니다. GPT3.5-turbo는 새로운 기능이 출현하는 지점에 도달했으며 CoT 설정에서 더 높은 정확도를 달성할 수 있습니다. (2) 개념이해와 상식추론 질문에 답할 때 다단계 추론은 덜 필요하다. 따라서 LLM의 CoT 기능은 이러한 유형의 문제에 도움이 될 수 없습니다. 그러나 다중 홉 추론 문제의 경우 일부 모델(예: ChatGLM2, educhat 및 GPT3.5-turbo)은 CoT 시나리오에서 정확도가 크게 향상되었습니다. (CodeApex는 생각 체인을 통해 응답을 생성할 수 없기 때문에 CodeT5를 CoT 설정에서 제외합니다.)

코드 생성

정확하고 실행 가능한 코드를 생성하기 위해 대규모 언어 모델을 교육하는 것은 어려운 작업입니다. CodeApex는 주로 주어진 설명을 기반으로 알고리즘을 생성하는 LLM의 기능을 평가하고 단위 테스트를 통해 생성된 코드의 정확성을 자동으로 평가합니다.

CodeApex의 코드 생성 작업에는 이진 검색 및 그래프 알고리즘과 같은 일반적인 알고리즘 지식 포인트를 다루는 476개의 C++ 기반 알고리즘 문제가 포함됩니다. CodeApex는 문제에 대한 설명과 문제를 구현하는 함수 프로토타입을 제공하며 LLM이 함수의 주요 부분을 완료하도록 요구합니다.

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

CodeApex는 함수 전용 시나리오와 컨텍스트가 있는 함수라는 두 가지 시나리오를 제공합니다. Function-only 시나리오는 대상 함수에 대한 설명만 제공하는 반면, Function-with-context 시나리오는 대상 함수에 대한 설명뿐만 아니라 호출 코드, 시간 및 공간 제약, 입력 및 출력 설명도 제공합니다. 목표 함수.

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

실험 결과 및 결론

각 언어 버전은 두 가지 프롬프트 전략(함수 전용 및 컨텍스트 포함 함수)을 사용합니다. 휴먼 코드 테스트 시나리오에 맞추기 위해 평가 지표에는 AC@1, AC@all 및 AC 비율이 포함됩니다. 각 모델에 대한 코드 생성 작업의 결과는 다음 두 표에 나와 있습니다. (최고 성능: 볼드체, 두 번째 최고 성능: 밑줄.)

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

다음과 같은 결론을 내릴 수 있습니다.

  • GPT3.5-turbo는 평균 점수가 50% 이상으로 다른 11개 LLM보다 성능이 뛰어납니다.
  • WizardCoder와 StarCoder는 코드 기반 미세 조정을 통해 코드 생성 기능이 크게 향상되어 2위와 3위를 차지했습니다.
  • 코드 생성 작업에서는 중국어와 영어 질문 유형에 대해 현재 테스트된 모델 간에 뚜렷한 성능 차이가 없습니다.

또한 CodeApex는 각 시나리오에서 컴파일 가능한 코드의 비율을 제공합니다. 생성된 함수를 메인 함수에 연결한 후 테스트 케이스를 통해 컴파일된 코드를 확인합니다.

Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?

다음을 볼 수 있습니다.

  • 대부분의 모델은 50% 이상의 컴파일 가능한 코드를 생성할 수 있으며, 이는 LLM이 함수 프로토타입을 이해하는 능력을 입증합니다.
  • 함수에 대한 상황별 정보를 제공하면 LLM이 컴파일 가능한 코드를 생성하는 데 도움이 되는 경우가 많습니다.

결론

CodeApex는 LLM의 프로그래밍 능력에 초점을 맞춘 이중 언어 벤치마크로서 대규모 언어 모델의 프로그래밍 이해 및 코드 생성 기능을 평가합니다. 프로그래밍 이해 측면에서 CodeApex는 객관식 질문의 세 가지 범주에서 다양한 모델의 능력을 평가했습니다. 코드 생성 측면에서 CodeApex는 테스트 코드 사례의 합격률을 사용하여 모델의 기능을 평가합니다. 이 두 가지 작업에 대해 CodeApex는 프롬프트 전략을 신중하게 설계하고 이를 다양한 시나리오에서 비교했습니다. CodeApex는 코드 미세 조정을 기반으로 하는 일반 LLM 및 특수 LLM 모델을 포함하여 14개 LLM에서 실험적으로 평가되었습니다.

현재 GPT3.5는 프로그래밍 기능 측면에서 비교적 좋은 수준에 도달하여 프로그래밍 이해 및 코드 생성 작업에서 각각 약 50% 및 56%의 정확도를 달성했습니다. CodeApex는 프로그래밍 작업을 위한 대규모 언어 모델의 잠재력이 아직 완전히 활용되지 않았음을 보여줍니다. 우리는 대규모 언어 모델을 활용하여 코드를 생성하는 것이 가까운 미래에 소프트웨어 개발 분야에 혁명을 일으킬 것으로 기대합니다. 자연어 처리 및 기계 학습이 발전함에 따라 이러한 모델은 더욱 강력해지고 코드 조각을 이해하고 생성하는 데 능숙해질 것입니다. 개발자는 이러한 모델을 사용하여 지루한 작업을 자동화하고 생산성을 높이며 소프트웨어 품질을 향상시킬 수 있으므로 코딩 작업에서 전례 없는 동맹을 갖게 될 것입니다.

앞으로 CodeApex는 대규모 언어 모델의 코드 기능을 테스트하기 위한 더 많은 테스트(예: 코드 수정)를 출시할 예정입니다. CodeApex의 테스트 데이터도 계속 업데이트되어 더욱 다양한 코드 문제를 추가할 예정입니다. 동시에 대규모 언어 모델의 코딩 기능을 인간 수준과 비교하기 위해 인간 실험도 CodeApex 목록에 추가됩니다. CodeApex는 대규모 언어 모델 프로그래밍 기능에 대한 연구를 위한 벤치마크 및 참조를 제공하며 코드 분야에서 대규모 언어 모델의 개발과 번영을 촉진할 것입니다.

APEX 연구소 소개

Shanghai Jiao Tong University의 APEX 데이터 및 지식 관리 연구소는 1996년에 설립되었습니다. 창립자는 ACM 수업의 주임 교사인 Yu Yong 교수입니다. 본 연구실은 데이터를 효과적으로 채굴, 관리하고 지식을 요약하는 인공지능 기술을 탐구하는 데 전념하고 있으며, 500편 이상의 국제 학술 논문을 발표했으며 실제 시나리오에서 실제 적용을 추구합니다. 지난 27년 동안 APEX 연구소는 2000년부터 시맨틱 웹(현재 지식 그래프)의 핵심 기술을 연구하기 시작했으며 개인화 검색 엔진과 시스템기술은 2006년부터 전이학습 이론과 알고리즘을 연구하기 시작했고, 2009년부터 딥러닝 기술을 탐구하기 시작해 GPU 기반의 신경망 훈련 라이브러리를 개발했다. APEX Lab은 유익한 과학 연구 및 구현 결과를 생성하는 동시에 Xue Guirong, Zhang Lei, Lin Chenxi, Liu Guangcan, Wang Haofen, Li Lei, Dai Wenyuan, Li Zhenhui, Chen을 포함한 견고한 데이터 과학 및 기계 학습 연구팀을 개발했습니다. Tianqi, Zhang Weinan, Yang Diyi 및 기타 인공 지능 분야의 뛰어난 동문.

위 내용은 Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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