왜 할루시네이션이 발생하는지 알려면 언제 발생하는지도 알아야한다.
What is Hallucination?
사실이나 맥락적 논리(맥락에 안맞는 말)에서 벗어나는 LLM의 Output.
할루시네이션은 사소한 불일치부터 완전히 조작되거나 모순된 Output이 될 수 있다.
오늘은 4가지 종류의 할루시네이션에 대해 살펴보자.
1. 문장 모순 (Sentence Contradiction)
LLM이 이전 문장과 모순되는 문장을 생성하는 경우.
“오늘 날씨가 참 맑네요. 근데 오늘 날씨가 너무 안좋아요”
2. 프롬프트 모순 (Prompt Contradiction)
생성된 문장이 그것을 생성하는데 사용된 Prompt와 모순되는 경우
음식점에 대해 좋은 리뷰를 작성해달라고 요청했을때 : “음식이 다 식어있고 맛이 너무 없어요”
3. 사실적 모순 / 오류 (Factual Contradiction / Error)
생성된 문장이 사실과 다른 내용을 포함한 경우
“이순신 대통령은 대한민국 1대 대통령입니다”
4. 무관한 오류 (Non-sensical)
LLM이 실제로는 존재하지 않는 무언가를 집어넣거나 질문과 전혀 관련 없는 내용을 이야기 할때.
“파리는 프랑스의 수도에요. 그리고 파리는 유명한 가수의 이름이에요”
Why Hallucinate?
LLM의 결과 도출방식이 사실상 블랙박스(안을 볼수가 없음 / 봐도 이해 못함)기 때문에 정확히 어떤 이유에서 할루시네이션이 발생했다고 말하기는 어렵지만 몇 가지 일반적인 원인이 있다.
1. 데이터의 품질(Data Quality)
LLM은 노이즈, 오류, 편견, 불일치가 포함된 데이터로 학습하는 경우 예를 들어, 위키피디아나 레딧을 사용했기 때문이다. 레딧이나 위키피디아의 내용을 100% 신뢰할 수는 없다.
데이터가 100% 정확하더라도 콘텐츠 생성에 필요한 모든 주제 / 도메인을 다루지 않을 수 있다.
따라서, 데이터의 정확성 / 관련성을 검증하지 못한채 데이터를 일반화하는 경우가 발생하고 때로는 이러한 방식이 잘못되는 경우가 발생한다.
물론, LLM의 추론(Reasoning) 능력이 향상됨에 따라 환각이 감소하는 경향이 있다.
2. 생성 방식 (Generation Method)
LLM은 텍스트를 생성하기 위해 다양한 방법과 목표를 사용한다. 예를 들어, Beam Search, Sampling, Maximum Likelihood Estimation, Reinforcement Learning)
이러한 방법과 목표는 유창함과 다양성, 일관성과 창의성, 정확성과 참신함 사이의 상충관계(Trade-Off)를 초래할 수 있다.
가령, Beam Search는 높은 확률이지만 포괄적인(Generic) 단어를 낮은 확률이지만 구체적인(Specific)보다 선호한다.
3. 입력 맥락 (Input Context)
여기서 Context란 Input Prompt로 모델에 제공되는 정보를 의미한다.
Context는 모델이 관련성 있고 정확한 출력을 생성하도록 안내하는데 도움이 될 수 있지만,
명확하지 않거나 일관성이 없거나 모순되면 모델을 혼동하거나 오해하게 할 수 있다.
예를 들어, LLM 챗봇에 “고양이가 영어를 할 수 있나요?” 라고 물으면 “아니요, 좀 앉아서 쉬실래요?”라는 답변을 받을것이다. 하지만 만약 내가 가필드 만화 시리즈에 대해 이야기 하고 있다는 Context를 포함했다면 LLM은 “네, 고양이는 영어를 할 수 있고 저 고양이는 라자냐를 두번째로 달라고 할거같아요~” 라는 답변을 받을 것 이다.
Context는 중요하고 학술 에세이나 창의적인 글쓰기 연습에 필요한 텍스트를 찾고 있다고 말하지 않으면 해당 텍스트가 해당 맥락 내에서 응답할것이라 기대할 수 없다.
How can we MITIGATE Hallucination
1. 명확하고 구체적인 프롬프트 제공 (Clear & Specific Prompt)
입력 프롬프트가 더 정확하고 상세할수록 LLM이 관련성이 높고 (가장 중요한) 정확한 출력을 생성할 가능성이 높아진다.
예를 들어, “2차 세계 대전에 무슨 일이 일어났나요?” 라는 질문 대신에
“갈등의 주요 원인에 연루된 주요 국가를 포함하여 제 2차 세계 대전의 주요 사건을 요약할 수 있습니까?” 라고 말할 수 있다.
2. 적극적인 완화 전략 (Active Mitigation)
LLM이 문장을 생성할때 관여하는 hyper parameter를 조정하는 방식이다.
이에 대한 좋은 예는 출력의 Randomness(임의성)을 제어할 수 있는 Temperature 매개변수이다.
Temperature가 낮을수록 더 보수적이고 집중된 답변을 생성하고 Temperature가 높을수록 더 다양하고 창의적인 반응이 생성된다.
다만, Temperature가 높을수록 환각이 일어날 확률이 높아진다.
3. 멀티샷 프롬프트 (Multi-shot Prompt)
하나의 Prompt만 제공하는 Single-shot Prompt와 달리 멀티샷은 LLM에 원하는 출력 형식이나 컨텍스트에 대한 여러 예를 제공해서 모델의 답변을 개선한다.
여러 가지 예를 통해 LLM을 제시해서 패턴이나 context를 보다 효과적으로 인식하는데 도움이 되고 이는
특정 출력 형식이 필요한 작업에 특히 유용하다.
예를 들어, 특정 스타일로 코드를 작성하고, 시를 쓰고, 질문에 특정한 형태로 답을 하는 경우이다.
Reference
'인공지능 > LLM' 카테고리의 다른 글
AGI로 가는 길에 LLM의 한계와 강화학습의 한계 (3) | 2024.11.02 |
---|---|
할루시네이션 발생 원인 (0) | 2024.11.02 |
LLM의 Risk (0) | 2024.11.02 |
Knowledge Distillation - LLM (0) | 2024.03.17 |
RAG란? (0) | 2024.03.17 |