Panduan ini menunjukkan cara menayangkan model bahasa besar (LLM) model terbuka Gemma menggunakan Tensor Processing Unit (TPU) di Vertex AI Prediction dengan Saxml. Dalam panduan ini, Anda akan mendownload model Gemma yang disesuaikan dengan petunjuk parameter 2B dan 7B ke Cloud Storage dan men-deploynya di Vertex AI Prediction yang menjalankan Saxml di TPU.
Latar belakang
Dengan menayangkan Gemma menggunakan TPU di Vertex AI Prediction dengan Saxml. Anda dapat memanfaatkan solusi AI terkelola yang menangani infrastruktur tingkat rendah dan menawarkan cara yang hemat biaya untuk menayangkan LLM. Bagian ini menjelaskan teknologi utama yang digunakan dalam tutorial ini.
Gemma
Gemma adalah serangkaian model kecerdasan buatan (AI) generatif, ringan, dan tersedia secara terbuka yang dirilis berdasarkan lisensi terbuka. Model AI ini tersedia untuk dijalankan di aplikasi, hardware, perangkat seluler, atau layanan yang dihosting. Anda dapat menggunakan model Gemma untuk pembuatan teks, tetapi Anda juga dapat menyesuaikan model ini untuk tugas khusus.
Untuk mempelajari lebih lanjut, lihat dokumentasi Gemma.
Saxml
Saxml adalah sistem eksperimental yang menayangkan model Paxml, JAX, dan PyTorch untuk inferensi. Untuk tutorial ini, kami akan membahas cara menayangkan Gemma di TPU yang lebih hemat biaya untuk Saxml. Penyiapan untuk GPU serupa. Saxml menawarkan skrip untuk mem-build container untuk Vertex AI Prediction yang akan kita gunakan dalam tutorial ini.
TPU
TPU adalah sirkuit terintegrasi khusus aplikasi (ASIC) Google yang dikembangkan khusus dan digunakan untuk mempercepat framework pemrosesan data seperti TensorFlow, PyTorch, dan JAX.
Tutorial ini menayangkan model Gemma 2B dan Gemma 7B. Vertex AI Prediction menghosting model ini di node pool TPU v5e host tunggal berikut:
- Gemma 2B: Dihosting di node pool TPU v5e dengan topologi
1x1
yang mewakili satu chip TPU. Jenis mesin untuk node adalahct5lp-hightpu-1t
. - Gemma 7B: Dihosting di node pool TPU v5e dengan topologi
2x2
yang mewakili empat chip TPU. Jenis mesin untuk node adalahct5lp-hightpu-4t
.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan Vertex AI API.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan Vertex AI API.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Tutorial ini mengasumsikan bahwa Anda menggunakan Cloud Shell untuk berinteraksi dengan Google Cloud. Jika Anda ingin menggunakan shell yang berbeda, bukan Cloud Shell, lakukan konfigurasi tambahan berikut:
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Pastikan Anda memiliki kuota yang memadai untuk chip TPU v5e untuk
Vertex AI Prediction. Secara default, kuota ini adalah 0.
Untuk topologi
1x1
, nilainya harus 1. Untuk2x2
, nilainya harus 4. Untuk menjalankan kedua topologi, nilainya harus 5. - Buat akun Kaggle, jika Anda belum memilikinya.
Mendapatkan akses ke model
Perhatikan bahwa Cloud Shell mungkin tidak memiliki resource yang memadai untuk mendownload bobot model. Jika ya, Anda dapat membuat instance Vertex AI Workbench untuk melakukan tugas tersebut.
Untuk mendapatkan akses ke model Gemma untuk di-deploy ke Vertex AI Prediction, Anda harus login ke platform Kaggle, menandatangani perjanjian izin lisensi, dan mendapatkan token API Kaggle. Dalam tutorial ini, Anda akan menggunakan Secret Kubernetes untuk kredensial Kaggle.
Menandatangani perjanjian izin lisensi
Anda harus menandatangani perjanjian izin untuk menggunakan Gemma. Ikuti petunjuk berikut:
- Akses halaman izin model di Kaggle.com.
- Login ke Kaggle jika Anda belum melakukannya.
- Klik Minta Akses.
- Di bagian Pilih Akun untuk Izin, pilih Verifikasi melalui Akun Kaggle untuk menggunakan akun Kaggle Anda untuk izin.
- Setujui Persyaratan dan Ketentuan model.
Membuat token akses
Untuk mengakses model melalui Kaggle, Anda memerlukan token API Kaggle.
Ikuti langkah-langkah berikut untuk membuat token baru jika Anda belum memilikinya:
- Di browser, buka setelan Kaggle.
Di bagian API, klik Create New Token.
File bernama
kaggle.json
didownload.
Mengupload token akses ke Cloud Shell
Di Cloud Shell, Anda dapat mengupload token Kaggle API ke project Google Cloud:
- Di Cloud Shell, klik > Upload. Lainnya
- Pilih File, lalu klik Choose Files.
- Buka file
kaggle.json
. - Klik Upload.
Membuat bucket Cloud Storage
Buat bucket Cloud Storage untuk menyimpan checkpoint model.
Di Cloud Shell, jalankan perintah berikut:
gcloud storage buckets create gs://CHECKPOINTS_BUCKET_NAME
Ganti CHECKPOINTS_BUCKET_NAME dengan nama bucket Cloud Storage yang menyimpan titik periksa model.
Menyalin model ke bucket Cloud Storage
Di Cloud Shell, jalankan perintah berikut:
pip install kaggle --break-system-packages
# For Gemma 2B
mkdir -p /data/gemma_2b-it
kaggle models instances versions download google/gemma/pax/2b-it/1 --untar -p /data/gemma_2b-it
gcloud storage cp /data/gemma_2b-it/* gs://CHECKPOINTS_BUCKET_NAME/gemma_2b-it/ --recursive
# For Gemma 7B
mkdir -p /data/gemma_7b-it
kaggle models instances versions download google/gemma/pax/7b-it/1 --untar -p /data/gemma_7b-it
gcloud storage cp /data/gemma_7b-it/* gs://CHECKPOINTS_BUCKET_NAME/gemma_7b-it/ --recursive
Men-deploy model
Mengupload model
Untuk mengupload resource Model
yang menggunakan penampung Saxml, jalankan perintah
gcloud ai models upload
berikut:
Gemma 2B-it
gcloud ai models upload \
--region=LOCATION \
--display-name=DEPLOYED_MODEL_NAME \
--container-image-uri=us-docker.pkg.dev/vertex-ai/prediction/sax-tpu:latest \
--artifact-uri='gs://CHECKPOINTS_BUCKET_NAME/gemma_2b-it/' \
--container-args='--model_path=saxml.server.pax.lm.params.gemma.Gemma2BFP16' \
--container-args='--platform_chip=tpuv5e' \
--container-args='--platform_topology=2x2' \
--container-args='--ckpt_path_suffix=checkpoint_00000000' \
--container-ports=8502
Gemma 7B-it
gcloud ai models upload \
--region=LOCATION \
--display-name=DEPLOYED_MODEL_NAME \
--container-image-uri=us-docker.pkg.dev/vertex-ai/prediction/sax-tpu:latest \
--artifact-uri='gs://CHECKPOINTS_BUCKET_NAME/gemma_7b-it/' \
--container-args='--model_path=saxml.server.pax.lm.params.gemma.Gemma7BFP16' \
--container-args='--platform_chip=tpuv5e' \
--container-args='--platform_topology=2x2' \
--container-args='--ckpt_path_suffix=checkpoint_00000000' \
--container-ports=8502
Ganti kode berikut:
- PROJECT_ID: ID project Google Cloud Anda
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI. Perhatikan bahwa TPU hanya tersedia di us-west1.
-
DEPLOYED_MODEL_NAME: Nama untuk
DeployedModel
. Anda juga dapat menggunakan nama tampilanModel
untukDeployedModel
.
Membuat endpoint
Anda harus men-deploy model ke endpoint sebelum model ini dapat digunakan untuk menayangkan prediksi online. Jika Anda men-deploy model ke endpoint yang sudah ada, Anda dapat melewati langkah ini. Contoh berikut menggunakan
perintah
gcloud ai endpoints create
:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
Ganti kode berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- ENDPOINT_NAME: Nama tampilan endpoint.
Alat Google Cloud CLI mungkin memerlukan waktu beberapa detik untuk membuat endpoint.
Men-deploy model ke endpoint
Setelah endpoint siap, deploy model ke endpoint.
ENDPOINT_ID=$(gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME \
--format="value(name)")
MODEL_ID=$(gcloud ai models list \
--region=LOCATION \
--filter=display_name=DEPLOYED_MODEL_NAME \
--format="value(name)")
gcloud ai endpoints deploy-model $ENDPOINT_ID \
--region=LOCATION \
--model=$MODEL_ID \
--display-name=DEPLOYED_MODEL_NAME \
--machine-type=ct5lp-hightpu-4t \
--traffic-split=0=100
Ganti kode berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- ENDPOINT_NAME: Nama tampilan endpoint.
-
DEPLOYED_MODEL_NAME: Nama untuk
DeployedModel
. Anda juga dapat menggunakan nama tampilanModel
untukDeployedModel
.
Gemma 2B
dapat di-deploy di mesin ct5lp-hightpu-1t yang lebih kecil. Dalam hal ini, Anda harus menentukan --platform_topology=1x1
saat mengupload model.
Alat Google Cloud CLI mungkin memerlukan waktu beberapa menit untuk men-deploy model ke endpoint. Setelah model berhasil di-deploy, perintah ini akan mencetak output berikut:
Deployed a model to the endpoint xxxxx. Id of the deployed model: xxxxx.
Mendapatkan prediksi online dari model yang di-deploy
Untuk memanggil model melalui endpoint Vertex AI Prediction, format permintaan prediksi menggunakan Objek JSON Permintaan Inferensi standar .
Contoh berikut menggunakan perintah
gcloud ai endpoints predict
:
ENDPOINT_ID=$(gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME \
--format="value(name)")
gcloud ai endpoints predict $ENDPOINT_ID \
--region=LOCATION \
--http-headers=Content-Type=application/json \
--json-request instances.json
Ganti kode berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- ENDPOINT_NAME: Nama tampilan endpoint.
- instances.json memiliki format berikut:
{"instances": [{"text_batch": "<your prompt>"},{...}]}
Pembersihan
Agar tidak menimbulkan biaya Vertex AI dan biaya Artifact Registry lebih lanjut, hapus resource Google Cloud yang Anda buat selama tutorial ini:
Untuk membatalkan deployment model dari endpoint dan menghapus endpoint, jalankan perintah berikut di shell Anda:
ENDPOINT_ID=$(gcloud ai endpoints list \ --region=LOCATION \ --filter=display_name=ENDPOINT_NAME \ --format="value(name)") DEPLOYED_MODEL_ID=$(gcloud ai endpoints describe $ENDPOINT_ID \ --region=LOCATION \ --format="value(deployedModels.id)") gcloud ai endpoints undeploy-model $ENDPOINT_ID \ --region=LOCATION \ --deployed-model-id=$DEPLOYED_MODEL_ID gcloud ai endpoints delete $ENDPOINT_ID \ --region=LOCATION \ --quiet
Ganti LOCATION dengan region tempat Anda membuat model di bagian sebelumnya.
Untuk menghapus model, jalankan perintah berikut di shell Anda:
MODEL_ID=$(gcloud ai models list \ --region=LOCATION \ --filter=display_name=DEPLOYED_MODEL_NAME \ --format="value(name)") gcloud ai models delete $MODEL_ID \ --region=LOCATION \ --quiet
Ganti LOCATION dengan region tempat Anda membuat model di bagian sebelumnya.
Batasan
- Di Vertex AI Prediction, Cloud TPU hanya didukung di
us-west1
. Untuk mengetahui informasi selengkapnya, lihat lokasi.
Langkah selanjutnya
- Pelajari cara men-deploy model Saxml lainnya seperti Llama2 dan GPT-J.