원문 캡처 · loomcycle.dev
원문 캡처 · loomcycle.dev

ConditionalQA 벤치마크의 800개 질문에서 9B 매개변수 모델은 정답을 상위 5개에 넣은 비율이 94%였다. 27B 모델과 같은 비율이었고, 같은 하드웨어에서 약 세 배 빨랐다.

loomcycle 유지관리자 데니스 굽스키(Dennis Gubsky)는 검색 결과를 재정렬하는 실험을 공개했다. 글쓴이의 결과에 따르면 작은 모델을 로컬에서 실행해도 상위 몇 개 결과가 중요한 검색 시스템에서 연산량을 줄일 수 있다.

검색 결과 재정렬은 무엇인가?

검색 시스템은 먼저 질문에 답할 만한 문서 후보를 빠르게 모은 뒤, 후보의 순서를 다시 정하는 경우가 많다. 재정렬은 이 두 번째 단계다. 후보를 고르는 일을 사서의 책장 정리에 빗대면, 재정렬은 찾은 책들 가운데 필요한 책을 앞쪽에 놓는 일이다. 여기서는 언어 모델이 후보 문서의 순서를 정한다.

어떤 방법을 비교했나?

굽스키의 실험은 공개 벤치마크 ConditionalQA의 질문 800개를 대상으로 했다. 질문마다 검색 색인에서 후보 문단 20개를 가져와 다섯 방법으로 순서를 정했다. 모든 모델은 Ollama를 통해 로컬에서 실행했고, 클라우드 API는 사용하지 않았다. 전체 절차는 자체 하드웨어에서 돌렸다.

첫 번째 방법은 재정렬 없이 검색 색인이 반환한 순서를 그대로 쓰는 기준선이다. 비교 대상인 나머지 방법은 다음과 같다.

  • 현재 서비스에 쓰는 방식은 27B 매개변수 일반 언어 모델 qwen3.8이 후보 20개를 한꺼번에 읽고, 새 순서를 문장으로 출력한다.
  • 9B 매개변수 결정 모델 nimble을 한 번 호출하는 방식은 후보 가운데 질문에 가장 잘 답하는 문단을 고르게 한다. 모델은 20개 후보 각각에 대한 확률도 반환한다.
  • 같은 9B 모델을 질문당 20번 호출하는 방식은 후보 하나씩 질문에 답하는지 예·아니요로 판단하게 한 뒤, ‘예’일 확률에 따라 정렬한다.
  • 4B 매개변수 모델 tev1도 후보를 하나씩 판단하는 방식으로 시험했다.

결정 모델은 문장을 생성하는 대신 정해진 선택지에 대한 답과 확률을 출력한다. 실험 글은 이 형식이 후보 번호를 만들어 내거나 설명을 덧붙이는 문제를 줄인다고 본다.

방법recall@1recall@5질문당 시간
재정렬 없음0.580.87해당 없음
서비스 중인 27B 모델(문장 출력)0.810.94약 4.4초
9B 결정 모델 1회 호출0.780.94약 1.5초
9B 결정 모델 20회 호출0.700.94약 4.8초
4B 결정 모델 20회 호출0.620.88약 4.7초

recall@5는 정답이 상위 5개 안에 들어간 비율이고, recall@1은 가장 먼저 제시된 결과가 정답인 비율이다. 9B 모델을 한 번 호출한 방식은 recall@5에서 27B 모델과 같은 0.94를 기록했고, 같은 하드웨어에서 질문당 약 1.5초가 걸렸다. 20회 호출 방식도 recall@5는 같았지만 질문당 약 4.8초로 더 빨라지지 않았다. 4B 모델은 재정렬하지 않은 경우보다 조금 나은 수준에 그쳤다.

글쓴이는 9B 결정 모델이 상위 5개에 정답을 넣는 성능을 측정 가능한 손실 없이 유지하면서 재정렬 연산량을 약 3분의 2 줄였다고 해석한다. 다만 가장 좋은 답을 첫 번째에 놓는 recall@1은 27B 모델의 0.81보다 낮은 0.78이었다. 후보 20개 중 하나를 고르는 확률은 1위 후보를 고르는 데는 유용하지만, 그 아래 순위의 후보들을 세밀하게 구분하는 데는 약할 수 있다는 설명이다. 상위 3~5개를 살펴보는 에이전트에는 차이가 작을 수 있지만, 첫 번째 결과만으로 바로 행동하는 제품에는 작은 모델이 적합하지 않을 수 있다.

확률로 답을 모를 때를 판별할 수 있나?

실험은 후보 문단 중 어느 것도 답이 아닐 때 시스템이 답변을 보류할 수 있는지도 살폈다. 질문마다 정답 문단이 포함된 후보 묶음과 포함되지 않은 묶음을 만들고, 정답이 있는 묶음에 더 높은 점수를 주는지 비교했다. 정답이 있는 묶음의 점수가 더 높은 경우는 75%였으며, 실험에서 목표로 삼은 85%를 넘지 못했다.

확률값도 실제 정답률과 맞지 않았다. 모델이 97% 확신한다고 표시한 경우 실제로 맞은 비율은 42%였다. 확신도가 50~90%인 경우에는 정답률이 15%에도 미치지 못했다. 따라서 상대 후보의 순위를 정하는 데는 확률을 쓸 수 있어도, 확률값 자체를 정답일 가능성으로 해석하기 어렵다는 결론이다.

벤치마크는 질문마다 특정 문단 하나만 정답으로 표시한다. 후보에 포함된 다른 문단도 실제로는 답을 담고 있을 수 있어, 42%라는 정답률은 실제보다 낮게 측정됐을 가능성이 있다. 그렇더라도 현재 결과만으로 확률을 답변 보류 기준으로 쓰기에는 부족하다고 글쓴이는 판단했다.

후속 시험에서는 같은 모델 계열의 새 결정 모델 clef(27B, 멀티모달)와 clef-flash(9.1B)를 다른 벤치마크인 LoCoMo 메모리 재정렬의 질문 300개에서 비교했다.

모델recall@5지연 시간 관련 결과
nimble0.750비교 기준
clef0.739nimble보다 3배 넘게 느림
clef-flash0.711원문에 구체적 비교 수치 없음

두 새 모델 모두 nimble을 앞서지 못했다. 확률 보정은 nimble의 과신과 달리 새 모델에서 과소신하는 쪽으로 달라졌지만, 답변 보류 기준으로 삼기에는 여전히 충분하지 않았다. 글쓴이는 재정렬 용도로 nimble을 권하지만, 800개 질문으로 얻은 결과가 모든 자료 집합에 자동으로 일반화되지는 않는다고 덧붙였다.

상위 몇 개 결과가 중요하다면 9B 모델을 고려할 수 있다. 첫 번째 결과 하나만으로 판단해야 하고 오답을 감수하기 어렵다면, 글쓴이는 더 큰 일반 모델을 유지하거나 두 모델을 함께 쓰는 방안을 제시한다. 다만 원문은 실험 하드웨어의 구체적인 사양과 다른 자료 집합별 세부 성능, 모델을 결합하는 방법은 밝히지 않는다.