- 이 글은 GPT 모델로 자동 요약한 설명으로, 잘못된 내용이 있을 수 있으니 원문을 참고해주세요!
- 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다!
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를 제공하는 모델
Size | Context | Link |
---|---|---|
7B | 64K | NousResearch/Yarn-Llama-2-7b-64k |
7B | 128K | NousResearch/Yarn-Llama-2-7b-128k |
13B | 64K | NousResearch/Yarn-Llama-2-13b-64k |
13B | 128K | NousResearch/Yarn-Llama-2-13b-128k |
Mistal 기반 모델
Mistal-7B 모델을 기반으로 하여 64k, 128k의 Context Window를 제공하는 모델
Size | Context | Link |
---|---|---|
7B | 64K | NousResearch/Yarn-Mistral-7b-64k |
7B | 128K | NousResearch/Yarn-Mistral-7b-128k |
용어 설명
-
Rotary Position Embedding(RoPE): LLM의 position encoding 방식 중 하나
-
보간법(Interpolation): 주파수 파형 등을 부드럽게 변화시키는 방법
-
Perplexity: LLM의 language modeling 성능 지표 (낮을수록 좋음)
-
Fine-tuning: 사전 학습된 모델을 다운스트림 작업에 맞게 추가 학습하는 것
-
Dynamic Scaling: inference 시 문맥 길이에 따라 스케일링 조정하는 방법