NL-232, SELFCHECKGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models, EMNLP 2023
◼ Comment
- 질문에 대해 LLM이 생성한 응답이 할루시네이션 (사실인지 아닌지) 판단하는 내용이다.
- LLM의 접근 권한에 따라 여러 방식이 있을거라 언급해주는데 크게 2가지가 있는거 같다.
- 1) 만약 LLM이 생성한 토큰의 확률에 접근할 수 있는 경우
- 2) 접근할 수 없는 경우
- 1)에서는 접근할 수 있는 경우, 토큰 생성 확률을 통해 할루시네이션을 판단한다.
- 결과론적으로 그렇게 좋은 결과를 보여주지 못한다
- 물론 여기서는 간단하게 시도한 것이기 때문에 아마 더 고도화된 전략이 있지 않을까 하는 생각은 듬
- 2)가 논문이 핵심으로 기여한 방법인데, 이럴 경우 기존 응답외에 다른 응답을 샘플링으로 여러개 생성해서 비교하면서 할루시네이션을 체크하는 것이다
- 기존 응답(Main Response)을 얻기 위해 온도를 0.0으로 설정하고 표준 빔 서치(beam search) 디코딩을 사용했습니다.
- 확률적으로 생성된 샘플을 얻기 위해 온도를 1.0으로 설정하고 \(N=20\)개의 샘플을 생성했습니다.
- 즉 기존 응답과 샘플링한 응답사이의 정보량이 일치하는게 많다면 fact라고 간주하는 것이고, 일치하지 않는게 많다면 non-fact라고 간주하는게 직관적 발상이다.
- 정보량 일치 판단을 위해 여러 제시한 방법이 있으나 가장 효과적인 방법은 2개다
- 1) NLI 모델을 활용하는 것으로, NLI 모델을 fine-tuned 해놓고, 이 모델이 출력하는 contradiction과 entailment의 logit을 이용하는 것이다
- 2) 그냥 LLM에게 프롬프트로 던지는 것
- LLM-prompt가 가장 성능 좋긴하나.. 코스트 문제가 있기 때문에 NLI 모델 방법도 나쁘지 않은 것 같다
- 이 논문에서 데이터세트도 제공해주고, 이러한 방법을 아마 처음 시도한 것 같다. (그래서인지 citation이 엄청 높긴함)
Abstract
- 생성형 대규모 언어 모델(LLM)인 GPT-3와 같은 모델은 다양한 사용자 요청에 대해 매우 유창한 응답을 생성할 수 있습니다.
- 그러나 LLM은 사실을 잘못 전달하거나 비사실적인 진술을 생성하는 "환각(hallucination)" 문제가 알려져 있으며, 이는 출력에 대한 신뢰를 약화시킬 수 있습니다.
- 기존의 사실 확인 방법은 출력 확률 분포에 대한 접근(예: ChatGPT와 같은 시스템에서는 접근이 불가능할 수 있음)이나 외부 데이터베이스를 필요로 하는데, 이는 종종 별도의 복잡한 모듈을 통해 인터페이스됩니다.
- 본 연구에서는 "SelfCheckGPT"라는 간단한 샘플링 기반 접근 방식을 제안하며, 외부 데이터베이스 없이 블랙박스 모델의 응답을 제로 리소스(zero-resource) 방식으로 사실 확인할 수 있습니다.
- SelfCheckGPT는 LLM이 특정 개념에 대한 지식을 가지고 있다면 샘플링된 응답이 유사하고 일관된 사실을 포함할 가능성이 높다는 간단한 아이디어를 활용합니다.
- 반면, 환각된 사실에 대해서는 확률적으로 샘플링된 응답이 서로 다른 방향으로 나타나거나 모순될 가능성이 높습니다.
- 우리는 WikiBio 데이터셋에 포함된 인물에 대해 GPT-3가 생성한 문장을 사용하여 이 접근 방식을 조사하고, 생성된 문장의 사실성을 수동으로 주석 처리했습니다.
- 그 결과, SelfCheckGPT가 다음과 같은 작업에서 효과적임을 보여주었습니다:
- 1) 사실적인 문장과 비사실적인 문장을 탐지
- 2) 문단 수준에서 사실성을 기준으로 순위를 매김
- 여러 기준선 방법과 비교하여, SelfCheckGPT는 문장 수준에서의 환각 탐지에서 더 높은 AUC-PR 점수를 기록했으며, 문단 수준의 사실성 평가에서 상관계수가 더 높은 것으로 나타났습니다.
1 Introduction
- GPT-3(Brown et al., 2020)와 PaLM(Chowdhery et al., 2022)과 같은 대규모 언어 모델(LLMs)은 다양한 사용자 요청에 대해 유창하고 현실감 있는 응답을 생성할 수 있습니다.
- 이러한 모델은 보고서 초안 작성 도구, 가상 비서, 요약 시스템 등 다양한 애플리케이션에서 활용되고 있습니다.
- 하지만, LLM이 생성하는 텍스트가 설득력 있고 현실적임에도 불구하고, 환각(hallucination)을 일으키는 경향이 점점 더 큰 문제로 부각되고 있습니다.
- 모델이 자신 있게 허구의 정보를 생성하는 사례가 널리 관찰되었으며, 이러한 환각을 효과적으로 식별할 수 있는 기존 접근 방식은 거의 없는 상황입니다.
- 환각 탐지의 한 가지 접근 방식은 기존의 내재적 불확실성 지표를 활용하여 시스템이 출력에서 가장 자신 없어 하는 부분을 식별하는 것입니다(Yuan et al., 2021; Fu et al., 2023).
- 그러나 토큰 확률이나 엔트로피와 같은 불확실성 지표는 토큰 수준 확률 분포에 대한 접근을 필요로 하며, 외부 API를 통해 시스템에 제한적으로 접근하는 경우 이 정보에 접근할 수 없습니다.
- 토큰 생성 확률이나 entropy을 이용하면 할루시네이션을 판별할 수도 있으나,, 접근이 가능해야함
- 또 다른 접근 방식은 사실 검증(fact-verification)을 활용하여 외부 데이터베이스에서 증거를 검색해 주장(혹은 출력)의 진위를 평가하는 것입니다(Thorne et al., 2018; Guo et al., 2022).
- 하지만 이러한 접근 방식은 데이터베이스에 포함된 지식에만 상대적으로 사실을 평가할 수 있으며, 환각은 단순한 사실 검증을 넘어 다양한 작업에서 관찰됩니다(Kryscinski et al., 2020; Maynez et al., 2020).
- 접근하는 데이터베이스에 포함한 fact만 검증가능한 방법
- 할루시네이션은 보다 폭 넓게 발생함
- 본 논문에서는 SelfCheckGPT라는 샘플링 기반 접근 방식을 제안하여 LLM이 생성한 응답이 환각인지 사실인지 감지할 수 있도록 합니다.
- 우리가 아는 한, SelfCheckGPT는 일반적인 LLM 응답의 모델 환각을 분석한 첫 번째 연구이며, 블랙박스 시스템에 적용할 수 있는 최초의 제로 리소스 환각 탐지 솔루션입니다.
- SelfCheckGPT의 기본 아이디어는 LLM이 특정 개념에 대해 학습한 경우, 샘플링된 응답이 유사하며 일관된 사실을 포함할 가능성이 높다는 것입니다.
- 그러나 환각된 사실의 경우, 확률적으로 샘플링된 응답이 서로 다른 방향으로 나타나거나 모순될 가능성이 높습니다.
- LLM으로부터 여러 응답을 샘플링함으로써 서로 다른 응답 간의 정보 일관성을 측정하고 진술이 사실인지 환각인지 판단할 수 있습니다.
- NL-231, Self-contradictory Hallucinations of Large Language Models: Evaluation, Detection and Mitigation, ICLR 2024와 유사한데?
- SelfCheckGPT는 샘플링된 응답만 활용하기 때문에 블랙박스 모델에 사용할 수 있고 외부 데이터베이스가 필요하지 않다는 추가적인 장점을 가집니다.
- 정보 일관성을 측정하기 위해 SelfCheckGPT는 BERTScore, 질문-응답, n-gram, 자연어 추론(NLI), LLM 프롬프트의 5가지 변형을 고려합니다.
- GPT-3가 생성한 주석 처리된 기사에 대한 분석을 통해, SelfCheckGPT가 회색 상자(grey-box) 방식보다 뛰어난 성능을 발휘하며,
- LLM의 점점 더 중요한 문제인 환각 탐지를 위한 강력한 첫 번째 기준선(baseline)으로 활용될 수 있음을 보여줍니다.
2 Background and Related Work
2.1 Hallucination of Large Language Models
- 환각(hallucination)은 텍스트 생성 작업에서 광범위하게 연구되어 왔으며, 요약 및 대화 생성뿐만 아니라 다양한 자연어 생성 작업에서도 다루어졌습니다(Ji et al., 2023).
- self-consistency decoding은 복잡한 추론 작업에서 연쇄적 사고(chain-of-thought) 프롬프트의 성능을 향상시키는 것으로 나타났습니다(Wang et al., 2023).
- 또한, Liu et al. (2022)는 환각 탐지 데이터셋을 소개했으나, 이 데이터셋은 사실적인 텍스트를 변형하여 얻어진 것으로 실제 LLM 환각을 완전히 반영하지 않을 수 있습니다.
- 최근 연구로 Azaria와 Mitchell (2023)은 LLM의 hidden representation을 입력으로 사용하여 문장의 진실성을 예측하는 multi-layer perceptron 분류기를 훈련시켰습니다.
- 그러나 이 접근법은 LLM의 내부 상태를 활용하는 화이트박스(white-box) 접근법으로, API를 통해서는 내부 상태에 접근할 수 없을 수 있으며, 지도 학습을 위해 라벨링된 데이터가 필요합니다.
- 또 다른 최신 접근법은 self-evaluation입니다(Kadavath et al., 2022).
- 이 방법에서는 LLM이 자신의 이전 예측을 평가하도록 프롬프트를 설정하며, 예를 들어 생성된 응답이나 답변이 사실일 확률을 예측하도록 합니다.
2.2 Sequence Level Uncertainty Estimation
- 토큰 확률은 모델의 확실성을 나타내는 지표로 사용되었습니다.
- 예를 들어, OpenAI의 GPT-3 웹 인터페이스는 사용자가 토큰 확률을 표시할 수 있도록 지원하며(그림 2 참고), 이와 더불어 aleatoric 및 epistemic 불확실성을 기반으로 한 불확실성 추정 접근 방식이 autoregressive 생성에 대해 연구되었습니다(Xiao와 Wang, 2021; Malinin과 Gales, 2021).
- 또한, 조건부 언어 모델 점수는 텍스트의 속성을 평가하는 데 사용되었습니다.
- 최근에는, 토큰 대신 개념에 확률을 부여하는 방식으로 자유 형식 생성 작업에서의 불확실성을 해결하기 위해 **의미론적 불확실성**(semantic uncertainty)이 제안되었습니다(Kuhn et al., 2023).
2.3 Fact Verification
- 기존의 사실 검증 접근 방식은 주장 감지(claim detection), 증거 검색(evidence retrieval), 판결 예측(verdict prediction)의 여러 단계를 포함하는 파이프라인을 따릅니다.
- 그러나 이러한 방법은 외부 데이터베이스에 대한 접근이 필요하며, 상당한 추론 비용이 발생할 수 있습니다.
3 Grey-Box Factuality Assessment
- 이 섹션에서는 출력 분포에 완전히 접근할 수 있는 경우, 외부 데이터베이스를 사용하지 않는 **제로 리소스**(zero-resource) 환경에서 대규모 언어 모델(LLM)의 응답에 대한 사실성을 판단하는 데 사용할 수 있는 방법을 소개합니다.
- 여기서 **사실적**(factual)이라는 용어는 주장이 유효한 정보에 기반하고, 즉 환각(hallucination)을 피한 경우를 정의하며, **제로 리소스**는 외부 데이터베이스를 사용하지 않는 상황을 의미합니다.
- gpt3의 경우 생성 토큰 확률을 제공해주기도 해서 이를 활용할 수 있긴 하지만
- 모델이 api로만 제공되고 외부에 공개되지 않은 경우도 있고
- 일반적으로 모델에 접근 못하는 경우를 고려해보자 (블랙박스 시나리오)
- 또한 외부 데이터 베이스를 활용해서 fact check 및 할루시네이션 검증하려면 리소스가 많이 든다
- 따라서 여기서는 zero-resource라고 외부데이터베이스를 사용하지 않는 상황에서의 연구를 한 것
3.1 Uncertainty-based Assessment
- 제로 리소스 환경에서 생성된 응답의 사실성을 어떻게 판단할 수 있는지 이해하기 위해 LLM의 사전 학습(pre-training)을 고려해봅니다.
- 사전 학습 동안, 모델은 방대한 텍스트 데이터 코퍼스를 기반으로 다음 단어를 예측하는 방식으로 학습됩니다.
- 이를 통해 모델은 언어에 대한 강력한 이해력(Jawahar et al., 2019; Raffel et al., 2020), 강력한 문맥적 추론 능력(Zhang et al., 2020), 그리고 세계 지식(world knowledge)(Liusie et al., 2023)을 습득하게 됩니다.
- 예를 들어, 입력이 "Lionel Messi is a _"일 경우를 생각해봅시다. 메시(Messi)는 전 세계적으로 유명한 운동선수로 사전 학습 과정에서 여러 번 등장했을 가능성이 높으므로, LLM은 메시가 누구인지 알고 있을 가능성이 큽니다.
- 따라서 이 문맥에서 "footballer"라는 토큰은 높은 확률로 선택될 수 있으며, "carpenter"와 같은 다른 직업은 낮은 확률로 간주될 것입니다.
- 하지만 입력이 "John Smith is a _"와 같이 모호한 경우, 시스템은 이어질 내용에 대해 확신이 없으며, 이는 평탄한 확률 분포(flat probability distribution)를 초래할 수 있습니다.
- 이러한 상황에서는 추론 과정에서 비사실적인 단어가 생성될 가능성이 높아집니다.
- 이 통찰을 통해 불확실성 지표와 사실성 간의 연관성을 이해할 수 있습니다.
- 사실적인 문장은 더 높은 확률과 낮은 엔트로피를 가진 토큰을 포함할 가능성이 높으며, 반면에 환각(hallucination)은 높은 불확실성을 가진 평탄한 확률 분포에서 나올 가능성이 큽니다.
토큰 수준 확률 (Token-level Probability)
LLM의 응답 에 대해, 는 의 -번째 문장을 나타내고, 는 -번째 문장의 -번째 토큰을 나타냅니다. 는 해당 문장에서의 총 토큰 수를 나타내며, 는 -번째 문장의 -번째 토큰이 LLM에 의해 생성될 확률입니다. 이에 기반한 두 가지 확률 지표는 다음과 같습니다:
-
평균 음의 로그 확률 (Avg(-log p)):
이는 문장에서 생성된 모든 토큰의 로그 확률의 평균값을 나타냅니다.
-
최대 음의 로그 확률 (Max(-log p)):
이는 문장의 생성 가능성을 가장 낮게 평가하는 토큰(즉, 가장 가능성이 낮은 토큰)의 음의 로그 확률을 나타냅니다.

