AutoCodeBench는 Tencent의 Hunyuan 팀에 의해 오픈 소스이며 그 핵심은 "LLM 생성 + 다국어 샌드박스 검증"의 자동화된 워크플로입니다. 이 프로젝트는 또한 AutoCodeGen(데이터 합성), AutoCodeBench(세 가지 벤치마크 세트, Full/Lite/Complete) 및 MultiLanguageSandbox(30+ 언어 샌드박스)를 오픈 소스로 제공하여 Base 및 Chat 모델의 다국어 코딩 기능을 평가하고 새로운 벤치마크의 자체 생성을 지원합니다.
1. 프로젝트 개요 및 가치
- 수동 주석 없음: LLM을 사용하여 질문과 참조 답변을 합성하고 샌드박스를 통해 검증 가능한 표준 출력이 자동으로 생성됩니다.
- 다국어와 어려움: 20개의 프로그래밍 언어와 3,920개의 실제 문제를 다루며 난이도 계층화는 실제 개발에 더 가깝습니다.
- 평가와 데이터는 동일한 소스입니다: 동일한 프로세스로 데이터를 생성할 수 있을 뿐만 아니라 평가를 재생할 수 있어 재현성과 수평적 비교에 편리합니다.
2. 오픈 소스 주소
1. 프로젝트 홈페이지: https://autocodebench.github.io
2. 종이: https://arxiv.org/abs/2508.09101
3. 코드베이스: https://github.com/Tencent-Hunyuan/AutoCodeBenchmark
4. 데이터 세트: https://huggingface.co/datasets/tencent/AutoCodeBenchmark
3. 데이터 및 벤치마크 구성
- 전체: 3,920개 언어를 다루는 20개의 질문으로 난이도와 다양성을 강조합니다.
- 라이트: 1,586개의 질문, 교차 모델 "해결 가능성"으로 선별되어 빠른 비교에 더 도움이 됩니다.
- 완료: 1,000문항, 3샷 설정, 베이스 모델에 대한 코드 완성 평가.
- 언어 및 난이도 : 언어에 따른 균형 잡힌 샘플링, 난이도는 폭과 강도를 모두 고려하여 쉬움/중간/어려움으로 나뉩니다.
4. 평가 패러다임 및 지표
- 통합 지침: 명령과 예제를 실행하지 않고 단일 코드 블록의 출력이 필요합니다.
- 샌드박스 검증: 생성된 코드를 주제별로 컴파일/실행하고 pass@1와 같은 객관적인 지표를 계산합니다.
- 2줄 평가: 채팅 생성과 베이스 완성을 동시에 다루어 "대화 모델만 테스트"하는 편견을 줄입니다.
5. 빠르게 시작하기(5단계)
1. 출력 준비: 모델을 사용하여 autocodebench.jsonl에서 질문별로 질문에 대한 코드를 생성하고 model_output.jsonl로 저장합니다.
2. 이미지를 가져옵니다: docker pull hunyuansandbox/multi-language-sandbox:v1.
3. docker run -d --name sandbox -p 8080:8080 hunyuansandbox/multi-language-sandbox:v1 서비스를 시작합니다.
4. 상태 점검: 최소 샘플을 POST /submit에 제출하여 컴파일/실행이 정상인지 확인합니다.
- 계산 지표: 웨어하우스 스크립트를 사용하여 샌드박스를 일괄적으로 호출하고, 실행 결과를 생성하고, pass@1 계산합니다.
6. 일반적인 응용 프로그램 및 적용 가능한 그룹
- 모델 팀: 언어 간 회귀 및 버전 비교, 컴파일 실패/경계 사용 사례 찾기.
- 과학적 연구 평가: 저렴한 비용으로 고품질 다국어 벤치마크를 구축하여 재현성을 향상시킵니다.
- 기업 내부 테스트: Lite/Complete를 사용하여 그레이스케일 평가를 수행하고 안정성 및 롱테일 질문을 관찰합니다.
7. 실용적인 제안
- 먼저 라이트 다음 전체: 먼저 빠르게 선별한 다음 포괄적인 회귀 및 보고를 수행합니다.
- 동시성 및 할당량: 샌드박스 컴파일/실행은 병목 현상이므로 대기열을 예약하고 분산 방식으로 구현하는 것이 좋습니다.
- 관찰 가능성: 유형(컴파일/실행/경계/시간 제한), 대상 최적화 프롬프트 및 하이퍼파라미터별 기록 실패.
- RAG와 협력: 긴 질문과 교차 파일 작업이 검색 향상과 결합되어 안정성을 향상시킵니다.
8. 제한 사항 및 위험 경고
- 환경 일관성: 미러링 및 종속성은 통과율에 영향을 미치며 버전 및 임의 시드를 잠가야 합니다.
- 데이터 규정 준수: 주제와 코드에 외부 데이터베이스가 포함된 경우 격리 및 감사를 잘 수행해야 합니다.
- 외삽된 경계: 벤치마크 점수는 생산 가용성과 같지 않으며 실제 비즈니스 샘플 A/B가 여전히 필요합니다.
9. 자주 묻는 질문
- 정말 "완전 자동 및 수동 주석 제로"입니까?
이 프로세스는 LLM 생성 및 샌드박스 검증을 중심으로 하며 주제별로 수동 주석에 의존하지 않습니다. 품질을 확인하기 위해 주요 샘플의 수동 샘플링을 권장합니다.
- 어떤 언어가 지원되며 Python에 편향되어 있습니까?
샌드박스는 30+ 언어를 지원하고 데이터 밸런싱을 통해 20개의 프로그래밍 언어를 다루므로 "Python 전용" 편향을 크게 줄입니다.
- Chat과 Base를 동시에 평가하는 방법은 무엇입니까?
Chat은 통합 시스템 프롬프트에서 직접 코드를 생성합니다. Base는 Complete의 3샷 완료 설정을 사용하여 평가 프로토콜을 일관되게 유지합니다.
- 동일한 워크플로를 사용하여 사용자 지정 기준선을 생성할 수 있습니까?
그래. AutoCodeGen은 동일한 검증 및 채점 프로세스를 사용하여 샌드박스에서 새 문제와 테스트 세트를 자동으로 합성합니다.