Untuk skenario inferensi yang tidak memerlukan respons real-time, inferensi batch memproses volume besar permintaan data secara asinkron dengan biaya 50% dari harga inferensi real-time. API-nya yang kompatibel dengan OpenAI sangat ideal untuk pekerjaan batch seperti evaluasi model dan pelabelan data.
Cara kerja
-
Kirimkan tugas: Unggah file JSONL yang berisi beberapa permintaan untuk membuat tugas inferensi batch.
-
Pemrosesan asinkron: Sistem memproses tugas dalam antrian latar belakang. Anda dapat memantau progres dan status tugas di Konsol atau menggunakan API.
-
Unduh hasil: Setelah tugas selesai, sistem menghasilkan file hasil untuk respons yang berhasil dan file error yang berisi detail kegagalan.
Cakupan
Singapura
Model yang didukung: qwen-max, qwen-plus, qwen-flash, qwen-turbo.
Tiongkok (Beijing)
Model yang didukung:
-
Model generasi teks: Versi stabil dan beberapa versi
latestdari Qwen-Max, Plus, Flash, dan Long. Seri QwQ (qwq-plus) dan beberapa model pihak ketiga (deepseek-r1, deepseek-v3.2, deepseek-v3) juga didukung. -
Model multimodal: Versi stabil dan beberapa versi
latestdari Qwen-VL-Max, Plus, dan Flash. Model Qwen-OCR juga didukung. -
Model text embedding: Model text-embedding-v4.
-
Dalam skenario Pemrosesan batch, jumlah maksimum token konteks per permintaan adalah 256 K untuk
qwen3.7-max,qwen3.7-plus,qwen3.6-plus,qwen3.5-plus, danqwen3.5-flash. -
Beberapa model mendukung mode thinking. Mengaktifkan mode ini menghasilkan
tokenthinking dan meningkatkan biaya. -
Model seri
qwen3.7,qwen3.6, danqwen3.5memiliki mode thinking aktif secara default. Jika Anda menggunakan model hybrid thinking, Anda harus secara eksplisit menyetel parameterenable_thinking. Atur parameter ini ketrueuntuk mengaktifkan mode ataufalseuntuk menonaktifkannya. -
Dalam badan permintaan JSONL,
enable_thinkingadalah parameter tingkat atas daribodydan harus ditempatkan pada level yang sama denganmodel. Jangan letakkan di dalamextra_body.
Gunakan inferensi batch
Langkah 1: Siapkan file input
Sebelum membuat tugas, siapkan file JSONL yang memenuhi persyaratan berikut:
-
Format: JSONL berkode UTF-8 (satu objek JSON per baris).
-
Batas skala: Maksimal 50.000 permintaan per file, dan ukuran file maksimal 500 MB.
Jika set data Anda melebihi batas ini, bagi menjadi beberapa file dan kirimkan sebagai tugas terpisah.
-
Batas per baris: Setiap objek JSON dapat mencapai 6 MB dan tidak boleh melebihi jendela konteks model.
-
Konsistensi: Semua permintaan dalam satu file harus menggunakan model yang sama.
-
Pengenal unik: Setiap permintaan harus menyertakan bidang
custom_idyang unik dalam file tersebut untuk pencocokan hasil. custom_id mendukung maksimal 256 karakter. Jika batas ini terlampaui, validasi tugas akan gagal. Untuk mengembalikan pengenal yang lebih panjang, gunakan bidang kustom dalam parametermetadatasaat membuat tugas. Untuk informasi selengkapnya, lihat Gunakan metadata untuk mengembalikan pengenal kustom.
Setiap objek JSON harus mengikuti skema berikut:
|
Parameter |
Tipe |
Wajib |
Deskripsi |
|
|
string |
Ya |
Pengenal unik untuk permintaan dalam file tersebut. |
|
|
string |
Ya |
Metode HTTP yang didukung adalah |
|
|
string |
Ya |
Hanya titik akhir permintaan |
|
|
object |
Ya |
Badan permintaan memiliki format yang sama dengan API |
Contoh file
Anda dapat mengunduh contoh file test_model.jsonl. Isinya sebagai berikut:
{"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?"}]}}Konfigurasikan mode thinking dalam inferensi batch
Beberapa model, seperti qwen3.7-plus, qwen3.7-max, dan seri qwen3.6 serta qwen3.5, memiliki mode thinking aktif secara default, yang menghasilkan token thinking tambahan. Untuk mengonfigurasi mode thinking dalam inferensi batch, atur parameter enable_thinking pada level yang sama dengan parameter model di dalam body setiap permintaan. Parameter opsional thinking_budget dapat digunakan untuk menetapkan batas atas jumlah token thinking.
Parameter enable_thinking dan thinking_budget harus ditempatkan langsung di tingkat atas body, pada level yang sama dengan model. Jangan letakkan di dalam extra_body. Parameter extra_body adalah mekanisme untuk meneruskan parameter non-standar dengan OpenAI Python SDK; hanya berlaku untuk panggilan inferensi real-time dan tidak berlaku untuk file inferensi batch.
Contoh: Nonaktifkan mode thinking
{"custom_id":"request-1","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen3.5-plus","enable_thinking":false,"messages":[{"role":"user","content":"Hello"}]}}
Contoh: Aktifkan mode thinking dan batasi anggaran token thinking
{"custom_id":"request-2","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen3.5-plus","enable_thinking":true,"thinking_budget":50,"messages":[{"role":"user","content":"Please analyze the following question"}]}}
Langkah 2: Buat tugas inferensi batch
-
Di halaman Batch Inference**, klik Create Batch.
-
Pada kotak dialog yang muncul, masukkan Task Name dan Description, atur Maximum Waiting Time (dari 1 hingga 14 hari), lalu unggah file JSONL Anda.
Anda dapat mengklik Download Sample File untuk mendapatkan templat.

