即時の応答を必要としないタスクには、OpenAI 互換の Batch API を使用して非同期リクエストを送信すると、コストを 50% 削減できます。バッチタスクは、評価や大規模データのラベリングなどのユースケースに最適です。
仕組み
バッチは非同期で処理されます:
バッチの送信: リクエストを含むファイルをアップロードしてバッチを作成します。
バックグラウンド処理: バッチはバックグラウンドの処理キューで実行されます。進捗状況はコンソールまたは Batch API で追跡できます。
結果の取得: バッチが完了したら、成功した応答を含む結果ファイルと、失敗した応答のエラーファイルをダウンロードします。
可用性
利用可能なリージョン: International Edition (シンガポール)。
利用可能なモデル: qwen-max, qwen-plus, qwen-turbo。
開始方法
ステップ 1: バッチファイルの準備
次の要件を満たす UTF-8 エンコードの .jsonl ファイルを準備します:
フォーマット: 1 行に 1 つの JSON オブジェクトを記述し、それぞれが個別のリクエストを表します。
サイズ制限: 1 ファイルあたり最大 50,000 リクエスト、サイズは 500 MB 以下。
これらの制限を超えるファイルは、より小さなバッチに分割してください。
行制限: 各 JSON オブジェクトは最大 6 MB で、モデルのコンテキストウィンドウ内に収まる必要があります。
一貫性: ファイル内のすべてのリクエストは、同じ API エンドポイント (
url) をターゲットとし、body.modelで指定された同じモデルを使用する必要があります。一意の識別子: 各リクエストには、ファイル内で一意の
custom_idが必要です。これは、完了後に結果を参照するために使用できます。
リクエストの例
{"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":"Hello!"}]}}
{"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 ファイルの生成
次のツールを使用して、JSONL ファイルをすばやく生成します。最高のパフォーマンスを得るには、一度に 10,000 行以下を処理してください。より大きなデータセットがある場合は、複数のバッチに分割してください。
ステップ 2: バッチの作成
コンソールまたは Batch API を使用して、バッチタスクを作成および管理します。
コンソール
1. バッチの作成
[バッチ] ページで、[バッチタスクの作成] をクリックします。
ダイアログボックスで、[タスク名] と [タスクの説明] を入力し、[最大待機時間] (1〜14 日) を設定して、バッチファイルをアップロードします。
[サンプルファイルのダウンロード] をクリックしてテンプレートを入手します。

[確認] をクリックします。
2. バッチの表示と管理
表示:
バッチリストページには、各バッチの [進捗] (処理済みリクエスト/合計リクエスト) と [ステータス] が表示されます。
バッチをすばやく見つけるには、タスク名または ID で検索するか、ワークスペースでフィルターします。

管理:
進行中のタスクをキャンセルするには、[アクション] 列の [キャンセル] をクリックします。
失敗したタスクをトラブルシューティングするには、「失敗」ステータスにカーソルを合わせると概要が表示されます。エラーファイルをダウンロードして詳細を表示します。

3. 結果の取得と分析
タスクが完了したら、[結果の表示] をクリックして出力ファイルをダウンロードします:
結果ファイル: すべての成功したリクエストとその
responseの結果を記録します。エラーファイル (存在する場合): すべての失敗したリクエストとその
errorの詳細を記録します。
両方のファイルに custom_id フィールドが含まれています。これを使用して、結果と入力を照合したり、エラーの場所を特定したりします。
API
自動化と統合が必要な本番環境では、OpenAI 互換の Batch API を使用します。コアワークフロー:
タスクの作成
POST /v1/batchesエンドポイントを呼び出してタスクを作成し、返されたbatch_idを記録します。ステータスのポーリング
batch_idを使用してGET /v1/batches/{batch_id}エンドポイントをポーリングします。statusフィールドがcompletedに変わったら、返されたoutput_file_idを保存し、ポーリングを停止します。結果のダウンロード
output_file_idを使用してGET /v1/files/{output_file_id}/contentエンドポイントを呼び出します。
完全なエンドポイント定義、パラメーター情報、およびコード例については、「Batch API リファレンス」をご参照ください。
ステップ 3: 統計の表示 (オプション)
モデル観測 ページで、バッチの使用統計をフィルターして表示します。
データ概要: [時間] の範囲 (最大 30 日) を選択し、[推論タイプ] を [バッチ推論] に設定します:
モニタリングデータ: 合計呼び出し数や合計失敗数など、時間範囲内のすべてのモデルの集計統計。
モデル: 合計呼び出し数、失敗率、平均呼び出し時間など、各モデルの詳細データ。

30 日以上前の推論データを表示するには、請求書 ページに移動します。
モデルの詳細の表示: [モデル] リストで、特定のモデルの [アクション] 列にある [モニター] をクリックすると、合計呼び出し数や使用量などの [呼び出し統計] の詳細を表示できます。

バッチの使用状況データはタスク終了時に記録され、1〜2 時間の遅延が発生する場合があります。進行中のタスクは完了するまで利用できません。
データには 1〜2 時間の遅延が発生する場合があります。
バッチのステータス
バッチタスクのステータスは、次のいずれかになります:
validating: バッチファイルが JSONL 仕様および API フォーマット要件に対して検証されています。
in_progress: バッチファイルが検証され、処理中です。
completed: バッチが完了しました。出力ファイルとエラーファイルがダウンロード可能です。
failed: バッチファイルが検証プロセスに失敗しました。これは通常、無効な JSONL フォーマットやファイルサイズ超過などのファイルレベルのエラーが原因です。リクエストは処理されず、出力ファイルも生成されません。
expired: バッチが作成時に設定された最大待機時間内に完了できませんでした。より長い待機時間を設定してください。
cancelled: バッチがキャンセルされました。未処理のリクエストは終了します。
課金
単価: Batch API では、成功したリクエストの入力トークンと出力トークンは、そのモデルの標準的な同期 API レートの 50% で課金されます。価格の詳細: モデルと価格。
範囲:
タスク内で正常に実行されたリクエストのみが課金されます。
ファイルの解析失敗、実行失敗、または行レベルのリクエストエラーは課金されません。
キャンセルされたタスクの場合、キャンセル前に正常に完了したリクエストは引き続き課金されます。
バッチは別途課金され、節約プラン、新規ユーザー向けの無料クォータなどの割引、またはコンテキストキャッシュなどの機能はサポートしていません。
よくある質問
Batch API を使用するために、追加で何かを購入したり有効にしたりする必要はありますか?
いいえ。Alibaba Cloud Model Studio を有効化すると、API キーを使用して Batch API を呼び出すことができます。使用量は従量課金で請求され、アカウント残高から差し引かれます。
バッチタスクが作成直後に失敗する (ステータスが
failedに変わる) のはなぜですか?これは通常、ファイルレベルのエラーが原因です。以下を確認してください:
フォーマット: ファイルは厳密な JSONL フォーマットである必要があり、1 行に 1 つの完全な JSON オブジェクトが含まれている必要があります。
サイズ: ファイルサイズと行数が「ステップ 1: バッチファイルの準備」の制限を超えていないこと。
モデルの一貫性: ファイル内のすべてのリクエストで
body.modelが同一である必要があります。モデルとリージョンはバッチをサポートしている必要があります。
バッチの処理にはどのくらい時間がかかりますか?
システムの負荷によって異なります。負荷が高い場合、バッチはリソースを待つためにキューで待機することがあります。結果は、バッチが成功するか失敗するかにかかわらず、設定した最大待機時間内に返されます。
エラーコード
呼び出しが失敗し、エラーメッセージが返された場合は、「エラーメッセージ」を参照してエラーを解決してください。