안녕하세요 오늘은 BESPIN GLOBAL Innovate AI실 구동민님이 작성해주신 ‘[Advanced AI] RAG 시스템에서의 명사구 충돌 문제와 해결방안’ 대해 소개해드리도록 하겠습니다.
지난 [Advanced AI] 시리즈에서는 Transformer 구조와 Attention Mechanism을 통해 자연어 처리 방식에 대해 알아보았습니다. 이번 두번째 시리즈에서는 LLM 모델을 사용한 RAG(검색 증강 생성) 시스템에서 발생하는 환각(Hallucination) 중 명사구 충돌로 인해 발생하는 환각 문제에 대해 다뤄보고자 합니다.
다음 내용은 Acurai 에서 24년 12월에 기재한 RAG 시스템에서의 Hallucination 문제를 다룬 논문에 대한 내용을 다뤘습니다.
[참조] Hallucination Eliminating using Acurai 논문 링크 https://arxiv.org/html/2412.05223v1
목차
- 환각(Hallucination) 문제의 이해
- RAG 시스템과 그 한계
- 명사구 충돌(Noun-Phrase Collision)의 개념
- Acurai의 해결 방법론
1. 환각 (Hallucination) 문제에 관하여
환각(Hallucination)은 대규모 언어 모델(LLM)이 실제로 존재하지 않거나 사실과 다른 정보를 생성하는 현상을 말합니다. AI 챗봇을 사용한 경험이 있으신 분들은 다음의 환각을 경험해 본 적이 있을 것 입니다
- 환각이 발생하는 이유:
- LLM은 훈련 데이터의 패턴을 기반으로 그럴듯한 응답을 예측
- 특정 도메인 지식이나 맥락 없이 ‘추측’하여 그럴듯하지만 사실과 다른 답변 생성
- 모델이 권위 있는 톤으로 답변하여 사용자가 잘못된 정보를 신뢰하게 됨
예를 들어, 모델은 존재하지 않는 학술 논문을 인용하거나, 실제로 없는 개념을 설명하거나, 잘못된 사실을 제시할 수 있습니다. 이러한 문제를 해결하기 위해 검색 증강 생성(RAG) 시스템이 나오게 되었습니다.
2. RAG 시스템과 그 한계
RAG(Retrieval-Augmented Generation) 시스템은 모델이 사전 학습된 지식에만 의존하는 대신, 외부 문서를 참조하여 관련성 있고, 최신의 사실적인 정보를 제공하는 방식입니다.
RAG의 기본 원리: RAG 에 대한 자세한 설명은 [LLM 기반 AI 플랫폼 개발 과정] 에서 확인하실 수 있습니다.
사용자 질문 -> 분석관련 문서 검색 -> 검색된 문서를 바탕으로 응답 생성
2020년 RAG가 소개된 이후 5,000개 이상의 논문이 발표되었음에도 불구하고, 24년 12월 기준 최신 LLM 모델을 사용한 최신 RAG 시스템조차도 RAG QA 벤치마크에서 80% 이상의 정확한 결과를 생성하지 못하고 있습니다
- RAG의 한계:
- 긴 컨텍스트 (최대 125K 토큰)를 가진 최신 모델들도 80% 이상의 정확도를 달성하지 못함
- 100% 사실적이고 관련성 있는 데이터를 LLM에 제공해도 100% 사실적인 결과가 나오지 않음
- 컨텍스트 길이를 늘려도 정확도는 일정 수준 이상 향상되지 않음
RAG 한계는 LLM에 명확하게 명시된 사실을 제공하더라도 환각 없는 정확한 응답을 생성하는 체계적인 방법을 찾는 것이 필요함을 보여줍니다.
3. 명사구 충돌 (Noun-Phrase Collision) 의 개념
참조한 논문인 Acurai의 연구에 따르면, RAG 기반 환각의 핵심 원인은 ‘명사구 충돌(Noun-Phrase Collision)’입니다. 이는 LLM이 의미적으로 유사하지만 실제로는 서로 다른 개념인 두 명사구를 동일한 것으로 혼동할 때 발생합니다.
- 명사구 충돌의 이해:
- LLM은 훈련 과정에서 명사구를 중심으로 자체 조직화함
- 의미적으로 유사한 명사구들(예: 칼슘 <-> 마그네슘, Iphone15 <-> Iphone16)이 서로 다른 개념을 지칭할 때 혼란 발생
4. 명사구 충돌 문제와 Acurai의 해결 방법론
명사구 충돌을 이해하기 위해 사례들을 통해 알아보겠습니다.
- 사례 1: 기술 제품 혼동 사례
전자제품 회사의 기술 지원 챗봇 예시 :
사용자 질문 : “iPhone 15와 iPhone 16의 카메라 성능과 배터리 수명을 비교해주세요.”
기술 지원 데이터베이스에는 iPhone 15에 대한 상세 정보만 있고, iPhone 16에 대한 정보는 아직 없다고 가정해보겠습니다. 그런데 챗봇이 다음과 같이 응답합니다.
챗봇 환각 답변 : “iPhone 16은 1억 화소 카메라와 30시간의 배터리 수명을 갖추고 있으며, iPhone 15는 4800만 화소 카메라와 28시간의 배터리 수명을 제공합니다.”
‘iPhone 15’와 ‘iPhone 16’은 의미적으로 매우 유사한 명사구이지만, 실제로는 서로 다른 제품을 지칭합니다. 이때 LLM은 ‘iPhone 16’에 대한 정보가 없음에도 불구하고, ‘iPhone 15’의 속성을 참고하여 존재하지 않는 정보를 생성했습니다.
- 사례 2: 의학 정보 혼동 사례
병원의 의료 정보 시스템에서 다음과 같은 정보가 제공됩니다:
제공 데이터 : “아스피린은 해열, 진통, 항염증 효과가 있는 약물입니다. 아스피린은 혈소판 응집을 방지하여 혈전 형성을 억제합니다. 아스피린은 위장 출혈의 위험이 있어 식사와 함께 복용하는 것이 좋습니다.”
사용자 질문 : “타이레놀의 효과와 부작용은 무엇인가요?”
챗봇 환각 답변 : “타이레놀은 해열, 진통, 항염증 효과가 있는 약물입니다. 타이레놀은 혈소판 응집을 방지하여 혈전 형성을 억제합니다. 타이레놀은 위장 출혈의 위험이 있어 식사와 함께 복용하는 것이 좋습니다.”
‘아스피린’과 ‘타이레놀’이 둘 다 진통제라는 의미적 유사성 때문에 발생한 명사구 충돌입니다. 실제로 타이레놀은 혈소판 응집 방지나 위장 출혈 같은 특성을 가지고 있지 않습니다.
4. Acurai의 해결 방법론: 단계별 적용 예시
이제 Acurai의 3단계 방법론이 어떻게 적용되는지 살펴보겠습니다.
4-1. 명사구 충돌을 분리하기 위한 쿼리 분할
금융 상담 챗봇 사례:
고객 질문: “저축예금과 정기예금의 이자율과 가입 조건을 알려주세요.”
이 질문에는 두 가지 명사구 충돌 쌍이 있습니다: ‘저축예금’ <-> ‘정기예금’, ‘이자율’ <-> ‘가입 조건’.
Acurai 방식에 따라 이를 다음과 같이 분할합니다:
분할된 쿼리 1: "저축예금의 이자율은 얼마인가요?"
분할된 쿼리 2: "저축예금의 가입 조건은 무엇인가요?"
분할된 쿼리 3: "정기예금의 이자율은 얼마인가요?"
분할된 쿼리 4: "정기예금의 가입 조건은 무엇인가요?"
각 쿼리는 이제 하나의 명사구에만 집중하고 있어, 혼동의 가능성이 크게 줄어듭니다.
4-2. 명사구 충돌이 없는 간단한 문장만 LLM에 전송
IT 기술 지원 사례:
원본 문서:
“Windows 11은 최신 Microsoft 운영 체제로, 새로운 UI와 향상된 성능을 제공합니다.
macOS는 Apple의 운영 체제이며, 최근 Monterey 버전이 출시되었습니다. 둘 다 기업 환경에서 널리 사용되며, 각각 고유한 보안 기능과 업데이트 정책을 가지고 있습니다.”
Acurai 방식으로 변환된 문장들:
쿼리: “Windows 11의 특징은 무엇인가요?”
사실 집합:
- Windows 11은 Microsoft의 운영 체제입니다.
- Windows 11은 새로운 UI를 제공합니다.
- Windows 11은 향상된 성능을 제공합니다.
- Windows 11은 기업 환경에서 널리 사용됩니다.
- Windows 11은 고유한 보안 기능을 가지고 있습니다.
- Windows 11은 고유한 업데이트 정책을 가지고 있습니다.
쿼리: “macOS의 특징은 무엇인가요?”
사실 집합:
- macOS는 Apple의 운영 체제입니다.
- macOS의 최근 버전은 Monterey입니다.
- macOS는 기업 환경에서 널리 사용됩니다.
- macOS는 고유한 보안 기능을 가지고 있습니다.
각 운영 체제에 대한 정보가 명확히 분리되어 있어, LLM이 Windows 11과 macOS의 특성을 혼동할 가능성이 줄어듭니다.
4-3. 수정된 텍스트 재매핑
원본 문서: “제네시스 GV80은 고급 SUV로, 하이브리드 시스템을 탑재하고 있습니다. 제네시스 GV80의 하이브리드 시스템은 연비를 크게 향상시키며, 제네시스 커넥트 시스템과 함께 작동하여 최적의 주행 경험을 제공합니다.”
이 문서에는 “제네시스”라는 단어가 브랜드(‘제네시스’)와 시스템(‘제네시스 커넥트’)이라는 두 가지 다른 개념을 지칭하는 데 사용되어 명사구 충돌이 발생할 수 있습니다.
Acurai 방식으로 변환:
- [브랜드_X] GV80은 고급 SUV입니다.
- [브랜드_X] GV80은 하이브리드 시스템을 탑재하고 있습니다.
- [브랜드_X] GV80의 하이브리드 시스템은 연비를 크게 향상시킵니다.
- [시스템_Y]는 [브랜드_X] GV80에 탑재되어 있습니다.
- [시스템_Y]는 하이브리드 시스템과 함께 작동합니다.
- [시스템_Y]는 최적의 주행 경험을 제공합니다.
그 후, LLM의 응답에서 [브랜드_X]는 ‘제네시스’로, [시스템_Y]는 ‘제네시스 커넥트 시스템’으로 다시 매핑됩니다.
오늘은 RAG 시스템에서의 명사어구 충돌 문제와 해결 방안에 대해 다뤄보았습니다. 실제 기업형 RAG 시스템을 구축할 때는 각 기업의 문서의 형태와 내용이 상이하므로, Acurai 의 방식을 고려하는 것이 100% 정성을 가져오기 어려울 수 있습니다. 따라서, 기업의 문서의 데이터와 사용자의 요구사항을 고려하여 환각을 최소화 하는 최적의 전처리 및 데이터 사전처리 방식을 개발해 적용하면 정확성을 올릴 수 있을 것 입니다.
여기까지 ‘'[Advanced AI] RAG 시스템에서의 명사구 충돌 문제와 해결방안’’에 대해 소개해드렸습니다. 유익한 정보가 되셨길 바랍니다. 감사합니다.
Written by 구 동민 / Innovate AI실
BESPIN GLOBAL