【免费下载链接】HyLo-Llama-8MLA8GDN-64K-SFT
HyLo-Llama-8MLA8GDN-64K-SFT 是 AMD 发布的开源研究模型:它把 Llama-3.2-1B-Instruct"升级"成 8 层 MLA + 8 层 Gated DeltaNet 的混合架构,仅 1.61B 参数就支持64K(65,536 tokens)长上下文,且 KV cache 内存只剩原模型的7.8%。本文带你用通俗的方式理解它的架构原理、训练过程、实测成绩与部署方法,帮助新手快速上手这个"小身材、长记忆"的模型。
一、模型速览:这张"名片"有多省 📋
先记住三个核心数字:1.6B 参数、64K 上下文、7.8% 的 KV cache——这是它区别于普通小模型的全部卖点。
| 项目 | 说明 |
|---|---|
| 基础模型 | Llama-3.2-1B-Instruct |
| 蒸馏教师模型 | Llama-3.1-8B-Instruct |
| 层数 | 16 层(8 层 MLA + 8 层 Gated DeltaNet) |
| 参数量 | 1.61B(论文中记为 1.6B) |
| KV cache | 仅为原模型的 7.8% |
| 训练上下文 | 65,536 tokens |
| 权重精度 | float32 存储,建议以 bfloat16 加载 |
| 训练方式 | Enhanced-ILD + 带教师蒸馏的长上下文 SFT |
它出自 AMD 的论文《Long-Context Aware Upcycling: A New Frontier for Hybrid LLM Scaling》(arXiv:2604.24715),核心思路是:不从头预训练,而是把现成的 Transformer"改头换面"成混合架构,再用长文本训练让它"长记性"。
二、混合架构拆解:MLA 与 Gated DeltaNet 如何分工 🧩
这个模型的 16 层不是简单的"交替重复",而是按位置精心安排的(详见 hybrid_config.json):
- MLA 层(8 层):位于
[0, 2, 4, 6, 8, 10, 12, 14] - Gated DeltaNet 层(8 层):位于
[1, 3, 5, 7, 9, 11, 13, 15]
两种层各管一摊,分工非常清晰:
1️⃣ Gated DeltaNet 层 —— "零缓存"的线性注意力
它是带门控的 delta 规则线性注意力块,用一个固定大小的循环状态代替不断膨胀的 KV cache。无论输入多长,这些层的内存占用都不变,完全不产生 KV cache。
2️⃣ MLA 层 —— "压缩版"的标准注意力
Multi-head Latent Attention 保留注意力机制,但只缓存一个低秩潜向量(latent),而不是完整的 Key/Value。这正是把总缓存压缩到 7.8% 的关键。
关键维度参数如下(同样定义在 hybrid_config.json 中):
| MLA 维度 | 数值 | Gated DeltaNet 维度 | 数值 |
|---|---|---|---|
KV 潜秩kv_lora_rank | 128 | 头数gdn_num_heads | 6 |
Query 潜秩q_lora_rank | 1344 | 头维度gdn_head_dim | 256 |
| RoPE 头维度 | 32 | 隐藏层d_model | 2048 |
Value 头维度v_head_dim | 64 | SSM 状态d_state | 64 |
💡 注意:仓库里的 config.json 是基础模型的配置,仅作参考;真正的混合架构布局以 hybrid_config.json 为准。
三、KV Cache 只剩 7.8%:64K 长上下文为什么更便宜 💾
普通 Transformer 处理长文本时,每个 token 的 Key 和 Value 都要存进 KV cache,内存随序列长度线性膨胀——这就是小模型跑长文最大的痛点。
HyLo 的解法是"双管齐下":
- 一半的层(Gated DeltaNet)根本不存 KV cache;
- 另一半的层(MLA)只存压缩后的低秩潜向量。
两者叠加后,总缓存降到原模型的 7.8%,跑 64K 长文本的显存压力大幅下降。
关于上下文长度,有两个新手必须知道的细节:
- 位置编码采用YaRN缩放:
factor: 32.0,把原本 2,048 token 的窗口扩展到65,536,这是该模型经过训练和评测的可靠长度; - 配置里的
max_position_embeddings是 131,072(继承自基础模型),并非支持的长度。由于推理框架会按这个字段预分配 KV cache,部署时请务必显式限制,例如设置--max-model-len 65536,超过 65,536 token 的质量没有任何保证。
四、训练揭秘:两阶段蒸馏让"改头换面"的模型不掉智商 🏋️
把 Transformer 的层改成 MLA 和线性注意力后,模型内部表示会被"打乱"。HyLo 用两阶段训练把它修复并教会长文本:
| 阶段 | 做什么 | 上下文 | 学习率 | 数据 |
|---|---|---|---|---|
| 1. Enhanced-ILD | 逐层蒸馏,让新初始化的 MLA/线性块对齐原模型内部表示 | 2,048 | 2e-4 | SFT 混合数据的 20% |
| 2. 长上下文 SFT | 以 8B 教师模型做端到端蒸馏,在目标长度上精调 | 65,536 | 6e-5 | 完整混合数据 |
训练细节要点:
- 损失函数:学生与教师下一词分布的 KL 散度(
kl_weight 1.0、ce_weight 0.0),纯蒸馏损失; - 数据:5 个开源数据集的 AMD 处理变体(含子集筛选、chat 模板重排、评测去污染),覆盖通用指令、数学与长文 QA;
- 硬件:8× AMD Instinct MI300X,FSDP 分布式,bfloat16 混合精度,并采用
chunked_kl省内存蒸馏; - 全局 batch 8 条序列,1 个 epoch,余弦学习率调度。
五、实测成绩:长上下文与常识推理能拿多少分 📊
以下为论文 Table 2 的 0-shot 结果(EleutherAI lm-evaluation-harness 评测):
RULER 长上下文基准(13 项任务总分)——可以看到 64K 时的表现依然可用:
| 上下文长度 | 得分 |
|---|---|
| 8K | 61.5 |
| 16K | 53.7 |
| 32K | 48.1 |
| 64K | 41.6 |
常识推理(7 项任务平均分):51.8(含 ARC-Challenge 36.4、HellaSwag 57.2、PIQA 72.3 等)
数学:GSM8K 得分 39.4
对 1.6B 的小模型来说,这套分数在 64K 长度上保持了相当的"记忆力",同时把显存成本压到了 7.8%。
六、部署上手:如何加载并运行 HyLo-Llama-8MLA8GDN-64K-SFT 🚀
第一步:准备混合架构代码。MLA/GDN 这些混合层类型还没有进入transformers主线,AutoModelForCausalLM无法直接构建该模型。需要先获取 AMD 的 Hybrid-Models 代码库,进入其中的HyLo目录,并按该目录下的 README 完成安装。
第二步:加载模型并生成(核心代码仅 4 行):
from hybrid.hybrid_wrapper import HybridModelWrapper model = HybridModelWrapper.from_pretrained( "amd/HyLo-Llama-8MLA8GDN-64K-SFT", torch_dtype=torch.bfloat16 ).cuda()三个新手避坑要点:
- 用 bfloat16 加载:权重文件(model.safetensors)是 float32 存储的,按原精度加载会白白翻倍显存,评测成绩也是在 bfloat16 下测得的;
- 使用本仓库自带的对话模板chat_template.jinja:这是训练时用的模板,与基础模型的不完全一致,换了模板效果可能打折;
- 输入控制在 65,536 tokens 以内,推理服务显式设置最大长度(如
--max-model-len 65536)。
七、HyLo 家族速查:不同"配方"怎么选 🗂️
HyLo 不只是这一个模型,AMD 还开放了一整族"MLA + 线性块"组合,按骨干与 MLA 层数排列:
| 模型 | 骨干 | 训练上下文 | KV cache |
|---|---|---|---|
| HyLo-Llama-4MLA12GDN-64K-SFT | Llama-3.2-1B | 64K | 3.9% |
| HyLo-Llama-8MLA8GDN-64K-SFT(本文主角) | Llama-3.2-1B | 64K | 7.8% |
| HyLo-Llama-6MLA22GDN-64K-SFT | Llama-3.2-3B | 64K | 2.0% |
| HyLo-Llama-14MLA14GDN-64K-SFT | Llama-3.2-3B | 64K | 4.7% |
| HyLo-Qwen-14MLA14M2-64K-SFT | Qwen3-1.7B(Mamba-2 块) | 64K | 7.8% |
规律很简单:MLA 层越多,缓存占比越高、精度通常越好;追求极致省显存选 4MLA12GDN / 6MLA22GDN,想要更稳的长文理解就选本文的 8MLA8GDN。
八、使用边界:研究专用模型的限制与许可证 ⚠️
上手前请先了解它的"身份"——这是一个研究产物(research artifact),用于支撑论文研究,而非生产级模型:
- 未做安全对齐:输出可能出现事实错误或偏见,对外提供服务前必须自行加装防护措施;
- 长度之外无保证:超过 65,536 token 的质量未经测量与承诺;
- 评测范围有限:只覆盖了上文列出的基准,没有多语言、代码、安全性和长文指令遵循的评测报告;
- 许可需留意:元数据声明为
apache-2.0,但仓库内的 LICENSE 是 AMD 的研究专用 RAIL-MS 许可,且部分训练数据为非商用——两者不一致时以 LICENSE 文件为准,请将其视为仅限研究使用。
总结:HyLo-Llama-8MLA8GDN-64K-SFT 展示了一条务实的长上下文路线——不烧钱从头预训练,而是用"MLA 压缩缓存 + GDN 零缓存"的混合架构改造现有模型,再以两阶段蒸馏修复能力。对想在有限显存上跑长文本的新手而言,它是目前值得重点关注的小模型方案之一。
【免费下载链接】HyLo-Llama-8MLA8GDN-64K-SFT
相关推荐
HyLo-Llama-8MLA8GDN-64K-SFT训练原理:两阶段蒸馏与64K长上下文SFT是怎么做到的
HyLo Llama 8MLA8GDN 64K SFT训练原理:两阶段蒸馏与64K长上下文SFT是怎么做到的 🤖 HyLo Llama 8MLA8GDN 64
HyLo-Llama-4MLA12GDN-64K-SFT快速总览:AMD 1.67B混合架构长上下文模型,KV Cache直降96%
HyLo Llama 4MLA12GDN 64K SFT快速总览:AMD 1.67B混合架构长上下文模型,KV Cache直降96% HyLo Llama 4M
YaRN如何实现64K长上下文?HyLo-Llama-6MLA22GDN-64K-SFT位置编码扩展原理详解
YaRN如何实现64K长上下文?HyLo Llama 6MLA22GDN 64K SFT位置编码扩展原理详解 本文带你彻底搞懂 HyLo Llama 6MLA2
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考