정보 검색(IR)과 자연어 처리(NLP) 분야에서 동의어 문제는 오랜 기간 해결해야 할 과제로 여겨져 왔습니다. 특히, 의료, 법률, 기술, 금융 같은 전문 분야에서는 동일한 개념이 다양한 표현으로 사용됩니다. 이를 정확하게 매칭하지 않으면 중요한 정보를 놓칠 수 있습니다.
예를 들어, 의료 분야에서 "전자의무기록"과 "EMR(Electronic Medical Record)"는 같은 의미지만, 표현 방식이 다릅니다. 이러한 동의어를 처리하지 못하면, 사용자가 원하는 정보가 검색되지 않을 수 있습니다.
RAG(Retrieval-Augmented Generation) 시스템에서도 이러한 동의어 문제는 검색 정확도와 생성된 답변의 품질에 큰 영향을 미칩니다. RAG는 크게 두 단계로 이루어집니다.
하지만 Retriever가 동의어를 처리하지 못하면, 올바른 문서를 찾지 못해 Generator가 제대로 된 답변을 생성하지 못합니다. 이는 질문의 표현 방식에 따라 답변의 정확성이 달라질 수 있다는 점을 의미합니다.
질문 : 환자가 자신의 전자의무기록을 직접 열람하는 경우 어떤 문제가 있나요?
문서(정답 근거) : 환자의 EMR 열람은 환자 중심의 의료 서비스로 나아가는 중요한 단계지만, 이를 위해 적절한 교육과 보안 조치가 필수적입니다.
이 경우, 사용자는 "전자의무기록"이라는 표현을 사용했지만, 문서에는 "EMR"이라는 표현이 사용되었습니다.
BM25와 같은 키워드 서치 방식의 Retriever는 "전자의무기록"이라는 단어를 검색할 때 "EMR"이라는 단어를 인식하지 못해 문서를 누락시킬 가능성이 큽니다. 사용자는 관련 문서를 찾지 못하고, 잘못된 답변을 생성하게 됩니다.
이처럼 RAG에서 동의어 처리가 제대로 이루어지지 않으면, 중요한 정보를 놓치게 됩니다.
Retriever 구현 방법은 키워드 서치, 시멘틱 서치, 하이브리드 서치로 구성될 수 있습니다.
NLP - Text Encoding: Word2Vec - AI PROJECTS
Retriever에서 올바른 문서를 찾았더라도, Generator에서 동의어를 적절히 이해하지 못하면 여전히 부정확한 답변이 생성될 수 있습니다.
예를 들어, 문서에 "EMR"이 포함되어 있지만, 생성기가 "EMR"을 "전자의무기록"으로 변환하지 못하면 사용자에게 명확한 답변을 제공하지 못할 수 있습니다.
이를 해결하기 위해서는 Prompt 엔지니어링을 통해 동의어를 명시하는 방식으로 개선할 수 있습니다.
Retriever에서 동의어 문제를 해결하기 위한 방법 중 하나는 동의어 사전(synonym dictionary)을 구축하고 이를 검색 시스템에 적용하는 것입니다. Elasticsearch(ES)와 같은 검색 엔진에서는 쿼리를 전송할 때 특정 단어를 동의어로 변환하여 검색 범위를 넓힐 수 있습니다.
구체적으로, 검색 요청(query)을 생성할 때 사용자가 입력한 키워드에 대해 동의어를 포함한 여러 가지 표현을 리스트로 구성해 검색하도록 설정합니다. 예를 들어, 사용자가 "전자의무기록"을 검색하면, 시스템이 이를 "전자의무기록", "EMR", "Electronic Medical Record"와 같은 동의어로 변환하여 검색을 수행하는 방식입니다.
이러한 방식은 검색 색인(index)에 존재하는 문서의 다양한 표현을 포괄적으로 찾아낼 수 있게 합니다. 동의어를 적용한 쿼리를 구성하는 방식은 아래와 같습니다:
이 접근법은 동의어 사전이 잘 구축될수록 검색 성능이 향상됩니다. 특히, 도메인별로 특화된 동의어 사전을 수동 또는 자동으로 구축하여 검색 정확도를 높일 수 있습니다.
올거나이즈의 Alli는 도메인 별로 구축된 동의어 사전과 사용자가 직접 관리 및 추가한 동의어 사전을 함께 사용합니다. 이를 통해 지속적으로 검색 시스템을 업데이트하고, 새로운 용어나 표현을 반영할 수 있습니다.
Generation 단계에서도 동의어를 적절하게 반영해야 합니다. 검색 단계에서 올바른 문서를 찾았다 하더라도, 생성 모델이 동의어를 이해하지 못하면 사용자에게 명확하고 정확한 답변을 제공하기 어렵습니다.
이 문제를 해결하기 위해, 사용자가 질문을 입력할 때, 질문에 관련된 동의어를 prompt에 추가해 생성 모델이 이를 이해하고 반영할 수 있도록 합니다. 아래와 같이 프롬프트에 추가하면 대응이 가능합니다.
아래는 실제 Alli에서 적용된 synonym을 프롬프트에 적용한 방식입니다.
실험은 총 21개의 일본어 질문과 문서를 대상으로 진행되었습니다. 각 실험에서 Retriever는 상위 3개의 결과를 추출하는 방식으로 테스트되었으며, 생성(Generation) 평가는 Retriever 이후의 결과에 기반해 답변을 생성하고 사람이 직접 정성 평가를 수행하는 방식으로 이루어졌습니다.
실험은 총 3가지 버전으로 구성되었습니다.
각 버전의 구체적인 설정과 결과는 다음과 같습니다.
v1은 동의어를 전혀 사용하지 않은 상태로, 검색 및 생성 정확도가 31.25%로 다소 낮은 수준을 보였습니다. 이는 시스템이 다양한 표현을 인식하지 못하고, 질문과 문서 간의 매칭이 제한적이었기 때문입니다.
v2에서는 Retriever 단계에만 동의어를 적용하여 검색 정확도가 81.25%로 크게 향상되었습니다. 하지만 생성 단계에서 동의어가 적용되지 않아 생성 정확도는 43.75%로 다소 낮게 나타났습니다. 이는 검색된 문서의 품질이 높아졌지만, 생성 과정에서 문서 내 표현을 충분히 활용하지 못했기 때문입니다.
v3에서는 Retriever와 생성 단계 모두에 동의어를 적용한 결과, 검색 정확도는 v2와 동일한 81.25%를 유지하면서도 생성 정확도는 68.75%로 크게 향상되었습니다. 이는 동의어를 통해 문서 내 표현이 보다 자연스럽게 활용되고, 질문에 대한 답변 생성 과정이 더욱 정확해진 결과로 해석할 수 있습니다.
올거나이즈는 RAG 시스템의 동의어 문제를 효과적으로 해결하기 위해 동의어 사전 구축, 프롬프트 엔지니어링 등 다양한 기술을 적극적으로 도입하고 있습니다. 이를 통해 검색 정확도를 높이고, 사용자 질문에 대한 답변 품질을 지속적으로 개선하고 있습니다.
도메인 특화 동의어 사전과 사용자 커스터마이징 기능을 결합해, 올거나이즈는 실제 비즈니스 환경에서 발생하는 복잡한 검색 및 응답 문제를 해결하는 강력한 솔루션을 제공합니다. 기업용 RAG 시스템을 고민하고 계신다면, 올거나이즈가 신뢰할 수 있는 파트너가 되어 드릴 것입니다.