cs

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
    논문 리딩/NLP 2024. 2. 7. 12:10

    https://arxiv.org/pdf/2005.11401.pdf

    Abstract

    대규모로 사전 훈련된 모델들은 파라미터에 지식을 저장하고, downstream task에 대해서 파인튜닝되었을 때 SOTA를 달성한다. 하지만 LLM의 지식에 접근하고 정확하게 활용하는 능력은 아직 제한적이며, 지식 집약적인 과제들에서는 task-specific한 구조에 비해 성능이 떨어지는 면이 있다. 또한, 결정에 대한 이유를 설명하거나, world knowledge를 업데이트하는 것은 여전히 남아 있는 과제이다. 사전 학습 모델로 하여금 파라미터 내의 지식을 활용하는 것이 아닌 다른 접근법을 취하게 하는 방법은 extractive downstream task들에 대해서만 연구되어 왔다. 이 논문에서는 RAG 모델을 위한 일반적인 파인 튜닝 레시피를 탐색한다. 이 논문에서는 parametric memory 부분이 사전 학습된 seq2seq 모델이고, non-parametric memory는 위키피디아의 dense vector index이고, 사전학습된 뉴럴 retriever로 접근한다. 논문에서는 두 가지 RAG 형식을 비교하는데, 하나는 전체 생성되는 단락이 모두 하나의 리트리벌된 글을 참고하게 하는 것이고, 다른 하나는 토큰별로 다른 글을 참고할 수 있게 하는 것이다. 논문에서는 여러 종류의 지식 집약적 NLP 과제에 대해 파인 튜닝을 진행했고, 세 개의 open domain QA 과제에- 대해 seq2seq 모델과 task-specific retreive-and-extract 구조를 능가하며 SOTA를 달성했다. 생성 과제에 있어서는 RAG 모델이 parametric-only seq2seq SOTA 모델보다 조금 더 구체적이고 다양하며 사실에 기반한 글을 생성하는 것을 관찰했다.

    1. Introduction

    • 사전 훈련된 모델의 한계점
      • 새로운 지식을 업데이트하거나, 기존 지식을 수정하기 어려움
      • hallucination(사실이 아닌 것을 사실처럼 말하는 경우) 문제가 있다
    • parametric memory와 non-parametric (retrieval-based) memory를 결합한 하이브리드 모델들
      • (당시 기준) REALM, ORQA는 encoder-only 구조로 이루어졌기 때문에 open-domain extractive QA에 대한 가능성만 탐구함
      • 이 논문에서는 이런 hybrid 접근법에 seq-seq 구조를 도입해 좀 더 넓은 가능성을 탐구한다
    • 논문에서 제안하는 모델
      • parametric memory: BART
      • non-parametric memory(document index): dense vector of Wikipedia
      • retriever: DPR(Dense Passage Retriever)

    2. Methods

    Notations

    • $x$: input sequence
    • $z$: text document to retrieve
    • $y$: target sequence to generate
    • → x가 들어왔을 때, $y$를 생성하기 위해 $z$를 참고한다

    Components

    1. $p_\eta (z|x)$: retreiver
      1. $\eta$: parameter
      2. 쿼리 $x$가 주어졌을 때 pessage들에 대한 distribution을 리턴해줌
    2. $p_\theta (y_i | x, z, y_{1:i-1})$: generator
      1. $\theta$: parameter
      2. 인풋 $x$와 리트리브된 passage $z$, 이전의 $i-1$개의 토큰($y_{1:i-1}$)을 기반으로 다음 토큰 생성
    • retriever와 generator를 학습하기 위해 retrieved document를 latent variable로 취급한다

    2.1 Models

    RAG-Sequence Model

    • 모델이 sequence내의 각 target token을 예측할 때 같은 문서를 참조하는 접근법
    • $P_{\textrm{RAG-Sequence}} (y|x) \approx \sum_{z \in \textrm{top}-k (p(\cdot|x))} p_\eta (z|x) p_\theta (y|x, z)$
      • x가 주어졌을 때 y가 결과물으로 나올 확률은 x가 주어졌을 때 문서 z가 나오고, 그 z와 x가 주어졌을 때 다시 y가 나올 확률을 모든 z에 대해 더한 것과 같다 (marginalization)
      • 그런데, $k$값을 적절히 세팅하면 top-$k$에 속하는 문서가 뽑힐 확률이 순위가 낮은 문서가 뽑힐 확률보다 훨씬 높으므로 후자를 무시할 수 있다. 즉, top-$k$에 속하는 문서에 대해서만 marginalize한다.
    • $P_{\textrm{RAG-Sequence}} (y|x) \approx \sum_{z \in \textrm{top}-k (p(\cdot|x))} p_\eta (z|x) p_\theta (y|x, z) = \sum_{z \in \textrm{top}-k (p(\cdot|x))} p_\eta (z|x) \Pi_{i}^{N}p_\theta (y_i|x, z, y_{i-1})$
      • $x$, $z$가 주어졌을 때 시퀀스 $y$가 생성될 확률 = $x$, $z$가 주어지고 이전에 생성된 토큰이 주어졌을 때 다음 토큰이 생성될 확률을 전부 곱한 것

    RAG-Token Model

    • 모델이 각 토큰을 생성할 때 서로 다른 문서를 참조할 수 있다
    • 먼저 retriever를 통해 Top K 개의 문서가 전달되고, generator는 각 document가 주어진 상황에서 다음 토큰을 예측
    • $P_{\textrm{RAG-Token}} (y|x) \approx \Pi_{i}^{N} \sum_{z \in \textrm{top}-k (p(\cdot|x))} p_\eta (z|x) p_\theta (y_i|x, z, y_{i-1})$
      • 먼저, $p_\theta(y_i|x)$는 marginalization을 이용하면 앞서와 같이, z가 주어질 확률*z가 주어졌을 때의 확률을 모든 z에 대해 더한 것과 같다 (summation 안쪽 수식)
      • 다음 토큰을 생성할 때는 이전 토큰을 참조하므로, 이 확률을 곱해간다

    2.2 Retriever: DPR

    • bi-encoder 아키텍쳐

    Notation

    • $\mathbf{d}(z) = \textrm{BERT}_d(z)$
      • $\textrm{BERT}_{\textrm{BASE}}$ document encoder로 인해 생성된 문서의 dense한 representation
    • $\mathbf{q}(x) = \textrm{BERT}_q(z)$:
      • $\textrm{BERT}_{\textrm{BASE}}$ document encoder로 인해 생성된 쿼리의 representation

    DPR Architecture

    • $p_\eta (z|x) \propto \exp(\mathbf{d}(z)^\intercal \mathbf{q}(x))$
      • 벡터 표현의 내적이 클수록 선택될 확률이 높다
    • top K 개를 뽑는 작업은 MIPS(Maximum Inner Product Search)문제인데, sub-linear 시간 안에 해결 가능

    2.3 Generator: BART

    • BART-large 사용 (400M params)
    • input은 $x$와 $z$를 concat 해서 사용

    2.4 Training

    • retriever/generator 를 따로 훈련하지 않고 한번에 훈련함
    • → retriever는 어떤 문서를 전달해야 하는지 명시적으로 훈련받지 않고, generator가 최종으로 생성하는 결과물에 의해서만 학습된다
    • NLL loss: $\sum_{j} -\log p(y_j|x_j)$
      • input: $(x_j, y_j)$
    • fine-tuning models: $\textrm{BERT}_q$(query encoder), BART generator
      • REALM처럼 학습 중에 document encoder를 학습하는 것은 비싸기도 하고 필요하다고 판단하지 않아서 생략함

    2.5 Decoding

    RAG-Token

    • 각 시점에서, top-k 문서들과 이전 토큰을 참조해 현재 토큰에 대한 확률을 구하는 방식이기 때문에 기존과 같은 decoding이 가능하다.
    • $p’\theta (y_i | x, y{1: i-1}) = \sum_{z \in \textrm{top}-k (p(\cdot|x))} p_\eta (z|x) p_\theta (y_i|x, z, y_{i-1})$

    RAG-Sequence

    • RAG-Sequence 방법은 각 시점에서 모든 문서를 고려한 해당 토큰의 확률을 구한 후 넘어가는 방법을 채택하지 않고, 반대로 문서를 고정하고 각 문서에 대한 sequence의 확률을 먼저 뽑는다.
    • 즉, 토큰을 하나씩 늘려가며 확률을 찾아내는 beam search 방식으로 바로 적용할 수 없다.
    • 대신 z에 대한 빔 서치를 함. $z$가 두 개라고 생각하고 예시를 써 보자.
      • 각 z에 대해서, z를 고정하고 빔 서치를 적용해서 나온 top-k개의 시퀀스를 뽑는다.
      • 결과가 되는 시퀀스들을 hypothesis라고 하고, 그 집합을 $Y$라고 함
    • 여기에서 marginalize를 하면,
      • $p(y_i|x) = p(y_i|z_1) + p(y_i|z_2)$
    • 그런데 $p(y_1|z_2)$, $p(y_4|z_1)$은 구할 수 없음. ($z_2$를 인풋으로 줬을 때 $y_1$이 나온 적이 없으니까)
      • Thorough Decoding: 모르는 확률에 대해 다시 한 번 계산해서(forward pass) 확률을 구함 → $Y$의 크기가 커질수록 계산량이 많아짐
      • Fast Decoding: 효율적인 디코딩을 위해 등장하지 않은 hypothesis의 확률은 0이라고 가정

    3. Experiments & 4. Results

    3.1&4.1 Open-domain Question Answering

    • (질문, 답변): $(x, y)$
    • NLL loss사용
    • Closed Book QA: parametric knowledge만 활용
    • Open Book QA: 검색 활용
    • NQ: Natural Questions
    • TQA: TriviaQA
    • WB: WebQuestions
    • CT: CuratedTrec
    • CT, WB 데이터셋은 작기 때문에 NQ RAG 모델로 초기화

    2, 3, 4에 해당

    3.2 & 4.2 Abstractive Question Answering

    • MSMACO NLG task
      • 질문 + 각 질문에 대해 서치 엔진에서 검색된 10개의 gold passage + passage에서 annotate된 정답
      • open-domain 문제처럼 취급하기 위해 passage사용하지 않음
      • “Volcano, CA의 날씨는?” 처럼 passage를 참조하지 않으면 풀 수 없는 문제가 있기 때문에 성능이 좀 낮아졌을 수 있음.
    • golden passage가 없으면 답변할 수 없는 문제가 많음에도 SOTA에 근접함
    • 정성적으로는, 할루시네이션이 적고 BART보다 종종 더 사실에 기반한 답을 생성함

    3.3&4.3 Jeopardy Question Generation

    • 보통 open domain QA 과제에서의 질문들은 짧고 간단하게 구성됨
    • Jepordy questions: entity에 대한 사실을 통해 entity를 예측하는 질문
      • ex. 1986년에 맥시코가 이 국제적 스포츠 경기를 두 번째로 개최한 나라가 되었습니다. → 답 월드컵
      • 정확하고 사실적인 질문들이기 때문에 챌린징한 지식 집약적 과제가 될 수 있음
    • human evaluation
      • generation factuality: 생성된 글이 믿을 수 있는 외부의 자료를 기반으로 하는지
      • specificity: 입력과 출력 간의 높은 상호 연관성
    • RAG-Token 정량/정성적으로 더 좋은 성능을 얻음
    • RAG-Token이 더 좋은 성능을 얻은 이유는, Jeopardy 질문들이 서로 다른 두 정보를 결합할 때가 있기 때문으로 추정됨.
      • Fig2에서 Sun을 생성할 때는 Doc2를, A를 생성할 때는 Doc1을 좀 더 많이 참조함
      • 그런데, 참조 여부는 첫 토큰을 생성하고 나면 초기화되는 것으로 보임
      • → non-parametric knowledge가 parametric knowledge를 trigger하는 효과
      • → 즉, 두 가지 knowledge가 “work together”한다.

    4.4 Fact Verification

    • FEVER:
      • 주장이 위키피디아로 지지할 수 있는지 아니면 반박되는지, 혹은 알 수 없는지를 분류하는 태스크
      • retrieval problem + 어려운 entailment reasoning task
      • FEVER 문제를 풀기 위해 claim-class 쌍으로 학습 (retrieval된 doc에 대해서는 학습하지 않음)
        • 실제 상황에서는 정답 document를 주는 것이 일반적이지 않은 상황이기 때문
      • FVR3: supports/refutes/not enough info
      • FVR2: supports/refutes
    • FVR3
      • SOTA 모델은 domain-specific 구조를 가지고 있고, 중간에 리트리벌된 문서로 학습도 진행함. RAG는 그렇지 않지만 comparable한 성능을 냈다고 말하고 있음
    • FVR2
      • gold evidence sentence 없이도 comparable한 성능을 냈다
    • RAG 모델에서 리트리벌된 문장이 gold evidence sentence와 overlap이 있었음
      • top retrieved 문서가 gold article일 확률이 71%
      • gold article이 top-10안에 있을 확률이 90%

    4.5 Additional Results

    Generation Diversity

    • RAG 모델이 좀 더 다양한 trigram을 사용해서 생성함

    Retrieval Ablations

    • RAG 모델의 키 피쳐 중 하나는 관련된 문서를 retreive하도록 훈련하는 것. 이것이 잘 되었는지 검증하기 위해 트레이닝 과정에서 retriever를 freeze한다.
    • FEVER에서는 BM25가 더 좋은 결과를 내는데, FEVER의 주장들이 entity 중심이기 때문에 word-overlap based retrieval에 적합할 수 있다고 함.

    Index hot-swapping

    • 2016년 12월의 Wikipedia dump로 만든 index와 2018년 12월의 Wikipedia dump로 만든 index를 비교함
    • 이 기간동안 바뀐 82명의 세계 지도자의 리스트를 가지고, “Who is {position}?” 질문으로 평가
      • 2016 world leader + 2016 index → 70% acc
      • 2018 world leader + 2018 index → 68% acc
      • 2016 world leader + 2018 index → 12% acc
      • 2018 world leader + 2016 index → 4% acc
    • 이 실험을 통해 단순히 단순히 index 를 대체함으로서 RAG의 world knowledge를 대체할 수 있다는 것을 보여줌

    Effect of Retrieving more document

    • 검색되는 문서의 수를 5개/10개로 실험해 보았는데 큰 성능차이는 없었음.
    • 대체로 10개정도가 피크인 것 같다. 모델의 capacity에 따라 다를듯

    5. Related Work

    pass

    6. Discussion

    Future work

    • retriever와 generator가 scratch 부터 joint하게 pretrain될 수 있는지
    • parametric memory와 non-parametric memory가 어떻게 상호작용하는지, 어떻게 효율적으로 두 가지를 연결할 수 있을지

    Broader Impact

    • 실제 지식에 강하게 기반하기 때문에 할루시네이션을 줄일 수 있고, 더 많은 제어 가능성과 해석 가능성을 제시한다.
    • potential downsides
      • 외부 지식 소스가 항상 사실에 기반하지는 않을 수 있고, 편향되거나 정보가 부족할 수 있다.
      • 생성 언어 모델이기 때문에 GPT와 유사한 많은 우려가 (정도가 낮게) 적용될 수 있음

    댓글

:D