alexziskind1/codeneedle

A long-context code retrieval and reproduction benchmark.

해결하는 문제

CodeNeedle는 긴 컨텍스트 창에서 LLM의 '위치 기억' 능력을 측정하기 위해 설계된 벤치마크입니다. 단순한 이름 기반 엔티티 검색과 달리, 모델이 대규모 소스 코드 코퍼스를 컨텍스트에 포함한 상태에서 특정 함수 본문의 처음 N줄을 정확하게 정확히 재현할 수 있는지 테스트합니다.

작동 방식

이 도구는 소스 코드 코퍼스(Python 또는 JavaScript)를 LLM의 컨텍스트에 로드하고, 함수의 정확한 서명을 기반으로 해당 함수 본문을 재현하도록 모델에 프롬프트합니다. 그런 다음 모델의 출력을 정답 소스 코드와 비교하며, 빈 줄은 무시하는 스코어링 정책을 사용합니다(스코어를 과대평가하지 않기 위해), 그러나 선택적으로 주석과 문서 문자열을 포함할 수 있습니다. 이 프로젝트는 실제 세계의 코퍼스(예: jQuery 및 Python의 http_server)와 '신규'로 합성적으로 생성된 코퍼스를 제공하여 모델이 훈련 데이터 기억에 의존하지 않도록 합니다.

대상 사용자

  • AI 연구자 및 개발자: LLM의 효과적인 컨텍스트 창과 검색 능력을 테스트하기 위해.
  • 모델 평가자: 다양한 모델 아키텍처, 양자화, 추론 능력(예: 추론 모델 vs. 비추론 모델)을 비교하기 위해.

주요 특징

  • 신규 코퍼스: 훈련 데이터 재현이 아닌, 불투명한 식별자를 포함한 결정론적으로 생성된 Python 코드를 포함합니다.
  • 크래시 안정성: 각 쿼리 후 결과를 원자적으로 기록하므로, 수시간의 추론을 잃지 않고 실행을 재개할 수 있습니다.
  • 엄격한 스코어링: 빈 줄을 제외하고 인덴트 차이를 처리하는 정교한 스코어링 시스템을 구현합니다.
  • 시각화: Plotly 기반 대시보드 빌더를 제공하여 다양한 모델과 코퍼스 간 성능을 시각적으로 비교할 수 있습니다.
  • 다국어 지원: .py, .js, .mjs, .cjs 파일을 지원합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트