Tutorial ini menyajikan model Qwen/Qwen2-7B-Instruct menggunakan framework penyajian TPU vLLM di VM TPU v6e.
Tujuan
- Siapkan lingkungan Anda.
- Jalankan vLLM dengan Qwen2-7B-Instruct.
- Kirim permintaan inferensi.
- Jalankan workload tolok ukur.
- Jalankan pembersihan.
Biaya
Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.
Sebelum memulai
Sebelum mempelajari tutorial ini, ikuti petunjuk di halaman Menyiapkan lingkungan Cloud TPU. Petunjuk ini memandu Anda melalui langkah-langkah yang diperlukan untuk membuat project Google Cloud dan mengonfigurasinya agar dapat menggunakan Cloud TPU. Anda juga dapat menggunakan project Google Cloud yang sudah ada. Jika memilih untuk melakukannya, Anda dapat melewati langkah membuat projectGoogle Cloud dan memulai dengan Menyiapkan lingkungan untuk menggunakan Cloud TPU.
Anda memerlukan token akses Hugging Face untuk menggunakan tutorial ini. Anda dapat mendaftar untuk mendapatkan akun gratis di Hugging Face. Setelah memiliki akun, buat token akses:
- Di halaman Welcome to Hugging Face, klik avatar akun Anda, lalu pilih Access tokens.
- Di halaman Access Tokens, klik Create new token.
- Pilih jenis token Baca dan masukkan nama untuk token Anda.
- Token akses Anda akan ditampilkan. Simpan token di tempat yang aman.
Menyiapkan lingkungan Anda
Resource dalam Antrean
Buat VM Cloud TPU v6e menggunakan API resource dalam antrean. Untuk qwen2-7b-instruct, sebaiknya gunakan TPU v6e-1.
Tetapkan variabel:
- PROJECT - Nama project Anda.
- TPU_NAME - Nama mesin VM TPU yang akan Anda buat.
- ZONE - Zona cloud tempat Anda membuat VM baru.
- TPU_TYPE - Jenis VM TPU yang Anda buat. Misalnya
v6e-1atauv6e-4. - QR_ID - Nama Queued Resource yang Anda buat.
Buat permintaan Queued Resource:
Periksa untuk memastikan VM TPU Anda sudah siap.
Misalnya, saat statusnya ACTIVE:
name: projects/your-project-id/locations/your-zone/queuedResources/your-queued-resource-id
state:
state: ACTIVE
tpu:
nodeSpec:
- node:
acceleratorType: v6e-1
bootDisk: {}
networkConfig:
enableExternalIps: true
queuedResource: projects/your-project-number/locations/your-zone/queuedResources/your-queued-resource-id
runtimeVersion: v2-alpha-tpuv6e
schedulingConfig: {}
serviceAccount: {}
shieldedInstanceConfig: {}
useTpuVm: true
nodeId: your-node-id
parent: projects/your-project-number/locations/your-zone
Reservasi
Buat VM Cloud TPU v6e menggunakan reservasi. Untuk qwen2-7b-instruct, sebaiknya gunakan TPU v6e-1. Mulai dengan menetapkan variabel lingkungan:
Tetapkan variabel:
- PROJECT - Nama project Anda.
- TPU_NAME - Nama mesin VM TPU yang akan Anda buat.
- ZONE - Zona cloud tempat Anda membuat VM baru.
- TPU_TYPE - Jenis VM TPU yang Anda buat. Misalnya
v6e-1atauv6e-4. - RESERVATION - Nama pemesanan dengan TPU Anda.
Buat VM TPU menggunakan reservasi Anda:
Hubungkan ke VM TPU.
Menjalankan vLLM dengan Qwen2-7B-instruct
Tetapkan variabel nama model dan token Hugging Face Anda.
export HF_TOKEN="YOUR_HF_TOKEN" export MODEL_NAME="Qwen/Qwen2-7B-Instruct"Di dalam VM TPU, jalankan container Docker vLLM dalam mode terpisah dan mulai server vLLM. Perintah ini menggunakan ukuran memori bersama sebesar 10 GB.
Periksa log server untuk mengonfirmasi bahwa server berjalan.
Saat server vLLM berjalan, Anda akan melihat output yang mirip dengan berikut ini. Setelah output ditampilkan, tekan
CTRL+Cuntuk kembali ke terminal.(APIServer pid=7) INFO: Started server process [7] (APIServer pid=7) INFO: Waiting for application startup. (APIServer pid=7) INFO: Application startup complete.
Mengirim permintaan inferensi
Setelah server vLLM berjalan, Anda dapat mengirim permintaan ke API. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API vLLM.
Kirim permintaan pengujian ke server menggunakan
curl.
Respons ditampilkan dalam format JSON.
Menjalankan workload benchmark
Anda dapat menjalankan tolok ukur terhadap server yang sedang berjalan dari terminal kedua.
Di dalam container, instal library
datasets.Di dalam container, jalankan perintah
vllm bench serve.
Hasil benchmark akan terlihat seperti berikut:
============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 45.35
Total input tokens: 1024000
Total generated tokens: 126848
Request throughput (req/s): 22.05
Output token throughput (tok/s): 2797.15
Peak output token throughput (tok/s): 4258.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 25377.57
---------------Time to First Token----------------
Mean TTFT (ms): 21332.46
Median TTFT (ms): 21330.37
P99 TTFT (ms): 42436.47
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 37.36
Median TPOT (ms): 38.56
P99 TPOT (ms): 38.69
---------------Inter-token Latency----------------
Mean ITL (ms): 37.35
Median ITL (ms): 38.55
P99 ITL (ms): 39.43
==================================================
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
- Di terminal Anda, ketik exit untuk memutuskan koneksi dari VM TPU.
Menghapus resource
Anda dapat menghapus project yang akan menghapus semua resource atau Anda dapat menyimpan project dan menghapus resource.
Menghapus project Anda
Untuk menghapus Google Cloud project dan semua resource terkait, jalankan:
gcloud projects delete $PROJECT_ID
Menghapus resource TPU
Resource dalam Antrean
Hapus resource Cloud TPU Anda. Perintah berikut menghapus permintaan resource yang diantrekan dan VM TPU menggunakan parameter --force.
Reservasi
Hapus VM Cloud TPU Anda. Gunakan perintah berikut untuk menghentikan VM, melepaskan TPU kembali ke reservasi Anda.
Langkah berikutnya
- Pelajari lebih lanjut vLLM di Cloud TPU.
- Pelajari Cloud TPU lebih lanjut.