☰
Ornith-1.5-35B-A3B 部署与 Agent 化使用完全指南:从 vLLM/SGLang 服务到 256K 长上下文与工具调用
2026/9/30 1:31:36 网站建设 项目流程
  • 大模型
  • 基础模型
  • 本地部署
  • 代码模型

【免费下载链接】Ornith-1.5-35B-A3B-GGUF

项目地址:https://ai.gitcode.com/hf_mirrors/ornith-ai/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.ggufBF16 全精度转换版,LFS 指针显示体积约 71GB
Ornith-1.5-35B-Q8_0.gguf8-bit 量化,质量最接近 BF16
Ornith-1.5-35B-Q6_K.gguf6-bit K 量化,质量/体积平衡点
Ornith-1.5-35B-Q5_K_M.gguf5-bit K 量化(中等),主流本地部署选择
Ornith-1.5-35B-Q4_K_M.gguf4-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-A3BOrnith-1.0-35B-A3BQwen3.6-35B-A3BGemma-4-31BMuse-Glimmer-30BQwen3.5-397B
Coding
Terminal-Bench 2.1 (Terminus-2)67.864.252.542.151.753.5
Terminal-Bench 2.1 (Claude Code)68.562.849.2--48.6
SWE-bench Verified7975.673.4527676.4
SWE-bench Pro59.650.449.535.751.251.6
SWE-bench Multilingual71.469.367.251.7-69.3
DeepSWE2200--1
Frontier-Bench v0.15.11.41.4--1.4
NL2Repo46.234.629.415.5-36.8
SWE Atlas - QnA39.837.115.5--20.4
Reasoning
HLE (no tools)25.620.821.419.52228.7
HLE (with tools)33.430.128.926.5-48.3
GPQA Diamond89.286.28684.383.588.4
Agentic
MCP-Atlas70.264.462.85575.572.3
Toolathlon-Verified48.742.441.740.8-38.3
WideSearch67.863.460.154.2-74
BrowseComp67.663.562--78.6
ClawEval72.569.868.748.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 qwen3

SGLang 与 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 1000000

SGLang(需要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 是静态的——无论请求长短,缩放因子都作用于每一次请求,这会对普通长度输入的生成质量带来轻微损失。因此:

  1. 只有工作负载确实需要更长窗口时才开启rope_scaling;
  2. 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-GGUF

llama.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

项目地址:https://ai.gitcode.com/hf_mirrors/ornith-ai/Ornith-1.5-35B-A3B-GGUF
点击查看免费下载

相关推荐

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

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

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

立即咨询