본문 바로가기

NLP/논문이해

[논문이해] DoLa: Decoding by Contrasting Layers Improves Factuality in Large Language Models

논문명: DoLa: Decoding by Contrasting Layers Improves Factuality in Large Language Models

논문 링크: https://arxiv.org/abs/2309.03883

 

DoLa: Decoding by Contrasting Layers Improves Factuality in Large Language Models

Despite their impressive capabilities, large language models (LLMs) are prone to hallucinations, i.e., generating content that deviates from facts seen during pretraining. We propose a simple decoding strategy for reducing hallucinations with pretrained LL

arxiv.org

 

핵심만 정리합니다.


 

이 논문의 배경지식이 되는 Contrastive Decoding 읽고 오세요. 5분도 안 걸려요. 진짜 개념이 쉬워서.

 

 

문제점

  • 언어 모델이 사실 기반 답변을 잘 하면 좋겠는데, 그렇지 않고 그럴싸하게만 함
  • contrastive decoding 은 아마추어 모델을 데려와서 전문가 모델의 확률에서 아마추어 모델 확률을 뺐음
  • 그런데 이 방법은 언어모델이 2개 필요함

 

해결책

 

  • 아마추어 모델을 따로 데려오지 말고, 모델 내에 중간 혹은 초반 레이어를 아마추어 모델로 보고 사용하자
  • 레이어별로 LM Head 를 붙여서 생성시켜봤더니, 후반 레이어를 제외하고는 못하니까 그걸 활용해서 아마추어 모델로 쓰자는 말이다
  • 위 예시를 보자. 32nd layer 가 마지막이니까 원래 최종 생성할 토큰은 Seattle 이다. 하지만 정답은 Olympia 다.
  • 그래서 16th layer 의 확률을 구해서 빼준다. 이게 끝이다.

 

상세한 예시

  • 위 예시는 질문을 했을 때 답변을 생성한 확률을 나타냈다. 정확히는 32번째 레이어(마지막 레이어) 확률과 해당 레이어의 생성 확률 차이를 의미한다.
  • 세로축은 레이어를, 가로축은 각 토큰별 확률을 의미한다.
  • 색깔이 진할수록 차이가 크다, 즉 마지막 레이어와 다른 답변을 생성한다, 차이가 클수록 아마추어다라고 보면 된다.

 

1. 마지막 레이어를 제외하곤 대부분 바보/아마추어다

  • 제일 위에 표기된 게 30번째 레이어다. 30번째 레이어 빼고는 다 보라색이 포함된다.
  • 즉 26, 28번째 레이어를 통과할 때까지조차도 완벽한 답변을 만들지 못한다는 것
  • 어찌 보면 당연하다. 만약 16번째 레이어에 이미 답변이 완성되었다면, 당연히 16번째 레이어까지 잘라서 썼겠지.
  • 또, 딥러닝 특성상 손실함수랑 가까운 쪽이 영향력을 많이 받기 때문에 마지막 레이어가 결정적인 역할을 하나보다.
  • 과거 논문들을 보면, 초반 레이어는 문법적인 역할, 그리고 후반 레이어는 의미적인 역할을 한다는 논문들도 있다. 예컨대, 1986을 생성할 때 초반/중반 레이어가 여기에 연도가 들어간다는 걸 파악했고 후반 레이어가 정확한 연도를 기입한 셈.

 

 

2. 고유명사와 같이 어려운 토큰은 특히 마지막 레이어 직전까지도 맞추지 못한다

  • is, are 혹은 질문에서 이미 나온 토큰들은 비교적 생성하기 쉬워서 중반 레이어부터 맞춘다
  • 반면 고유명사와 같이 어려운 정보는 마지막 레이어까지도 맞추지 못한다

 

실험도 깊고, 어떤 레이어를 선정해야 하는지 나와있으니 궁금하시면 논문을 읽어보시길 :)