벡터 기반 문서 검색기 둘이 같은 질문에 같은 문서를 내놓았다고 해 보자. 하나는 모든 벡터를 비교했고 다른 하나는 일부 후보만 빠르게 살폈다. 빠른 쪽이 전수 검색의 결과를 잘 따라간다면 근사 검색기로서는 좋은 성적이다. 그런데 두 검색기가 고른 문서에 질문의 답이 없다면 어떨까. 전수 검색 결과를 정답표로 쓴 채점에서는 여전히 맞힌 검색이 된다.
이 가정에서 먼저 볼 것은 두 검색기의 실패가 갈리는 지점이다. 전수 검색은 필요한 근거를 찾는데 근사 검색만 놓쳤다면, 후보를 더 살폈을 때 그 근거가 돌아오는지 확인해 볼 수 있다. 전수 검색조차 답 없는 문서를 골랐다면, 그 결과를 더 충실히 재현하는 것만으로는 문제가 풀리지 않는다. 문서를 벡터로 만드는 방식이나 문서 구간, 질문 표현을 더 조사할 수 있다. 어느 항목이 원인인지는 이 비교만으로 정해지지 않는다.
전수 검색을 따라가는 성적
벡터 검색은 문서와 질문을 숫자 배열로 표현하고 정해진 유사도 기준으로 가까운 항목을 찾는다. 여기서 exact-vector recall은 정확한 벡터 검색 결과를 얼마나 회수했는지를 보는 지표다. 예를 들어 Apple의 KeyNet은 고정된 키와 학습 질의를 바탕으로 질의를 예측한 최적 키 벡터 쪽으로 변환한 뒤 IVF라는 벡터 인덱스로 넘기는 접근이다. 이런 방법의 exact-vector recall 성적은 목표로 한 벡터를 찾는 능력을 평가한다. 가까운 문서에 실제 답이 있는지, AI가 그 답을 제대로 설명했는지는 별도로 확인할 문제다.
같은 질문에 정답표를 둘 둔다
검색 인덱스를 바꿔 보려면 질문별로 전수 검색이 고른 문서와 실제 답을 뒷받침하는 문서를 따로 적어 두는 방법이 있다. 첫 번째 표는 근사 검색의 손실을 확인하는 데 쓰고 두 번째 표는 필요한 근거가 검색됐는지 판단하는 데 쓴다. 둘이 다르면 그 차이 자체가 조사할 대상이다. 사람이 정한 근거 목록도 빠진 문서가 있을 수 있으므로 추가 근거를 발견하면 고칠 수 있게 남겨 둔다.
필요한 근거까지 검색됐다면 다음에는 AI가 그것을 어떻게 썼는지 본다. 인용한 문장이 실제 결론을 지지하는지, 자료의 조건을 답변에서 지켰는지 확인한다. 근거를 전달한 뒤의 답변 실패를 모두 벡터 인덱스의 탓으로 돌리면 이 부분은 검사에서 빠진다. 검색 결과와 답변을 나눠 기록해야 인덱스를 바꿀지, 답변 생성 쪽을 고칠지 비교할 수 있다.
이 방법을 제안한다고 특정 검색기의 우열이 정해지는 것은 아니다. 처음 가정한 두 검색기로 돌아가 보면 채점할 항목이 늘었다. 빠른 검색기가 전수 검색을 얼마나 따라갔는지와 두 검색기가 답에 필요한 근거를 찾았는지를 따로 보게 된다. 전수 검색에 답 없는 문서가 올라왔다면 그 문제도 기록에 남는다. 같은 문서를 더 정확히 되찾는 데 성공했다는 이유로 지워지지 않는다.