microsoft/LLMLingua
[EMNLP'23, ACL'24] To speed up LLMs' inference and enhance LLM's perceive of key information, compress the prompt and KV-Cache, which achieves up to 20x compression with minimal performance loss.
What it solves
LLMLingua는 대형 언어 모델(LLM)의 프롬프트 길이 제한 및 높은 API 비용 문제를 해결합니다. 특히 긴 컨텍스트 중간 부분에서 정보를 처리하기 어려운 “lost in the middle” 문제에 초점을 맞추어, 성능을 희생하지 않고 더 많은 정보를 프롬프트에 담을 수 있도록 돕습니다.
How it works
이 프로젝트는 프롬프트에서 비핵심 토큰을 식별하고 제거하는 일련의 압축 방법을 제공합니다:
- LLMLingua: GPT2‑small 또는 LLaMA‑7B와 같은 작고 잘 훈련된 언어 모델을 사용해 중복 토큰을 제거하고 최대 20배 압축을 달성합니다.
- LongLLMLingua: 긴 컨텍스트 시나리오에 특화되어 “lost in the middle” 문제를 완화하고 RAG 성능을 향상시킵니다.
- LLMLingua-2: GPT‑4로부터 데이터 증류를 통해 학습된 BERT‑레벨 인코더를 사용한 빠르고 작업에 구애받지 않는 압축기입니다.
- SecurityLingua: 보안 인식 압축을 활용해 탈옥 공격에서 악의적인 의도를 드러내는 안전 가드레일 역할을 합니다.
Who it’s for
LLM 기반 애플리케이션을 구축하는 개발자와 연구자를 위해 설계되었으며, 특히 Retrieval‑Augmented Generation(RAG)을 사용하거나 긴 문서를 처리하고 API 비용 및 추론 지연 시간을 줄이고자 하는 경우에 적합합니다.
Highlights
- Significant Compression: 프롬프트 길이를 최대 20배까지 줄이면서 성능 손실을 최소화합니다.
- Cost and Speed: 토큰 수와 KV‑cache 크기를 감소시켜 API 비용을 낮추고 추론 속도를 가속화합니다.
- RAG Enhancement: 아주 적은 토큰만 사용하면서도 RAG 성능을 최대 21.4% 향상시킵니다.
- Integration: LangChain, LlamaIndex, Prompt flow 등 주요 프레임워크와 통합되었습니다.
- Task-Agnostic: LLMLingua-2는 3‑6배 빠른 속도 향상을 제공하며, 도메인 외 데이터도 효과적으로 처리합니다.