View a markdown version of this page

Jalankan inferensi LLM batch dengan vLLM - Awan Batas Waktu

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jalankan inferensi LLM batch dengan vLLM

Tutorial ini memandu Anda menjalankan inferensi model bahasa besar (LLM) throughput tinggi pada file prompt JSONL menggunakan mesin inferensi vLLM aktif. GitHub Anda mengirimkan bundel pekerjaan inferensi batch vLLM GitHub dengan file di mana setiap baris adalah satu prompt, pilih model, dan penggemar pekerjaan di seluruh armada GPU. Setiap prompt mendapat respons LLM, dan langkah agregat mengemas semuanya ke dalam file JSONL ditambah penampil HTML mandiri yang dapat Anda buka di browser apa pun.

Bundel menangani beban kerja offline dan paralel yang memalukan: pembuatan konten, kumpulan data evaluasi, terjemahan, ekstraksi, dan klasifikasi. Ini cocok di mana pun Anda membutuhkan model untuk menjawab banyak prompt independen tanpa server API langsung. Di bawah tenda, ia menggunakan fitur pemotongan tugas Deadline Cloud untuk mengelompokkan prompt ke dalam tugas batch, yang memungkinkan Anda memutar paralelisme terhadap biaya penjadwalan dengan satu parameter. ChunkSize Untuk informasi selengkapnya, lihat Pemotongan tugas untuk templat pekerjaan.

Memuat 7 B-parameter LLM membutuhkan waktu 30 detik atau lebih, jadi membayar biaya per tugas akan mendominasi runtime batch. Lingkungan langkah Deskripsi Pekerjaan Terbuka memecahkan masalah ini: server vLLM dimulai ketika pekerja mengambil pekerjaan dan tetap dimuat di setiap tugas yang dijalankan pekerja, kemudian dimatikan dengan sesi. Batch 24 prompt pada armada 4 pekerja membayar untuk 4 beban model, bukan 24.

Perkiraan waktu: 30-60 menit, termasuk pengaturan pertanian.

Menjalankan tutorial ini dikenakan biaya untuk instance pekerja GPU yang memproses pekerjaan.

Gambaran umum

Untuk menyelesaikan tutorial ini, ikuti langkah-langkah berikut:

  1. Siapkan peternakan Anda.

  2. Siapkan file input.

  3. Kirim pekerjaan inferensi batch.

  4. Unduh dan lihat hasilnya.

  5. Pembersihan sumber daya

Siapkan peternakan Anda

Cara tercepat untuk mendapatkan peternakan yang kompatibel adalah dengan menerapkan CloudFormation template pertanian CUDA GitHub. Setelah tumpukan mencapaiCREATE_COMPLETE, konfigurasikan Deadline Cloud CLI untuk menggunakan farm baru:

deadline config set defaults.farm_id FarmId-from-stack-outputs deadline config set defaults.queue_id CUDAQueueId-from-stack-outputs

Jika Anda sudah memiliki peternakan, Anda memerlukan armada yang dikelola layanan dengan GPU NVIDIA dan setidaknya 32 GB RAM, dan antrian dengan lingkungan antrian conda yang terpasang yang membaca CondaPackages dan parameter pekerjaan. CondaChannels

Siapkan file input

Input adalah file JSONL dengan satu objek JSON per baris. Setiap baris harus memiliki prompt bidang:

{"prompt": "What is photosynthesis?", "id": "001"} {"prompt": "Write a haiku about clouds.", "id": "002"} {"prompt": "Explain gravity to a 5 year old.", "id": "003", "max_tokens": 256, "temperature": 0.9}

Bidang per prompt opsional termasuk id untuk pelacakan, max_tokens untuk membatasi panjang respons, dan temperature untuk mengontrol keacakan pengambilan sampel. Per-promptbidang mengganti default tingkat pekerjaan hanya untuk baris itu, dan bidang tambahan apa pun melewati output tidak berubah.

Bundel ini mencakup alat HTML tanpa ketergantungan untuk membangun file input. Buka tools/prompt_builder.html di browser Anda untuk menambahkan prompt, mengatur opsi per-prompt, dan ekspor sebagai JSONL.

Kirim pekerjaan inferensi batch

Untuk mengirimkan dengan pengirim GUI
  1. Dari direktori vllm_batch bundel, buka pengirim:

    deadline bundle gui-submit .
  2. Pilih file input JSONL Anda.

  3. Atur Rentang Prompt (1-10misalnya, untuk 10 prompt pertama dalam file).

  4. Atur Chunk Size, yaitu berapa banyak prompt setiap proses tugas (default5).

  5. Pilih direktori keluaran, lalu pilih K irim.

Atau, kirimkan dengan CLI:

deadline bundle submit . \ --parameter InputFile=prompts.jsonl \ --parameter Prompts=1-10 \ --parameter ChunkSize=5 \ --parameter OutputDir=$PWD/results

ModelNameParameter default ke Qwen/Qwen2.5-7B-Instruct dan menerima ID model Hugging Face apa pun. PromptsParameter menerima sintaks rentang bilangan bulat Deskripsi Pekerjaan Terbuka lengkap, seperti 2,5,8-9 untuk baris tertentu atau 4,7 untuk menjalankan kembali hanya baris yang gagal. Alih-alih memperbaiki ukuran potongan, Anda juga dapat membiarkan Deadline Cloud menyetelnya secara otomatis: mengatur TargetRuntimeSeconds berapa lama waktu yang Anda inginkan untuk setiap potongan (default 120 detik), dan penjadwal menambah atau mengecilkan ukuran potongan pada tugas mendatang untuk mencapai target. Untuk daftar parameter lengkap, lihat tabel parameter dalam contoh README pada GitHub.

Unduh dan lihat hasilnya

Untuk mengunduh dan melihat hasilnya
  1. Setelah pekerjaan selesai, unduh output:

    deadline job download-output --job-id job-id
  2. Semua output mendarat di output/ subfolder di dalam direktori yang Anda pilih. Buka results/output/results.html di browser Anda untuk penampil hasil visual, atau baca results/output/output.jsonl untuk output gabungan mentah.

Setiap baris keluaran membawa prompt asli dan bidang pass-through-nya ditambah generated_text respons, alasan penyelesaian, dan jumlah token:

{"prompt": "What is photosynthesis?", "id": "001", "generated_text": "Photosynthesis is...", "finish_reason": "stop", "prompt_tokens": 7, "completion_tokens": 42}

Rantau output ke dalam pembuatan gambar batch

output.jsonlFile ini adalah input siap pakai untuk bundel batch text-to-image. Hasilkan teks dengan bundel ini (slogan, keterangan, deskripsi adegan), lalu kirimkan file output ke bundel pembuatan gambar, yang secara otomatis menggunakan setiap baris generated_text sebagai keterangan yang disusun di atas gambar yang dihasilkan. Untuk panduan lengkapnya, lihatHasilkan gambar dalam batch dengan model difusi.

Bersihkan

Untuk menghindari biaya berkelanjutan, bersihkan sumber daya yang Anda buat untuk tutorial ini:

Untuk membersihkan sumber daya tutorial
  1. Jika Anda menerapkan CloudFormation template pertanian CUDA, hapus tum CloudFormation pukan dari CloudFormation konsol.

  2. Jika Anda menggunakan farm yang ada dan membuat armada GPU khusus untuk tutorial ini, hentikan atau hapus armada itu. Jika Anda menggunakan armada bersama yang sudah ada sebelumnya, biarkan tetap di tempatnya.

  3. Hapus file output lokal jika Anda tidak lagi membutuhkannya.

Sumber daya berikut memberikan informasi tambahan: