View a markdown version of this page

Benchmark LLM dengan vLLM dan lm-evaluation-harness - Awan Batas Waktu

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

Tutorial ini memandu Anda mengevaluasi 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 menjadi papan peringkat peringkat dalam format CSV dan Markdown.

Kode sumber untuk tutorial ini tersedia di repositori deadline-cloud-sample di situs web. GitHub

Video berikut menunjukkan alur kerja papan peringkat vLLM LLM di Deadline Cloud.

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

Gambaran umum

Setiap tugas dalam EvalModels langkah memulai server vLLM lokal, menjalankan setiap benchmark dengan lm-evaluation-harness eLeutherai terhadap titik akhir lokal, lalu menghentikan vLLM. Untuk informasi lebih lanjut, lihat vLLM dan lm-evalu ation-harness di situs web. GitHub Model dimuat langsung dari Hugging Face Hub, jadi lampiran pekerjaan tidak diperlukan.

Untuk menyelesaikan tutorial ini, ikuti langkah-langkah berikut:

  1. Lengkapi prasyarat.

  2. Siapkan peternakan Anda.

  3. Kirimkan pekerjaan evaluasi.

  4. Unduh dan tinjau hasil.

  5. Pembersihan sumber daya

Prasyarat

Sebelum Anda mulai, pengaturan berikut disarankan:

  • Farm Deadline Cloud dengan armada yang dikelola layanan GPU NVIDIA (A10G atau L4, minimal 32 GB RAM, setidaknya 4 vCPU).

  • Antrian dengan lingkungan antrian conda terlampir yang membaca CondaPackages dan parameter CondaChannels pekerjaan.

  • Deadline Cloud CLI diinstal pada workstation Anda. Untuk petunjuk instalasi, lihat repositori deadline-cloud di situs web. GitHub

  • Kuota layanan Deadline Cloud yang memadai untuk instans GPU. Model 3 default yang dijalankan g5.xlarge (masing-masing 4 vCPU dan 1 GPU) membutuhkan setidaknya 3 GPU di bawah GPU instans OnDemand G per wilayah dan 12 vCPU di bawah vCPU per wilayah. OnDemand

catatan

Token Hugging Face hanya diperlukan untuk model yang terjaga keamanannya (seperti Llama). Daftar model default menggunakan model tanpa batas.

Siapkan peternakan Anda

Cara tercepat untuk mendapatkan peternakan yang kompatibel adalah dengan menerapkan CloudFormation template pertanian CUDA di GitHub situs web. Template menyediakan armada yang dikelola layanan NVIDIA GPU (A10G atau L4) dan antrian dengan lingkungan antrian conda yang digunakan bundel ini tanpa modifikasi.

Untuk mengkonfigurasi CLI untuk peternakan Anda
  • Setelah CloudFormation 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, konfigurasi berikut disarankan:

  • Armada SMF dengan GPU NVIDIA, setidaknya 32 GB RAM, dan setidaknya 4 vCPU.

  • Antrian dengan lingkungan antrian conda yang membaca CondaPackages dan parameter CondaChannels pekerjaan.

Kirimkan pekerjaan evaluasi

Untuk mengirimkan 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
  2. Kirim pekerjaan dengan model dan tolok ukur default:

    deadline bundle submit . \ --parameter MaxModelLen=2048

    Daftar model default mengevaluasi tiga model kecil yang tidak beraturan:Qwen/Qwen2.5-0.5B,Qwen/Qwen2.5-1.5B, danEleutherAI/pythia-1.4b. Tolok ukur default adalah rangkaian penalaran akal sehat:hellaswag,arc_easy,arc_challenge,winogrande.

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

Mengubah daftar model

Model didefinisikan sebagai ruang parameter STRING pada EvalModels langkah ditemplate.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. Model ID harus didukung oleh vLLM. Untuk informasi selengkapnya, lihat daftar model yang didukung di situs web vLLM.

Memilih tolok ukur

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 https://github.com/EleutherAI/lm-evaluation-harness/tree/main/lm_eval/tasks lm-evaluation-harness di situs web. GitHub

Unduh dan tinjau hasil

Untuk mengunduh hasil papan peringkat
  1. Setelah pekerjaan selesai, unduh output:

    deadline job download-output --job-id job-id
  2. Lihat papan peringkat:

    cat leaderboard_results/leaderboard.md

Contoh berikut menunjukkan output papan peringkat yang khas:

# 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

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 tum CloudFormation pukan dari CloudFormation konsol.

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

  3. Hapus file output lokal jika tidak lagi diperlukan:

    rm -rf leaderboard_results/

Pemecahan masalah

Armada tidak meningkatkan jumlah pekerja

Penyebab paling umum adalah kuota layanan Deadline Cloud. Buka konsol Kuota Layanan di bawah De AWS adline Cloud dan konfirmasikan bahwa Anda memiliki ruang untuk GPU instans OnDemand G per wilayah dan OnDemand vCPU per wilayah. Peningkatan kuota dapat memakan waktu beberapa menit hingga beberapa hari kerja.

Sumber daya berikut memberikan informasi tambahan di GitHub situs web dan situs web VllM: