DeepLearing/NLP(LLM)

[논문리뷰] In-Context Retrieval-Augmented Language Models

notdecidedyet 2024. 9. 8. 17:59

요약 : 

 

Abstract

  • Retrieval-Augmented LM (RALM, 검색증강언어모델) : 텍스트 생성 과정에서 LM에 관련 정보를 제공하여 성능 향상됨이 입증.
    또한, 할루시네이션 문제를 줄이고, 정보의 출처제공하는 장점도 있음.
  • 기존 문제 : 기존의 RALM 접근법들은 외부 정보를 통합하기 위해 LM 구조 자체를 변경해야 했다.
  • 이 논문에서는 대안으로 '문맥 기반 RALM'을 제안 :
    LM 구조를 그대로 유지한 채, 입력 텍스트 앞에 관련 문서를 추가하는 방식으로, LM의 추가 학습 없이도 적용할 수 있다.
    API에서 활용할 수 없음.

 

1. Introduction

  • 현 LM은 좋긴 좋으나, 외부 지식에 접근하는 데 있어 본질적인 한계를 가지고 있다.
  • 언어 모델은 출처가 없다.
    학습 과정에서 접하지 못한 최신 정보를 반영하기 위해서는 추가 학습이 필요하며, 사실과 다른 내용이나 오류를 생성하는 경향이 있다이 문제는 모든 LM 생성에서 나타나며, 특히 일반적이지 않은 도메인이나 개인 데이터를 다룰 때 더욱 심각하다.
    • 이러한 문제를 해결하기 위해
      검색 증강 언어 모델링(RALM)
      이 있다
      - RALM은 텍스트 생성 과정에서 외부 지식 소스에서 관련 문서를 검색하여 LM에 제공함으로써 모델의 출력을 보강한다.
         (i) 문서 선택
         (ii) 문서 읽기: 선택된 문서를 LM 생성 과정에 어떻게 통합할지 결정하는 과정
  • 최근 소개된 주요 RALM 시스템들은 :
    • 주로 언어 모델 아키텍처를 변경하는 데 초점을 맞추고 있다
      • RETRO : 문서 읽기를 위해 LM 아키텍처에 상당한 수정을 가하고 추가 학습을 필요로 하는 반면, 문서 선택에서는 기존의 고정된 BERT를 사용한다. 아키텍처 변경재학습의 필요성으로 인해 활용성이 낮았다.
  • 본 논문에서는 :
    • 간단한 문서 읽기(document reading) 메커니즘으로도 큰 효과를 얻음
    • 문서 선택 메커니즘을 언어 모델링 작업에 맞게 조정하여 성능 향상을 얻음.
    • 기성 언어 모델을 사용하면서도, (심지어 API를 통해 접근하는 경우에도) RALM의 많은 이점을 실현할 수 있음을 보인다.
      • 문맥 내 RALM'이라 명명한 간단하지만 강력한 RALM 프레임워크를 제안(3장).
        매우 간단한 문서 읽기 메커니즘 : 선택된 문서를 LM의 입력 텍스트 앞에 단순히 추가하는 것(그림 2 참조).
        -> LM의 변수를 2-3배 늘리는 것과 동등한 성능 향상

 

2. Related Work

RALM 접근법은 크게 두 가지 모델군으로 나눌 수 있다:

  • (i) 최근접 이웃 언어 모델(kNN-LM이라고도 함)
  • (ii) 검색 및 읽기 모델 : 이 연구는 두 번째 그룹에 속하나, LM의 추가 학습이 필요 없다
    • 문서 선택문서 읽기 구성 요소가 있다.
      이전의 모든 연구는 LM 훈련을 포함한다
    • 과거 연구들...
      - 인코더-디코더 아키텍처를 미세 조정
      - 문장 임베딩 공간에서 최근접 이웃 클러스터에 대해 자기회귀 LM을 사전 학습
      - 고정된 LM을 프롬프트 튜닝하여 리더로 사용
      - 검색 증강 양방향 마스크 LM을 사전 학습했고, 이후 개방형 질문 답변을 위해 미세 조정

    • RETRO : 이 논문과 유사한 연구
      • 청크 단위로 나뉘어진 문서들... 
      • autoregressive LM을 수정하여, decoding시에 청크들과 cross-attention을 수행하여, 관련된 문서 정보에 집중한다.
    • 이 연구와 RETRO연구와 다른점은...
      • LM학습 없음.
      • LM 성능 향상을 위해 문서를 선택하는 방법에 초점을 맞춤.

 

3. Our Framework

3.1 In-Context RALM

 

LM의 next token prediction : 
이전 토큰들의 시퀀스 -> 다음 시퀀스의 확률이 가장 높은 xi를 선택함.

 

 

검색 증강 언어 모델(RALM)은

  • 외부 코퍼스 C에서 하나 이상의 문서를 검색
  • 이 문서들을 기반으로 위의 LM 예측을 조건화(prefix로 넣음)
    • 구체적으로, xi를 예측할 때, 외부 코퍼스 C로부터의 검색 작업은 그 접두사(RC)에 의존된다.
    • 따라서 가장 일반적인 RALM은:
      • p(x1, ..., xn) = Πni=1 p(xi|x<i, RC(x<i)). 

 

In-Context Learning의 성공에서 영감을 받아... In-Context RALM을 제안

생성될 토큰들의 앞부분Retrieve된 문서들을 넣어준다.

  • Query : 해리포터 시리즈에서 주인공의 성장과정을 설명해주세요
    • Retrieved Documents:
      - 11살의 해리는 자신이 마법사라는 사실을 모른채 살아왔다...
      - 볼드모트와의 첫 대결에서 해리는 용기와 결단력을 보여주었다...
      ...
    • In-Context RALM 예시
      - P(xi | (11살의 해리는..., 볼드모트와의 첫...) ; (해리는 11살까지 마법사임을))

일반적인 트랜스포머 기반 LM 구현은 제한된 길이의 입력 시퀀스만 지원하기 때문에, 이 제한을 초과할 경우, 앞부분의 토큰들을 제거해간다.

 

3.2 RALM Design Choices

RALM 시스템에서 자주 이루어지는 두 가지 실용적인 설계 선택에 대해 논의(Retrieval Stride, Retrieval Query Length)

  • Retrieval Stride : 
    • 매 토큰을 생성할때마다 retrieval 작업을 수행할 수 있으나, 비용상의 이유로 s > 1 토큰마다, 검색을 수행함.
    • 이때 여기서 s를 검색 간격(Retrieval Stride)라고 명명 
    • 아래 식에서, n_s = n/s 로, 검색 간격을 의미함.
    • 아래 식에서 s=1인 경우 식(2)로 치환됨.

  • Retrieval Stride는 두가지 런타임 비용이 발생
    • a) applying the retriever itself
    • b) Prefix 임베딩을 재계산 
    • 이 부분은 큰 모델로 한번만 retrieve를 하는 것보다, 작은 모델로 토큰생성시에 필요한 정보를 자주 retrieve하는게 좋다는 것을 5.2절에서 말하고 있음. -> API에서 불가함... -> 응용해볼 여지는 있음.
  • Retrieval Query Length :
    • 식(3)에서 Rc부분에 x<= s*j 가 있음 -> Retrival은 prefix token들에 의존하는데, 특히 end of the prefix가 관련있는 토큰임
    • 이때 retrieval query가 너무 길면, 필요한 정보가 희석될 수 있다.(여기서 retrieval query는 Rc)
    • 이 현상을 피하기위해, Rc 부분에 마지막 L개의 토큰을 사용한다. (여기서 L은 retrieval query length로 명명함)
    • 이렇게 하여, 검색의 효율을 높이고, 가장 최근 관련 정보에 집중하게 한다.

 

4. Experimental Details

4.1 DataSet

  • Overall
    데이터셋 : 다양한 언어모델링 데이터셋
    Open QA : 2개
  • Models
    GPT-2 : 4가지 버전
    GPT-Neo : 3가지 버전
    GPT-J : 3가지 버전
    OPT : 8가지 버전
    LLaMA : 3가지 모델
  • Retrievers
    단어기반 검색 : BM25

    신경망 검색 : 1.BERT-base, 2Contriever, 3Spider
  • ReRanking
    RoBERTa-base

4.2 Implementation Details

  • Retrieval Corpora : WikiText, ODQA데이터의 경우, Karpukhin et al의 전처리 방법을 사용
    - 색 코퍼스는 100단어(데이터 대부분의 경우 150토큰 미만)의 겹치지 않는 구절들로 구성되어 있다. 따라서 모델에 입력할 때 검색된 구절을 256토큰으로 잘랐으나, 일반적으로 그보다 훨씬 작았음

 

5. The Effectiveness of In-Context RALM with Off-the-Shelf Retrievers

 

간단한 문서 읽기 메커니즘에서도, 문맥 내 RALM이 상당한 LM 성능 향상이 있었음

 

이 섹션의 실험을 통해 우리는 문맥 내 RALM을 적용하기 위한 파라미터를 찾음: ℓ = 32 쿼리 토큰을 받는 BM25 검색기를 사용하고 가능한 한 자주 사용한다. 실험에서는 s = 4 토큰마다 검색한다

 

표 1은 GPT-2 모델에 대해, 조사된 모든 코퍼스에 걸쳐 , RALM이 2-3배 더 큰 모델의 성능과 맞먹는 LM 퍼플렉시티 향상을 제공함을 보여줌.

 

그림 4와 표 2, 5는 이러한 추세가 WikiText-103과 RealNews 모두에서 66B 파라미터까지의 모델 크기에 걸쳐 유지된다는 것을 보여준다.

-> 큰 모델에서도 잘 작동한다

 

 

 

5.1 BM25 Outperforms Off-the-Shelf Neural Retrievers in Language Modeling

  • 실험한 검색기 : BM25, 세가지 신경망 검색기(RETRO, Contriever, Spider)
  • BM25 : BM25가 제로샷 설정에서 광범위한 작업에 걸쳐 신경망 검색기를 능가한다는 이전 연구 결과와 일치한다.
    이 결과는 BM25 검색기를 적용하는 것이 신경망 대안들보다 훨씬 저렴하여 더 좋은 선택일 수 있다.
    ℓ = 32의 경우가 최적임을 발견함
  • 신경망 : ℓ = 64의 경우가 최적

5.2 Frequent Retrieval Improves Language Modeling

검색 간격 s과 성능의 상관성 : 그림 5는 검색 작업이 더 빈번할 때 LM 성능이 향상함을 보여줌.

5.3 A Contextualization vs. Recency Tradeoff in Query Length

  • 검색할 대상 쿼리가 너무 짧으면 : 맥락을 충분히 파악하지 못해 검색된 문서의 관련성이 떨어진다고 추측
  • 검색할 대상 쿼리가 너무 길면 : 접두사의 맨 끝에 있는 토큰들의 중요성을 감소시켜 쿼리의 LM 작업 관련성이 낮아진다.

 

6. Improving In-Context RALM with LM-Oriented Reranking

  • 왜 re-랭킹이 필요한가?
    1. 기존의 BM25는 단순히 단어 일치에 기반하여 문서를 찾는다. 이는 문맥이나 의미를 충분히 고려하지 못할 수 있다.
    2. 더 관련성 높은 문서를 선택할 수 있다면, 성능을 더 높일 수 있다.
  • 이 연구에서는...
    1. BM25로 상위 k개(여기서는 16개) 문서를 검색
    2. 이 k개의 문서 중에서 가장 적절한 문서를 선택하는 방법 제안

  • 두 가지 재랭킹 방법을 제안
    • 1. 제로샷 재랭킹 (6.1절)
      • 기존의 언어 모델을 사용하여 BM25가 찾은 문서들의 순위를 다시 매긴다.
      • 추가 학습 없이 바로 적용할 수 있는 방법
    •  2. 예측적 재랭킹 (6.2절)
      • 새로운 모델을 학습.
      • 이 모델은 언어 모델의 출력을 예측하는 데 가장 도움이 될 문서를 선택하도록 훈련
  •  결과:
    • 두 방법 모두 기본 BM25 검색보다 더 나은 성능을 보임
    • 특히 예측적 재랭킹 방법이 좋은 성능을 보임

6.1 LMs as Zero-Shot Rerankers

 

  • retrieved documents : k개
  • retrieve 횟수 : j 번
  • next token generate : x(s*k + 1) ~ x(s*k+s) : s token 개
  • 생성된 토큰retrieved document들 y가 최대가 되도록 document k를 찾고 싶다.
    허나 아직 y들을 생성한 것이 아니기에, document k를 찾을 수 없음

    예)
    생성된 토큰 : 

    - 최근 두 달 사이 한국 주식시장을 파랗게 질리게 만든 중심에 삼성전자가 있다. 
    Retrieved Documents : 
    - 삼성전자의 미래 전략...
    - 삼성전자의 현황...

    파란색(y)을 생성할 때 어떤 document k들이 가장 유의미한지 알기 어려움.

  • 다음과 같은 방법으로 실험을 진행함.

y'을 새로 정의함 : 식5에서 알고 있던 토큰 x들에서 s'만큼의 토큰들을 제외하고, 제외한 토큰 s'들을 y'으로 정의함.

위 예시
에서 작성한 문장을 인용하여 설명하자면,
파란(y)부분을 생성하고, y가 없다로 가정하고, 
Retrieved Documents들을 조합하며 y값들의 확률값을 계산.

예) 

- d1, d2, d3 순서로 ranking을 하는 경우 : 확률값 - 중심에(0.93), 삼성전자가(0.3), 있다(0.8)
- d1, d3, d2 순서로 ranking을 하는 경우 : 확률값 - 중심에(0.95), 삼성전자가(0.5), 있다(0.9)

...
가장 높은 확률값을 생성하는 케이스로 d들을 ranking함.

 

  1. 현재 상태:
    • x(s*j) 개의 토큰들이 이미 생성되어 있음.
    • 다음 s개의 토큰을 생성하려함.
  2. 사전 준비:
    • 이미 생성된 토큰 중 마지막 s'개를 사용 -> x(s*j - s')
    • y' = x(sj-s'+1) 부터 x(sj)까지의 생성될 확률값을 계산함.
  3. ReRank 과정:
    • BM25로 검색된 k개의 문서 (d1부터 dk)를 순회
    • 가장 높은 확률을 제공하는 문서를 선택( 확률 값은 y'이 나올 확률을 계산)

 

API를 이용해서 사용할 수도 있음.

  • Re랭킹은 오픈소스 모델로 진행을하고, ReRank한 Retrieved document를 API에 제공

 

 

6.2 Training LM-dedicated Rerankers

  • 예측적 재랭킹 : BM25가 검색한 상위 k개 문서 중 하나를 선택하도록 하는 rerank 모델을 훈련.
    - 재랭킹 모델이 다음 텍스트를 '예측'하는 데 가장 도움이 될 문서를 선택하는 법을 학습
  • 방법
    • Condition : X ≤ s*j 까지의 토큰
    • 문서 di : BM25가 검색한 k개의 후보 중 하나
    • 모델 : RoBERTAa-base
    • 입력 형식: [CLS] 접두사 x≤s·j [SEP] 문서 di [SEP]
    • 출력 계산 : [CLS] 토큰의 임베딩을 DenseLayer를 통해서 Scalar를 계산함.

Collecting Training Examples

  1. 훈련 데이터에서 접두사 x≤s·j를 샘플링
  2. 이 접두사 다음에 올 텍스트인 y := xs·j+1, ..., xs·j+s를 타겟으로 정의
  3. 접두사 x≤s·j에서 도출된 쿼리 q(s,ℓ)_j를 사용하여 BM25 검색을 시행
    • 이를 통해 k개의 후보 문서 {d1, ..., dk}를 얻음.
  4. 각 후보 문서 di에 대해, 언어 모델을 하여 pθ(y| [di; x≤s·j])를 계산함. (식 4 와 비슷)

Training(ReRank) : Loss Function

LM weight인 θ부분은 Freeze하고, Rank부분의 ReRank의 weight만을 업데이트 한다.

 

Result(ReRank)

예측적 재랭킹을 통해 상당한 성능 향상을 관찰할 수 있었다.(표1)

  • GPT-2 110M (S)의 퍼플렉시티가 29.6에서 26.8로 개선
  • GPT-2 1.5B (XL)의 퍼플렉시티가 16.6에서 15.4로 개선

이러한 성능 향상 추세는 다른 두 모델(GPT-2 M과 L)에서도 일관되게 나타남.

이 결과는 특정 도메인의 데이터로 재랭킹 모델을 훈련시키는 것이 제로샷 재랭킹(6.1절에서 설명)보다 더 효과적임을 보임.

 

여전히 개선의 여지가 있다.
상위 16개 BM25 문서에 대한 오라클 결과(그림 7 참조)와 비교해보면,
이 연구의 방법이 아직 이상적인 성능에 도달하지 못했음을 알 수 있다. 더 나아가, 오라클 결과도 다음과 같은 방법으로 개선될 수 있다:

  1. BM25 검색기를 통해 k > 16 문서를 검색하는 것
  2. RALM 작업에 특화된 더 강력한 검색기를 훈련시키는 것

문서 선택 과정을 개선함으로써 RALM의 성능을 크게 향상시킬 수 있음을 보임.

특히, 언어 모델링 작업에 특화된 재랭킹 모델을 훈련시키는 것매우 효과적