help.khb.com 功能特性 批量推理 (Batch)

批量推理 (Batch)

Batch 批处理作业指南,支持离线批量推理,价格更低且不受在线速率限制约束。

1. 概述

通过批量 API 发送批量请求到 KHB 算力云服务平台,不受在线的速率限制和影响,预期可以在 24 小时内完成,且价格降低 50%。该服务非常适合一些不需要立即响应的工作,比如大型的任务评估、信息分类与提取、文档处理等。批量处理结果文件的 URL 有效期为一个月,请及时转存,以防过期影响业务。

2. 使用流程

2.1 准备批量推理任务的输入文件

批量推理任务输入文件格式为 .jsonl,其中每一行都是一个完整的 API 请求的消息体,需满足以下要求:

  • 每一行必须包含 custom_id,且每个 custom_id 须在当前文件中唯一。
  • 每一行的 body 中必须包含 messages 对象数组,且数组中消息对象的 rolesystemuserassistant 之一,并且整个数组以 user 消息结束。
  • 您可以为每一行数据按需设置相同或不同的推理参数,如设定不同的 temperaturetop_p
  • 如果您希望使用 OpenAI SDK 调用 KHB 批量推理,您需要保证同一输入文件中 model 是统一的。
  • 每 batch 限制:单个 batch 对应的输入文件大小最大 1 G。
  • 批量推理输入限制:单个批量推理对应的输入文件大小不超过 1 G,文件行数不超过 5000 行。

输入文件示例:

{"custom_id": "request-1", "body": {"model": "Qwen/Qwen2.5-7B-Instruct", "messages": [{"role": "user", "content": "什么是机器学习?"}]}}
{"custom_id": "request-2", "body": {"model": "Qwen/Qwen2.5-7B-Instruct", "messages": [{"role": "user", "content": "简述深度学习原理"}]}}

2.2 上传文件

调用 /v1/files 接口上传 .jsonl 文件,获取文件 ID。

curl --request post \
  --url https://khb.net.cn/v1/files \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: multipart/form-data' \
  --form purpose=batch \
  --form 'file=@batch_input.jsonl'

响应示例:

{
  "code": 20000,
  "message": "Ok",
  "status": true,
  "data": {
    "id": "file-jkvytbjtow",
    "object": "file",
    "bytes": 8509,
    "createdAt": 1741685396,
    "filename": "requests.jsonl",
    "purpose": "batch"
  }
}

2.3 创建批量任务

调用 /v1/batches 接口创建批量任务,指定输入文件 ID、输出目录等参数。

curl --request post \
  --url https://khb.net.cn/v1/batches \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --data '{
    "input_file_id": "file-jkvytbjtow",
    "endpoint": "/v1/chat/completions",
    "completion_window": "24h"
  }'

2.4 查询任务状态

调用 /v1/batches/{batch_id} 接口查询任务进度,常见状态包括 validating(验证中)、in_progress(执行中)、completed(完成)、failed(失败)、cancelled(已取消)。

2.5 获取结果

任务完成后,从 output_file_id 字段获取输出文件 ID,通过 /v1/files/{file_id}/content 下载结果文件。结果文件为 .jsonl 格式,每行对应一个请求的处理结果。

3. 错误处理

批量任务中部分请求失败时,可在响应中查看每个请求的状态和错误码。常见错误包括:

  • 400:请求参数错误
  • 429:触发速率限制(理论上不会,但仍可能因系统保护触发)
  • 500/503/504:服务端错误,可在重试后正常处理

4. 计费说明

批量推理价格比在线 API 调用降低 50%。具体单价以 模型广场 为准。

5. 最佳实践

  • 建议将大批量任务拆分为多个小批量,降低单任务失败的整体影响。
  • 输入文件中的 custom_id 建议使用有意义的前缀,便于结果对账。
  • 对结果文件及时下载并转存,因其 URL 有效期仅 1 个月。

Related Post