LLM 컨텍스트 윈도우와 RAG의 이해
- •컨텍스트 윈도우는 LLM이 활성 프롬프트, 대화 이력, 생성된 응답에 사용할 수 있는 제한된 토큰 예산을 의미한다.
- •모델은 컨텍스트 윈도우 외부의 데이터를 인식할 수 없어 긴 대화 세션에서 정보 누락 문제가 발생한다.
- •검색 증강 생성(RAG)은 방대한 데이터를 컨텍스트에 억지로 넣는 대신 필요한 정보만 선별해 모델에 제공함으로써 성능을 높인다.
컨텍스트 윈도우는 거대 언어 모델(LLM)이 단일 세션 내에서 정보를 처리하기 위해 사용하는 입출력 토큰의 총용량을 의미한다. 이 공유 토큰 풀에는 사용자의 프롬프트, 대화 이력, 모델이 생성한 응답이 포함된다. 모델 자체는 영구적인 장기 기억 장치가 없기 때문에, 모델의 인식 범위는 현재 작업 메모리 버퍼 내에 있는 정보로 한정된다. 대화가 길어질수록 오래된 토큰은 슬라이딩 윈도우 과정을 통해 밀려나며, 이로 인해 모델은 앞선 대화 내용을 망각하기도 한다.
모델은 긴 시퀀스를 처리하는 데 필요한 높은 연산 비용과 메모리 요구량으로 인해 컨텍스트 윈도우 크기에 물리적 한계를 갖는다. 특히 모델은 긴 컨텍스트의 앞부분이나 끝부분보다 중간에 배치된 정보의 정확도가 떨어지는 '중간 정보 유실(lost in the middle)' 현상을 자주 보인다. 또한 컨텍스트 윈도우가 커질수록 모델이 핵심 정보보다 무관하거나 상충하는 데이터를 우선시할 가능성도 함께 증가한다.
검색 증강 생성(RAG)은 모델에 필요한 시점에만 관련 정보를 동적으로 제공하여 이러한 제약을 해결하는 전문 기술이다. RAG 시스템은 컨텍스트 윈도우를 방대한 데이터로 채우는 대신, 외부 소스에서 구체적이고 적절한 사실만을 검색하여 모델의 프롬프트에 통합한다. 이는 컨텍스트 윈도우의 물리적 용량 한계를 극복하고 모델이 학습 데이터에 포함되지 않았던 최신 정보나 비공개 정보를 다룰 수 있게 한다. 결국 RAG의 효율성은 최초 검색 단계의 정밀도에 달려 있는데, 모델의 출력 결과가 제공된 정보의 품질에 전적으로 의존하기 때문이다.