RAG HyDE 기법
LLM 서비스를 만들다 보면 가장 많이 부딪히는 벽이 하나 있습니다. 바로 사용자는 전문 용어를 쓰지 않는 다는 점 입니다. 이 간극을 메워주는 HyDE(Hypothetical Document Embeddings) 기법에 대해 소개하겠습니다.
RAG의 고질적인 문제
전통적인 RAG 방식은 사용자의 질문을 그대로 벡터로 변환해 지식 베이스(PDF 등)에서 유사한 문장을 찾습니다. 하지만 여기서 문제가 발생합니다.
사용자의 질문: “사장님이 손님 없다고 일찍 가라는데 돈 못준대요. 어떡하죠?” (일상어)
법 내용: “사용자의 귀책사유로 휴억하는 경우… 휴업수당을 지급하여야 한다.” (전문용어)
‘일찍 가라’와 ‘휴업 수당’이라는 단어 사이의 거리감을 좁히기 어렵기 때문에 엉뚱한 문서를 들고 오게 됩니다.
해결사 등장, HyDE(가상 문서 임베딩)란?
HyDE는 질문을 바로 검색하는 대신, 중간에 가상의 답변을 한 번 생성하는 단계가 추가된 방식입니다.
(1) 가상 답변 생성: LLM이 질문을 보고 이건 아마 ‘휴업수당’이나 ‘근로 시간’에 관한 법적 답변이 필요할 거야 라고 판단해 가상의 전문적인 답변을 미리 작성합니다.
(2) 벡터 검색: 실제 질문 대신, LLM이 쓴 전문적인 가상 답변을 가지고 검색을 합니다.
(3) 최종 결과: 가상 답변은 이미 법전의 문체와 비슷하기 때문에, 실제 법 조항을 훨씬 더 정확하게 찾아냅니다.
실전 워크플로우 A/B Test : 근로 기준법 RAG 적용 결과
비교 항목 | 일반 RAG | HyDE 적용 RAG |
|---|---|---|
검색 쿼리 | 사용자 질문 그대로 사용 | LLM이 생성한 ‘가상의 법률 답변’사용 |
유사도 점수 | 0.1251 | 0.6261(약 4배 향상) |
검색 결과 | 엉뚱한 조항 검색 | 제 46조 휴업수당 정확히 검색 |
일반 RAG는 ‘알바’, ‘사장님’ 같은 단어를 법전에서 찾으려다 보니 실패합니다. 반면 HyDE는 LLM이 이를 ‘근로자’, ‘휴업 수당’ 이라는 법률 용어로 먼저 치환(가상 답변 생성) 한 뒤 검색하기 때문에 정확도가 압도적입니다.
유사도 점수가 0.1대에서 0.6대로 올랐다는 것은, 검색 엔진이 “이 문서가 정답일 확률이 매우 높다”라고 확신하게 되었다는 뜻입니다.
결론 - Dify에서 HyDE를 활용하면 좋은 이유
비전문가 친화적: 사용자가 전문 용어를 몰라도 시스템이 알아서 ‘전문가 언어’로 번역해 검색합니다.
높은 확장성: 법률뿐만 아니라 사내 규정, IT 가이드 등 용어가 딱딱한 모든 분야에서 즉각적인 성능 개선을 볼 수 있습니다.
정확한 근거 제시 : 검색 품질이 올라가면 LLM의 할루시네이션(환각 현상)이 현저히 줄어듭니다.
오픈네트웍시스템 이승헌