RAG 파이프라인 구축: LLM 환각 현상 해결
RAG 파이프라인 구축: LLM 환각 현상 해결
문제 상황
PNU x Upstage DOCUMENT AI CHALLENGE에서 해외 파견 의료진을 위한 AI 서비스 “똑똑(DocDoc)”을 개발했다. 의료진이 질문하면 관련 논문을 찾아서 답변해주는 챗봇이었다.
처음에는 단순히 LLM에 질문을 던지는 방식으로 구현했는데, 문제가 생겼다.
Hallucination (환각) 현상:
- LLM이 그럴듯하게 답변하는데 실제로는 틀린 정보다
- 존재하지 않는 논문을 인용하기도 한다
- 의료 분야에서는 잘못된 정보가 치명적일 수 있다
해결책: RAG (Retrieval-Augmented Generation)
LLM이 답변을 생성하기 전에 관련 문서를 먼저 검색해서 컨텍스트로 제공하는 방식이다.
[이미지 필요] RAG 파이프라인 아키텍처 다이어그램 (Query → Embedding → Vector Search → Context → LLM → Response 흐름)
파이프라인 구조:
- 사용자 질문을 임베딩 벡터로 변환
- Pinecone (Vector DB)에서 유사한 논문 조각 검색
- 검색된 내용을 컨텍스트로 LLM에 전달
- LLM이 컨텍스트를 기반으로 답변 생성
기술 스택
- Vector DB: Pinecone
- Embedding: OpenAI Embeddings
- LLM: GPT-4
- Framework: LangChain
- Backend: Node.js, Express
사용자 경험 개선: Server-Sent Events
LLM 답변 생성에 시간이 오래 걸렸다. 사용자가 빈 화면만 보면서 기다리면 이탈할 수 있다.
해결책: EventStream (SSE)
- 답변이 생성되는 대로 실시간으로 스트리밍
- ChatGPT처럼 글자가 하나씩 나타나는 효과
- 사용자가 답변이 생성되고 있다는 걸 알 수 있다
배운 점
- LLM은 만능이 아니다. 특히 전문 지식 분야에서는 Hallucination 문제가 심각하다.
- RAG를 쓰면 LLM이 실제 문서를 기반으로 답변해서 정확도가 올라간다.
- 긴 응답 시간은 스트리밍으로 해결할 수 있다.
PNU x Upstage DOCUMENT AI CHALLENGE 2025 본선 진출작 “똑똑(DocDoc)” 개발 중 경험한 내용 정리.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.