본문 바로가기

논문 리뷰/Language Model

WebGLM: Towards An Efficient Web-Enhanced Question Answering System with Human Preferences

BingAI랑 똑같은 느낌? 처음에 되게 신기했는데 이런 원리였구만?

 

[Github]

[arXiv](Current version v1)

 

 

Abstract

General Language Model(GLM)을 백본으로 하는 웹 검색 기반 질의응답 시스템인 WebGLM 제안

 

 

Introduction

최근 WebGPT와 같이 웹 검색과 같은 외부 지식을 활용하여 LLM을 구축하는 데 노력이 집중되고 있다. 하지만 WebGPT 방법은 실제 배포와는 거리가 먼데,

  • 잘 작성된 답변 및 선호도 라벨링에 대한 전문가 수준 주석에 의존하므로 상당한 비용, 시간 및 교육이 필요하다.
  • WebGPT-13B가 500 토큰 프롬프트에 응답하는 데 약 31초로 너무 느리다.

 

WebGLM:

  • An LLM-augmented Retriever : 대략적인 웹 검색과 세분화된 LLM 추출 검색을 구현하는 2단계 검색기
  • A Bootstrapped Generator : 전문가의 글에 의존하는 대신 LLM이 적절한 인용 기반 필터링을 통해 고품질 데이터를 생성하는 방법을 학습
  • A Human Preference-aware Scorer : 온라인 QA 포럼의 사용자 신호를 통해 훈련된 채점기

 

WebGLM은 유사한 규모의 WebGPT-10B를 능가하고 WebGPT-175B와 비슷한 성능을 보여준다.

 

 

 

The WebGLM System

LLM 기반 웹 강화 QA 시스템은 3가지 구성요소로 이루어져 있다. 검색기, 생성기, 채점기.

 

1. LLM-augmented Retriever

기존의 open QA에서는 웹페이지 정제가 어려워 신뢰성 있는 소스(e.g. wikipedia)에서만 검색을 수행한다. WebGLM은 2단계 검색을 통해 이를 극복하려고 한다.

 

1.1 Coarse-grained Web Search

웹 검색 엔진(e.g. google)을 활용하여 10개 미만의 후보 웹페이지(관련 없는 정보가 포함되어 있더라도 답변에 필요한 맥락과 지식을 다룰 수 있다.)의 URL을 얻고, 크롤링하고, HTML2TEXT로 일부 내용 추출.

 

병렬 비동기 로드 등 속도 최적화를 위한 노력 덕분에 쿼리를 매우 빠르게 로드할 수 있다.

 

1.2 Fine-grained LLM-augmented Retrieval

LLMs’ Reference Adoption

LLM의 Reference adoption 특성을 소형 검색기에 이전하려고 한다. LLM의 지식을 이어받은 검색기는 더 관련 있는 참조를 채택할 수 있다.

 

Augmentation Implementation

참조 채택 지식을 GPT-3에서 Contriever로 이전하기 위해 bootstrapped dataset WebGLM-QA에서 Contriever를 fine-tuning. (다음 챕터에서 후술)

 

Speed analysis

검색의 90%가 10초 이내에 로드됨. 빠르다.

 

요약하면 질문에 대해 검색 후 몇 개의 웹페이지를 병렬로 가져오고, 문단을 추출하고, LLM의 지식을 증류받은 Contriever로 순위를 매긴 다음 상위 5개 문단을 가져온다.

 

2. Bootstrapped Generator

QA dataset을 전문가가 직접 만드는 것은 매우 비용이 많이 들기 때문에 데이터 부트스트랩 활용.

고품질 필터링 샘플과 필터링되지 않은 샘플이 포함된 인용되고 긴 QA dataset인 WebGLM-QA 만듦.

 

데이터셋은 D(Q, A, R, C)로 공식화될 수 있다.

차례로 question, answer, reference, (q, a, valid reference) set.

 

또한 답변 𝛼 ∈ A는 다음과 같이 인용된 텍스트 s와 참고 문헌 ∇의 집합이다.

 

2.1 In-context Learning Inference

ELI5 dataset의 질문 집합 Q, vanilla Contriver, 그로부터 생성된 참조 R.

OpenAI text-davinci-003 API에서 in-context learning을 수행하여 최상의 부트스트랩 전략을 추적한다.

 

 

Instruction Inducting

질문과 참조의 순서, 사용된 기호 등 여러 유형의 프롬프트를 비교하여 최적의 답변을 생성하는 프롬프트를 찾음. (a)

 

Instruction Inducting

최근 연구에 따르면, LLM이 자체적으로 in-context learning을 위한 명령어를 설계하게 할 수 있다. (b)

 

Few-shot In-Context Learning

최종적으로 (c)와 같이 LLM이 생성한 답변, 명령어를 활용하여 one-shot 형식으로 답변을 유도하는 것이 가장 답변의 질이 좋았다고 한다.

 

2.2 Citation Correction

위와 같은 방법으로 인용문 형식의 긴 답변을 대량생산한다. 하지만 인용이 잘못된 경우, 특히 내용은 맞지만 인용 번호가 틀린 경우가 많았다. 따라서 Rouge-1 score 측정.

 

2.3 Filtering

  • Hallucination : 참고 문헌과 답변과의 낮은 중복률을 통해 사실에 근거하지 않고 LLM의 내부 지식을 활용한 경우를 걸러낼 수 있다.
  • Few citations : 적은 수의 참고 문헌을 인용한 경우
  • Low citation accuracy : 잘못된 인용이 많은 경우

필터링 후 샘플 수 83k → 45k. 남은 데이터는 고품질 WebGLM-QA dataset이 됨.

백본으로 GLM 사용.

 

3. Human Preference-aware Scorer

최근 연구에서는 인간 선호도를 사용하여 LLM을 fine-tuning 하면 동작을 크게 개선할 수 있다고 한다.

 

Data collection and preprocessing

Online QA forum에서 QA pair와 사용자 추천 수집. 하지만 품질이 너무 다양하여 전처리가 필요하다.

  • High quality feedback : 일정 이상의 추천 수가 있는 답변을 유효한 답변, 일정 이상의 유효한 답변이 있는 질문을 유효한 질문으로 선택
  • Length-bias mitigation : 모든 답변의 중간 길이 x에 대하여 x보다 길거나 x/2보다 짧은 답변은 제거
  • Contrast augmentation : 비슷한 추천 수의 답변들 사이에서는 유효한 정보를 얻을 수 없다. 추천수를 내림차순으로 정렬한 뒤 5순위 이상 떨어진 답변 쌍을 선택한다. 추천 수가 많은 답변이 더 좋은 답변이라는 것을 알 수 있다.

 

Supervised fine-tuning (SFT)

채점기의 백본 역시 GLM.

대조 학습을 위한 초기화로 Reddit TL;DR(Too Long Don't Read) dataset에서 16 epochs 동안 학습.

 

Comparison training

출력 차원이 1인 선형 헤드를 사용하 점수 간의 격차가 최대화되도록 학습.

 

빠르게 과적합되기 때문에 정규화, 대규모 배치, 드롭아웃 활용. 학습이 완료된 후 정규분포에 맞게 보정.