NL-299, Measuring the Impact of Lexical Training Data Coverage on Hallucination Detection in Large Language Models
ARR 202510
◼ Comment
- 정리
- 이 논문은 **LLM의 환각(hallucination)**이 **pre-training 데이터의 노출 빈도(lexical coverage)**와 어떤 상관관계를 가지는지 분석한 연구이다.
- 구체적으로, 저자들은 RedPajama 코퍼스 전체에 대해 suffix array 기반 n-gram 인덱싱 시스템을 구축하고, 모델이 생성한 응답과 입력 질문에서 등장하는 n-gram의 훈련 데이터 내 빈도를 측정하였다.
- 훈련 데이터에서 자주 등장한 n-gram(즉, lexical coverage가 높은 질문이나 표현)은 환각 가능성이 낮지만, 그 자체로는 완전한 예측 신호가 아니며 log-probability 같은 내부 신호와 결합할 때만 의미 있는 향상을 보인다.
- 장점
- 기존 연구가 모델 내부 불확실성(log-probability, entropy 등)이나 외부 지식 기반 검증에 집중했던 것과 달리, 이 논문은 **훈련 데이터 자체의 노출 빈도(lexical coverage)**가 환각 예측에 기여할 수 있음을 실증적으로 보여주었다. 이는 LLM의 훈련 데이터 분포와 환각 발생 간의 직접적 연결고리를 탐색했다는 점에서 중요한 인사이트를 제공한다.
- 단점
- 환각 레이블링 방식의 한계 환각 여부를 Exact Match(EM) 및 ROUGE-L<0.3 기준으로 정의한 것은 매우 단순하며 부정확하다.
- LLM의 생성은 본질적으로 다양성을 가지므로, 의미적으로 올바르지만 단어가 다를 수 있는 응답이 ‘환각’으로 잘못 분류될 수 있다.
- 특히 RedPajama는 instruction-tuned 모델이 아니며, few-shot 환경에서 reference와 정확히 일치하는 답변을 기대하기 어렵다. 따라서, 이러한 기준은 실제 환각률을 과소 혹은 과대평가할 가능성이 높다.
- 실제로 이렇게 레이블 매기는 것이 얼마나 효과적인지 분석이 필요하다. 이전의 여러 환각 검출 알고리즘을 활용하는 것도 하나의 방법이다.
- 제안한 방법은 실제 학습될때 이 모델의 학습 상황에 따라서도 효과가 다르게 나타날 것이다.
- 공개된 RedPajama을 사용했지만, 실제 모델이 1 epoch 만 학습됐을 때와 10 epochs가 학습됐을때의 n-gram 빈도는 똑같지만, 생성하는 응답은 달라질 것이다. 마찬가지로 log-probability features가 달라지기 때문에 이에 대한 폭넓은 분석이 필요해보인다
- 제안
- 실제 유저들이 사용하는 모델은 finetuned 된 instruction following이 가능한 모델들이다. 이 모델들은 pre-trained llm에서 fine-tuning하면서 학습된 코퍼스가 추가적으로 생긴다. 따라서 n-gram 등의 분포가 달라지는데, 이에 대한 분석이 추가되면 좋을거 같다.
얼마나 데이터를 몇 epoch을 봤고 shuffling 영향 그런것에 대한 것은 무시된거 같은데..
Abstract (초록)
대형 언어 모델(LLM)에서의 환각(hallucination)은 근본적인 도전 과제이며, 특히 개방형 도메인 질문답변(QA)에서 중요하다. 기존 연구들은 토큰 수준의 엔트로피(entropy) 또는 생성 일관성과 같은 모델 내부의 신호를 통해 환각을 탐지하려 했지만, 사전학습 데이터의 노출(pretraining data exposure)과 환각 사이의 관계는 아직 충분히 탐구되지 않았다. 선행 연구에 따르면, LLM은 사전학습(pretraining)에서 드물게 나타나는 정답 엔티티에 대해서는 성능이 저하되는 '긴 꼬리(long-tail)' 현상을 보인다. 그러나 데이터 커버리지(data coverage) 자체가 환각 탐지의 신호로서 얼마나 유용한지는 제대로 검토되지 않았다.
본 논문에서는 다음과 같은 보완적인 질문을 제기한다:
"질문이나 생성된 답변의 어휘적(lexical) 훈련 데이터 커버리지가 환각 탐지에 추가적인 신호를 제공할 수 있는가?"
이 질문을 탐구하기 위해, 우리는 RedPajama의 1.3조 토큰 규모의 사전학습 코퍼스에 확장 가능한 접미사 배열(suffix array)을 구축하여 프롬프트(prompt)와 모델 생성물(generation)에 대한 n-그램 통계를 추출하였다. 이 n-그램 통계가 환각 탐지에 얼마나 효과적인지 세 가지 QA 벤치마크에서 평가하였다.
결과적으로, 빈도 기반(occurrence-based) 특징(feature)은 단독으로 사용할 경우 예측력이 약했으나, 로그 확률(log-probabilities)과 결합했을 때 특히 내재적 불확실성이 높은 데이터셋에서 의미 있는 성능 향상을 나타냈다. 이러한 결과는 어휘적 데이터 커버리지 특징이 환각 탐지에서 보완적인 신호를 제공함을 시사한다.
본 연구의 모든 코드와 접미사 배열 기반 인프라는 공개적으로 제공된다.
1 서론 (Introduction)
언어 모델이 사실과 다르거나 근거 없는 내용을 생성하는 현상인 **환각(hallucination)**은 신뢰할 수 있는 생성 시스템을 구축하는 데 있어 여전히 핵심적이고 해결되지 않은 도전 과제이다(Huang et al., 2025). 이전 연구들은 환각 문제를 탐지하고 완화하는 데 주로 다음의 세 가지 방향으로 접근해왔다:
-
토큰 수준의 로그 확률(log-probabilities)이나 엔트로피(entropy) 같은 내재적(intrinsic) 불확실성 신호를 분석하는 방식(Kadavath et al., 2022; Kuhn et al., 2023)
-
모델 생성물의 자기 일관성(self-consistency) 또는 샘플 간 일치(sample agreement) 를 통해 생성물의 충실성(faithfulness)을 평가하는 방식(Manakul et al., 2023; Wang et al., 2023)
-
외부 지식이나 검색(retrieval) 메커니즘을 도입해 생성을 제한하는 방식(Shuster et al., 2021; Paudel et al., 2025)
대형 언어 모델(LLM)을 **훈련 데이터(training data)의 통계적 압축기(statistical compressors)**로 바라보는 관점(Delétang et al., 2023)을 고려하면, 사전학습 데이터(pretraining data) 노출과 환각 사이의 관계를 조사하는 것은 자연스러운 접근법이다. 그러나 이와 같은 접근은 기존 문헌에서 아직 충분히 탐구되지 않았다.
- Kandpal et al. (2023)는 특정 질문-답변(QA) 엔티티가 사전학습 코퍼스에서 희소할수록 해당 엔티티에 대한 정확도가 떨어진다는 것을 보여주었으며, 이는 '긴 꼬리(long-tail)' 효과를 나타낸다.
- 이 사실은 LLM의 사전학습 데이터를 직접적으로 살펴보는 것이 환각을 탐지하는 데 유용한 신호를 제공할 수 있음을 시사한다.
본 연구에서는, 훈련 데이터 노출을 보완적이고 어휘적(lexical) 관점에서 바라보며, 그것의 예측 가치를 탐구한다. 이를 위해 모델의 사전학습 코퍼스 내에서 n-그램 발생 통계(occurrence statistics) 를 사용하여 훈련 데이터 노출을 측정했다.
구체적으로, 세 가지 QA 벤치마크에서 주어진 프롬프트와 모델이 생성한 답변 각각에 대한 토큰화된 n-그램 빈도(n=1~5)를 계산했고, RedPajama의 1.3조 토큰 규모 코퍼스에서 접미사 배열(suffix-array) 색인을 통해 이 빈도수를 추출했다(Together.ai, 2023a).
기존의 엔티티 연결(entity-linking)에 기반한 접근법은 이름이 붙은(named) 엔티티들에 대해서만 데이터 커버리지 가정을 테스트하며, 이를 위해 Wikipedia와 같은 외부 리소스가 필요하다. 하지만 우리의 접근법은 엔티티를 넘어서 훈련 데이터 커버리지를 평가한다. 이는 예를 들어 “나는 생각한다, 고로 존재한다” 라는 말을 한 사람이 누구인지 묻는 질문이나, “사느냐 죽느냐(To be or not to be)”라는 유명한 대사가 나오는 희곡을 묻는 질문 등에서 중요한 방식이다.
본 연구의 가설은 이러한 표면적(surface-level) 통계가 이전 연구에서 사용된 신호들과 보완적인 정보를 제공한다는 것이다. 학습된 임베딩(embedding)은 여러 훈련 맥락과 전체 어휘에 걸쳐 분산된 동시출현(co-occurrence) 패턴을 인코딩하지만, 원시(raw) n-그램 발생 통계는 특정 토큰 시퀀스의 직접적인 어휘적 중복(lexical overlap)을 나타낸다. 따라서 이 통계는 모델이 훈련 중 명시적으로 보지 못했던 새로운(novel) 또는 분포 바깥(out-of-distribution)의 행동을 더 잘 포착할 가능성이 있다.
이 가설을 평가하기 위해, n-그램 발생 기반 특징을 독립적으로 평가하고, 로그 확률과 같은 모델의 내재적 신호와 결합했을 때의 성능도 평가한다. 실험 결과는 다음과 같은 사실들을 보여준다:
-
훈련 데이터에서 높은 n-그램 빈도를 가진 프롬프트일수록, 추출형이 아닌(non-extractive) QA에서 환각이 나타날 가능성이 평균적으로 낮다. 하지만 발생 통계만으로는 잡음이 많고 약한 예측자(predictor)에 그친다.
-
추출형(extractive) QA 과제에서는 훈련 코퍼스에 나타난 답변 구간(span)의 빈도가 진실성을 나타내는 강력한 지표(indicator)가 된다.
-
생성물의 로그 확률과 결합했을 때, 발생 기반 특징은 로그 확률만을 사용한 경우보다 일관된 성능 향상을 보였지만, 그 성능 향상폭은 데이터셋마다 달랐다.
이 논문에서는 언어 모델의 입력(질문)과 출력(생성된 답변)에 포함된 어휘(n-그램)가 사전학습 코퍼스에서 얼마나 자주 나타났는지(어휘적 커버리지)가 모델의 환각 여부를 판단하는 추가적 신호가 될 수 있을까?
- 자주 본 데이터에서는 환각이 낮을것으로 예상한다는 것
2 관련 연구 (Related Work)
환각 탐지 (Hallucination Detection)
환각 탐지 방법은 일반적으로 내재적(intrinsic) 방법, 일관성(consistency) 기반 방법, 검색 증강(retrieval-augmented) 접근법의 세 가지로 구분된다.
-
내재적 방법(intrinsic methods) 중 Kadavath et al. (2022)는 모델의 출력 임베딩(output embeddings)을 이용하여 분류기를 학습시키면, 모델이 생성한 답변에 대한 모델의 신뢰도를 추정할 수 있음을 보였다. SelfCheckGPT(Manakul et al., 2023)와 Kuhn et al. (2023)의 의미적 엔트로피(semantic entropy) 접근법은 토큰 단위 로그 확률과 엔트로피가 환각 탐지를 위한 간단하면서도 효과적인 신호가 될 수 있음을 추가로 보여주었다.
-
또한, SelfCheckGPT는 여러 번의 모델 생성물을 바탕으로 생성물 간 차이를 측정하여 환각 비율을 추정하는 일관성 기반(consistency-based) 접근법도 도입했다. 유사하게, Wang et al. (2023)은 체인 오브 쏘트(chain-of-thought) 프롬프팅과 자기 일관성을 결합하면 환각을 더욱 줄일 수 있음을 보여주었다.
-
다른 연구(Shuster et al., 2021; Paudel et al., 2025)는 외부 지식 소스 또는 기반 문서(grounding documents)를 사용하여 모델의 생성을 제한하고 사실성을 높였다. 하지만 이런 외부 리소스가 실제 상황에서 항상 존재하거나 신뢰할 수 있는 것은 아니다.
-
모델 내부 신호나 외부 지식에 의존한 기존 접근법과 달리, Kandpal et al. (2023)은 특정 QA 엔티티가 LLM의 사전학습 데이터에 존재하는지 여부와 모델이 그에 대해 정확히 답변할 수 있는 능력 사이에 인과적(causal) 관계가 있음을 보였다. LLM은 훈련 중 거의 보지 못한 주제에 대해 특히 어려움을 겪는 경향이 있다. 하지만 이 방법은 대규모 엔티티 추출(entity extraction) 및 외부의 잘 정리된 카탈로그(entity catalog)와의 연결에 의존하기 때문에, 데이터 처리 과정의 복잡성과 잡음(extraction noise)이 추가될 수 있다.
이러한 연구와 달리, 본 연구는 보완적(complementary)이며 저수준(low-level)이고, 모델에 의존하지 않는(model-agnostic) 신호를 탐구한다. 바로 **사전학습 코퍼스에서의 어휘적 스팬(lexical spans)의 발생 빈도(occurrence frequency)**이다. 이 방법은 훈련 데이터에서의 주제(혹은 표현)의 커버리지(coverage)를 직접적으로 측정할 수 있게 한다. 우리가 알기로는, 본 연구가 n-그램 발생 통계를 환각 탐지의 예측자로 체계적으로 평가한 최초의 연구이다.
근데, 어떤 모델을 활용한다 했을때 사전학습이 공개되지가 않았는데.. 이 논문이 주장하고자 하는것을 활용하는것이 너무 제한적이지 않은지?
LLM 사전학습과 데이터 인프라 (LLM Pretraining and Data Infrastructure)
본 연구는 RedPajama 데이터셋과 LLM 모델군(Together.ai, 2023a,b)을 기반으로 수행되었다. 이 데이터셋과 모델군은 공개적으로 이용 가능한 데이터를 이용해 원래 LLaMA 모델(Touvron et al., 2023)의 훈련 레시피를 재현한 것이다. 우리는 훈련 데이터에서의 발생 통계를 대규모로 효율적으로 추출하기 위해, 원래 대규모 코퍼스에서 기억(memorization)과 중복 제거(deduplication)를 분석하기 위해 개발된 Lee et al. (2022)의 접미사 배열 인덱싱(suffix array indexing) 인프라를 사용했다.
즉 제대로 분석하기 위해, 실제 학습 데이터를 구비하고 llama식으로 모델을 학습을 직접한 RedPajama을 사용했단 것. RedPajama에 대한 레시피 및 데이터가 공개되어있나본데
3 방법론 (Methodology)
3.1 문제 설정 (Problem Setup)
본 연구에서는 환각 탐지를 이진 분류(binary classification) 문제로 정의한다. 구체적으로, 주어진 프롬프트(prompt)와 모델이 생성한 출력(output)이 있을 때, 이 출력이 환각인지 아닌지 여부를 예측하는 것이 목적이다.
- 이때 정답(ground-truth) 레이블(label)은 특정 평가 지표(evaluation metric)와 사전 정의된 임계값(threshold)에 따라 결정된다.
- 본 연구의 목표는 모델의 훈련 데이터로부터 추출한 발생 빈도(occurrence-based features)가 환각 여부를 얼마나 잘 예측하는지 평가하는 것이다.
특히, 이 발생 빈도 특징이 단독으로 사용되었을 때와 토큰 로그 확률(token log-probabilities)과 같은 모델 내부 신호(intrinsic confidence features)와 결합하여 사용되었을 때의 성능을 모두 평가하고자 한다.
3.2 접미사 배열을 통한 발생 빈도 추출 (Occurrence Extraction via Suffix Array)
n-그램 통계(n-gram statistics)를 효율적으로 접근하기 위해서는 확장 가능한 인덱스 구조(indexing structure)가 필요하다. Lee et al. (2022)의 연구를 기반으로, 우리는 이들의 러스트(Rust) 기반의 접미사 배열(suffix array) 구현을 활용하고, PyO3(Hewitt et al., 2024)를 이용하여 최소한의 Rust-Python 연결(bridge)을 개발하였다. 이를 통해 RedPajama의 1.3조 토큰 코퍼스에서 대규모 n-그램 빈도를 Python 기반 파이프라인에서 효율적으로 추출할 수 있도록 했다.
구체적으로, 원본(raw) 코퍼스를 RedPajama 모델이 사용한 것과 동일한 토크나이저(tokenizer)로 토큰화하고, 모든 시퀀스를 토크나이저의 문장 종료 토큰(end-of-sequence, EOS)을 사용하여 연결하여(flatten) 하나의 긴 토큰 시퀀스를 만든다. 그 다음, 이렇게 연결된(flattened) 토큰 시퀀스 위에 앞서 설명한 인프라를 이용하여 접미사 배열을 구축한다. 접미사 배열 구축을 위한 핵심 알고리즘은 SA-IS(Nong et al., 2009)로, 이 알고리즘은 데이터 내의 로컬(local) 오름차순 및 내림차순 패턴을 활용하여 선형 시간(linear time)에 배열을 구축할 수 있다.
접미사 배열이 일단 구축되면, 코퍼스의 길이를 (m)이라 했을 때, 부분 문자열(substring)과 n-그램 빈도를 ($O(\log m)$)의 쿼리(query) 시간 내에 효율적으로 검색할 수 있게 된다.
- 이해하기로는 학습 데이터를 문단 단위에서 n-gram으로 쪼개서, 빈도수를 계산했다라는것 같음
- 문단내의 문장 사이에는 EOS 토큰을 사용한 것 같음. 다른 문장내에서 나온 n-gram은 구분지으려고 그런거 같음
3.3 로그 확률 기반 특징 (Log-Probability Features)
우리는 모델에서 두 가지 내재적 신뢰도 특징(intrinsic confidence features) 을 추출한다:
-
생성물의 평균 로그 확률 (Generation log-probability)
-
프롬프트의 평균 로그 확률 (Prompt log-probability)
1) 생성물의 로그 확률 (Generation log-probability)
이전 연구(Manakul et al., 2023; Jesson et al., 2024)를 따라, 프롬프트(입력)가 ( $x = (x_1, \dots, x_m)$ ), 모델 생성물(출력)이 ( $y = (y_1, \dots, y_n)$ ) 로 주어질 때, 생성물의 로그 확률은 프롬프트를 조건으로 하여 생성된 각 토큰의 조건부 로그 확률의 평균으로 계산된다.
수식으로 나타내면 다음과 같다:
$[
\text{Gen_LogP}(y|x) = \frac{1}{n}\sum_{t=1}^{n}\log p(y_t|x,y_{<t})
]$
이 값은 프롬프트(입력)와 이전에 생성된 토큰들을 고려했을 때, 모델이 스스로의 출력에 대해 얼마나 자신감을 가지고 있는지를 반영한다.
2) 프롬프트의 로그 확률 (Prompt log-probability)
우리는 프롬프트 자체의 평균 로그 확률도 계산한다. 이 확률은 프롬프트가 모델의 언어 분포(language distribution)에서 얼마나 "일반적(typical)"인지 측정한다.
주어진 프롬프트 ( $x = (x_1, \dots, x_m)$ )에 대해, 왼쪽에서 오른쪽으로 진행하는 자기회귀적(autoregressive) 조건부 확률에 따라 아래와 같이 계산된다:
$[
\text{Pr_LogP}(x) = \frac{1}{m-1}\sum_{t=2}^{m}\log p(x_t|x_{<t})
]$
이 두 가지 로그 확률 특징(Log-Probability Features)은 모델의 내재적(intrinsic) 신호로써 환각 여부를 판단하는 데 중요한 기준이 된다.
- QA 데이터세트에서, 프롬프트에 해당하는 생성확률, 응답의 생성확률 2가지를 모두 계산했다는 것
- 생성 확률은 PPL과 유사함 (exp의 유무 차이인듯)
- 3.2에서는 pretraining 문서 세트를 말하는 것이고
- 3.3에서는 테스트 데이터로 TriviaQA, NQ-Open, CoQA와 같은 질문-답변 형태의 데이터셋을 말함
- 생성된 답변의 환각(hallucination) 여부를 판단하기 위한 평가 데이터셋
3.4 발생 빈도 기반 특징 (Occurrence-Based Features)
우리는 RedPajama 훈련 코퍼스(Together.ai, 2023a)에서 **n-그램 발생 빈도(n-gram occurrence counts)**를 추출한다.
- 프롬프트(질문)의 경우, n=1에서 n=5까지의 n-그램들에 대한 평균 발생 빈도를 계산한다.
- 생성물(답변)의 경우, 보통 길이가 더 짧기 때문에 주로 1-그램과 2-그램에 대한 평균 발생 빈도를 계산한다.
- 또한 생성된 전체 문장이 훈련 데이터에 정확히(verbatim) 나타났는지 여부와 그 빈도도 추가로 계산한다.
여기서 계산되는 빈도 값은 정규화(normalization)하지 않은 원시 빈도(raw frequency)이다. 별도의 언급이 없는 한, n-그램 생성 과정에서 불용어(stopwords)는 제거하지 않고 그대로 유지한다.
이를 더 구체적으로 설명하기 위해 다음과 같은 예시를 들어 3-그램 추출 과정을 설명한다:
예시 (Example)
질문이 다음과 같이 주어졌다고 가정하자:
“Published on Feb 21, 1848, which two authors were responsible for the Communist Manifesto?”
이 질문에서 우리는 아래와 같은 중복(overlapping) 3-그램을 추출한다:
-
“Published on Feb”
-
“on Feb 21”
-
“Feb 21, 1848”
-
“21, 1848, which”
-
“1848, which two”
-
“which two authors”
-
“two authors were”
-
“authors were responsible”
-
“were responsible for”
-
“responsible for the”
-
“for the Communist”
-
“the Communist Manifesto”
여기서 n-그램은 토크나이저(tokenizer)에 의해 정의된 서브워드 토큰(subword token)에 기반하며, 실제 단어 경계(word boundaries)와는 정확히 일치하지 않을 수도 있다.
- 예를 들어, "Manifesto"는 토크나이저에 의해 “Man”, “if”, “esto”와 같은 세 개의 개별 토큰으로 분리될 수 있고, 결과적으로 3-그램으로 나타날 수 있다. (실제로는 단일 단어처럼 보이지만 말이다.)
- 예시는 단어로 들었지만, 실제로는 토큰단위라는 것
이렇게 추출된 각 3-그램 토큰 시퀀스를 RedPajama 훈련 코퍼스에 구축한 접미사 배열(suffix array)에 검색(query)하여 빈도를 조회한다.
- 논문의 Table 1(3쪽 참고)은 이러한 빈도의 예시를 각 데이터셋 컬렉션별로 보여준다.
- 각각의 n-그램에 대해, 우리는 사용 가능한 모든 RedPajama 하위 코퍼스(subsets)의 빈도(raw frequencies)를 합산하여 총 빈도를 계산한다.
- 이 총 빈도는 이후 설명될 모델링에 사용된다.
고정 길이의 n-그램 통계 외에도, 프롬프트에서 의미적으로 중요한 키 프레이즈(key phrases)의 빈도도 추출한다.
- 이러한 키 프레이즈들은 GPT-4o(OpenAI, 2024)를 사용하여 생성되며, GPT-4o는 질문에서 답변을 찾는 데 핵심이 되는 정규화(canonical)된 표현 및 재구성(paraphrased)된 표현들의 리스트를 반환하도록 지시받는다.
- 위의 질문 예시의 경우, 추출된 키 프레이즈는 예를 들어 “Communist Manifesto”, “authors of Communist Manifesto” 등이다.
- 각 키 프레이즈를 접미사 배열에서 조회하여 훈련 코퍼스 전체의 빈도를 계산한다.
- 이 값들은 프롬프트 내에서 답변과 관련된 가장 핵심적인 표현이 훈련 중 얼마나 자주 나타났는지를 반영하는 추가 특징이 된다.
- 이 과정의 강건성(robustness)을 높이기 위해 다양한 대소문자(capitalization)와 공백(spacing) 변형(variants)을 통해 키 프레이즈를 확장하여 빈도를 추출한다.
원시 빈도 모델 (Raw Frequency Model)
가장 간단한 모델링 접근법은 평균 n-그램 빈도로 구성된 특징 벡터(feature vector)를 사용하는 것이다. 각 프롬프트와 생성물에 대해 모든 n-그램과 키 프레이즈를 추출한 후, 이들의 훈련 데이터에서의 빈도를 조회하여 평균 점수 ( S_{\text{raw}}(z) )를 계산한다:
$[
S_{\text{raw}}(z) = \frac{1}{|G(z)|}\sum_{g \in G(z)} \text{Count}(g)
]$
여기서 ( z )는 프롬프트나 생성물의 시퀀스이며, ( G(z) )는 주어진 ( z )로부터 추출된 모든 n-그램 또는 키 프레이즈 집합이며, ( $\text{Count}(g)$ )는 훈련 코퍼스 전체에서 ( g )가 등장한 총 빈도이다.
이렇게 계산된 특징 벡터는 프롬프트와 생성물의 n-그램 빈도를 별도의 특징으로 나타내고, 이후 분류기(classifier)의 입력으로 사용되거나, 독립적으로 환각 비율(hallucination rates)과 비교하여 분석된다.
- 각 3-gram / keyphrase의 빈도수를 평균내서 점수를 계산함
- 몇 gram을 쓸지, question, response 에 대한 점수인지 등을 조합해서 특징 벡터를 만들어서 환각 분류기 입력이 된다는 거 같음
고전적인 n-그램 스코어링 모델 (Classic n-gram Scoring Model)
우리는 원시 빈도 평균 외에도 조건부 가능도(conditional likelihood)를 사용하는 고전적인 n-그램 언어 모델도 구현한다. 구체적으로, 시퀀스 ( $z = (z_1, \dots, z_T$) )에 대해 모든 n-그램과 그에 대응하는 (n-1)-그램 접두사(prefix)를 추출하여 로그 가능도 스타일의 스코어 ( $S_{\text{ng}}(z)$ )를 정의한다:
$[
S_{\text{ng}}(z) = \frac{1}{T - n + 1}\sum_{t=1}^{T - n + 1}\log\left(\frac{\text{Count}(g_t^n) + \epsilon}{\text{Count}(g_t^{n-1}) + \epsilon}\right)
]$
여기서 ( $\text{Count}(g_t^n)$ ) 와 ( $\text{Count}(g_t^{n-1})$ )는 각각 n-그램 ( ($z_t \dots z_{t+n-1}) $) 과 (n-1)-그램 접두사 ( ($z_t \dots z_{t+n-2}$) ) 의 코퍼스 빈도를 나타낸다. 작은 상수(smoothing term) ($\epsilon = 10^{-8}$)을 추가하여 0 빈도를 방지한다.
이 점수는 프롬프트나 생성물의 주어진 시퀀스가 훈련 데이터로부터 유도된 고전적인 카운트 기반 언어 모델에서 얼마나 나타날 가능성이 있는지를 나타낸다. 이는 앞서 3.3에서 정의한 프롬프트 로그 가능도와 보완적인 신호로 작용하며, 훈련 데이터로부터 유도된 어휘 친숙도(lexical familiarity)의 데이터 기반 척도로 작용한다. 원시 빈도 모델과 마찬가지로, 이 스코어를 분류기의 입력으로 사용하거나 독립적으로 분석하여 환각 비율과의 관계를 확인한다.
- 프롬프트 혹은 응답이 입력 z이고 n-1 gram과 n gram 사이의 비율을 보는 개념인듯
- 만약 "The Communist Manifesto"가 "The Communist"라는 앞 2-그램 뒤에 자주 등장했다면, 높은 값을 얻습니다.
- 모델이 생성한 답변(생성물)이 훈련 데이터의 어휘적 분포와 얼마나 가까운지를 측정할 수 있습니다.
- 매우 낯선 표현이나 비현실적인 표현을 포함한 생성물은 낮은 점수를 얻으며, 이는 환각의 가능성이 높음을 나타냅니다.
- 여기서도 마찬가지로 구한 값으로 feature 만들음 (분류모델은 뒤에서 학습됨)
불용어 필터링 (Stopword Filtering)
두 가지 필터링 전략을 NLTK의 불용어 리스트(Bird et al., 2009)를 통해 적용한다:
-
원시 빈도 모델에서 불용어가 66%를 초과하는 n-그램을 제거한다.
-
n-그램 모델에서는 마지막 토큰이 불용어인 n-그램을 제외하여 의미 없는 완성을 방지한다.
4 실험 환경 (Experimental Setup)
4.1 데이터셋 (Datasets)
본 논문에서는 제안된 환각 탐지 방법을 평가하기 위해 세 가지의 질문-답변(QA) 벤치마크를 사용하였다:
-
TriviaQA (Joshi et al., 2017)
-
CoQA (Reddy et al., 2019)
-
NQ-Open (Lee et al., 2019)
TriviaQA와 NQ-Open은 모두 개방형 도메인(open-domain)의 질문-답변(QA) 데이터셋으로, 모델이 외부 문서나 근거 자료 없이 자유로운 형식의 사실 기반 답변(free-form factual answers)을 생성해야 하는 형식이다.
반면 CoQA는 대화형(conversational)이며 추출형(extractive) 질문-답변 데이터셋으로, 답변은 일반적으로 제공된 지문(passage)으로부터 직접 추출된 짧은 구간(span)으로 구성된다.
이들 데이터셋은 다음과 같은 측면에서 서로 다르다:
-
답변 형식(answer format)
-
지문과의 연계성(contextual grounding)
-
답변 생성에 대한 제약사항(generation constraints)
이러한 다양한 데이터셋을 사용함으로써, 우리의 환각 탐지 방법이 개방형 QA(open-ended QA) 및 추출형 QA(extractive QA) 환경 모두에서 얼마나 견고하게 작동하는지를 평가할 수 있도록 한다.
4.2 모델 및 생성물 (Model and Generations)
우리는 각 질문에 대한 답변을 생성하기 위해 RedPajama-INCITE 언어 모델 패밀리의 3B와 7B 크기의 모델을 사용하였다. RedPajama 모델을 선택한 이유는, 고품질이며 공개적으로 이용 가능한 몇 안 되는 대형 언어 모델(LLM) 중 하나이기 때문이다. 특히, 모델의 가중치(weights)와 전체 훈련 코퍼스(1.3조 토큰)가 모두 공개되어 있다는 점이 중요하다. 또한, RedPajama의 훈련 데이터셋 규모는 현대적 LLM의 대표성을 갖추기에 충분히 크면서도, 동시에 학술적 환경에서 컴퓨팅 자원을 활용하여 색인(indexing)과 조회(query)가 가능한 수준이다.
모든 생성물은 퓨샷(few-shot) 환경에서 생성되었다. 즉, 각 질문 앞에 소수의 질문-답변 예시가 제공되며, 표준적인 형식(Q: / A:)을 사용하였다. 발생 빈도(occurrence statistics)를 계산할 때에는 현재 테스트 시점에서의 질문만을 별도로 분리하여 사용하였다. 생성 방식은 확률적 디코딩(stochastic decoding)을 사용했으며, 구체적으로는 top-k 샘플링((k = 50)), 뉴클리어스(nucleus) 샘플링((p = 0.7)), 그리고 온도(temperature)는 1.0으로 설정하였다.
우리는 생성된 답변과 정답(reference answers)을 두 가지의 환각(hallucination) 기준을 사용하여 비교하였다:
-
정확 일치 (Exact Match; EM)
생성된 답변이 주어진 정답(reference) 중 하나와 정확하게 일치하지 않을 경우 환각으로 정의하였다.
MRC 형태가 아닌데, 당연히 EM일 경우는 엄청 적지 않은가? -
ROUGE-L (Lin, 2004)
생성된 답변의 ROUGE-L 점수가 0.3 미만일 경우 환각으로 레이블(label)을 부여하였으며, 이는 Kuhn et al. (2023)의 연구와 유사한 기준이다.
이 두 가지 기준을 통해 생성된 답변들의 환각 여부를 평가하고 비교하였다.
약간 환각을 정의하는 기준이 너무 아쉬운거 같은데.. 이걸로 레이블로 판단한거고
4.3 평가 방법 및 지표 (Evaluation and Metrics)
feature로 예측한 점수와 위에서 매긴 레이블간의 AUROC을 측정한 거 같음
추출된 특징(feature)의 유효성은 두 가지 단계로 평가하였다:
(1) 특징과 환각 여부 간 개별적인 상관관계 분석 (AUROC 사용)
각 특징의 독립적인 유용성을 평가하기 위해, 우리는 특징 값과 이진 환각 레이블(hallucination labels) 간의 **AUROC(Area Under the Receiver Operating Characteristic)**를 계산하였다.
-
AUROC 값이 0.5보다 크면 해당 특징이 정답을 맞춘 생성물(비환각)과 양의 상관관계가 있음을 나타낸다.
-
AUROC 값이 정확히 0.5라면 무작위로 추측한 것과 동일하다는 것을 의미한다.
이 분석은 세 가지 데이터셋 모두에서 EM(Exact Match) 및 ROUGE-L 두 가지 기준으로 수행하였다.
(2) 이진 분류기(Classifier)를 활용한 특징의 예측 성능 평가
추출된 특징들이 실제 환각 예측을 얼마나 잘할 수 있는지 평가하기 위해, 지도학습(supervised learning) 방식의 **이진 분류기(binary classifiers)**를 학습시켰다.
사용한 특징(feature) 세트는 두 가지로 나뉜다:
-
Logprob only: 생성물(generation)의 로그 확률을 유일한 특징으로 사용한다.
-
Full feature set: 생성물의 로그 확률, 프롬프트(prompt)의 로그 확률, 그리고 앞서 AUROC 분석을 통해 성능이 좋다고 판단된 프롬프트 및 생성물의 발생 빈도(occurrence) 기반 특징을 추가로 사용한다.
모든 특징은 scikit-learn의 StandardScaler를 이용하여 표준화(standardization)하였다.
분류기 모델 종류 (Classifier Types)
우리는 두 가지 분류기 구조를 평가하였다:
-
결정 트리(Decision Tree):
scikit-learn 라이브러리를 이용해 얕은 결정 트리(depth는 3에서 20 사이)를 학습했다. 이 모델은 해석 가능한 결정 경계(decision boundaries)와 특징 중요도(feature importances)를 제공한다. -
신경망(Neural Network, MLP):
3층 구조의 다층 퍼셉트론(Multi-Layer Perceptron)을 이용했다(레이어 크기: 32–64–32, 활성화 함수는 ReLU, 출력층은 소프트맥스). Adam 최적화 알고리즘(lr=1e-4, 배치 크기=batch size 20)을 이용하여 25 epochs 동안 학습했다. 구조적 변형(architectural variations)을 시도했으나 성능 차이는 미미했다.
추가적으로, Logprob only 특징 세트의 경우에는 로지스틱 회귀(logistic regression) 기반의 단순한 결정 경계를 학습하는 베이스라인(baseline)도 설정하였다.
학습 설정 (Training Setup)
데이터셋 간의 환각 비율(hallucination rates)의 차이를 통제하기 위해, 각 데이터셋에서 환각과 비환각 사례를 동일한 수로 샘플링하여 50대50으로 균형 잡힌 데이터를 구성했다.
위에서 EM와 ROUGE중 하나 정해서 매긴 레이블로 환각 데이터세트를 만들었다 보고, 이를 환각/비환각 반반 나누고 8:2로 학습:평가 데이터로 사용했다
- 이를 통해 데이터셋마다 균일한 조건에서 평가할 수 있도록 했다. 환각 여부는 ROUGE-L 또는 EM 기준 중 하나로 라벨링하였다.
- 생성된 결과물 중 토큰 수가 2개 미만인 경우는 제외했는데, 이는 이러한 케이스에서는 n-그램 계산이 불가능하거나 빈(empty) 또는 의미 없는 결과가 대부분이기 때문이다.
- 각 데이터셋에 대해 80%를 학습 데이터(train set)로, 나머지 20%를 테스트 데이터(test set)로 분할하여 모든 분류기를 학습시켰다.
- 모든 구성을 다섯 개의 랜덤 시드(random seeds)로 반복하여 실험한 뒤, 평균 정확도(accuracy)와 표준편차(standard deviation)를 보고하였다.
평가 지표 (Evaluation Metric)
모든 실험 결과의 주요 평가 지표로는 **테스트 데이터셋의 정확도(test-set accuracy)**를 사용하였다.
5 실험 결과 (Experimental Results)
본 절에서는 7B 모델을 Exact Match(EM) 기준으로 평가한 결과를 보고하며, 각 카테고리에서 가장 우수한 AUROC 곡선을 보여준다. 전체 결과는 부록 A.1에 수록되어 있다.
5.1 피처 수준 상관 관계 (AUROC) (Feature-Level Correlation)
먼저 로그 확률(log-probabilities) 및 출현 빈도(occurrence-based) 피처의 개별 예측 가치를 평가하기 위해 각 피처 값과 환각(hallucination) 레이블 간의 AUROC를 계산하였다.
그림 1은 Raw Frequency 피처(Sraw, 왼쪽)와 n-gram 피처(Sng, 오른쪽)를 사용한 세 가지 데이터셋의 AUROC 곡선을 제시한다. 다음과 같은 관찰 결과가 나타났다:
-
**생성물의 토큰 로그 확률(Generation token log-probabilities)**이 모든 다른 피처를 일관되게 능가하여, 환각을 가장 신뢰성 있게 예측할 수 있는 개별적인 피처였다.
-
반면, **출현 빈도 기반 피처(occurrence-based features)**는 보다 약하고 변동성이 큰 신호를 보였다.
-
**프롬프트 쪽의 신호(prompt-side signals)**에 대해서는, 개방형(open-domain) QA에서는 모델의 정확성과 약간의 긍정적 상관관계(AUROC ≈ 0.6)를 보였지만, 추출형(extractive) QA에서는 뚜렷한 상관관계가 없었다.
-
**생성물 쪽의 신호(generation-side signals)**는 전형적으로 S자 형태의 경향을 보였다. 즉, 매우 빈도가 높은 생성물은 자주 환각된 결과를 나타냈는데, 이는 암기되거나 템플릿화된 패턴 때문이었다. 반면 특정 빈도 이하의 덜 빈번한 생성물은 실제 존재하는 엔티티를 대표하여 정확성(faithfulness)과 긍정적인 상관관계를 보였다.
-
추가적으로, 추출형 QA에서 EM 평가 설정하에 추출된 답변 스팬(span)의 코퍼스 출현 빈도와 정확성 간에는 강력한 상관관계가 관찰되었다.
5.2 분류기 성능 (Classifier Performance)
로그 확률(log-probabilities)과 출현 빈도 기반 피처(occurrence-based features)의 결합된 예측 성능을 평가하기 위해 두 가지 피처 조합을 사용하여 의사결정 트리(decision trees)와 신경망(neural networks)을 훈련시켜 환각을 분류하였다.
Raw Frequency 모델의 경우, 가장 효과적인 출현 기반 피처는 주로 프롬프트의 핵심구문 평균 빈도(prompt key phrase frequency)와 전체 생성물 빈도(full-generation frequency)였다.
n-gram 모델의 경우, 일반적으로 3-gram 또는 4-gram과 같은 긴 n-gram이 더 짧은 n-gram보다 우수한 성능을 보였으며, 5-gram은 데이터 희소성(data sparsity)으로 인해 자주 성능이 낮았다(정확히 일치하는 5-gram이 훈련 코퍼스에 자주 나타나지 않기 때문이다).
- 당연히 그럴거 같은 느낌
표 2는 다양한 모델 유형에 따른 테스트 정확도를 나타내며, 결과는 5회 반복 실험의 평균을 나타낸다. 각 데이터셋과 피처 유형 전반에서 출현 빈도 기반 피처를 통합할 때 일반적으로 최상의 결과를 얻었다. 가장 두드러진 개선 효과는 NQ-Open 데이터셋에서 관찰되었으며, 이 데이터셋에서는 질문이 더 까다롭고, 로그 확률 피처만으로는 신뢰성이 낮았다.
ROUGE-L 평가에서도 유사한 경향이 관찰되었으며, 전체 결과는 부록 A.2에 제시되어 있다.
5.3 불용어 필터링 효과 (Effect of Stopword Filtering)
우리는 프롬프트 기반 피처에 불용어 필터링(stopword filtering)을 적용하였으며 (3장에서 설명한 바와 같이), 특히 짧은 길이의 n-gram 피처에 대해서는 AUROC가 약간 개선되는 것을 관찰하였다.
또한 일부 데이터셋, 특히 TriviaQA의 경우, 분류기 정확도가 소폭 향상되었다. 그러나 전반적으로 불용어 필터링이 미친 영향은 제한적이었으며, 연구의 핵심 결론을 실질적으로 변경하지는 않았다. 자세한 전체 결과는 부록 A.3에 수록되어 있다.
6 분석 (Analysis)
6.1 출현 빈도 피처의 유용성 해석하기 (Interpreting Occurrence Feature Utility)
전체 피처를 사용한(full-feature) 의사결정 트리(decision tree)가 로그 확률만 사용한(log-probability-only) 모델보다 유사한 훈련 성능에도 불구하고 테스트 정확도에서 더 나은 성과를 보이는 이유를 이해하기 위해, 우리는 NQ-Open 데이터셋에서 EM(Exact Match) 기준을 사용하여 부트스트랩 재샘플링(bootstrap resampling) 분석을 수행하였다.
구체적으로, 우리는 훈련 데이터를 재샘플링한 버전을 사용하여 깊이가 3인 의사결정 트리 200개를 반복적으로 훈련하고, 모든 실행에서 테스트 샘플이 동일한 예측을 받는 비율(예측 일관성, prediction consistency)을 측정하였다.
로그 확률만 사용하는 모델은 일관성이 전혀 없었으며(0.00), 이는 훈련 데이터의 작은 변화에도 매우 민감함을 의미한다. 반면, 전체 피처를 활용한 모델은 더 높은 일관성(0.06)을 보였다. 이 개선 효과는 크기는 중간 정도이지만, 방향성 있는 명확한 경향을 나타낸다. 즉, 출현 빈도 기반 피처가 더 재현 가능한(reproducible) 의사결정 경계를 형성하고 일반화 안정성(generalization stability)을 개선하는데 기여한다는 것이다.
또한 우리는 출현 빈도 피처가 환각된 출력을 효과적으로 구별하는 구체적인 사례도 확인하였다. 특히, 답변 대신 반복된 훈련 프롬프트와 같은 표면적인 오류를 찾아낼 수 있었다(예: 실제 답변 대신 "Q:"만 반복되는 경우). 이러한 차이가 어떻게 발생하는지 살펴보기 위해 전체 피처 세트와 로그 확률만을 사용하여 각각 훈련된 깊이 3의 의사결정 트리를 시각화하였다.
그림 2에서 볼 수 있듯이, 출현 빈도 피처를 사용하는 트리는 초기에 생성물 2-gram 점수(gen_occ_2)를 기준으로 57개의 환각된 사례를 명확하게 구분한다(gen_occ_2 > -1.73 → gen_occ_2 ≤ -1.39 경로). 이 경로의 예시들이 표 3에 제시되어 있다. 이 분기는 높은 로그 확률을 가졌을 수 있지만 어휘적 다양성이 낮은 출력, 특히 실질적인 답변 대신 프롬프트 스타일의 시퀀스를 반복한 출력을 포착하였다.
이러한 사례들은 훈련 데이터 분포 내의 좁은 2-gram 출현 빈도 범위 내에 집중되어 있으므로, 출현 빈도 기반 모델이 이를 더 일관되게 식별할 수 있다. 이는 훈련 데이터와 정렬된(training-data-aligned) 피처가 토큰 수준 확률만으로는 감지하지 못하는 취약하고 형식 중심의 환각(brittle, format-driven hallucinations)을 드러냄으로써, 본질적 불확실성 측정(intrinsic uncertainty measures)을 보완할 수 있음을 보여준다.
6.2 출현 빈도 기반 피처는 단순한 노이즈인가? (Are Occurrence-Based Features Pure Noise?)
그림 1에서 보았듯이, 출현 빈도 기반 피처는 일반적으로 내재적 모델 신호(intrinsic model signals)에 비해 낮은 AUROC 점수를 보인다. 이 피처가 순수한 노이즈가 아닌 유의미한 신호를 포함하고 있는지 확인하기 위해, 우리는 TriviaQA의 프롬프트 3-gram 출현 빈도 점수의 분포를 시각화했다(그림 3 참조).
환각된 질문(hallucinated questions)과 비환각 질문(non-hallucinated questions)의 두 클래스는 상당히 겹쳐 있지만 평균값에서는 작은 차이를 보인다. 이에 대한 t-검정(t-test)을 수행한 결과, 두 클래스의 평균 차이가 통계적으로 유의미함을 확인하였다(t = −4.21, p = 2.7 × 10⁻⁵). 그러나 샘플 크기가 크기 때문에 이런 검정은 평균값의 작은 차이에도 민감하게 반응한다.
이러한 결과는 출현 빈도 피처가 환각된 답변과 관련된 약하지만 일관된 편향을 포착한다는 것을 나타낸다. 데이터의 빈도와 형식적 측면과 밀접하게 얽혀 있기 때문에 독립적인 예측력은 제한적이지만, 5.2절에서 관찰된 바와 같이 로그 확률과 같은 보다 강력한 지표와 결합될 때 보완적인 사전 신호(complementary priors)로 활용될 수 있음을 보여준다.
6.3 LLM은 단순한 시퀀스 예측기 이상이다: 데이터 희소성으로부터의 증거
(LLMs Are More Than Sequence Predictors: Evidence from Data Sparsity)
LLM은 흔히 세계 지식(world knowledge)을 대규모로 압축한 모델로 간주되며, 학습 데이터로부터 암기된 내용을 검색(retrieving)한다고 여겨진다. 그러나 우리의 연구 결과는 이러한 관점이 지나치게 단순화된 것임을 시사한다.
실제로 우리는 간단한 자연어 질문조차도 1.3조 토큰 규모의 사전 훈련(pretraining) 코퍼스에서 전혀 나타나지 않은 4-gram 이상의 긴 스팬(span)을 자주 포함하고 있음을 관찰하였다. 예를 들어, NQ-Open 데이터셋에서 질문의 4-gram 중 21.1%, 5-gram 중 44.4%가 훈련 데이터에 전혀 등장하지 않는다. 많은 미출현(missing) n-gram들이 의미적으로는 전혀 난해하지 않은 평범한 표현들이다. 예를 들면, “asked king to send him”과 같은 표현이다.
표 4는 각 테스트 데이터셋에서 미출현 n-gram의 비율을 보고하고 있으며, 구체적인 예시는 부록 A.5에 제시되어 있다. 이러한 결과는 모델이 훈련 중에 명시적으로 접하지 못한 시퀀스를 빈번히 접하며, LLM이 일반적으로 인지된 것보다 훨씬 더 자주 시퀀스 암기에만 의존하지 않고 구성적(compositional) 일반화를 수행해야 함을 나타낸다.
7 결론 (Conclusion)
우리는 본 연구에서, 우리의 지식으로는 최초로, 어휘적 훈련 데이터 커버리지(lexical training data coverage)—즉, 훈련 코퍼스의 n-gram 빈도—가 대형 언어 모델(LLMs)의 환각(hallucination) 현상과 어떻게 관련되는지를 체계적으로 조사하였다.
AUROC 분석 및 분류기(classifier) 분석을 통해 얻은 우리의 결과는, **커버리지 기반 피처(coverage-based features)**가 개별적인 독립 예측 지표로서는 약한 편이지만, **로그 확률(log-probabilities)**과 결합할 때—특히 모델의 내재적 신뢰도(intrinsic confidence)가 불확실할 경우—보완적인 역할을 할 수 있음을 보여주었다.
이러한 결과는 어휘적 커버리지(lexical-coverage) 피처가 훈련 데이터 노출(training exposure)과 연결된, 데이터에 근거한(data-aware) 추가적인 신호(signal)를 제공함으로써 환각을 탐지하는 데 기여할 수 있음을 시사한다.
Reference
댓글
댓글 쓰기