Skip to content

Commit

Permalink
Update 2024-12-30-rag-paper.md
Browse files Browse the repository at this point in the history
  • Loading branch information
losskatsu authored Dec 30, 2024
1 parent a925b6f commit 958993a
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions _posts/machine-learning/2024-12-30-rag-paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,44 @@ $\sum_{j}-\log{p(y_j \| x_j)}$

### 2-5. Decoding

테스트 시, RAG-Sequence와 RAG-Token은 $\text{argmax}_{y}p(y\|x)$를 근사화 하기 위해
서로 다른 방식을 필요로 한다.

(1) RAG-Token

RAG-Token 모델은 다음과 같은 전이 확률(transition probability)을 가진
표준 자기 화귀(seq2seq) 생성기로 간주할 수 있다.

$p_{\theta}^{\prime}(y_i \| x, y_{1:i-1}) = \sum_{z\in top-k(p(\cdot\|x))}p_{\eta}(z_i \| x)p_{\theta}(y_i \| x, z_i, y_{1:i-1})$

디코딩을 위해, $p_{\theta}^{\prime}(y_i \| x, y_{1:i-1})$를 표준 빔 디코더(beam decoder)에 삽입하여 사용할 수 있다.

(2) RAG-Sequence

RAG-Sequence의 likelihood $p(y \| x)$는 일반적인 토큰 단위 likelihood로
분리되지 않으ㅏ므로, 단일 빔서치를 사용하여 해결할 수 없다.
대신, 각 문서 $z$에 대해 빔 서치를 실행하며,
각 가설을 $p_{\theta}(y_i \| x, z_i, y_{1:i-1})$를 사용해 점수화 한다.
이 방식은 가설의 집합 $Y$를 생성하며,
이 중 일부는 모든 문서의 빔에서 나타나지 않을수도 있다.
가설 $y$의 확률을 추정하기 위해,
$y$가 빔에 나타나지 않은 각 문서 $z$에 대해 추가적인
순방향 패스(forward pass)를 실행한다.
그런다음, 생성기의 확률을 $p_{\eta}(z \| x)$와 곱한 후
주변화(marginalization)을 위해 빔 전체에서 확률을 합산한다.
우리는 이러한 디코딩 과정을 "Thorough Decoding"이라고 부른다.
아웃풋 시퀀스가 길어질 수록 $\|Y\|$(가설의 집합 크기)가 커질 수 있으며,
이는 많은 순방향 패스를 필요로 하게 된다.
더 효율적인 디코딩을 위해, 다음과 같은 추가 근사를 적용할 수 있다.

$p_{\theta}(y \| x, z_i) \approx 0$

이는 $y$가 $x, z_i$에서의 빔 서치 중 생성되지 않았을 경우에 해당한다.
이 접근법은 후보 집합 $Y$가 생성된 후에는
추가적인 순방향 패스를 실행할 필요를 없애준다.
우리는 이러한 디코딩 과정을 "Fast Decoding"이라고 부른다.



<br/>

Expand Down

0 comments on commit 958993a

Please sign in to comment.