对于无需实时响应的推理场景,批量推理(Batch API)能以实时推理一半的成本,一次性完成海量数据的异步处理,且接口兼容OpenAI,适合执行模型评测、数据预处理等批量作业。
本文档仅适用于中国大陆版(北京地域)。
工作原理
批量推理采用异步模式:
提交任务:上传请求文件,创建一个批量推理任务。任务将自动进入处理队列。
异步处理:系统在后台处理队列中的任务。任务进度和状态可在控制台或通过 API 查询。
下载结果:任务完成后,系统会生成一个结果文件(包含成功响应)和一个错误文件(包含失败详情)。
支持的模型
文本生成模型
通义千问 Max:qwen3-max、qwen-max、qwen-max-latest
通义千问 Plus:qwen-plus、qwen-plus-latest
通义千问 Flash:qwen-flash
通义千问 Turbo:qwen-turbo、qwen-turbo-latest
通义千问 Long:qwen-long、qwen-long-latest
QwQ:qwq-plus
QwQ-Preview:qwq-32b-preview
第三方模型:deepseek-r1、deepseek-v3
多模态模型
文本向量模型:text-embedding-v1、text-embedding-v2、text-embedding-v3、text-embedding-v4
计费说明
计费单价:所有成功请求的输入和输出Token,单价均为对应模型实时推理价格的50%。
计费范围:
仅对任务中成功执行的请求进行计费。
文件解析失败、任务执行失败、或行级错误请求均不产生费用。
对于被取消的任务,在取消操作前已成功完成的请求仍会正常计费。
如何使用
准备输入文件
创建批量推理任务前,需先准备一个符合规范的输入文件。
输入文件规范
文件必须为 UTF-8 编码的 JSONL 格式(每行一个独立的 JSON 对象)。
单个文件最多包含 50,000 个请求。
同一任务的批量请求务必选择同一模型,其思考模式(若支持)也须保持一致。
单个文件大小不超过 500 MB。
文件中单行的 JSON 对象大小不超过 6 MB。
单行的请求内容需遵循各模型上下文长度的限制。
每个请求对象中必须包含一个在当前任务文件内唯一的
custom_id字符串,用于将输出结果与原始输入关联。
请求示例
可下载示例文件test_model.jsonl,内容为:
{"custom_id":"1","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-max","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"你好!有什么可以帮助你的吗?"}]}}
{"custom_id":"2","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-max","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is 2+2?"}]}}JSONL 批量生成工具
功能:智能生成符合Batch API规范的JSONL文件。
各模型的要求与限制(如 token 上限、支持的参数等)均以其对应文档为准。
建议:为确保工具流畅性,单次处理建议不超过10,000行,超量数据请分批操作。
通过控制台使用
步骤一:创建批量推理任务
在批量推理页面,单击创建批量推理任务。
在弹出的对话框中,上传本地准备好的 JSONL 格式文件。

填写完成后,单击确定提交。
步骤二:管理与查看任务
在任务列表页,可查看任务的进度(已处理请求数/总请求数)和状态。
对于执行中的任务,可在“操作”列中取消。
对于失败的任务,将鼠标悬停在状态上可查看文件级失败原因。详细的行级错误需下载错误文件查看。

根据业务空间查询
业务空间是阿里云百炼平台中用于隔离资源、数据和权限的逻辑单元,已创建的批量推理任务会自动归属到当前所在的业务空间。可通过筛选业务空间查询批量推理任务,也可在搜索框输入任务名称或任务ID,单击
图标,查询指定批量推理任务。各空间权限说明:
全部:可查看全部业务空间的批量推理任务。
默认业务空间:可查看默认业务空间的批量推理任务。
子业务空间:可查看本业务空间的批量推理任务。

步骤三:下载并分析结果
对于已完成的任务,单击查看结果进入详情页。

在任务结果页,可下载两个文件:
结果文件:包含所有成功执行的请求及其响应。使用文件中的
custom_id字段,与原始输入文件进行匹配。{"id":"c308ef7f-xxx","custom_id":"1","response":{"status_code":200,"request_id":"c308ef7f-0824-9c46-96eb-73566f062426","body":{"created":1742303743,"usage":{"completion_tokens":35,"prompt_tokens":26,"total_tokens":61},"model":"qwen-max","id":"chatcmpl-c308ef7f-0824-9c46-96eb-73566f062426","choices":[{"finish_reason":"stop","index":0,"message":{"content":"你好!当然可以。无论是需要信息查询、学习资料、解决问题的方法,还是其他任何帮助,我都在这里为你提供支持。请告诉我你需要什么方面的帮助?"}}],"object":"chat.completion"}},"error":null} {"id":"73291560-xxx","custom_id":"2","response":{"status_code":200,"request_id":"73291560-7616-97bf-87f2-7d747bbe84fd","body":{"created":1742303743,"usage":{"completion_tokens":7,"prompt_tokens":26,"total_tokens":33},"model":"qwen-max","id":"chatcmpl-73291560-7616-97bf-87f2-7d747bbe84fd","choices":[{"finish_reason":"stop","index":0,"message":{"content":"2+2 equals 4."}}],"object":"chat.completion"}},"error":null}错误文件:包含所有执行失败的请求及其错误信息。同样,使用
custom_id来定位是哪条原始请求出了问题,并根据error中的信息进行排查。
通过 API 调用
对于需要自动化的生产环境,推荐使用 API 进行任务提交和管理。
阿里云百炼为此提供了与 OpenAI 兼容的 Batch API。获取完整的接口定义、参数信息,请参阅OpenAI兼容-Batch文档。
查看数据统计
访问模型观测页面,查看批量推理的用量统计。
在推理类型中选择批量推理;
选择时间范围(近15天内);
单击任一模型右侧的监控按钮,即可查看该模型调用统计和性能指标的数据趋势。
重要批量推理的调用数据以任务结束时间为准进行统计。对于正在运行的任务,其调用信息在任务完成前无法查询到。
任务生命周期
validating(验证中):系统正在校验上传的数据文件格式是否符合 JSONL 规范,以及文件内的每一行请求是否符合 API 格式要求。
in_progress(执行中):文件验证通过,系统已开始逐行处理文件中的推理请求。
completed(已完成):结果文件和错误文件数据已写入完成,可下载。
failed(失败):任务在 validating 状态失败,通常由文件级错误(如 JSONL 格式错误、文件过大)导致。此状态下,任务不会执行任何推理请求,也不会产生结果文件。
expired(已终止):超过设定的completion_window(最长等待时间)仍未完成。
cancelled(已取消):任务已取消。任务中未开始处理的请求将被终止。
常见问题
为什么我提交的任务立即就失败了? 任务立即失败通常是文件级错误。请检查:
文件格式:是否为严格的 JSONL 格式,每行一个完整的 JSON 对象。
模型一致性:文件中所有请求的
body.model字段是否完全相同。文件大小/行数:检查是否超过了输入文件规范的限制。
Batch API 调用有 QPS/RPM 限制吗?
提交批量任务的请求内容本身无并发限制,但管理任务的API(如创建、查询)有速率限制,详情请参考OpenAI兼容-Batch文档。其设计目标是处理大规模异步推理任务,而非高并发实时请求。
使用 Batch API 需要额外购买或开通吗?
不需要。只要已开通阿里云百炼服务,即可直接通过 API Key 调用 Batch API。费用将按后付费模式从账户余额中扣除。
错误码
如果调用失败并返回报错信息,请参见错误信息进行解决。