Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

RAG의 한계

검색 증강 생성(Retrieval-Augmented Generation), 즉 RAG는 엔터프라이즈 검색의 미래입니다. 간단히 말해, 문서를 곱고 고차원적인 벡터 슬러리로 갈아 낸 다음, 그 고차원 슬러리를 체로 걸러 청크를 골라내고, 그 청크를 비결정적인 대규모 언어 모델에 흘려 보내면서 반대편 끝에서 쓸모 있는 진실 비슷한 무언가가 나오기를 기도하는 기술입니다. 회사의 지식 베이스로 스무디를 만드는 것과 비슷하지만, 상쾌한 음료를 얻는 대신 종종 얻게 되는 것은… 글쎄요, 그것을 함께 살펴봅시다.

이렇게 상상해 보십시오. 맥락과 도메인 용어, 미묘한 뉘앙스를 이해하는 사람들이 정성껏 작성한, 완벽하게 정리된 문서를 가져다가 BERT 벡터 블렌더 트랜스포머™에 던져 넣습니다. 무엇이 나옵니까? 콘텐츠의 “본질“을 담고 있다고 알려진, 부동소수점 숫자들이 덩어리째 떠다니는 수프입니다. 이는 모나리자의 미소를, 그 그림을 압축한 JPEG의 푸리에 변환 주파수 계수로 묘사하려는 것과 비슷합니다. 기술적으로는 가능하지만, 실제로는 어렵습니다.

그런 다음 그 벡터들을 벡터 데이터베이스에 던져 넣고 HNSW를 사용해 고차원 공간을 탐색하면서, 최근접 이웃 검색이 단지 관련 없이 가까운 벡터가 아니라 실제로 의미적으로 유사한 콘텐츠를 찾아 주기를 바랍니다. 그리고 RAG가 올바르게 작동하려면 일련의 기적이 일어나야 합니다.

  1. 청킹 알고리즘이 문서를 완벽하게 잘라 내야 합니다
  2. 임베딩 모델이 진정한 의미를 포착해야 합니다
  3. 질문의 임베딩과 검색된 청크의 임베딩이 유사해야 합니다
  4. 벡터 검색이 실제로 관련 있는 부분을 찾아내야 합니다
  5. LLM이 오직 컨텍스트 내 정보만으로 이 모든 것을 일관성 있게 엮어 내야 합니다

이는 전화 게임을 하는 것과 비슷하지만, 모든 참가자가 모른다고 말하는 대신 거짓말을 하도록 파인튜닝된 허풍쟁이라는 점이 다릅니다. 각 구성 요소는 저마다의 재미있는 무작위성을 더합니다. 파이프라인 전체는 폭풍우 속 배 위에서 외발자전거를 타며 과녁의 정중앙을 맞히려는 것과 같습니다. 물론 우연히 작동할 수도 있고, 때로는 운이 좋을 수도 있지만, 그 결과를 재현하는 데에는 행운을 빕니다!

그리고 얕은 매칭 문제도 있습니다. “Apple의 기업 구조“에 대해 물었는데 RAG 시스템은 “애플파이“에 관한 콘텐츠를 검색해 오면서 도움이 되고 있다고 생각할 수도 있습니다. 둘 다 “apple“이 들어 있으니까요, 그렇지 않습니까? 이는 유난히 열정적이지만 귀가 조금 어두운 비서를 두는 것과 같습니다. “양자 컴퓨팅“에 대해 물으면, “양자“라는 단어가 비슷하다는 이유로 “양자 치유 크리스털“에 관한 정보를 열심히 가져다줍니다. 이러한 응답의 일관성은 마감 10분 전에 쓴 대학 신입생의 에세이를 닮은 경우가 많습니다. 기술적으로 단어는 모두 들어 있지만, 술 취한 기린이 발레를 시도하는 듯한 우아함으로 배열되어 있습니다.

아무리 신중하게 검색한 컨텍스트가 있어도, LLM은 여전히 허구와 춤추기를 좋아합니다. 검색된 컨텍스트는 엄격한 사실의 집합이라기보다는 모델이 받아들일 수도 있고 그렇지 않을 수도 있는 느슨한 제안에 가깝습니다. 또한 모델이 주어진 컨텍스트에서 샘플링할지, 아니면 인터넷의 어두운 구석구석을 크롤링해 얻은 일반 지식에서 샘플링할지는 아무런 보장이 없습니다. 회사 핸드북 전체를 입력해 주었더니, 정작 모델은 CEO가 포스트잇을 발명한 시간 여행 펭귄이라고 자신 있게 선언할 수도 있습니다. 혹은 존재하지도 않는 정책과 절차를 되풀이하거나, 그것을 경쟁사의 정책과 뒤섞거나, 직원들에게 법을 어기라고 말할 수도 있습니다.

그리고 구조화된 데이터 문제도 있습니다. RAG 시스템에 임시 계약직을 제외한 부서별 평균 급여를 구해 달라고 하면, 시스템은 신이 나서 “우리 조직 전반에 걸친 보상의 풍성한 태피스트리“에 관한 소설을 써 줄 것입니다. 이는 문학 교수에게 세금 신고를 맡기는 것과 같습니다. 교수는 여섯 페이지에 걸쳐 여러분의 W-2가 지닌 은유적 의미를 장황하게 읊은 뒤, 여러분의 401k가 포스트모던 세계에서 욕망에 맞서는 인류의 영원한 투쟁을 상징한다고 결론 내릴 것입니다. 이러한 시스템은 데이터베이스 속 모든 숫자에 대해 유려한 하이쿠를 쓸 수 있지만, 기본적인 집계를 해 달라고 하면 갑자기 “통계학 입문“을 교양 과목으로 들은 철학과 학생이 되어 버립니다. “그런데 탈진실의 세계에서 ’평균’이란 진정 무엇을 의미합니까?“라고 사색에 잠기면서, 단순한 평균을 계산해 달라는 여러분의 절박한 간청은 완전히 무시합니다.

사실 이 모든 것은 별로 중요하지 않습니다. 적어도 현시점에서 대부분의 AI 프로젝트는 실제 문제를 해결하는 것이 아니라, 열두 달 전만 해도 NFT의 패러다임 전환적 힘에 취해 있던 C레벨 임원들을 위해 그럴듯한 데모를 만들어 내는 것이 목적이기 때문입니다. 그리고 RAG 파이프라인은 데모용으로 훌륭합니다. 실제로 작동해야 할 필요 없이 작동하는 것처럼 보이게 해 주기 때문입니다. 이것이야말로 최고의 엔지니어링입니다.


원문 © Stephen Diehl, stephendiehl.com · 글 CC BY-SA 4.0, 코드 MIT · Stephen Diehl은 런던의 소프트웨어 엔지니어이자 작가입니다(저자가 정한 소개 문구). 이 글은 저자가 개인 자격으로 쓴 것이며 어떤 조직과의 연관도 밝히거나 암시해서는 안 됩니다 (라이선스와 고지).
이 페이지는 원문을 한국어로 옮기며 변경한 비공식 번역이며 같은 CC BY-SA 4.0으로 제공합니다 · yeokja 한국어 번역 · Anthropic 사의 claude-opus-5-5 모델을 활용하여 번역되었으며 학습을 모두 비허용한 상태로 작업하였습니다.