LLM에 Halluciation(환각)이 발생하는 원인과 해결방안
최근 LLM(Auto-regression 모델기반)의 발전과 인기는 AI 커뮤니티 내에서 LLM의 미래를 긍정하는 그룹과 부정하는 그룹으로 나누고 있다.
그룹 A: LLM으로 “AGI”에 도달할 수 있다라는 그룹
그룹 B: LLM은 특별한 것이 아니며 “확률적 앵무새”에 가깝다라는 그룹
그룹 A의 대표 주자는 OpenAI이며 그룹 B의 대표 주자는 Meta AI의 수장인 얀 르쿤 교수이다. 그룹 A의 OpenAI는 GPT-4를 AGI의 초입으로 보고, AGI의 오용 및 위험성 등의 문제들이 있지만 통제와 조정을 통해 AGI로 나아갈 수 있다라는 입장입니다. 한편 반대파인 그룹 B는 현재의 LLM으로 AGI을 달성할 수 없고 AGI에 도달하기 위해선 새로운 구조가 필요하다라고 주장한다.
얀 르쿤 교수는 2023년 3월 24일 NYU에서 열린 세미나에서 간단 수식을 통해Auto-regression기반 LLM은 생성 토큰(n)이 길어지면 길어질수록 생성된 문장이 정확할 확률 P(correct)이 기하급수적으로 낮아진다고 Auto-regression기반 LLM에 대해 신랄하게 비판하였다. 그는 AGI로 가기 위해선 현재와 같은 모델 구조가 아닌 뇌의 방식과 유사한 모듈 아키텍처가 필수적이라고 주장한다.
극명한 입장차를 보이고 있는 그룹 A와 그룹 B이지만 현재 LLM이 갖는 여러 문제 중 “환각”이 가장 큰 문제점이라는 것에는 공통된 의견을 보이고 있다. 하지만 그룹 A는 현재 LLM의 환각을 완화할 수 있다는 입장이며, 그룹 B는 현재 구조(Auto-regression 기반)로 LLM의 환각을 해결할 수 없다는 입장이다.
그렇다면 LLM의 환각이 무엇인지, 발생 요인과 완화 방법에 대해서 알아보도록 하자.
환각 vs 착각
먼저 환각에 대해서 정확하게 알기 위해 의학검색엔진(KMLE)에서 참조한 환각에 대한 의학적 정의는 다음과 같다.
“외부의 자극이 없는데도 불구하고 마치 외부에서 자극이 들어온 것처럼 느끼는 현상을 말한다. 환각은 병적인 상태에서만 나타나는 현상이 아니고 정상적인 경험으로 나타날 수도 있다. 환청, 환시, 환촉, 환미, 환후 등이 있다.” 환청이 뚜렷하면 정신분열증이 의심되고, 환시나 환촉이 뚜렷하면 중독상태, 예를 들면 알코올중독 등이 의심된다.”
환각(Hallucination)과 착각(Illustion)을 혼동할 수 있는데 착각은 외부의 자극을 정확하게 받아 들였지만 이것을 해석하는 뇌의 작용의 이상으로 그 자극을 과소, 과대평가하거나 다른 것으로 생각하는 것이다. 반면, 환각은 외부의 자극이 실제로 전혀 없음에도 불구하고 자극이 있음을 인식 또는 일어났다고 믿는 것입니다.
[착각의 예]
- 처음 보는 여자를 옛 애인으로 잘못보는 것!
[환각의 예]
- 실제 아무런 소리도 나지 않는데 음악 소리가 들린다고 하는 것!
Generative AI의 환각 현상
ChatGPT와 같은 Generative AI가 겪는 환각 현상은 심리적 환각과 유사한 특성을 공유하며 NLP의 컨텍스트에서 제공된 학습 데이터에 상관없이 믿을 수 없거나(unfaithful) 터무니 없는(non-sensical) 텍스트를 생성하는 현상이다.
Generative AI의 환각에 의해 생성된 텍스트는 믿을 수 없고, 무의미함에도 불구하고 유창하고 자연스럽다라는 인상을 준다. 또한 근거가 없음에도 실제 제공된 Context에 근거한 것처럼 그럴 듯하다.
ChatGPT의 환각 사례
ChatGPT의 환각의 예를 보면 이해가 될 것이다. ChatGPT에게 미국 남북 전쟁 당시 맥아더 장군의 계급을 물어보았다. (물론 맥아더 장군은 제1,2 차 세계대전, 한국 전쟁에서 활약한 인물이다. 의도적으로 잘못된 질문을 하였다.)
“ChatGPT는 맥아더 장군이 태어나기도 전인 남북 전쟁을 배경으로 맥아더 장군을 북부군 지휘관으로 묘사하는 환각을 일으켰다.”
만일 동일한 결과를 영어로 물어보면 어떠할까? ChatGPT는 맥아더 장군이 남북 전쟁 당시의 인물이 아님을 알려주고 있으나, 맥아더가 유일한 육군 원수(General of the Army)라는 설명은 틀렸다. (조지 마샬, 드와이트 아이젠하워, 헨리 아놀드, 오마 브래들리 등이 미 육군의 원수였다.)
Generative AI의 환각의 유형
*이 부분부터는 Survey of Hallucination in Natural Language Generation를 많이 참고하였다.
Generative AI의 환각은 두 가지 유형으로 분류할 수 있다.
1) 내재적(Intrinsic) 환각
소스 컨텐츠와 모순되는 출력을 생성하는 유형이다. 아래 표(추상적 요약 태스크)의 소스 문장은 “The first vaccine for Ebola was approved by the FDA in 2019.”이지만 출력 문장은 “The first Ebola vaccine was approved in 2021”이다.
2) 외재적(Extrinsic) 환각
소스 컨텐츠에서 확인할 수 없는 출력을 생성하는 유형이다. (i.e. 소스에 의해 지원되지도 반박할 수도 없는 출력) 아래 표(추상적 요약 태스크)에서 모델은 소스에 없는 “China has already started clinical trials of the COVID-19 vaccine.”라는 출력을 생성한다. 하지만 소스에서 생성된 출력에 대한 증거를 찾을 수도 없고 그것이 잘못되었다고 단정할 수 없다.
환각관련 용어 정리
- 충실성(Faithfulness): 제공된 소스의 일관성과 진실성을 유지하는 것으로 환각의 반의어이다.
- 사실성(Factuality): 사실성은 실제 또는 사실에 근거한 품질을 의미한다.
Generative AI 의 환각을 일으키는 요인
환각의 요인으로는 다음과 같이 두 가지로 분류할 수 있다.
- 데이터에 의한 환각
- 학습과 추론에 의한 환각
데이터에 의한 환각
데이터에 의한 환각의 주요 요인은 소스와 레퍼런스 간 차이이다.
(1) 휴리스틱 데이터 수집(Heuristic data collection)
대규모 데이터셋을 수집할 때 소스와 타겟 문장 쌍을 만들 때 타겟 레퍼런스가 소스에 의해 지원될 수 없는 정보를 포함할지 모른다.
예를들어 WIKIBIO는 위키피디아의 infobox를 소스로 이용하여 구축된 인물 약력(Biographical Note) 데이터셋이다. WIKIBIO 데이터셋의 저자는 위키피디아의 infobox를 소스로 사용하고 위키피디아 페이지의 첫번째 문장을 타겟ground-truth 레퍼런스로 사용하였다.
하지만 연구결과에 따르면 WIKIBIO에 첫번째 문장 중 62%가 관련 infobox에서 언급되선 안될 추가 정보를 가지고 있음을 지적하고 있다. 이는 소스-타겟 쌍간의 불일치를 일으키기 때문에 환각으로 연결될 수 있다.
또 다른 문제는 수백 GB의 텍스트 코퍼스를 수동으로 확인하는 것이 불가능하므로 데이터셋의 중복 항목을 제대로 필터링하지 못하는 경우이다. 이는 문장의 반복 생성을 유도하여 모델을 편향시킬 수 있다.
(2) 선천적인 발산(Innate divergence)
생성 출력의 다양성을 중시하는 open-domain 대화 시스템은 잡담(chit-chat) 스타일, 주관적 스타일로 응답하는 데이터셋을 허용한다. 이는 대화 생성의 다양성을 향상시키지만 이러한 특성이 외재적 환각을 일으킨다.
학습과 추론에 의한 환각
환각 문제는 소스-레퍼런스간 매우 작은 차이만이 존재하더라도 뉴럴 모델의 학습과 모델링 선택에 따라 여전히 발생할 수 있다.
(1) 불완전한 표현 학습(Imperfect representation learning)
인코더는 입력 텍스트를 의미있는 표현으로 이해하고 인코딩하는 역할을 수행한다. 인코더의 이해력에 결함이 있어서 인코더가 학습 데이터의 다른 부분간 잘못된 상관관계를 학습할 경우, 입력으로부터 벗어난 잘못된 생성을 야기할 수 있다.
(2) 잘못된 디코딩(Erroneous decoding)
디코더는 인코더가 인코딩한 입력을 최종 타겟 시퀀스로 생성한다. 디코딩의 두가지 측면이 환각을 일으킨다.
- 1) 디코더는 인코딩된 입력 소스의 잘못된 부분에 주의를 기울여 잘못된 출력을 생성할 수 있다. 이러한 잘못된 연관은 두 개의 유사한 엔티티 간 혼합된 사실을 생성하는 결과를 야기한다.
- 2) 디코딩 전략 자체의 설계가 환각에 기여할 수 있다. Top-k 샘플링과 같이 생성 다양성을 향상시키려는 디코딩 전략이 환각 증가와 상관 관계가 있다. 가장 가능성이 높은 토큰을 선택하는 대신 Top-k 샘플을 샘플링하여 의도적으로 “무작위성”을 추가하면 출력 생성 시 예상치 못한 특성을 증가시켜 환각 컨텐츠를 포함시킬 가능성을 높일 수 있다.
(3) 노출 편향(Exposure Bias)
디코딩 전략의 선택과 관계없이 노출 편향 문제는 학습과 추론 시점 간 디코딩 불일치로 정의된다. 디코더는 teacher-forced MLE(Maximum Likelihood Estimation) 학습되는 것이 일반적이다.
디코더는 ground-truth prefix 시퀀스를 조건으로 다음 토큰을 예측하도록 권장된다. 반면 추론 시 모델은 이전에 자체적으로 생성한 과거 시퀀스에 따라 다음 토큰을 생성한다. 이와 같은 불일치는 타겟 시퀀스가 길어질수록 더 잘못된 생성을 초래한다.
(4) 파라메틱 지식 편향(Parametric knowledge bias)
대규모 코퍼스로 pre-training된 모델은 모델 파라미터에 지식을 기억하는 것으로 알려져 있다. 소위 “Parametric” 지식은 다운스트림 태스크의 성능을 개선하지만 환각을 초래한다. 다운스트림 NLG 태스크에 사용되는 대규모 pre-trained 모델은 일반화 가능성과 적용 범위를 제공하지만 모델에 제공된 입력보다 “Parametric” 지식을 우선시 한다는 사실을 발견했다. 즉, 입력 소스의 정보 대신 pre-training된 “Parametric” 지식을 출력으로 생성하는 것을 선호하는 모델은 출력에 초과 정보의 환각을 초래할 수 있다.
Generative AI 의 환각을 완화하기 위한 방법
앞에서 설명한 환각의 두 가지 주요 요인에 따라 환각을 완화하는 일반적인 방법은 다음과 같다.
- 데이터관련 방법
- 모델링과 추론 방법
데이터관련 방법
(1) 믿을만한(Faithful) 데이터셋을 구축하기
“ Noisy” 데이터가 환각을 촉진하므로 믿을만한 데이터셋을 구축하는 것이 가장 직관적인 방법이다. 이러한 데이터셋을 만드는데 다양한 방법이 존재한다. 한 가지 방법은 Annotator를 고용하여 다양성이 부족할지 모르는 소스를 처음부터(from scratch) 깨끗하고 믿을만한 타겟으로 작성하는 것이다. 다른 한 방법은 웹 상의 실제 문장 또는 존재하는 데이터셋에 타겟을 Annotator가 재작성하는 것이다. 데이터셋 revision 전략은 3가지 단계로 나뉜다.
- 구문 다듬기 (Phrase Trimming)
- 탈컨텍스트화 (Decontextualization)
- 문법 수정(Syntax modification)
(2) 데이터를 자동으로 클리닝하기
의미론적 노이즈 문제를 완화하기 위한 또 다른 방법은 기존 병렬 코퍼스에서 입력과 관련이 없거나 모순되는 정보를 찾은 후 데이터를 필터링하거나 수정하는 것이다. 이러한 접근 방식은 원본 데이터에 낮거나 중간 수준의 노이즈가 있는 경우에 적합하다. 각 소스-레퍼런스 쌍의 점수를 사용한 코퍼스 필터링의 예는 다음과 같다.
- 1) 환각의 관점에서 학습 샘플의 품질을 측정함
- 2) 환각 점수를 내림차순으로 순위를 매김
- 3) 하단부터 신뢰할 수 없는 샘플을 선택하고 필터링함
(3) 정보 증강
외부 정보로 입력을 증강하는 것은 소스를 더 잘 표현할 수 있다는 것은 직관적인 사실이다. 외부 지식, 명시적 정렬, 추가 학습 데이터 등이 소스와 타겟 간의 상관 관계를 개선할 수 있고, 모델이 더 나은 태스크 관련 기능을 학습하는 데 도움이 될 수 있다. 결과적으로 더 나은 의미론적 이해는 소스 문제와의 차이를 완화하는 데 도움이 된다.
모델링과 추론 방법
학습과 추론 시 환각을 완화하기 위해 모델 아키텍처, 학습 방법을 수정한다.
(1) 아키텍처
인코더: 인코더는 가변 길이 시퀀스를 가진 입력 텍스트를 고정 길이 벡터 표현으로 인코딩하는 방법을 배운다. 환각은 모델이 입력 상의 의미론적 해석이 부족할 때 발생하므로 입력에 더 호환되거나 더 나은 표현을 배우도록 인코더의 구조를 수정한다.
디코더: 디코더는 주어진 입력 표현을 자연어로 최종 출력하는 것을 담당한다. 디코더 구조를 수정하여 환각을 완화하기 위한 방법으로 여러가지 디코더 구조가 제안되었다.
- Multi-branch decoder
- Uncertainty-aware decoder
- Dual decoder (Sequential decoder + Tree-based decoder)
- Constrained decoder (with 어휘적 또는 구조적 제한)
(2) 학습
Reinforcement Learning(RL): 단어 수준의 maximum likelihood 학습은 노출 편향 문제를 일으킨다. 이와 같은 환각 문제를 해결하기 위해 RL를 사용할 수 있다. RL의 목적은 에이전트가 환경으로부터 축적되는 보상을 최대화하는 최적의 정책을 학습하는 것이다.
보상 함수는 RL에 매우 중요하다. 보상 함수가 적절하게 설계된 경우, 보상 함수는 모델이 환각 감소 목표를 달성하는 데 도움이 되는 학습 신호를 제공할 수 있다. RL은 매우 큰 검색 공간때문에 학습과 수렴에 어려움이 있지만 태스크에 대한 최상의 정책을 얻을 수 있는 잠재력을 가지고 있다.
Multi-task Learning: Multi-task 학습은 다양한 NLG 작업에서 환각을 처리하는 데에도 활용된다. 이 학습 패러다임에서 공유된 모델은 태스크들의 공통점을 배우기 위해 동시에 multi-task를 학습한다.
환각은 학습 프로세스가 단일 데이터셋에 의존하면서 모델이 실제 태스크 기능을 학습하지 못한다는 사실로 인해 발생한다. 학습 중에 타겟 태스크과 함께 적절한 task를 추가하면 모델이 환각 문제를 덜 겪을 수 있다. Multi-task Learning은 데이터 효율성 향상, 과적합 감소, 빠른 학습과 같은 장점이 있다. 하지만 공동으로 학습해야 하는 태스크를 선택하는 것이 중요하며, 동시에 Multi-task를 학습하기 위한 설계 및 최적화가 새롭게 필요하다.
제어가능한 생성(Controllable Generation): 환각을 낮은 수준으로 유지하기 위해 1) 제어된 re-sampling, 2) 수동으로 제공되거나 자동으로 예측될 수 있는 제어 코드 등과 같은 방법은 충실성을 개선시키는데 활용된다.
환각이 반드시 해로운 것은 아니며 일부 이점을 가져온다는 것을 고려한다면 제어 가능한 방법을 추가로 적용하여 다양한 실제 응용 프로그램의 요구사항을 만족하도록 환각의 정도를 변경하는데 사용할 수 있다.
(3) 사후 처리(Post-Processing)
사후 처리 방법은 출력에서 환각을 정정할 수 있고 더 적은 학습 데이터를 요구한다. 사후 처리 방법은 문법에 맞지 않는 텍스트를 생성하는 경향이 있지만, 이 방법을 통해 연구자들은 유창성(fluency)과 같은 다른 속성과 관련된 SOTA 모델을 활용할 수 있으며, 자동으로 생성된 소량의 학습 데이터를 사용하여 특히 충실성을 위해 결과를 수정할 수 있다.
향후 환각 완화를 위한 연구 방향
(1) 일반적이고 견고한 데이터 Pre-processing 방법
데이터 pre-processing는 원본 데이터와 처리된 데이터간 문법 오류와 의미론적 변환을 초래하여 생성 성능에 부정적인 영향을 줄 수 있다. 따라서 일반적이고 견고한 pre-processing 방법이 NLG의 환각을 완화할 수 있다.
(2) 숫자의 환각
대부분의 기존 환각 완화 방법은 숫자 환각에 초점을 맞추지 않는다. 하지만 생성된 텍스트의 날짜, 수량, 스칼라 같은 숫자가 부정확하면 사용자에게 치명적인 결과를 초래할 수 있다. (특히 의학, 금융, 과학 등) 따라서 환각을 완화하기 위해 명시적으로 숫자를 모델링하는 것이 필요하다.
(3) 외적 환각 완화
환각 완화에 대한 많은 연구가 내재적(Intrinsic) 환각과 외재적(Extrinsic) 환각을 구분하지 않는다. 더욱이 외재적 환각은 감소시키기 더 어렵기 때문에 연구 초점은 주로 내재적 환각을 다루는데 초점을 맞췄다. 이제는 외재적 환각에 대한 연구가 필요하다.
(4) 긴 텍스트의 환각
NLG의 많은 태스크들은 모델이 긴 입력 텍스트(e.g. 다중 문서 요약 및 생성 Q&A 등)를 처리해야 합니다. Longformer 기반 모델과 같은 방식을 채택하면 긴 입력을 인코딩하는 데 도움이 될 수 있다. 일부 대화 시스템은 긴 출력 텍스트를 생성할 필요가 있는데 뒷 부분으로 갈수록 모순된 텍스트를 생성할 수 있다. 그러므로 자기 모순을 줄이는 것이 중요하다.
(5) 추리(Reasoning)
소스 컨텍스트에서 사실을 오해하는 것은 본질적인 환각과 오류를 발생시킨다. 모델이 사실을 올바르게 이해하도록 입력 테이블이나 텍스트에 대한 추리(Reasoning)가 필요하다. 모델이 생성한 텍스트를 소스로 부터 거꾸로 추리할 수 있다면 그 모델은 믿을만하다(faithful)라고 가정할 수 있다. 대화 영역에서 몇 가지 추리가 필요하고, 논리적 테이블-텍스트 생성과 같은 수량 작업에는 수치적 추리가 필요하다.
(6) 제어 가능성
제어 가능성은 환각의 수준을 제어하고 충실도와 다양성 간의 균형을 맞추는 모델의 능력을 의미한다. 잡담 모델은 그것이 사실적 환각이라고 한다면 어느정도의 환각적인 컨텐츠를 생성하는 것이 허용된다. 한편, 추상적인 요약 태스크의 경우 사실적 환각이 바람직한지 여부에 대해 연구 커뮤니티에서 합의가 이루어지지 않아 추가적인 연구가 필요하다.
개인적인 의견
ChatGPT를 사용할 때 생각보다 훌륭한 답변을 출력할 때도 있었지만 환각으로 생성된 문장을 볼 때마다 인간의 통제가 반드시 필요하다라는 생각이 든다. 만일 ChatGPT를 무비판적으로 사용할 경우, 왜곡된 사실이나 잘못된 사실을 그대로 수용하게 되어 큰 사회적 문제가 될 것으로 예상된다. (우리의 아이들이 ChatGPT의 답변을 그대로 믿는다고 상상해보라!)
현재는 책이나 인터넷을 통해 레퍼런스 체크를 하여 사실 파악을 할 수 있지만 ChatGPT와 같은 Generative AI는 blackbox이기 때문에 어떠한 근거로 출력이 생성되었는지 알 수 없다. 따라서 ChatGPT를 사실 확인을 위한 레퍼런스로 사용하는 것은 굉장히 위험한 일인 것 같다.
OpenAI와 MS의 의도인지 우연인지는 모르겠지만 ChatGPT가 대중들의 인식에 검색 도구로 각인시킨 것은 명백히 잘못된 선택이었다. 환각의 위험성이 충분히 경고되지 않은 상태에서 검색 도구로 알려지는 것은 향후 오용을 막기 힘들기 때문이다. 차라리 ChatGPT를 생산성 도구 또는 창의적 작업을 위한 assistant로 소개하였다면 검색 엔진과 같이 정확도에 대한 기대치가 없기 때문에 큰 문제가 되지 않았을 것이다. (물론 현재와 같은 관심을 얻지 못하였을 수도 있다.)
하지만 ChatGPT와 같은 LLM기반 Generative AI는 상용화의 임계점을 돌파하였다. 일반인들까지 그 유용성을 인식한 지금, 일부 사람들이 주장하는 것처럼 AI 개발을 6개월 동안 일시 중단하자라는 것은 더이상 의미없는 주장이 되었다. 스마트폰을 한번 사용했던 사람들이 피처폰을 더이상 사용하지 못하는 듯 사람들에게 ChatGPT를 사용하지 못하도록 하는 것은 불가능해졌다.
개인적인 의견은 auto-regression LLM에서 환각을 애초에 없애는 것은 불가능할 것으로 생각한다. 따라서 얀 르쿤 교수가 주장하듯 인간의 두뇌를 세밀하게 모사하는 새로운 뉴럴 모델이 필요할 것으로 생각한다.
하지만 LLM을 학습하는 것을 진화에 빗댄다면, LLM의 진화의 방향성은 현재로써는 결코 알 수 없다. 하지만 분명한 사실은 LLM에 대규모 데이터셋과 대규모 컴퓨팅을 투입하였을 때 그 전에 발견되지 못했던 창발성이 생긴다는 것이다. LLM이 궁극적으로 AGI에 도달할 수 있을지 궁금하다. 세상 일이란 항상 가장 좋은 것만 선택되리라는 법은 없기 때문이다.