검색된 문서 청크에서 질문과 직접적인 관련이 없는 불필요한 정보를 제거하고, 핵심 내용만 추출하여 '압축' 한 뒤 LLM에게 전달하는 후처리 기법
- 작동방식
- 일반적인 검색 (Initial Retrieval): Vector Search를 통해 사용자 질문과 관련성 높은 전체 문서 청크(full document chunks) 들을 우선 검색
- 내용 압축 (Content Compression): 검색된 청크들을 LLM에게 바로 보내지 않고, '압축기(Compressor)' 역할을 하는 LLM에게 전달
- 핵심 정보 추출 (Key Information Extraction): '압축기' LLM은 원본 질문을 참고하여 각 청크의 내용 중 질문과 직접적으로 관련된 문장이나 구절만 추출하고, 나머지 불필요한 정보는 버림
- 압축된 컨텍스트 전달 (Passing Compressed Context): 이렇게 잡음(noise)이 제거되고 핵심만 남은 '압축된' 컨텍스트를 최종 답변 생성 LLM에게 전달하여 더 정확하고 간결한 답변을 생성하게 함
- 장점
- 구현
- LangChain의
ContextualCompressionRetriever - 기본 retriever와
LLMChainExtractor와 같은base_compressor를 각각 생성 - 이 두 컴포넌트를
ContextualCompressionRetriever에 결합하여 새로운 retriever를 만들고, 이를 QA 체인에 사용합니다.
- LangChain의