RAG등을 활용할 경우, Query와 연관이 있는 문서를 가져오고 순위를 정하는 것은 중요함. 기존 연구들에 따르면, Ranking을 정하는 Tuning된 모델의 성능을 이기는 것은 매우 어려웠다.
- PairWise, ListWise 방법을 깊게 살펴보고 -> LLM들이 Ranking문제를 완전히 이해한 것은 아니다라는 결론을 내림.
- 이 연구 -> PairWise Ranking Prompt 기법을 사용하여 LLM의 부담을 줄이는 방법을 제안
- 중간 크기의 LLM을 사용하여 GPT4에 근접한 성능을 보임.
1. Introduction
GPT는 ZeroShot상황에서도 매우 뛰어난 성능을 보인다. 허나 LLM은 문서의 Ranking을 하는 부분에 있어서는 부족한 부분이 있다. (Nogueira et al. (2020); Zhuang et al. (2023)의 연구에서는 잘 훈련된 모델이 Ranking을 더 잘하는 모습을 보임)
LLM을 활용하여 Ranking을 하는 연구도 있었으나, 비용적 측면과, 입력문서의 순서가 바뀌면 성능의 변동성이 커지는등의 한계성을 갖고 있다.
기존 Ranking방식인 PointWise, ListWise에 대해서 설명하고 각각의 한계점을 도출하고 이를 극복하기 위한 PRP를 제안한다.
이 연구에서 기여한 부분은 3가지로
공개된 문헌에서 처음으로 LLM을 통한 pairwise ranking prompting이 랭킹에 효과적인 것으로 나타났다. 간단한 프롬프트와 스코어링 메커니즘으로 광범위한 데이터 세트에서 최첨단 랭킹 성능을 제공할 수 있다.
GPT4와 같은 모델을 사용하지 않고, 오픈 소스 LLM을 기반으로 하여 추가 연구를 촉진 할 것이다.
몇 가지 효율성 개선 사항을 연구, 유망한 실험 결과를 보여준다.
2. Difficulties of ranking tasks for LLMs
자 그렇다면 왜 LLM은 Ranking을 잘 못하나? PointWise, ListWise와 같이한번 살펴보자.
2.1 Pointwise approaches(Figure 1. 그림(a))
포인트와이즈를 쉽게 말하면, 문서1,2,3,4,...,k가 있을 때, 질문과 문서가 얼마나 유사한지 각각 점수를 매긴다.(yes)
문서1 -> 0.34(yes), 0.66(no)
문서2 -> 0.2(yes), 0.8(no)
문서 3 -> 0.1(yes), 0.9(no)
,,,
문서 k -> 0.9(yes), 0.1(no)
점수에 맞게 문서를 내림차순으로 정렬한다.
(Threshold가 0.5일 경우, 문서 k의 경우 s_i = 1.9)
그렇다면 PointWise의 문제점은 무엇인가. 1. 문서별로 점수를 측정하려면, 객관적인 점수가 나오도록 보장이 되어야 한다. 다만 이는 프롬프트에서는 달성하기가 어렵다. -> 랭킹은 상대적 비교이기 때문에, 절대적 점수를 구하는 것이 불필요함 2. 예측의 로그 확률이 필요함. GPT-4와 같이 일반적으로 사용되는 생성 API에서는 포인트 방식이 작동하지 않는다.
2.2 ListWise approaches(Figure 1. 그림(b))
리스트와이즈를 쉽게 말하자면, 질문과 여러 문서 {1,2,3,4,5}를 LLM에게 순위를 정하라는 인스트럭션을 제공한다.
이때 OpenAI InstructGPT davinci 003에서 작업을 했을 경우, FineTuning한 Ranker모델보다 심각한 언더 퍼포먼스를 보였다.
(showing significantly worse performance than fine-tuned baseline rankers.)
ListWise의 문제점(난이도) 여러가지의 이슈들이 있다. 1. 누락 : LLM이 입력 문서보다 적은 문서만 리턴하는 경우 2. 거부 : 순위를 매기지 않고, 관련 없는 출력을 생성 3. 반복 : 동일한 문서를 두 번 이상 출력 4. 불일치 : 동일한 문서 목록이나, 순서를 다르게 주었을 때, 다른 출력 순위를 주는 경우.
3. Pairwise Ranking Prompting
이 연구에서 주장하는 PRP를 살펴보자. 여기서 사용한 LLM은 오픈소스 모델이며. 프롬프트 기반 임으로 파인튜닝을 진행할 필요가 없다.
3.1 Prompt Design
PRP는 u(q, d1, d2)로 표현된다. 여기서 q는 query를 의미하고, d1은 문서 1, d2는 문서2를 의미한다.
PRP는 두가지 모드 scoring, generation을 제공한다.
과거 연구에서 문서의 순서가 결과에 민감하게 반응하여, PRP는 u(q, d1, d2) 및 u(q, d2, d1) 모두 진행한다.
이때 문서의 순서를 바꾸더라도 똑같은 결과물이 나와야 ranking을 할 수 있고, 두개의 결과과 모순적이라면 d1=d2라고 생각한다.
3.2 All pair Comparison
All-pair방식으로 i번째 document의 스코어를 구한다고 가정할 경우, 위 식을 통해 계산된다.
i를 제외한 모든 문서 쌍과 비교를 진행하고, 만약 i번째 document가 j번째 document보다 크면 1의 스코어를 갖고, 만약 두개의 문서가 동일하다면 0.5의 스코어를 더한다.
글쓴이가 이해한 방법대로 코드를 작성하면 아래처럼 작성할 수 있을 것이다.
장점 : 구현이 간단함. 입력 순서에 민감하지 않음. 이 논리가 작동한다는 이론적 background가 탄탄함. 단점 : O(n2)의 복잡도를 가지고 있음. 따라서 비용이 비쌈.
3.3 Sorting Based
퀵소트 및 힙소트와 같은 효율적인 알고리즘을 사용하는 것에 대해 생각해봄.
이 연구에서는 O(NlogN)의 복잡도를 보장하기 위해 힙소팅 알고리즘을 사용하였음
여기서는 PRP-Sorting이라고 명명함.
3.4 Sliding Window
계산 복잡도를 낮출 수 있는 슬라이딩 윈도우 접근 방식을 제안한다. 버블 정렬 알고리즘과 비슷한데, 초기순위가 주어지면 목록의 맨 아래부터 시작해 LLM출력에 따라 1보폭으로 문서 쌍을 비교한다.
4. Experiments on TREC DL datasets
데이터 : 정보 검색 영역에서 널리 사용되는 벤치마크 데이터인 TREC 데이터 셋을 사용하였음.