OK ROCK

[NLP] Text Generation(1) : Decoding 본문

Study/NLP

[NLP] Text Generation(1) : Decoding

서졍 2023. 10. 13. 22:28

Week 4 Contents: 

(1) Decoding

(2) Metric


1. Temperature

정의 : logit distribution을 변경하는데 사용되는 양(positive)의 부동소수 값.

'1'보다 작은 값은 임의성을 감소시키고 , '0'은 모든 확률 질량을 가장 가능성이 높은 것으로 이동시키는 것과 같은 효과(argmax / max likelihood)가 있다. 

▶ Loss(Cross Entropy Loss)를 미분하여 최적화하는 과정에서 P ∝exp(- βE) 라는 식을 얻을 수 있다. 여기서 exp(- β E)/Z(Z = normalization factor)분포는 Boltzman Distribution이라고 하며, 이때의 β = 1/T (T = Temperature), 여기서 Temperature가 얻어졌다고 한다.

Transformer Decoder구조 중, 최종 logit을 나눠주는 분모 위치에 temperature존재하는 것 확인 가능

 

2. Top -k

정의 : 확률이 높은 순서에 따라 k(integer)개의 token을 뽑아 그 안에서 sampling하는 방법

▶ GPT-2가 이 방법으로 sampling scheme에 적용하였고, 이것이 story generation에서 성공을 거둔 한 요소로 평가받는다.

▶ logit에서 sampling을 적용하기 때문에, (softmax 이전 단계) 최종 logit들의 합은 여전히 1로써 변함없다.

이는 등장할 가능성이 높은 k개의 단어 중 하나가 선택되기 때문에 관련된 단어를 가지고 다양한 문장 생성이 가능하다는 장점이 있다. 그러나 만약 k개의 단어 중에서 특정한 몇 개의 단어가 나올 확률이 매우 높고 나머지 단어들은 나올 확률이 매우 낮은 경우에는, 매우 낮은 확률로 등장하는 단어가 출력되어 생성된 문장이 어색해질 수 있다는 단점이 있다.

 

Top-k 예제

▶왼쪽 그림 : k = 6으로 고정하고, "The" 뒤에 위치할 단어 w가 나올 확률을 내림차순으로 정렬하여 6개에서 끊은(나머지 선택 안함) 결과, 확률의 합이 0.68이다. 

▶ 오른쪽 그림: 왼쪽 그림으로부터 'The"뒤에 나올 단어 w를 car로 선택한 상황에서, 그 다음 단어 w를 예측할 때 확률의 합이 0.99이다.

 

3. Top -p

Top-k sampling에서의 단점을 보완해줄 수 있다.

정의 : 누적 확률의 합이 p를 넘는 최소의 단어 집합에서 확률을 재분배하고 확률에 따라 랜덤으로 단어를 선택하는 방법.

▶ 단어 집합 내 단어들이 등장할 확률의 합이 p 이상이 되는 Top-v개의 단어 집합에 초점을 두기 때문에, 등장할 확률이 매우 낮은 단어들은 샘플링되지 않아 인간의 글쓰기에 가까운 문장 생성이 가능하다.

▶ Top-k개의 단어를 모두 선택하는 방식과는 달리 Top-p sampling은 단어 집합에 존재하는 단어의 수가 다음 단어의 확률 분포에 따라 많아질 수도, 적어질 수도 있다. p의 확률은 0 1 사이의 값으로 사용자가 설정할 수 있다.

 

Top-p 예제

▶왼쪽 그림: top- p를 0.92로 설정하고, 확률 누적합이 p(0.92)넘는 최소 집합을 파란색으로 표시하였다. 나머지는 선택 후보에서 배제한다.

▶ 오른쪽 그림: 그 다음 단계로, car가 선택되고 마찬가지로 0.92를 넘는 최소 token집합을 선택한 결과 3개의 토큰이 선택되었다.

 

4. Beam Search

제한된 집합에서 가장 유망한 노드를 확장하여 그래프를 분석하는 heuristic search algorithm이다.

▶ width = 뻗어나갈 가지의 갯수, beam size = 하나의 가지에서 고려할 후보의 갯수

레벨별로 진행하여 각 레벨의 최고 W개 노드에서만 아래로 이동

W(width) = 2 & B(beam size) = 3  is given


References