ornith-ai/Ornith-1.5-35B-A3B
摘要
Ornith-1.5-35B-A3B 是一种混合专家AI模型,每个令牌仅激活30亿参数,并在编码和代理基准测试中超越了类似规模的模型,如Qwen和Gemma。
任务:文本生成
标签:transformers, safetensors, qwen3_5_moe, 图像到文本到文本, 文本生成, 对话式, 许可证:MIT, 评估结果, 端点兼容, 区域:美国
查看缓存全文
缓存时间: 2026/08/20 09:48
ornith-ai/Ornith-1.5-35B-A3B · Hugging Face 来源:https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B Ornith 博客 (https://deep-reinforce.com/ornith.html) 叽喳,叽喳!🐦 我们推出 Ornith-1.5,这是通过端到端自我改进构建基础模型的重要一步。Ornith-1.5 在 Ornith-1.0(基于 Qwen3.5 和 Gemma4 开发,并进行了额外的持续预训练、中期训练和后期训练)的基础上,将自我改进循环从脚手架和展开优化扩展到联合优化任务生成、脚手架构建和解决方案展开。Ornith-1.5 不再依赖一组固定的人工策划任务和手动设计的机制,而是持续生成新的训练任务,发现解决它们的有效策略,并通过强化学习改进策略。有关任务、机制和展开奖励设计的更多详细信息,请参阅我们的博客 (https://ornith.ai/ornith_1_5.html)。 Ornith 1.5 35B 基准测试结果 ## https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#ornith-15-35b-a3b-1Ornith 1.5 35B-A3B 本文档介绍了Ornith-1.5-35B-A3B,这是 Ornith-1.5 系列中的中型混合专家(Mixture-of-Experts)成员。该模型每个 token 仅激活约 30 亿参数,但在所有编码和智能体基准测试中显著优于同规模的同类模型 Qwen 3.6-35B,并在智能体编码方面大幅超越了 Gemma 4-31B 和 Muse Glimmer-30B 等稠密模型。 ### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#benchmarks基准测试 Ornnith-1.5-35B-A3BOrnith-1.0-35B-A3BQwen3.6-35B-A3BGemma-4-31BMuse-Glimmer-30BQwen3.5-397B编码Terminal-Bench 2.1(Terminus-2)67.864.252.542.151.753.5Terminal-Bench 2.1(Claude Code)68.562.849.2--48.6SWE-bench Verified7975.673.4527676.4SWE-bench Pro59.650.449.535.751.251.6SWE-bench Multilingual71.469.367.251.7-69.3DeepSWE2200--1Frontier-Bench v0.15.11.41.4--1.4NL2Repo46.234.629.415.5-36.8SWE Atlas - QnA39.837.115.5--20.4推理HLE(无工具)25.620.821.419.52228.7HLE(有工具)33.430.128.926.5-48.3GPQA Diamond89.286.28684.383.588.4智能体MCP-Atlas70.264.462.85575.572.3Toolathlon-Verified48.742.441.740.8-38.3WideSearch67.863.460.154.2-74BrowseComp67.663.562--78.6ClawEval72.569.868.748.5-70.7* Ornith-1.5 的所有报告结果均为五次独立运行的平均值。 * Terminal-Bench 2.1 (Terminus-2):我们使用 Harbor/Terminus-2 框架评估 Terminal-Bench 2.1,设置 parser=json,温度=1.0,top_p=1.0,上下文窗口为 128K。每次运行使用 4 小时超时,配备 32 个 CPU 核心和 48GB 内存,结果为 5 次运行的平均值。我们调整了 Qwen 聊天模板以确保训练和推理的一致性 (https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B/blob/main/chat_template.jinja),并修改了 Harbor 以对齐 vLLM 的 reasoning_content 键。 * Terminal-Bench 2.1 (Claude Code):我们使用 Claude Code 2.1.126 评估 Terminal-Bench 2.1,设置 parser=json,温度=1.0,top_p=1.0,max_new_tokens=131072。结果为 5 次运行的平均值。同样,需要修改 Qwen 聊天模板。 * SWE-Bench Verified、Pro 和 Multilingual:使用 OpenHands 机制,设置温度=1.0,top_p=0.95,上下文窗口 256K。在整个评估过程中应用了防黑客安全措施:从本地仓库镜像中移除 Git 历史记录,以防止访问先前的解决方案或提交;禁用网络访问,阻止模型检索外部信息或资源。 * DeepSWE:使用 Claude Code 机制评估,设置温度=1.0,top_p=0.95,上下文窗口 256K。 * SWE Atlas QnA:使用 mini SWE 代理机制,设置温度=1.0,top_p=0.95,上下文窗口 128K。结果为 5 次运行的平均值。 * NL2Repo:设置温度=1.0,top_p=1.0,上下文 400K,输出 48K。禁止访问指定的 GitHub 仓库和 pip 包,以防止奖励黑客攻击。 * HLE:使用 Claude 4.6 Opus 作为评判模型进行评估。 * MCP-Atlas:所有模型均在思考模式下在 500 任务的公开子集上进行评估,每个任务超时时间为 10 分钟。我们使用 Claude 4.8 Opus 作为评判模型。 * Toolathlon-Verified:我们使用官方评估服务,最大 token 限制设置为 128K。 * ClawEval:基于真实用户任务分布的智能体编码基准测试;温度=0.6,上下文 256K。 ## https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#quickstart快速入门 📝 注意 Ornith-1.5-35B-A3B是一个推理模型:默认情况下,助手轮次在最终答案之前以...</think>块开始。下面的提供方案启用了推理解析器,以便思维链在单独的reasoning_content字段中返回,并启用了工具调用解析器,以便模型的``块以 OpenAI 风格的tool_calls形式呈现。 提供 Ornith-1.5-35B-A3B 需要较新的运行时环境: - 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 ### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#serving-ornith-15-35b-a3b提供 Ornith-1.5-35B-A3B Ornith-1.5-35B-A3B 是一个约 350 亿参数的混合专家模型,每个 token 激活约 30 亿参数(bf16 约 70 GB)。下面的方案在2× 80GB GPU上启动一个 OpenAI 兼容的服务器,为 256K 上下文留出余量;根据你的硬件调整--tensor-parallel-size/--tp。 #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#vllmvLLM 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 #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#sglangSGLang 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 #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#for-long-context用于长上下文 Ornith-1.5-35B-A3B 处理的上下文窗口最多可达 262,144 个 token。当任务的总输入和输出必须超出此限制时,我们建议使用 RoPE 扩展来延长有效窗口——YaRN 是我们验证过的技术,并且已经内置在 vLLM 和 SGLang 中。在缩放因子为 4.0 时,可用窗口可扩展到大约 100 万个 token。你可以通过以下两种方式之一启用 YaRN: - 编辑检查点的config.json。在模型配置中添加一个rope_scaling块: { "rope_scaling": { "rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 262144 } } - 在启动时覆盖。保持检查点不变,在上面的提供命令中添加等效的标志。vLLM: 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 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是更好的设置。 ### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#using-ornith-15-35b-a3b-via-the-chat-completions-api通过 Chat Completions API 使用 Ornith-1.5-35B-A3B 一旦 vLLM 或 SGLang 服务器启动,你可以使用任何 OpenAI 兼容的客户端与之通信。 #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#basic-usage基本用法 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 保存思考过程;content 保存最终答案。 print("reasoning:", getattr(message, "reasoning_content", None)) print("answer:", message.content) 你也可以流式传输 token,或向模型提供工具——Ornith-1.5-35B-A3B 会生成格式正确的函数调用,服务器将其解析为标准的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"} 你可以将任何 OpenAI 兼容的 SDK(Python、Node.js 等)或curl指向同一个/v1/chat/completions端点。 ## https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#agentic-usage智能体用法 Ornith-1.5-35B-A3B 在工具调用和智能体编码方面表现出色。它提供了一个与 OpenAI 兼容的端点,支持工具调用,可与标准智能体框架无缝集成。 Ornith 与智能体结合使用的示例: #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#ollamaOllama ollama run hf.co/ornith-ai/Ornith-1.5-35B-A3B-GGUF #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#atomicchatAtomic.chat # Atomic.chat 通过 llama.cpp 的 OpenAI 兼容 API 在端口 8000 加载 Ornith 的 GGUF 构建版本 (ornith-ai/Ornith-1.5-35B-A3B-GGUF)。 llama-server -hf ornith-ai/Ornith-1.5-35B-A3B-GGUF --port 8000 -c 262144 #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#llamacppllama.cpp # llama.cpp — 在端口 8000 提供 OpenAI 兼容 API。 llama-server -hf ornith-ai/Ornith-1.5-35B-A3B-GGUF --port 8000 -c 262144 #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#hermes-agentHermes Agent # Hermes 可与任何 OpenAI 兼容端点通信——将其指向你的 Ornith 服务器。 export OPENAI_BASE_URL="http://localhost:8000/v1" export OPENAI_API_KEY="EMPTY" export MODEL="ornith-ai/Ornith-1.5-35B-A3B" #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#openclawOpenClaw # OpenClaw 可与任何 OpenAI 兼容端点通信——将其指向你的 Ornith 服务器。 export OPENAI_BASE_URL="http://localhost:8000/v1" export OPENAI_API_KEY="EMPTY" export OPENAI_MODEL="ornith-ai/Ornith-1.5-35B-A3B" #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#unsloth-studioUnsloth Studio pip install unsloth # 为快速本地推理或微调加载 Ornith (Python): # from unsloth import FastLanguageModel # model, tokenizer = FastLanguageModel.from_pretrained( # "ornith-ai/Ornith-1.5-35B-A3B", # max_seq_length=262144, # load_in_4bit=True, # ) ### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#coding-clis编码命令行工具 Ornith-1.5-35B-A3B 针对基于终端的编码代理进行了优化。将任何 OpenAI 兼容的编码命令行工具指向你的 Ornith-1.5-35B-A3B 端点(设置OPENAI_BASE_URL和OPENAI_API_KEY),即可理解大型代码库、自动化繁琐工作,并更快地发布代码。 #### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#opencodeOpenCode # 将你的本地 Ornith 端点注册为 ~/.config/opencode/opencode.json 中的提供者: # # { # "$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 ### https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B#citation引用 如果你觉得我们的工作有帮助,请随时引用。 @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} }
相似文章
ornith-ai/Ornith-1.5-35B-A3B-GGUF
Ornith-1.5-35B-A3B 是一款新的AI基础模型,通过采用端到端自我改进,在编码和代理基准测试上取得了卓越的性能,每个令牌仅激活约30亿个参数。
ornith-ai/Ornith-1.5-9B
Ornith-1.5-9B 是一款9B参数密集型AI模型,通过端到端自我改进来推进基础模型构建,并利用强化学习优化任务生成、框架构建和解决方案部署。它在与Qwen和Gemma等其他模型相比时,在各种基准测试上表现出竞争力性能。
ornith-ai/Ornith-1.5-9B-GGUF
Ornith-1.5是一款新的AI模型,它通过强化学习引入了端到端的自我改进,针对单GPU和边缘设备的高效部署进行了优化。
Ornith-1.5 9B 可能并不差
作者对包括Ornith-1.5 9B在内的几个AI模型进行了评测,任务涉及生成医学物理脚本,发现Ornith表现最佳,成功解决了6个任务中的5个。
Ornith 1.5:9B密集模型与35B/397B MoE模型
Ornith-1.5是一系列开源大语言模型,拥有9B、35B和397B参数,通过自我改进策略在推理、智能体和编程任务上达到最先进性能。