Ornith-1.5 开源:端到端自改进训练,35B MoE 激活 3B 即超越同级稠密模型 Gemma-4-31B

Ornith AI 团队开源 Ornith-1.5 系列模型,包含 397B MoE(旗舰)、35B-A3B MoE(每 token 激活 3B)和 9B Dense(含手机端量化版本)三个规格,均采用 MIT 协议。Ornith-1.5 的核心方法是端到端自改进:模型自行提出任务、生成评测脚手架、产出解题轨迹,三者用 GRPO 联合优化形成闭环,不再依赖人工策划的训练任务和固定评测框架。
397B 在 Terminal-Bench 2.1 上达到 86.1,接近 Claude Opus 4.8(85.0):

35B-A3B 仅激活 3B 参数,在全部编码与智能体基准上超越稠密架构的 Gemma-4-31B 和同参数量级的 Qwen3.6-35B-A3B:

9B Dense 在多项任务上匹配甚至超过参数量大数倍的 Gemma-4-31B:

开源地址
- 模型链接:https://www.modelscope.cn/collections/ornith-ai/Ornith-15
- 技术博客:https://ornith.ai/ornith_1_5.html
通过自生成的任务、评测环境与解法实现自我改进
Ornith-1.5 在 Ornith-1.0 的基础上进行了扩展:将自我改进闭环从“脚手架与轨迹优化”扩展为“联合优化任务生成、脚手架构建和解题轨迹”。Ornith-1.5 不再依赖一组固定的、人工整理的任务和手工设计的评测环境(harness),而是持续生成新的训练任务、发现有效的解题策略,并通过强化学习改进策略。
每个训练周期包含三个阶段:
任务提出
给定一个环境或代码库、关于任务类型的高层指令,以及模型此前解题历史的访问权限后,系统会提出难度递进的任务——这些任务超出模型此前已解决的范围,从而暴露能力短板,并不断推进训练前沿。
脚手架生成
对于每个任务,模型随后会生成或改进一个任务专属的脚手架——即用于解决该问题的指令、工具、分解策略和编排流程。
解题轨迹生成
以任务和脚手架为条件,策略会产出一条解题轨迹。该轨迹的奖励会回传到全部三个阶段,因此系统学到的不仅是产出更好的解法,还包括生成更有用的训练任务、构建更有效的脚手架。
在训练中反复迭代,这就形成了一个闭合的自我改进循环:更强的策略能生成更难、信息量更大的任务;不断演进的脚手架能发现更好的方式来激发模型能力;而更高质量的轨迹则提供越来越有效的学习信号。Ornith-1.5 不依赖静态的训练分布或手工设计的智能体方案,而是持续扩展自身的课程并调整解题策略,从而在推理、编码和智能体任务上带来持续的能力提升。

三个阶段分别由独立的奖励函数驱动:任务奖励要求提出的问题同时满足可验证、前沿难度(目标成功率约 20%)和非冗余;脚手架奖励衡量其与任务的对齐度、判分保真度和抗作弊性;轨迹奖励即任务是否完成。三组奖励均通过 GRPO 联合优化。
效果:编码、推理与智能体
Ornith-1.5-35B
Ornith-1.5-35B-A3B 在全部基准上领先同参数量级的 Qwen3.6-35B-A3B 和稠密架构的 Gemma-4-31B。相对前代 Ornith-1.0-35B-A3B,SWE-bench Pro 从 50.4 提升至 59.6(+9.2),NL2Repo 从 34.6 提升至 46.2(+11.6)。在 DeepSWE 和 Frontier-Bench 等高难度基准上,35B 级别模型中仅 Ornith-1.5 得分非零。
以下为 Ornith-1.5-35B-A3B 与同参数量级模型的对比,所有 Ornith-1.5 数据为五次独立运行的平均值。

Ornith-1.5 另外两个规格的基准测试结果:
Ornith-1.5-9B

Ornith-1.5-397B

本地部署
Ornith-1.5-35B-A3B 总参数量约 35B(MoE),bf16 权重约 70GB,推荐使用 2 张 80GB 显卡部署。
官方同时提供 FP8、NVFP4、GGUF 以及 MLX(全精度/8bit/6bit/4bit)量化版本,9B 和 397B 同样覆盖 GGUF、FP8、NVFP4 格式。
当前已支持通过 vLLM、SGLang、Transformers、Ollama、llama.cpp 和 MLX 部署。
推荐推理参数:temperature=0.6、top_p=0.95、top_k=20;复现 benchmark 时 temperature=1.0。支持 256K 上下文,通过 YaRN(factor=4.0)可扩展至约 1M token。
模型下载
modelscope download --model ornith-ai/Ornith-1.5-35B-A3B --local_dir ./ornith-ai/Ornith-1.5-35B-A3B
vLLM 部署
需要 vLLM ≥ 0.19.1:
vllm serve ornith-ai/Ornith-1.5-35B-A3B \
--served-model-name Ornith-1.5-35B-A3B \
--host 0.0.0.0 --port 8000 \
--tensor-parallel-size 2 \
--max-model-len 262144 \
--gpu-memory-utilization 0.90 \
--enable-prefix-caching \
--enable-auto-tool-choice --tool-call-parser qwen3_xml \
--reasoning-parser qwen3 \
--trust-remote-code
SGLang 部署
需要 SGLang ≥ 0.5.9:
python -m sglang.launch_server \
--model-path ornith-ai/Ornith-1.5-35B-A3B \
--served-model-name Ornith-1.5-35B-A3B \
--host 0.0.0.0 --port 8000 \
--tp 2 \
--context-length 262144 \
--mem-fraction-static 0.85 \
--tool-call-parser qwen3_coder \
--reasoning-parser qwen3
Ollama / llama.cpp
从魔搭下载 GGUF 量化版本后加载:
modelscope download --model ornith-ai/Ornith-1.5-35B-A3B-GGUF --local_dir ./Ornith-1.5-35B-A3B-GGUF
llama-server --model ./Ornith-1.5-35B-A3B-GGUF/Ornith-1.5-35B-A3B-Q4_K_M.gguf \
--port 8000 -c 262144
Ollama 同样可通过 Modelfile 指向本地 GGUF 文件使用。
MLX 部署(Apple Silicon)
从魔搭下载 MLX 量化版本,使用 mlx-lm 启动:
modelscope download --model ornith-ai/Ornith-1.5-35B-A3B-MLX-4bit --local_dir ./Ornith-1.5-35B-A3B-MLX-4bit
pip install mlx-lm
mlx_lm.server --model ./Ornith-1.5-35B-A3B-MLX-4bit --port 8000
也可在 Python 中直接生成:
from mlx_lm import load, generate
model, tokenizer = load("./Ornith-1.5-35B-A3B-MLX-4bit")
response = generate(model, tokenizer, prompt="Hello", max_tokens=256)
OpenAI 兼容 API 调用
服务启动后可通过标准 OpenAI SDK 直接访问,推理过程在 reasoning_content 字段返回:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="EMPTY",
)
response = client.chat.completions.create(
model="Ornith-1.5-35B-A3B",
messages=[
{"role": "user", "content": "Write a one-line Python lambda that squares a number."}
],
temperature=0.6,
top_p=0.95,
max_tokens=1024,
)
message = response.choices[0].message
print("reasoning:", getattr(message, "reasoning_content", None))
print("answer:", message.content)
服务兼容 OpenAI API,可直接对接 OpenCode、Hermes Agent、OpenClaw 等终端编码工具,设置 OPENAI_BASE_URL 指向本地端点即可。
更多推荐




所有评论(0)