Untuk skenario inferensi yang tidak memerlukan respons real-time, inferensi batch memproses volume besar permintaan data secara asinkron dengan biaya 50% dari biaya 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
- Qwen-Max: qwen3.8-max, qwen3.7-max, qwen3-max, qwen-max, qwen-max-latest
- Qwen-Plus: qwen3.7-plus, qwen3.6-plus, qwen3.5-plus, qwen-plus, qwen-plus-latest
- Qwen-Flash: qwen3.8-flash, qwen3.7-flash, qwen3.6-flash, qwen3.5-flash, qwen-flash
- Model yang direkomendasikan: qwen-long-latest
- Model yang direkomendasikan: qwq-plus
- Model pihak ketiga: deepseek-r1, deepseek-v3.2, deepseek-v3
-
Model multi-modal
- Pemahaman gambar dan video: qwen3.8-max, qwen3.8-flash, qwen3.7-plus, qwen3.6-plus, qwen3.7-flash, qwen3.6-flash, qwen3.5-plus, qwen3.5-flash, qwen3-vl-plus, qwen3-vl-flash, qwen-vl-max, qwen-vl-max-latest, qwen-vl-plus, qwen-vl-plus-latest
- Ekstraksi teks: qwen-vl-ocr
- Omni-modal: qwen3.5-omni-plus, qwen3.5-omni-flash
-
Model text embedding: text-embedding-v4
Penting
- Dalam skenario pemrosesan batch, jumlah maksimum context tokens per permintaan adalah 256 K untuk
qwen3.8-max,qwen3.8-flash,qwen3.7-max,qwen3.7-plus,qwen3.6-plus,qwen3.7-flash,qwen3.6-flash,qwen3.5-plus,qwen3.5-flash,qwen3.5-omni-flash, danqwen3.5-omni-plus.qwen3.5-omni-plusdanqwen3.5-omni-flashtidak mendukung output voice. - Beberapa model mendukung mode thinking. Mengaktifkan mode ini menghasilkan thinking
tokensdan meningkatkan biaya. - Model seri
qwen3.8,qwen3.7,qwen3.6, danqwen3.5memiliki mode thinking yang diaktifkan secara default. Jika Anda menggunakan model hybrid thinking, Anda harus secara eksplisit mengatur 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 1 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 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. -
URL file media: File media yang dirujuk dalam
bodypermintaan multi-modal melalui bidang sepertiimage_urldanvideo_urlharus menggunakan URL yang dapat diakses publik. Jalur file lokal (misalnya,file:///home/user/test.mp4) dan alamat jaringan internal tidak didukung. Tugas yang merujuk alamat semacam itu dapat dikirimkan dengan sukses tetapi tidak akan pernah diproses hingga selesai. Unggah file ke penyimpanan yang dapat diakses publik terlebih dahulu, lalu rujuk URL-nya.
Setiap objek JSON harus mengikuti skema berikut:
Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| string | Ya | Pengenal unik untuk permintaan dalam file. |
| 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?"}]}}
Alat pembuatan batch JSONL
Gunakan alat ini untuk menghasilkan file JSONL dengan cepat.
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 yang diaktifkan secara default, yang menghasilkan token thinking tambahan. Untuk mengonfigurasi mode thinking untuk inferensi batch, atur parameter enable_thinking pada level yang sama dengan parameter model dalam body setiap permintaan. Parameter opsional thinking_budget dapat digunakan untuk menetapkan batas atas jumlah token thinking.
PentingParameter 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 Think Mode
{"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 Batches, klik Create Batch.
-
Dalam kotak dialog yang muncul, masukkan Task Name dan Task Description, atur Maximum Waiting Time (dari 1 hingga 14 hari), dan 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 yang 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 berada dalam status Executing di kolom Actions.
-
Pemecahan masalah: Untuk tugas yang gagal, arahkan kursor ke status untuk melihat ringkasan error atau unduh file error untuk detailnya.
Sebagai contoh, jika model yang berbeda dicampur dalam file batch, tugas akan menampilkan status Failed dengan pesan error seperti:
The model 'qwen-turbo' for this request does not match the rest of the batch. Each batch must contain requests for a single model.
-
Langkah 4: Unduh hasil
PentingTugas 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
response-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 Monitoring, Anda dapat memfilter dan melihat statistik penggunaan untuk inferensi batch.
-
Lihat ikhtisar data: Select Time (maksimal 30 hari), atur Inference Type ke Batches, dan 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 panggilan rata-rata.
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.

Penting
- 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 hingga 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:
Inferensi batch hanya mendukung panggilan API yang kompatibel dengan OpenAI. Saat Anda menggunakan OpenAI Python SDK, atur base_url ke https://dashscope.aliyuncs.com/compatible-mode/v1. DashScope Python SDK (paket dashscope) tidak menyediakan antarmuka inferensi batch, sehingga Anda tidak dapat mengirimkan tugas inferensi batch melalui metode seperti dashscope.BatchInference atau dashscope.Batches.
Contoh:
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
batch = client.batches.create(
input_file_id=file_id,
endpoint="/v1/chat/completions",
completion_window="24h",
)
-
Panggil
POST /v1/filesuntuk mengunggah file. Catat ID file yang dikembalikan. -
Untuk membuat tugas, masukkan ID file , panggil
POST /v1/batches, dan 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. Di Konsol, tahap ini menampilkan label status Executing yang sama seperti |
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 mengatur waktu tunggu yang lebih lama. |
cancelled | Tugas dibatalkan oleh pengguna. Permintaan yang belum diproses dihentikan. Di Konsol, status ini ditampilkan sebagai Stopped. |
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 tingkat baris tidak dikenai biaya.
- Untuk tugas yang dibatalkan, permintaan apa pun yang berhasil diselesaikan sebelum pembatalan akan ditagih secara normal.
Catatan
- 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 yang diaktifkan 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 yang 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 yang dibutuhkan untuk memproses tugas?
Waktu pemrosesan bergantung pada beban sistem saat tugas dikirimkan. 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.