

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
<a name="tutorial-vllm-batch"></a>

Tutorial ini memandu Anda menjalankan inferensi model bahasa besar (LLM) throughput tinggi pada file prompt JSONL menggunakan mesin inferensi [ vLLM di situs web. ](https://github.com/vllm-project/vllm) GitHub Anda mengirimkan bundel pekerjaan inferensi batch [ vLLM ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/vllm_batch) di GitHub situs web 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](build-job-bundle-chunking.md).

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
<a name="tutorial-vllm-batch-overview"></a>

Untuk menyelesaikan tutorial ini, ikuti langkah-langkah berikut:

1. Siapkan peternakan Anda.

1. Siapkan file input.

1. Kirim pekerjaan inferensi batch.

1. Unduh dan lihat hasilnya.

1. Pembersihan sumber daya 

## Siapkan peternakan Anda
<a name="tutorial-vllm-batch-setup"></a>

Cara tercepat untuk mendapatkan peternakan yang kompatibel adalah dengan menerapkan CloudFormation template pertanian [ CUDA ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/cuda_farm) di GitHub situs web. Setelah tumpukan mencapai`CREATE_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
<a name="tutorial-vllm-batch-input"></a>

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
<a name="tutorial-vllm-batch-submit"></a>

**Untuk mengirimkan dengan pengirim GUI**

1. Dari direktori `vllm_batch` bundel, buka pengirim:

   ```
   deadline bundle gui-submit .
   ```

1. Pilih file input JSONL Anda.

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

1. Atur ** Chunk Size**, yaitu berapa banyak prompt setiap proses tugas (default`5`).

1. 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
```

`ModelName`Parameter default ke `Qwen/Qwen2.5-7B-Instruct` dan menerima ID model Hugging Face apa pun. `Prompts`Parameter 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 ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/vllm_batch#parameters) di situs GitHub web.

## Unduh dan lihat hasilnya
<a name="tutorial-vllm-batch-results"></a>

**Untuk mengunduh dan melihat hasilnya**

1. Setelah pekerjaan selesai, unduh output:

   ```
   deadline job download-output --job-id {{job-id}}
   ```

1. 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
<a name="tutorial-vllm-batch-chaining"></a>

`output.jsonl`File 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, lihat[Hasilkan gambar dalam batch dengan model difusi](tutorial-text-to-image-batch.md).

## Bersihkan
<a name="tutorial-vllm-batch-cleanup"></a>

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.

1. 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.

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

## Sumber daya terkait
<a name="tutorial-vllm-batch-related"></a>

Sumber daya berikut memberikan informasi tambahan di situs GitHub web:
+ [Contoh kode sumber ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/vllm_batch)
+ [Hasilkan gambar dalam batch dengan model difusi](tutorial-text-to-image-batch.md)
+ [Pemotongan tugas untuk templat pekerjaan](build-job-bundle-chunking.md)
+ [Benchmark LLM dengan vLLM dan lm-evaluation-harness](tutorial-vllm-leaderboard.md)
+ [Spesifikasi lingkungan Deskripsi Pekerjaan Terbuka ](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#4-environment)