엔트로피 (Entropy)
출력 분포의 엔트로피는 다음과 같이 정의됩니다:
여기서 는 -번째 문장의 -번째 토큰이 단어 로 생성될 확률이고, 는 전체 어휘 집합입니다. 이에 기반한 두 가지 엔트로피 지표는 다음과 같습니다:
-
평균 엔트로피 (Avg(H)):
이는 해당 문장에서 모든 토큰의 엔트로피 평균값을 나타냅니다.
-
최대 엔트로피 (Max(H)):
이는 문장에서 가장 엔트로피가 높은 토큰의 엔트로피 값을 나타냅니다.


4 Black-Box Factuality Assessment
- 그레이 박스(grey-box) 방식의 단점은 출력 토큰 수준의 확률 정보가 필요하다는 점입니다.
- 이는 합리적인 요구 사항처럼 보일 수 있지만, 제한된 API 호출을 통해서만 접근할 수 있는 대규모 LLM(예: ChatGPT)의 경우, 이러한 토큰 수준 정보가 제공되지 않을 수 있습니다.
- 따라서 텍스트 기반 응답만 사용할 수 있는 상황에서도 적용 가능한 블랙 박스(black-box) 방식을 고려합니다.
- Proxy LLMs
- 그레이 박스 방식을 근사화하는 간단한 방법은 프록시 LLM, 즉 LLaMA(Touvron et al., 2023)와 같이 우리가 완전히 접근할 수 있는 다른 LLM을 사용하는 것입니다.
- 프록시 LLM은 텍스트를 생성하는 블랙 박스 LLM의 출력 토큰 수준 확률을 근사화하는 데 사용할 수 있습니다.
- 예로 GPT4로 텍스트를 사용하고, 해당 텍스트의 생성확률은 llama 등으로 해당 토큰의 생성확률로 근사화하는 방법인 듯
- 다음 섹션에서는 또 다른 블랙 박스 방식인 **SelfCheckGPT**를 제안합니다.
5 SelfCheckGPT
- **SelfCheckGPT**는 우리가 제안하는 블랙 박스 기반의 제로 리소스 환각(hallucination) 탐지 방법으로, 여러 샘플 응답을 비교하고 일관성을 측정하는 방식으로 작동합니다.
- Notation
- \( R \)은 주어진 사용자 쿼리에서 추출된 LLM 응답을 나타냅니다.
- SelfCheckGPT는 동일한 쿼리를 사용하여 \( N \)개의 확률적 LLM 응답 샘플 \(\{S_1, S_2, ..., S_n, ..., S_N\}\)을 추가로 생성한 뒤, 원래 응답과 확률적 샘플 간의 일관성을 측정합니다.
- SelfCheckGPT는 \( i \)-번째 문장의 환각 점수 \( S(i) \)를 예측하도록 설계되었으며, \( S(i) \in [0.0, 1.0] \) 범위의 값을 가집니다.
- 이때, \( i \)-번째 문장이 유효한 정보에 기반한 경우 \( S(i) \rightarrow 0.0 \)에 가까워지며, 환각된 경우 \( S(i) \rightarrow 1.0 \)에 가까워집니다.
- 다음 섹션에서는 각 SelfCheckGPT 변형(variants)의 세부 내용을 설명합니다.
- R = 응답, ri=R의 i번째 문장
- S1~SN = 샘플링한 응답풀
- S(i)=환각점수 (1이 환각이란 의미)
- 응답은 확률 샘플링으로 여러개 뽑는 듯?
5.1 SelfCheckGPT with BERTScore
- \( B(., .) \)는 두 문장 간의 BERTScore를 나타냅니다.
- **SelfCheckGPT**는 BERTScore를 활용하여, \( i \)-번째 문장과 각 샘플에서 가장 유사한 문장 간의 평균 BERTScore를 계산합니다.
- 이는 다음과 같은 수식으로 정의됩니다:
- \( r_i \)는 응답 \( R \)에서 \( i \)-번째 문장을 나타냅니다.
- \( s^n_k \)는 \( n \)-번째 샘플 \( S_n \)에서 \( k \)-번째 문장을 나타냅니다.
- 이 방식은 한 문장의 정보가 여러 샘플에서 반복적으로 나타난다면 해당 정보가 사실적(factual)일 가능성이 높다고 간주하며, 반대로 그 문장이 다른 샘플에서 전혀 나타나지 않는다면 환각(hallucination)일 가능성이 높다고 판단합니다.
- 이 연구에서는 RoBERTa-Large를 BERTScore의 백본(backbone) 모델로 사용했습니다.
- 기존 응답의 각 문장과 유사한 샘플링 문장이 많을수록 S_BERT(i)의 점수는 낮아지게됨
- 즉 환각이 아닐 가능성이 커진단 의미
- 나쁘지 않은 아이디어이나.. 한 문장만으로 비교한다는게 살짝 애매한 듯?
5.2 SelfCheckGPT with Question Answering
- SelfCheckGPT는 자동 multiple-choice question answering generation(MQAG) 프레임워크(Manakul et al., 2023)를 활용하여 일관성을 측정하는 방법도 고려합니다.
- MQAG는 생성된 주요 응답을 바탕으로 다중선택 질문을 생성한 뒤, 독립적인 응답 시스템이 다른 샘플 응답을 조건으로 이를 풀도록 하여 일관성을 평가합니다.
- 만약 질문이 일관된 정보에 기반한다면, 응답 시스템은 유사한 답변을 예측할 것으로 기대됩니다.
- MQAG는 두 단계로 구성됩니다:
- 1. 질문 생성(G)
- 2. 질문 응답(A)
- question generation G
- question answering A
- - \( a_{S_n} \): \( n \)-번째 샘플 \( S_n \)에서의 선택된 답변
- 그 후, 각 샘플 \(\{S_1, ..., S_N\}\)에 대해 \( a_R \)과 \( a_{S_n} \)이 동일한지 비교하여 일치한 횟수 \( N_m \)과 불일치한 횟수 \( N_n \)를 구합니다.
- 불일치 점수 계산: inconsistency score
- \( i \)-번째 문장과 질문 \( q \)에 대한 간단한 불일치 점수는 다음과 같이 정의됩니다:
- \[S_{\text{QA}}(i, q) = \frac{N_n}{N_m + N_n}\]
- 질문 생성된 질문의 **답변 가능성**을 고려하기 위해 소프트 카운팅을 적용한 수정된 불일치 점수는 다음과 같습니다:
- \( N'_m \): 효과적인 일치 횟수
- \( N'_n \): 효과적인 불일치 횟수
- \( \gamma_1, \gamma_2 \): Appendix B.1에 정의된 가중치
- 최종 일관성 점수
- 응답의 각 문장에서 질문과 옵션을(답변후보) 생성한다
- 그리고 (응답, 질문, 옵션후보)를 주고 정답 옵션을 선택하게 한다
- 또한 문장만 샘플링한 다른 응답으로 바꾸고 정답 옵션을 선택하게 한다. (샘플링 응답, 질문, 옵션후보)
- 여기서 같은 옵션이 선택된다면 응답의 내용이 일치하게 되는 것이고, 불일치할수록 응답의 내용이 다르다는 의미가 된다.
- 응답의 내용이 일치할수록 점수는 감소하는 시스템으로 환각 가능성 낮아짐
5.3 SelfCheckGPT with n-gram
- LLM이 생성한 샘플 \(\{S_1, ..., S_N\}\)을 기반으로 새로운 언어 모델을 생성하여 원래 LLM을 근사할 수 있습니다.
- \( N \)이 충분히 커질수록 새로운 언어 모델은 LLM에 수렴하게 됩니다.
- 이를 통해 새로운 언어 모델을 사용해 LLM의 토큰 확률을 근사할 수 있습니다.
- 제약 조건 및 실용적 접근
- 실제에서는 시간 및 비용 제약으로 인해 샘플 \( N \)의 수가 제한적일 수 있습니다. 따라서, 생성된 샘플 \(\{S_1, ..., S_N\}\)과 평가할 주요 응답 \( R \)을 사용해 간단한 **n-그램 모델**을 학습합니다.
- 여기서 \( R \)을 포함하는 것은 스무딩(smoothing) 방식으로 간주될 수 있으며, \( R \)에 있는 각 토큰의 빈도를 1씩 증가시키는 역할을 합니다.
- n-그램 평균 로그 확률 계산
- 응답 \( R \)에서 \( i \)-번째 문장에 대해, 평균 로그 확률은 다음과 같이 계산됩니다:
- - \( \tilde{p}_{ij} \): n-그램 모델로 계산된 \( i \)-번째 문장의 \( j \)-번째 토큰의 확률
- - \( J \): \( i \)-번째 문장의 토큰 수
- n-그램 최대 음의 로그 확률 계산
- 이 두 가지 지표는 LLM 응답의 신뢰성을 평가하기 위한 대안적 방법으로 사용됩니다.
- 많이 응답을 샘플링해서 이거가지고 n-gram을 간단히 학습하고, 이걸 이용해서 토큰 확률을 근사한다는거 같은데?
5.4 SelfCheckGPT with NLI
- NLI는 가설(hypothesis)이 전제(premise)를 따르는지를 판단하여 이를 **함의(entailment)**, **중립(neutral)**, **모순(contradiction)**으로 분류합니다.
- NLI 지표는 요약의 신뢰도를 측정하는 데 사용되어 왔으며, 예를 들어, Maynez et al. (2020)은 MNL로 학습된 텍스트 함의 분류기를 사용해 요약이 본문 내용과 모순되는지를 판별했습니다.
- 이러한 NLI 기반 요약 평가에서 영감을 받아, 우리는 NLI 모순 점수를 SelfCheckGPT 점수로 활용하는 방법을 고려합니다.
- SelfCheck-NLI 구성
- SelfCheck-NLI는 DeBERTa-v3-large를 NLI 모델로 사용하며, 이 모델은 MNLI 데이터로 파인튜닝되었습니다.
- - NLI 분류기의 입력은 premise와 hypothesis을 연결한 형태로 제공됩니다.
- - 본 방법론에서는 **샘플 구절 \( S_n \)**이 전제(premise), 평가 대상 문장 \( r_i \)가 가설(hypothesis)로 사용됩니다.
- 모순 확률 계산
- NLI 분류기의 출력에서 '함의(entailment)'와 '모순(contradiction)' 클래스에 해당하는 로짓(logits)만을 사용하며, 모순 확률은 다음과 같이 정의됩니다:
- - \( z_e \): '함의(entailment)' 클래스의 로짓
- - \( z_c \): '모순(contradiction)' 클래스의 로짓
- 이 식은 **중립(neutral)** 클래스를 무시하며, 확률이 \( 0.0 \)과 \( 1.0 \) 사이로 정규화되도록 보장합니다.
- SelfCheckGPT NLI 점수
- 각 샘플 \( S_n \)에 대해, SelfCheckGPT의 NLI 점수는 다음과 같이 정의됩니다:
- 이 값은 주어진 \( i \)-번째 문장 \( r_i \)와 \( N \)개의 샘플 \( S_n \) 간의 평균 모순 확률을 나타냅니다.
- 샘플링 응답과 기존의 응답의 각 문장이 NLI의 입력이 되는 것
- NLI 모델의 entailment와 contradiction의 logit을 이용하여 점수 계산
- contradiction(모순)이 많이 발생할수록 할루시네이션에 가깝게 되는 것
5.5 SelfCheckGPT with Prompt
- 최근 연구에 따르면 LLM은 문서와 요약 간의 정보 일관성을 Zero-Shot 환경에서 효과적으로 평가할 수 있음이 밝혀졌습니다.
- 이를 기반으로, LLM에 다음 프롬프트를 사용하여 \( i \)-번째 문장이 샘플 \( S_n \)에서 제공된 맥락에 의해 지지되는지를 평가하도록 요청합니다.
- 프롬프트
- Context: {}
- Sentence: {}
- Is the sentence supported by the context above?
- Answer Yes or No:
- 응답 처리
- 초기 실험 결과, GPT-3(text-davinci-003)은 98%의 확률로 "Yes" 또는 "No"라는 응답을 제공하며, 나머지 2%의 응답은 "N/A"로 처리할 수 있었습니다.
- 응답은 다음과 같이 점수 \( x^n_i \)로 변환됩니다:
- Yes: 0.0
- No: 1.0
- N/A: 0.5
- 최종 불일치 점수 계산
- \( N \)개의 샘플 \( \{S_1, ..., S_N\} \)에 대해 \( i \)-번째 문장의 최종 불일치 점수는 다음과 같이 계산됩니다:
- 이 값은 샘플별로 계산된 점수의 평균으로, 문장이 맥락에 의해 지지되지 않을 가능성을 나타냅니다.
- 초기 실험 결과
- 실험 결과, GPT-3 (text-davinci-003)은 높은 정확도로 일관성 평가를 수행한 반면, 성능이 낮은 모델(예: GPT-3(text-curie-001) 또는 LLaMA)은 이러한 프롬프트를 통해 일관성 평가를 효과적으로 수행하지 못했습니다.
- SelfCheckGPT-Prompt의 과정은 Figure 1에 자세히 설명되어 있습니다.
- 가장 쉬워보이는 방법이지만 성능은 가장 좋은 방법이긴 함ㅋㅋ
6 Data and Annotation
- 현재 표준적인 환각(hallucination) 탐지 데이터셋이 없기 때문에, 환각 탐지 방법을 다음과 같은 절차로 평가하였습니다:
- 1) WikiBio 데이터셋(Lebret et al., 2016)에 포함된 개인 또는 개념을 대상으로 GPT-3를 사용해 가상의 Wikipedia 기사를 생성.
- 2) 문단 수준에서 생성된 텍스트의 사실성을 수동으로 주석 처리.
- 3) 시스템의 환각 탐지 능력을 평가.
- 즉 wikibio 데이터셋에서, 개인 or 개념에 해당하는 단어를 주고 그에 대한 문단을 생성하게 한다
- 이 문단 내용은 당연 사실일수도 아닐수도 있기 때문에, 문단의 각 문장을 각각 수동으로 주석처리한다. (그림 3 참고)
- 761개 (39.9%)가 주요 부정확,
- 631개 (33.1%)가 경미한 부정확,
- 516개 (27.0%)가 정확으로 분류
- 이렇게 3가지로 수동으로 분류했다고 한다.
- 주석자는 2명이고, 불일치하면 더 안좋은 레이블을 사용했다고함
- 즉 이게 테스트 레이블 데이터세트가 되는거고, 이를 위에서 설명했던 방법으로 할루시네이션 검증을 한다.
- WikiBio 데이터셋
- WikiBio는 특정 개념에 대한 Wikipedia 문서의 첫 번째 단락(및 표 형식 정보)을 입력으로 포함하는 데이터셋입니다.
- WikiBio 테스트 세트를 문단 길이에 따라 정렬한 후, 상위 20%의 가장 긴 문서에서 무작위로 238개의 기사를 샘플링했습니다.
- 이를 통해 지나치게 희소한 개념을 피하도록 했습니다.
- GPT-3 (text-davinci-003)은 다음 프롬프트를 사용하여 각 개념에 대한 Wikipedia 기사를 생성했습니다:
- - `"This is a Wikipedia passage about {concept}:."`
- 표 1은 GPT-3로 생성된 문단의 통계를 제공합니다.
- 문장 주석 작업
- 생성된 문단의 각 문장은 Figure 3에 제시된 가이드라인에 따라 다음 세 가지로 분류됩니다:
- 1. 주요 부정확(Major Inaccurate, 비사실적, 1)
- - 문장이 완전히 환각된 경우로, 주제와 무관한 내용을 포함.
- 2. 경미한 부정확(Minor Inaccurate, 비사실적, 0.5)
- - 문장이 주제와 연관되어 있지만, 일부 비사실적 정보를 포함.
- 3. 정확(Accurate, 사실적, 0)
- - 문장이 정확한 정보를 포함.
- 1908개의 주석 처리된 문장 중:
- 761개 (39.9%)가 주요 부정확,
- 631개 (33.1%)가 경미한 부정확,
- 516개 (27.0%)가 정확으로 분류되었습니다.
- 이중 주석 처리 문장
- 201개의 문장은 두 명의 주석자가 평가했으며, **합의된 경우 해당 레이블**을 사용했습니다.
- 불일치한 경우에는 더 나쁜 레이블을 선택했습니다(예: {경미한 부정확, 주요 부정확} → 주요 부정확).
- Cohen의 κ (Cohen, 1960)로 측정된 주석자 간 일치도는 다음과 같습니다:
- 3-클래스 기준: \( κ = 0.595 \) → 중간 수준 일치
- 2-클래스 기준: \( κ = 0.748 \) → 상당히 높은 수준의 일치
- 문단 수준 점수
7 Experiments
- 우리 데이터셋의 문단 생성을 위해 사용된 생성형 LLM은 GPT-3(text-davinci-003)이며, 데이터셋 생성 및 주석 작업 당시 최첨단 시스템으로 평가되었습니다.
- 주 응답(Main Response)을 얻기 위해 온도를 0.0으로 설정하고 표준 빔 서치(beam search) 디코딩을 사용했습니다.
- 확률적으로 생성된 샘플을 얻기 위해 온도를 1.0으로 설정하고 \(N=20\)개의 샘플을 생성했습니다.
- 프록시 LLM 접근법에서는 현재 사용 가능한 오픈 소스 LLM 중 최고의 성능을 보이는 LLaMA(Touvron et al., 2023)를 사용했습니다.
- SelfCheckGPT-Prompt에서는 문단 생성을 위해 사용된 동일한 LLM인 GPT-3뿐만 아니라 새로 출시된 ChatGPT(gpt-3.5-turbo)도 고려했습니다.
- SelfCheckGPT에 사용된 시스템 및 다른 프록시 LLM 결과에 대한 추가 세부사항은 부록에서 확인할 수 있습니다.
7.1 Sentence-level Hallucination Detection
- 우리는 환각 탐지 방법이 문장의 사실성을 얼마나 잘 식별할 수 있는지 조사했습니다.
- non-factual 문장을 탐지하기 위해, major-inaccurate 레이블과 minor-inaccurate 레이블을 함께 묶어 비사실적 클래스(non-factual class)로 분류했고, 사실적 클래스(factual class)는 정확한 문장으로 정의했습니다.
- 추가적으로, 전체 환각(total hallucination) 문단이 아닌 문단에서 major-inaccurate 문장을 탐지하는 더 어려운 과제(non-factual∗)를 고려했습니다.
- non-factual*은 사실과 거짓 문장이 섞여 있을때 확실히 부정확한 문장을 찾아내는 과제
- 그 결과는 Figure 5와 Table 2에 요약되어 있으며, 다음과 같은 주요 관찰이 이루어졌습니다:
- selfcheckgpt 점수의 threshold에 따라 그래프를 그린듯함
- 1) LLM’s probabilities p correlate well with factuality.
- 우리의 결과는 텍스트를 생성한 LLM에서 제공하는 확률 측정값이 사실성을 평가하는 데 강력한 기준선이 될 수 있음을 보여줍니다.
- 사실적 문장은 AUC-PR(정밀도-재현율 곡선 면적)이 53.97로, 무작위 기준선(27.04)을 크게 초과했습니다.
- 또한 환각 탐지의 AUC-PR은 72.96에서 83.21로 증가했습니다.
- 이는 LLM이 생성된 정보에 대해 불확실할 때, 생성된 토큰이 종종 더 높은 불확실성을 가진다는 가설을 뒷받침하며, 환각 탐지 접근법에 유망한 방향성을 제공합니다.
- 또한 확률 \(p\) 측정값이 상위 5개 토큰의 엔트로피 \(H\) 측정값보다 더 나은 성능을 보였습니다.
- 2) Proxy LLM perform noticeably worse than LLM (GPT-3).
- LLaMA를 기반으로 한 프록시 LLM의 결과는 확률 측정값보다 엔트로피 \(H\) 측정값이 더 나은 성능을 보였습니다.
- 이는 더 풍부한 불확실성 정보를 사용하는 것이 사실성/환각 탐지 성능을 개선할 수 있음을 시사하며, 이전에 상위 5개 토큰의 엔트로피가 충분하지 않았을 가능성을 제기합니다.
- 또한 GPT-NeoX나 OPT-30B와 같은 다른 프록시 LLM을 사용할 경우 성능이 무작위 기준선과 비슷한 수준으로 나타났습니다.
- 이러한 낮은 성능은 LLM마다 생성 패턴이 다르기 때문으로 보이며, 동일한 토큰이라도 프록시 LLM의 생성 스타일과 다를 경우 낮은 확률을 가질 수 있습니다.
- 향후 연구에서는 BARTScore(Yuan et al., 2021)와 같은 가중 조건 LM 점수를 도입할 수 있습니다.
- 3) SelfCheckGPT outperforms grey-box approaches.
- SelfCheckGPT-Prompt는 GPT-3의 출력 확률을 포함한 그레이 박스 접근법 및 다른 블랙 박스 접근법을 크게 능가했습니다.
- 토큰 확률을 아는경우 (1)과 토큰 확률을 다른 LLM으로 예측하는 경우 (2) 보다 그냥 제안한 방법들이 더 낫다고 보여줌
- 사실 토큰 확률로는 할루시네이션 자체를 판단하는게 애초에 어려운 일 아니었을까?
- 또한 SelfCheckGPT의 다른 변형들(BERTScore, QA, n-gram 포함)도 대부분의 설정에서 그레이 박스 접근법을 능가했습니다.
- 특히, 가장 계산 비용이 적게 드는 방법인 SelfCheckGPT(Unigram max)는 다양한 설정에서 우수한 성능을 보였습니다.
- 이 방법은 문장을 평가할 때 생성된 모든 샘플에서 가장 적게 등장한 토큰을 선택합니다.
- 이는 특정 토큰이 생성된 샘플(예: \(N=20\))에서 몇 번만 나타나거나 단 한 번만 나타날 경우, 해당 토큰이 비사실적일 가능성이 높다는 것을 시사합니다.
- 4) SelfCheckGPT with n-gram.
- 1-gram에서 5-gram까지의 성능을 조사한 결과, 문장의 평균 n-gram 점수를 계산하는 것보다 가장 가능성이 낮은 토큰/n-gram을 찾는 방법이 더 효과적임을 보여줍니다.
- 세부사항은 부록의 Table 7에서 확인할 수 있습니다.
- 또한 n이 증가할수록 SelfCheckGPT(n-gram max)의 성능이 감소하는 경향이 나타났습니다.
- 5) SelfCheckGPT with NLI.
- NLI 기반 방법은 모든 블랙 박스 및 그레이 박스 기준선보다 더 우수한 성능을 보였으며, Prompt 방법의 성능과 근접했습니다.
- SelfCheckGPT-Prompt가 계산 비용이 많이 드는 반면, SelfCheckGPT-NLI는 성능과 계산의 균형을 제공하므로 가장 실용적인 방법이 될 수 있습니다.
- LLM 프롬프팅은 코스트가 아무래도 드니까.. 그거 제외하면 NLI 방법이 제일 괜찮다!
7.2 Passage-level Factuality Ranking
- 이전 결과는 SelfCheckGPT가 문장 수준에서 사실성을 예측하는 데 효과적인 접근법임을 보여줍니다.
- 추가적으로, SelfCheckGPT가 문단 전체의 사실성을 판단하는 데에도 사용될 수 있는지 검토했습니다.
- 문단 수준의 사실성 점수는 모든 문장의 문장 수준 점수를 평균내어 계산됩니다.
- 여기서 \(S(i)\)는 개별 문장의 점수를 나타내며, \(|R|\)은 문단 내 문장의 개수입니다.
- 사람의 판단은 다소 주관적일 수 있기 때문에, 문장 수준 레이블을 평균내는 방식은 더 적은 노이즈를 가진 정답 값을 생성합니다.
- 참고로, **Avg(-log p)**와 **Avg(H)**의 경우, 문단의 모든 토큰에 대해 평균을 계산합니다.
- 반면, **Max(-log p)**와 **Max(H)**의 경우, 먼저 문장 수준에서 토큰의 최대값을 계산한 뒤, Equation 12에 따라 모든 문장의 평균을 계산합니다.
- Table 2와 Figure 6에 나타난 결과에 따르면, 모든 SelfCheckGPT 방법은 그레이 박스 확률 및 엔트로피 방법을 포함한 다른 기준선보다 인간의 판단과 훨씬 더 높은 상관관계를 보였습니다.
- SelfCheckGPT-Prompt는 가장 뛰어난 성능을 기록했으며, Pearson 상관계수 78.32로 최고점을 달성했습니다.
- 예상대로, 프록시 LLM 접근법은 다른 방법에 비해 상관관계가 상당히 낮은 것으로 나타났습니다.
- 문단 레벨 사실 판단에서도 SelfCheckGPT가 가장 좋았고 그중 prompt가 제일 좋았다.
- 근데 애초에 레이블도 문장 점수를 평균내는식으로 하고 여기서도 문장 예측 점수의 평균으로 했기 때문에 당연히 같은 결과 아닌가? 싶긴함
7.3 Ablation Studies
- External Knowledge (instead of SelfCheck)
- 외부 지식이 사용 가능한 경우, LLM의 응답과 정보 출처 간의 정보 일관성을 측정할 수 있습니다.
- 이번 실험에서는 WikiBio에 제공된 각 개념의 첫 번째 단락을 정보 출처로 사용했습니다.
- 1. SelfCheckGPT with BERTScore/QA
- 자체 샘플을 사용한 SelfCheckGPT의 BERTScore 또는 QA 방법은 참조 문단(WikiBio 단락)을 사용할 때와 비교해 비슷하거나 더 나은 성능을 보였습니다.
- 2. SelfCheckGPT with n-gram
- n-gram 기반 방법은 WikiBio 단락을 참조로 사용할 때 성능이 크게 하락했습니다.
- 이는 WikiBio의 참조 텍스트만으로는 충분히 n-gram 모델을 훈련하기 어렵기 때문으로 보입니다.
- 3. SelfCheckGPT with NLI/Prompt
- 반면, NLI 및 Prompt 방식을 사용할 경우, 검색된 정보를 활용할 수 있는 상황에서 성능이 크게 향상되었습니다.
- 실제로는 LLM 생성의 모든 잠재적 사용 사례에 대해 외부 데이터베이스를 확보하는 것이 비현실적이기 때문에, 이러한 접근 방식에는 한계가 존재합니다.
- The Impact of the Number of Samples
- 샘플 기반 방법은 더 많은 샘플을 사용할수록 성능이 향상될 것으로 예상되지만, 이는 계산 비용 증가로 이어집니다.
- 따라서 샘플 수를 조정하면서 성능 변화를 조사했습니다.
- - SelfCheckGPT의 성능은 더 많은 샘플이 사용될수록 점진적으로 향상됩니다.
- - 그러나 샘플 수가 증가함에 따라 성능 향상의 폭은 점점 줄어드는 양상을 보입니다(수익 체감).
- - **SelfCheckGPT with n-gram**은 다른 방법들에 비해 더 많은 샘플이 필요하며, 성능이 일정 수준에 도달하기까지 시간이 더 오래 걸립니다.
- The Choice of LLM for SelfCheckGPT-Prompt
- SelfCheckGPT-Prompt에서는 텍스트를 생성한 LLM이 자신의 텍스트를 스스로 검증할 수 있는지 여부를 조사했습니다.
- 이 실험은 샘플 수를 줄여 **N=4**로 설정한 상태에서 진행되었습니다.
- - **GPT-3**는 스스로 생성한 텍스트를 검증할 수 있으며, 샘플이 4개만 사용되더라도 unigram 방법보다 우수한 성능을 보였습니다.
- - **ChatGPT**는 GPT-3보다 약간 더 나은 성능을 보여, 문장이 맥락에 의해 지지되는지 평가하는 데 있어 개선된 결과를 나타냈습니다.
- - 자세한 내용은 **Appendix C**에 수록되어 있습니다.
- 사실 같은 LLM을 써야 의미가 더 있을거 같은게
- 같은 LLM으로 자가 검증이 가능하다면 처음부터 할루시네이션이 없도록 생성하는 전략이 존재할 수 있다는 의미 아닐까?
8 Conclusions
- 이 논문은 **일반적인 대규모 언어 모델(LLM)의 응답에서 환각(hallucination)을 탐지하는 과제**를 처음으로 다룬 연구입니다.
- 우리는 **SelfCheckGPT**라는 방법을 제안했으며, 이는 외부 자원 없이 어떤 블랙박스 LLM에도 적용할 수 있는 **제로 리소스 접근법**입니다.
- 1. SelfCheckGPT의 효율성
- - 제안된 방법은 문장 수준과 문단 수준 모두에서 다양한 그레이 박스 및 블랙박스 기반 탐지 방법을 능가하는 성능을 보였습니다.
- 2. 주석 데이터셋 공개
- - **GPT-3 환각 탐지**를 위한 문장 수준의 사실성 레이블을 포함한 주석 데이터셋을 공개하였습니다.
- 이를 통해 환각 탐지 문제에 대한 새로운 방향을 제시하고, 관련 연구 및 응용의 기반을 마련하였습니다.
Limitations
- 이 연구에서는 WikiBio 데이터셋에 포함된 개인들에 대한 238개의 GPT-3 생성 텍스트를 주로 다뤘습니다.
- **LLM의 환각(hallucination)의 특성을 더 깊이 조사하기 위해**, 이 연구를 다양한 개념으로 확장할 수 있습니다.
- 예를 들어, **위치**나 **사물**에 대한 생성 텍스트도 함께 고려하는 방향입니다.
- 또한, 이 연구는 문장 수준에서의 사실성을 다루었지만, **하나의 문장 안에도 사실적인 정보와 비사실적인 정보가 혼재**할 수 있음을 주목해야 합니다.
- 예를 들어, **Min et al.(2023)의 연구**는 문장을 **원자적 사실(atomic facts)**로 분해하여 더 세밀한 사실성 평가를 제안합니다.
- 마지막으로, SelfCheckGPT의 여러 방법 중 **Prompt 기반 접근법이 가장 성능이 우수**했지만, **계산 비용이 매우 높아 실용성에 한계**가 있습니다.
- 이러한 문제는 **더 효율적인 방법을 개발**하여 해결할 수 있으며, 이는 향후 연구에서 다뤄질 수 있는 과제입니다.
Reference
댓글
댓글 쓰기