NL-292, Factuality Enhanced Language Models for Open-Ended Text Generation, NeurIPS 2022
다음은 논문 「Factuality Enhanced Language Models for Open-Ended Text Generation」을 요약한 것입니다.
논문의 개요
대규모 사전 학습 언어 모델(Pre-trained Language Models, LMs)은 자연스러운 텍스트 생성 능력이 뛰어나지만, 사실에 부합하지 않는(nonfactual) 내용을 생성하는 문제가 있음. 본 연구는 오픈 엔드(Open-ended) 텍스트 생성 시 언어 모델이 생성하는 문장들의 사실 정확성(factual accuracy) 을 측정하고 향상시키는 방법을 연구함.
이를 위해, 논문은 다음 세 가지 주요 기여를 제시함:
-
사실성 평가를 위한 벤치마크(FACTUALITYPROMPTS) 및 평가 지표 구축
-
Factual-nucleus sampling이라는 새로운 디코딩 알고리즘 제안
-
Factuality-enhanced training이라는 새로운 학습 방식을 제안하여 기존 LM의 사실성을 크게 개선함
주요 연구 내용 및 방법론
1. FACTUALITYPROMPTS 벤치마크 및 평가 지표 설계
-
오픈 엔드 생성 문장을 위한 새로운 평가 세트 (FACTUALITYPROMPTS) 제작
-
평가 방법은 다음과 같이 구성됨:
-
Named-Entity Error (NEER): 생성된 문장에서 위키피디아 등 신뢰 가능한 문서에 나타나지 않은 Named Entity(NE)가 등장하면 오류로 간주.
-
Entailment Ratio (EntailR): 생성된 문장이 문서 내의 Ground-truth 문장에 의해 entail(함의)되는 정도로 측정.
-
-
자동 평가 방식은 human annotation(인간 평가)과 강한 상관성을 보였음.
2. Factuality 분석
모델 크기(126M ~ 530B), 프롬프트 유형, 디코딩 알고리즘에 따라 사실 정확성을 분석함.
-
모델 크기: 모델 크기가 클수록 factuality가 증가 (NEER: 126M에서 530B 모델로 확장 시 63.69% → 33.3%로 개선)
-
프롬프트 유형: factual한 프롬프트는 nonfactual한 프롬프트 대비 factuality가 높음
-
디코딩 알고리즘:
-
Greedy 디코딩은 factuality는 높지만 다양성(diversity)이 낮고 반복(repetition)이 많음
-
**Nucleus sampling (top-p)**은 다양성과 품질은 좋지만 factuality가 떨어짐 (Randomness로 인한 문제)
-
3. Factual-Nucleus Sampling 제안
-
기존의 top-p 샘플링은 randomness로 인해 사실성을 훼손할 수 있음.
-
문장 초반보다 문장 후반부에서 factuality가 더 중요하기 때문에 문장이 길어질수록 randomness를 줄이도록 nucleus sampling을 개선함.
-
다음 요소를 추가하여 Factual-nucleus sampling을 개발:
-
λ-decay: 생성 단계가 진행됨에 따라 top-p의 randomness (확률값 p)를 점진적으로 감소.
-
p-reset: 새 문장이 시작될 때마다 p를 초기값으로 리셋하여 diversity 손실 최소화.
-
ω-bound: λ-decay로 p값이 너무 작아지는 것을 방지하기 위한 하한값 설정.
-
-
이를 통해 greedy decoding과 top-p sampling의 장점을 모두 취할 수 있었으며, factuality와 diversity 간 trade-off를 효과적으로 관리할 수 있음을 보임.
4. Factuality-enhanced Training 제안
기존의 일반적인 추가 학습(domain-adaptive training)은 사실성 향상에 비효율적이므로, 다음 두 가지 방법을 제안:
-
TopicPrefix 추가: 각 factual 문서의 문장 앞에 문서명(주제)을 붙임으로써 잘못된 정보 연관성을 최소화함.
-
Sentence Completion Loss: 문장 후반부의 정보가 더 중요하다는 점을 이용하여, 문장의 초반보다 후반부를 예측하는 데 더 초점을 맞춘 손실함수를 설계함.
-
특히 SCHALF라는 문장 중간 지점을 pivot으로 잡는 간단한 전략을 제시함.
-
이 방법을 사용하면 1.3B 모델에서도 factuality가 크게 개선됨(NEER이 42.1% → 23.6%로 감소).
실험 결과 및 결론
-
제안한 Factual-nucleus sampling과 Factuality-enhanced training을 결합하면 530B 규모의 대형 모델에서 NEER이 33.3%에서 14.5%로 대폭 감소함.
-
Entailment ratio 역시 11.8%에서 25.5%로 향상됨.
-
다만 모델의 factuality가 증가하면 diversity가 약간 감소하는 trade-off가 존재함을 확인함.
연구의 의의와 향후 과제
본 논문은 open-ended text generation 분야에서 LM의 factuality 문제를 명확히 측정하고 개선할 수 있는 방법론을 최초로 제안한 연구로, 다음의 의미가 있음:
-
open-ended 텍스트 생성에서의 factuality 평가 및 향상 방법론 제시
-
factuality와 diversity 간의 trade-off를 관리하는 데 효과적인 전략 제안
향후 연구 과제로는 이러한 trade-off를 줄이고 더 정교한 factuality 향상 방안을 모색하는 것을 제안함.
이상으로 논문의 핵심 내용을 요약하였습니다. 추가적으로 구체적인 실험 결과 및 수치가 필요하거나 세부적인 기술 내용에 대한 질문이 있으시면 알려주세요.
논문의 「Factuality-enhanced Training」 방법을 더 자세히 정리하여 설명하면 다음과 같습니다.
1. 기존 훈련법의 문제점과 동기
사전 학습된 언어 모델(LM)은 주로 다음 토큰을 예측하는 autoregressive 방식으로 학습됩니다. 이는 모든 토큰을 균일하게 예측하도록 모델을 훈련하는 방식입니다.
이러한 방식의 문제점은 다음과 같습니다:
-
학습 데이터가 도메인별로 잘 정리되어 있지 않아 비사실적(nonfactual) 정보가 섞여 있을 수 있음.
-
문장 내의 초반부 토큰과 후반부 토큰이 모두 동일하게 취급되어, 문장 뒷부분에서 나타나는 사실적 정보를 정확하게 예측하는 데 어려움이 있음.
-
특히 서로 다른 문서에서 유사한 맥락(context)으로 등장하는 개체(Entity)들이 잘못 연결되어 Named Entity 혼동(mix-up) 또는 **사실 왜곡(fabrication)**이 발생함.
이러한 문제점을 해결하기 위해 **「Factuality-enhanced Training」**을 제안함.
2. Factuality-enhanced Training의 구성
논문에서는 다음의 두 가지 아이디어를 결합하여 학습을 개선합니다.
-
TOPICPREFIX (토픽 접두사)
-
Sentence Completion Loss (문장 완성 손실)
이 두 가지 요소를 순차적으로 설명합니다.
3. TOPICPREFIX (토픽 접두사)
(1) 기본 아이디어:
-
사실적 정보는 일반적으로 문서(document) 수준에서 존재함.
-
문서 내 개별 문장은 대명사(he, she, it 등)를 사용하기 때문에 독립적인 문장만 봤을 때 사실 정보를 완전히 파악하기 어려움.
예시:
“He previously served as a U.S. senator from Illinois.”
위 문장만 보면 누구인지 모름 (사실적 정보를 독립적으로 활용하기 어려움)
(2) TOPICPREFIX 제안:
-
각 문장 앞에 문서의 제목(Topic)을 붙여줌으로써 문장이 독립적으로 사실적 정보를 담을 수 있게 함.
-
주로 Wikipedia를 사실적 문서로 사용하며, Wikipedia 문서의 제목을 접두사(prefix)로 사용함.
예시 변형:
"Barack Obama:" “He previously served as a U.S. senator from Illinois.”
명확히 Barack Obama를 지칭함.
이 방식을 통해 잘못된 개체 연관성을 최소화할 수 있습니다.
4. Sentence Completion Loss (문장 완성 손실)
(1) 기본 아이디어:
-
언어 모델이 문장 생성 시 사실적 오류를 자주 범하는 이유는 문장 후반부의 정보가 사실성을 결정하기 때문입니다.
-
예시:
-
생성된 문장: “Samuel Witwer’s father is a Lutheran minister.”
-
이 문장은 "is" 이후의 정보가 틀렸기 때문에 전체가 비사실적(nonfactual)이 됨.
-
(2) Sentence Completion Loss 정의:
-
문장 내 모든 토큰을 동일하게 예측하도록 하지 않고, 문장 후반부의 토큰 예측에 더 집중하도록 loss를 설계합니다.
-
구체적으로 **문장 내의 특정 위치(pivot)**를 정하고, 이 위치 이전의 토큰 예측 손실은 zero-masking을 적용하여 무시하고, pivot 이후의 토큰만을 예측하도록 합니다.
Sentence Completion Loss 계산 예시
원래 문장: “Samuel Witwer’s father is a Lutheran minister.”
pivot 이후 (“father” 이후)의 토큰들만 loss에 반영함.
"Samuel Witwer's father" → zero-masking
"is a Lutheran minister." → loss 계산 대상
-
pivot 선정 방법은 3가지 제안됨:
-
SCHALF (추천 방식): 문장의 가운데 위치 (단순하면서도 효율적)
-
SCRANDOM: 문장의 25%~75% 위치에서 무작위로 pivot을 선정
-
SCROOT: Dependency Parsing을 통해 문장 내 ROOT relation 위치를 pivot으로 선정 (복잡하지만 효과는 SCHALF와 비슷)
-
실험 결과, 가장 간단한 SCHALF 방식이 성능과 효율성 면에서 가장 좋았으며, 기본 추천 방법임.
5. 실험 결과 요약
논문의 실험 결과에서, 1.3B 규모의 LM을 대상으로 위 방법을 적용한 결과 다음과 같은 사실성 개선 효과가 나타났습니다:
방법 | Named Entity Error(NEER) ↓ | Entailment Ratio(EntailR) ↑ |
---|---|---|
기본 Pretrained LM (baseline) | 42.1% | 10.1% |
TOPICPREFIX만 적용 | 27.6% | 8.7% |
TOPICPREFIX + Sentence Completion Loss | 23.6% | 17.4% |
즉, 두 방법을 모두 적용하면 Named Entity Error가 18.5%p 감소하고, Entailment Ratio가 7.3%p 상승하는 등 크게 개선됨을 확인하였습니다.
또한, 530B 규모의 대형 LM에서도 동일한 방법 적용 시:
-
Named Entity Error: **33.3% → 14.5%**로 감소
-
Entailment Ratio: **11.8% → 25.5%**로 상승
큰 폭의 개선을 보여줌으로써 대규모 모델에서도 효과가 있음이 입증되었습니다.
6. 결론 및 의미
Factuality-enhanced training은 다음과 같은 의의가 있습니다.
-
사실적 정보의 잘못된 연관성이나 문장 내 후반부의 사실적 오류를 줄이는 데 효과적임.
-
기존 모델의 추가 학습(fine-tuning)에 쉽게 적용 가능하며, 대규모 LM에서도 사실 정확성을 현저히 높임.
-
현실적으로 오픈엔드 생성 과제에서 factuality를 실용적으로 높일 수 있는 전략을 제시함.
다만, factuality가 향상될 때 diversity가 약간 감소하는 trade-off가 있음을 확인했으므로, 앞으로 이 균형을 더 잘 유지하는 방안 모색이 필요함을 제안했습니다.
이상으로 논문에서 제안한 **「Factuality-enhanced Training」**의 상세한 설명을 마치겠습니다. 추가 질문이 있다면 언제든지 말씀해 주세요.
논문에서 제안한 **「Factuality-enhanced Training」**의 실제 학습 데이터 예시를 들어 자세히 설명하겠습니다.
🔖 학습 데이터 예시
Wikipedia 문서가 다음과 같이 있다고 가정하겠습니다.
Wikipedia 문서 제목 (Topic)
"Barack Obama"
문서 내 문장들
"Barack Obama was born in Honolulu, Hawaii, in 1961."
"He served as the 44th president of the United States."
"Obama previously served as a U.S. senator from Illinois."
이 문서에서 TopicPrefix 방식을 적용하여 실제 언어 모델 학습을 위한 입력 데이터를 구성하면 다음과 같습니다:
원본 문장 | TopicPrefix 적용 후 학습 문장 |
---|---|
Barack Obama was born in Honolulu, Hawaii, in 1961. | Barack Obama: Barack Obama was born in Honolulu, Hawaii, in 1961. |
He served as the 44th president of the United States. | Barack Obama: He served as the 44th president of the United States. |
Obama previously served as a U.S. senator from Illinois. | Barack Obama: Obama previously served as a U.S. senator from Illinois. |
📌 실제 학습 과정에서의 데이터 형태
실제 언어 모델 훈련에서는 위와 같이 구성된 문장들을 다음과 같은 형태로 학습 데이터로 사용합니다:
Barack Obama: Barack Obama was born in Honolulu, Hawaii, in 1961.
Barack Obama: He served as the 44th president of the United States.
Barack Obama: Obama previously served as a U.S. senator from Illinois.
이 데이터에서 모델은 문장 앞의 "Barack Obama:" 라는 prefix를 통해 명확한 맥락(context)을 얻게 되며, 학습 시 문장 내의 "He" 또는 "Obama" 등의 대명사나 명확하지 않은 표현을 정확히 연관 지을 수 있게 됩니다.
📌 Sentence Completion Loss 적용 시 데이터 예시
추가적으로 Sentence Completion Loss를 적용할 때의 예시입니다.
예를 들어, 문장 중반을 pivot으로 정하는 SCHALF 방식을 사용하면, 다음과 같은 데이터가 됩니다:
원본 문장:
Barack Obama: Barack Obama was born in Honolulu, Hawaii, in 1961.
Pivot 위치: 문장 길이의 중간 (예시로 "born" 뒤라고 가정)
문장 전반부 (pivot 이전) | 문장 후반부 (pivot 이후, 학습 대상) |
---|---|
Barack Obama: Barack Obama was born | in Honolulu, Hawaii, in 1961. |
-
이 경우 전반부("Barack Obama: Barack Obama was born")의 예측 손실(loss)은 zero-masking하여 제외하고, 후반부("in Honolulu, Hawaii, in 1961.")의 토큰 예측에만 집중하여 loss를 계산합니다.
즉, 문장 뒷부분을 정확히 예측하는 데 더 많은 가중치를 두는 것입니다.
✅ 정리하면 다음과 같습니다:
-
학습 데이터는 Wikipedia의 문서 제목을 TopicPrefix로 하여, 문장 앞에 붙여 구성됩니다.
-
실제로는 다음과 같은 형태로 모델 학습 시 입력됩니다:
[TOPIC]: [Sentence]
-
추가적으로 sentence completion loss를 사용할 때는 pivot을 기준으로 뒷부분 예측에만 초점을 맞춰 학습하게 됩니다.
이러한 데이터 구성 방법은 모델이 사실적(factual) 내용을 정확히 예측하는 데 큰 도움을 주며, 논문에서 제시한 방법의 핵심입니다.
Reference
댓글
댓글 쓰기