
Qwen 32K → 1M에 YaRN 적용: 가중치 동일, 계수 32 — 실제로 무엇이 바뀌고 (무엇이 망가지는지)
요약
본 기사는 Qwen 모델에 YaRN(Yet another RoPE extensioN)을 적용하여 컨텍스트 창을 확장하는 기술적 배경과 그 한계를 설명합니다. 단순히 위치 맵을 늘리는 것이지, 새로운 지식을 학습시키는 것은 아닙니다. 또한, 과도한 컨텍스트 사용 시 발생하는 비용 문제와 'Lost-in-the-middle' 현상 등 실질적인 함정들을 경고하고 있습니다.
핵심 포인트
- YaRN은 모델의 위치 맵을 늘리는 기술이며, 새로운 지식을 학습하는 것이 아닙니다.
- 컨텍스트 확장에는 KV 캐시 및 VRAM 사용량이 증가하므로 비용이 발생합니다.
- 긴 컨텍스트에서도 정보 검색 능력이 떨어지는 'Lost-in-the-middle' 현상이 존재합니다.
- YaRN 적용 시 언제 기능을 켜고 꺼야 하는지 이해하는 것이 중요합니다.
Qwen3의 기본 컨텍스트 창은 약 32,768입니다. 사람들은 계속해서 같은 체크포인트의 '1M 컨텍스트' GGUF 파일을 배포하고 있습니다. 여기서 일어나고 있는 일은 새로운 두뇌를 만드는 것이 아닙니다. 이것은 YaRN (Yet another RoPE extensioN)입니다: 모델이 이미 학습한 위치 맵을 늘리는 것입니다. 중요한 방정식은 다음과 같습니다: new_len = original_max × factor. 계수 4 → 약 131K (Qwen이 실제로 검증하는 값), 계수 32 → 1,048,576 (바이럴 커뮤니티의 도약). 설정 용어로는 보통 다음과 같은 것을 설정합니다: rope_scaling.type = yarn, rope_scaling.factor = 32, rope_scaling.original_max_position_embeddings = 32768. vLLM의 경우: HF 오버라이드. llama.cpp의 경우: --rope-scaling yarn --rope-scale 32 --yarn-orig-ctx 32768. 많은 커뮤니티 GGUF 파일들이 이미 이 메타데이터를 포함하고 있습니다.
이 열풍을 꺼뜨리는 세 가지 함정:
- 정적 YaRN (Static YaRN) — 짧은 채팅에 대해 스케일링을 켜면 → 아무것도 아닌데 긴 컨텍스트 비용을 지불하게 됩니다.
- KV / VRAM — 1M은 공짜가 아닙니다; 캐시가 먼저 당신을 잡아먹습니다.
- Lost-in-the-middle — passkey 데모 ≠ 토큰 200k에서의 당신의 리포지토리
수학, 활성화 플래그, 그리고 언제 YaRN을 꺼야 하는지에 대한 8분짜리 블랙보드 워크스루를 만들었습니다: https://www.youtube.com/watch?v=kO0zywHd4u0
여기 사람들이 Qwen에 실제로 일상적으로 사용하는 계수(4 대 8 대 32)와, needle/passkey 점수가 실제 검색 결과와 일치했는지 궁금합니다. /u/Murky-Sign37 제출
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기