피드로 돌아가기
Dev.toAI/ML
원문 읽기
Context Compression을 통한 토큰 비용 절감 및 Lost in the Middle 현상 해결
Context Compression Before the LLM: Cutting Tokens Without Cutting Recall
AI 요약
Context
방대한 Retrieval 결과물을 그대로 Prompt에 주입함에 따라 발생하는 과도한 Input Token 비용 발생. 특히 컨텍스트가 길어질수록 모델이 중간 지점의 정보를 손실하는 Lost in the Middle 현상으로 인한 답변 품질 저하 문제 직면.
Technical Solution
- Retrieval과 Generation 사이에 Context Compression 레이어를 배치하여 유효 정보 밀도 최적화
- Extractive Compression: Sentence-level Embedding 및 Cosine Similarity 기반의 임계값 필터링을 통해 원문 유지 및 Hallucination 원천 차단
- Context Window 확장: 단순 필터링 시 발생하는 대명사 및 문맥 단절 해결을 위해 선택된 문장 주변의 인접 문장을 함께 유지하는 Windowing 기법 적용
- Abstractive Compression: 소형 LLM을 활용해 쿼리 중심의 요약문을 생성함으로써 50~75% 수준의 고효율 압축률 달성
- Pipeline 최적화: 'Retrieve Wide $\rightarrow$ Rerank $\rightarrow$ Compress $\rightarrow$ Generate' 순의 워크플로우를 구축하여 정보 회수율과 생성 정확도 동시 확보
- Hybrid Approach: Cross-encoder 기반의 Reranker를 Embedding 필터 이후 단계에 배치하여 연산 비용 최적화와 정밀도 향상 병행
실천 포인트
1. Retrieval 결과가 많고 답변 품질이 하락하는지 확인
2. 데이터 특성에 따라 원문 유지가 중요한 경우 Extractive, 고압축이 필요한 경우 Abstractive 전략 선택
3. Keep Ratio 변화에 따른 Context Recall과 Token Cost의 상관관계 그래프(Knee of the Curve)를 그려 최적 지점 설정
4. Reranker를 통한 사전 정렬 후 압축을 수행하여 압축 효율 극대화