YaRN: RoPE + LLM으로 10배 적은 토큰과 2.5배 적은 학습 단계로 Context Window를 128k까지 확장하기

  • 이 글은 GPT 모델로 자동 요약한 설명으로, 잘못된 내용이 있을 수 있으니 원문을 참고해주세요! :smile:
  • 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다! :bowing_man:

YaRN: 대규모 언어 모델의 효율적인 컨텍스트 윈도우 확장 (Efficient Context Window Extension of Large Language Models)

YaRN : Yet another RoPE extensioN method

요약

  • 기존 대형 언어 모델(LLM)은 문장 완성 또는 Q&A와 같은 여러가지 NLP 태스크에서 활용하고 있으나, 문맥 길이가 길지 못한 점에서의 문제가 있었습니다. 또한, RoPE(Rotary Position Embedding)를 사용하는 LLM의 경우에는 학습된 문맥 길이를 벗어나지 못하는 한계가 있어, 문맥 길이를 동적으로 확장할 수 있는 방법이 필요했습니다.

  • 이 논문에서는 대규모 언어 모델(LLM; Large Language Model)의 Context Window를 효율적으로 확장하는 방법을 제안합니다. Rotary Position Embedding(RoPE)을 사용하여 컨텍스트 윈도우를 확장하는 새로운 방법인 YaRN(Yet another RoPE extensioN method)를 제안하고 있습니다.

기존의 방법들

  • 원래 Transformer는 Absolute sinusoidal position encoding을 사용했으나, 이를 개선하기 위해 RoPE(Rotary Position Embedding)가 출현하였습니다.

  • 이후 PI(Positional Interpolation)라는 방법이 RoPE를 사용하는 LLM의 context window를 확장했습니다. 하지만 PI는 모든 dimension을 동일하게 scaling하기 때문에 high frequency 정보 손실이 있습니다.

  • "NTK-aware" interpolation라는, 높은 주파수(high-frequency) 정보의 손실을 방지하기 위해 주파수별로 가변 스케일링하는 방법이 제안되기도 했습니다. 이 방법은 extrapolation으로 인해 fine-tuning 성능이 떨어지는 문제가 발견되었습니다.

YaRN 소개

  • YaRN의 주요 아이디어는 각 차원(dimension, 주파수 대역)별로 최적의 스케일링 방법을 조합하여 서로 다른 보간 방식을 사용하는 것입니다.

    • Low frequency는 더 scaling하고, high frequency는 보존합니다.

    • Pre-softmax scaling을 통해 엔트로피(entropy)를 증가시켜 perplexity를 개선합니다.

    • Dynamic Scaling으로 fine-tuning 없이도 inference 시 context를 확장할 수 있습니다.

  • 또한 attention softmax 전 스케일링을 통한 추가 성능 향상을 꾀하고 있으며, 동적 스케일링으로 미세조정 없이 문맥 길이 2배까지 확장하는 것이 특징입니다.

  • NTK-by-parts: 파장별 대응 보간(interpolation)

    • 짧은 파장은 보간하지 않고, 긴 파장은 선형 보간

    • 파장과 문맥 길이의 비율 r에 따라 보간 정도 조정

  • Attention scaling: softmax 전 스케일 팩터 t 적용

    • perplexity 균등 감소 효과

    • 실제 구현 시 복잡도 증가 없음

  • Dynamic scaling:

    • inference 시 문맥 길이에 따라 s 동적 조정

    • fine-tuning 없이 문맥 길이 확장 가능

성능 차이

  • 기존 방법 대비 적은 미세조정 데이터를 사용하여 더 큰 문맥 길이 확장을 달성할 수 있습니다.

  • perplexity, passkey retrieval, 문장 생성 등 다양한 태스크에서 우수한 성능을 보입니다.

  • 미세조정 없이 동적 스케일링을 통해 2배 이상 문맥 길이 확장하는 것이 특징입니다.

YaRN 방식으로 Context Window가 확장된 모델

LLaMA 기반 모델

LLaMA 2의 7B / 13B 크기의 모델들을 기반으로 하여 각각 64k, 128k의 Context Window를 제공하는 모델

Mistal 기반 모델

Mistal-7B 모델을 기반으로 하여 64k, 128k의 Context Window를 제공하는 모델

용어 설명

  • Rotary Position Embedding(RoPE): LLM의 position encoding 방식 중 하나

  • 보간법(Interpolation): 주파수 파형 등을 부드럽게 변화시키는 방법

  • Perplexity: LLM의 language modeling 성능 지표 (낮을수록 좋음)

  • Fine-tuning: 사전 학습된 모델을 다운스트림 작업에 맞게 추가 학습하는 것

  • Dynamic Scaling: inference 시 문맥 길이에 따라 스케일링 조정하는 방법

더 읽어보기

YaRN 논문 (preprint)

YaRN GitHub 저장소

학습 데이터

pg19 데이터셋에서 파생한 토큰화된 학습 데이터를 :hugs:허깅 페이스에 공개하였습니다.

미스트랄 모델의 경우, Long-Data-Collections 데이터셋의 사전 학습과 미세 조정 분할이 혼합되어 사용되었습니다. 토큰화된 데이터셋은 :hugs:Hugging Face에서 공개하였습니다.