-
Setelah selesai, klik Confirm.
Langkah 3: Pantau dan kelola tugas
-
Lihat:
-
Di halaman daftar tugas, lihat progres tugas (permintaan diproses/jumlah total permintaan) dan Status.
-
Cari berdasarkan nama atau ID tugas, atau filter berdasarkan ruang kerja untuk menemukan tugas tertentu dengan cepat.

-
-
Kelola:
-
Batalkan: Anda dapat membatalkan tugas yang berstatus Executing di kolom Actions.
-
Pemecahan masalah: Untuk tugas yang gagal, arahkan kursor ke status untuk melihat ringkasan error atau unduh file error untuk detailnya.

-
Langkah 4: Unduh hasil
Tugas akan dihapus secara otomatis 30 hari setelah selesai. Unduh hasil Anda segera.
Saat tugas selesai, klik View Results untuk mengunduh file output: 
-
File hasil: Mencatat semua permintaan yang berhasil dan hasil
respons-nya. -
File error (jika ada): Mencatat semua permintaan yang gagal dan detail
error-nya.
Kedua file berisi bidang custom_id, yang digunakan untuk mencocokkan dengan data input asli, mengaitkan hasil, atau menemukan error.
Langkah 5: Lihat statistik penggunaan (opsional)
Di halaman Model Monitoring, Anda dapat memfilter dan melihat statistik penggunaan untuk inferensi batch.
-
Lihat ikhtisar data: Pilih Time Range (maksimal 30 hari), atur Inference Type ke Batches, lalu Anda dapat melihat hal berikut:
-
Data pemantauan: Statistik ringkasan untuk semua model dalam periode yang dipilih, seperti jumlah total panggilan dan kegagalan.
-
Daftar model: Data detail untuk setiap model, seperti jumlah total panggilan, tingkat kegagalan, dan durasi rata-rata panggilan.

Untuk melihat data inferensi yang berusia lebih dari 30 hari, buka halaman Bills.
-
-
Lihat detail model: Di Models, klik Monitor di kolom Actions model target untuk melihat Call Statistics, seperti jumlah panggilan dan volume panggilan.

