본문 바로가기
Natural Language Processing/NLG 이모저모

LLM 의 할루시네이션을 줄이는 방법

by beeny-ds 2023. 12. 27.
지난 포스팅에서는 LLM 을 어떻게 만드는지(=학습하는지), LLM 의 단점은 무엇인지(단점: 할루시네이션) 그리고 할루시네이션을 줄이기 위한 학습 방법은 무엇인지 알아봤다.
이번 글은 LLM 의 단점인 할루시네이션을 줄이기 위한 전략을 다룬다. 전략이기 때문에 LLM 학습이 아닌 점을 참고하길 바란다.

지난 포스팅 링크: LLM 학습에 대한 고찰

 

※ 글에서 언급하는 단어에 혼동이 있을 수 있습니다.

  • ['인공지능 모델', 'Generation 모델', '모델'] 이라는 표현은 모두 ChatGPT 와 같은 LLM 을 의미합니다.
  • ['Input', 'Input text'] 의 의미는 LLM 에 들어가는 글(=text)을 의미합니다.
  • ['Output', 'Output text'] 의 의미는 LLM 에서 Input 을 계산하여 나오는 모델의 결과(=text) 를 의미합니다.

 

할루시네이션을 줄이기 위한 전략

Generation 모델(a.k.a NLG)의 특성은 이전 text 를 참고하여 랜덤한 text 를 예측하는 방식으로 Output 을 만든다. 때문에 잘못된 text 를 예측하게 되면 사실이 아닌 정보를 사실인 것처럼 문장을 만들어내는 할루시네이션 문제를 야기한다.

 

할루시네이션 문제를 해결하기 위한 연구의 본격적인 시작은 Transformer Decoder Model 의 시작인 GPT-1 의 탄생(2018년)부터 시작되었다. 여러 우여곡절을 거쳐 문제를 해결하기 위한 방안들이 고도화 되었다는 말이다. 이제 역사를 거슬러 올라가 어떤 과정으로 할루시네이션 문제를 해결하기 위한 방법이 고도화 되었는지 살펴보겠다.

(사실 정확히 따지면 Seq2Seq 부터 할루시네이션 문제가 발생하였지만 이해를 돕기 위해 GPT-1 부터라 말하였음.)

 

** 할루시네이션 문제를 해결하기 위한 방법이 고도화 되어가는 과정 **

  1. In-Context Learning
    • Zero-Shot & Few-Shot Learning
    • Prompt 의 탄생
  2. Chain-of-Thought using Prompting
  3. Instruction Fine-Tuning using Prompting
    • 괴물이 탄생하다.! ChatGPT 의 등장
  4. Retrieval-Augmented Generation using Prompting
    • ChatGPT 짱짱맨.! RAG 연구 활성화
  5. Artificial General Intelligence 의 시대가 온다.
    • 미친 시대가 온다. 모두 자신의 일자리를 사수하라.!

 

In-Context Learning

이름의 뜻을 살펴보자. 

  • In-Context : Input 으로 들어가는 text 를 뜻한다.
  • Learning : 학습한다.
  • In-Context + Learning : Input 으로 들어가는 text 를 참고(∋학습)해서 Output 을 도출하는 방법이다.

이름에는 Learning 이 있지만 이 Learning 은 인공지능 모델을 학습하는 Learning 의 의미와는 다르다.

Learning 의 목적어는 In-Context 다. In-Context 인 Input text 를 참고(∋학습)하여 Output 을 만들겠다는 의미이다.

때문에 In-Context Learning 에서는 인공지능 모델의 구조 및 Parameter(=Weight) 가 전부 변하지 않는다.

인공지능 모델을 업데이트 하지 않는다는 의미다.

 

예시를 통해 더 알아보자.

Input
Translate English to Korea:
apple : 사과
sea : 바다
math : 수학
science : 

Output
과학
  1. 인공지능 모델은 Input 을 참고한다.
  2. Input text 로부터 인공지능 모델은 영어를 한국어로 번역해달라는 요청을 확인한다.
  3. 'apple 은 사과', 'sea 는 바다', 'math 는 수학' 으로 대답해야 한다는 걸 참고(∋학습) 한다.
  4. science 는 뭐라고 번역해야 하는지는 apple, sea, math 사례를 참고하여 대답하라는 의미라는 걸 깨닫는다.
  5. '과학' 이라는 Output text 를 도출한다.
  6. 이때 인공지능 모델은 업데이트 되지 않는다. 

