☰
NeoHorse-1-4B 长上下文实战:262K 原生、可扩展 1M 的推理参数配置避坑指南
2026/9/25 4:12:33 网站建设 项目流程

NeoHorse-1-4B 长上下文实战:262K 原生、可扩展 1M 的推理参数配置避坑指南

【免费下载链接】NeoHorse-1-4B项目地址: https://ai.gitcode.com/hf_mirrors/TokenRhythm/NeoHorse-1-4B

NeoHorse-1-4B 是 TokenRhythm 基于 Qwen3.5-4B 后训练的 4B 参数长上下文推理模型,原生支持 262,144(约 262K)token 上下文窗口,官方标注最长可扩展至约 1,010,000 token。它采用混合线性注意力架构与 BF16 权重格式,专为智能体任务、工具调用和长文本推理设计。本文将从部署参数出发,带你一次配齐长上下文推理,并附上高频踩坑清单。

NeoHorse-1-4B 是什么:为什么它能"装下"262K 上下文

NeoHorse-1-4B 不是普通的 4B 小模型,而是一个"Agent-Native 因果语言模型":它由 TokenRhythm 通过路由引导的智能体后训练(routing-guided agentic post-training)改造而来,在十个基准上的宏平均得分 64.87,比基座 Qwen3.5-4B 的 58.94 高出+5.93(详见 README.md 中的评测表)。

长上下文能力的底气来自 config.json 里的两处设计:

关键配置取值作用
max_position_embeddings262144原生上下文上限,即 262K token
layer_types32 层中每 4 层一组(linear_attention×3 +full_attention×1)混合线性注意力,绝大多数层用低成本线性注意力,KV 缓存占用大幅降低
rope_theta10000000超大旋转位置编码基频,为向 1M token 扩展预留外推空间
num_key_value_heads4(注意力头 16)GQA 分组查询注意力,进一步压缩长序列显存
dtypebfloat16BF16 权重,约 8GB 即可载入 4B 权重

简单说:全注意力层稀疏化 + 大 rope 基频 + GQA,让它在 4B 规模上就能扛住 262K 原生上下文,并具备向 1M 扩展的架构条件。

⚠️ 注意:本次发布为纯文本模型(语言模型权重重新打包),不包含视觉权重。发送图片请求会导致模板报错(chat_template.jinja 中明确抛出异常),请只走文本输入输出。

SGLang 启动 NeoHorse-1-4B:长上下文参数一次配齐

技术报告使用 SGLang v0.5.17,推荐启动命令如下:

pip install "sglang==0.5.17" MODEL_PATH="/path/to/NeoHorse-1-4B" python3 -m sglang.launch_server \ --model-path "$MODEL_PATH" \ --served-model-name neohorse-1-4b \ --host 0.0.0.0 \ --port 30000 \ --context-length 262144 \ --reasoning-parser qwen3 \ --tool-call-parser qwen3_coder

三个参数的含义,缺一不可:

  • --context-length 262144:与 config.json 的max_position_embeddings严格对齐。这是长上下文推理的第一参数,设小了会被静默截断,设得远超原生值则未经官方验证。
  • --reasoning-parser qwen3:模型开启思考模式(enable_thinking),需要推理解析器把<think>...</think>内容从正式回复中拆出来,否则前端会拿到"混在一起"的输出。
  • --tool-call-parser qwen3_coder:配合智能体后训练,让工具调用以结构化格式返回,而不是纯文本。

服务启动后,通过 OpenAI 兼容接口发请求即可(注意model字段填--served-model-name指定的neohorse-1-4b,不是文件路径):

curl http://localhost:30000/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{"model":"neohorse-1-4b","messages":[{"role":"user","content":"你好,请介绍你的上下文长度"}],"max_tokens":512}'

vLLM 部署 NeoHorse-1-4B:--max-model-len写法

如果你更习惯 vLLM,参数对应关系如下:

pip install -U vllm MODEL_PATH="/path/to/NeoHorse-1-4B" vllm serve "$MODEL_PATH" \ --served-model-name neohorse-1-4b \ --host 0.0.0.0 \ --port 8000 \ --max-model-len 262144 \ --reasoning-parser qwen3 \ --enable-auto-tool-choice \ --tool-call-parser qwen3_coder

要点:

  1. --max-model-len 262144对应 SGLang 的--context-length,vLLM 用户最常漏的就是这个参数——不显式设置时可能回落到框架默认值(往往只有 32K~8K),长文档直接报错或截断。
  2. 工具调用需要成对配置--enable-auto-tool-choice+--tool-call-parser qwen3_coder,只配一半会导致工具调用不生效。
  3. 默认端口 8000,与 SGLang 的 30000 区分开,避免多框架共存时请求串端口。

长上下文 6 大高频踩坑清单

坑现象正确做法
上下文参数没对齐长文档被截断、报"prompt 超长"显式设置--context-length/--max-model-len为262144
直接拉满 1M显存暴涨甚至 OOM,且超出官方验证范围1M 为"可扩展上限",先按 262K 运行,再按实际显存逐步上调并自行验证效果
输入 + 输出超限生成中途被硬停预留余量:输入 token + max_tokens ≤ context-length
忘配推理解析器思考内容混进正式回答加--reasoning-parser qwen3
忘配工具解析器工具调用变成纯文本加--tool-call-parser qwen3_coder(vLLM 再配--enable-auto-tool-choice)
请求模型名写错404 / model not foundmodel填neohorse-1-4b(即--served-model-name),不是路径

官方采样参数:一键复现报告协议

想要复现 README.md 中的评测成绩(SGLang v0.5.17、思考模式开启),采样参数照抄即可:

temperature=1.0, top_p=0.95, top_k=20, min_p=0.0, presence_penalty=1.5, repetition_penalty=1.0, enable_thinking=true, force_nonempty_content=true

注意presence_penalty=1.5这个偏高的取值——长上下文推理中它能有效抑制长回复里的重复循环,是复现成绩时容易被忽略的一项。

模型文件清单与许可

文件说明
config.json模型结构与长上下文核心配置
model-00001-of-00002.safetensors、model-00002-of-00002.safetensorsBF16 权重(分片)
model.safetensors.index.json权重索引
tokenizer.json、vocab.json、merges.txt分词器(词表 248,320)
chat_template.jinja对话模板,内置思考与工具调用格式
LICENSEApache-2.0 许可

小结

  • NeoHorse-1-4B 用混合线性注意力 + 大 rope 基频 + GQA实现 4B 规模的 262K 原生上下文,架构上预留至 1M 的扩展空间。
  • 部署时三件套:上下文长度对齐 262144、推理解析器qwen3、工具解析器qwen3_coder。
  • 长上下文 = 长记忆 + 长工具链,把它接入智能体框架时,记得为max_tokens预留输出余量。

配置一次到位,长上下文推理从此不踩坑 🐴

【免费下载链接】NeoHorse-1-4B项目地址: https://ai.gitcode.com/hf_mirrors/TokenRhythm/NeoHorse-1-4B

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询