1. Ringkasan
Lab ini memberikan panduan mendetail tentang cara men-deploy server aplikasi LIT di Google Cloud Platform (GCP) untuk berinteraksi dengan model dasar Vertex AI Gemini dan model bahasa besar (LLM) pihak ketiga yang dihosting sendiri. Panduan ini juga mencakup panduan tentang cara menggunakan UI LIT untuk proses debug prompt dan interpretasi model.
Dengan mengikuti lab ini, pengguna akan mempelajari cara:
- Konfigurasikan server LIT di GCP.
- Hubungkan server LIT ke model Gemini Vertex AI atau LLM lain yang dihosting sendiri.
- Manfaatkan UI LIT untuk menganalisis, men-debug, dan menafsirkan perintah untuk mendapatkan performa dan insight model yang lebih baik.
Apa yang dimaksud dengan LIT?
LIT adalah alat pemahaman model visual dan interaktif yang mendukung data teks, gambar, dan tabulasi. Vertex AI Workbench dapat dijalankan sebagai server mandiri, atau di dalam lingkungan notebook seperti Google Colab, Jupyter, dan Google Cloud Vertex AI. LIT tersedia dari PyPI dan GitHub.
Awalnya dibuat untuk memahami model klasifikasi dan regresi, update terbaru telah menambahkan alat untuk men-debug prompt LLM yang memungkinkan Anda mempelajari pengaruh konten pengguna, model, dan sistem terhadap perilaku pembuatan.
Apa itu Vertex AI dan Model Garden?
Vertex AI adalah platform machine learning (ML) yang memungkinkan Anda melatih dan men-deploy model ML dan aplikasi AI, serta menyesuaikan LLM untuk digunakan dalam aplikasi yang didukung teknologi AI. Vertex AI menggabungkan data engineering, data science, dan alur kerja engineering ML sehingga tim Anda dapat berkolaborasi menggunakan kumpulan alat yang umum dan menskalakan aplikasi menggunakan manfaat Google Cloud.
Vertex Model Garden adalah library model ML yang membantu Anda menemukan, menguji, menyesuaikan, dan men-deploy model dan aset eksklusif Google serta memilih model dan aset pihak ketiga.
Yang akan Anda lakukan
Anda akan menggunakan Cloud Shell dan Cloud Run Google untuk men-deploy container Docker dari image bawaan LIT.
Cloud Run adalah platform komputasi terkelola yang memungkinkan Anda menjalankan container langsung di atas infrastruktur Google yang skalabel, termasuk di GPU.
Set data
Demo ini menggunakan set data sampel proses debug perintah LIT secara default, atau Anda dapat memuat set data Anda sendiri melalui UI.
Sebelum memulai
Untuk panduan referensi ini, Anda memerlukan project Google Cloud. Anda dapat membuat project baru, atau memilih project yang sudah dibuat.
2. Meluncurkan Google Cloud Console dan Cloud Shell
Anda akan meluncurkan Konsol Google Cloud dan menggunakan Google Cloud Shell pada langkah ini.
2-a: Meluncurkan Konsol Google Cloud
Luncurkan browser dan buka Konsol Google Cloud.
Konsol Google Cloud adalah antarmuka admin web yang canggih dan aman yang memungkinkan Anda mengelola resource Google Cloud dengan cepat. Ini adalah alat DevOps kapan saja di mana saja.
2-b: Meluncurkan Google Cloud Shell
Cloud Shell adalah lingkungan operasi dan pengembangan online yang dapat diakses di mana saja dengan browser Anda. Anda dapat mengelola resource dengan terminal online yang telah dilengkapi dengan utilitas seperti alat command line gcloud, kubectl, dan lainnya. Anda juga dapat mengembangkan, mem-build, men-debug, dan men-deploy Aplikasi berbasis cloud menggunakan Cloud Shell Editor online. Cloud Shell menyediakan lingkungan online yang siap digunakan developer dengan kumpulan alat favorit yang telah diinstal sebelumnya dan ruang penyimpanan persisten sebesar 5 GB. Anda akan menggunakan command prompt di langkah berikutnya.
Luncurkan Google Cloud Shell menggunakan ikon di kanan atas panel menu, yang dilingkari dengan warna biru pada screenshot berikut.
Anda akan melihat terminal dengan shell Bash di bagian bawah halaman.
2-c: Menetapkan Project Google Cloud
Anda harus menetapkan project ID dan region project menggunakan perintah gcloud
.
# Set your GCP Project ID.
gcloud config set project your-project-id
# Set your GCP Project Region.
gcloud config set run/region your-project-region
3. Men-deploy Image Docker Server Aplikasi LIT dengan Cloud Run
3-a: Men-deploy Aplikasi LIT ke Cloud Run
Pertama-tama, Anda harus menetapkan LIT-App versi terbaru sebagai versi yang akan di-deploy.
# Set latest version as your LIT_SERVICE_TAG.
export LIT_SERVICE_TAG=latest
# List all the public LIT GCP App server docker images.
gcloud container images list-tags us-east4-docker.pkg.dev/lit-demos/lit-app/gcp-lit-app
Setelah menetapkan tag versi, Anda perlu memberi nama layanan.
# Set your lit service name. While 'lit-app-service' is provided as a placeholder, you can customize the service name based on your preferences.
export LIT_SERVICE_NAME=lit-app-service
Setelah itu, Anda dapat menjalankan perintah berikut untuk men-deploy container ke Cloud Run.
# Use below cmd to deploy the LIT App to Cloud Run.
gcloud run deploy $LIT_SERVICE_NAME \
--image us-east4-docker.pkg.dev/lit-demos/lit-app/gcp-lit-app:$LIT_SERVICE_TAG \
--port 5432 \
--cpu 8 \
--memory 32Gi \
--no-cpu-throttling \
--no-allow-unauthenticated
LIT juga memungkinkan Anda menambahkan set data saat memulai server. Untuk melakukannya, tetapkan variabel DATASETS
untuk menyertakan data yang ingin Anda muat, menggunakan format name:path
, misalnya, data_foo:/bar/data_2024.jsonl
. Format set data harus .jsonl, dengan setiap data berisi prompt
dan kolom target
dan source
opsional. Untuk memuat beberapa set data, pisahkan dengan koma. Jika tidak ditetapkan, set data contoh proses debug perintah LIT akan dimuat.
# Set the dataset.
export DATASETS=[DATASETS]
Dengan menetapkan MAX_EXAMPLES, Anda dapat menetapkan jumlah maksimum contoh yang akan dimuat dari setiap set evaluasi.
# Set the max examples.
export MAX_EXAMPLES=[MAX_EXAMPLES]
Kemudian, dalam perintah deploy, Anda dapat menambahkan
--set-env-vars "DATASETS=$DATASETS" \
--set-env-vars "MAX_EXAMPLES=$MAX_EXAMPLES" \
3-b: Melihat Layanan Aplikasi LIT
Setelah membuat server Aplikasi LIT, Anda dapat menemukan layanan di bagian Cloud Run di Cloud Console.
Pilih layanan Aplikasi LIT yang baru saja Anda buat. Pastikan nama layanan sama dengan LIT_SERVICE_NAME
.
Anda dapat menemukan URL layanan dengan mengklik layanan yang baru saja di-deploy.
Kemudian, Anda akan dapat melihat UI LIT. Jika Anda mengalami error, lihat bagian Pemecahan masalah.
Anda dapat memeriksa bagian LOG untuk memantau aktivitas, melihat pesan error, dan melacak progres deployment.
Anda dapat memeriksa bagian METRIK untuk melihat metrik layanan.
3-c: Memuat Set Data
Klik opsi Configure
di UI LIT, pilih Dataset
. Muat set data dengan menentukan nama dan memberikan URL set data. Format set data harus .jsonl, dengan setiap data berisi prompt
dan kolom target
dan source
opsional.
4. Menyiapkan Model Gemini di Model Garden Vertex AI
Model dasar Gemini Google tersedia dari Vertex AI API. LIT menyediakan wrapper model VertexAIModelGarden
untuk menggunakan model ini untuk pembuatan. Cukup tentukan versi yang diinginkan (misalnya, "gemini-1.5-pro-001") melalui parameter nama model. Keuntungan utama menggunakan model ini adalah tidak memerlukan upaya tambahan untuk deployment. Secara default, Anda memiliki akses langsung ke model seperti Gemini 1.0 Pro dan Gemini 1.5 Pro di GCP, sehingga Anda tidak perlu melakukan langkah konfigurasi tambahan.
4-a: Memberikan Izin Vertex AI
Untuk membuat kueri Gemini di GCP, Anda perlu memberikan izin Vertex AI ke akun layanan. Pastikan nama akun layanannya adalah Default compute service account
. Salin email akun layanan akun tersebut.
Tambahkan email akun layanan sebagai akun utama dengan peran Vertex AI User
di daftar yang diizinkan IAM Anda.
4-b: Memuat Model Gemini
Anda akan memuat model Gemini dan menyesuaikan parameternya dengan mengikuti langkah-langkah di bawah.
- Klik opsi
Configure
di UI LIT.
- Klik opsi
- Pilih opsi
gemini
di bagian opsiSelect a base model
.
- Pilih opsi
- Anda harus memberi nama model di
new_name
.
- Anda harus memberi nama model di
- Masukkan model gemini yang dipilih sebagai
model_name
.
- Masukkan model gemini yang dipilih sebagai
- Klik
Load Model
.
- Klik
- Klik
Submit
.
- Klik
5. Men-deploy Server Model LLM yang Dihosting Sendiri di GCP
Menghosting sendiri LLM dengan image docker server model LIT memungkinkan Anda menggunakan fungsi keterlihatan dan tokenisasi LIT untuk mendapatkan insight yang lebih mendalam tentang perilaku model. Image server model berfungsi dengan model KerasNLP atau Hugging Face Transformers, termasuk bobot yang disediakan library dan dihosting sendiri, misalnya, di Google Cloud Storage.
5-a: Mengonfigurasi Model
Setiap penampung memuat satu model, yang dikonfigurasi menggunakan variabel lingkungan.
Anda harus menentukan model yang akan dimuat dengan menetapkan MODEL_CONFIG. Formatnya harus name:path
, misalnya model_foo:model_foo_path
. Jalur dapat berupa URL, jalur file lokal, atau nama preset untuk framework Deep Learning yang dikonfigurasi (lihat tabel berikut untuk mengetahui informasi selengkapnya). Server ini diuji dengan Gemma, GPT2, Llama, dan Mistral pada semua nilai DL_FRAMEWORK
yang didukung. Model lain akan berfungsi, tetapi penyesuaian mungkin diperlukan.
# Set models you want to load. While 'gemma2b is given as a placeholder, you can load your preferred model by following the instructions above.
export MODEL_CONFIG=gemma2b:gemma_2b_en
Selain itu, server model LIT memungkinkan konfigurasi berbagai variabel lingkungan menggunakan perintah di bawah. Lihat tabel untuk mengetahui detailnya. Perhatikan bahwa setiap variabel harus ditetapkan satu per satu.
# Customize the variable value as needed.
export [VARIABLE]=[VALUE]
Variabel | Nilai | Deskripsi |
DL_FRAMEWORK |
| Library pemodelan yang digunakan untuk memuat bobot model ke runtime yang ditentukan. Default-nya adalah |
DL_RUNTIME |
| Framework backend deep learning tempat model berjalan. Semua model yang dimuat oleh server ini akan menggunakan backend yang sama, ketidakcocokan akan menyebabkan error. Default-nya adalah |
PRESISI |
| Presisi floating point untuk model LLM. Default-nya adalah |
BATCH_SIZE | Bilangan Bulat Positif | Jumlah contoh yang akan diproses per batch. Default-nya adalah |
SEQUENCE_LENGTH | Bilangan Bulat Positif | Panjang urutan maksimum perintah input ditambah teks yang dihasilkan. Default-nya adalah |
5-b: Men-deploy Server Model ke Cloud Run
Pertama-tama, Anda harus menetapkan Server Model versi terbaru sebagai versi yang akan di-deploy.
# Set latest as MODEL_VERSION_TAG.
export MODEL_VERSION_TAG=latest
# List all the public LIT GCP model server docker images.
gcloud container images list-tags us-east4-docker.pkg.dev/lit-demos/lit-app/gcp-model-server
Setelah menetapkan tag versi, Anda perlu memberi nama server model.
# Set your Service name.
export MODEL_SERVICE_NAME='gemma2b-model-server'
Setelah itu, Anda dapat menjalankan perintah berikut untuk men-deploy container ke Cloud Run. Jika Anda tidak menetapkan variabel lingkungan, nilai default akan diterapkan. Karena sebagian besar LLM memerlukan resource komputasi yang mahal, sebaiknya gunakan GPU. Jika Anda memilih untuk menjalankan hanya di CPU (yang berfungsi dengan baik untuk model kecil seperti GPT2), Anda dapat menghapus argumen terkait --gpu 1 --gpu-type nvidia-l4 --max-instances 7
.
# Deploy the model service container.
gcloud beta run deploy $MODEL_SERVICE_NAME \
--image us-east4-docker.pkg.dev/lit-demos/lit-app/gcp-model-server:$MODEL_VERSION_TAG \
--port 5432 \
--cpu 8 \
--memory 32Gi \
--no-cpu-throttling \
--gpu 1 \
--gpu-type nvidia-l4 \
--max-instances 7 \
--set-env-vars "MODEL_CONFIG=$MODEL_CONFIG" \
--no-allow-unauthenticated
Selain itu, Anda dapat menyesuaikan variabel lingkungan dengan menambahkan perintah berikut. Hanya sertakan variabel lingkungan yang diperlukan untuk kebutuhan spesifik Anda.
--set-env-vars "DL_FRAMEWORK=$DL_FRAMEWORK" \
--set-env-vars "DL_RUNTIME=$DL_RUNTIME" \
--set-env-vars "PRECISION=$PRECISION" \
--set-env-vars "BATCH_SIZE=$BATCH_SIZE" \
--set-env-vars "SEQUENCE_LENGTH=$SEQUENCE_LENGTH" \
Variabel lingkungan tambahan mungkin diperlukan untuk mengakses model tertentu. Lihat petunjuk dari Kaggle Hub (digunakan untuk model KerasNLP) dan Hugging Face Hub sebagaimana mestinya.
5-c: Mengakses Server Model
Setelah membuat server model, layanan yang dimulai dapat ditemukan di bagian Cloud Run pada project GCP Anda.
Pilih server model yang baru saja Anda buat. Pastikan nama layanan sama dengan MODEL_SERVICE_NAME
.
Anda dapat menemukan URL layanan dengan mengklik layanan model yang baru saja di-deploy.
Anda dapat memeriksa bagian LOG untuk memantau aktivitas, melihat pesan error, dan melacak progres deployment.
Anda dapat memeriksa bagian METRIK untuk melihat metrik layanan.
5-d: Memuat Model yang Dihosting Sendiri
Jika Anda melakukan proxy server LIT di Langkah 3 (lihat bagian Pemecahan Masalah), Anda harus mendapatkan token identitas GCP dengan menjalankan perintah berikut.
# Find your GCP identity token.
gcloud auth print-identity-token
Anda akan memuat model yang dihosting sendiri dan menyesuaikan parameternya dengan mengikuti langkah-langkah di bawah.
- Klik opsi
Configure
di UI LIT. - Pilih opsi
LLM (self hosted)
di bagian opsiSelect a base model
. - Anda harus memberi nama model di
new_name
. - Masukkan URL server model Anda sebagai
base_url
. - Masukkan token identitas yang diperoleh di
identity_token
jika Anda melakukan proxy server Aplikasi LIT (Lihat Langkah 3 dan Langkah 7). Jika tidak, biarkan kosong. - Klik
Load Model
. - Klik
Submit
.
6. Berinteraksi dengan LIT di GCP
LIT menawarkan serangkaian fitur yang lengkap untuk membantu Anda men-debug dan memahami perilaku model. Anda dapat melakukan hal yang sederhana seperti membuat kueri model, dengan mengetik teks di kotak dan melihat prediksi model, atau memeriksa model secara mendalam dengan serangkaian fitur canggih LIT, termasuk:
6-a: Membuat Kueri Model melalui LIT
LIT otomatis membuat kueri set data setelah model dan set data dimuat. Anda dapat melihat respons setiap model dengan memilih respons di kolom.
6-b: Menggunakan Teknik Kejelasan Urutan
Saat ini, teknik Sequence Salience di LIT hanya mendukung model yang dihosting sendiri.
Sequence Salience adalah alat visual yang membantu men-debug perintah LLM dengan menandai bagian perintah mana yang paling penting untuk output tertentu. Untuk informasi selengkapnya tentang Sequence Salience, lihat tutorial lengkap untuk mengetahui lebih lanjut cara menggunakan fitur ini.
Untuk mengakses hasil keterlihatan, klik input atau output apa pun dalam perintah atau respons, dan hasil keterlihatan akan ditampilkan.
6-c: Mengedit Perintah dan Target secara Manual
LIT memungkinkan Anda mengedit prompt
dan target
secara manual untuk titik data yang ada. Dengan mengklik Add
, input baru akan ditambahkan ke set data.
6-d: Membandingkan Perintah Secara Berdampingan
LIT memungkinkan Anda membandingkan perintah secara berdampingan pada contoh asli dan yang diedit. Anda dapat mengedit contoh secara manual dan melihat hasil prediksi serta analisis Sequence Salience untuk versi asli dan yang diedit secara bersamaan. Anda dapat mengubah perintah untuk setiap titik data, dan LIT akan menghasilkan respons yang sesuai dengan membuat kueri model.
6-e: Membandingkan Beberapa Model Secara Berdampingan
LIT memungkinkan perbandingan model secara berdampingan pada setiap contoh pembuatan teks dan penskoran, serta pada contoh gabungan untuk metrik tertentu. Dengan membuat kueri berbagai model yang dimuat, Anda dapat dengan mudah membandingkan perbedaan dalam responsnya.
6-f: Generator Counterfactual Otomatis
Anda dapat menggunakan generator counterfactual otomatis untuk membuat input alternatif, dan langsung melihat perilaku model Anda terhadap input tersebut.
6-g: Mengevaluasi performa model
Anda dapat menilai performa model menggunakan metrik (saat ini mendukung skor BLEU dan ROUGE untuk pembuatan teks) di seluruh set data, atau subkumpulan contoh yang difilter atau dipilih.
7. Pemecahan masalah
7-a: Kemungkinan masalah akses dan solusinya
Karena --no-allow-unauthenticated
diterapkan saat men-deploy ke Cloud Run, Anda mungkin mengalami error yang dilarang seperti yang ditunjukkan di bawah ini.
Ada dua pendekatan untuk mengakses layanan Aplikasi LIT.
1. Proxy ke Jasa dan Servis Lokal
Anda dapat melakukan proxy layanan ke host lokal menggunakan perintah di bawah.
# Proxy the service to local host.
gcloud run services proxy $LIT_SERVICE_NAME
Kemudian, Anda akan dapat mengakses server LIT dengan mengklik link layanan yang di-proxy.
2. Mengautentikasi Pengguna Secara Langsung
Anda dapat mengikuti link ini untuk mengautentikasi pengguna, sehingga memungkinkan akses langsung ke layanan Aplikasi LIT. Pendekatan ini juga dapat memungkinkan sekelompok pengguna mengakses layanan. Untuk pengembangan yang melibatkan kolaborasi dengan beberapa orang, ini adalah opsi yang lebih efektif.
7-b: Memeriksa untuk memastikan Server Model telah berhasil diluncurkan
Untuk memastikan server model telah berhasil diluncurkan, Anda dapat langsung membuat kueri server model dengan mengirim permintaan. Server model menyediakan tiga endpoint, predict
, tokenize
, dan salience
. Pastikan Anda memberikan kolom prompt
dan kolom target
dalam permintaan.
# Query the model server predict endpoint.
curl -X POST http://YOUR_MODEL_SERVER_URL/predict -H "Content-Type: application/json" -d '{"inputs":[{"prompt":"[YOUR PROMPT]", "target":[YOUR TARGET]}]}'
# Query the model server tokenize endpoint.
curl -X POST http://YOUR_MODEL_SERVER_URL/tokenize -H "Content-Type: application/json" -d '{"inputs":[{"prompt":"[YOUR PROMPT]", "target":[YOUR TARGET]}]}'
# Query the model server salience endpoint.
curl -X POST http://YOUR_MODEL_SERVER_URL/salience -H "Content-Type: application/json" -d '{"inputs":[{"prompt":"[YOUR PROMPT]", "target":[YOUR TARGET]}]}'
Jika Anda mengalami masalah akses, lihat bagian 7-a di atas.
8. Selamat
Selamat, Anda telah menyelesaikan codelab. Saatnya bersantai!
Pembersihan
Untuk membersihkan lab, hapus semua Layanan Google Cloud yang dibuat untuk lab. Gunakan Google Cloud Shell untuk menjalankan perintah berikut.
Jika Koneksi Google Cloud hilang karena tidak aktif, reset variabel dengan mengikuti langkah-langkah sebelumnya.
# Delete the LIT App Service.
gcloud run services delete $LIT_SERVICE_NAME
Jika memulai server model, Anda juga perlu menghapus server model.
# Delete the Model Service.
gcloud run services delete $MODEL_SERVICE_NAME
Bacaan lebih lanjut
Lanjutkan mempelajari fitur alat LIT dengan materi di bawah:
- Gemma: Link
- Basis kode open source LIT: Repositori Git
- Makalah LIT: ArXiv
- Makalah proses debug perintah LIT: ArXiv
- Demo video fitur LIT: YouTube
- Demo proses debug perintah LIT: YouTube
- Toolkit GenAI yang Bertanggung Jawab: Link
Kontak
Jika ada pertanyaan atau masalah terkait codelab ini, hubungi kami di GitHub.
Lisensi
Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 4.0.