Skip to content

Retrieval Audit 06 KO

teamswyg edited this page Sep 30, 2026 · 1 revision

검색 자료 점검 06: 2,400개의 서로 다른 질문을 준비하기

English · 집계 결과

아직 검색 성능 시험이 아니다. 24개 질문에 후보 100개씩을 붙여도 질문 2,400개가 되지는 않는다. 기존 CoSQA 분류 시험의 실패를 유지하면서, 실제 후보 찾기 시험에 쓸 별도 자료의 편향과 분리 가능성을 조사했다. 원문·질문·코드·가중치는 공개하지 않는다.

확인한 수치

항목 수
함수/설명 쌍 14,291
저장소 213
소문자·공백 정규화 후 고유 설명 11,678
주석·서식을 제외한 고유 Go 토큰열 14,291
설명에 함수 이름이 독립된 단어로 등장 12,908
설명 전체가 코드에 정규화 후 그대로 포함 2
설명이 세 단어 미만 104
경로·함수 발췌문에서 찾은 생성 코드 단서 34
저장소·동일 설명·동일 코드로 연결한 그룹 205

함수 이름 출현은 대소문자를 무시하고 문자·숫자·밑줄 단어 경계를 확인한다. 이것만으로 부정한 데이터 누출이라고 단정하지 않는다. 다만 사용자가 함수 이름을 모르는 탐색 능력과 이름 검색 능력을 구분해야 한다. 전체 행에서 함수 이름이 없는 행은 1,383개이므로 현재 자료만으로 '함수 이름을 모르는 질문 2,400개' 시험을 만들 수 없다. 같은 설명을 재작성해 수만 채우지 않는다.

codeKey는 Go scanner로 주석·서식을 제거하지만 문자열 내용과 토큰 경계를 유지한다. 변수명 변경·의미상 복제까지 찾았다는 뜻은 아니다. 동일 저장소 또는 동일 설명/코드로 연결된 사례를 같은 그룹으로 묶어 향후 학습/평가 누출을 줄일 수 있다. 가장 큰 그룹은 한 저장소의 2,579개라, 그룹 하나로 수치 목표를 채우는 것을 피하고 출처별 성능도 보고해야 한다. 아직 분할이나 제외 정책을 확정하지 않았다.

생성 코드와 이용 조건

원천은 CodeSearchNet 배포본의 고정 Parquet다. SHA256은 cb78d8951e9623bc2460d9b29c3c4152724f28c4f685fc019e0aafa071d2b18f, 크기는 9,751,451바이트다. Python은 유지관리용 Parquet 투영에만 쓰며 점검 계산은 Go다.

경로만 보고 생성 코드를 확정할 수 없다. chromedp/cdproto는 2,579개 행과 114개 경로를 차지한다. 표본으로 원천 commit의 domstorage.go를 확인했으며 헤더에 Generated by the cdproto-gen command.가 있었다. 확인한 파일 SHA256은 86521cac6e076b84c700a6236787d5be52fb211ab06de518db919fe76d48efa0이다. 이것으로 나머지 113개 파일도 검사했다고 주장하지 않는다. 따라서 위의 34개는 생성 코드 전체 수가 아니다.

vendor 경로가 0개여도 제3자 코드가 없다는 의미는 아니다. 기존 출처·루트 라이선스 점검은 일부 저장소만 다룬다. 파일별 고지, 생성 코드, 중복과 질문 출처를 추가 점검해야 하며, 결과의 license_cleared=false를 유지했다. 설명 기반 질문은 실제 사용자 요청과 구분한다.

다음 평가 계약

  1. 검색 질문은 최소 2,400개의 서로 다른 질문으로 센다. 후보 수, 반복 실행, 번역·단순 재작성으로 수를 부풀리지 않는다.
  2. 실제 자연어 탐색 주장은 함수 이름을 모르는 독립 질문 자료가 필요하다. 현재 설명 기반 시험은 별도 대리 지표로 기록한다. 이름 유무별 결과를 나누고, 이름 제거 시험은 인위적인 보조 시험임을 표시한다.
  3. 저장소·중복 연결 그룹을 분리하고 출처별 결과와 집중도를 공개한다. 이용 조건이 확인된 자료만 채택한다. 모델 점수를 보고 쉬운 사례를 고르지 않는다.
  4. 알려진 정답 함수의 순위, Recall@k/MRR, 검사 후보 수, 준비 시간, 검색 p50/p95, 전체 RSS를 측정한다. 다른 후보는 미판정이며 무조건 오답으로 세지 않는다.
  5. 실제 에이전트 작업 성공률·총 시간·LLM 사용량은 별도 시험이다. 이 자료의 점수로 비용 절감이나 실사용 준비 완료를 주장하지 않는다. CoSQA reserve 두 묶음은 그대로 미평가 상태다.

재현

고정 Parquet와 유지관리용 PyArrow 환경을 준비한 뒤 실행한다. 투영 파일은 원문을 포함하므로 .cache 밖에 공개하지 않는다. 출력 파일은 새 것이어야 한다.

python scripts/training/project_retrieval_audit.py \
  --input .cache/codesearchnet-go/go/test-00000-of-00001.parquet \
  --output .cache/retrieval-audit-new.jsonl
go run ./cmd/riido-retrievalaudit --input .cache/retrieval-audit-new.jsonl

Go CLI는 로컬 JSONL을 점검하는 도구이며 입력 전체 64MiB/행 2MiB/100,000행 한도를 둔다. 미지 필드·여분 JSON·빈 자료를 거부한다. 원천 고정 해시는 투영 도구가 확인하고 Go 결과는 투영 파일의 해시를 기록한다. Go CLI 단독으로 출처를 인증하지는 않는다. 맵은 오프라인 중복 점검에만 사용하며 추론 경로가 아니다.

Apple M4 Pro/Go1.27.1에서 컴파일된 점검 도구의 재실행은 wall 0.66초, user CPU 0.30초, 최대 RSS 63,143,936바이트였다. 출력은 첫 실행과 바이트 단위로 같았다. Parquet 투영·다운로드 시간은 포함하지 않으며 모델 추론 성능도 아니다.

Clone this wiki locally