NL-293, I Don’t Know: Explicit Modeling of Uncertainty with an [IDK] Token, NeurIPS 2024
◼ Comment
- 여기서 모델이 학습할때, 모르는 부분에 대해서는 모른다고 학습을 해야한다고 말한다
- 하지만 다른 연구처럼 명시적으로 I don't know와 같은 문구로 답변하는게 아니라, special token [IDK]을 만들고 이를 vocab에 넣어서 학습하겠다는 것이다
- 귿네 pretraining이라는게 원래 지식을 주입하는 거고, SFT에서 pretraining에 없는 지식을 강제로 학습할때 환각이 발생하기 때문에 IDK로 해결하려고 하는건데
- 여기서는 continual pretraining에서 IDK을 넣는것이다.
- SFT랑은 다르게, pretraining 학습데이터 (PILE)에서부터 학습을 진행한다
- 그래서 살짝 이상하다. pretraining은 원래 지식주입단계인데?
- 따라서 기존의 pretraining 된 모델에서 모르는 지식은 IDK로 처리하겠다는 것인데
- 완전히 IDK로 처리하는게 아니라 일부 확률을 IDK로 보겠다는 것이다
- 좀 더 디테일하게 가면
- 학습할 문서가 있을때, 순차적으로 토큰을 생성하도록 학습될거다
- 이때 토큰을 생성할 확률에 확신이 없으면, 그 만큼을 [IDK] 토큰쪽의 label로 옮기겠다는 것
- 생성할 토큰이 vocab에서 첫번째면 레이블이 [1,0,0,0]이다.
- 이때 모델이 생성할 확률이 [0.1, 0.5, 0.2, 0.2]이면 원래라면 이 확률이 [1, 0, 0, 0]에 가까워지도록 학습이 된다.
- 하지만 레이블을 [0.6, 0, 0, 0.4] 이런식으로 변형해서 학습을 하면, 이 상황에서는 4번째 [IDK]토큰이 생성되어야 한다는 시그널을 주는 것이다
- 몇 가지 하이퍼파라미터가 있는데 본문 참고
- 몇 개의 베이스라인이 있는데 일단 패스하고..
- 평가할때는 모델이 입력으로 불완전한 문장을 받고, 이를 사실적으로 완성하는 것으로
질문 형태 (원본) 문장 형태 (변환 후) 정답 "한국의 수도는 어디인가요?" "한국의 수도는 ___이다." 서울 "앨버트 아인슈타인이 태어난 곳은 어디인가?" "앨버트 아인슈타인은 ___에서 태어났다." 울름(Ulm) - 이런식으로 테스트하는데, 모르는 경우에는 IDK 토큰이 생성되는 것이라 보면된다
- 결과론적으로는 precision, recall, f1 측면에서 성능 향상이 일어난다고 보여준다
- 근데 이 방법은 뭔가 생성모델에서 큰 효과가 있을지는 애매하다고 보여짐
- Table 2에서 일반 평가데이터세트에 대한 평균을 보고 한것 같은데, 성능하락은 없다고는 한다
- 하지만 실제 사용 시나리오에서 I don't know라는 표현을 해줘야 할거 같다고 생각된다
- 테스트 시나리오에서, 중간에 [IDK]가 껴있으면? 이를 어떻게 판단할 것인가..
- 전체 문장의 [IDK] 생성확률을 평균내서 답변 못하는 질문인가? 이런거를 확인해야 하지 않을까
Abstract
대규모 언어 모델(LLMs)은 실제 세계의 지식을 잘 포착하며, 다양한 다운스트림 작업에서 뛰어난 성능을 보인다. 그러나 최근의 발전에도 불구하고 이러한 모델들은 흔히 '환각(hallucinations)'이라고 알려진 문제에 취약하며, 이로 인해 원치 않거나 사실과 다른 텍스트를 생성하는 경향이 있다.
본 연구에서는 이러한 환각 현상을 해결하기 위해 새로운 보정(calibration) 방법을 제안한다. 우리는 모델의 어휘(vocabulary)에 특별한 [IDK] ("모르겠다") 토큰을 추가하고, 잘못된 예측 시 이 [IDK] 토큰으로 확률 질량(probability mass)을 이동시키는 목적 함수를 도입한다. 이를 통해 모델은 출력 결과에서 불확실성을 명시적으로 표현할 수 있다.
우리는 제안된 방법을 다양한 모델 아키텍처와 사실적(factual) 다운스트림 작업에 걸쳐 평가하였다. 그 결과, 본 방법으로 학습된 모델들은 이전에 틀렸던 곳에서 불확실성을 표현할 수 있게 되었으며, 이 과정에서 모델이 가진 지식의 손실은 아주 적었다.
우리는 또한 본 접근법의 다양한 변형에 대해 광범위한 제거(ablation) 연구를 수행하고, 제안된 방법의 정밀도-재현율(precision-recall) 트레이드오프에 대한 상세한 분석을 제공한다.
1 서론
대규모 언어 모델(Large Language Models, LLMs)은 방대한 양의 텍스트에 대해 사전 학습되며, 언어를 이해하고 생성하는 능력을 갖춘다. 이러한 학습 텍스트에는 책, 신문, 위키백과, 과학 논문 등 인간이 작성한 지식의 큰 부분이 포함되어 있다. 이 과정에서 LLM은 학습 중에 접한 정보의 놀라운 양을 기억하게 되며, 이를 통해 실제 세계의 지식을 모델의 파라미터에 인코딩할 수 있어 지식 기반(knowledge base)처럼 작동할 수 있다 [Petroni et al., 2019; Roberts et al., 2020; Cohen et al., 2023a; Pan et al., 2023].
이러한 특성 덕분에 LLM은 폐쇄형 질문응답(closed-book question answering) [Brown et al., 2020; Roberts et al., 2020]이나 정보 검색 [Tay et al., 2022]처럼 실제 세계의 지식을 요구하는 다양한 환경에서 활용될 수 있다.
하지만 LLM은 여전히 흔히 “환각(hallucinations)”이라 불리는 문제에 취약하며, 이는 모델의 성능과 신뢰성을 심각하게 저해한다 [Ji et al., 2023; Manduchi et al., 2024]. 환각의 예로는 다음과 같은 것들이 있다: 사실과 다른 내용 [Maynez et al., 2020; Devaraj et al., 2022; Tam et al., 2023], 일관성 없는 내용 [Elazar et al., 2021; Mündler et al., 2023], 자기 모순적인 내용 [Cohen et al., 2024], 또는 출처가 명확하지 않은 텍스트 [Bohnet et al., 2022; Rashkin et al., 2023; Yue et al., 2023].
이러한 환각 문제를 해결하기 위한 대표적인 접근 방식은 모델 보정(model calibration)이다 [Guo et al., 2017a; Brundage et al., 2020]. 이는 모델의 예측 신뢰도를 실제 품질과 잘 맞도록 조정하는 방식으로, 모델이 불확실성을 명시적으로 표현하거나 때로는 아예 응답을 회피하게 해준다. 기존의 많은 기법들이 보정 성능 향상에 기여했지만 [Geng et al., 2024], 여전히 부족한 면이 있다 [Chen et al., 2023].
본 논문에서는 LLM이 불확실성을 명확히 표현할 수 있도록 돕는 새로운 목적 함수를 제안한다.
- 우리는 “[IDK] (I Don’t Know)”라는 특별한 토큰을 모델의 어휘에 추가하고, 기존의 다음 토큰 예측용 크로스 엔트로피(cross-entropy) 손실 함수를 수정하여, 불확실성이 클 경우 해당 확률 질량을 [IDK] 토큰으로 이동시키는 방식을 도입한다.
- 특히 모델이 정답을 맞히지 못했을 때, 예측된 로짓(logits)을 기반으로 계산된 불확실성 계수(Uncertainty Factor)에 따라 일부 확률 질량을 [IDK]에 할당한다. 우리는 이 방식을 “IDK-tuning”이라 명명한다.
이 방법은 기존 연구와 달리 지속적 사전학습(continued pretraining) 과정에서 개입하며, 별도의 레이블이 없는 학습 데이터만으로 적용 가능하다.
- 또한 모델이 이미 불확실성 표현을 학습한 상태로 이후 특정 작업에 대해 미세 조정(finetuning)될 수 있는 유연함을 가진다.
우리는 다양한 모델 아키텍처 및 규모에 대해 IDK-tuning을 수행하고, 사실적(factual) 다운스트림 작업에서 이를 평가하였다. 그 결과, IDK-tuning된 모델은 이전보다 오류 가능성이 높은 지점에서 불확실성을 표현하고, 사실적 정확도(factual precision)는 향상된 반면 지식 재현율(recall)의 감소는 미미했다. 또한, IDK 목적 함수의 구성 요소에 대해 광범위한 제거 실험(ablation study)을 수행하고, 최적화 과정에 미치는 영향을 분석하였다. 끝으로, IDK-tuning이 장문 생성과 같은 일반적인 언어 모델링 능력을 해치지 않음을 보여준다.
1 소개
대형 언어 모델(Large Language Models, 이하 LLM)은 방대한 양의 텍스트를 사전 훈련하여 언어를 이해하고 생성하는 모델이다. 이 훈련 데이터는 책, 신문, 위키백과 및 과학 논문과 같은 방대한 인류의 지식을 포함하며, LLM은 이러한 사전 훈련 과정에서 상당한 양의 정보를 내재화하여 매개변수에 현실 지식을 저장하고 지식 베이스와 같은 역할을 수행할 수 있다[Petroni et al., 2019; Roberts et al., 2020; Cohen et al., 2023a; Pan et al., 2023]. 이러한 특성 덕분에 LLM은 폐쇄형 질의응답(closed-book question answering) [Brown et al., 2020; Roberts et al., 2020] 및 정보 검색 [Tay et al., 2022] 등 현실 지식을 요구하는 다양한 환경에서 활용 가능하다.
그러나 LLM의 대중성에도 불구하고, 흔히 "환각(hallucinations)"이라고 부르는 현상에 취약하며, 이는 성능과 신뢰성을 심각하게 저하시킨다[Ji et al., 2023; Manduchi et al., 2024]. 환각의 예시로는 사실상 틀린 정보[Maynez et al., 2020; Devaraj et al., 2022; Tam et al., 2023], 일관성 없는 정보[Elazar et al., 2021; Mündler et al., 2023], 자기모순적 정보[Cohen et al., 2024], 혹은 출처를 밝힐 수 없는 정보[Bohnet et al., 2022; Rashkin et al., 2023; Yue et al., 2023] 등이 있다.
이러한 환각 문제를 해결하기 위해 널리 사용되는 방법 중 하나는 모델 보정(model calibration)이다[Guo et al., 2017a; Brundage et al., 2020]. 모델 보정의 목적은 모델이 생성하는 예측의 신뢰도를 실제 품질과 더 잘 일치하도록 조정하는 것이다. 이러한 보정은 LLM이 명시적으로 불확실성을 표현할 수 있도록 해주며, 이에 따라 모델은 자신의 응답을 제한하거나 답변을 거부하는 것이 가능해진다. 제안된 많은 보정 방법들이 모델의 보정 능력을 향상시키기는 했으나[Geng et al., 2024], 여전히 완벽하지 않다는 평가를 받고 있다[Chen et al., 2023].
본 논문에서는 LLM이 명시적으로 불확실성을 표현할 수 있도록 하는 새로운 목적 함수를 제안한다.
- 이를 위해 새로운 특별 토큰인
[IDK]
(I Don't Know, "모르겠다")를 언어 모델의 어휘에 추가한다. - 지속적인 사전훈련(continued pretraining) 단계에서, 기존의 교차 엔트로피(cross-entropy) 목적 함수를 수정하여, 다음 토큰 예측에서 불확실성을
[IDK]
토큰에 확률 질량(probability mass)을 부여하는 방식으로 나타낸다. - 구체적으로, 모델이 정답을 예측하지 못할 때마다 우리는 목표의 확률 질량 일부를 모델이 예측한 로짓(logit)을 기반으로 계산된 불확실성 계수(Uncertainty Factor)를 통해
[IDK]
토큰으로 옮긴다. - 본 논문에서는 이러한 방법을
IDK-tuning
으로 명명한다.
우리가 제안한 IDK 목적 함수는 이전 연구와는 다르게, 특정 레이블 데이터에 의존하지 않고, 사전 훈련 과정에서 언어 모델링 작업 중에 개입한다는 점에서 차이가 있다.
- 이로 인해 모델은 향후 특정 작업에 대한 미세 조정(finetuning) 단계에서도 불확실성을 표현하는 방법을 이미 학습한 상태가 된다.
- pretraining은 지식을 배우는 단계니까
- SFT에서 IDK을 컨트롤하는게 더 적합한거 같긴한데
본 연구에서는 다양한 모델 아키텍처와 크기를 가진 모델들에 대해 IDK-tuning을 수행한 후, 다양한 사실 기반 다운스트림 작업에서 평가하였다. 실험 결과, IDK-tuning된 모델들은 기본 모델에 비해 사실적 정확성(factual precision)이 크게 증가한 반면, 이미 포함된 지식의 재현율(recall)은 약간만 감소하였다. 또한 IDK 목적 함수의 개별 구성요소에 대한 광범위한 제거 실험(ablation study)을 수행하고, 최적화 동역학(optimization dynamics)에 미치는 영향을 분석하였다. 마지막으로, IDK-tuning이 모델의 일반적인 언어 모델링 능력(예: 긴 텍스트 생성 등)에 해를 끼치지 않는다는 점을 보였다.
요약하자면, 본 논문의 주요 기여는 다음과 같다:
-
모델 예측에서의 불확실성을 특별한
[IDK]
토큰의 확률 질량으로 나타내는 새로운 사전 훈련 목적 함수(IDK 목적 함수)를 제안하였다. -
다양한 구조 및 크기를 가진 모델들을 사용해 광범위한 실험을 진행하고, 사실 기반 질의응답 등의 다양한 다운스트림 작업에서 IDK-tuning의 효과성을 입증하였다.
-
IDK 목적 함수의 개별 요소 및 일반적 언어 모델링 능력에 미치는 영향에 대해 광범위한 분석을 제공하였다.
2 IDK 튜닝(IDK-tuning)
우리의 목표는 모델이 자신이 모르는 것을 인지하고 이를 효과적으로 표현할 수 있도록 훈련시키는 것이다. 이를 위해 모델의 어휘에 [IDK]
라는 특별한 새로운 토큰을 추가한다.
- 모델은 자신의 예측에서 이
[IDK]
토큰에 확률 질량(probability mass)을 할당함으로써 불확실성을 표현하도록 의도된다. - 실제로 우리는 모델의 사전 훈련 목표(pretraining objective)를 조정하여, 모델이
[IDK]
토큰을 효과적으로 활용하는 법을 배우도록 유도한다. - 우리의 목적 함수는 불확실성에 대한 별도의 주석(annotation)이나 특별히 제작된 데이터셋(예: Q&A 등)을 필요로 하지 않는다.
대신, 사전 훈련 데이터에서 사전 훈련 목적 함수가 이미 포착하고 있는 불확실성을 활용하여, 불확실한 상황에서 [IDK]
토큰에 확률 질량을 할당하도록 유도한다. 이는 궁극적으로 질의응답(Q&A)과 같은 다운스트림 작업에서도 일반화되어 불확실성을 표현할 수 있게 될 것으로 가정하며, 후속 실험에서 이를 검증하였다.
다음으로, [IDK]
토큰과 우리의 훈련 방법의 기술적 세부 사항을 자세히 설명한다.
2.1 [IDK]
토큰
새롭게 도입한 [IDK]
토큰의 목적은 모델이 지식 부족을 나타낼 수 있도록 하는 것이다. 이상적으로, 모델이 잘못된 예측을 하는 상황마다 이 토큰을 대신 예측하기를 원한다. 즉, 잘못된 토큰을 생성하는 대신 [IDK]
토큰을 생성하도록 함으로써 모델 스스로 자신의 불확실성을 명확히 표현할 수 있도록 하는 것이다. 이는 모델이 지식의 부족을 표현하는 방식이며, 사용자는 이러한 출력을 보고 이를 무시할 수도 있다. 모델이 틀린 예측 대신 [IDK]
토큰을 선택할수록, 모델의 정밀도(precision)는 향상될 것이다.
예를 들어, 사실적 문장 완성(Factual Sentence Completion)이라는 작업 환경을 생각해보자. 이 환경에서 모델은 불완전한 문장을 입력으로 받고, 이를 사실에 기반하여 완성하는 것이 기대된다.
예컨대, 입력 문장이 "파리는 ____의 수도이다"라면, 모델의 올바른 출력은 "프랑스"여야 한다. 만약 모델이 이 상황에서 "독일"을 예측하려 한다면, [IDK]
토큰을 대신 사용하는 것이 더 바람직하다.
이렇게 하면 잘못된 답변을 제공하는 대신 답변을 회피하여 사실적 정확성을 향상시킬 수 있다.
- 물론
[IDK]
를 거의 항상 무차별적으로 예측한다면 정밀도는 높겠지만 실제 활용 측면에서는 도움이 되지 않는다. - 따라서 제안하는 방법의 성능을 평가할 때는 반드시 올바른 답변에 대한 재현율(recall)도 함께 고려해야 한다.
- 본 논문의 4장에서 정밀도와 재현율 모두를 분석할 것이다.
우리는 이 새로운 [IDK]
토큰을 모델의 어휘(vocabulary)에 추가하고, 그 임베딩(embedding)을 무작위로 초기화한다.
- 임베딩은 훈련 과정에서 다른 모델 매개변수들과 함께 최적화된다.
- 다음 절에서는 우리가 제안하는 IDK 목적 함수를 상세히 기술할 것이다.
2.2 IDK 훈련 목적 함수
우리는 기존의 교차 엔트로피(cross-entropy) 목적 함수를 수정하여, 모델이 올바른 토큰을 예측하지 못할 때마다 일부 확률 질량(probability mass)을 [IDK]
토큰으로 이동하도록 유도한다.
이러한 유도는 모델 예측의 불확실성 정도에 따라 커지는 불확실성 계수(Uncertainty Factor), 즉 λ(람다) ∈ [0, 1]에 의해 조정되며, 모델이 정확한 토큰을 예측할 때는 정확히 0이 된다.
이제 우리가 수정한 교차 엔트로피 목적 함수의 구체적인 정의를 살펴보자.
- 각 예측에서의 정답(골드 토큰)을
[gold]
로 표시하며, 모델 예측에서 임의의 토큰[tok]
에 부여된 확률 질량을prob(y_t=[tok]|y_{<t}, x)
로 나타낸다. - 또한
[IDK]
토큰에 대한 원-핫(one-hot) 타겟 벡터는1_{[IDK]}
로, 정답 토큰([gold]
)에 대한 원-핫 벡터는y
로 표기한다. 수정된 목적 함수는 다음과 같이 정의된다:
- 원래는 예측 분포와 정답 원핫 레이블과 CE loss 계산하지만
- 만약 정답을 잘 예측못하는 경우 => lambda값이 1에 가까워지면서 기존 정답 token외에도 [IDK] 토큰이 생성되도록 일정부분 학습을 하게하는 것
- lambda가 어떻게 계산되는지는 밑에서 설명
모델이 예측에 불확실한 경우(정답을 맞추지 못할 경우), 목표(target)가 정답([gold]
)에서 벗어나 [IDK]
토큰 방향으로 이동하도록 유도한다.
- 이 이동 정도는 λ로 조정된다.
- 모델이 정확한 예측을 하면 λ는 0이 되어, 위 식은 일반적인 교차 엔트로피 손실로 축소된다.
- 즉, 모델이 정답을 맞추면
L_{IDK}
는 단순히 올바른 예측에 대한 신호만 제공하며, 모델이 틀린 예측을 하면 정답을 맞추라는 신호와 함께 불확실성을 표현하라는 추가적 신호를 제공한다. - 이제 불확실성 계수 λ의 구성을 상세히 설명한다.
불확실성 계수 λ (The Uncertainty Factor)
λ는 [0, 1] 범위의 스칼라 값이다. 직관적으로 λ가 1에 가까울수록 모델은 더 불확실하다는 것을 나타내며, 정확한 예측을 할 때는 0이 되어야 한다. 이러한 직관을 바탕으로, λ를 정답([gold]
) 토큰에 할당된 확률 질량을 모델이 예측한 최대 확률로 나눈 값으로 정의한다:
- 여기서 Π ∈ [0, 1]는 제안된 목적 함수의 영향을 조정하는 하이퍼파라미터이다.
- 즉 gold token을 예측한 확률이 top-1이 아니면, lambda=0이 아니다
- top-2,3,.. 이렇게 떨어지면 top-1에 비해 얼마나 덜 예측되냐?를 살펴보고 lambda을 결정함
- top-100 이렇게 gold token을 모를수록 lambda=pi에 가까워지는데, pi=0.5로 제한을 걸어서 최대 [IDK] 토큰을 학습할 확률을 0.5로 제한함
- 따라서 학습 레이블은 [0.6, 0, 0, 0.4]가 되고 이것으로 CE loss 가 계산이 되는 형식
정답 토큰의 확률이 최대 확률과 비슷할 경우 λ는 0에 가깝다.
- 모델이 정확한 예측을 하면 (정답 토큰이 최대 확률을 가지게 되므로) λ는 정확히 0이 되고, 이로 인해 위 식(1)은 표준 교차 엔트로피 손실로 축소된다.
[IDK]
로 이동하게 된다. 하이퍼파라미터 Π는 [IDK]
토큰으로 이동할 수 있는 목표 확률 질량의 상한을 정한다.
- 예를 들어, Π = ½로 설정하면 최대 목표 확률 질량의 절반까지만
[IDK]
로 이동 가능하며, 나머지 절반은 여전히 정답([gold]
)에 남게 된다. - 실제 실험에서는 별도의 튜닝 없이 Π를 ½로 설정한다.
- 이는
[IDK]
토큰이 정답보다 더 좋은 예측이 되는 것을 방지하면서도, 모델이 불확실할 때[IDK]
를 예측하도록 충분한 신호를 제공하기 위함이다. Π의 영향력에 대한 추가적인 분석은 본 논문의 4.2절에서 수행한다.
불확실성 정규화 (Uncertainty Regularization)
목적 함수 설계에서 중요한 고려사항은 모델이 잘못된 긍정 사례(false positives)로 [IDK]
토큰에 너무 많은 확률 질량을 부여하여 잘못된 답변을 회피하는 쪽으로 치우치는 것을 방지하는 것이다. 따라서 우리는 다음과 같은 잘못된 긍정 방지 정규화 항(L_{FP-reg})을 추가한다:
이 항은 모델의 예측이 올바를 때만 추가되며, 모델이 이미 정답을 알고 있는 상황에서는 [IDK]
토큰에 부여되는 확률 질량을 최소화하도록 유도한다. 이는 모델이 자신이 아는 정답을 무작정 거부하는 것을 방지하여, 모델의 재현율(recall) 감소를 최소화하도록 설계되었다. 이 정규화 항(L_{FP-reg})의 효과에 대한 추가적인 분석 역시 본 논문의 4.2절에서 수행한다.
정답을 제대로 알고있는 상황이면, [IDK]을 학습할 필요가 없기 때문에 [IDK]에 배정될 확률을 낮게 하고 싶은 것
- 따라서 prob(yt=[IDK]|y<t, x)가 작아지게끔 loss을 추가로 거는 것
최종 손실 함수 (The final loss)
위의 모든 목적 함수와 정규화를 결합하면 최종적으로 다음과 같은 IDK 목적 함수를 얻는다:
3 실험
우리는 앞서 제안한 IDK 목적 함수를 사용하여 다양한 사전 훈련된 모델들이 새롭게 추가된 [IDK]
토큰을 활용하도록 미세 조정(tuning)한다. 우리는 이 과정을 **IDK 튜닝(IDK-tuning)**이라고 부른다. 이후 IDK 튜닝을 거친 모델들의 성능을 일반적으로 널리 사용되는 사실 기반(factual) 벤치마크 데이터셋에서 평가하여, 우리의 방법이 사실적 정확성(factuality)을 향상시키면서 기존 지식의 재현율(recall) 감소는 매우 적다는 점을 보여준다. 또한, 모델의 크기가 우리의 방법이 효과적으로 작동하는 데 큰 역할을 한다는 점을 확인한다.
우리가 사전 훈련된 모델을 처음부터 다시 훈련하는 대신, 기존에 훈련된 모델을 추가적으로 계속해서 훈련(continual training)하는 방식을 선택한 이유는 두 가지이다:
- (i) 현재 벤치마크에서 경쟁력 있는 성능을 보이는 모델을 처음부터 새롭게 훈련하는 데 드는 계산 비용이 지나치게 크다.
- (ii) 이미 강력한 성능을 보이는 언어 모델을 기반으로 하면, 모델이 사전에 갖추고 있는 초기 보정(calibration)을 활용하여 불확실성 계수(Uncertainty Factor)를 효과적으로 얻을 수 있기 때문이다.
3.1 IDK 튜닝 환경 설정
본 실험에서 우리는 IDK 튜닝을 위한 기본(base) 모델로 다음 모델들을 사용한다:
-
bert-base-cased [Devlin et al., 2019]
-
mistralai/Mistral-7B-v0.1 [Jiang et al., 2023]
-
EleutherAI/pythia-70m ~ 2.8B [Biderman et al., 2023]
Mistral-7B-v0.1 모델에 대한 IDK 튜닝 과정에서, 우리는 The Pile 데이터셋[Gao et al., 2020]에서 무작위로 샘플링한 데이터를 사용하며, 문맥 길이(context length)는 4,096으로 설정하였다.
- 학습 데이터는 오픈된 pretraining 데이터인듯
문맥 길이를 모두 채우기 위해 예제를 연속적으로 연결(example packing)하여 사용하였다. 최대 학습률(learning rate)은 로 설정하였으며, 전체 훈련 스텝의 10%를 선형 워밍업(linear warmup)에 사용하고, 이후 까지 코사인 감소(cosine decay)를 적용하였다. 배치 크기(batch size)는 256이며, 가중치 감쇠(weight decay)는 0.05, 그래디언트 클리핑(gradient clipping)은 1.0, AdamW 옵티마이저의 베타 값은 (0.9, 0.95)로 설정하였다. 총 1,024 옵티마이저 스텝으로 훈련했으며, 전체 사용된 데이터는 약 10억(1B) 토큰에 해당한다.
Pythia-70m에서 2.8B 모델까지의 훈련에도 동일한 하이퍼파라미터를 사용했으나, 모델의 위치 임베딩(positional embedding) 크기에 맞추어 문맥 길이를 2,048로 줄였다. 또한 Mistral-7B-v0.1과 pythia-410m ~ 2.8B 모델의 사전 훈련 방식에 맞추기 위해 혼합 정밀도(mixed-precision) 방식인 bfloat16과 float16을 사용했다. 그러나 pythia-70m, pythia-160m, bert-base-cased 모델은 우리의 손실 함수 수정과 무관하게 예측 로짓(logits)에서 NaN 오류가 발생하였다. 이 모델들은 크기가 비교적 작아 충분한 자원이 있었기에 혼합 정밀도 대신 순수 float32 방식으로 변경하여 훈련을 진행하였다. 또한 bert-base-cased 모델의 경우, 마스크된 언어 모델링(Masked Language Modeling, MLM) 방식을 사용했으며[Devlin et al., 2019], 각 입력마다 하나의 토큰을 무작위로 마스킹하였다.
3.2 평가 설정
평가 데이터(Evaluation Data)
우리는 다음과 같은 데이터셋들을 사용하여 평가를 수행했다:
-
LAMA [Petroni et al., 2019]
-
TriviaQA [Joshi et al., 2017]
-
PopQA [Mallen et al., 2022]
이 데이터셋들은 다양한 유형의 쿼리를 포함하고 있다. 예를 들어 TriviaQA는 상식 퀴즈 질문들을 포함하고 있으며, LAMA와 PopQA는 주어-관계-목적어(subject-relation-object)의 형태로 구성된 사실적 지식을 쿼리 형태로 제시한다. 우리는 문맥(context)이나 선택지(answer choices)를 전혀 제공하지 않는 폐쇄형(closed-book) 자유응답(open-ended) 설정을 사용한다.
중요한 점으로, TriviaQA와 PopQA의 입력이 질문(question)의 형태로 제공되는데, 이를 GPT-4를 사용하여 문장 완성(sentence completion) 형태로 변형하였다. 구체적으로, GPT-4에게 몇 가지 수작업으로 만든 예시를 주고, 질문을 자연스러운 문장 형태로 재구성하도록 지시했다. 자세한 내용과 전체 프롬프트(prompt)는 부록 C에서 확인할 수 있다.
또한, 다중 선택(multiple-choice) 질문 평가를 위해 EleutherAI의 lm-evaluation-harness [Gao et al., 2023]를 사용하였으며, 이 때 사용한 데이터셋은 다음과 같다:
-
ARC [Clark et al., 2018]
-
HellaSwag [Zellers et al., 2019]
-
MMLU [Hendrycks et al., 2020]
-
TruthfulQA [Lin et al., 2022a]
-
WinoGrande [Sakaguchi et al., 2021]
-
GSM8k [Cobbe et al., 2021]
베이스라인(Baselines)
각 평가 데이터셋에서 우리는 IDK 튜닝 모델을 추가 훈련을 하지 않은 원래의 기본(base) 모델과 비교하였다. 추가적으로 다음의 세 가지 베이스라인을 고려하였다:
-
Confidence Threshold(확신 임계값) [Yoshikawa and Okazaki, 2023]:
-
언어 모델이 예측한 첫 번째 토큰의 확률을 확신도(confidence)의 척도로 간주한다.
-
해당 토큰의 확률이 미리 설정한 특정 임계값(threshold)을 초과하면 예측을 유효하다고 보고, 그렇지 않으면 모델이
[IDK]
토큰과 유사한 불확실성을 표현한 것으로 간주한다. -
개발 세트(development set)를 사용하여 최적의 임계값을 찾는 하이퍼파라미터 튜닝을 수행하였다.
-
-
P(True) [Kadavath et al., 2022]:
-
입력 문장을 완성한 후, 모델 자신에게 그 문장의 사실성 여부를 묻는 방식이다.
-
즉, 입력 문장(I)에 대해 모델이 완성한 문장(A)을 결합하여 "Please answer either with ‘true’ or ‘false’ only. Is it true that: IA"라고 질문한다.
-
만약 모델의 대답이 ‘true’가 아니라면, 모델이 답을 모르고 있다는 표시로 간주한다.
-
-
Semantic Entropy(의미적 엔트로피) [Kuhn et al., 2023; Aichberger et al., 2024]:
-
모델로부터 K개의 문장을 샘플링한 후, 최신의 의미 임베딩(semantic embedding)을 이용하여 인코딩하고 클러스터링한다.
-
가장 큰 클러스터의 크기가 K/2를 초과하면, 그 클러스터에서 무작위로 하나의 문장을 골라 모델의 답으로 간주하고, 그렇지 않은 경우 모델이 모르는 것으로 간주한다.
-
평가 지표(Evaluation)
우리는 모델이 [IDK]
토큰을 얼마나 잘 사용하는지를 평가하기 위해 다음과 같은 지표들을 측정한다:
-
정밀도(Precision): 모델이
[IDK]
가 아닌 다른 토큰으로 완성하려고 시도한 문장들 중, 실제로 사실적으로 정확하게 완성된 비율이다. 즉, 모델이 충분히 확신을 가지고 사실적으로 완성한 문장 중 정확한 비율이다. -
재현율(Recall): 데이터셋 전체 문장 중, 모델이 사실적으로 정확하게 완성한 문장의 비율이다. 이는 모델이 전체 평가 집합(test set) 내에서 가진 지식을 얼마나 잘 기억해내는지를 측정한다.
-
F1 점수(F1-score): 정밀도와 재현율의 조화 평균(harmonic mean)이다. 추가 보정(calibration)을 적용하지 않은 기본 모델의 경우, 정밀도, 재현율, F1 점수 모두 일반 정확도(accuracy)와 동일하다.
추가적으로 4.2절에서는 IDK 튜닝된 모델이 [IDK]
를 예측할 때의 패턴을 분석하기 위해 두 가지 지표를 더 사용한다:
-
IDK 재현율(IDK recall): 기본 모델이 실제 정답을 예측하지 못한 경우 중에서, IDK 튜닝된 모델이
[IDK]
를 올바르게 예측한 비율이다. -
IDK 오류율(IDK error rate): 기본 모델이 실제 정답을 올바르게 예측한 경우 중에서, IDK 튜닝된 모델이 잘못하여
[IDK]
를 예측한 비율이다.
4 결과
우리는 제안한 IDK 튜닝 방법이 기존 지식을 크게 손상시키지 않으면서도 사실적 정확성(factuality)을 효과적으로 개선할 수 있다는 결과를 아래에 제시한다.
4.1 주요 결과
Mistral-7B-v0.1 모델의 결과:
표 1은 사실 기반 폐쇄형 문장 완성(closed-book sentence completion) 데이터셋에서 우리 모델 중 가장 큰 규모인 Mistral-7B-v0.1의 성능을 보여준다.
결과는 IDK 튜닝된 Mistral-7B-v0.1 모델이 훨씬 더 높은 정밀도(precision)를 나타내고 있음을 보여준다. 즉, 모델이 잘못된 사실을 포함한 문장 완성을 현저히 덜 시도하고, 대신 [IDK]
토큰에 더 많은 확률 질량을 할당한다. 그러나 몇몇 과제에서는 지식에 대한 재현율(recall)이 약간 감소하는 경향을 보였다. 종합적으로 볼 때, 평균 F1 점수는 증가하였다.
표 2는 lm-eval-harness를 사용하여 평가한 다중 선택(multiple-choice) 질문 데이터셋에 대한 평균 결과를 보여준다. 여기에서도 유사한 경향을 보이지만, 베이스라인 대비 정밀도의 증가 폭은 다소 작다. 이는 모델이 다중 선택 질문과 같은 경우에는 상대적으로 더 확신을 가지고 답하는 경향이 있음을 나타낸다.
IDK 튜닝의 확장성(Scaling behavior of IDK-tuning):
우리는 IDK 튜닝이 성공적으로 동작하는 데 모델 크기가 어떤 영향을 미치는지 추가적으로 조사하였다. 이를 위해 3.1절에 설명된 방법으로 pythia-70m부터 pythia-2.8B까지의 각 모델에 대해 IDK 튜닝을 수행하였다.
그림 2는 pythia-70m부터 2.8B 모델과 함께 Mistral-7B-v0.1을 포함하여 모든 사실 기반 폐쇄형 문장 완성 데이터셋에서의 평균 정밀도, 재현율, F1 점수를 모델 크기 별로 나타낸 그래프이다.
- 이를 통해 모델 크기가 증가할수록 재현율과 F1 점수가 로그 선형(log-linear)으로 명확히 증가하는 추세를 관찰할 수 있었다.
- 또한, IDK 튜닝된 모델의 정밀도는 모델 크기가 증가함에 따라 소폭 증가하는 경향을 보였다.
- 우리가 조사한 가장 작은 두 모델(pythia-70m 및 pythia-160m)의 경우, IDK 튜닝이 효과적이지 않았는데, 이는 IDK 튜닝 후 모델의 재현율이 급격히 하락했기 때문이다. 이에 대해서는 4.3절에서 보다 자세히 분석하였다.
4.2 Ablations (제거 실험)
이 절에서는 제안된 방법의 각 구성 요소의 효과를 분석하기 위해 ablation(제거 실험)을 수행하였다. 다음 주요 사항을 분석하였다:
-
불확실성 계수 λ의 적응성 분석
-
λ는 모델이 예측한 확률 분포에 따라 동적으로(adaptive) 결정된다.
-
고정된 λ를 사용하는 경우와 비교하여, 적응적인 λ를 사용할 때 잘못된 IDK 예측(IDK error rate)이 더 낮아졌으며, IDK를 올바르게 사용하는 비율(IDK recall)의 감소는 크지 않았다.
-
-
잘못된 긍정 방지 정규화(LFP-reg) 효과 분석
-
LFP-reg 항을 추가하면 잘못된 IDK 예측을 줄일 수 있었으며(IDK error rate 감소), IDK를 올바르게 사용하는 비율(IDK recall)도 크게 희생하지 않았다.
-
-
상한 하이퍼파라미터 Π의 효과
-
Π 값이 클수록 IDK를 올바르게 사용하는 비율(IDK recall)이 증가했으나, 잘못된 IDK 예측도 약간 증가했다.
-
적응적 λ 및 LFP-reg을 함께 사용하면, Π 증가에 따른 잘못된 IDK 예측 증가를 어느 정도 완화할 수 있었다.
-
-
The Pile 데이터에서 얻는 추가 지식 효과 분석
-
IDK 튜닝 과정에서 사용된 추가 사전훈련 데이터(The Pile)에서 모델이 새로운 지식을 학습했을 가능성을 점검하였다.
-
별도의 교차 엔트로피 손실을 사용하여 동일 데이터를 훈련한 모델과 성능을 비교한 결과, 추가적인 데이터 사용 자체가 IDK 튜닝 성능 향상의 원인은 아니라는 점을 확인했다.
4.3 Analysis of Optimization Stability (최적화 안정성 분석)
이 절에서는 제안한 IDK 목적 함수를 최적화할 때 발생할 수 있는 안정성 문제를 분석하였다:
-
IDK로의 수렴 문제(Collapse to [IDK])
-
단순히 IDK 목적 함수로 교체하면 모델이 모든 경우에 무조건 [IDK]를 예측하는 수렴 현상이 발생할 수 있다.
-
이를 방지하기 위해 위에서 언급한 상한 하이퍼파라미터(Π)와 잘못된 긍정 방지 정규화(LFP-reg) 항을 설계하였다. 실제로 이러한 요소들로 인해 대부분의 훈련은 안정적으로 진행되었다.
-
-
소규모 모델의 불안정성 문제
-
특히 매우 작은 규모의 모델(pythia-70m, pythia-160m)의 경우, 훈련 초기에 [IDK]에 할당되는 확률 질량이 너무 낮아서 문제가 발생하였다.
-
이로 인해 gradient 폭증(gradient exploding)이 일어나면서 모델의 예측 분포가 균일 분포로 붕괴하는 현상이 나타났다.
-
이는 모델 크기가 작을 때 초기화나 [IDK] 토큰에 대한 bias를 추가로 설정해야 할 필요성을 제기하였다.
-
4.4 Text Generation (텍스트 생성 평가)
이 절에서는 IDK 튜닝이 언어 모델의 다른 일반적 능력(예: 긴 텍스트 생성)에 부정적 영향을 미치는지 평가하였다:
-
IDK 튜닝된 Mistral-7B 모델을 텍스트 요약(task summarization)에 적용한 결과, 원본 모델 대비 RougeL 성능이 매우 근소하게 낮아졌으나, 성능 하락은 거의 없었다.
-
이 결과는 IDK 튜닝이 일반적인 언어 생성 능력에 큰 부작용을 주지 않음을 시사한다.
4.5 Error Analysis (오류 분석)
이 절에서는 모델이 사실 기반 질문에 대해 잘못된 예측을 하는 사례를 상세 분석하였다:
200개의 무작위 잘못된 예측을 추출하여 다음의 4가지 범주로 나누어 분석하였다:
-
변화 없음(No Effect)
IDK 튜닝 전후 모델이 동일한 잘못된 예측을 생성하는 경우 -
노이즈(Noise)
원본 모델은 정답을 맞췄으나, IDK 튜닝 후 모델이 오답을 낸 경우 -
화이트 노이즈(White Noise)
원본 모델과 IDK 튜닝 모델 모두 오답을 내었으나, IDK 튜닝 후의 오답이 달라진 경우 -
답변 회피(Abstain)
IDK 튜닝 모델이 "unknown"이나 "mystery"와 같은 단어를 생성하여 답변을 명시적으로 회피하는 경우
이 분석에서 관찰된 주요 결과는 다음과 같다:
-
모델 크기가 커질수록 IDK 튜닝이 답변 생성에 미치는 변화(Noise, White Noise)는 줄어들었다.
-
모델 크기가 클수록 명시적인 답변 회피("모른다")를 잘 수행하였다.
-
작은 모델은 여전히 잘못된 답변을 많이 생성하거나,
[IDK]
를 잘 활용하지 못하는 한계를 보였다. 7-8B 사이즈는 되야 효과가 있나?
요약
-
IDK 튜닝의 각 구성 요소는 정밀도와 재현율 간 균형을 유지하는 데 필수적이다.
-
IDK 목적 함수 최적화 과정에서 소규모 모델은 별도의 초기화 또는 조정이 필요할 수 있다.
-
일반적인 텍스트 생성 성능에는 큰 부정적 영향이 없으며, 오히려 모델 크기가 클수록 IDK 튜닝이 안정적으로 작동한다.
-
모델 크기에 따라 IDK 튜닝의 성능이 달라지며, 큰 모델일수록 더 좋은 효과를 나타낸다.
5 관련 연구
모델 보정(Model Calibration)
우리 연구의 목표는 모델 보정(calibration)이라는 중요한 도전 과제와 밀접하게 관련되어 있다[Guo et al., 2017b]. 모델 보정이란, 모델이 제공하는 예측값과 함께 그 예측이 잘못될 확률을 측정하는 것을 말한다. 사실적 오류 탐지(factual error detection)의 문제는 보정 문제의 변형으로 볼 수 있는데, 이는 연속적인 확률 값을 제공하는 대신 모델이 정확한지 여부에 대한 이진(binary) 예측을 제공하는 형태이다. 또한 모델이 특정 질의(query)에 대해 답변을 거부할 수 있는 선택적 예측(selective prediction) 문제와도 관련이 있다[Varshney et al., 2022; Kamath et al., 2020].
모델 보정에 대한 일반적인 접근법은 모델 출력값의 로짓(logit)에 다양한 변형을 적용하는 것이다[Desai and Durrett, 2020; Jiang et al., 2021]. 보다 최근 연구에서는 모델의 사실성 평가를 위해 사실적으로 올바른 문장과 잘못된 문장을 이용하여 모델을 훈련하는 "지도 학습(supervised)" 접근법을 연구하였다. 이 접근법은 미세 조정(fine-tuning) [Kadavath et al., 2022; Lin et al., 2022b], 인-컨텍스트 학습(in-context learning) [Cohen et al., 2023a; Alivanistos et al., 2022], 제로샷 지시 기반 방법(zero-shot instruction-oriented) [Cohen et al., 2023b], 일관성 샘플링(consistency sampling) [Yoran et al., 2023] 등의 방식으로 이루어졌다. 또 다른 최근 연구들은 모델의 내부 상태를 사용하여 모델 스스로가 확실한지 불확실한지 분류[Azaria and Mitchell, 2023]하거나, 답할 수 없는 입력을 위해 별도의 새로운 토큰을 사용[Lu et al., 2022]하거나, 답변 거부(answer refusal)를 효과적으로 훈련시키기 위한 특정 데이터셋을 구축하는 방식을 사용하였다[Zhang et al., 2024]. 우리의 연구는 이러한 기존 연구들을 기반으로 하면서, 모델이 스스로 자신의 불확실성을 평가하고 표현할 수 있도록 [IDK]
라는 새로운 토큰을 사용하는 방식을 제안한 것이다.
어트리뷰션(Attribution)
또 다른 관련 연구 분야는 언어 모델이 생성한 텍스트가 주어진 원본 텍스트에 충실한지(faithfulness)를 평가하는 것과 관련된 연구이다[Bohnet et al., 2022; Honovich et al., 2022]. 이 문제는 질문 생성(question generation) [Wang et al., 2020; Honovich et al., 2021; Scialom et al., 2021], 자연어 추론(NLI) [Thorne et al., 2018; Welleck et al., 2019; Maynez et al., 2020; Dziri et al., 2022; Gao et al., 2022; Kamoi et al., 2023], 데이터 증강(data augmentation) [Atanasova et al., 2022; Wright et al., 2022; Gekhman et al., 2023] 그리고 모델이 스스로 생성된 결과를 수정할 수 있도록 하는 계획(planning) 기반 접근법[Schick et al., 2022] 등을 통해 다뤄져 왔다.
이 연구들과 다르게 우리는 참조(reference) 텍스트나 외부 지식 베이스를 가정하지 않는다. 대신 우리는 모델이 스스로 사실적으로 문장을 올바르게 완성할 수 있을지를 자체적으로 판단하도록 훈련하는 방식을 제안한다.
6 결론
본 연구에서는 언어 모델의 사실적 정확성(factuality)을 향상시키기 위해, 특별한 [IDK]
("모르겠다") 토큰을 모델의 어휘(vocabulary)에 추가하는 새로운 방법을 제안하였다. 우리는 이 [IDK]
토큰과 함께 모델 예측의 불확실성을 [IDK]
토큰에 부여된 확률 질량(probability mass)으로 표현하도록 유도하는 새로운 사전 훈련(pretraining) 목적 함수인 **IDK 튜닝(IDK-tuning)**을 소개하였다. 특히 IDK 튜닝은 별도의 레이블된 데이터가 필요하지 않으며, 웹에서 크롤링된 텍스트를 사용한 자기 지도(self-supervised) 언어 모델링에서 일반적으로 사용되는 기존 교차 엔트로피(cross-entropy) 손실을 대체하는 방식으로 손쉽게 적용할 수 있다. 이를 통해 우리는 불확실성을 인지하는 훈련(uncertainty-aware training)을 대규모로 수행할 수 있었다. 우리의 실험에서는 제안된 IDK 목적 함수를 사용하여 다양한 사전 훈련 모델들을 추가적으로 훈련하였다.
이후 사실 기반 문장 완성 및 다중 선택 벤치마크 데이터셋에서 평가한 결과, IDK 튜닝이 적용된 모델은 기본 모델이 잘못된 답변을 생성했을 상황에서, [IDK]
토큰을 통해 답변을 거부함으로써 훨씬 더 높은 정밀도(precision)를 달성할 수 있음을 확인하였다. 이는 소폭의 재현율(recall) 감소만을 수반하였다. 추가로 우리는 Pythia 모델군 [Biderman et al., 2023]을 이용하여 모델 크기 증가에 따른 IDK 튜닝 성능의 변화(scaling behavior)를 분석하였으며, IDK 목적 함수의 개별 요소에 대한 여러 제거 실험(ablation)을 진행하였고, IDK 튜닝된 모델의 일반적인 언어 모델링 능력(language modeling ability)이 저하되지 않음을 검증하였다.
우리의 연구는 향후 여러 방향으로 확장할 수 있다. 예를 들어, IDK 튜닝 시 사용된 훈련 데이터에 별도의 레이블을 요구하지 않기 때문에, 우리가 제안한 목적 함수가 다음 토큰 예측(next-token prediction) 문제 중 일부 적절하지 않은 사례(ill-posed)를 다루었을 가능성이 있다. 앞으로는, 다음 토큰 예측에서 고유명사(named entity)와 같은 관련된 사례들을 가볍게 필터링하여, 목적 함수를 사실적 예측(factual predictions)에 더욱 집중시킬 수 있을 것이다. 또한, 처음부터 모델을 사전 훈련(pretraining from scratch)하는 단계에서도 IDK 튜닝을 적용하여, 새로운 지식을 습득하는 과정에서 우리의 목적 함수가 어떤 흥미로운 상호작용을 일으키는지 살펴볼 수 있을 것이다.
7 한계점
본 논문에서 제안한 방법은 몇 가지 한계점을 지니고 있다.
첫째, 이 방법은 언어 모델을 상대적으로 큰 규모의 코퍼스(corpus)를 이용하여 충분히 사전 훈련하는 과정(pretraining)을 요구한다. 이는 계산적으로 매우 많은 자원을 소모할 뿐 아니라, 훈련 과정 자체도 시간이 오래 걸리는 작업이다. 따라서 일반적인 학술 연구 기관에서 이 정도 규모의 모델을 현실적인 시간과 비용 내에서 훈련하기는 어려울 수 있다.
둘째, 본 논문의 4.4절에서 논의된 바와 같이, 우리의 방법은 긴 텍스트 생성과 같은 특정 언어적 능력(language skills)에 다소 부정적인 영향을 줄 수 있다. 본 논문에서 평가되지 않은 다른 다운스트림 작업(downstream tasks)의 경우 이러한 영향이 더 심각하게 나타날 수도 있다. 잠재적인 위험 및 편향(risks and biases)에 대한 추가적인 논의는 부록 A(Appendix A)에 기술되어 있다.
Reference
댓글
댓글 쓰기