2025年8月20日,字节跳动Seed团队正式发布Seed-OSS-36B系列模型,包括Seed-OSS-36B-Base(含合成数据和无合成数据两个版本)以及Seed-OSS-36B-Instruct指令微调模型。 作为开源AI领域的重要里程碑,这一360亿参数的模型凭借其创新特性和卓越性能,迅速成为开发者社区的焦点。
Seed-OSS-36B-Instruct是字节跳动Seed团队开发的开源大语言模型,采用Apache-2.0许可协议向全球开发者开放。 该模型采用标准的因果语言模型架构,技术参数如下:
| 特性 | 参数 |
|---|---|
| 参数规模 | 36B |
| 注意力机制 | GQA |
| 激活函数 | SwiGLU |
| 层数 | 64 |
| 词汇量 | 155K |
| 上下文长度 | 512K |
| 训练数据量 | 12T tokens |
最引人注目的是其原生支持512,000 tokens的超长上下文窗口,这一数字是Llama3-70B(8K)的64倍,是Qwen3-32B(32K)的16倍,为处理长文档、代码库和复杂对话提供了前所未有的能力。 值得注意的是,尽管仅使用12T tokens进行训练(远低于同类模型),Seed-OSS-36B-Instruct在多项基准测试中却展现出超越更大规模模型的性能。
安装
git clone https://github.com/ByteDance-Seed/seed-oss.git
pip3 install -r requirements.txt
pip install git+ssh://git@github.com/Fazziekey/transformers.git@seed-oss
运行代码
from transformers import AutoModelForCausalLM, AutoTokenizer
import os
import re
model_name_or_path = "ByteDance-Seed/Seed-OSS-36B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, device_map="auto") # You may want to use bfloat16 and/or move to GPU here
messages = [
{"role": "user", "content": "How to make pasta?"},
]
tokenized_chat = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
thinking_budget=512 # control the thinking budget
)
outputs = model.generate(tokenized_chat.to(model.device), max_new_tokens=2048)
output_text = tokenizer.decode(outputs[0])
官方推理脚本
cd inference
python3 generate.py --model_path /path/to/model
关键参数
vLLM
使用 vllm >= 0.10.0 或更高版本进行推理。
首先安装支持 Seed-OSS 的 vLLM 版本:
VLLM_USE_PRECOMPILED=1 VLLM_TEST_USE_PRECOMPILED_NIGHTLY_WHEEL=1 pip install git+ssh://git@github.com/FoolPlayer/vllm.git@seed-oss
启动 vLLM API 服务器:
python3 -m vllm.entrypoints.openai.api_server \
--host localhost \
--port 4321 \
--enable-auto-tool-choice \
--tool-call-parser seed_oss \
--trust-remote-code \
--model ./Seed-OSS-36B-Instruct \
--chat-template ./Seed-OSS-36B-Instruct/chat_template.jinja \
--tensor-parallel-size 8 \
--dtype bfloat16 \
--served-model-name seed_oss
使用 OpenAI 客户端测试: 聊天
# no stream
python3 inference/vllm_chat.py --max_new_tokens 4096 --thinking_budget -1
# stream
python3 inference/vllm_chat.py --max_new_tokens 4096 --thinking_budget -1 --stream
工具调用
# no stream
python3 inference/vllm_tool_call.py --max_new_tokens 4096 --thinking_budget -1
# stream
python3 inference/vllm_tool_call.py --max_new_tokens 4096 --thinking_budget -1 --stream
1. 灵活的思考预算控制:效率与质量的平衡
Seed-OSS-36B-Instruct引入了创新的"思考预算"机制,允许用户根据实际需求灵活调整模型的推理长度。 这一特性在实际应用中展现出显著价值:
- 低复杂度任务(如IFEval):思考预算512 tokens即可达到最佳效果,平均响应时间缩短40%
- 高复杂度任务(如AIME数学题):将思考预算从512提升至2K,准确率从78%提升至89%
- 代码生成任务:在LiveCodeBench测试中,1K思考预算比无限制预算的准确率高出5.2%
实际案例:某金融科技公司使用该模型分析512K长的财报文档,将思考预算设置为4K,准确识别出隐藏在附注中的关键风险点,而其他模型因上下文限制无法完成此任务。
2. 代理智能与工具调用:真正的AI助手
该模型在代理任务中表现卓越,特别是在SWE-Bench Verified (OpenHands)测试中达到了56分的高分,远超Qwen3-32B的23.4分和Gemma3-27B的未达标表现。
# vLLM工具调用示例
from openai import OpenAI
client = OpenAI(base_url="http://localhost:4321/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="seed_oss",
messages=[{"role": "user", "content": "查询今天上海到北京的航班"}],
tool_choice="auto"
)
通过vLLM框架的--tool-call-parser seed_oss参数,开发者可以轻松实现工具调用功能,使模型能够与外部系统交互,执行复杂任务。
3. 研究友好的模型设计:透明与开放
考虑到预训练中包含合成指令数据可能会影响后训练研究,字节跳动同时发布了带和不带合成指令数据的预训练模型:
- Seed-OSS-36B-Base (w/ syn.):包含合成指令数据,MMLU达到84.9分
- Seed-OSS-36B-Base-woSyn (w/o syn.):不含合成指令数据,MMLU达到84.8分
这种设计为研究者提供了更纯净的实验环境,尤其适合研究指令微调对模型能力的影响。
基准测试结果对比
| 测试类别 | 指标 | Seed-OSS-36B-Instruct | Qwen3-32B | Llama3-70B |
|---|---|---|---|---|
| 知识理解 | MMLU | 87.4 | 86.2 | 82.0 |
| 数学能力 | AIME24 | 91.7 | 82.7 | 85.1 |
| 编码能力 | LiveCodeBench v6 | 67.4 | 53.4 | 61.2 |
| 代理任务 | SWE-Bench Verified | 56 | 23.4 | 48.7 |
| 长上下文 | RULER (128K) | 94.6 | 77.5 | 89.3 |
模型优势与局限性
优势:
- 长上下文处理能力远超同类模型(512K vs Qwen3-32B的32K)
- 数学和编码能力突出,AIME24达到91.7分
- 代理任务表现卓越,SWE-Bench Verified达56分
- 思考预算机制提供灵活的推理控制
局限性:
- 36B参数规模对普通开发者硬件要求较高,完整精度部署需要至少80GB显存
- 中文特定任务上可能不如专门优化的中文模型(如Qwen-Max)
- 在简单任务上,推理速度比7B级别模型慢约3倍
- 安全性测试(AIR-Bench)得分75.6,仍有提升空间
部署方案对比
| 方案 | 硬件需求 | 速度(tokens/s) | 适用场景 |
|---|---|---|---|
| 完整精度 | 2×A100 80GB | 25 | 研究与高精度任务 |
| 8-bit量化 | 1×A100 80GB | 38 | 一般应用场景 |
| 4-bit量化 | 1×RTX 4090 24GB | 18 | 个人开发者 |
| vLLM+Tensor Parallel | 4×A100 80GB | 120 | 高并发服务 |
量化部署示例
# 4-bit量化部署(适用于单卡RTX 4090)
python3 generate.py --model_path ./Seed-OSS-36B-Instruct \
--load_in_4bit True \
--thinking_budget 1024
性能优化建议
- 长上下文处理:对于超过128K的文档,建议使用RULER分块策略
- 思考预算设置:
- 简单问答:512
- 数学推理:2K-4K
- 代码生成:1K-2K
- 硬件配置:推荐使用8-bit量化+FlashAttention-2,平衡性能与资源消耗
Seed-OSS-36B-Instruct的发布不仅丰富了开源大模型生态,更为企业应用提供了高质量选择。据初步统计,发布24小时内,该模型在Hugging Face平台获得超过1,200次下载,GitHub仓库获得350+星标,显示出社区的强烈兴趣。
未来发展方向:
- 更小规模的蒸馏版本(7B/13B)以降低部署门槛
- 专门针对中文优化的变体
- 与字节跳动内部工具链更深度的集成
- 支持更多工具调用协议和API
Seed-OSS-36B-Instruct代表了开源大模型在长上下文处理、推理能力和代理智能方面的最新进展。虽然在硬件要求和中文优化方面仍有提升空间,但其512K原生上下文支持、灵活的思考预算控制和卓越的代理能力,使其成为处理复杂任务的理想选择。
对于开发者而言,建议根据具体场景选择合适的部署方案:研究场景可使用完整精度模型,生产环境推荐8-bit量化+vLLM的组合,个人开发者则可考虑4-bit量化版本。随着社区生态的不断完善,Seed-OSS系列有望成为开源大模型领域的重要力量。
部署提示:首次部署建议从8-bit量化开始,平衡性能与资源消耗。对于数学和代码任务,将思考预算设置为2K可获得最佳效果。