-
Data panggilan untuk inferensi batch dicatat berdasarkan waktu penyelesaian tugas. Untuk tugas yang sedang berjalan, informasi panggilan tidak dapat diambil sampai tugas selesai.
-
Data pemantauan mungkin mengalami keterlambatan satu hingga dua jam.
Gunakan metadata untuk mengembalikan pengenal kustom
custom_id mendukung maksimal 256 karakter. Jika Anda perlu mengembalikan pengenal yang lebih panjang dalam file hasil, Anda dapat menggunakan bidang kustom dalam metadata.
Bidang metadata
metadata adalah parameter opsional untuk membuat tugas Batch. Parameter ini mendukung bidang berikut:
-
ds_name: Nama tugas. Nama ini ditampilkan di kolom Task Name di Konsol. -
ds_description: Deskripsi tugas. Deskripsi ini ditampilkan di kolom Task Description di Konsol. -
Bidang kustom: Selain bidang resmi, objek
metadatajuga mendukung bidang kustom apa pun, dan nilainya tidak dibatasi hingga 256 karakter. Saat Anda mengambil detail tugas, semua bidang kustom dikembalikan secara lengkap.
Contoh kode
Contoh berikut menunjukkan cara menggunakan bidang kustom dalam metadata untuk mengembalikan pengenal yang lebih panjang dari 256 karakter:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
batch = client.batches.create(
input_file_id="file-batch-xxxxxxxxxxxxxxxxxxxx",
endpoint="/v1/chat/completions",
completion_window="24h",
metadata={
"ds_name": "my_batch_task",
"ds_description": "A description for my batch inference task",
"my_custom_field": "The value of this field can exceed 256 characters and is used to pass back longer identifier information..."
}
)
print(batch)
Setelah tugas berhasil dibuat, Anda dapat memanggil operasi GET /v1/batches/{batch_id} untuk mengambil informasi metadata lengkap, yang mencakup semua bidang kustom dan kontennya secara utuh.
Referensi API
Di lingkungan produksi, gunakan API yang kompatibel dengan OpenAI untuk mengotomatiskan pembuatan dan pengelolaan tugas batch. Alur kerja intinya adalah sebagai berikut:
-
Panggil
POST /v1/filesuntuk mengunggah file. Catat ID file yang dikembalikan. -
Untuk membuat tugas, masukkan ID file , panggil
POST /v1/batches, lalu catatbatch_idyang dikembalikan. -
Periksa status dengan menggunakan
batch_iduntuk melakukan pollingGET /v1/batches/{batch_id}. Saatstatusberubah menjadicompleted, catatoutput_file_iddan hentikan polling. -
Untuk mengunduh file hasil, gunakan
output_file_iduntuk memanggilGET /v1/files/{output_file_id}/content.
Untuk definisi API Batch lengkap dan contoh kode, lihat OpenAI-compatible - Batch (file input).
Siklus hidup tugas
|
Status |
Deskripsi |
|
validating |
Sistem sedang memvalidasi format file (spesifikasi JSONL) dan format API setiap permintaan. |
|
in_progress |
Sistem telah memvalidasi file dan mulai memproses permintaan inferensi. |
|
finalizing |
Semua permintaan telah diproses, dan sistem sedang menulis hasil ke file output. |
|
completed |
File hasil dan error telah dihasilkan dan tersedia untuk diunduh. |
|
failed |
Tugas gagal selama tahap |
|
expired |
Waktu proses tugas melebihi waktu tunggu maksimum yang ditetapkan saat pembuatan dan dihentikan oleh sistem. Saat membuat tugas baru, pertimbangkan untuk menetapkan waktu tunggu yang lebih lama. |
|
cancelled |
Tugas dibatalkan oleh pengguna. Permintaan yang belum diproses dihentikan. |
Penagihan
-
Harga: Untuk semua permintaan yang berhasil, token input dan output dikenai harga 50% dari harga inferensi real-time untuk model yang sesuai. Untuk detailnya, lihat Model dan Harga.
-
Cakupan penagihan:
-
Anda hanya ditagih untuk permintaan yang berhasil dieksekusi dalam suatu tugas.
-
Kegagalan parsing file, kegagalan eksekusi tugas, atau error permintaan per baris tidak dikenai biaya.
-
Untuk tugas yang dibatalkan, permintaan yang telah berhasil diselesaikan sebelum pembatalan tetap ditagih secara normal.
-
-
Inferensi batch merupakan item yang dapat ditagih secara terpisah dan mendukung AI Universal Savings Plan. Namun, tidak memenuhi syarat untuk promosi lain seperti rencana prabayar (Savings Plans) dan kuota gratis pengguna baru, atau fitur seperti context caching.
-
Beberapa model, seperti qwen3.7-plus, qwen3.7-max, dan seri qwen3.6 serta qwen3.5, memiliki mode thinking aktif secara default. Hal ini menghasilkan token thinking tambahan yang ditagih sesuai harga token output, sehingga meningkatkan biaya. Untuk mengontrol biaya, atur parameter
enable_thinkingberdasarkan kompleksitas tugas. Untuk detailnya, lihat Deep Thinking.
FAQ
-
Apakah saya perlu membeli atau mengaktifkan sesuatu tambahan untuk menggunakan inferensi batch?
Tidak. Fitur ini tersedia setelah Anda mengaktifkan Model Studio. Biaya dikenakan berdasarkan skema pay-as-you-go dan dipotong dari saldo akun Anda.
-
Mengapa tugas saya gagal segera setelah dikirim (status berubah menjadi
failed)?Hal ini biasanya menunjukkan error tingkat file, dan tidak ada permintaan inferensi yang dieksekusi. Periksa hal berikut secara berurutan:
-
Format file: Pastikan file menggunakan format JSONL ketat, dengan satu objek JSON lengkap per baris.
-
Skala file: Pastikan ukuran file dan jumlah baris tidak melebihi batas. Untuk detailnya, lihat Langkah 1: Siapkan file input.
-
Konsistensi model: Periksa bahwa bidang
body.modelidentik untuk semua permintaan dalam file, dan model yang digunakan didukung di wilayah saat ini.
-
-
Berapa lama waktu pemrosesan tugas?
Waktu pemrosesan bergantung pada beban sistem saat tugas dikirim. Pada periode sibuk, tugas mungkin masuk antrian. Namun, hasil (sukses atau gagal) selalu dikembalikan dalam waktu tunggu maksimum yang ditentukan.
Kode error
Jika panggilan gagal dan pesan error dikembalikan, lihat Kode error.