
突破256K极限Ornith-1.5-35B-A3B YaRN扩展100万Token长上下文实战指南【免费下载链接】Ornith-1.5-35B-A3B项目地址: https://ai.gitcode.com/hf_mirrors/ornith-ai/Ornith-1.5-35B-A3BOrnith-1.5-35B-A3B 是 HuggingFace ornith-ai 团队开源的 MoE 推理大模型35B 总参数、每 Token 仅激活约 3B 参数原生支持 256K262,144上下文窗口并通过 YaRN 位置缩放可轻松扩展到 100 万 Token轻松应对整库代码理解、超长文档分析等任务。本文带你用最简单的方式在 vLLM 和 SGLang 上完成 1M 长上下文部署。 认识 Ornith-1.5-35B-A3B3B 激活参数的长上下文黑马关键属性说明架构混合专家MoE35B 总参数 / 每 Token 激活约 3B体积bf16 精度约 70 GB推荐 2×80GB 显卡部署原生上下文262,144 Token256K见config.json中的max_position_embeddings字段模型类型推理模型回答前会先输出think思维链服务端可将其单独解析为reasoning_content字段权重文件16 个分片model-00001-of-00016.safetensors索引见model.safetensors.index.json这个模型为长上下文做了大量原生设计这也是它敢把 YaRN 开到 4 倍的基础超大 RoPE 基频rope_theta高达 10,000,000一千万位置编码天然更抗外推部分旋转partial_rotary_factor为 0.25只有 25% 维度参与旋转进一步提升长序列外推能力混合注意力40 层中每 4 层才是全注意力其余为线性注意力大幅压缩长序列计算成本。推荐采样参数与generation_config.json一致temperature0.6、top_p0.95、top_k20。 什么是 YaRN为什么能把 256K 拉长到 100 万一句话理解RoPE 位置编码靠旋转角度记录每个 Token 的位置训练时只覆盖了前 262,144 个位置。YaRN 通过改写旋转频率分布位置插值 NTK 感知让模型在没见过的更长位置上依然能输出合理结果——无需重新训练直接拉长窗口。计算公式非常直观目标窗口 ≈ factor × 262,144所以factor: 4.0时窗口变为 262,144 × 4 1,048,576 ≈ 100 万 Token这正是官方验证过的配置。⚠️重要提醒开源推理框架vLLM / SGLang对 YaRN 是静态实现——每个请求无论长短都套用同一缩放因子。长文本质量有保障但普通短文本质量可能略有下降。因此只在你的业务确实需要超长上下文时再开启。 开启 YaRN 100万长上下文两种方式任选运行时版本要求低于此版本可能不识别 YaRN 参数组件最低版本vLLM0.19.1SGLang0.5.9Transformers5.8.1方式一修改模型配置文件 config.json直接编辑模型目录下的config.json加入rope_scaling配置块{ rope_scaling: { rope_type: yarn, factor: 4.0, original_max_position_embeddings: 262144 } }启动时记得同步把窗口调大如--max-model-len 1000000否则实际生效的仍是 256K。方式二命令行覆盖不改动权重文件推荐适合不想动模型文件的场景一条命令搞定。vLLM 启动命令VLLM_ALLOW_LONG_MAX_MODEL_LEN1 vllm serve ornith-ai/Ornith-1.5-35B-A3B \ --served-model-name Ornith-1.5-35B-A3B \ --tensor-parallel-size 2 \ --hf-overrides {rope_scaling: {rope_type: yarn, factor: 4.0, original_max_position_embeddings: 262144}} \ --max-model-len 1000000 \ --gpu-memory-utilization 0.90 \ --enable-prefix-caching \ --enable-auto-tool-choice --tool-call-parser qwen3_xml \ --reasoning-parser qwen3 \ --trust-remote-codeSGLang 启动命令SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN1 python -m sglang.launch_server \ --model-path ornith-ai/Ornith-1.5-35B-A3B \ --tp 2 \ --json-model-override-args {rope_scaling: {rope_type: yarn, factor: 4.0, original_max_position_embeddings: 262144}} \ --context-length 1000000 \ --tool-call-parser qwen3_coder \ --reasoning-parser qwen3两个环境变量必不可少它们告诉框架我知道窗口超出了训练范围允许启动。漏掉的话服务会直接拒绝拉起。 factor 怎么选长上下文参数速查表你的业务上限factor 取值实际可用窗口≤ 256K不开启 YaRN262,144原生 256K≤ 512K2.0524,288≤ 1M4.0官方验证值1,048,576三条选型原则按需开启短文本为主的服务不要开rope_scaling避免不必要的静态缩放损耗匹配上限factor 按请求最大长度取够用即可不必一步到 4.0别超调4.0 是官方验证过的上限更大因子无官方背书效果与稳定性不作保证。❓ 常见问题快速排查vLLM 启动报模型长度超出训练范围→ 加上VLLM_ALLOW_LONG_MAX_MODEL_LEN1再启动SGLang 修改 context-length 被忽略→ 加上SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN1显存不够怎么办→ bf16 约 70 GB建议 2×80GB 卡 --enable-prefix-caching长上下文场景前缀复用收益显著1M 是指输出也有 1M 吗→ 不是。1M 是输入 输出共享的总窗口开 YaRN 后短文本变笨了→ 正常现象静态缩放影响所有请求。短文本业务直接去掉rope_scaling重新部署即可。✅ 总结Ornith-1.5-35B-A3B 原生支持256K 上下文3B 激活参数带来高性价比推理成本YaRNfactor: 4.0即可把窗口扩展到约 100 万 Token两种开启方式任选改config.json或命令行覆盖推荐后者记住公式目标窗口 ≈ factor × 262,144按业务上限选择 factor只给长文本业务开 YaRN短文本业务保持原生配置两全其美。照上面的命令跑起来你的 Ornith-1.5-35B-A3B 就能一次性读完百万 Token 的超长上下文了 【免费下载链接】Ornith-1.5-35B-A3B项目地址: https://ai.gitcode.com/hf_mirrors/ornith-ai/Ornith-1.5-35B-A3B创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考