관심있는 NLP 논문을 읽어보고 간단히 정리했습니다.
혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇♂️
[Microsoft Corporation]
- 길이가 긴 텍스트에서 핵심 정보를 효과적으로 추출할 수 있도록하는 prompt compression 기법, LongLLMLingua
- higher performance, much less cost, reduced latency
1. Introduction
- LLM의 능력을 최대로 끌어내기 위해서 각 downstream task에 적합한 prompt를 design하는 것이 중요하다는 것은 이미 잘 알려져있음
- 그러나 LLM을 long context scenarios에서 활용하는 것은 다음 문제점들을 야기
- 모델을 실행하거나 API를 호출하는데 많은 computational 또는 financial 비용이 발생함
- Longer latency가 발생하여 real-time scenario에 적합하지 않다는 문제
- LLM의 window size를 확장할수록 inferior performance가 확인됨
- 따라서 LLM이 길이가 긴 prompt에서 핵심 정보(key information)를 잘 추출해낼수 있도록 하는 것이 목표
- 이때 기존의 LLMLingua 방식을 따름
2. Realted Work
- LLMLingua
- 위에서 언급한 cost & latency 문제를 해결하기 위한 backbone framework
- compression 과정에서 question의 내용을 반영하지 않는다는 문제점이 있었음
3. Contributions
- prompt 내 key information 추출 성능을 끌어올리는 question-aware coarse-to-fine 압축 기법 제시
- prompt 중간에서 정보가 소실되는 현상을 방지하기 위한 document reordering mechanism 도입
- coarse-grained compression과 fine-grained compression 사이를 잇는dynamic compression ratio를 제시
- key information의 통합을 위한 post-compression subsequence recovery 전략 제안
- LongLLMLingua를 세 개의 벤치마크에 대해 평가
4. Method
4.1. How to improve Key Information Density in the Prompt?
- Question-Aware Coarse-Grained Compression
- document-level에서 question이 조건으로 주어졌을 때의 perplexity를 구함
- 그러나 이는 question과 관련 없는 정보들을 포함할 가능성이 매우매우 높음
- 따라서 question과 관련 없는 context를 지닌 document가 주어졌을 때 둘의 관계에 대해서도 학습하도록 설계
- Question-Aware Fine-Grained Compression
- 여기서는 문서 내에 존재하는 토큰들을 기준으로 perplexity를 계산
- 이때 위에서와 마찬가지로 contrastive perlexity를 구하기 위해서 question을 전제로 했을 때의 perplexity와 그렇지 않을 때의 차를 구하는 방식을 적용
4.2. How to reduct Information Loss in the Middle?
- 이전 연구 결과에 따르면 question에 대한 답변을 생성하는데 필요한 clue가 context의 중간에 위치하면 모델의 성능이 하락한다고 함. 즉 clue는 prompt의 앞쪽이나 뒤쪽에 위치하는 것이 좋다는 뜻
- 따라서 document의 importance score를 활용하여 reorder. 이때 score가 높은 것은 양 끝으로, score가 낮은 것은 중간에 위치하도록 함
4.3. How to achieve Adaptive Granular Control during compression?
- 각 문서에 대해 dynamic하게 compression budget을 할당
4.4 How to improve the Intergrity of Key Information?
- LLM의 response로부터 원래 내용을 복구하는 'subsequence recovery method'를 제안
- original prompt, compressed prompt, LLMs' response 사이의 연속적인 토큰 관계에 의존하는 기법
5. Experiments
- Model & Baseline
- GPT-3.5-Turbo-0613, LongChat-13B-16K
- LLaMA-2-7B-Chat은 compression에 활용
- 5개의 Retrieval Methods: BM25, Gzip, SentenceBERT, OpenAI Embedding, importance metric
- Benchmarks
- NaturalQuestions: multi-document QA task
- LongBench & ZeroSCROLLS: general long context scenarios
- Results
- LongLLMLIngua가 여러 태스크와 압축 비율에 대해서 가장 뛰어난 성능을 보였음
- Selective Context, LLMLingua와 같은 compression-based method들은 약세를 보임
- Retrieval-based method도 뛰어난 성능을 보이지만 압축 비율이 올라감에 따라 약세를 보임