GPT 할루시네이션 오류와 비용문제 해결하기
서비스

GPT 할루시네이션 오류와 비용문제 해결하기

Jen
,
Data Scientist
콘텐츠 공유

GPT 기반 챗봇 개발의 고통, 그리고 해결책
할루시네이션 오류와 비용문제를 해결한 핵클의 노하우를 공개합니다!

ChatGPT가 발표된 이후, 많은 회사가 상담 및 질문답변 챗봇을 개발하는 프로젝트에 도전하고 있습니다.
하지만 이러한 개발 과정은 쉬운 일이 아닙니다. 특히, GPT를 활용하는 두 가지 방법에 따라 각각 다른 문제들이 발생합니다.

그러나, 핵클은 이러한 문제들을 간단한 프롬프트 엔지니어링과 GPT에서 제공하는 숨은 기능을 활용하여 해결했습니다. 이제 핵클의 노하우를 여러분과 공유하고, 챗봇 만들기 프로젝트로 고통받는 분들을 해방하고자 합니다. 이 글에서는 GPT 기반 챗봇 개발의 어려움과 함께 핵클의 해결책을 소개합니다.

1. 할루시네이션(Hallucination) 이란?  

영어의 원래 뜻은 환각이나 환영, 환청으로 챗GPT와 같은 생성형 AI가 응답을 생성할 때 학습 데이터에 기반하지 않고, 맥락과 관련 없거나 사실이 아닌 내용을 마치 옳은 답처럼 내놓는 문제로 그 원인은 학습시킬 때 잘못된 데이터 값이 사용되었거나 아직 세상에 존재하는 모든 정보를 학습하지 못했기 때문입니다. 회사를 대표해 고객의 문의에 답변하거나 어떤 정확한 정보를 제공해야 하는 챗봇이 오답을 제공한다면 큰 문제가 될 수 있습니다. 그렇다면 어떻게 해결할 수 있을까요? 앞서 언급한 원인을 보면? 답이 보입니다. 네~ 학습을 제대로 시키면 됩니다.

2. 제대로 된 학습, Fine-tuning으로 해결?

openAI는 기존의 GPT모델에 추가로 학습시켜 특정 도메인에 특화된 AI 모델을 누구나 만들 수 있는 Fine-tuning 모델을 제공하고 있습니다. Fine-tuning 모델을 만드는 과정은 매우 간단합니다. 가장 중요한 것은 학습 데이터를 준비하는 것으로 아래 양식과 같은 training data (prompt = 입력 질문, completion = 출력 답변) 세트를 준비해서 업로드만 하면 됩니다.  

[학습데이터 예시]


위와 같이 준비를 마쳤다면 이제 어떤 모델을 활용해서 Fine-tuning 모델을 생성할지 선택해야 합니다.
openAI에서는 GPT3를 기반으로 한 Ada, Babbage, Curie, Davinci 4가지 옵션을 제공하고 있는데 A/B 테스트 의사결정과 같이 고도의 사고가 필요한 작업이라면 가장 비싼 Davinci 모델을 활용하는 것을 추천합니다.
모델까지 결정했다면 이제 학습 데이터로 모델을 생성하고 활용하면 됩니다.

이렇게 제대로 된 학습으로 할루시네이션 이슈를 Fine-tuning을 통해 해결하고 프로젝트가 마무리 되면 좋겠지만 Fine-tuning 모델을 활용해 답변을 생성하는 것은 Davinci 모델 기준으로 1K 토큰당 $0.12로, GPT3.5 16K 모델보다 30배 비싸집니다.

이로 인해 정작 활용에 앞서 비용에 대해 고민하게 됩니다. 만일 지금 Fine-tuning 모델을 고민하고 있다면 예상 비용을 꼭 확인하길 바랍니다. 그리고 지난 2023.7.6 발표에 따르면 다가오는 2024.1.4부터는 Ada, Babbage, Curie, Davinci Fine-tuning 모델에 대한 지원이 종료될 예정이라는 공지가 있었습니다.

[GPT 가격] https://openai.com/pricing


3. 할루시네이션도 비용 문제도 해결하고 싶다면? 핵클 처럼!

chatGPT 이전 AI 챗봇 모형을 개발하는 방법은 학습 데이터를 구축해 놓고, 응답 데이터베이스를 이용해 정보 검색 모형을 활용해 정해진 답변만 생성해 내는 방식이었습니다.
핵클 AI 챗봇은 여기서 아이디어를 착안할 수 있었습니다. 그 포인트는 ChatGPT에게 국어의 “지문”과 같은 형태로 context를 제공하고 그 안에서만 어떤 질문에 대한 답변을 생성해 내게 하는 것입니다.  
이와 같은 경우 아래의 모든 문제를 해결할 수 있습니다. 자~ 이제 그러면 문제는 답변 생성에 필요한 지문을 어떻게 생성할 수 있을까입니다.

4. GPT의 숨은 기능 embedding

GPT 가이드 문서를 살펴보면 “Embedding” 섹션 (https://platform.openai.com/docs/guides/embeddings/what-are-embeddings) 이 있는데 text-embedding-ada-002 모델을 검색, 분류, 추천 등에 활용할 수 있다고 기술되어 있습니다.

embedding이란 아래 이미지와 같이 Text를 embedding (0~1 사이의 벡터 = 숫자) 값으로  변환해 주는 것으로 이는 두 문장 (단어, 문서 등) 간의 유사도를 측정할 때 활용되고 text-embedding-ada-002 모델 사용 시 $1 기준 약 3,000page 분량을 embedding 할 수 있습니다.

5.학습 필요 없는 검색 기반 챗봇 만들기

친절하게도 openAI에서는 GPT 활용 예시 코드를 아주 상세하게 github를 통해 공유하고 있습니다. 하단에 첨부한 Semantic search, search & ask 링크를 참조하여 나만의 챗봇을 만들어 보세요. 1~2시간 만에 뚝딱 만드실 수 있습니다. 이렇게 만든 핵클 AI 챗봇은 핵클 대시보드 홈 (https://dashboard.hackle.io/home) 에서 이용하실 수 있습니다.

[예시 코드]

[Semantic search] https://github.com/openai/openai-cookbook/blob/main/examples/Semantic_text_search_using_embeddings.ipynb
[search & ask] https://github.com/openai/openai-cookbook/blob/main/examples/Question_answering_using_embeddings.ipynb

트위터에 공유하기
제품 주도 성장에 필요한 모든 기능을
All-in-One 플랫폼 핵클과 함께 시작해보세요!
무료 체험 시작하기
콘텐츠 공유
인터뷰에 나온 회사처럼,
빠르게 성장하고 싶다면 핵클과 함께 하세요!
핵클 드림팀 신청하기

성장의 시작, 핵클이 함께합니다!

비대면 바우처를 통해 70% 할인된 금액으로 핵클을 시작해보세요.
자세히 알아보기

👀 이런 콘텐츠는 어때요?