Concetti Chiave
aiXcoder-7B는 코드 완성 정확도를 유지하면서 응답 시간을 단축하기 위해 70억 개의 매개변수를 사용하는 가볍고 효과적인 대규모 언어 모델입니다.
본 연구는 코드 완성 작업에서 기존 대규모 언어 모델(LLM) 대비 aiXcoder-7B의 성능을 평가하는 것을 목표로 합니다. 특히, 자연어 코드 생성(NL2Code), 중간 채우기(FIM), 파일 간 코드 완성 작업에서 aiXcoder-7B의 효율성을 검증합니다.
모델 아키텍처
aiXcoder-7B는 32개의 Transformer 디코더 레이어, 4096의 hidden state 크기, 14464의 intermediate 크기를 가진 자기 회귀 밀집 Transformer 아키텍처를 기반으로 합니다. RoPE를 사용하여 시퀀스의 위치 정보 표현을 개선하고 GQA를 구현하여 주의 메커니즘의 효율성을 높였습니다.
데이터 수집 및 학습
aiXcoder-7B는 엄격한 데이터 수집 파이프라인을 통해 수집된 1.2조 개의 고유 토큰으로 학습되었습니다. 이 파이프라인에는 데이터 크롤링, 정리, 중복 제거, 코드 품질 검사, 민감한 정보 제거가 포함됩니다. 학습 목표는 다음 토큰 예측(NTP)과 구조화된 중간 채우기(SFIM)로 구성됩니다.
NTP: 이전 토큰을 기반으로 다음 토큰을 예측하도록 모델을 학습시킵니다.
SFIM: 코드의 구문 구조를 고려하여 모델이 완전한 코드 스니펫을 예측하도록 학습시킵니다.
평가
aiXcoder-7B는 HumanEval, MBPP, MultiPL-E, SantaCoder-data, FIM-Eval, CrossCodeEval 등 6개의 벤치마크에서 평가되었습니다. 성능 비교를 위해 CodeGen2.5-7B, CodeGeex2-7B, CodeLlama-7B, CodeShell-7B, StarCoder2-7B, DeepSeekCoder-7B, StarCoder-15B, CodeLlama-13B, StarCoder2-15B, CodeLlama-34B 등 10개의 LLM을 기준으로 사용했습니다.