

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

# Benchmark LLM dengan VLLm dan lm-evaluation-harness
<a name="tutorial-vllm-leaderboard"></a>

Tutorial ini memandu Anda melalui evaluasi beberapa model bahasa besar (LLM) terhadap beberapa tolok ukur dalam satu pekerjaan Deadline Cloud. Setiap model menjadi satu tugas dalam sapuan parameter, dan tugas berjalan secara paralel di seluruh pekerja. Langkah terakhir menggabungkan hasil per model ke dalam papan peringkat dalam format CSV dan Markdown.

Kode sumber untuk tutorial ini tersedia di repositori [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/vllm_lm_eval_leaderboard) pada. GitHub

Video berikut menunjukkan alur kerja leaderboard VLLM LLM di Deadline Cloud.

[![AWS Videos](http://img.youtube.com/vi/Hh_s65lEalU/0.jpg)](http://www.youtube.com/watch?v=Hh_s65lEalU)


**Perkiraan waktu:** 20—40 menit (tergantung pada jumlah model dan tolok ukur).

## Ikhtisar
<a name="tutorial-vllm-overview"></a>

Setiap tugas dalam `EvalModels` langkah memulai server [VLLM](https://github.com/vllm-project/vllm) lokal, menjalankan setiap benchmark dengan [lm-evaluation-harness EleutherAI terhadap titik akhir lokal, lalu menghentikan](https://github.com/EleutherAI/lm-evaluation-harness) VllM. Model dimuat langsung dari Hugging Face Hub, sehingga lampiran pekerjaan tidak diperlukan.

Untuk menyelesaikan tutorial ini, ikuti langkah-langkah berikut:

1. Lengkapi prasyarat.

1. Siapkan peternakan Anda.

1. Kirimkan pekerjaan evaluasi.

1. Unduh dan tinjau hasil.

1. Pembersihan sumber daya 

## Prasyarat
<a name="tutorial-vllm-prerequisites"></a>

Sebelum Anda mulai, pengaturan berikut disarankan:
+ Sebuah Deadline Cloud farm dengan armada yang dikelola layanan GPU NVIDIA (A10G atau L4, setidaknya 32 GB RAM, setidaknya 4 vCPU).
+ Antrian dengan lingkungan antrian conda terpasang yang membaca `CondaPackages` dan `CondaChannels` parameter pekerjaan.
+ The [Deadline Cloud CLI](https://github.com/aws-deadline/deadline-cloud) diinstal pada workstation Anda.
+ Kuota layanan vCPU Amazon Elastic Compute Cloud (Amazon EC2) yang memadai untuk instans GPU. *Default 3-model run on `g5.xlarge` (masing-masing 4 vCPU) membutuhkan setidaknya 12 vCPU di bawah instance Running G dan VT. On-Demand *

**catatan**  
Token Hugging Face hanya diperlukan untuk model yang terjaga keamanannya (seperti Llama). Daftar model default menggunakan model ungated.

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

Cara tercepat untuk mendapatkan pertanian yang kompatibel adalah dengan menggunakan template [pertanian CloudFormation CUDA](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/cuda_farm). Template menyediakan armada yang dikelola layanan GPU NVIDIA (A10G atau L4) dan antrian dengan lingkungan antrian conda yang digunakan bundel ini tanpa modifikasi.

**Untuk mengonfigurasi CLI untuk peternakan Anda**
+ Setelah CloudFormation 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, konfigurasi berikut direkomendasikan:
+ Armada SMF dengan GPU NVIDIA, setidaknya 32 GB RAM, dan setidaknya 4 vCPU.
+ Antrian dengan lingkungan antrian conda yang membaca `CondaPackages` dan `CondaChannels` parameter pekerjaan.

## Kirim pekerjaan evaluasi
<a name="tutorial-vllm-submit"></a>

**Untuk menyerahkan pekerjaan evaluasi**

1. Kloning repositori sampel dan arahkan ke direktori bundel pekerjaan:

   ```
   git clone https://github.com/aws-deadline/deadline-cloud-samples.git
   cd deadline-cloud-samples/job_bundles/vllm_lm_eval_leaderboard
   ```

1. Kirim pekerjaan dengan model dan tolok ukur default:

   ```
   deadline bundle submit . \
     --parameter MaxModelLen=2048
   ```

   Daftar model default mengevaluasi tiga model kecil berkuku:`Qwen/Qwen2.5-0.5B`,`Qwen/Qwen2.5-1.5B`, dan. `EleutherAI/pythia-1.4b` Tolok ukur default adalah rangkaian penalaran akal sehat:. `hellaswag,arc_easy,arc_challenge,winogrande`

1. Pantau status pekerjaan di konsol Deadline Cloud atau dengan menggunakan `deadline job get` perintah.

### Mengubah daftar model
<a name="tutorial-vllm-custom-models"></a>

Model didefinisikan sebagai ruang parameter STRING pada `EvalModels` langkah di`template.yaml`:

```
parameterSpace:
  taskParameterDefinitions:
  - name: ModelName
    type: STRING
    range:
    - "Qwen/Qwen2.5-0.5B"
    - "Qwen/Qwen2.5-1.5B"
    - "EleutherAI/pythia-1.4b"
```

Untuk menambah atau menghapus model, edit `range` daftar. Setiap entri menjadi tugas yang terlihat di monitor Deadline Cloud. ID model harus didukung oleh VllM (lihat daftar model yang [didukung VLLm](https://docs.vllm.ai/en/latest/models/supported_models.html)).

### Memilih tolok ukur
<a name="tutorial-vllm-custom-benchmarks"></a>

Parameter `Benchmarks` pekerjaan adalah daftar nama tugas lm-evaluation-harness yang dipisahkan koma. Ganti tolok ukur default pada waktu pengiriman:

```
deadline bundle submit . \
  --parameter Benchmarks="hellaswag,mmlu,gsm8k"
```

Semua tolok ukur dalam daftar berjalan secara berurutan terhadap server VLLM masing-masing model. Simpan `MaxModelLen` kurang dari atau sama dengan jendela konteks model terkecil. Untuk daftar lengkap tolok ukur yang tersedia, lihat tugas [lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/main/lm_eval/tasks) di. GitHub

## Unduh dan tinjau hasil
<a name="tutorial-vllm-results"></a>

**Untuk mengunduh hasil leaderboard**

1. Setelah pekerjaan selesai, unduh output:

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

1. Lihat papan peringkat:

   ```
   cat leaderboard_results/leaderboard.md
   ```

Contoh berikut menunjukkan output leaderboard tipikal:

```
# LLM Leaderboard

Models: 3 | Benchmarks: arc_challenge, arc_easy, hellaswag, winogrande

| Rank | Model                  | arc_challenge | arc_easy | hellaswag | winogrande | Mean   |
|------|------------------------|---------------|----------|-----------|------------|--------|
| 1    | Qwen/Qwen2.5-1.5B      | 0.4497        | 0.7176   | 0.6775    | 0.6322     | 0.6192 |
| 2    | Qwen/Qwen2.5-0.5B      | 0.3200        | 0.5816   | 0.5223    | 0.5691     | 0.4982 |
| 3    | EleutherAI/pythia-1.4b | 0.2833        | 0.5387   | 0.5201    | 0.5730     | 0.4788 |
```

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

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

**Untuk membersihkan sumber daya tutorial**

1. Jika Anda menerapkan CloudFormation template pertanian CUDA, hapus CloudFormation tumpukan dari konsol. CloudFormation 

1. Jika Anda menggunakan peternakan yang ada, hentikan atau hapus armada GPU yang Anda gunakan untuk tutorial ini.

1. Hapus file output lokal jika tidak lagi diperlukan:

   ```
   rm -rf leaderboard_results/
   ```

## Pemecahan masalah
<a name="tutorial-vllm-troubleshooting"></a>

**Armada tidak meningkatkan pekerja**

Penyebab paling umum adalah kuota layanan vCPU Amazon EC2. Buka [konsol Service Quotas](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas) di bawah **EC2** dan konfirmasikan bahwa Anda memiliki headroom untuk *Running On-Demand G* dan VT instans. Peningkatan kuota dapat memakan waktu beberapa menit hingga beberapa hari kerja.

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

Sumber daya berikut memberikan informasi tambahan:
+ [Contoh kode sumber pada GitHub](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/vllm_lm_eval_leaderboard)
+ [Vllm pada GitHub](https://github.com/vllm-project/vllm)
+ [lm-evaluasi-memanfaatkan GitHub](https://github.com/EleutherAI/lm-evaluation-harness)
+ [Templat pertanian CloudFormation CUDA](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/cuda_farm)
+ [Model yang didukung VLLm](https://docs.vllm.ai/en/latest/models/supported_models.html)