大家好,我是邵奈一,一个爱折腾的程序猿、正儿八经的斜杠青年。
1、这几年,我整理了不少 IT 技术教程,也喜欢记录工作中的经验和生活的点滴。
2、如果文章对你有帮助,是我的荣幸,欢迎在评论区交流。
今天(8月20日),开源大模型圈被一个新名字刷屏了------Ornith 1.5。
昨天(8月19日),AI 研究组织 DeepReinforce 一口气放出 9B、35B-A3B、397B 三款开源模型,组成完整的 Ornith-1.5 系列。今天一早,DoNews、网易等科技媒体集体跟进报道,"自我改进循环""397B 性能对标 Claude Opus 4.8""9B 量化版能塞进手机"几个关键词直接冲上技术圈热搜。
作为常年折腾本地大模型的博主,我第一反应永远是那句老话:能不能在我这台 Mac 上跑起来?能跑多快?踩不踩坑?
这篇文章,我用真机实测给你讲透------而且就今天发,趁热。
0x00 教程内容
最近开源大模型圈有个新动静,但这次不是套壳换皮------是官方直接打出"端到端自我改进(self-improvement)"旗号训练出来的模型:自己造训练任务、自己发现解法、自己用强化学习迭代。作为爱折腾本地部署的博主,我第一时间就在想:能不能在我这台 Mac 上跑起来?能跑多快?踩不踩坑?
这篇文章我用自己的真机实测,分六块给你讲透:
0x01Ornith 1.5 到底是什么(官方原话,不瞎编)0x02核心特点与能力(推理、长上下文、工具调用、多模态)0x03跑分到底有多强(官方 benchmark 全表)0x04本地部署踩坑实录(我先翻车在 MLX,再跑通 Ollama)0x05速度实测:本地到底快不快(附真实 tok/s 数据)0xFF总结与建议
说明:本文介绍、特点、跑分均来自官方 HuggingFace 模型卡与官网 ornith.ai/ornith_1_5....,本人只做转述与本地实测,不擅自添加未经验证的结论。
0x01 Ornith 1.5 到底是什么
先说官方自己的定位。据 HuggingFace 模型卡与官网介绍:
"We are introducing Ornith-1.5, a major step toward building foundation models through end-to-end self-improvement."(我们推出 Ornith-1.5,这是朝着通过端到端自我改进构建基础模型迈出的重要一步。)
它和 1.0 的关系也很清楚:
- Ornith-1.0 是基于 Qwen3.5 和 Gemma4,做了持续预训练、中期训练、后训练的产物;
- Ornith-1.5 把"自我改进循环"从 1.0 的"脚手架优化 + rollout 优化",扩展到了联合优化三件事:任务生成、脚手架构建、解法 rollout。
用人话讲就是:它不再依赖人工筛好的一堆固定题目和手工搭的测试台,而是持续生成新训练任务、自己摸索出有效解法,再用强化学习把策略改对。这是它最被津津乐道的点------模型在"自我进化"。
补充一个容易误会的点:这个"自我进化"发生在训练阶段------模型发布出来后权重就是固定的,你在本地部署它,它不会自己越用越强。官方说的自我改进,是指训练时模型自己出题、自己搭验证环境、自己迭代解法的机制。
家族一共三档:

本篇我重点折腾的是 9B 和 35B-A3B 这两个能在消费级设备落地的型号。
0x02 核心特点与能力
扒完官方文档,Ornith 1.5 这几个能力点是实打实写明的:
1. 原生推理模型(Reasoning)
官方明确说 Ornith-1.5 是 reasoning model :默认回复开头会带一个 <think> ... </think> 思维链块,再给最终答案。服务端可以开 reasoning parser,把推理过程单独塞进 reasoning_content 字段返回,方便你做流式展示或日志审计。
2. 超长上下文
原生支持 262,144 tokens(256K) 上下文窗口。更狠的是官方验证过用 YaRN 做 RoPE 缩放,factor 设 4.0 能把可用窗口扩到约 1M tokens。不过官方也提醒:开源运行时(vLLM / SGLang)的 YaRN 是静态的,普通长度输入开着反而会轻微掉质量,真需要长窗口再开。
3. 工具调用 / Agent 原生支持
提供 OpenAI 兼容 API,原生支持 tool_calls,开箱即用地接各种 agent 框架。官方文档里点名的就有 OpenCode、Hermes Agent、OpenClaw,以及 Unsloth 做本地推理/微调。
4. 多模态(部分版本)
基础版与 GGUF 版带视觉投影(mmproj),能看图;但官方给 Apple Silicon 的 MLX 版是纯文本 (视觉塔被剥离)。这点对本地部署选型的坑很大,后面 0x04 会专门讲。
5. 开源协议与采样参数
官方以 MIT 协议开源(具体以官网/模型卡 LICENSE 为准)。推荐采样参数:
- 通用任务(35B):
temperature=0.6, top_p=0.95, top_k=20;9B 官方推荐temperature=1.0, top_p=0.95, top_k=20, presence_penalty=1.5(小模型防退化) - 复现跑分:
temperature=1.0
0x03 跑分到底有多强
这部分是重头戏,也是我写这篇的动机之一------Ornith 1.5 的 agentic coding 跑分确实有点东西。下面两张表都是官方数据,所有结果均为 5 次独立运行取平均(官方原文注明)。不过注意:模型 8 月 19 日才发布,这些数字第三方还没独立复现过,先当厂商口径看。

图:Ornith-1.5-35B-A3B 在 12 项 agentic / reasoning benchmark 上的表现(数据来源:Ornith 官方 HuggingFace 模型卡,平均 5 次独立运行)
35B-A3B vs 同尺寸 / 更大模型

注意看:35B-A3B 虽然总参只有 35B,每 token 还只激活约 3B,却在 Terminal-Bench / SWE-bench 这类 agentic 榜单上压过同尺寸的 Qwen3.6-35B-A3B 一大截,SWE-bench Verified 79.0 甚至超过了 Qwen3.5-397B 的 76.4。也就是说,在"写代码、跑 agent"这个最实用的维度上,它用小身板干翻了大块头。

图:Ornith-1.5-9B 在 12 项 benchmark 上的表现(数据来源:Ornith 官方 HuggingFace 模型卡,平均 5 次独立运行)
9B vs 同尺寸 / 更大模型