여기서 Zero-Shot & Few-Shot Learning 의 개념이 탄생한다.

  • Zero-Shot Learning
    • 위 예시에서 apple, sea, math 와 같은 예시 없이 지시문만을 Input text 로 사용한다.
    • 즉, Input text 로는 아래 Text 만 넣어준다.
      Translate English to Korea: 
      science :
  • Few-Shot Learning
    • 위 예시와 같이 apple, sea, math 와 같은 예시를 2개 이상 넣어 Input text 로 사용한다.
    • 만약 예시를 1개만 넣어 Input text 로 사용한다면 One-Shot Learning 이 된다.

이렇게 n-Shot Learning (n 은 0을 포함한 자연수) 을 활용하니 원하는 Output text 를 도출할 수 있었고 성능 또한 올라갔다. Generation 모델에서 Input text 를 dynamic 하게 구성하면 Output text 를 통제할 수 있다는 사실을 발견한 거다.

 

그렇게 Prompt 가 탄생했다.

(Prompt: Generation 모델인 LLM 에게 어떤 행동을 해야 하는지 Text 로 설명하고 원하는 Output 을 얻을 수 있도록 하는 방식)

 

Summary

  1. In-Context Learning 은 인공지능 모델을 업데이트하지 않고 Input text 를 참고하여 Output 을 도출하는 방법이다.
  2. Input text 를 참고하기 위해 n-Shot Learning 이 활용되었다.
    • n-Shot Learning 은 지시문과 예시 n 개를 Input text 에 추가하는 방법이다.
    • 이 방법을 통해 Output text 를 통제할 수 있고 성능 또한 높일 수 있었다.
    • n-Shot 에서 n 은 0을 포함한 자연수를 의미한다.
  3. n-Shot Learning 의 효과를 검증하여 Prompt 의 연구가 본격적으로 시작 되었다.
    • 이후 Generation 모델에는 Input text 에 Prompt 를 추가하여 실험을 하는 것이 국룰처럼 여겨지게 되었다.
    • Prompt 의 탄생은 Generation 모델의 영향력을 높여주는 큰 요소로 자리잡게 되었다.

 

Chain-of-Thought using Prompting

이름의 뜻을 살펴보자. 

  • Chain-of-Thought : 생각의 고리라는 뜻으로 생각이 꼬리에 꼬리를 물고 이어짐을 뜻한다.
    • 편의상 Chain-of-Thought 는 CoT 라고 줄여 말하겠다.
    • 생각의 고리라 함은 생각을 Step by Step 으로 여러 스텝을 거쳐 Output text 를 도출하도록 의도하는 것이다.
  • using Prompting : Prompt 를 활용한다는 뜻이다.

이름의 뜻과 같이 인공지능 모델이 생각의 고리를 통해 Output text 를 도출할 수 있도록 Prompt 를 활용하여 Input text 를 구성하는 방법이다. 이러한 방법은 여러 스텝을 거쳐야 풀 수 있는 문제에 효율적으로 사용된다. 

 

예시를 통해 더 알아보자.

출처: https://velog.io/@nellcome/Instruction-Tuning%EC%9D%B4%EB%9E%80

 

수학 문제와 같이 여러 단계를 거쳐야 풀 수 있는 문제의 예시다.

위 예시에서 Standard Prompting 과 CoT Prompting 모두 One-Shot Learning 이 활용됐다.

차이는 오직 Answer 로 '단순히 답만 제시하는지', 아니면 왜 그 답이 나왔는지 '풀이 과정을 제시하는지' 이다.  

 

Standard Prompting 에서는 One-Shot 에서 Answer 로 답만 제시했기 때문에 Model Output 또한 답만 예측한다.

CoT Prompting 에서는 One-Shot 에서 Answer 로 풀이 과정과 답을 제시했기 때문에 Model Output 또한 풀이 과정과 답을 함께 예측했다.

 

이처럼 CoT 는 여러 스텝을 거쳐야 풀 수 있는 문제에 적용했을 때 효과를 볼 수 있다.

물론 CoT 는 이전에 설명한 n-Shot Learning 을 적용하여 활용해야 한다.
(ps. n-Shot Learning 은 웬만하면 모든 Prompt 에 적용해주는게 바람직하다.) 

 

