NL-231, Self-contradictory Hallucinations of Large Language Models: Evaluation, Detection and Mitigation, ICLR 2024
◼ Comment
- 자기모순 환각에 대해 다룬 연구이다.
- 즉 LLM이 응답을 생성했을 때, 응답을 구성하는 문장들이 할루시네이션이 있는지 없는지를 어떻게 판단하느냐?
- 1. 각 문장을 다시 한번 생성해본다.
- 2. 기존 문장과 새로 생성된 문장간의 정보들이 일치하는지 파악한다는 것이다.
- 이러기 위해서는 다시 생성될 문장이 같은 컨텍스트를 기반으로 해야한다
- 따라서 일단 LLM으로 기존 응답을 생성하고,
- 응답의 각 문장에 대한 컨텍스트를 찾고
- 그 컨텍스트에 대해 문장을 새롭게 생성한다
- 그래서 기존 문장과 새로운 문장이 pair로 만들어지면, 자기모순이 있는지 파악을 한다
- 두 문장을 생성하고 여기서 자기모순이 있으면,
- 정보 불일치 부분을 없애서 할루시네이션을 삭제한다는 것이다
- 이러한 과정을 반복적으로 수행하여 응답에 자기모순 할루시네이션을 점점 없앤다고 보면 된다
- 이는 다 LLM으로 수행된다고 보면 된다
- 즉 모델 학습이나 그런것은 딱히 없고.. LLM을 인퍼런스 할 때, 할루시네이션을 없애면서 생성하는 하나의 전략을 보여줬다고 생각된다.
- RAG도 할루시네이션을 억제할 수 있는 방법 중 하나일 텐데, 여기서 제안한 자기모순 할루시네이션은 RAG을 사용해도 발생한다고 한다.
- 물론 RAG을 쓰면 자기모순 비율이 조금 줄어드는 것 같다
- 하지만 애초에 RAG등의 웹검색으로 자기모순을 검증할 수 없는 부분도 꽤 많다고 했다
- 자기모순 없애는 방법으로 처음 보는 접근법을 제시한 contribution이 있는 것 같음
- 여기서 좀 더 비슷하게 실험해볼 것들은 남아있지 않나 싶다
- inference scaling과 결합해서, 수학문제등의 추론 문제 타겟이 아닌 일반 생성에서 자기모순 할루시네이션을 제거하는 목적으로
- sLLM과 LLM을 결합하는 느낌으로 해볼 수 있지 않을까?
- 데이터 설명은
- https://github.com/eth-sri/ChatProtect/issues/1
Abstract
- 대규모 언어 모델(large LMs)은 잘못된 내용을 포함하는 텍스트를 생성하는 문제가 있으며, 이 중 중요한 사례로 자기모순(self-contradiction)을 들 수 있습니다.
- 자기모순은 동일한 문맥에서 서로 모순되는 두 문장을 생성하는 경우를 말합니다.
- 본 연구에서는 여러 instruction-tuned LMs에 대한 자기모순 문제를 평가, 탐지 및 완화하는 포괄적인 조사를 제공합니다.
- 주요 평가 과제로는 오픈 도메인 텍스트 생성이 포함되며, 짧은 질문 응답 형식에도 본 접근법이 적용 가능함을 입증하였습니다.
- 분석 결과, 자기모순이 광범위하게 나타남을 확인했으며, 예를 들어 ChatGPT가 생성한 문장 중 17.7%에서 자기모순이 발견되었습니다.
- 이를 해결하기 위해 효과적으로 자기모순을 탐지하고 완화하는 새로운 프롬프트 기반 프레임워크를 제안합니다.
- 탐지 모델은 높은 정확도를 달성했으며, 예를 들어 ChatGPT를 프롬프트 기반으로 활용했을 때 약 80%의 F1 점수를 기록했습니다.
- mitigation 알고리즘은 생성된 텍스트의 유창성과 정보성을 유지하면서 모순되는 정보를 반복적으로 수정합니다.
- 특히, 본 프레임워크는 외부 지식을 검색할 필요 없이 블랙박스 언어 모델에 적용 가능하며, 검색 기반 방법을 보완합니다.
- 이는 self-contradictions의 큰 비중(예: ChatGPT의 경우 35.2%)이 온라인 텍스트를 통해 검증되지 않기 때문입니다.
- 본 접근법은 실질적으로 효과적이며, 대중을 위해 손쉽게 사용할 수 있는 도구로 제공되고 있습니다.
- 자세한 내용은 https://chatprotect.ai/에서 확인 가능합니다.
1 INTRODUCTION
- 대규모 언어 모델(large LMs)은 방대한 텍스트 데이터 코퍼스를 기반으로 사전 학습되며, 이후 인간의 지시를 따르도록 세밀하게 튜닝됩니다.
- Instruction-tuned LMs, 예를 들어 ChatGPT는 자연어 작업을 해결하는 데 있어 놀라운 제로샷 능력을 보여주었으며, 따라서 온라인 검색 및 전문 환경을 포함한 일상생활의 다양한 측면에 점점 더 통합되고 있습니다.
- 그러나 ChatGPT와 GPT-4와 같은 널리 채택된 LMs조차 비합리적이거나 사실에 기반하지 않은 내용을 생성하는 경향이 있으며, 이는 흔히 hallucinations이라고 불립니다.
- 이러한 문제는 LMs의 신뢰성과 관련된 심각한 우려를 제기하며, hallucinations를 탐지하고 완화하는 문제는 여전히 해결되지 않은 과제입니다.
- 특히, 최신 상태의 독점적인 LMs는 블랙박스 방식으로만 접근할 수 있기 때문에, 이를 다루는 데 더 큰 어려움이 따릅니다.
- Reasoning about Self-contradictory Hallucinations
- 본 연구는 hallucinations의 한 중요한 유형인 self-contradiction에 초점을 맞춥니다.
- 이는 동일한 문맥에서 논리적으로 일관되지 않은 두 문장을 생성하는 경우를 말합니다.
- 본 연구의 핵심 통찰은 self-contradiction을 활용하여 비사실적인 모델 출력 문제를 효과적으로 해결할 수 있다는 점입니다.
- 두 개의 모순된 문장은 동시에 사실일 수 없으므로, self-contradiction은 비사실성을 필연적으로 드러냅니다.
- 더불어, 모순된 문장에서 상충하는 정보를 제거하면 non-factuality이 감소합니다.
- 중요한 점은, 이러한 모순 탐지와 제거가 현대 LMs의 강점인 논리적 추론을 통해 가능하다는 것입니다.
- 따라서 외부 지식을 검색하거나, 수십 개의 샘플을 비교해야 하는 기존 접근 방식에 의존하지 않아도 됩니다.
- 이는 실제로 어려움이 크거나 비용이 많이 드는 문제를 해결합니다.
- Self-contradiction에 대한 추론을 위한 3단계 파이프라인
- 본 연구는 self-contradiction을 다루기 위한 3단계 파이프라인을 제안합니다:
- 1. Self-contradiction trigger: 적절한 제약 조건을 사용하여 관련된 문장 쌍을 생성합니다.
- 2. detection: self-contradiction을 탐지하기 위해 기존의 다양한 프롬프트 전략을 탐색합니다.
- 3. mitigation: 반복적인 수정 절차를 통해 모순되는 정보를 제거하면서, 텍스트의 유창성과 정보성을 유지합니다.
- 이 프레임워크는 프롬프트 기반으로 작동하기 때문에 최신 블랙박스 LMs에도 바로 적용할 수 있습니다.
- Self-contradiction의 중요성
- 본 연구는 네 가지 최신 LMs(GPT-4(OpenAI, 2023b), ChatGPT(OpenAI, 2023a), Llama2-70B-Chat(Touvron et al., 2023b), Vicuna-13B(Chiang et al., 2023))에 대해 광범위한 평가를 수행하였습니다.
- 주요 평가 과제는 LMs의 내부 지식을 사용하여 긴 텍스트를 생성하는 open-domain text generation이며, 이는 높은 신뢰성을 요구하지만 달성하기 어려운 작업입니다.
- 평가 결과, self-contradiction의 중요성이 강조되었습니다.
- 예를 들어, ChatGPT가 open-domain text generation에서 생성한 모든 문장 중 17.7%에서 self-contradiction이 발견되었습니다.
- 이러한 self-contradiction의 상당 부분(예: ChatGPT의 경우 35.2%)은 Wikipedia나 웹 검색으로 검증할 수 없습니다.
- 이는 본 연구가 retrieval-based 접근법을 보완하는 데 유용하다는 것을 보여줍니다.
- chatgpt에서 17.7%가 모순의 문장 2개를 생성하는 할루시네이션이 발생했는데, 이 중 35.2%는 검색으로도 검증할수가 없었다.
- 즉 RAG 방식을 보완하는데 유용하다고 주장
- Effective Detection 및 Mitigation
- 제안된 프레임워크는 self-contradiction의 detection과 mitigation에서 높은 효과를 보였습니다.
- 예를 들어, detection 단계에서는 약 80%의 F1 점수를 기록했으며, mitigation 단계에서는 self-contradiction을 최대 89.5%까지 줄이면서 텍스트의 정보성과 유창성을 유지했습니다.
- Table 1에서는 ChatGPT가 생성한 self-contradiction의 두 가지 사례를 제시하며, 이들은 본 연구의 방법으로 성공적으로 trigger, detect, mitigate되었습니다.
- 추가적인 사례는 Appendix C에서 문장 및 텍스트 수준의 긴 예제로 확인할 수 있습니다.
- Generality
- 본 방법은 question answering 작업에도 적용되었습니다.
- 그 결과, vanilla 및 retrieval-augmented question answering 모두에서 높은 정확도(예: 74.2%에서 83.8%의 precision)로 상당한 수의 self-contradiction(12.7%에서 38.0%)을 탐지할 수 있었습니다.
- 사용자 친화적 도구 및 오픈소스 제공
- 제안된 프레임워크는 높은 효과성과 범용성을 통해 실용성을 입증하였습니다.
- 이를 바탕으로 hallucination에 대해 경고를 제공하고 이를 자동으로 완화하는 사용자 친화적인 도구를 https://chatprotect.ai/에서 공개하였습니다.
- 또한, 코드와 데이터셋은 https://github.com/eth-sri/ChatProtect에서 누구나 사용할 수 있도록 오픈소스로 제공됩니다.
2 RELATED WORK
- In this section, we discuss works that are closely related to ours.
- 대형 언어 모델(LLM) 훈련은 두 단계로 이루어집니다:
- 사전 학습(Chowdhery et al., 2022; Zhang et al., 2022; Touvron et al., 2023a)과 명령어 튜닝(instruction-tuning, Ouyang et al., 2022)입니다.
- 상용 명령어 튜닝 LLM(OpenAI, 2023a;b; Anthropic, 2023)은 일반적으로 독점적이며 블랙박스 방식으로만 접근할 수 있습니다.
- Alpaca(Taori et al., 2023)를 시작으로, Vicuna(Chiang et al., 2023) 및 Llama2(Touvron et al., 2023b)와 같은 오픈소스 명령어 튜닝 LLM이 등장했습니다.
- 명령어 튜닝 LLM은 텍스트 추론에 강력한 성능을 보여 일상적으로 점점 더 많이 사용되고 있습니다(Bang et al., 2023; Qin et al., 2023; Zhong et al., 2023; Liu et al., 2023).
- MMLU(Hendrycks et al., 2021) 및 HELM(Liang et al., 2022)과 같은 포괄적인 벤치마크가 LLM의 전반적인 능력을 철저히 평가하기 위해 제안되었습니다.
- 우리의 연구는 이러한 벤치마크를 넘어, 특히 LLM의 환각(hallucination)을 해결하는 능력에 중점을 둡니다.
- 자연어 생성에서의 환각
- Ji et al.(2023)의 설문 조사에 따르면, 환각은 번역, 요약, 대화, 그리고 질의응답과 같은 다양한 자연어 생성 작업에서 흔히 발생하는 문제입니다.
- 벤치마크 같은걸 만들거나 할때, 이런작업에 해당하는 데이터를 만들면 되지 않을까?
- 또한 두 연구에서는 오픈 도메인 텍스트 생성에서의 환각을 탐구했습니다.
- Lee et al.(2022)의 연구는 훈련 및 추론의 내부 접근이 필요하지만, 우리의 연구는 블랙박스 LLM에도 적용할 수 있도록 설계되었습니다.
- Manakul et al.(2023b)과 비교했을 때, 우리의 프레임워크는 환각 감지에서 훨씬 더 높은 정확도를 가지며(부록 B 참조), 환각 완화 문제도 추가로 다루고 있습니다.
3 DEFINING AND MOTIVATING SELF-CONTRADICTIONS
- 자기모순(Self-contradiction)의 정의와 이를 해결하려는 동기
- Language Models
- 우리는 일련의 문장으로 구성된 텍스트를 생성하는 언어 모델(LM)을 고려합니다: x = [x_1, x_2, \dots, x_{|x|}] .
- 일반적으로 텍스트 생성 과정은 수행할 작업을 지정하는 사용자 프롬프트 p 에 따라 조건화됩니다.
- 여러 문장을 생성할 경우, 이 과정을 \textbf{x} \sim LM(\cdot | p) 로 나타내며, 단일 문장을 생성할 때는 x \sim LM(\cdot | p) 로 표현합니다.
- Self-contradiction of LMs
- 우리는 LM이 생성한 문장 쌍 (x, x') 을 분석합니다.
- x 와 x' 가 모순되려면 동일한 주제를 설명해야 합니다.
- 따라서 c 라는 프롬프트 형태의 컨텍스트를 제공하여 생성 과정을 제한합니다.
- 즉, x \sim LM(\cdot | c) 및 x' \sim LM(\cdot | c) 입니다.
- 우리가 정의한 자기모순은 두 문장이 논리적으로 일관되지 않을 때 발생합니다.
- 우리의 정의는 외부 문장(즉, LM이 생성하지 않은 문장)을 환각(hallucination) 평가에 사용하는 기존 연구(Elazar et al., 2021; Azaria & Mitchell, 2023)와 달리, 동일한 LM에서 생성된 문장만을 고려합니다.
- 또한, 다른 chain-of-thought 추론 경로 간의 자기 일관성(self-consistency)을 다루는 기존 연구(Wang et al., 2023)와는 달리, 우리의 정의는 더 넓은 컨텍스트에서 사실적 진술을 포착합니다.
- Self-contradiction vs. Non-factuality
- x 와 x' 가 서로 모순될 경우, 최소 하나는 사실적으로 잘못되었음이 보장됩니다(Dowden, 2011).
- 우리의 주석에 따르면, ChatGPT가 생성한 자기모순 중 63.1%에서 두 문장 모두 비사실적인 경우가 있습니다.
- x 와 x' 가 동일한 LM에서 생성되었기 때문에, 이들의 모순은 LM의 비사실성을 드러냅니다.
- 이를 더 발전시켜, 모순된 문장에서 충돌 정보를 제거하면 비사실성이 엄격히 감소합니다.
- 이러한 핵심 속성은 두 개의 샘플 문장만으로 비사실성을 감지하고 완화하는 데 활용됩니다.
- 우리 연구와 유사하게 샘플링 기반 방법을 활용한 연구(Kuhn et al., 2023; Manakul et al., 2023b; Cohen et al., 2023b)가 있지만, 이들은 비사실성과 자기모순 간의 연결에 대한 통찰을 활용하지 못합니다.
- 따라서 합리적인 감지 정확도를 달성하기 위해 수십 개의 샘플이 필요하며, 완화는 처리할 수 없습니다.
- Self-contradiction vs. Knowledge Retrieval
- 환각 문제를 해결하기 위한 일반적인 접근법은 외부 지식을 검색하여 비사실적 내용을 식별하거나 사실적 텍스트 생성을 유도하는 것입니다(Dinan et al., 2019; Shuster et al., 2021; Peng et al., 2023; Min et al., 2023; Mallen et al., 2023).
- 그러나 효과적인 지식 검색은 실제로 도전적이고 비용이 많이 듭니다(Zhou et al., 2022; Ji et al., 2023; Mallen et al., 2023).
- 반면, 자기모순의 감지 및 완화는 최신 LM의 강점인 논리적 추론만으로도, 심지어 zero-shot 방식에서도 달성할 수 있습니다(Liu et al., 2023).
- 실제로 우리의 평가에 따르면, 실제 자기모순의 상당 부분(예: ChatGPT의 경우 35.2%)은 관련 온라인 텍스트를 사용하여 검증하거나 반박할 수 없습니다.
- 또한, 섹션 6.3에서 보여주듯, 우리의 접근 방식은 지식 검색을 증강한 생성물(Mallen et al., 2023)에서도 많은 자기모순을 감지할 수 있습니다.
- 이는 우리의 연구가 검색 기반 접근법에 유용한 보완물이 된다는 점을 보여줍니다.
- 기본적으로 chatgpt은 자기모순 생성 문장들을 생성한다고 한다 (chatpgt경우 63.1%)
- 이를 보완하기 위하여, 검색 같은것을 통하여 외부지식을 활용해도 35.2%(chatgpt 경우)의 부분을 검증하거나 반박하기 어렵다고 한다.
- 여기서 제안한 방법은, LLM에게 두 개의 문장을 생성하게 하고, 이 둘이 논리적으로 일관되는지를 파악후, 상충되는 부분을 제거하여서 비사실성을 감소시키는 전략? 인것 같음
4 TRIGGERING, DETECTING AND MITIGATING SELF-CONTRADICTIONS
- 우리는 두 개의 언어 모델(LM), gLM 과 aLM 을 고려합니다.
- 여기서 gLM 은 텍스트 x = [x_1, x_2, \dots, x_{|x|}] 를 생성하는 모델이며, aLM 은 분석기 역할을 하는 모델입니다.
- 이 섹션에서는 gLM 의 자기모순을 유발하고, 이를 aLM 을 사용해 감지하고 완화하는 알고리즘을 설명합니다.
- 이러한 알고리즘에서 서로 다른 텍스트 추론 작업을 해결하기 위한 네 가지 주요 유틸리티 함수를 분리할 수 있습니다.
- 아래는 이 유틸리티 함수들에 대한 일반적인 정의이며, 섹션 5에서 구체적인 구현을 논의합니다.
- 1. extract_contexts( x_i, x )
- 문장 x_i 에 대한 컨텍스트 목록을 추출합니다.
- 이 과정에서 텍스트 x 의 메타데이터(예: x 의 엔터티 정보 등)를 사용할 수 있습니다.
- 2. gLM.gen_sentence( c )
- gLM 에 질의하여 컨텍스트 c 와 호환되는 새로운 문장 x'_i 를 생성합니다.
- 3. aLM.detect( x_i, x'_i, c )
- aLM 을 호출하여 문장 x_i 와 x'_i 가 컨텍스트 c 내에서 모순되는지 예측합니다.
- 4. aLM.revise( x_i, x'_i, c )
- 컨텍스트 c 내에서 모순된 문장 쌍 (x_i, x'_i) 를 입력으로 받아들입니다. 이 함수는 aLM 을 호출하여 x_i 의 수정 버전을 생성합니다. 수정된 문장은 x_i 와 x'_i 간의 모순 정보를 제거하면서도 가능한 한 많은 비모순 정보를 유지하고, 컨텍스트 c 와 일관성을 가지도록 설계됩니다.
- Trigger
- 일반적인 사용 사례에서 gLM 은 각 문장을 한 번만 생성합니다.
- 그러나 자기모순을 유발하려면 gLM 이 동일한 문장의 두 번째 버전을 생성하도록 적절히 요청해야 합니다.
- 이를 위해 알고리즘 1을 개발했습니다.
- 1. 알고리즘 절차
- - **2번째 줄**: x 의 문장들을 반복합니다.
- - **3번째 줄**: 각 문장 x_i 에 대해, extract\_contexts 를 호출하여 컨텍스트 목록을 얻습니다.
- - **4번째 줄**: gLM.gen\_sentence 를 실행하여, 컨텍스트 c 와 호환되는 대체 문장 x'_i 를 생성합니다.
- - **5번째 줄**: 결과로 생성된 문장 쌍 (x_i, x'_i) 과 그 컨텍스트 c 를 Python의 `yield` 방식으로 반환합니다.
- 2. **컨텍스트 c 의 역할**
- - c 는 x'_i 가 x_i 와 동일한 범위를 갖도록 효과적으로 제약합니다.
- - 동시에 c 는 gLM 이 x'_i 를 생성할 때 x_i 와 모순되도록 적절한 수준의 자유를 제공해야 합니다.
- - 이러한 이중 목표를 달성하는 방법은 **섹션 5**에서 상세히 다룹니다.
- 먼저 gLM으로 응답 x을 생성한다.
- 응답 x는 여러 문장 x1,x2,.. 으로 구성되어있을 것이다.
- 각 문장 xi에 대해, context을 추출한다. 즉 xi을 생성하는데 기반이 되는 컨텍스트 c를 추출한다는 것
- c에 해당하는 새로운 문장 x'i을 gLM으로 생성한다.
- xi, x'i, c을 반환한다.
- 요약하면 응답의 각 문장에 해당하는 다른 문장들을 생성한다는 것이다.
- 그림 1을 보면, 파란색이 아마 context에 해당하는 것이고, 이에 해당하도록 x'i(He was born in 1960)을 생성하도록 지시하는 프롬프트로 보인다.
- 여기서 x'i의 포맷을 xi와 일치시키려고 보락색처럼 출력 포맷 제한을 걸어주는 것 같다.
- Detection
- **알고리즘 1**의 출력에 대해 aLM.detect 를 호출하여 자기모순을 감지합니다.
- 이 절차는 자연어 추론(NLI)과 밀접한 관련이 있습니다.
- NLI는 전제(premise)와 가설(hypothesis) 간의 관계(포함, 중립, 모순)를 예측합니다.
- 하지만 우리의 감지는 일반적인 NLI와 다음과 같은 차이가 있습니다:
- 1. 두 문장이 동일한 LM 에서 생성되어야 합니다.
- 2. 감지 과정에서 두 문장이 등장하는 컨텍스트를 고려합니다.
- 3. 우리의 감지 결과는 이진(binary) 출력입니다: **모순 여부**만 판별합니다.
- NLI 작업을 LLM인 aLM을 통해 수행하는 것
- Mitigation
- 알고리즘 2를 통해 x 의 모든 문장에 대해 자기모순 정보를 제거하는 **국소 수정(local revision)**을 수행합니다.
- 1. 절차
- - aLM.detect 가 자기모순을 예측하면, aLM.revise 를 사용하여 모순 정보를 제거합니다.
- - 자기모순이 감지되지 않은 문장은 수정하지 않습니다.
- 이를 통해 x 의 유창성(fluecy)과 정보성(informativeness) 같은 텍스트 품질을 유지합니다.
- 2. 반복적 완화 절차 (Algorithm 3)
- - 업데이트된 x 에 대해 위의 절차를 반복합니다.
- - 각 반복에서 **Algorithm 2**의 mitigate\_one 을 호출하여 모든 문장 쌍 (x_i, x'_i) 및 컨텍스트 c 를 처리합니다.
- - 출력은 x_i 에 다시 할당되며, 텍스트 x 에 최종적으로 반영됩니다.
- - 실험에서는 3회의 반복 이후 완화 절차가 수렴하는 것으로 나타났습니다.
- 반복적으로 revise을 한다는 개념으로 응답 x을 revise한것으로 채우고 반복한다는 것 (위 알고리즘 3보면 됨)
- 3. **최종 단계**
- - 반복 이후에도 aLM.detect 에 의해 식별된 소수의 자기모순이 남아있을 수 있습니다.
- 이 경우, 해당 문장을 삭제합니다.
- - 이로 인해 생성된 텍스트의 품질이 저하되지 않음을 부록 B의 **Table 10**에서 확인할 수 있습니다.
- - 이 과정을 거치면 모든 예측된 자기모순이 제거됩니다.
- gLM과 aLM은 어떤 LLM을 쓰는걸까? 뒤에 실험에서 나옴
5 INSTANTIATION TO TEXT GENERATION TASKS
- 우리의 프레임워크는 프롬프트 기반으로 설계되어 최첨단 및 독점적인 블랙박스 LM에 적합합니다.
- 이 섹션에서는 주 평가 과제인 개방형 텍스트 생성(open-domain text generation, Manakul et al., 2023b; Lee et al., 2022)에서 이러한 프롬프트를 구체화합니다.
- 이 과제에서는 다양한 엔터티에 대해 수십 개의 사실이 포함된 긴 텍스트를 LM이 생성하도록 요청합니다.
- 이 과제에 초점을 맞추는 것은 다음 세 가지 주요 장점을 제공합니다:
- (i) 다양한 도메인에서 텍스트를 생성하는 현대 LM의 실제 사용 사례와 밀접하게 일치합니다(Mehdi, 2023; NerdyNav, 2023; Spataro, 2023).
- (ii) LM이 내부 지식을 풀어내야 하므로 자기모순 분석에 적합합니다(Petroni et al., 2019; Cohen et al., 2023a).
- (iii) 긴 텍스트를 처리하는 것이 도전적인 과제입니다(Ji et al., 2023).
- 이 섹션의 끝에서는 우리의 접근법을 질문 응답(question answering)과 같은 다른 작업에 일반적으로 적용하는 방법도 논의합니다.
- Generating Initial Text
- 먼저, 사용자 제공 프롬프트를 사용하여 gLM 에 텍스트 x 생성을 요청합니다.
- 개방형 텍스트 생성 과제의 경우, 사용자 프롬프트는 “Please tell me about t ” 형식을 취하며, 여기서 t 는 특정 도메인의 엔터티입니다.
- 사용자 프롬프트를 받은 후, gLM 은 t 에 대한 내부 지식을 백과사전 스타일로 반영하는 문장 시퀀스를 생성합니다.
- Defining Context
- gLM 이 생성한 텍스트 x 와 x 의 문장 x_i 가 주어졌을 때, x_{<i} 는 x_i 이전의 문장을 나타냅니다.
- 즉, x_{<i}= [x_1, x_2, \dots, x_{i-1}] 입니다.
- 우리는 x_i 의 컨텍스트 c 를 세 가지 요소로 구성된 튜플로 정의합니다.
- 1. 첫 번째와 두 번째 요소는 텍스트 x 의 엔터티 t 와 접두사 x_{<i} 입니다.
- 2. 세 번째 요소는 정보 추출(IE) 시스템을 사용하여 x_i 에서 추출한 관계 삼중항(triple) (s, r, o)입니다(Banko et al., 2007).
- 그림 1에서 출력의 포맷을 제어 등을 위하여 사용되는 정보들
- 우리는 CompactIE(Bayat et al., 2022)를 선택했는데, 이는 개방형 도메인에 적합하며 입력 문장의 범위에서 삼중항 요소를 구성합니다.
- CompactIE는 매개변수 1억 1천만 개를 가진 작은 BERT 모델로, 외부 정보를 입력으로 받지 않습니다.
- Trigger
- gLM.gen\_sentence(c) 를 구체화하기 위해, 우리는 c 를 프롬프트로 포맷합니다.
- 프롬프트의 예는 **그림 1**에 나와 있으며, (제시를 위해 축약된 형태로 제공되었으며, 전체 프롬프트는 부록 D에서 확인할 수 있습니다).
- 프롬프트는 c 의 요소들을 포함하며, 여기에는 엔터티 t (예: William T. Freeman, MIT EECS 소속 교수), 접두사 x<i , 그리고 관계 삼중항의 첫 두 요소(예: s : He, r : was born)가 포함됩니다.
- 이러한 요소들은 출력 문장 x'_i 의 범위를 제한하는 역할을 합니다.
- 중요하게도, 관계 삼중항의 세 번째 요소 o 는 생략되며, 이는 gLM 의 생성 과정에 어느 정도의 자유도를 부여합니다.
- 결과적으로 프롬프트는 LM이 내부 지식을 기반으로 빈칸을 채우는 클로즈 테스트(cloze test)와 유사한 형태가 됩니다.
- gLM 이 엄격히 하나의 문장만 생성하도록 하기 위해, 우리는 시스템 메시지를 변경하고 소수의 예제(few-shot demonstrations)를 제공합니다.
- 프롬프트가 주어졌을 때, gLM (이 경우 ChatGPT)은 컨텍스트와 일치하는 문장을 성공적으로 생성하며, 이는 빨간색으로 강조 표시됩니다.
- 부록 B의 **Table 8**에서, 우리는 gLM.gen\_sentence 에 대해 재구성(과도한 제약) 및 연속 요청(불충분한 제약)과 같은 대체 프롬프트 전략을 실행했습니다.
- 우리의 프롬프트는 적절한 수준의 제약을 부과하기 때문에 모든 기준선을 크게 능가하는 성능을 보여줍니다.
- Detect
- 우리는 zero-shot 프롬프트를 활용하여 aLM.detect(x_i, x'_i, c) 를 구체화합니다.
- 이 프롬프트는 엔터티 t , 접두사 x<i , 그리고 문장 쌍 (x_i, x'_i) 를 포함합니다.
- chain-of-thought 프롬프트 기법을 적용하여 aLM 이 먼저 설명을 제공한 후 결론을 도출하도록 요청합니다.
- 이를 통해 모델은 모순 검출이라는 복잡한 문제를 더 작은 추론 단계로 분해할 수 있습니다.
- 실제로 생성된 설명은 x_i 와 x'_i 와 함께 사용자에게 반환될 수 있어, 검출 결과의 해석 가능성을 높입니다.
- 설명하고 대답을 요구하는식의 추론을 하면 더 좋은 결과가 나온다고 주장하는 듯
- 최종 검출 결과는 이진 결론(예: Yes 또는 No)으로 제공되며, 이를 통해 결과를 간편하게 파싱할 수 있습니다.
- 이러한 프롬프트의 예시는 **그림 2**에 나와 있습니다.
- 예를 들어, 두 개의 gLM 생성 문장은 William T. Freeman의 출생 연도에 대해 서로 다른 값을 제시하며, 이는 명백히 모순을 나타냅니다.
- aLM (ChatGPT)은 이 경우 일관성을 정확히 검출합니다.
- aLM도 ChatGPT같은 LLM을 그냥 쓴듯
- Freeman의 위키피디아 페이지(Wikipedia, 2023b)에 따르면 그는 1957년에 태어났기 때문에, 두 문장 모두 사실과 다릅니다.
- 부록 B의 **Table 9**에서는 다른 프롬프트 전략(Kojima et al., 2022; Wang et al., 2023)을 검토한 결과, CoT 기법이 이들보다 우수한 성능을 보였음을 확인했습니다.
- Revise
- 우리는 aLM.revise(x_i, x'_i, c) 를 구현하기 위해 zero-shot 프롬프트를 사용합니다.
- 엔터티 t 와 접두사 x<i 가 주어졌을 때, 프롬프트는 aLM 에게 x_i 와 x'_i 사이의 모순 정보를 제거하도록 지시합니다.
- 또한, 출력이 맥락에 부합하면서도 유익하고 일관되게 작성되도록 프롬프트에 구체적인 지침을 제공합니다.
- 그림 3의 예제에서 aLM (ChatGPT)은 문제의 원인이 되는 출생 날짜를 제거하여 문장을 성공적으로 수정하고, 신뢰할 수 있으면서도 유창한 문장을 반환합니다.
- Generic Instantiation
- 그림 1부터 그림 3까지의 프롬프트에서 오픈 도메인 텍스트 생성에 특정한 유일한 구성 요소는 밑줄 친 첫 번째 문장입니다.
- 이 접근법을 사용자가 제공하는 자유 형식 프롬프트 p 로 표현되는 일반적인 작업에 맞게 적용하려면, 해당 문장을 "Here is the start of an answer to the prompt p"라는 일반 문장으로 대체하면 됩니다.
- 예를 들어, 질문 응답의 경우, p 는 “William T. Freeman의 출생지는 어디인가?”와 같은 질문 형식이 될 수 있습니다.
6 EXPERIMENTAL EVALUATION
- In this section, we present an extensive evaluation of our work on open-domain text generation (Sections 6.1 and 6.2) and question answering (Section 6.3).
6.1 EXPERIMENTAL SETUP FOR OPEN-DOMAIN TEXT GENERATION
- Models
- 우리는 네 가지의 인기 있는 Instruction-tuned 언어 모델(LMs)을 실험에 사용합니다: GPT-4(gpt-4-0314) (OpenAI, 2023b), ChatGPT(gpt-3.5-turbo-0301) (OpenAI, 2023a), Llama2-70B-Chat (Touvron et al., 2023b), 그리고 Vicuna-13B(버전 1.1) (Chiang et al., 2023).
- 이러한 LMs을 gLM(generative Language Model)과 aLM(assistant Language Model)으로 평가합니다.
- gLM, aLM 같은 모델로 그냥 세팅하는게 디폴트 같고, 다르게 했을때도 실험부분에서 다룸
- Data and Annotation
- 오픈 도메인 텍스트 생성을 평가하기 위해, gLM을 사용하여 Wikipedia 엔티티에 대한 백과사전적 텍스트 설명을 생성합니다.
- 우리의 주요 테스트 세트(MainTestSet)는 네 가지 gLM에서 생성된 360개의 설명과 30개의 다양한 엔티티로 구성됩니다.
- 각 gLM과 각 엔티티에 대해 신뢰성을 높이기 위해 서로 다른 세 가지 설명을 수집했습니다.
- Table 2에서는 생성된 설명들이 평균 7.3에서 12.5문장에 달하는 긴 텍스트로 구성되어 있음을 보여줍니다.
- 한 문장에는 평균적으로 1.6개의 사실 삼중항(fact triple)이 포함되어 있습니다.
- 또한, Table 2는 OPT-1.3B(Zhang et al., 2022)를 사용하여 측정한 설명의 평균 perplexity를 보여줍니다.
- 실험에서 사용된 엔티티는 여러 Wikipedia 기반 출처(Lebret et al., 2016; Wikimedia, 2023; Wikipedia, 2023a)에서 신중하게 선택되었습니다.
- 이러한 엔티티들은 다양한 도메인과 인기도의 차이를 반영하기 위해 구성되었습니다.
- Appendix A의 Figure 4에서는 선정된 30개의 엔티티를 나열하며, 도메인과 인기도의 다양성을 강조하고, 구체적인 선정 과정을 설명합니다.
- 주석 작업
- 세 명의 저자(컴퓨터공학 석사 또는 박사 과정 학생)가 MainTestSet에 대한 **정답 데이터(ground truth)**를 생성하기 위해 사람 주석 작업을 수행했습니다.
- 지식 범위를 넓히기 위해 주석자들에게 다양한 온라인 자료를 검토하도록 지침을 제공했습니다.
- 또한, 주석 품질을 보장하기 위해 각 샘플은 두 명의 주석자가 독립적으로 작업한 후, 오류와 불일치를 해결하기 위해 논의 과정을 거쳤습니다.
- 주석 과정에 대한 세부 사항은 Appendix A에 설명되어 있습니다.
- 우리는 자기모순 주석에서 각각 88.9%와 82.7%의 Cohen’s Kappa 값을 달성했으며, 이는 거의 완벽한 일치를 나타냅니다(Cohen, 1960).
- validation
- 검증을 위해 12개의 엔티티를 사용합니다.
- 우리는 100개의 포괄적인 엔티티 세트를 포함하는 2ndTestSet이라는 두 번째 테스트 세트를 구성합니다.
- 이 세트에 대한 예측 결과는 Appendix B에 보고됩니다.
- Evaluation Steps and Metrics
- 평가는 자기모순을 **트리거(trigger)**, **탐지(detect)**, **완화(mitigate)**하는 단계를 포함하며, 이를 측정하기 위해 다양한 메트릭을 사용합니다.
- 1. Trigger
- Algorithm 1을 실행하여 자기모순을 트리거합니다.
- 우리는 자기모순의 빈도(즉, 적어도 하나의 자기모순이 트리거된 문장의 비율)를 계산합니다.
- 그 후, 우리는 자기모순이 검색 기반 방법을 어떻게 보완하는지 평가합니다.
- 이를 위해, 우리는 상충되는 정보가 Wikipedia나 웹 검색을 통해 검증될 수 있는지 수동으로 확인합니다. (수동확인!)
- 고품질의 수동 검증을 보장하기 위한 우리의 프로토콜은 Appendix A에서 확인할 수 있습니다.
- 2. Detection
- 우리는 이전 단계에서 얻은 결과에 대해 aLM.detect를 실행합니다.
- 그 후, 표준 분류 정밀도(Precision, P), 재현율(Recall, R), F1 점수를 계산하고 보고합니다.
- 3. Mitigation
- 우리는 Algorithm 3을 실행하여 gLM이 생성한 텍스트의 수정된 버전을 얻습니다.
- 이 단계를 평가하기 위해, 우리는 제거된 자기모순의 비율, 정보성, 유창성의 기준으로 원본 텍스트와 수정된 텍스트를 비교합니다.
- 자기모순을 유발하지 않는 문장은 정보성이 있다고 간주합니다.
- 수정된 텍스트의 정보성은 원본 텍스트와 수정된 텍스트에서 정보가 포함된 문장 수를 비교하여 비율을 계산합니다.
- 이 비율은 우리의 완화 과정에서 새로운 정보성 문장이 생성될 수 있기 때문에 100%를 초과할 수 있습니다.
- 즉 자기모순에 해당하지 않는 부분은 정보성이라고 간주하고, 이 부분을 metric에 포함함
- 유창성의 경우, 원본 텍스트에서 수정된 텍스트로의 perplexity(혼란도) 증가를 계산합니다.
- Sampling Temperature
- 우리는 LM 디코딩에 샘플링을 활용하며, 온도는 중요한 매개변수입니다(Holtzman et al., 2020).
- 우리의 평가에는 온도에 대한 여러 결정 포인트가 포함됩니다.
- 본 섹션에서 우리는 다른 변수의 영향을 조사하기 위해 실험에서 온도를 고정합니다.
- 텍스트 설명을 생성할 때, 우리는 온도 1.0을 사용합니다.
- 이는 OpenAI API의 기본 온도와 일치합니다(OpenAI, 2023c).
- 사용자가 여러 응답을 확인할 수 있는 옵션을 가지므로 샘플링 다양성의 중요성을 강조합니다(OpenAI, 2023a).
- gLM.gen_sentence, aLM.detect, aLM.revise를 실행할 때, 우리는 ChatGPT와 GPT-4에 대해 최대 신뢰성을 위해 온도 0을 사용합니다.
- Llama2-70B-Chat과 Vicuna-13B에 대해서는 반복적인 텍스트를 피하기 위해 온도 1.0을 사용해야 합니다.
6.2 EVALUATION RESULTS FOR OPEN-DOMAIN TEXT GENERATION
- Self-contradictions are Significant
- Table 2는 자기모순의 중요성을 강조합니다.
- 우선, 우리의 접근 방식은 자기모순의 빈도를 트리거하며, 이는 사용된 gLM에 따라 전체 문장의 15.7%에서 22.9%까지 이릅니다.
- 모델이 더 강력할수록 생성하는 자기모순이 적어집니다.
- 예를 들어, GPT-4는 가장 낮은 자기모순 비율을 보입니다.
- Appendix B의 Figure 5에서는 이러한 자기모순이 소수의 엔티티에 집중되지 않고, 인기 있는 엔티티와 덜 알려진 엔티티에 고르게 분포되어 있음을 보여줍니다.
- 게다가, 이러한 자기모순 중 상당 부분(예: ChatGPT의 경우 35.2%)은 온라인 텍스트를 사용해 검증할 수 없으므로, 검색 기반 기법(Shuster et al., 2021; Peng et al., 2023)으로 해결할 가능성이 매우 낮습니다.
- 따라서, 우리의 작업은 검색 기반 방법을 가치 있게 보완합니다.
- Vicuna-13B는 주로 온라인에서 쉽게 검증 가능한 기본 사실에 대한 자기모순을 생성하는 반면, 다른 LMs는 더 정교한 정보를 생성합니다.
- 좋은 LLM일수록 자기모순 문장을 적게 생성한다
- Our Detection and Mitigation Methods are Effective
- 다음으로, 우리는 ChatGPT를 aLM으로 설정하여 방법을 구현했습니다.
- Table 3의 결과는 우리의 접근 방식이 다양한 gLM에 대해 일관되게 효과적임을 보여줍니다.
- 탐지는 약 80%의 높은 F1 점수를 달성했습니다.
- 완화는 자기모순의 상당 부분(76.3%에서 89.5%)을 제거하면서도 텍스트의 유창성(perplexity 증가가 작음)을 해치지 않았습니다.
- 또한 정보성(유익한 사실의 개수)이 유지되었습니다.
- 좋은 LLM일수록 자기모순 검출 능력이 뛰어난건 아닌듯? (대체적으로 좋다)
- Performance Varies across LMs
- Table 4에서는 동일한 gLM(ChatGPT)이 생성한 자기모순을 탐지하고 완화하는 데 사용된 다양한 aLM의 성능을 평가했습니다.
- 여기서 gLM은 chatgpt로 고정하고 aLM만 바꿈
- 결과적으로, 독점 모델(GPT-4와 ChatGPT)은 강력한 성능을 보였습니다.
- 오픈 소스 LMs(Llama2-70B-Chat과 Vicuna-13B)는 특히 탐지 재현율이 낮고 자기모순을 효과적으로 제거하지 못하는 등 한계를 보였습니다.
- 다행히도, 최신 오픈 소스 명령 조정 LMs는 최근 몇 달간 크게 발전했으며, Llama2-70B-Chat(2023년 7월 말 출시, 최신 기술)은 Vicuna-13B(버전 1.1, 2023년 5월 초 출시)보다 상당히 우수한 성능을 보였습니다.
- 우리는 이러한 긍정적인 추세가 계속될 것으로 기대합니다.
- chatGPT or GPT4가 전반적으로 제일 좋음. 즉 자기모순 검출능력이나 모순부분 제거 능력이 좋다는 것
- Efficiency Analysis
- 텍스트 x = [x_1, x_2, ..., x_{|x|}] 에 대해, 우리의 방법은 각 문장 x_i 에 대해 일정한 수의 LM 쿼리를 수행하며, LM 쿼리의 총 수는 |x| 에 선형적으로 증가합니다.
- 각 x_i 에 대해, 우리는 그 접두어 x_{<i} 를 프롬프트에 포함합니다.
- 따라서 프롬프트의 총 길이는 |x| 에 따라 이차적으로 증가합니다.
- 실험에서 우리는 OpenAI API가 소비하는 토큰 수를 모니터링했으며, 이는 실제 속도와 컴퓨팅 비용을 반영합니다.
- ChatGPT의 경우, 엔티티에 대한 텍스트 설명을 생성하는 데 평균적으로 259개의 토큰이 소모됩니다.
- 탐지와 완화는 각각 79배와 90배의 비용이 발생합니다.
- 1,000토큰당 0.002의 가격을 고려했을 때, 탐지와 완화 비용은 각각 0.04와 $0.05입니다.
- 이는 높은 신뢰성이 요구되는 시나리오에서 수용 가능한 비용으로 간주됩니다.
- More Details in Appendix
- Appendix B에서는 오픈 도메인 텍스트 생성에 대한 추가 실험 결과를 제공합니다.
- 우리는 먼저 자기모순이 다양한 엔티티에서 공통적으로 나타남을 보여줍니다.
- 다음으로, 우리의 탐지 방법이 SelfCheckGPT를 능가함을 보여줍니다.
- 또한, 다양한 온도에서의 결과의 견고성을 보여주는 소거 연구(ablation study)를 수행하고, Sections 4와 5에서 논의된 설계 결정의 타당성을 검증합니다.
- 마지막으로, gLM과 aLM의 선택 간 관계를 탐구하고, 2ndTestSet에서 우리의 파이프라인이 유용함을 보여줍니다.
- Appendix C에서는 문장 수준의 실사례와 전체 텍스트 예제에서 방법의 결과를 제공합니다.
- 또한, 온라인 텍스트로 검증할 수 없는 자기모순 사례와 aLM.detect(Vicuna-13B가 aLM인 경우) 실패 사례를 보여줍니다.
6.3 EXPERIMENTS ON QUESTION ANSWERING
- 우리는 Section 5 끝에서 설명된 방식에 따라 질문 응답(QA)에 우리의 접근 방식을 적용했습니다.
- PopQA(Mallen et al., 2023)에서 무작위로 샘플링한 1,500개의 질문을 대상으로 실험을 진행했습니다.
- 실험은 두 가지 설정에서 수행되었으며, 하나는 **기본 생성(vanilla generation)**이고, 다른 하나는 Mallen et al.(2023)이 제안한 방식으로 적응적으로 검색된 텍스트 스니펫(retrieved text snippets)을 활용하는 **검색 증강(retrieval augmentation)**입니다.
- 우리는 ChatGPT를 aLM으로 사용했으며 기본 온도를 사용했습니다(Section 6.1 끝 부분 참조).
- 탐지 방법의 정밀도를 계산하기 위해, 예측된 모든 모순 문장 쌍을 수작업으로 주석 처리했습니다.
- ChatGPT와 Llama2-70B-Chat 두 개의 gLM에 대한 결과는 Table 5에 제시되어 있습니다.
- 검색 증강 설정에서는 ChatGPT에서 약 30%, Llama2-70B-Chat에서는 거의 50%까지 자기모순이 감소했음에도 불구하고,
- 모든 설정에서 여전히 상당한 양의 자기모순(12.7%~38.0%)이 높은 정밀도(74.2%~83.8%)로 탐지되었습니다.
- 이는 검색 증강을 활용해도 최소 10.6%(ChatGPT)와 16.0%(Llama2-70B-Chat)의 생성된 답변에 자기모순이 포함되어 있음을 의미합니다.
- 정성적 분석 결과, 자기모순은 검색된 지식이 제시된 질문과 무관하거나 정확한 답변에 필요한 핵심 정보를 포함하지 않을 때 종종 발생한다는 점이 밝혀졌습니다.
- 이는 우리의 방법이 검색 기반 방법을 가치 있게 보완한다는 주장을 다시 한번 뒷받침합니다.
- RAG을 사용하면 그냥 생성하는것보다 자기모순이 줄어들긴 하지만, 자기모순이 여전히 발생한다?
7 CONCLUSION AND DISCUSSION
- 본 연구에서는 LMs(언어 모델)가 생성하는 중요한 환각(hallucination)의 한 형태인 **자기모순(self-contradiction)**에 대한 종합적인 연구를 제시했습니다.
- 자기모순은 동일한 문맥 내에서 LM이 서로 모순되는 두 문장을 생성할 때 발생하며, 이는 LM의 사실성 부족을 드러냅니다.
- 이 문제를 해결하기 위해, 우리는 자기모순을 **유도(trigger)**, **탐지(detect)**, 그리고 **완화(mitigate)**하는 알고리즘을 개발했습니다.
- 특히, 우리의 접근 방식은 프롬프트(prompting) 전략에 기반하고 있어, 외부 지식의 검색(retrieval)을 요구하지 않고도 블랙박스 LMs에 적용할 수 있습니다.
- 현대의 인스트럭션 튜닝된 4개의 LM과 두 가지 다른 작업(task)을 대상으로 한 광범위한 평가를 통해 우리의 접근 방식의 장점을 입증했습니다:
- 우리 방법은 자기모순을 효과적으로 노출시키고, 정확하게 탐지하며, 적절히 완화합니다.
- 우리의 프레임워크는 현재 동일한 텍스트 위치에서 샘플링된 두 문장의 모순만 처리합니다.
- 향후 연구 과제로, **다른 위치의 문장 간 모순을 효율적으로 탐지**하는 방법을 모색할 예정입니다.
- 또한, 우리의 접근 방식은 LM이 생성한 텍스트에 대해 **후처리(post-processing)** 방법으로 작동합니다.
- 이를 기반으로, 더 작은 오픈소스 LM을 aLM으로 활용하기 위해 **미세 조정(fine-tuning)**하거나, LM이 모순된 내용을 생성하지 않도록 **훈련(training)**하는 가능성도 탐구할 수 있습니다.
- 마지막으로, 자기모순 외에도 다른 종류의 환각이 존재한다는 점을 언급하고자 합니다.
- 예를 들어, LM은 일관되게 잘못된 내용을 생성할 수도 있습니다.
- 자기모순은 흔히 발생하며, 우리의 접근 방식은 환각 탐지에서 검색 기반 증강 방법을 보완하므로,
- 본 연구는 현대 LM의 신뢰성을 이해하고 향상시키는 데 있어 의미 있고 중요한 작업이라고 믿습니다.
Reference
댓글
댓글 쓰기