- 大模型
- 基础模型
- 本地部署
- 代码模型
【免费下载链接】Ornith-1.5-35B-A3B-GGUF
本篇技术指南以 HuggingFace 镜像仓库 Ornith-1.5-35B-A3B-GGUF 中的模型卡(README)为主体,完整讲解 Ornith-1.5-35B-A3B 这个约 35B 参数、单 token 仅激活约 3B 参数的 MoE 推理模型的背景、基准表现、部署方式与 Agent 化使用方案。读完本文,你将掌握:用 vLLM / SGLang 搭建 OpenAI 兼容服务、开启 reasoning(<think>思维链)与工具调用(<tool_call>)解析、通过 YaRN 将有效窗口从 262,144 扩展到约 100 万 token、用 Python SDK 调用 Chat Completions API,以及把模型接入 Ollama、llama.cpp、OpenClaw、OpenCode 等主流 Agent 与编码工具的具体配置。
一、模型概览:从 Ornith-1.0 到 Ornith-1.5 的自我改进路线
Ornith-1.5是 ornith-ai 团队在"端到端自我改进(end-to-end self-improvement)"方向上的一次重大迭代。其前身 Ornith-1.0 基于 Qwen3.5 与 Gemma4 继续预训练(continued pretraining)、中期训练(mid-training)与后期训练(post-training)而来。Ornith-1.5 在此基础上把自我改进闭环从"脚手架(scaffold)与 rollout 优化"扩展为联合优化任务生成(task generation)、脚手架构建(scaffold construction)与解决方案 rollout三个环节——模型不再依赖固定的人工标注任务集与手工设计的 harness,而是持续生成新的训练任务、发现解决这些任务的有效策略,并通过强化学习(reinforcement learning)改进策略本身。
本仓库聚焦的是该家族中的中尺寸 MoE 成员Ornith-1.5-35B-A3B:
- 总参数量约 35B,每 token 仅激活约 3B 参数(A3B 即 "Activated ~3B"),BF16 精度下权重约 70GB;
- 在编程(coding)与 Agent 相关基准上显著优于同量级 peer 模型 Qwen 3.6-35B,并在 Agent 编程上大幅领先 Gemma 4-31B、Muse Glimmer-30B 等稠密(dense)模型;
- 是一个推理模型(reasoning model):默认情况下,助手的回答会先输出
<think> … </think>思维链块,再给出最终答案。
仓库内容:GGUF 量化文件一览
本 GGUF 镜像仓库除 README.md 外,提供了多个可直接用于 llama.cpp 生态的量化文件(均为 Git LFS 管理的指针,拉取后即为完整权重):
| 文件 | 说明 |
|---|---|
| Ornith-1.5-35B-BF16.gguf | BF16 全精度转换版,LFS 指针显示体积约 71GB |
| Ornith-1.5-35B-Q8_0.gguf | 8-bit 量化,质量最接近 BF16 |
| Ornith-1.5-35B-Q6_K.gguf | 6-bit K 量化,质量/体积平衡点 |
| Ornith-1.5-35B-Q5_K_M.gguf | 5-bit K 量化(中等),主流本地部署选择 |
| Ornith-1.5-35B-Q4_K_M.gguf | 4-bit K 量化(中等),体积最小、显存门槛最低 |
| mmproj-Ornith-1.5-35B-BF16.gguf | 多模态投影(MMProj)文件,用于视觉多模态推理 |
.gitattributes中还登记了Ornith-1.5-35B.imatrix.gguf(重要性矩阵量化版),说明该模型在 llama.cpp 生态下具有完整的量化支持。这些 GGUF 文件可以直接被下文 Agent 章节中的llama-server -hf、Ollama 等工具加载使用。
二、基准表现:编程 / 推理 / Agent 三维度对比
README 中给出了 Ornith-1.5-35B-A3B 与 Ornith-1.0-35B-A3B、Qwen3.6-35B-A3B、Gemma-4-31B、Muse-Glimmer-30B、Qwen3.5-397B 的对比数据。Ornith-1.5 的结果为 5 次独立运行的平均值("-" 表示原模型卡未报告该指标)。下表完整继承了原文档的 18 项评测结果:
| 基准 | Ornith-1.5-35B-A3B | Ornith-1.0-35B-A3B | Qwen3.6-35B-A3B | Gemma-4-31B | Muse-Glimmer-30B | Qwen3.5-397B |
|---|---|---|---|---|---|---|
| Coding | ||||||
| Terminal-Bench 2.1 (Terminus-2) | 67.8 | 64.2 | 52.5 | 42.1 | 51.7 | 53.5 |
| Terminal-Bench 2.1 (Claude Code) | 68.5 | 62.8 | 49.2 | - | - | 48.6 |
| SWE-bench Verified | 79 | 75.6 | 73.4 | 52 | 76 | 76.4 |
| SWE-bench Pro | 59.6 | 50.4 | 49.5 | 35.7 | 51.2 | 51.6 |
| SWE-bench Multilingual | 71.4 | 69.3 | 67.2 | 51.7 | - | 69.3 |
| DeepSWE | 22 | 0 | 0 | - | - | 1 |
| Frontier-Bench v0.1 | 5.1 | 1.4 | 1.4 | - | - | 1.4 |
| NL2Repo | 46.2 | 34.6 | 29.4 | 15.5 | - | 36.8 |
| SWE Atlas - QnA | 39.8 | 37.1 | 15.5 | - | - | 20.4 |
| Reasoning | ||||||
| HLE (no tools) | 25.6 | 20.8 | 21.4 | 19.5 | 22 | 28.7 |
| HLE (with tools) | 33.4 | 30.1 | 28.9 | 26.5 | - | 48.3 |
| GPQA Diamond | 89.2 | 86.2 | 86 | 84.3 | 83.5 | 88.4 |
| Agentic | ||||||
| MCP-Atlas | 70.2 | 64.4 | 62.8 | 55 | 75.5 | 72.3 |
| Toolathlon-Verified | 48.7 | 42.4 | 41.7 | 40.8 | - | 38.3 |
| WideSearch | 67.8 | 63.4 | 60.1 | 54.2 | - | 74 |
| BrowseComp | 67.6 | 63.5 | 62 | - | - | 78.6 |
| ClawEval | 72.5 | 69.8 | 68.7 | 48.5 | - | 70.7 |
关键结论(基于模型卡数据):在 Coding 全部 9 项与 Agentic 的 Toolathlon-Verified、ClawEval 上,Ornith-1.5-35B-A3B 均为对比组中的最高分;DeepSWE 上更是取得 22 分对 0/1 分的代差优势。Reasoning 中 GPQA Diamond 达到 89.2,HLE 在无工具/带工具场景均超过 Qwen3.6-35B-A3B。需要说明的是,Qwen3.5-397B 是远超 35B 量级的巨模型,在 HLE、WideSearch、BrowseComp 等项目上仍然领先,这属于量级差异而非同档竞争。
评测设置与防作弊说明(可复现前提)
模型卡对每项基准都给出了明确的评估配置,这是复现数据的关键前提:
- Terminal-Bench 2.1(Terminus-2):使用 Harbor/Terminus-2 框架,
parser=json、temperature=1.0、top_p=1.0、128K 上下文窗口;每次运行 4 小时超时、32 CPU 核 + 48GB RAM,5 次平均。需要把 Qwen 聊天模板调整为与训练一致,并修改 Harbor 以对齐 vLLM 的reasoning_contentkey; - Terminal-Bench 2.1(Claude Code):Claude Code 2.1.126,
parser=json、temperature=1.0、top_p=1.0、max_new_tokens=131072,5 次平均,同样需要修改 Qwen 聊天模板; - SWE-Bench Verified / Pro / Multilingual:OpenHands harness,
temp=1.0、top_p=0.95、256K 上下文;全程启用防作弊(anti-hacking)——移除本地仓库镜像的 Git 历史防止读取既有提交,禁用网络访问防止模型检索外部资源; - DeepSWE:Claude Code harness,
temperature=1.0、top_p=0.95、256K 上下文; - SWE Atlas QnA:mini SWE agent harness,
temp=1.0、top_p=0.95、128K 上下文,5 次平均; - NL2Repo:
temperature=1.0、top_p=1.0、400K 上下文、48K 输出;屏蔽指定的 GitHub 仓库与 pip 包访问以防 reward hacking; - HLE:以 Claude 4.6 Opus 作为裁判(judge)模型;
- MCP-Atlas:500 任务公开子集、thinking 模式、每任务 10 分钟超时,以 Claude 4.8 Opus 为裁判;
- Toolathlon-Verified:官方评测服务,token 上限 128K;
- ClawEval:真实用户任务分布的 Agent 编程基准,
temp=0.6、256K 上下文。
三、快速开始:运行环境与采样参数
在部署前,先确认运行环境满足模型卡要求的版本门槛,并遵循推荐的采样配置:
运行时版本要求:
| 运行时 | 最低版本 |
|---|---|
| Transformers | ≥ 5.8.1 |
| vLLM | ≥ 0.19.1 |
| SGLang | ≥ 0.5.9 |
推荐采样参数:
- 通用任务:
temperature=0.6、top_p=0.95、top_k=20; - 复现模型卡基准:
temperature=1.0(评测环境即按此执行)。
关于推理模型的特别提示:Ornith-1.5-35B-A3B 是 reasoning 模型,默认会在最终答案前输出<think> … </think>块。下文所有部署配方都会开启 reasoning parser,把思维链单独放到reasoning_content字段返回;同时开启工具调用 parser,把模型的<tool_call>块解析成 OpenAI 风格的tool_calls字段。
四、部署服务:vLLM 与 SGLang 配方
Ornith-1.5-35B-A3B 在 BF16 下约占用 70GB 权重,模型卡建议在2× 80GB GPU上部署(为 256K 上下文预留 KV cache 空间),并按实际硬件调整--tensor-parallel-size/--tp。
vLLM
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关键参数说明:
--tensor-parallel-size 2:2 卡张量并行;显存足够的单卡/多卡环境需按实际调整;--max-model-len 262144:对齐模型的 262,144 token 原生上下文上限;--gpu-memory-utilization 0.90:为权重与 KV cache 预留 90% 显存;--enable-prefix-caching:开启前缀缓存,多轮 Agent 对话可复用系统提示与工具定义前缀;--tool-call-parser qwen3_xml:把模型输出的<tool_call>XML 块解析为 OpenAI 风格tool_calls;--reasoning-parser qwen3:把<think>思维链解析到reasoning_content字段;--trust-remote-code:信任远端仓库的自定义代码(与 Qwen 系模板兼容)。
SGLang
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 qwen3SGLang 与 vLLM 的差异点:使用--tp 2做张量并行、--mem-fraction-static 0.85设定显存占比、--context-length 262144设定上下文长度;工具调用解析器在此配方中为qwen3_coder。两者均以0.0.0.0:8000对外暴露 OpenAI 兼容的/v1接口。
五、长上下文扩展:用 YaRN 把窗口扩到约 100 万 token
Ornith-1.5-35B-A3B 原生支持262,144 token的上下文窗口。当任务的输入 + 输出总长需要超过该上限时,模型卡建议用RoPE 缩放扩展有效窗口——其中YaRN是官方验证过的技术,且已内置于 vLLM 与 SGLang。使用 4.0 的缩放因子时,可用窗口大约扩大到100 万 token。
开启 YaRN 有两条等价路径:
方式一:修改 checkpoint 的config.json,添加rope_scaling块:
{ "rope_scaling": { "rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 262144 } }方式二:启动时覆盖(不改动 checkpoint),在服务命令中追加对应参数:
vLLM(需要VLLM_ALLOW_LONG_MAX_MODEL_LEN=1放开长度上限检查):
VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 vllm serve ornith-ai/Ornith-1.5-35B-A3B ... --hf-overrides '{"rope_scaling": {"rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 262144}}' --max-model-len 1000000SGLang(需要SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1):
SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 python -m sglang.launch_server ... --json-model-override-args '{"rope_scaling": {"rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 262144}}' --context-length 1000000重要注意事项(模型卡原话):开源运行时实现的 YaRN 是静态的——无论请求长短,缩放因子都作用于每一次请求,这会对普通长度输入的生成质量带来轻微损失。因此:
- 只有工作负载确实需要更长窗口时才开启
rope_scaling; factor应与实际需求匹配:目标窗口约等于factor × 262,144,例如请求长度峰值在 524,288 token 左右时,factor: 2.0是更合适的设置。
六、通过 OpenAI 兼容 Chat Completions API 使用
服务启动后,可用任意 OpenAI 兼容客户端(Python、Node.js SDK 或curl)访问http://localhost:8000/v1/chat/completions。
基础用法:读取思维链与最终答案
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 # reasoning_content 存放 <think> 思维链;content 存放最终答案。 print("reasoning:", getattr(message, "reasoning_content", None)) print("answer:", message.content)注意reasoning_content需要服务端开启 reasoning parser(即上文 vLLM/SGLang 配方中的--reasoning-parser qwen3)才会出现;该字段用getattr读取以便兼容未开启的服务器。
工具调用(Function Calling)
模型会输出格式良好的函数调用,由服务端解析为标准tool_calls字段。下面是一个天气查询工具的完整示例:
tools = [ { "type": "function", "function": { "name": "get_weather", "description": "Get the current weather for a city", "parameters": { "type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"], }, }, } ] response = client.chat.completions.create( model="Ornith-1.5-35B-A3B", messages=[{"role": "user", "content": "What is the weather in Paris right now?"}], tools=tools, tool_choice="auto", temperature=0.6, max_tokens=2048, ) tool_call = response.choices[0].message.tool_calls[0] print(tool_call.function.name, tool_call.function.arguments) # -> get_weather {"city": "Paris"}拿到tool_call后,按标准 Agent 循环执行函数、把结果以tool角色消息回传,即可完成多轮工具调用。API 同样支持流式(streaming)token 输出。
七、Agent 化使用:接入主流 Agent 框架与编码 CLI
Ornith-1.5-35B-A3B 在工具调用与 Agent 编程上表现突出,模型卡给出了一系列开箱即用的接入方式。
直接加载 GGUF(Ollama / llama.cpp)
Ollama 直接运行本仓库的 GGUF 构建(ollama run hf.co/…-GGUF会按 LFS 拉取实际权重):
ollama run hf.co/ornith-ai/Ornith-1.5-35B-A3B-GGUFllama.cpp 以 OpenAI 兼容 API 在 8000 端口提供 262,144 token 上下文的服务(Atomic.chat 也采用同样的 llama.cpp API 方案):
llama-server -hf ornith-ai/Ornith-1.5-35B-A3B-GGUF --port 8000 -c 262144-hf参数直接从 HuggingFace 拉取该 GGUF 仓库;-c 262144对齐模型原生上下文长度。本地已有下载好的 GGUF 文件时,也可改用本地路径加载。
通过环境变量指向你的 Ornith 服务
Hermes Agent 与 OpenClaw 均支持 OpenAI 兼容端点,只需设置三个环境变量即可指向本地服务:
# Hermes export OPENAI_BASE_URL="http://localhost:8000/v1" export OPENAI_API_KEY="EMPTY" export MODEL="ornith-ai/Ornith-1.5-35B-A3B"# OpenClaw export OPENAI_BASE_URL="http://localhost:8000/v1" export OPENAI_API_KEY="EMPTY" export OPENAI_MODEL="ornith-ai/Ornith-1.5-35B-A3B"Unsloth Studio:本地推理与微调
pip install unsloth# Python 中加载 Ornith 进行快速本地推理或微调: # from unsloth import FastLanguageModel # model, tokenizer = FastLanguageModel.from_pretrained( # "ornith-ai/Ornith-1.5-35B-A3B", # max_seq_length=262144, # load_in_4bit=True, # )max_seq_length=262144对齐原生上下文上限,load_in_4bit=True启用 4-bit 量化加载以降低显存需求。
编码 CLI:OpenCode
Ornith-1.5-35B-A3B 面向终端编码 Agent 优化,可让任意 OpenAI 兼容编码 CLI(设置OPENAI_BASE_URL与OPENAI_API_KEY)接入本地端点,用于理解大型代码库、自动化重复工作。OpenCode 需要在~/.config/opencode/opencode.json注册 provider:
{ "$schema": "https://opencode.ai/config.json", "provider": { "ornith": { "npm": "@ai-sdk/openai-compatible", "name": "Ornith (local)", "options": { "baseURL": "http://localhost:8000/v1", "apiKey": "EMPTY" }, "models": { "ornith-ai/Ornith-1.5-35B-A3B": { "name": "Ornith-1.5-35B-A3B" } } } } }然后直接运行opencode即可在会话中选择 Ornith 模型。
八、引用方式
若你的工作使用了 Ornith-1.5,模型卡建议按以下 BibTeX 条目引用:
@misc{ornith_1_5, title = {{Ornith-1.5}: From Self-Scaffolding to Self-Improvement}, url = {https://ornith.ai/ornith_1_5.html}, author = {{Ornith Team}}, year = {2026} }九、实践要点速查
- 版本先行:Transformers ≥ 5.8.1、vLLM ≥ 0.19.1、SGLang ≥ 0.5.9,旧版本可能无法正确解析 reasoning / tool-call;
- 显存规划:BF16 权重约 70GB,2× 80GB GPU 是模型卡的标准部署配置,256K 上下文会占用大量 KV cache;
- 推理与工具:默认开启
--reasoning-parser qwen3与--tool-call-parser(vLLM 用qwen3_xml、SGLang 配方用qwen3_coder)才能拿到reasoning_content与tool_calls; - 长上下文:YaRN 是官方验证的窗口扩展方案,
factor: 4.0≈ 1M token;但静态缩放会轻微损失普通长度输入的质量,非必要不开启,并按峰值长度选 2.0 / 4.0; - 复现基准:统一使用
temperature=1.0,并严格按照模型卡的 harness 与防作弊配置执行; - Agent 接入:
OPENAI_BASE_URL+OPENAI_API_KEY环境变量是连接 Hermes、OpenClaw、OpenCode 等 OpenAI 兼容工具的统一入口。
以上全部内容均直接取自 README.md(模型卡)所述事实,GGUF 文件名、体积与.gitattributes登记信息来自本仓库实际文件,可作为继续深入源码与权重细节的起点。
- 大模型
- 基础模型
- 本地部署
- 代码模型
【免费下载链接】Ornith-1.5-35B-A3B-GGUF
相关推荐
昇腾 Ascend NPU 上基于 vllm-ascend 部署 Qwen3.6-35B-A3B 推理服务全指南
昇腾 Ascend NPU 上基于 vllm ascend 部署 Qwen3.6 35B A3B 推理服务全指南 Qwen3.6 35B A3B 是通义实验室发
大模型人工智能教程本地部署微调Qwen3 与 vLLM 部署实战:从 OpenAI 兼容 API 到 Thinking 模式、工具调用与长上下文配置
Qwen3 与 vLLM 部署实战:从 OpenAI 兼容 API 到 Thinking 模式、工具调用与长上下文配置 Qwen3 是阿里云 Qwen 团队推出
人工智能大模型Qwen模型评测示例工程本地部署教程大麦抢票脚本:把抢票从拼手速变成打接口
大麦抢票脚本:把抢票从拼手速变成打接口 本文拆解大麦抢票脚本 Automatic_ticket_purchase:用 Selenium 登录一次,之后直接打大麦
网页爬虫工作流自动化
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考