Summary

  1. CoT 는 생각의 고리와 같이 Step by Step 으로 여러 스텝을 거쳐 Output text 를 도출하도록 의도하는 방법이다.
  2. CoT 는 수학 문제와 같이 여러 스텝을 거쳐야 풀 수 있는 문제에 활용한다.
  3. CoT 는 n-Shot Learning 과 함께 활용한다.

 

Instruction Fine-Tuning using Prompting

※ 주의: 비전문가는 해당 방법은 Pass 하는 걸 추천. 해당 방법을 활용하는데 많은 허들이 존재하기 때문

 

이름의 뜻을 살펴보자. 

  • Instruction : '지시' 라는 뜻이다. 인공지능 모델이 어떤 Output 을 도출해야 하는지 Input text 로 명령을 내리는 걸 뜻한다.
  • Fine-Tuning : 인공지능 모델을 학습한다. 여기서 학습은 모델의 가중치를 업데이트하는 학습을 뜻한다.
  • using Prompting : Prompt 를 활용한다는 뜻이다.

Fine-Tuning 에 대한 설명은 이전 포스팅인 LLM 학습에 대한 고찰 에서 Supervised Fine-Tuning 파트를 참고하길 바란다.

 

Instruction 에 대한 예시를 확인해보자.

출처: http://dmqm.korea.ac.kr/activity/seminar/417

 

인공지능 모델을 학습(=업데이트)할 때 Input text 로 지시(=Instruction)를 하는 예시다.

지시는 사용자가 풀고자 하는 문제에 맞춰 구성해야 한다.

만약 영어를 한국어로 번역해주는 인공지능 모델을 만들고자 한다면 지시로 "한국어로 번역해" 를 넣어준다.

만약 긍정-부정 분류와 같이 감성 분석을 해주는 인공지능 모델을 만들고자 한다면 지시로 "문장을 보고 긍정 or 부정 중 하나로 분류해줘" 를 넣어준다.

 

위 예시와 같이 보통 Instruction Fine-Tuning 을 할 때는 Zero-Shot Prompt 를 사용한다.

물론 Few-Shot Prompt 를 사용해도 되지만 Instruction Fine-Tuning 의 등장 배경이 Zero-Shot 성능을 향상시키기 위한 학습 방법으로 제안 되었기 때문에 Zero-Shot Prompt 를 가장 많이 사용하곤 한다.

(ps. 그 외에도 몇 가지 이유가 있지만  인공지능 '모델의 편향을 줄이기 위함' 정도까지만 받아들이도록 하자. 자세히 들어가면 전문가 영역으로 이야기가 넘어가야 하기 때문에...)

 

Tech 관점으로 추가 설명하자면 ChatGPT 를 탄생시키게 된 배경 중 하나가 Instruction Fine-Tuning 이다. Reward 모델과 Generation 모델 등 4개 이상의 인공지능 모델의 하모니 + 강화학습이 적용되어 세상을 흔들어 놓은 ChatGPT 괴물이 탄생했다. 

 

Summary

  1. Instruction Fine-Tuning 은 SFT 의 방법 중 하나로 인공지능 모델을 업데이트하며 학습하는 방법이다.
    • 때문에 AI 비전문가는 해당 방법을 추천하지 않는다.
  2. 인공지능 모델 학습 시 Input text 로 Prompt 를 사용한다.
  3. Prompt 는 지시(=Instruction)가 포함되어 있다.
  4. 인공지능 모델 학습 시 주로 Zero-Shot Prompt 를 사용한다. 
  5. Instruction Fine-Tuning 은 ChatGPT 를 만드는 기술 중 큰 부분을 차지하였다.
    • 그렇게 ChatGPT 라는 괴물이 탄생하였다. ㄷㄷ,,,

 

Retrieval-Augmented Generation using Prompting

※ 주의: 비전문가는 Retrieval 단계를 전문가에게 맡기는 걸 추천.

 

이름의 뜻을 살펴보자. 

  • Retrieval-Augmented : 직역하면 '검색 강화' 이다. 사용자의 질문과 관련된 내용을 검색해서 가져와 문맥(=Prompt)으로 사용한다는 뜻이다.
  • Generation : LLM 을 통해 텍스트(=Output)를 생성한다는 뜻이다.

RAG 는 이름의 뜻으로도 알 수 있듯

'특정 Domain 의 방대한 정보를 검색을 통해 찾은 뒤 Prompt 로 구성하고 Generation 모델에 넣어 원하는 결과를 얻는 Process'

를 뜻한다.

 

