# YaRN (mở rộng ngữ cảnh bằng cách scale RoPE)

> VI: https://5ac.vn/wiki/yarn/ · EN: https://5ac.vn/en/wiki/yarn/ · lang: vi · spec_as_of 2026-10-22 (spec no formal spec) · cluster C16

Phương pháp mở rộng cửa sổ ngữ cảnh cho model đã huấn luyện ở độ dài ngắn bằng cách hiệu chỉnh RoPE — chỉ cần bằng một phần mười token huấn luyện của cách trước.

---
## Định nghĩa

YaRN (Yet another RoPE extensioN) là phương pháp mở rộng cửa sổ ngữ cảnh cho một mô hình vốn chỉ được huấn luyện ở độ dài ngắn. Nó không huấn luyện lại mô hình mà chỉnh cách mô hình đọc vị trí token — RoPE (rotary position embedding), phép mã hoá vị trí xoay mà hầu hết kiến trúc transformer hiện đại dùng. Vấn đề YaRN giải quyết rất hẹp và rất thật: RoPE học được vị trí tới đúng độ dài lúc huấn luyện, vượt qua mốc đó thì mô hình không tự khái quát được. Định nghĩa đầy đủ của cửa sổ ngữ cảnh nằm ở entry [Context window (cửa sổ ngữ cảnh)](/wiki/context-window/).

## Cơ chế

Paper YaRN (arXiv:2309.00071, YaRN: Efficient Context Window Extension of Large Language Models, v3) đưa ra một cách mở rộng cửa sổ tính toán hiệu quả: theo tác giả, nó cần bằng một phần mười số token huấn luyện và ít hơn 2,5 lần số bước huấn luyện so với các phương pháp trước, và cho phép mô hình LLaMA đọc cũng như khái quát xa hơn độ dài pre-training của chính nó.

Bên trong thực địa của 5ac, YaRN xuất hiện chủ yếu dưới dạng một giới hạn. Bản build DSpark không dùng YaRN nên context bị chặn quanh mốc ~262K token; bật cờ YARN=1 không phải là cách gỡ mà là cách báo lỗi: AttributeError: 'PreTrainedConfig' object has no attribute 'max_position_embeddings'. Khi cần cửa sổ 1 triệu token, recipe DeepSeek V4 Flash không dựa vào YaRN mà dựa vào cặp NVFP4 + MTP. Và vì cache KV phình theo độ dài, mở rộng cửa sổ luôn kéo theo bài toán bộ nhớ — phần đó thuộc entry [KV cache (bộ nhớ khóa–giá trị của LLM)](/wiki/kv-cache/).

## Bối cảnh ứng dụng

Giới hạn ở trên là giới hạn của bản build, không phải của mô hình, nên nó phải được kiểm trước khi chốt công cụ: workflow nào cần hơn 262K token thì hoặc chọn bản build có YaRN, hoặc chọn cơ chế suy luận khác. YaRN cũng không phải là speculative decoding — hai thứ khác nhau và thường bị đọc gộp vì xuất hiện cạnh nhau; cơ chế dự đoán rồi xác nhận một lần nằm ở entry [Speculative decoding (suy luận suy đoán)](/wiki/speculative-decoding/), và chính cơ chế đó là thứ quyết định nhanh hay chậm trên GB10.

## Nguồn đã truy xuất

- [DSpark vs MTP trên DGX Spark — benchmark thực tế cho speculative decoding](/blog/dspark-vs-mtp-benchmark-gb10/) — DSpark không dùng YaRN, context ~262K, cờ YARN=1 ném lỗi — truy cập 22/10/2026
- [Deploy DeepSeek V4 Flash trên 2× DGX Spark — recipe đầy đủ, đo thật](/blog/deploy-deepseek-v4-flash-2x-dgx-spark/) — YaRN / context > 262K là giới hạn bản build, NVFP4 + MTP làm 1M — truy cập 22/10/2026
- <https://arxiv.org/abs/2309.00071> — paper YaRN, mở rộng cửa sổ ngữ cảnh (v3) — xác minh qua arXiv API ngày 22/10/2026

## Liên quan

- [Context window (cửa sổ ngữ cảnh)](/wiki/context-window/)
- [KV cache (bộ nhớ khóa–giá trị của LLM)](/wiki/kv-cache/)
- [Speculative decoding (suy luận suy đoán)](/wiki/speculative-decoding/)
