Skip to main content
QUICK REVIEW

[논문 리뷰] Multi-lingual Evaluation of Code Generation Models

Ben Athiwaratkun, Sanjay Krishna Gouda|arXiv (Cornell University)|2022. 10. 26.
Software Engineering Research인용 수 28
한 줄 요약

이 논문은 MBXP, Multilingual HumanEval, 및 MathQA-X 벤치마크를 10개 이상의 언어에 걸친 실행 기반 코드 생성을 위해 소개하고, 다국어 모델과 단일 언어 모델의 성능 비교, few-shot prompting, zero-shot 번역, 강건성, 그리고 코드 삽입/요약 작업을 분석하며 데이터셋과 코드를 공개한다.

ABSTRACT

We present new benchmarks on evaluation code generation models: MBXP and Multilingual HumanEval, and MathQA-X. These datasets cover over 10 programming languages and are generated using a scalable conversion framework that transpiles prompts and test cases from the original Python datasets into the corresponding data in the target language. Using these benchmarks, we are able to assess the performance of code generation models in a multi-lingual fashion, and discovered generalization ability of language models on out-of-domain languages, advantages of multi-lingual models over mono-lingual, the ability of few-shot prompting to teach the model new languages, and zero-shot translation abilities even on mono-lingual settings. Furthermore, we use our code generation model to perform large-scale bootstrapping to obtain synthetic canonical solutions in several languages, which can be used for other code-related evaluations such as code insertion, robustness, or summarization tasks. Overall, our benchmarks represents a significant step towards a deeper understanding of language models' code generation abilities. We publicly release our code and datasets at https://github.com/amazon-research/mxeval.

연구 동기 및 목표

  • Python을 넘어서는 코드 생성용 확장 가능한 다국어 실행 기반 벤치마크를 개발한다 (MBXP, Multilingual HumanEval, MathQA-X).
  • 다국어 모델이 도메인 밖 언어에 일반화하는 정도와 few-shot 프롬프트 및 번역으로부터 얻는 이점을 평가한다.
  • 합성된 표준 해를 사용하여 강건성, 코드 삽입, 요약 및 기타 코드 관련 작업의 분석을 가능하게 한다.
  • 다국어 코드 생성 모델의 광범위한 평가를 지원하는 공용 도구 및 데이터 세트를 제공한다.

제안 방법

  • 프롬프트와 테스트 케이스를 보존하는 규칙 기반 트랜스파일러를 통해 파이썬 기반 실행 데이터 세트를 여러 대상 언어로 변환한다.
  • 125M, 672M, 2.7B, 13B 모수 크기로 다국어 및 단일어 설정에서 디코더 전용 트랜스포머 모델을 학습하며, 언어당 210B 토큰(단일어) 또는 언어당 210B 토큰, 총 630B(다국어) 토큰을 사용한다.
  • 편향 없는 추정치를 포함한 pass@k를 사용하여 전체 함수 본문을 생성하고 언어별 테스트 케이스에 대해 정합성을 확인한다.
  • 추가 평가(삽입, 강건성 또는 요약)를 지원하기 위해 다중 언어로 표준 해를 합성하기 위해 대규모 부트스트래핑을 사용한다.
  • 소스 언어의 참조 해를 대상 언어 프롬프트 앞에 붙여 제로샷 번역을 탐구하고 번역 주도 성능을 분석한다.

실험 결과

연구 질문

  • RQ1동일 자원으로 비교한 단일언어 모델에 비해 다국어 코드 생성 모델은 도메인 밖 언어에서 어떻게 성능을 나타내는가?
  • RQ2모델 크기가 충분히 큰 경우 다중 언어로의 학습이 단일 언어 학습보다 이점을 제공하는가?
  • RQ3few-shot 프롬프트와 제로샷 번역이 이전에 보지 못한 언어에서 코드 생성을 개선할 수 있는가?
  • RQ4다국어 데이터 누출이 교차 언어 코드 생성과 번역에 어떤 영향을 미치는가?
  • RQ5다국어 모델은 언어 간 강건성, 코드 삽입, 코드 요약 작업에서 어떻게 성능을 보이나?

주요 결과

  • 다국어 모델은 자원이 같은 단일 언어 모델 중에서도 충분히 큰 크기에서 종종 최상의 단일 언어 모델보다 우수한 성능을 보인다.
  • 훈련 데이터의 교차 언어 누출로 인해 도메인 밖 언어에서도 0이 아닌 성공을 보이는 모델이 있다.
  • few-shot 프롬프트는 도메인 밖 실행 정확도를 향상시키고 비단정 오류를 줄인다.
  • 모델은 제로샷 번역 능력을 보이며, 번역이 이전에 해결하기 어려웠던 작업을 가능하게 할 수 있고 때로는 단일 언어 모델에서도 그렇다.
  • 다국어 모델은 일반적으로 단일 언어 모델보다 강건성 및 코드 요약 성능을 향상시키며, 도메인 밖 시나리오에서 두드러진 이점을 보인다.
  • 코드 삽입에서 오른쪽 컨텍스트 정보가 모든 언어에서 Pass@1을 크게 향상시킨다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.