9B 这个"小钢炮"也很能打:SWE-bench Verified 70.6,比同尺寸的 Qwen3.5-9B(53.2)高出近 18 个点,甚至摸到了 35B 级别的部分门槛。
0x04 本地部署踩坑实录(我自己的真机实测)
前面都是官方说法,下面才是我蹚出来的真坑。我用的设备是 Mac(M 系列芯片,64GB 统一内存),目标是在本地把这俩模型跑出连贯中文。
1. 先翻车在 MLX 版
我第一反应是走 MLX------Apple 芯片亲儿子格式,理应最快。从 ModelScope 用 aria2c 多连接拉取(这里有个小经验:单连接通常个位数 MB/s,开 16 路并发直接飙到约 214MB/s,35B+9B 共约 25GB 两分钟就下完了)。
下载本身毫无问题,但加载后一对话就翻车 :输出是一堆"多语言碎片乱码",不是 1.0 那会儿的 !!! 全崩,而是中文英文韩文混在一起的无意义拼接。
我当时做了四步排查,把"是不是我姿势不对"彻底排除:
(1)不是 chat 模板问题 :改用 /v1/completions 原始 completion 绕过模板,还是乱码; (2)不是 MoE 专属问题 :9B(Dense 稠密)和 35B(MoE)两个都坏; (3)不是 mlx-lm 版本旧 :升到最新 0.31.3(已是 PyPI 最新),照样乱码; (4)我判断根因在量化权重本身 :查 safetensors 头部,格式是合法 mlx 4bit(format: mlx,U32 打包 + BF16 scales),加载器认格式也能加载------疑似 4-bit 的 scales 转换有问题。
结论(仅代表我这台机器):Ornith 的 MLX 4bit 量化在我的 M 系 Mac + mlx-lm 0.31.3 上实测不可用,1.0 时代我也遇到过 MLX 乱码。但这是我的单机实测结论,官方 MLX 权重近期仍在更新,不排除后续修复------想省事的直接跳过 MLX 走 Ollama,这是第一个坑。
2. 跑通的正路:Ollama GGUF
换 Ollama 走 GGUF(llama.cpp Metal 后端),一条命令就通了:
bash
# 35B 多模态版(自动带视觉投影 mmproj,能看图)
ollama pull ornith-1.5:35b
ollama run ornith-1.5:35b
# 9B 轻量版
ollama pull ornith-1.5:9b
拉完直接出连贯中文,没有任何乱码。而且 ornith-1.5:35b 这个 tag 自带视觉投影,能直接发图片让它看------这是 MLX 纯文本版给不了的。
补充:官方 Ollama 文档里 35B 也给了
ollama run hf.co/ornith-ai/Ornith-1.5-35B-A3B-GGUF的写法,本质一样,挑顺手的即可。
3. 别下错仓库(命名坑)
Ornith 的仓库命名很容易看花眼,我帮大家理清:
- 带
-MLX-4bit后缀的是纯文本 MLX 量化(我实测 4bit 乱码,想省事先别下); - 不带后缀的
Ornith-1.5-35B-A3B是基础多模态版(含视觉塔,但非 MLX,mlx 跑不了); - 想在本地消费级设备跑,就认准 Ollama 库里的
ornith-1.5:35b/:9b。
4. 磁盘坑
35B GGUF 约 22GB + 视觉投影 0.9GB ≈ 23GB,9B 约 6.5GB。我中间一度因为先下了坏 MLX 占满盘,导致 Ollama 拉取差点空间不够。教训:下之前先看一眼剩余空间,别像我一样先囤一堆废量化。
0x05 速度实测:本地到底快不快
光说跑通不够,大家最关心速度。我在 Mac(M 系列芯片,64GB 统一内存)、Ollama 0.32.14 上实测 ornith-1.5:35b:

为什么能这么快?因为 35B-A3B 是 MoE,每 token 只激活约 3B 参数,解码时真正要搬的权重远少于"35B"这个总数,所以本地 GPU 上能轻松跑出 50+ tok/s,聊天、写代码、跑 agent 都丝滑。
不过别把速度当质量:这个 57.6 tok/s 是 Q4_K_M 量化版,而 0x03 的跑分全是官方 BF16 的结果。量化对 agentic 编码这类长链路任务有折损,本地 Q4 的实际表现别直接对标榜单数字。
另外解释一个很多人会误以为"模型卡"的现象:首词(TTFT)有时候很慢 。这不是模型慢,是 Ollama 默认 5 分钟闲置自动卸载 模型,下次冷启动要重新读盘 + 传 GPU。想常驻就加 --keepalive(比如 ollama run --keepalive 1h ornith-1.5:35b),首词就一直快了。
0xFF 总结
- 想了解 Ornith 1.5 的官方全貌 :去 ornith.ai/ornith_1_5.... 和 HuggingFace 模型卡,介绍、特点、跑分都写得明明白白;
- 想在 Mac 本地玩 :跳过 MLX(我实测 4bit 乱码,暂无解),直接
ollama pull ornith-1.5:35b,23GB 拉完即用,实测 57.6 tok/s,还能看图; - 9B 想轻量常驻 :
ollama pull ornith-1.5:9b,SWE-bench Verified 70.6 的小钢炮。
Ornith 1.5 能不能成为你本地 agent / 编码的主力,跑分已经给出相当有说服力的答案;而它"自我进化"的训练思路,也确实让这篇值得现在就发出来抢占一波热点。
邵奈一 原创不易,如转载请标明出处,教育是一生的事业。