본문 바로가기

NLP/논문이해

[논문이해] Compressing Context to Enhance Inference Efficiency of Large Language Models

논문명: Compressing Context to Enhance Inference Efficiency of Large Language Models

논문 링크: https://arxiv.org/abs/2310.06201

 

Compressing Context to Enhance Inference Efficiency of Large Language Models

Large language models (LLMs) achieved remarkable performance across various tasks. However, they face challenges in managing long documents and extended conversations, due to significantly increased computational requirements, both in memory and inference

arxiv.org

 


문제점

  • LLM이 이미 다 알고 있어서 TMI까지 제공할 필요가 없다
  • 위 예시에서 보면 LLM도 파라미터가 많으면 좋은 성능이 난다는 사실을 알고 있다
  • 굳이 다 아는 얘기를 선수끼리 하는 바람에 LLM이 문맥이 길어져서 오락가락한다고 한다

 

해결책

  • self-information 이 낮은 문맥은 과감하게 제거하자
  • 제거한 예시를 아래 그림에 넣었다

  • lexical unit, 즉 토큰/구 등 다양한 언어 단위로 나눠서 정보량을 측정한다
  • 정보량은 위 그림에서 색깔이 진할수록 높게 표현했다
  • 상대적으로 정보량이 작은 단어들은 제거되었다

 

정보량이 뭔데?

: 처음 들었다? 내가 볼때 shanon information theory 를 검색해서 제대로 공부하는 걸 추천한다. 여기서 간단히 비유만 들겠다.

"오는 말이 고와야 가는 말이 곱다."

위 문장은 속담이라서 듣는 내내 예측하기 쉬웠다. 즉, 매우 높은 확률로 '가는 말이 곱다'는 표현이 나왔을 거라서 정보량이 낮다. 정보량이 높다는 것은 인간의 입장에서 예상치 못한 말이 등장해야 한다. surprisal 이라고도 부른다.

"오는 말이 고와야 가는 말이 고운 시대는 이미 끝났다."

위 문장은 정보량이 높다. 높은 이유는 '곱다'라는 표현이 아니라 '고운 시대는 이미 끝났다'라는 말이 왔기 때문이다. 예측하기 어렵다. 이런 말이 생성될 확률이 낮기 때문에 낮은 확률임에도 불구하고 생성되었다는 것은 정보량이 높다는 것. 정보량이 높다는 건 놀라운 말이라는 것이다.

 

정보량 공식

 

 

토큰 단위? 구 단위? 문장 단위?

  • 토큰 단위로만 자르기엔 비연속적인 문맥이 형성될 위험이 있다고 한다
  • 그래서 저자는 토큰 단위, 구 단위, 문장 단위 모두 고려한다고 한다

 

잠시만, 생성 모델은 토큰 단위로만 확률을 생성하는데?

  • 맞다. 그래서 위 공식을 도입한다.
  • 구 단위, 문장 단위의 정보량을 구하는 방식으로 토큰의 정보량 합으로 단순히 구한다고 한다.
  • 문장 단위는 NLTK 라이브러리를 사용했다.
  • 구 단위는 spacy 라이브러리를 사용했다.

 

필터링은 어떻게 해?

: 단순히 threshold 를 걸어서 제거하거나 top K개를 뽑는 건 아니라고 한다.

 

percentile-based filtering

  • percentile 의 의미는 백분위다
  • p번째 백분위 안에 드는 lexical unit 들만 쓰겠다는 소리
  • 예컨대, 위에서 보여준 빨간 그림은 p = 50 이라서 절반은 날라갔다는 의미다

 

이렇게 하면 뭐가 좋은데?

  • 인간 언어학에 기반한다 -> 결국 데이터는 인간이 작성한 것이라 반영되었을 확률이 높음
  • 어떤 모델이든 관계 없이 적용가능한 방식

 

실험은 나중에 시간 되면 정리하겠다. 아이디어면 충분한 것 같아서.