NL-230, How Language Model Hallucinations Can Snowball, ICML 2024

◼ Comment

  • 보통 할루시네이션이 발생하는 것은, LLM이 모르는 정보에 대해 물어봤기 때문에 그럴싸하게 답변한다고 생각했는데..
  • 여기서는 꼭 그런게 아니더라도, 즉 LLM이 알고있는거라도, 할루시네이션이 발생한다.
  • 대표적인 원인으로는 Yes/No 을 먼저 답하고 이유를 생성하는 형식의 생성방법이기 때문이다.
    • 예) "8은 소수입니까?" -> "네. 9은 4x2이기 때문에 소수입니다" 이런식으로 첫번째 토큰이 "네"가 나오는 순간, 뒤의 토큰들은 앞의 토큰들에 영향을 받기 때문에 그럴싸한 reasoning을 하게 되는 것이다.
    • 즉 스노우볼 효과인거고, 추론을 해야하는 입력들에 대해 이런 문제들을 확인해본 논문이다
  • 그래서 소수판별이나, 그래프연결, 국회의원 판별? 뭐 이런 문제들을 만들어서 테스트를 해봤다.
    • 그 결과 LLM이 틀리게 답변한 것을 재질문을 하면서 정말 LLM이 모르는지를 다시 한번 확인했더니 LLM이 알고있다더라 이거다.
    • 예) "9은 4로 나눠지는제 맞습니까? --> "아닙니다. ~~" 이렇게 LLM이 답변하면 엇? LLM이 알고있는데 할루시네이션이 발생했네? 이렇게 판단해본것이다.
    • 그랬더니 많은 비율이 LLM이 알고있었다는 것이고.. 이런 문제는 첫 토큰이 Yes/No 형식으로 답변하기 때문에 영향을 받는다는 것이다.
  • GPT3.5, GPT4, llama 등 모델들에서 동일한 증상이 발견되었고
    • 이를 해결하기 위해 Lets think step-by-step 프롬프트를 활용했더니 GPT3.5, GPT4에서는 문제가 완화되었다. (llama는 아님)
  • 하지만 더 복잡한 문제, 9, 14, 20 은 소수입니까?와 같이 여러 추론을 동시에 하는식의 질문을 던지면 step-by-step 프롬프트로는 효과가 없다고 한다
    • temperature, sampling등을 활용해도 딱히 효과는 없었고..
    • few-shot을 넣으면 효과가 있을거라 보여지나, 모든 문제에 대해 few-shot을 구비하는것은 불가능하다고 판단하기 때문에
    • 즉 애초에 학습할때, 이런 문제를 해결되도록 yes/no가 맨뒷단에 나오도록 학습하거나, 
    • 사람이 수정하는것처럼 중간에 "아 잘못생각했습니다" 등의 문구를 넣어서 editing이 일어나게 하거나.. 
    • 이런 학습을 해야 스노우볼 할루시네이션이 해결될거다 라고 의견을 제시한다

Abstract

  • 언어 모델(LM)을 실제 응용 프로그램에서 사용할 때 주요한 위험 요소 중 하나는 모델이 잘못된 진술을 생성하는 경향, 즉 환각(hallucination) 현상입니다. 
  • 이러한 환각은 종종 LM의 지식 부족에 기인한다고 여겨지지만, 우리는 LM이 때때로 잘못된 진술을 생성하면서도 그 오류를 스스로 인식할 수 있다는 것을 보여줍니다. 
  • 이를 위해 우리는 LM이 종종 잘못된 답변을 제시한 후 최소 하나의 잘못된 주장이 포함된 설명을 제공하는 세 가지 질문-응답 데이터셋을 구축했습니다. 
  • 중요한 점은 GPT-3.5, GPT-4, LLaMA2-70B-chat이 각각 이러한 잘못된 주장 중 67%, 87%, 94%를 식별할 수 있다는 것입니다. 
  • 우리는 이 현상이 높은 온도 샘플링, 빔 서치, 제로샷 체인 오브 소트 프롬프팅에서도 사라지지 않는다는 것을 보여줍니다. 
  • 이러한 결과는 LM의 환각이 눈덩이처럼 불어날 수 있음을 시사합니다. 
  • 즉, 초기의 실수가 후속 실수로 이어져 더 많은 오류를 발생시킬 수 있다는 것입니다.

