긴 컨텍스트가 RAG를 죽이지 않았다: 진정한 아키텍처 결정
요약
본 글은 LLM에 전체 문서를 입력하는 '긴 컨텍스트' 방식과 RAG(검색 증강 생성) 아키텍처의 장단점을 비교 분석합니다. 문서가 작고 정적일 때는 전체 입력을 사용하되, 코퍼스가 크거나 자주 업데이트되는 경우에는 확장성과 정확한 출처 관리를 위해 RAG를 사용하는 것이 최적임을 강조합니다.
핵심 포인트
- 문서가 작고 불변할 때: 전체 문서 입력(Full-Doc)이 적합합니다.
- 코퍼스 규모가 커지거나 최신 정보가 필요할 때: RAG 아키텍처로 전환해야 합니다.
- RAG는 정확한 출처를 제공하지만, 리트리버의 성능에 따라 누락 위험이 있습니다.
- 최적의 방법은 콘텐츠 특성에 따라 Full-Doc과 RAG 중 적절한 도구를 선택하는 것입니다.
긴 컨텍스트가 RAG를 죽이지 않았다: 진정한 아키텍처 결정
제가 처음 LLM을 핀테크 리스크 엔진에 연결했을 때, 'CSV 전체를 그냥 넣으면 돼. 몇 천 줄밖에 안 되니까'라고 생각했습니다. 모델은 멈췄고, API는 거부했으며, 저희 개발자들은 토큰 제한에 대해 소리를 지르기 시작했습니다. 알고 보니 신용카드 명세서가 담긴 5MB PDF를 프롬프트에 넣는 것은 마치 '전쟁과 평화'를 한 번에 읽으려는 것과 같았습니다. 대략적인 내용은 파악할 수 있지만 세부 사항은 놓치고, 토큰 비용만 엄청나게 지출하게 됩니다.
그래서 저는 다시 설계도면으로 돌아가 다음과 같은 질문을 던졌습니다: 문서 전체를 입력하는 것이 실제로 작동하는 경우는 언제이며, 언제 검색 증강 생성(RAG) 계층이 필요한가?
-
정적이고 짧으며 자체적으로 완결된 자료 – 예: 1페이지짜리 서비스 약관, 퀴즈 문제 은행, 또는 강의 계획서 일부 조각 등은 프롬프트에 안전하게 넣을 수 있습니다. 모델이 모든 것을 한 번에 보기 때문에 정확도가 높게 유지되며, 검색 노이즈가 거의 없고 출처(provenance)도 간단합니다. 즉, 프롬프트 자체가 출처입니다. 토큰 비용은 예측 가능하고 보통 저렴합니다.
-
코퍼스(corpus)가 몇 킬로바이트를 넘어서거나 매일 변경되기 시작하면, '긴 컨텍스트' 트릭은 끝납니다. 저희 에듀테크 챗봇에서 전체 과정 카탈로그(200페이지 이상)를 입력해 보려고 했습니다. 모델이 모듈 번호를 환각적으로 생성하기 시작했고 지연 시간도 급증했습니다. RAG가 우리를 구했습니다: 우리는 각 강의를 인덱싱하고 가장 관련성이 높은 세 개의 청크만 가져왔으며, 답변은 정확하게 나왔습니다. 검색은 유사성 점수가 관련 있다고 말하는 것만 표면화시키기 때문에 노이즈를 줄여주지만, 동시에 새로운 실패 모드도 도입합니다. 즉, 리트리버(retriever)가 올바른 단락을 놓칠 수도 있다는 것입니다.
자세히 분석해 봅시다
| 측면 | 전체 문서 입력 (Full-Doc) | RAG |
|---|---|---|
| 정확도 | 텍스트의 100% 재현율(recall)을 가지지만 관련 없는 내용에 파묻힐 수 있다. | 리트리버가 좋으면 정밀도가 더 높지만, 리트리버가 나쁘면 중요한 사실을 놓칠 수 있다. |
| ... |
우리는 최신 AML(자금세탁방지) 규정이 필요한 KYC 어시스턴트를 구축했습니다. 규정은 매주 업데이트되므로, 우리는 각 PDF 파일을 인덱싱했습니다. 이 어시스턴트는 이제 오래된 프롬프트에서 추측하는 것이 아니라, 정확한 조항을 가져와 “현금 거래의 새로운 기준치는 무엇인가요?”라는 질문에 답합니다.
사례 연구 2 – 에듀테크 (Edutech)
저희 과외 봇은 300페이지 분량의 물리 교과서에서 관련 학습 내용만 가져오기 위해 RAG를 사용했습니다. 학생들은 전체 PDF 파일을 처리하려고 했을 때 보였던 4초 지연 시간 대신, 0.8초 만에 답변을 받았습니다.
결론적으로
긴 컨텍스트가 RAG를 망치지 않았습니다. 단지 각 도구마다 최적의 사용처(sweet spot)가 있다는 것을 상기시켜 주었을 뿐입니다.
- 출처가 작고, 불변하며, 위험도가 낮은 경우 **전체 문서 (full-doc)**를 사용하세요.
- 확장성, 최신 정보 반영, 또는 더 엄격한 제어가 필요한 경우 RAG로 전환하세요.
여러분은 어떤 가장 큰 “긴 컨텍스트 실패 사례”를 겪고 극복했나요? 아래에 이야기를 남겨주세요. 저는 좋은 전쟁 이야기를 정말 좋아합니다!
제가 공유했던 기술적인 작업 및 아키텍처 설계가 궁금한 분들은 제 경험을 바탕으로 더 자세한 내용을 여기에서 확인하실 수 있습니다: https://github.com/SalmonJoy/My_guide_for_building_AI_systems/blob/main/Long_context_vs_RAG.md
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기