UnDoc

RAFT 및 RAG 기반 의료상담 챗봇 모델 연구

2024.9.1. ~ 2024.10.3.

UnDoc 대표 이미지
LangChain
RAG
0 번째 이미지
1 번째 이미지
2 번째 이미지
3 번째 이미지
4 번째 이미지

Undoc은 Gemma-2-2b-it 베이스 모델에 RAGRAFT 기법을 적용해 개발된 의료 상담 챗봇입니다. RAG 기반의 하이브리드 검색 기법을 통해 의료 질의 응답 데이터를 효과적으로 검색하며, RAFT는 불완전한 검색 결과에 대한 강건성을 높이는 역할을 합니다. 이 모델은 초거대 AI 헬스 케어 질의응답 데이터을 활용하여 학습되었으며, 96.02%의 평균 응답 유사도를 기록하며 기존 모델 대비 16% 성능 향상을 달성했습니다.

RAG의 하이브리드 검색 기법은 관련 문서 검색에서 높은 일관성을 보여, 다양한 질의에 대한 응답을 더욱 정확하게 제공합니다. 다만, 본 연구에 사용된 데이터셋이 특정 질문 유형에 초점이 맞춰져 있어, 더 다양한 의료 질의에 대한 성능을 보장하기 위해서는 추가적인 데이터 확장이 필요합니다.

추가적으로, 저는 LangChain을 사용해 RAFTRAG 시스템을 설계하고, FastAPI 기반의 LLM 추론 서버 개발을 구축했습니다. 또한, 검색된 문서와 질의에 기반한 응답 생성을 위해 pinecone을 이용한 임베딩 및 하이브리드 검색을 구현했습니다.

이 과정에서 LangChain의 HuggingFacePipeline 클래스의 stream() 메서드가 Gemma-2-2b-it 모델에서 작동하지 않는 오류를 발견하여, self.pipeline.model.generate 대신 self.pipeline을 직접 호출하는 방식으로 구조를 개선하여 해결했습니다. 해당 수정은 PR로 반영되었으며, 이를 통해 LangChain 프로젝트에 기여했습니다.

이번 연구에서는 의료 전문가 대신 언어 모델을 사용해 응답을 평가했기 때문에, 임상적인 정확성을 완전히 반영하지 못한 한계가 존재합니다. 이를 보완하기 위해, 의료 전문가가 참여해 응답의 정확성을 평가할 필요가 있습니다.

구글 ML 부트캠프 5기 우수 프로젝트 선정

🔧 사용 기술

Python Langchain huggingface RAG pinecone RAFT LoRA BitsandBytes FastAPI Next.js typescript Tailwind CSS

Metric


ModelMedian
Gemma-2-2b-it0.80
Gemma-2-2b-it+RAG0.89
DSF unit80.88
DSF unit8 + RAG0.93
DSF0.90
DSF + RAG0.94
RAFT unit80.86
RAFT unit8 + RAG0.93
RAFT0.88
RAFT + RAG0.96

System Structure

시스템 구조도

🔗 둘러보기

👥 팀원

안혜준 사진

안혜준

RAFT, 및 RAG 시스템(LangChain) 및 서비스 개발

임영윤 사진

임영윤

데이터 수집 및 전처리, pinecone 임베딩