1. Introduction

  • 언어 모델(LMs)은 점점 더 인간과의 정보 탐색 및 문제 해결 환경에서 인터페이스로 활용되고 있습니다. 
  • 이러한 모델들은 다양한 능력과 뛰어난 유창성을 자랑하지만, 여전히 사실을 꾸며내거나 존재하지 않는 출처를 인용하는 ‘환각(hallucination)’ 문제가 여전히 남아 있습니다(Maynez et al., 2020; Liu et al., 2023). 
  • 특히, 매우 그럴듯하게 들리면서도 사실이 아닌 정보를 생성하는 경우가 빈번합니다.
  • 환각 현상은 주로 언어 모델의 지식 격차로 인한 것(Zheng et al., 2023)으로 여겨지며, 이를 해결하기 위한 방법으로 지식 기반을 활용한 검색이 제안되고 있습니다(Lewis et al., 2020; Shuster et al., 2021; Peng et al., 2023). 
  • 하지만 언어 모델이 단지 사실을 “모를 때”만 환각을 일으킬까요? 
  • 우리는 언어 모델이 어떤 사실을 잘못 답변한 후에도, 그 잘못된 답변을 정당화하면서 부정확한 주장을 계속하는 현상을 소개하고자 합니다. 
    • 이걸 해결하는 논문이려나?
  • 흥미롭게도, 이러한 주장을 개별적으로 제시할 경우 모델이 스스로 이를 잘못된 것으로 인식하는 경우가 많습니다(그림 1).
  • 이를 연구하기 위해, 우리는 자동으로 세 가지 질문-답변(QA) 데이터셋을 구성했습니다. 
  • 이 데이터셋은 소수 판별, 두 가지 조건을 만족하는 미국 상원의원 여부, 그리고 도시 간의 항공편을 바탕으로 두 도시가 연결되어 있는지 여부와 같은 다양한 영역을 다룹니다. 
  • 실험적으로 우리는 GPT-3.5(OpenAI, 2022)와 GPT-4(OpenAI, 2023)가 95% 이상의 확률로 첫 번째 토큰에서 답변(예/아니요)을 결정하며, LLaMA-2-70B-chat 모델 역시 첫 몇 개의 토큰 내에서 답변을 내리지만, 이러한 답변은 종종 틀린 경우가 많고, 그 후 틀린 설명이 이어집니다. 
  • 모델의 샘플링 온도를 높이거나 빔 서치(beam search)를 사용해도 이 문제는 해결되지 않습니다. 
  • 그러나, 잘못된 설명만 단독으로 제시할 경우, 언어 모델이 이를 잘못된 것으로 인식할 가능성이 높습니다.
    • 이 현상을 우리는 ‘환각 눈덩이(hallucination snowballing)’라고 부릅니다. 
  • 언어 모델은 지식 격차 때문이 아니라 일관성을 유지하기 위해 이전의 환각을 이어가며 새로운 환각을 생성한다고 가설을 세웠습니다. 
    • 즉, 모델이 개별적으로 제시된 잘못된 설명을 별도의 상호작용 세션에서 틀렸다고 인식한다는 것입니다. 
    • 이 현상은 GPT-3.5, GPT-4와 같은 최신 폐쇄형 모델뿐만 아니라 LLaMA-2-70B-chat과 같은 최신 공개형 모델에서도 관찰되었습니다.
  • 모델이 답을 말하기 전에 먼저 추론하도록 유도하는 프롬프트 전략은 해당 작업에서 정확도를 향상시키지만, 이러한 효과적인 프롬프트가 다른 모델이나 데이터셋에서 항상 동일하게 작동하지는 않습니다. 
    • 예를 들어, GPT-3.5와 GPT-4에 “Let’s think step by step”라는 프롬프트를 사용하면 단순한 작업에서 환각률이 크게 낮아지지만(Kojima et al., 2023), LLaMA-2-70B-chat에서는 같은 효과가 나타나지 않았습니다. 
    • 즉 다양한 LLM에서 hallucination을 줄이는 프롬프트란 존재하기 어려울 듯
    • 또한, 이 프롬프트는 우리가 제시한 더 어려운 데이터셋에서는 효과가 없었습니다.
  • 비록 우리는 언어 모델이 답변을 제시한 후 이를 정당화하는 경향을 이용하여 환각 눈덩이 문제를 보여주었지만, 이러한 결과는 모델이 사실성보다 일관성을 우선시하는 더 광범위한 문제를 시사합니다. 
  • 우리는 모델이 이전에 생성한 맥락에 고집하기보다는 초기 실수를 인정하고 답변을 수정해야 한다고 생각합니다. (사람처럼..)
  • 실제로, GPT-4는 제한된 경우에서 이를 수행하는 것을 관찰할 수 있었습니다. 
  • 이러한 행동을 증폭시키고, 모델이 이전의 잘못된 결정을 되돌리고 해결할 수 있는 새로운 방법을 개발하는 것이 유익할 것입니다.

2. Why Do We Expect Hallucination Snowballing?

  • 이 섹션에서는 왜 언어 모델(LMs)이 환각 스노우볼(hallucination snowballing)에 취약할 것으로 가정하는지 설명합니다. 
  • 우리는 스노우볼 현상이 두 가지 핵심 속성을 가진 질문에서 발생할 것이라고 예측합니다:
    • 1. Initial committal: 
      • 프롬프트가 LM으로 하여금 먼저 답을 말하게 유도한 후에 설명을 출력하게 만듭니다. 
      • 이는 많은 예/아니오(Yes/No) 질문에 적용됩니다.
    • 2. Inherently sequential: 
      • transformer는 한 단계 내에서 답을 찾을 수 없으며, 단일 단계 내에서의 제한된 추론 능력 때문에 이러한 문제가 발생합니다.
  • 우리는 이제 이 속성들이 어떻게 환각의 스노우볼 현상으로 이어질 수 있는지 논의합니다.
  • Initial committal: 
    • 화자들은 종종 질문에 대한 최종 예/아니오 답변을 먼저 말한 후 그 답변에 대한 설명을 제시합니다. 
    • 따라서 우리는 언어 모델, 특히 instruction-tuned 언어 모델(Wei et al., 2021; Sanh et al., 2021; Ouyang et al., 2022; Wang et al., 2022)이 이 답변 형식을 반영할 것이라고 가정합니다. 
    • 즉, 답변이 설명보다 먼저 나오는 형식입니다. 
    • 실제로 우리의 데이터셋(§3.1에서 제시됨)에서 GPT-4와 GPT-3.5는 질문에 즉시 답변을 내리는 모습을 보입니다. 
    • GPT-4는 95.67%, GPT-3.5는 98.40%의 경우 첫 번째 토큰으로 '예(Yes)' 또는 '아니오(No)'를 생성했습니다. (여기서 쓰인 데이터에서 실제로 굉장히 높은 퍼센트가 yes or no로 시작하는군?)
    • 나머지 경우에서도 모델은 응답의 첫 몇 개 토큰 내에서 답변을 확정하는 경향을 보였습니다(예: "미국 상원의원에 대한 기록이 없습니다..."). 
    • 중요한 것은, 모델이 한 번 '예' 또는 '아니오'라고 답을 내면 그 토큰이 맥락 안에 남아 있고, 이후의 설명이 그 선택에 일관되게 연결되어야 한다는 것입니다. 
    • 따라서 모델은 복잡한 질문에 대해 단일 단계에서 답변을 생성하고, 그 답변에 대한 설명을 이어가게 되는데, 이는 필연적으로 잘못된 답변이 될 수밖에 없습니다.
    • 즉 처음 모델의 생성토큰이 yes or no다보니까 (instruction 데이터가 이런식이기 때문), 뒤에서 생성되는 토큰이 이에 대해 영향을 받을 수 밖에없다.
    • 따라서 처음에 yes or no을 잘못생성해버리면 쭉 잘못된 답변이 되는것.
  • Inherently sequentia: 
    • 더 나아가, transformer는 소수 판정 또는 그래프 연결성 같은 본질적으로 순차적인 추론 문제를 단일 단계 내에서 해결할 수 없습니다. 
      • 소수 판정같은건 35가 소수냐? --> 2로도 나눠보고 3으로도 나눠보고 등등 순차적으로 검증이 필요한데.. 이를 한번에 해결 못한다 이거인듯.
      • 근데 transformer은 순차적 생성이기 때문에 본질적으로 hallucination을 유도하는 원인이다?
    • 이는 최근 이론적 결과(Merrill & Sabharwal, 2023)로 문서화되었습니다. 
    • 우리의 그래프 연결성 및 소수 판정 데이터셋은 이러한 문제의 구체적인 예입니다. 
    • transformer는 여러 단계를 거쳐야 올바른 답을 도출할 수 있는 문제에 대해 단 한 단계로 답을 내릴 수밖에 없기 때문에, 때로는 잘못된 답변을 할 수밖에 없습니다. 
    • 우리는 이것이 LM이 사실을 잘못 생성하게 되는 원인이라고 가정합니다.

3. Experiments

  • 다음은 §2에서 설명한 특성을 가진 세 가지 QA 데이터셋을 설계하여, 환각(snowballing of hallucination) 문제를 조사하고 GPT-3.5, GPT-4, LLaMA-2-70B-chat 모델을 평가한 연구에 대한 설명입니다. 
  • 먼저, 언어 모델(LM)이 주어진 질문에 대해 올바른 답변을 반환하는지 확인한 후, 잘못된 답변을 반환했을 경우에는 그 답변에 대한 설명이 얼마나 부정확한지 살펴보았습니다. 
  • 모델이 틀린 답변을 제공할 때, 종종 그 잘못된 답변을 설명하는 데서도 잘못된 주장(incorrect claim)을 포함하곤 했습니다. 
  • 이 잘못된 주장을 자동으로 추출한 뒤, 같은 LM에 해당 주장이 올바른지 다시 확인하도록 요청했습니다.
  • 각 데이터셋에서 대표적인 예시는 표 1에 제시되어 있습니다. 
  • GPT-3.5와 GPT-4 평가를 위해, 공식 OpenAI API(https://platform.openai.com/playground)에서 2023년 4월과 5월 사이에 모델을 이용했습니다. 
  • 하지만 모델이 지속적으로 업데이트되었기 때문에, 이 실험을 다시 실행할 경우 다른 결과가 나올 수 있습니다. 
  • 참고로 2024년 3월에 재실험한 결과도 부록에 포함시켰습니다. 
  • 전체적으로 새로운 결과도 본 논문의 관찰 및 결론을 지지합니다.
  • 지금 모델 버전도 뭐 크게 비슷할듯? 할루시네이션을 고려해서 학습한 모델의 미래는 모르겠으나..

3.1. Datasets

  • 우리는 총 500개의 예/아니오(yes/no) 질문을 포함하는 세 가지 QA 데이터셋을 설계했으며, 각 질문은 Transformers이 한 번의 시간 단계(timestep)로는 답할 수 없을 것으로 예상됩니다. 
  • 평가를 돕기 위해, 질문들은 틀린 답변이 쉽게 검증 가능한 주장으로 정당화될 수 있도록 설계되었습니다.
  • 각 데이터셋에서 모든 예시에 대해 동일한 레이블을 고정해 두었으며, 모델이 잘못된 답변을 선택할 경우(예: 9677이 소수가 아니라고 답할 때), 특정 주장을 통해 이를 뒷받침하도록 했습니다(예: 잘못된 소인수 분해를 제시). 
  • 이를 통해 잘못된 답변에 대한 모델의 정당화 방식을 체계적으로 조사할 수 있게 되었습니다.
  • Primality testing
    • 데이터셋에서는 1,000에서 20,000 사이의 임의로 선택된 500개의 소수에 대해 소수 여부를 묻고 있으며, 정답은 항상 "예"입니다. 
    • 모델이 잘못된 답변을 할 경우, 그 답변을 잘못된 소인수 분해를 통해 정당화할 것으로 예상됩니다.
  • Senator search (상원의원 검색)
    • 이 데이터셋은 "x 주를 대표하며 y 대학교를 졸업한 미국 상원의원이 있었나요?" 형식의 질문 500개로 구성되어 있습니다. 
    • 여기서 x는 미국 주, y는 미국 대학교입니다. 
    • 모든 질문에 대한 정답은 항상 "아니오"입니다.
    • 모델이 잘못된 답변을 할 경우, 특정 상원의원이 x 주를 대표했고 y 대학교를 졸업했다고 잘못 주장할 것으로 예상됩니다. 
    • 이 데이터셋을 생성하기 위해 모든 미국 주와 열두 개의 인기 있는 미국 대학교 목록(전체 목록은 §A 참조)을 고려하였고, 각 가능한 쌍에 대해 템플릿을 따라 질문을 생성한 후, 정답이 "예"인 쌍은 수동으로 제거했습니다.
  • Graph connectivity
    • 이 데이터셋의 500개 질문 각각에서 14개 도시 간 12개의 항공편을 제시하고, 특정 도시에서 다른 도시로 이어지는 비행 경로가 있는지를 묻습니다. 
    • 이 문제는 동일한 기본 방향 그래프 구조에 해당하며(자세한 내용은 §A.1 참조), 항공편이 그래프의 간선, 도시는 노드로 표현됩니다. 
    • 데이터셋의 각 예시에서는 노드 이름에 영어 알파벳 문자를 무작위로 지정했습니다. 
    • 질문을 작성할 때, 서로 다른 서브그래프에 있는 출발 도시 s와 도착 도시 t를 샘플링하고, s는 출발 노드, t는 리프 노드가 되도록 추가 제약을 두어 1단계 휴리스틱으로 문제를 해결할 수 없게 했습니다.
    • 이 문제는 자연어로 더 자연스럽게 들리도록 항공편 찾기 질문 형태로 작성되었습니다. 
    • 프롬프트에서 열두 개의 항공편을 나열하며 (“도시 F에서 도시 K로 가는 항공편이 있습니다; 도시 G에서 도시 N으로 가는 항공편이 있습니다, ...”) 
    • 이후에 “도시 s에서 도시 t로 가는 일련의 항공편이 있나요?”라는 질문을 덧붙입니다. 
    • 정답은 항상 "아니오"입니다. 
    • 모델이 잘못된 답변을 할 경우, 존재하지 않는 항공편을 언급하며 답변을 정당화할 것으로 예상됩니다.

3.2. Inference Setup

  • Language models.
    • 실험은 GPT-3.5(gpt-3.5-turbo), GPT-4, 그리고 LLaMA2-70B-chat에서 탐욕적 디코딩(greedy decoding)을 사용하여 수행했습니다. 
    • 모든 실험은 zero-shot 방식으로 진행되었으며, 프롬프트에 예시 QA 쌍을 제시하지 않았습니다. 
    • 모델이 직접적인 프롬프트에서 어떤 행동을 보이는지에 초점을 맞췄으며(자세한 예시는 §A 참조), 이는 사용자들이 언어 모델과 상호 작용하는 가장 일반적인 방식입니다. 
    • zero-shot CoT 스타일의 프롬프트 방식 실험은 §5에서 다룹니다.
    • CoT 실험도 했는데 아마 비슷한 결과겠지?
  • 각 데이터셋에 대해 두 단계로 평가를 진행했습니다. 
  • 첫 번째 단계에서는 모델의 정확도(즉, 모델이 질문에 올바르게 답한 비율)를 평가했습니다. 
    • 모델이 잘못된 답변을 할 때마다 항상 그에 대한 설명을 생성한다는 점을 발견했습니다. 
  • 두 번째 단계에서는 모델이 그 설명에서 잘못된 단계(오류)를 식별할 수 있는지 평가했습니다.
  • 질문마다 모델의 응답이 "예(Yes)" 또는 "아니오(No)"로 시작하는지를 확인해 답변을 평가했습니다. 
  • 응답이 이러한 범주에 속하지 않는 경우, 모델이 전달한 답변을 수동으로 판단했습니다.
    • 파싱이 안된건 직접 판단한듯?

3.3. LM Recognition of Snowballed Hallucinations

  • 언어 모델이 환각이 누적(snowballed hallucinations)되는 상황을 인식하는지 확인하기 위해, 모델의 잘못된 주장을 모델 자체에서 검증하는 방식으로 실험을 진행했습니다. 
  • 여기서 인식 절차는 모델 출력에 대한 수동 검토를 통해 얻은 휴리스틱을 기반으로 하며, 다른 모델에서는 작동하지 않을 수 있습니다(예: 소수가 아니라는 주장을 뒷받침할 때 다른 모델은 인수를 제공하지 않을 수 있습니다).
  • Graph Connectivity
    • 모델이 연결된 항공편 경로가 있다고 판단한 샘플(응답이 “예”로 시작하는 경우)에 대해 모델 출력에서 항공편 목록을 수동으로 추출하고, 유효하지 않거나 연결되지 않은 항공편 경로를 식별했습니다. 
    • 유효하지 않은 목록을 수동으로 추출한 듯?
    • 이후 새로운 세션에서 모델에 추출된 항공편들이 제공된 항공편 정보에 기반해 유효한지, 연속된 항공편들이 실제로 연결되어 있는지를 확인하도록 요청했습니다. 
    • 모델이 오류를 정확히 감지하는지 확인하기 위해 검증 출력을 수동으로 평가했습니다. 
    • 성공적인 검증 예시는 부록 표 3에서 확인할 수 있습니다.


    • 위 예시보면, 존재하지 않는 항공편에 대해 재차 물어봐서 검증한것
  • Primality Testing 
    • 모델이 해당 숫자가 소수가 아니라고 답한 샘플에서 모델이 사용한 인수를 추출했습니다. 
    • 이를 위해, 출력을 맥락에 넣고 “위 텍스트에서 제안된 인수는 무엇입니까? 목록으로 나열해 주세요.”라고 물었습니다. 
    • 즉 output을 llm에 넣어서 인수를(예시에서 13과 751) 파싱한듯
    • 추출은 빠른 추론 속도를 위해 GPT-3.5와 원샷 데모를 이용했으며, 30개의 예시를 수동 검토한 결과, 항상 올바른 인수를 추출할 수 있음을 확인했습니다. 
    • 그런 다음 새로운 세션에서 각 추출된 인수를 개별적으로 모델에 검증하도록 요청했습니다. 
    • 성공적인 검증 예시는 부록 표 4에서 확인할 수 있습니다.
  • Senator Search
    • 상원의원 검색에서는 모델이 특정 대학을 졸업한 상원의원이 있다고 예측한 샘플마다 모델이 제시한 상원의원의 이름을 추출했습니다. 
    • 이를 위해 출력 내용을 맥락에 넣고 “위 텍스트에서 언급된 상원의원은 누구인가요? 이름만 알려주세요.”라고 요청했습니다. 
    • 이 추출 작업은 GPT-3.5를 사용하여 수행했으며, 30개의 예시에서 항상 정확한 이름을 추출할 수 있음을 수동으로 확인했습니다.
    • 소수 검증기와 마찬가지로 output을 llm에 넣어서 이름을 파싱한듯
    • 이후 새로운 세션에서 모델에 해당 상원의원이 질문에 언급된 대학을 졸업했는지와 해당 주를 대표했는지 검증하도록 요청했습니다. 
    • 성공적인 오류 감지 예시는 부록 표 5에서 확인할 수 있습니다.

3.4. Results

  • Question-answering accuracy: 
    • 그림 2에서 모든 모델은 전반적으로 매우 낮은 정확도를 보입니다. 
    • 환각 비율로 높을수록 안좋은거.. GPT4가 더 안좋네?
    • Senator Search 데이터셋에서 GPT-3.5를 제외하고, 모든 모델은 50% 미만의 정확도를 기록했습니다. 
    • 데이터셋별 오류율에 대한 자세한 내용은 부록 표 6을 참고하십시오.
  • Hallucination detection: 
    • 여기서는 모델이 잘못된 주장이 단독으로 제시될 때 이를 잘못되었다고 식별할 수 있는지 확인합니다. 
    • 그림 2에서 볼 수 있듯이, GPT-3.5는 잘못된 주장의 67.37%를 감지하며, GPT-4는 87.03%, LLaMA2-70Bchat은 93.67%를 감지했습니다. 
    • 모델이 검증에 실패한 경우(부록 표 14에 예시 있음) 이를 누적 환각으로 간주하지 않습니다.
    • LLM이 검증에 실패하면, hallucination 으로 간주 안됨. 즉, LLM 스스로의 환각에 대한 결과임. 진짜 환각을 출력한 확률은 아님
  • 전반적으로, 이러한 강력한 언어 모델들은 모두 환각이 누적되는 현상에 매우 취약하여, 모델이 스스로 잘못된 정보임을 감지할 수 있는 간단한 실수를 유발합니다.

4. Zero-shot Chain-of-thought Prompting

  • §3절에서, 언어 모델에 예/아니오 질문을 제시할 경우, 여러 단계의 추론이 필요한 경우에도 모델이 즉각적으로 답하려고 시도하여 잘못된 답변을 생성하게 되며, 이후 잘못된 답변을 설명하려고 할 때 누적 환각이 발생한다고 설명했습니다. 
  • 이 문제의 자연스러운 해결책은 연쇄적 사고(chain-of-thought) 방식의 프롬프트를 사용하는 것으로, 이는 추론이 필요한 문제에서 언어 모델의 성능을 향상시킵니다(Wei et al., 2022). 
  • 이를 조사하기 위해, 우리는 "Let’s think step by step"라는 제로샷 CoT 프롬프트를 사용한 실험을 진행했습니다(Kojima et al., 2023). 
  • 이 제로샷 프롬프트는 주어진 작업에 일반적으로 적용 가능하며, 레이블이 지정된 예시가 필요하지 않기 때문에 선택했습니다. 
  • 이 절에서 생성된 출력은 일반적으로 고정된 구조를 따르지 않으므로, 응답의 정확성과 누적 환각의 유무를 수동으로 검사합니다. 
  • 누적 환각이 발생했는지 여부는 모델이 이전의 잘못된 주장을 뒷받침하기 위해 사용한 근거(존재하는 경우)를 찾고, §3.3에 설명된 검증 질문을 적용하여 판단합니다.
  • CoT 프롬프트로 실험을 해보고, 사람이 직접 파싱하여 LLM에 검증질문 요청하는 식으로 함.

4.1. “Let’s think step by step” can Alleviate Hallucination

  • 각 작업에 대해 원래 질문의 끝에 “Let’s think step by step”라는 프롬프트를 추가했습니다(표 1 참조). 
  • 그림 3에 나타난 바와 같이, 두 모델 모두 Senator Search 작업을 완벽히 해결하고, Primality Testing 작업에서는 10% 이하의 오류율, Graph Connectivity 작업에서는 30% 이하의 오류율을 달성했습니다. 
  • 정확도에서 큰 개선이 있었음에도, 모델이 추론 단계를 출력하는 동안 환각이 발생하여 이후 단계에서 누적 환각을 유발하는 경우가 있습니다. 
  • 예를 들어, 아래 출력에서 GPT-3.5는 세 번째 단계에서 세 가지 옵션이 있다고 잘못 언급했는데, 실제로는 두 가지 옵션만 존재합니다. 
    • 이로 인해 “도시 C로 가는 항공편”이라는 누적 환각이 발생했습니다(GPT-3.5는 별도의 세션에서 E → C가 유효한 항공편이 아님을 검증할 수 있습니다). 
  • 그림 3에 나타난 바와 같이, LLaMA-2-70B-chat 모델의 경우 연쇄적 사고 프롬프트가 데이터셋에 따라 다양한 결과를 초래했습니다. 
  • 그러나 GPT-3.5와 GPT-4에 연쇄적 사고 프롬프트를 사용할 경우, 누적 환각의 절대적인 수는 유의미하게 감소했습니다. 
  • 이러한 결과는 일부 모델에서 연쇄적 사고 프롬프트가 데이터셋에 대해 효과적임을 보여줍니다.
  • openai 모델들에서는 효과적이나, llama에서는 큰 효과가 없었다.

4.2. Does “Let’s think step by step” Work on Composite Questions?

  • “한 단계씩 생각해 보자” 프롬프트는 §3.1의 세 가지 데이터셋에서 GPT-3.5와 GPT-4와 함께 좋은 성능을 보였지만, 이 데이터셋들은 단순한 구조를 가지고 있어 복잡한 추론이 필요하지 않았습니다. 
  • 반면에, 실제 텍스트 생성에서는 여러 동시 추론 문제를 해결해야 할 수도 있습니다. 
  • 우리는 이러한 복합 질문에 대해 “한 단계씩 생각해 보자” 프롬프트가 환각을 방지하는 데 효과적이지 않을 것이라고 가정합니다.
  • 누적 환각 문제를 해결하는 신뢰할 만한 방법으로 “한 단계씩 생각해 보자” 프롬프트를 사용할 수 있는지 추가로 조사하기 위해, 우리는 세 개의 새로운 데이터셋을 개발했습니다. 
  • 이 새로운 데이터셋 각각은 §3.1의 대응 데이터셋을 복합적으로 변형한 것입니다. 
  • 아래에서는 이 새로운 데이터셋의 세부 사항을 설명합니다.
  • Primality Testing: 
    • 1000에서 20000 사이의 소수 1500개를 무작위로 선택해, “다음 숫자 중 소수가 아닌 것이 있는가: 2171, 2843, 1289?” 형식으로 500개의 질문을 만듭니다.
  • Senator Search: 
    • 각 질문에서 §3.1에서 언급한 목록에서 하나의 대학과 미국 주 3개를 무작위로 선택한 뒤, “다음 주 중 어느 주에서 프린스턴 대학교를 졸업한 상원의원이 있었는가: 노스캐롤라이나, 미네소타, 플로리다?” 형식의 질문을 만듭니다. 
    • 질문에 나온 대학을 졸업한 상원의원이 없는 주만 선택하고, 동일한 주 세 개의 조합이 중복되지 않도록 했습니다.
  • Graph Connectivity: 
    • 각 질문에서 §3.1의 기준에 따라 비행 그래프에서 세 쌍의 도시를 무작위로 선택한 뒤, “다음 도시 쌍 각각에 대해 출발지에서 목적지로 가는 비행 경로가 있는지 확인하라: 도시 A에서 도시 I, 도시 N에서 도시 F, 도시 A에서 도시 E” 형식의 질문을 합니다.
  • 즉 한가지 문제를 해결하는 질문이 아닌, 여러 추론을 동시에하여 해결하는 식의 문제를 만든것이네

4.3. “Let’s think step by step” Struggles on the Composite Datasets

  • 각 질문에 “한 단계씩 생각해 보자” 프롬프트를 추가한 후 GPT-3.5와 GPT-4를 테스트한 결과, 그림 4에 나타난 바와 같이 오류율과 누적 환각 비율이 모두 높게 나타났습니다. 
  • 두 모델 모두 절반 이상의 질문에서 잘못된 답변(환각)을 내렸으며, 그 중 65% 이상의 사례에서 환각이 누적되었습니다. 
  • 모델의 출력을 수동으로 조사한 결과, §2에서 예상한 초기 확신 문제로 인해 모델이 어려움을 겪고 있음이 드러났고, “한 단계씩 생각해 보자” 프롬프트가 누적 환각을 방지하는 신뢰할 만한 해결책이 아님을 확인했습니다.
  • 여기서는 “한 단계씩 생각해 보자”만 테스트했지만, 질문에 대한 간단한 수정이 모델 성능을 크게 저하시킬 수 있다는 점에서 모델의 제로샷 추론 능력에 의존하는 것이 일반적인 해결책이 되기 어렵다는 것을 알 수 있습니다. 
  • 명확한 대안은 few-shot CoT 프롬프트를 사용해 추론 패턴을 명시함으로써 초기 확신 문제를 피하는 것입니다. 
  • 그러나 few-shot 프롬프트를 사용하는 경우 주어진 작업에 필요한 추론 유형을 사전에 이해해야 하며, 이는 특히 복잡한 질문에서는 항상 가능하지 않습니다.
  • 그냥 step-by-step으로는 복잡한 질문에 대한 hallucination을 해결할 수 없고 (즉 zero-shot은 한계가 있음), few-shot CoT 프롬프트는 해결책이 될 수 있으나.. 모든 문제에 대해 few-shot 프롬프트를 사용가능하진 않는 것이 문제

5. Towards a Robust Solution for Snowballing Hallucinations

  • §4.1에서 설명한 바와 같이, CoT 프롬프트는 상대적으로 적은 추론 단계가 필요한 작업의 경우 환각 누적을 완화하는 데 도움이 됩니다. 
  • 그러나 §4.3에서 논의한 바와 같이, 응답이 여러 추론 문제를 해결해야 하는 상황에서는 이러한 접근이 한계를 보입니다. 
  • 이 절에서는 환각 누적을 해결하기 위해 훈련 설정과 알고리즘적 세부 사항을 수정하는 다른 잠재적 해결책을 논의합니다.
  • Increasing the temperature: 
    • 디코딩 중 온도 \(t\)는 출력 분포의 뚜렷함을 조절하며, 온도가 높아질수록 각 다음 단어에 대한 확률이 모델의 가장 가능성 높은 예측에서 멀어집니다. 
    • §3에서 진행한 실험은 \(t = 0\)에 해당하는 탐욕적 디코딩을 사용했습니다. 
    • \(t = 0.6\)과 \(t = 0.9\)로 설정했을 때도 테스트한 모든 모델에서 오류율과 누적 환각 비율이 여전히 높게 나타났습니다(그림 5).
    • temperature 조절만으로 환각을 줄이기는 어렵다..?
  • Top-k and nucleus sampling: 
    • top-k 샘플링이나 누클리어스 샘플링(Holtzman et al., 2020)과 같은 샘플링 방법은 고려할 토큰 범위를 좁히기 때문에, 모델이 즉각적으로 답변을 확정할 가능성을 높이는 데 그치며, 환각 문제를 해결하는 데 도움이 되지 않습니다.
    • 이러한 샘플링도 환각을 줄이기는 어렵다
  • Beam search: 
    • §2에서, 환각 누적이 발생하는 이유로 모델이 일단 답변을 확정하는 몇 개의 토큰을 생성하면 이후 생성에 계속 영향을 미치기 때문이라는 가설을 제시했습니다. 
    • 이를 해결하는 한 가지 방법은 빔 서치입니다. 
    • 빔 서치는 각 시점에서 단일 시퀀스가 아닌 확률이 높은 여러 시퀀스를 유지하는 방식입니다. 
    • 이론적으로, 초기 잘못된 토큰 이후 빔에 남아 있는 일부 시퀀스가 답변을 확정하지 않거나(또는 올바른 답변으로 확정하는 경우), 이후의 전개에서 높은 확률을 가질 수 있습니다.
    • GPT-3.5와 GPT-4는 빔 서치 구현이나 출력 로짓을 제공하지 않아 LLaMA-2-70B-chat에서만 빔 서치(빔 개수를 10으로 설정)를 테스트했습니다. 
    • 그 결과, 소수 판별 데이터셋에서 오류율이 감소했으나, Senator Search 데이터셋에서는 오류율이 증가했고 전체적인 결과에는 변화가 없었습니다. 
    • 자세한 내용은 표 8과 표 9를 참조하십시오.
    • 빔서치로도 환각을 줄이기는 어렵다
  • Learning strategies
    • 환각 누적을 더 줄이는 일반적인 방법으로, 사전 학습 또는 지침 튜닝 단계의 일부 요소를 변경하는 방법이 있습니다. 
    • 특히, 모델이 답변을 생성하기 전에 추론 과정을 먼저 생성하도록 하는 데 중점을 두면, 모델의 계산적 한계를 고려하면서 잘못된 답변으로 인해 환각이 발생하는 상황을 피하는 데 도움이 될 수 있습니다.
  • 또한, 사전 학습에 사용되는 대규모 텍스트 코퍼스가 올바른 역추적(backtracking) 행동을 학습하는 데 필요한 데이터를 포함하고 있지 않을 가능성이 크다고 가정합니다. 
    • 예를 들어, 사람이 질문에 대한 답변을 작성하는 동안 여러 번 오류를 수정할 수 있지만, 최종 답변에는 이러한 수정 과정이 포함되지 않습니다. 
    • 이는 모델이 이전에 생성한 내용을 올바른 것으로 간주하도록 편향되며, 이전 환각을 강화하게 만듭니다. 
    • 역추적 패턴이 포함된 데이터로 미세 조정(finetuning)하면 우리가 제시한 작업에서 모델의 성능이 향상될 수 있습니다. 
    • 이를 위해, 질문을 제시한 후 잘못된 답변을 보여주고, "Sorry, that was incorrect"라는 구문을 추가하거나, 정답을 제시하기 전에 특별한 역추적 토큰을 추가하는 방식이 예시가 될 수 있습니다. 
    • 이 접근법은 Kim et al. (2023)에서 언급한 “이전 답변을 검토하고 문제점을 찾아보라” 프롬프트와 유사합니다.
  • 즉 환각을 해결할 수 있는 가능성으로는...
    • 학습을 할 때, 이유를 생성하고 답변을 생성하도록 해서 환각 snowball을 없애는 형태로 학습하고
    • 학습 데이터에 앞에 생성한게 틀려서 다시 생성한다는 식의 구문을 넣어서, 사람과 같이 수정작업이 일어나도록 하게끔 하는 데이터를 넣어주면 해결되지 않을까? 라고 제시한다

6. Related Work

  • Hallucinations
    • 텍스트 생성에서의 환각(hallucination)은 잘 연구된 문제입니다 (Rohrbach et al., 2018; Maynez et al., 2020; Raunak et al., 2021). 최근에는 언어 모델이 그럴듯한 거짓말을 만들어내는 경향이 증가하면서 더 주목받고 있습니다. 환각은 종종 언어 모델의 지식 결핍과 관련이 있으며 (Zheng et al., 2023), 여러 연구는 지식 베이스를 활용한 검색이 이러한 문제를 완화하는 데 유망하다고 보여주었습니다 (Lewis et al., 2020; Shuster et al., 2021; Peng et al., 2023). 본 연구는 맥락에서 환각이 유도될 수 있음을 보여주며 추가적인 완화 기술의 필요성을 제기합니다.
    • 환각의 악화(snowballing)는 노출 편향(exposure bias)으로 인한 것으로 보입니다. 언어 모델은 훈련 중에는 정확한 데이터에만 노출되었지만 추론 시에는 이전의 잘못된 예측을 바탕으로 조건이 형성됩니다. 이전 연구는 이를 기계 번역에서 환각이 누적되는 원인으로 연결한 바 있으며 (Wang & Sennrich, 2020), 열린 형태의 텍스트 생성에서도 나타났습니다 (Arora et al., 2022). 우리는 오류 전파를 보여주는 것에서 나아가, 언어 모델이 스스로 이러한 누적된 환각을 인식함을 확인했습니다.
    • 또한, 우리 연구는 언어 모델이 잘못된 전제를 포함한 질문을 받았을 때 환각을 일으킨다는 이전 연구와도 관련이 있습니다 (Kim et al., 2021; 2022; Yu et al., 2022). 다만, 우리의 질문은 의도적으로 오도되지 않은 정보 탐색적 질문이라는 점에서 차별화됩니다. 이는 순수한 정보 탐색적 질문에서도 이 실패 모드가 유발될 수 있음을 보여줍니다.
  • LM (in)consistency
    • 우리의 연구는 언어 모델이 동일한 문제에 대해 서로 다른 프롬프트에서 일관성이 부족하다는 증거를 더하고 있습니다. 예를 들어, 언어 모델이 중간 단계를 생성하도록 허용하면 (Nye et al., 2021; Wei et al., 2022; Press et al., 2022) 원래와 다른 답을 도출할 수 있습니다. 또 다른 연구에서는 프롬프트에 “교수 스미스는 다음 지시사항을 받았습니다”와 같은 문구를 추가하는 것만으로도 문제 해결 성능이 향상되는 것을 보여줍니다 (Lin et al., 2022).

7. Conclusion

  • 우리는 최신 언어 모델에서 새로운 유형의 환각을 식별했으며, 이를 "스노우볼 환각(snowball hallucination)"이라고 명명했습니다. 
  • 이전 연구에서는 환각의 원인을 주로 언어 모델의 지식 결핍에 두었지만, 스노우볼 환각은 이전의 잘못된 주장에 대한 설명 과정에서 발생하며, 언어 모델이 스스로 이를 잘못된 것으로 인식하는 특징이 있습니다. 
  • 우리의 연구 결과는 스노우볼 환각이 단순히 대체 디코딩 전략이나 프롬프트 수정으로 완전히 해결되지 않음을 시사하며, 모델 훈련 및 배포의 모든 단계에서 해결책을 모색하는 추가 연구의 필요성을 제기합니다.

Reference

댓글