이 글은 Kaggle Benchmarking Challenge에 제출하는 내용입니다.
무엇을 벤치마킹했는가
저는 대규모 언어 모델(LLM)이 실제 Python 프로그래밍 작업을 얼마나 신뢰성 있게 해결하는지 평가하기 위한 벤치마크를 구축했습니다. 단순히 모델이 올바르게 보이는 코드를 생성할 수 있는지 여부만을 측정하는 대신, 저는 세 가지 차원에 초점을 맞췄습니다: 기능적 정확성(functional correctness), 디버깅 능력(debugging ability), 그리고 지침 준수(instruction following).
이 벤치마크는 데이터 조작, 엣지 케이스(edge cases), 버그 수정, 명시적인 제약 조건 하의 코드 생성을 포함하는 Python 문제들로 구성되어 있습니다. 가능한 경우 각 작업은 미리 정의된 예상 출력 또는 테스트 사례와 비교하여 평가됩니다.
제가 이 능력을 선택한 이유는 그럴듯해 보이는 코드가 실제 애플리케이션에서는 여전히 실패할 수 있기 때문입니다. 유용한 코딩 어시스턴트는 특이한 입력(unusual inputs)을 처리하고, 요구사항을 정확하게 따르며, 작동하는 솔루션을 제공해야 합니다—단지 그럴싸하게 들리는 설명만 해서는 안 됩니다.
테스트된 모델들
모든 모델은 동일한 작업 세트와 일관된 프롬프팅 및 채점 조건 하에서 평가되었습니다. 주관적인 판단을 줄이고 결과를 재현 가능하게 만들기 위해 가능한 경우 자동화된 테스트 케이스를 사용했습니다.
발견 사항
이 벤치마크는 기능적 정확성, 엣지 케이스 처리, 디버깅 성공 여부, 그리고 지침 준수 여부를 측정했습니다.
주요 결과:
이번 평가에서 중요했던 한 가지 측면은 그럴듯해 보이는 코드와 실제로 테스트를 통과하는 코드를 분리하는 것이었습니다. 이러한 구분은 모델이 실제 프로그래밍 작업에 얼마나 믿을 만한지, 특히 입력이 특이하거나 요구사항이 제한적일 때 밝히는 데 도움이 됩니다.
또한 결과는 추가적인 조사 기회도 보여줍니다. 저는 다음으로 벤치마크를 더 많은 적대적(adversarial) 엣지 케이스, 다단계 디버깅 작업, 그리고 일관성을 측정하기 위한 반복 실행을 통해 확장할 것입니다. 또한 신뢰성을 향상시키는 조건이 어떤 것인지 이해하기 위해 추가적인 추론 또는 도구 접근(tool access) 유무에 따른 성능 비교도 할 것입니다.
이러한 결과는 코딩 능력에 대한 보편적인 순위라기보다는 벤치마크의 과제 세트(task set), 모델 버전, 그리고 평가 설정 범위 내에서 해석되어야 합니다.
나의 벤치마크
python -m venv venv venv\Scripts\activate pip install -r requirements.txt
GitHub에서 보기
벤치마크, 평가 절차, 그리고 결과는 위에 있는 링크에서 확인할 수 있어 다른 사람들이 방법론을 검사하고(inspect), 비교를 재현하며(reproduce), 과제 세트를 확장할 수 있습니다.