Skip to content

TEST: 오픈소스 저장소의 실제 커밋으로 만든 공개 벤치마크 - #49

Merged
RosieOh merged 1 commit into
mainfrom
feat/public-benchmark
Sep 26, 2026
Merged

RosieOh merged 1 commit into
mainfrom
feat/public-benchmark

Conversation

@RosieOh

@RosieOh RosieOh commented Sep 26, 2026

Copy link
Copy Markdown
Contributor

무엇을

README의 맥락 적중률(키워드 24% → Lantern 67%)은 비공개 프로젝트 하나로 잰 것이라 다른 사람이 재현할 수 없었습니다(#7).

어떻게

질문과 정답을 실제 커밋에서 뽑음 (eval/bench/make.mjs)

  • 질문 = 커밋 메시지 제목, 정답 파일 = 그 커밋이 고친 코드 파일(테스트 제외), 평가 시점 = 그 커밋의 부모
  • 사람이 정답을 고르지 않아, 엔진을 아는 사람의 편향이 들어가지 않음
  • 거르는 커밋: 병합, 버전·문서·린트 손질, 새로 만든·지운·옮긴 파일, 코드 파일 4개 이상, 메시지에 정답 파일 이름이 나오는 것, 같은 정답 묶음은 2개까지
  • 저장소 3개: flask(Python), hono(TypeScript), commons-lang(Java), 각 20개. 커밋 SHA를 고정
  • 한국어 질문(q_ko): 같은 커밋 메시지를 사람이 옮김. 정답 파일은 같음

더 공정한 비교 (eval/retrieval.mjs)

  • 파일을 통째로 읽는 키워드 검색은 8,000 토큰에 파일 1~2개만 담겨 Lantern이 유리해 보였음. 그래서 맞은 줄 앞뒤 12줄씩만 가져오는 **키워드 검색(조각)**을 추가함
  • 처음 3개 파일 안에 정답: 많이 가져올수록 유리한 효과를 뺀 지표
  • 무작위 기준: Lantern이 가져온 것과 같은 수의 파일을 무작위로 골랐을 때의 기대 적중률
  • 질문에 parent가 있으면 질문마다 그 커밋으로 꺼내서 재고, 끝나면 원래대로 돌려 놓음 (깨끗한 클론만 허용)
  • Java·Go·C# 파일도 셈, --lang ko

한 번에 재현 (eval/bench/run.mjs): 저장소 받기 → 고정 커밋 → 영어·한국어 → eval/bench/결과.md 작성

결과 (예산 8,000 토큰, 모델 호출 없음)

키워드 (파일 통째로) 키워드 (조각) Lantern 무작위
영어 적중률 13% 41% 88% 10%
영어 처음 3개 15% 30% 65%
한국어 적중률 13% 38% 76% 8%
한국어 처음 3개 13% 27% 43%

저장소별 수치는 eval/bench/결과.md. README 두 벌의 수치를 이 결과로 바꾸고, 비공개 프로젝트 기록은 eval/결과.md에 초기 기록으로 남겼습니다.

한계 (eval/README.md에 적음)

Closes #7

README의 맥락 적중률은 비공개 프로젝트 하나로 잰 것이라 재현할 수 없었음. flask·hono·commons-lang의 실제 커밋 60개에서 질문(커밋 메시지)과 정답(고친 코드 파일)을 뽑고 부모 커밋 시점에서 재도록 함. 비교에 키워드 검색(맞은 곳 앞뒤만)과 무작위 기준, 처음 3개 파일 지표를 더해 많이 가져올수록 유리한 효과를 드러냄. 한국어로 옮긴 질문도 같은 정답으로 잼. README 수치를 이 결과로 바꿈.

Closes #7
@RosieOh RosieOh added type: test 테스트 추가/수정 area: eval 맥락 평가 (eval/) labels Sep 26, 2026
@RosieOh
RosieOh merged commit b46e2af into main Sep 26, 2026
3 checks passed
@RosieOh
RosieOh deleted the feat/public-benchmark branch September 26, 2026 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: eval 맥락 평가 (eval/) type: test 테스트 추가/수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

오픈소스 코드베이스로 공개 벤치마크 만들기

1 participant