논문명: DoLa: Decoding by Contrasting Layers Improves Factuality in Large Language Models
논문 링크: https://arxiv.org/abs/2309.03883
핵심만 정리합니다.
이 논문의 배경지식이 되는 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 혹은 질문에서 이미 나온 토큰들은 비교적 생성하기 쉬워서 중반 레이어부터 맞춘다
- 반면 고유명사와 같이 어려운 정보는 마지막 레이어까지도 맞추지 못한다
실험도 깊고, 어떤 레이어를 선정해야 하는지 나와있으니 궁금하시면 논문을 읽어보시길 :)