간단한 예시를 통해 알아보자.

  • Domain : 보험사
  • 목적 : 보험 관련 QnA 를 수행하는 챗봇 서비스 개발을 통해 고객이 언제든지 원하는 답을 얻을 수 있도록 한다.
  • 보험 약관 : 50 페이지 이상 문서 x 1,000 장 (방대한 정보)
  • 사용할 LLM : ChatGPT
  • 고객의 질문.: 계약한지 1년이 안 돼서 암에 걸렸는데 보험금 받을 수 있나요?

보험 약관은 보험사마다 다르기 때문에 단순히 ChatGPT 만 쓰게 되면 잘못된 정보를 사용자에게 제공할 수 있다. 즉, 할루시네이션 이슈에 의해 고객에게 잘못된 정보를 줄 수 있다. 이러한 문제를 해결하기 위해 RAG 가 활용된다.

위 조건에서 RAG 가 어떤 Process 로 활용되는지 확인해보자.

RAG Process

  1. 사용자의 질문이 RAG Process 에 들어간다.
  2. 1,000 장의 보험 약관 문서 중 사용자의 질문과 관련된 '암 보험' 에 대한 문서를 찾는다. ( ① Retrieval )
    • Text 를 Vector 로 변환하여 Vector 간 유사도 비교를 통해 '암 보험' 문서를 찾는다.
    • Text 를 Vector 로 변환하는 방법은 인공지능 모델을 활용한다.
    • 이때 활용하는 인공지능 모델은 LLM 이 아닌 LM 인 BERT 를 주로 사용한다.
    • AI 비전문가라면 이 부분을 구성하기 쉽지 않다. 그러니 도움을 청하자.!
  3. '암 보험' 문서에서 '계약 기간에 따른 보험 수령' 과 관련된 약관을 찾는다. (  Retrieval  )
    • 2번과 동일한 방법으로 진행한다.
    • 2번과 3번을 Step by Step 으로 찾아도 되고 한 번에 찾아도 된다.
  4. 찾은 약관과 질문을 조합하여 ChatGPT 에 Input text 로 들어가는 Prompt 를 만든다.
    • Prompt 예시는 아래를 참고하길 바란다.
    • 추후에 Prompt 팁에 관한 글을 포스팅하도록 하겠다.
  5. Prompt 를 ChatGPT 에 넣어 Output text 를 받는다. ( ② Generation )
    • ChatGPT v4 를 사용하는걸 추천한다.
  6. 서비스의 목적에 맞게 5번 결과를 추가 가공하여 고객에게 전달한다.
    • 이때 추가 가공은 선택의 영역이다. ( Optional

RAG 에서 핵심이 되는 기술인 Retrieval 을 통한 Prompt 생성 결과를 예시를 통해 확인해보자.

{"role" : "system",
"content" : "당신은 인공지능 보험 상담원입니다. 사용자가 여러분에게 과제를 줍니다. 당신의 목표는 가능한 한 충실하게 작업을 완료하는 것입니다. 작업을 수행하는 동안 단계별로 생각하고 단계를 정당화하세요."}
{"role" : "use",
"content": 저는 보험 약관을 처음 접합니다.
[원문] 과 [질문] 이 주어지면, [원문] 에 있는 정보를 바탕으로 고품질의 [답변] 을 만들어주세요. ( [원문] 에서 질문에 대한 명확한 답을 찾을 수 없을 경우 "답변을 찾을 수 없습니다." 로 [답변] 을 작성해주세요.)}

{ One-Shot 추가 - optional }
[원문] : ~~
[질문] : ~~
[답변] : ~~

[원문] : 보통약관_제2절 보장조항_일반암진단비(갱신형) 보장/일반암진단비(간편가입Ⅱ)(갱신형) 보장 글
[질문]: "계약한지 1년이 안 돼서 암에 걸렸는데 보험금 받을 수 있나요?"
[답변]: 

이렇게 Prompt 를 구성하게 되면 ChatGPT 는 웬만하면 [원문] 의 내용 안에서 고객의 질문에 대한 답변을 찾아 Output text 를 만들어 줄 것이다. 이 방법을 통해 할루시네이션을 최소화할 수 있다.

※ role 의 의미는 시스템 프롬프트, 사용자 프롬프트를 각각 정의해서 ChatGPT 가 참고할 수 있도록 정보를 제공하는 거다. 해당 내용은 프롬프트 팁 글을 통해 다루도록 하겠다.

 

Summary

  1. RAG 는
    '특정 Domain 의 방대한 정보를 검색을 통해 찾은 뒤 Prompt 로 구성하고 Generation 모델에 넣어 원하는 결과를 얻는 Process'
    를 뜻한다.
  2. Retrieval 을 위해서는 Text 를 Vector 로 변환하는 인공지능 모델이 필요하다.
    • 방대한 정보를 분할(=Split)하는 작업도 필요하다. (이 작업을 Chunk 라고 한다.)
    • RAG 에서 핵심 기술이 바로 Chunk 와 Text to Vector 이다.
    • AI 비전문가라면 이 부분을 전문가에게 요청하는 걸 추천한다. (전문가도 힘들어하는 영역이기 때문)
  3. Retrieval 을 통해 찾은 정보를 Prompt 에 넣어 LLM 의 할루시네이션을 최소화할 수 있다.
    • RAG 에서 Prompt 는 n-Shot Learning 과 함께 활용한다.
  4. RAG 는 ChatGPT 등장 전에도 존재했지만 ChatGPT 등장 이후 연구가 활성화되었다.
    • ChatGPT 와 같이 성능이 좋은 LLM 이 보편적이고 일반적인 답변을 생성하는데 좋은 성능을 보였기 때문

 

※ 현재 많은 기업에서 광고하는 LLM 관련 제품 Process 는 SFT 와 RAG 를 Mixing 하여 사용하고 있다.

 

Artificial General Intelligence 시대가 온다.

출처: https://blog.kakaocdn.net/dn/cf8mj4/btr8gVqFSzj/ln3kuzXEo1wAYJAkFNeU5K/img.jpg

 

이름의 뜻은 '인공 일반 지능' 이다. 인공 지능 기술이 인간과 동등한 능력을 갖춘다는 의미이다.

여러 분야에서 인간과 유사한 문제 해결 능력을 갖추어 사람과 거의 구별되지 않는 수준이라는 거다.

 

현재의 인공 지능은 인간보다 일부 더 나은 성능을 보이는 작업을 수행하고 있다. 그러나 이러한 인공 지능 기술들은 다른 분야에서는 제한된 성능을 보인다.

반면에 AGI 는 여러 분야에서 인간과 거의 동등한 능력을 보일 수 있다. 예를 들어, 자율 주행 자동차나 의료 진단 등 인간이 수행하는 다양한 작업들에서도 뛰어난 성능을 보일 것으로 기대된다.

 

이렇게 인공 지능의 특이점(인간의 능력을 초월)이 다가오고 있다. 특이점이 다가오게 되면 인간 사회에 큰 변화를 가져올 것이다.

  1. 인공 지능 기술이 새로운 산업을 창출하거나 기존 산업을 완전히 바꿀 수 있음
  2. 일부 직업이 사라질 수 있음
  3. 인간의 역할과 가치, 교육, 법률 등 여러 가지 측면에 변화가 있을 수 있음
  4. etc...

참고로 ChatGPT 는 AGI 가 아니다. 즉, AGI 는 할루시네이션을 논할 레벨이 아니라는 뜻이다.

지금도 실로콘밸리의 미친 과학자들은 AGI 를 위해 계속 연구를 하고 있다.

대비하라. AGI 가 멀지 않았을 수 있다.


 

마무리,,,

지금까지 할루시네이션을 줄이기 위한 방법들을 알아봤다. 또한 과거부터 어떤 과정으로 할루시네이션을 줄이기 위한 고도화 연구가 진행되었는지 알아봤다. 마지막으로 인공지능 모델은 어디로 향하고 있는지 미래는 어떤 모습일지 간단히 알아봤다.

 

요즘 시대를 4차 산업 시대라고 한다. n차 산업에서 n 이 하나씩 늘어날때마다 사회는 극변화하게 된다. 필자는 인공지능을 연구하고 있지만 인공지능에 의해 대체될 수 있다는 생각을 자주 한다. 직업의 형태는 좁고 깊어질 것이며 신념이 없는 사람은 누구나 대체될 수 있다는 생각을 자주 한다. 그만큼 격변의 시기이지 않을까..

 

4차 산업과 친해져야 한다. 그 중심에는 인공지능이 있다. 신념을 세우고 인공지능이라는 옷을 입혀야 대체되지 않고 시대를 살아갈 수 있는 최소한의 조건이 갖춰진거라 생각한다.

 

모두 화이팅이다..

반응형

댓글