스스로 코드를 작성할 수 있는 기계를 만드는 것은 컴퓨터 과학과 인공 지능 분야의 선구자들이 추구해 온 목표입니다. GPT형 대형 모델의 급속한 발전으로 이러한 목표는 그 어느 때보다 가까워지고 있습니다.
대형 언어 모델의 출현으로 연구자들은 모델의 프로그래밍 기능에 점점 더 많은 관심을 끌었습니다. 이러한 상황에서 Shanghai Jiao Tong University의 APEX 연구소는 LLM의 프로그래밍 이해 및 코드 생성 기능을 평가하는 데 초점을 맞춘 이중 언어 벤치마크 데이터 세트인 CodeApex를 출시했습니다.
대규모 언어 모델의 프로그래밍 이해 능력을 평가하기 위해 CodeApex는 개념 이해, 상식 추론, 다중 홉 추론이라는 세 가지 유형의 객관식 질문을 설계했습니다. 또한 CodeApex는 알고리즘 질문과 해당 테스트 사례를 활용하여 LLM의 코드 생성 기능을 평가합니다. CodeApex는 코딩 작업에 대해 총 14개의 대규모 언어 모델을 평가했습니다. 그 중 GPT3.5-turbo는 이 두 작업에서 각각 약 50%와 56%의 정확도를 달성하여 최고의 프로그래밍 능력을 보여줍니다. 대규모 언어 모델에는 프로그래밍 작업에서 여전히 개선의 여지가 많다는 것을 알 수 있습니다. 자체 코드를 작성할 수 있는 기계를 구축하는 것은 매우 유망한 미래입니다.
프로그래밍 이해와 코드 생성은 소프트웨어 엔지니어링과 개선의 핵심 작업입니다. 개발자 생산성, 코드 품질 향상, 소프트웨어 개발 프로세스 자동화에 핵심적인 역할을 합니다. 그러나 이러한 작업은 코드의 복잡성과 의미론적 다양성으로 인해 대규모 모델의 경우 여전히 어려운 작업입니다. 일반적인 자연어 처리와 비교하여 LLM을 사용하여 코드를 생성하려면 문법, 구조, 세부 처리 및 컨텍스트 이해에 더 중점을 두어야 하며 생성된 콘텐츠의 정확성에 대한 요구 사항이 매우 높습니다. 전통적인 접근 방식에는 문법 규칙 기반 모델, 템플릿 기반 모델, 규칙 기반 모델이 포함되며, 이러한 모델은 적용 범위와 정확성이 제한된 수동으로 설계된 규칙과 경험적 알고리즘에 의존하는 경우가 많습니다.
최근 몇 년 동안 CodeBERT 및 GPT3.5와 같은 대규모 사전 훈련 모델이 등장하면서 연구자들은 프로그래밍 이해 및 코드 생성 작업에 이러한 모델을 적용하는 방법을 모색하기 시작했습니다. 이러한 모델은 훈련 중에 코드 생성 작업을 통합하여 코드를 이해하고 생성할 수 있도록 합니다. 그러나 코드 이해 및 생성에서 LLM의 진행 상황에 대한 공정한 평가는 공개적으로 사용 가능한 고품질의 다양한 벤치마크 데이터 세트가 부족하기 때문에 어렵습니다. 따라서 코드 의미와 구조를 광범위하게 다루는 벤치마크 데이터 세트를 설정하는 것은 프로그래밍 이해 및 코드 생성에 대한 연구를 촉진하는 데 중요합니다.
기존 코드 벤치마크 데이터세트는 LLM에 적용할 때 적용성 및 다양성의 문제가 있습니다. 예를 들어 일부 데이터 세트는 Bert 유형의 양방향 언어 모델링 LLM을 평가하는 데 더 적합합니다. 그러나 기존 다국어 코드 벤치마크 데이터 세트(예: Human-Eval)에는 비교적 간단한 문제가 포함되어 있고 다양성이 부족하며 일부 기본적인 기능 코드만 구현할 수 있습니다.
위의 격차를 메우기 위해 Shanghai Jiao Tong University의 APEX 데이터 및 지식 관리 연구소는 대규모 모델 코드 이해 및 생성을 위한 새로운 평가 벤치마크인 CodeApex를 구축했습니다. 획기적인 이중 언어(영어, 중국어) 벤치마크 데이터 세트인 CodeApex는 LLM의 프로그래밍 이해 및 코드 생성 기능을 평가하는 데 중점을 둡니다.
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개의 객관식 문제를 테스트 데이터로 추출했습니다. 이러한 테스트 데이터는 개념 이해, 상식 추론, 다중 홉 추론의 세 가지 범주로 구분됩니다.
테스트 모드에는 답변 전용 및 사고 사슬이라는 두 가지 범주가 있습니다.
코드 이해 작업에 대한 CodeApex의 중국어 및 영어 평가 결과는 다음 두 표와 같습니다. (가장 성능이 뛰어난 모델은 굵은 글씨로 표시되고 그 다음으로 성능이 뛰어난 모델은 밑줄이 그어져 있습니다.)
이로부터 다음과 같은 결론을 도출할 수 있습니다.
정확하고 실행 가능한 코드를 생성하기 위해 대규모 언어 모델을 교육하는 것은 어려운 작업입니다. CodeApex는 주로 주어진 설명을 기반으로 알고리즘을 생성하는 LLM의 기능을 평가하고 단위 테스트를 통해 생성된 코드의 정확성을 자동으로 평가합니다.
CodeApex의 코드 생성 작업에는 이진 검색 및 그래프 알고리즘과 같은 일반적인 알고리즘 지식 포인트를 다루는 476개의 C++ 기반 알고리즘 문제가 포함됩니다. CodeApex는 문제에 대한 설명과 문제를 구현하는 함수 프로토타입을 제공하며 LLM이 함수의 주요 부분을 완료하도록 요구합니다.
CodeApex는 함수 전용 시나리오와 컨텍스트가 있는 함수라는 두 가지 시나리오를 제공합니다. Function-only 시나리오는 대상 함수에 대한 설명만 제공하는 반면, Function-with-context 시나리오는 대상 함수에 대한 설명뿐만 아니라 호출 코드, 시간 및 공간 제약, 입력 및 출력 설명도 제공합니다. 목표 함수.
각 언어 버전은 두 가지 프롬프트 전략(함수 전용 및 컨텍스트 포함 함수)을 사용합니다. 휴먼 코드 테스트 시나리오에 맞추기 위해 평가 지표에는 AC@1, AC@all 및 AC 비율이 포함됩니다. 각 모델에 대한 코드 생성 작업의 결과는 다음 두 표에 나와 있습니다. (최고 성능: 볼드체, 두 번째 최고 성능: 밑줄.)
다음과 같은 결론을 내릴 수 있습니다. 또한 CodeApex는 각 시나리오에서 컴파일 가능한 코드의 비율을 제공합니다. 생성된 함수를 메인 함수에 연결한 후 테스트 케이스를 통해 컴파일된 코드를 확인합니다. 다음을 볼 수 있습니다. CodeApex는 LLM의 프로그래밍 능력에 초점을 맞춘 이중 언어 벤치마크로서 대규모 언어 모델의 프로그래밍 이해 및 코드 생성 기능을 평가합니다. 프로그래밍 이해 측면에서 CodeApex는 객관식 질문의 세 가지 범주에서 다양한 모델의 능력을 평가했습니다. 코드 생성 측면에서 CodeApex는 테스트 코드 사례의 합격률을 사용하여 모델의 기능을 평가합니다. 이 두 가지 작업에 대해 CodeApex는 프롬프트 전략을 신중하게 설계하고 이를 다양한 시나리오에서 비교했습니다. CodeApex는 코드 미세 조정을 기반으로 하는 일반 LLM 및 특수 LLM 모델을 포함하여 14개 LLM에서 실험적으로 평가되었습니다. 현재 GPT3.5는 프로그래밍 기능 측면에서 비교적 좋은 수준에 도달하여 프로그래밍 이해 및 코드 생성 작업에서 각각 약 50% 및 56%의 정확도를 달성했습니다. CodeApex는 프로그래밍 작업을 위한 대규모 언어 모델의 잠재력이 아직 완전히 활용되지 않았음을 보여줍니다. 우리는 대규모 언어 모델을 활용하여 코드를 생성하는 것이 가까운 미래에 소프트웨어 개발 분야에 혁명을 일으킬 것으로 기대합니다. 자연어 처리 및 기계 학습이 발전함에 따라 이러한 모델은 더욱 강력해지고 코드 조각을 이해하고 생성하는 데 능숙해질 것입니다. 개발자는 이러한 모델을 사용하여 지루한 작업을 자동화하고 생산성을 높이며 소프트웨어 품질을 향상시킬 수 있으므로 코딩 작업에서 전례 없는 동맹을 갖게 될 것입니다. 앞으로 CodeApex는 대규모 언어 모델의 코드 기능을 테스트하기 위한 더 많은 테스트(예: 코드 수정)를 출시할 예정입니다. CodeApex의 테스트 데이터도 계속 업데이트되어 더욱 다양한 코드 문제를 추가할 예정입니다. 동시에 대규모 언어 모델의 코딩 기능을 인간 수준과 비교하기 위해 인간 실험도 CodeApex 목록에 추가됩니다. CodeApex는 대규모 언어 모델 프로그래밍 기능에 대한 연구를 위한 벤치마크 및 참조를 제공하며 코드 분야에서 대규모 언어 모델의 개발과 번영을 촉진할 것입니다. 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 및 기타 인공 지능 분야의 뛰어난 동문.
결론
APEX 연구소 소개
위 내용은 Shanghai Jiao Tong University는 대규모 모델 이중 언어 프로그래밍 평가 벤치마크인 CodeApex를 출시했습니다. 실제로 기계가 인간의 코드 작성에 도전하기 시작했나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!