Dokumen dalam Google Cloud Well-Architected Framework: AI and ML perspective ini memberikan prinsip dan rekomendasi untuk membantu Anda mengoptimalkan performa workload AI dan ML di Google Cloud. Rekomendasi dalam dokumen ini selaras dengan pilar pengoptimalan performa dari Framework Well-Architected.
Sistem AI dan ML memungkinkan kemampuan otomatisasi dan pengambilan keputusan tingkat lanjut untuk organisasi Anda. Performa sistem ini dapat secara langsung memengaruhi faktor pendorong bisnis yang penting seperti pendapatan, biaya, dan kepuasan pelanggan. Untuk merealisasikan potensi penuh sistem AI dan ML, Anda harus mengoptimalkan performanya berdasarkan sasaran bisnis dan persyaratan teknis Anda. Proses pengoptimalan performa sering kali melibatkan kompromi. Misalnya, pilihan desain yang memberikan performa yang diperlukan mungkin akan menyebabkan biaya yang lebih tinggi. Rekomendasi dalam dokumen ini memprioritaskan performa daripada pertimbangan lainnya.
Untuk mengoptimalkan performa AI dan ML, Anda perlu membuat keputusan terkait faktor-faktor seperti arsitektur model, parameter, dan strategi pelatihan. Saat Anda membuat keputusan ini, pertimbangkan seluruh siklus proses sistem AI dan ML serta lingkungan deployment-nya. Misalnya, LLM yang sangat besar dapat berperforma sangat tinggi pada infrastruktur pelatihan yang masif, tetapi mungkin tidak berperforma baik di lingkungan dengan kapasitas terbatas seperti perangkat seluler.
Rekomendasi dalam dokumen ini dipetakan ke prinsip-prinsip inti berikut:
- Menetapkan tujuan performa dan metode evaluasi
- Menjalankan dan melacak eksperimen yang sering dilakukan
- Membangun dan mengotomatiskan infrastruktur pelatihan dan inferensi
- Menyesuaikan pilihan desain dengan persyaratan performa
- Menautkan metrik performa ke pilihan desain dan konfigurasi
Menetapkan tujuan performa dan metode evaluasi
Strategi dan sasaran bisnis Anda adalah fondasi untuk memanfaatkan teknologi AI dan ML. Terjemahkan sasaran bisnis Anda menjadi indikator performa utama (KPI) yang terukur. Contoh KPI mencakup total pendapatan, biaya, rasio konversi, rasio retensi atau churn, kepuasan pelanggan, dan kepuasan karyawan.
Menentukan tujuan yang realistis
Menurut praktik terbaik site reliability engineering (SRE), tujuan layanan harus mencerminkan tingkat performa yang memenuhi persyaratan pelanggan umum. Artinya, tujuan layanan harus realistis dalam hal skala dan performa fitur.
Tujuan yang tidak realistis dapat menyebabkan pemborosan resource untuk peningkatan performa yang minimal. Model yang memberikan performa tertinggi mungkin tidak menghasilkan hasil bisnis yang optimal. Model tersebut mungkin memerlukan lebih banyak waktu dan biaya untuk melatih dan menjalankannya.
Saat Anda menentukan tujuan, bedakan dan prioritaskan tujuan kualitas dan performa:
- Kualitas mengacu pada karakteristik bawaan yang menentukan nilai suatu entitas. Hal ini membantu Anda menilai apakah entitas tersebut memenuhi ekspektasi dan standar Anda.
- Performa mengacu pada seberapa efisien dan efektif suatu entitas berfungsi atau menjalankan tujuan yang diinginkan.
Engineer ML dapat meningkatkan metrik performa model selama proses pelatihan. Gemini Enterprise Agent Platform menyediakan layanan evaluasi yang dapat digunakan engineer ML untuk menerapkan pelacakan metrik kualitas yang terstandardisasi dan dapat diulang. Efisiensi prediksi model menunjukkan seberapa baik performa model dalam produksi atau pada waktu inferensi. Untuk memantau performa, gunakan Cloud Monitoring dan Model Monitoring di Gemini Enterprise Agent Platform. Untuk memilih model yang sesuai dan memutuskan cara melatihnya, Anda harus menerjemahkan sasaran bisnis menjadi persyaratan teknis yang menentukan metrik kualitas dan performa.
Untuk memahami cara menetapkan tujuan yang realistis dan mengidentifikasi metrik performa yang sesuai, pertimbangkan contoh berikut untuk sistem deteksi penipuan yang didukung AI:
- Tujuan bisnis: Untuk sistem deteksi penipuan, tujuan bisnis yang tidak realistis adalah mendeteksi 100% transaksi penipuan secara akurat dalam waktu satu nanodetik pada traffic puncak 100 miliar transaksi per detik. Tujuan yang lebih realistis adalah mendeteksi transaksi penipuan dengan akurasi 95% dalam 100 milidetik untuk 90% prediksi online selama jam kerja di AS dengan volume puncak satu juta transaksi per detik.
- Metrik performa: Mendeteksi penipuan adalah masalah klasifikasi. Anda dapat mengukur kualitas sistem deteksi penipuan menggunakan metrik seperti perolehan, skor F1, dan akurasi. Untuk melacak performa atau kecepatan sistem, Anda dapat mengukur latensi inferensi. Mendeteksi transaksi yang berpotensi menipu mungkin lebih berharga daripada akurasi. Oleh karena itu, sasaran yang realistis mungkin adalah perolehan yang tinggi dengan latensi p90 yang kurang dari 100 milidetik.
Memantau performa di semua tahap siklus proses model
Selama eksperimen dan pelatihan serta setelah deployment model, pantau KPI Anda dan amati setiap penyimpangan dari tujuan bisnis. Strategi pemantauan yang komprehensif membantu Anda membuat keputusan penting tentang kualitas model dan pemanfaatan resource, seperti berikut:
- Memutuskan kapan harus menghentikan tugas pelatihan.
- Menentukan apakah performa model menurun dalam produksi.
- Meningkatkan biaya dan waktu penyiapan produk untuk model baru.
Pemantauan selama eksperimen dan pelatihan
Tujuan tahap eksperimen adalah menemukan pendekatan, arsitektur model, dan hyperparameter keseluruhan yang optimal untuk tugas tertentu. Eksperimen membantu Anda menentukan konfigurasi yang memberikan performa optimal dan cara melatih model secara iteratif. Pemantauan membantu Anda mengidentifikasi potensi area peningkatan secara efisien.
Untuk memantau kualitas dan efisiensi pelatihan model, ML engineer harus melakukan hal berikut:
- Memvisualisasikan metrik kualitas dan performa model untuk setiap uji coba.
- Memvisualisasikan grafik dan metrik model, seperti histogram bobot dan bias.
- Merepresentasikan data pelatihan secara visual.
- Membuat profil algoritma pelatihan di berbagai hardware.
Untuk memantau eksperimen dan pelatihan, pertimbangkan rekomendasi berikut:
Kualitas model: Untuk memvisualisasikan dan melacak metrik eksperimen seperti akurasi dan untuk memvisualisasikan arsitektur model atau data pelatihan, gunakan TensorBoard. TensorBoard adalah rangkaian alat open source yang kompatibel dengan framework ML seperti berikut:
- XGBoost
- JAX
- Flax
- PyTorch
- Framework berbasis XLA di Cloud TPU untuk pelatihan Cloud TPU
- TensorFlow
Pelacakan eksperimen: Experiments di Gemini Enterprise Agent Platform terintegrasi dengan instance Agent Platform TensorBoard terkelola tingkat perusahaan untuk mendukung pelacakan eksperimen. Integrasi ini memungkinkan penyimpanan dan berbagi log serta metrik yang andal. Agar beberapa tim dan individu dapat melacak eksperimen, sebaiknya gunakan prinsip hak istimewa terendah.
Efisiensi pelatihan dan eksperimen: Agent Platform mengekspor metrik ke Monitoring dan mengumpulkan data telemetri serta log menggunakan agen kemampuan observasi. Anda dapat memvisualisasikan metrik di konsol Google Cloud . Atau, buat dasbor atau pemberitahuan berdasarkan metrik ini menggunakan Monitoring. Untuk mengetahui informasi selengkapnya, lihat Memantau metrik untuk Agent Platform.
GPU NVIDIA: Agen Operasional memungkinkan pemantauan GPU untuk Compute Engine dan untuk produk lain yang didukung Agen Operasional. Anda juga dapat menggunakan NVIDIA Data Center GPU Manager (DCGM), yang merupakan rangkaian alat untuk mengelola dan memantau GPU NVIDIA di lingkungan cluster. Pemantauan GPU NVIDIA sangat berguna untuk melatih dan menyajikan model deep learning.
Proses debug mendalam: Untuk men-debug masalah terkait kode pelatihan atau konfigurasi tugas Pelatihan Terkelola Gemini Enterprise Agent Platform, Anda dapat memeriksa container pelatihan menggunakan sesi shell interaktif.
Pemantauan selama inferensi: Prediksi streaming
Setelah melatih model dan mengekspornya ke Model Registry di Gemini Enterprise Agent Platform, Anda dapat membuat endpoint Agent Platform. Endpoint ini menyediakan endpoint HTTP untuk model.
Model Monitoring di Agent Platform membantu Anda mengidentifikasi perubahan besar dalam distribusi fitur input atau output. Anda juga dapat memantau atribusi fitur dalam produksi jika dibandingkan dengan distribusi dasar pengukuran. Distribusi dasar pengukuran dapat berupa set pelatihan atau dapat didasarkan pada distribusi traffic produksi sebelumnya. Perubahan dalam distribusi inferensi mungkin menyiratkan penurunan performa prediktif dibandingkan dengan pelatihan.
- Memilih tujuan pemantauan: Bergantung pada sensitivitas kasus penggunaan terhadap perubahan data yang diberikan ke model, Anda dapat memantau berbagai jenis tujuan: pergeseran fitur input, pergeseran output, dan atribusi fitur. Model Monitoring di Agent Platform v2 memungkinkan Anda memantau model yang di-deploy di platform penyajian terkelola seperti Agent Platform dan juga di layanan yang dihosting sendiri seperti Google Kubernetes Engine (GKE). Selain itu, untuk pelacakan performa yang terperinci, Anda dapat memantau parameter di tingkat model, bukan untuk endpoint.
- Memantau penyajian model AI generatif: Untuk memastikan stabilitas dan meminimalkan latensi, terutama untuk endpoint LLM, siapkan stack pemantauan yang andal. Model Gemini menyediakan metrik bawaan, seperti waktu hingga token pertama (TTFT), yang dapat Anda akses langsung di Metrics Explorer. Untuk memantau throughput, latensi, dan tingkat error di semua modelGoogle Cloud , gunakan dasbor kemampuan observasi model.
Pemantauan selama inferensi: Prediksi batch
Untuk memantau prediksi batch, Anda dapat menjalankan tugas evaluasi standar di layanan evaluasi Agent Platform. Pemantauan Model di Agent Platform mendukung pemantauan inferensi batch. Jika menggunakan Batch untuk menjalankan workload inferensi, Anda dapat memantau konsumsi resource menggunakan metrik di Metrics Explorer.
Mengotomatiskan evaluasi untuk reproduksibilitas dan standardisasi
Untuk mentransisikan model dari prototipe ke sistem produksi yang andal, Anda memerlukan proses evaluasi yang terstandardisasi. Proses ini membantu Anda melacak progres di berbagai iterasi, membandingkan berbagai model, mendeteksi dan memitigasi bias, serta memastikan bahwa Anda memenuhi persyaratan peraturan. Untuk memastikan reproduksibilitas dan skalabilitas, Anda harus mengotomatiskan proses evaluasi.
Untuk menstandarkan dan mengotomatiskan proses evaluasi performa ML, selesaikan langkah-langkah berikut:
- Tentukan indikator kuantitatif dan kualitatif.
- Memilih sumber data dan teknik yang sesuai.
- Menstandarkan pipeline evaluasi.
Langkah-langkah ini dijelaskan di bagian berikut.
1. Menentukan indikator kuantitatif dan kualitatif
Metrik berbasis komputasi dihitung menggunakan formula numerik. Ingat bahwa metrik kerugian pelatihan mungkin berbeda dari metrik evaluasi yang relevan dengan sasaran bisnis. Misalnya, model yang digunakan untuk deteksi penipuan yang diawasi mungkin menggunakan kerugian entropi silang untuk pelatihan. Namun, untuk mengevaluasi performa inferensi, metrik yang lebih relevan mungkin adalah perolehan, yang menunjukkan cakupan transaksi penipuan. Agent Platform menyediakan layanan evaluasi untuk metrik seperti perolehan, presisi, dan area di bawah kurva presisi-perolehan (AuPRC). Untuk mengetahui informasi selengkapnya, lihat Evaluasi model di Agent Platform.
Indikator kualitatif, seperti kelancaran atau nilai hiburan dari konten yang dihasilkan, tidak dapat dihitung secara objektif. Untuk mengevaluasi indikator ini, Anda dapat menggunakan strategi LLM-as-a-judge atau layanan pelabelan manual seperti Labelbox.
2. Memilih sumber data dan teknik yang sesuai
Evaluasi signifikan secara statistik jika dijalankan pada volume minimum tertentu dari contoh yang bervariasi. Pilih set data dan teknik yang Anda gunakan untuk evaluasi dengan menggunakan pendekatan seperti berikut:
- Set data emas: Gunakan sampel data yang tepercaya, konsisten, dan akurat yang mencerminkan distribusi probabilitas model dalam produksi.
- LLM-as-a-judge: Mengevaluasi output model generatif menggunakan LLM. Pendekatan ini hanya relevan untuk tugas yang memungkinkan LLM mengevaluasi model.
- Masukan pengguna: Untuk memandu peningkatan di masa mendatang, dapatkan masukan pengguna langsung sebagai bagian dari traffic produksi.
Bergantung pada teknik evaluasi, ukuran dan jenis data evaluasi, serta frekuensi evaluasi, Anda dapat menggunakan BigQuery atau Cloud Storage sebagai sumber data, termasuk untuk layanan evaluasi Agent Platform.
- BigQuery memungkinkan Anda menggunakan perintah SQL untuk menjalankan tugas inferensi seperti natural language processing dan terjemahan mesin. Untuk mengetahui informasi selengkapnya, lihat Ringkasan solusi khusus tugas.
- Cloud Storage menyediakan solusi penyimpanan yang hemat biaya untuk set data besar.
3. Menstandarkan pipeline evaluasi
Untuk mengotomatiskan proses evaluasi, pertimbangkan layanan dan alat berikut:
- Layanan evaluasi Agent Platform: Menyediakan primitif siap pakai untuk melacak performa model sebagai bagian dari siklus proses ML di Agent Platform.
- Layanan evaluasi AI generatif: Memungkinkan Anda mengevaluasi model atau aplikasi generatif apa pun dan membandingkan hasil evaluasi dengan penilaian dan kriteria evaluasi Anda sendiri. Layanan ini juga membantu Anda melakukan tugas khusus seperti rekayasa perintah, retrieval-augmented generation (RAG), dan pengoptimalan agen AI.
- Alat automatic side-by-side (AutoSxS) Agent Platform: Mendukung evaluasi berbasis model berpasangan.
- Kubeflow: Menyediakan komponen khusus untuk menjalankan evaluasi model.
Menjalankan dan melacak eksperimen yang sering dilakukan
Untuk mengoptimalkan performa ML secara efektif, Anda memerlukan platform khusus, canggih, dan interaktif untuk eksperimen. Platform harus memiliki kemampuan berikut:
- Memfasilitasi pengembangan iteratif, sehingga tim dapat beralih dari ide ke hasil yang divalidasi dengan kecepatan, keandalan, dan skala.
- Memungkinkan tim menemukan konfigurasi optimal secara efisien yang dapat mereka gunakan untuk memicu tugas pelatihan.
- Memberikan akses terkontrol ke data, fitur, dan alat yang relevan untuk melakukan dan melacak eksperimen.
- Mendukung reproduksibilitas dan pelacakan silsilah data.
Memperlakukan data sebagai layanan
Isolasi workload eksperimental dari sistem produksi dan siapkan kontrol keamanan yang sesuai untuk aset data Anda menggunakan teknik berikut:
| Teknik | Deskripsi | Manfaat |
|---|---|---|
| Isolasi resource | Isolasi resource untuk lingkungan yang berbeda
dalam project Google Cloud terpisah. Misalnya, sediakan resource untuk lingkungan pengembangan, staging, dan produksi dalam project terpisah seperti ml-dev, ml-staging, dan ml-prod. |
Isolasi resource membantu mencegah workload eksperimental menggunakan resource yang diperlukan sistem produksi. Misalnya, jika Anda menggunakan satu project untuk eksperimen dan produksi, eksperimen tersebut mungkin menggunakan semua GPU NVIDIA A100 yang tersedia untuk Pelatihan Terkelola Agent Platform. Hal ini dapat menyebabkan gangguan dalam pelatihan ulang model produksi yang penting. |
| Kontrol akses dan identitas | Terapkan prinsip
zero trust dan hak istimewa terendah serta
gunakan akun layanan khusus workload. Berikan akses menggunakan
peran Identity and Access Management (IAM) yang telah ditetapkan seperti
Agent Platform User
(roles/aiplatform.user). |
Pendekatan ini membantu mencegah tindakan yang tidak disengaja atau berbahaya yang dapat merusak eksperimen. |
| Keamanan jaringan | Isolasi traffic jaringan menggunakan jaringan Virtual Private Cloud (VPC) dan terapkan perimeter keamanan menggunakan Kontrol Layanan VPC. | Pendekatan ini membantu melindungi data sensitif dan mencegah traffic eksperimental memengaruhi layanan produksi. |
| Isolasi data | Simpan data eksperimental di bucket Cloud Storage dan set data BigQuery yang terpisah. | Isolasi data mencegah modifikasi data produksi yang tidak disengaja. Misalnya, tanpa isolasi data, eksperimen mungkin secara tidak sengaja mengubah nilai fitur dalam tabel BigQuery bersama, yang dapat menyebabkan penurunan akurasi model yang signifikan di lingkungan produksi. |
Membekali tim dengan alat yang sesuai
Untuk membuat serangkaian alat yang diseleksi guna mempercepat seluruh siklus proses eksperimen—mulai dari eksplorasi data hingga pelatihan dan analisis model—gunakan teknik berikut:
- Pembuatan prototipe interaktif: Untuk eksplorasi data, pengujian hipotesis, dan pembuatan prototipe kode yang cepat, gunakan Colab Enterprise atau instance JupyterLab terkelola di Gemini Enterprise Agent Platform Workbench. Untuk mengetahui informasi selengkapnya, lihat Memilih solusi notebook.
- Pelatihan model yang skalabel: Jalankan tugas pelatihan di layanan terkelola yang mendukung pelatihan terdistribusi dan resource komputasi yang skalabel seperti GPU dan Cloud TPU. Pendekatan ini membantu mengurangi waktu pelatihan dari berhari-hari menjadi berjam-jam dan memungkinkan lebih banyak eksperimen paralel. Untuk mengetahui informasi selengkapnya, lihat Menggunakan komponen khusus untuk pelatihan.
- ML dalam database: Latih model langsung di BigQuery ML menggunakan SQL. Teknik ini membantu menghilangkan pemindahan data dan mempercepat eksperimen bagi analis dan pengguna yang berfokus pada SQL.
- Melacak eksperimen: Buat histori data eksperimen yang dapat ditelusuri dan dibandingkan dengan mencatat parameter, metrik, dan artefak untuk setiap operasi eksperimen. Untuk mengetahui informasi selengkapnya, lihat Membangun sistem silsilah data dan model.
- Mengoptimalkan AI generatif: Untuk mengoptimalkan performa aplikasi AI generatif, Anda harus bereksperimen dengan perintah, pemilihan model, dan penyesuaian. Untuk rekayasa perintah yang cepat, gunakan Agent Studio di Gemini Enterprise Agent Platform. Untuk bereksperimen dengan model dasar (seperti Gemini) dan menemukan model yang sesuai dengan kasus penggunaan dan sasaran bisnis Anda, gunakan Model Garden.
Standardisasi untuk kemampuan reproduksi dan efisiensi
Untuk memastikan eksperimen menggunakan resource secara efisien dan menghasilkan hasil yang konsisten dan dapat dipercaya, standarkan dan otomatiskan eksperimen menggunakan pendekatan berikut:
- Pastikan lingkungan yang konsisten dengan menggunakan container: Kemas kode pelatihan dan dependensi Anda sebagai container Docker. Kelola dan sajikan container menggunakan Artifact Registry. Dengan pendekatan ini, Anda dapat mereproduksi masalah di berbagai mesin dengan mengulangi eksperimen di lingkungan yang sama. Agent Platform menyediakan container bawaan untuk pelatihan serverless.
- Mengotomatiskan alur kerja ML sebagai pipeline: Mengorkestrasi alur kerja ML end-to-end sebagai pipeline yang dikodifikasi menggunakan Gemini Enterprise Agent Platform Pipelines. Pendekatan ini membantu menerapkan konsistensi, memastikan reproduksibilitas, dan melacak semua artefak dan metadata secara otomatis di Agent Platform ML Metadata.
- Otomatiskan penyediaan dengan infrastructure-as-code (IaC): Tentukan dan deploy lingkungan eksperimen standar menggunakan alat IaC seperti Terraform. Untuk memastikan setiap project mematuhi serangkaian konfigurasi standar untuk keamanan, jaringan, dan tata kelola, gunakan modul Terraform.
Membangun dan mengotomatiskan infrastruktur pelatihan dan inferensi
Untuk melatih dan menyajikan model AI, siapkan platform yang tangguh yang mendukung pengembangan, deployment, dan inferensi yang efisien serta andal. Platform ini memungkinkan tim Anda meningkatkan kualitas dan performa pelatihan serta inferensi secara efisien dalam jangka panjang.
Menggunakan komponen khusus untuk pelatihan
Platform pelatihan yang andal membantu mempercepat performa dan memberikan pendekatan standar untuk mengotomatiskan tugas yang dapat diulang dalam siklus proses ML–mulai dari persiapan data hingga validasi model.
Pengumpulan dan persiapan data
Untuk pelatihan model yang efektif, Anda perlu mengumpulkan dan menyiapkan data yang diperlukan untuk pelatihan, pengujian, dan validasi. Data mungkin berasal dari berbagai sumber dan memiliki jenis data yang berbeda. Anda juga perlu menggunakan kembali data yang relevan di seluruh operasi pelatihan dan membagikan fitur ke seluruh tim. Untuk meningkatkan pengulangan fase pengumpulan dan persiapan data, pertimbangkan rekomendasi berikut:
- Tingkatkan visibilitas data dengan Knowledge Catalog.
- Pusatkan rekayasa fitur di Agent Platform Feature Store.
- Melakukan pra-pemrosesan data menggunakan Dataflow.
Eksekusi pelatihan
Saat melatih model, Anda menggunakan data untuk membuat objek model. Untuk melakukannya, Anda perlu menyiapkan infrastruktur dan dependensi yang diperlukan dari kode pelatihan. Anda juga perlu memutuskan cara mempertahankan model pelatihan, melacak progres pelatihan, mengevaluasi model, dan menyajikan hasilnya. Untuk meningkatkan pengulangan pelatihan, pertimbangkan rekomendasi berikut:
- Ikuti panduan dalam Mengotomatiskan evaluasi untuk reproduksibilitas dan standardisasi.
- Untuk mengirimkan tugas pelatihan pada satu atau beberapa worker node tanpa mengelola
penyediaan infrastruktur atau dependensi yang mendasarinya, gunakan
resource
CustomJobdi Pelatihan Terkelola Agent Platform. Anda juga dapat menggunakan resourceCustomJobuntuk tugas penyesuaian hyperparameter. - Optimalkan goodput penjadwalan dengan menggunakan Dynamic Workload Scheduler atau pemesanan untuk Agent Platform Managed Training.
- Daftarkan model Anda ke Model Registry.
Orkestrasi pelatihan
Men-deploy workload pelatihan sebagai tahap pipeline menggunakan Agent Platform Pipelines. Layanan ini menyediakan layanan Kubeflow dan TFX terkelola. Tentukan setiap langkah pipeline sebagai komponen yang berjalan dalam container. Setiap komponen berfungsi seperti fungsi, dengan parameter input dan artefak output yang menjadi input untuk komponen berikutnya dalam pipeline. Untuk mengoptimalkan efisiensi pipeline, pertimbangkan rekomendasi berikut:
- Menerapkan otomatisasi inti:
- Gunakan komponen Kubeflow Pipelines.
- Gunakan Alur Kontrol untuk desain pipeline lanjutan, seperti gerbang bersyarat.
- Integrasikan kompilasi pipeline sebagai bagian dari alur CI/CD Anda.
- Jalankan pipeline dengan Cloud Scheduler.
- Meningkatkan kecepatan dan efisiensi biaya:
- Untuk meningkatkan kecepatan iterasi dan mengurangi biaya, gunakan cache eksekusi Pipeline Agent Platform.
- Tentukan konfigurasi mesin untuk setiap komponen berdasarkan persyaratan resource setiap langkah.
- Meningkatkan ketahanan:
- Untuk meningkatkan ketahanan terhadap masalah sementara tanpa memerlukan intervensi manual, konfigurasikan percobaan ulang.
- Untuk gagal dengan cepat dan melakukan iterasi secara efisien, konfigurasikan kebijakan kegagalan.
- Untuk menangani kegagalan, konfigurasikan notifikasi email.
- Menerapkan tata kelola dan pelacakan:
- Untuk bereksperimen dengan berbagai konfigurasi model atau konfigurasi pelatihan, tambahkan operasi pipeline ke eksperimen.
- Pantau log dan metrik untuk Pipeline Agent Platform.
- Ikuti rekomendasi di Memantau performa di semua tahap siklus proses model.
Menggunakan infrastruktur khusus untuk prediksi
Untuk mengurangi toil dalam mengelola infrastruktur dan deployment model, otomatiskan alur tugas yang berulang. Pendekatan berorientasi layanan memungkinkan Anda berfokus pada kecepatan dan waktu tercapainya nilai (TTV) yang lebih cepat. Pertimbangkan rekomendasi berikut.
Menerapkan deployment otomatis
- Setelah model dilatih, gunakan otomatisasi untuk men-deploy model. Agent Platform Pipelines menyediakan komponen khusus untuk men-deploy model ke endpoint Agent Platform. Anda dapat mengelola deployment otomatis menggunakan Kubeflow Control Flows.
- Untuk memutuskan apakah akan men-deploy model berdasarkan evaluasi terhadap set validasi, manfaatkan komponen evaluasi pipeline. Anda dapat mengotomatiskan deployment untuk inferensi batch menggunakan komponen prediksi batch khusus di Agent Platform.
Memanfaatkan fitur penskalaan terkelola
- Agent Platform menyediakan kapabilitas inferensi batch dan inferensi online yang memungkinkan Anda mengonfigurasi perilaku penskalaan.
- Cloud Run mendukung penskalaan otomatis GPU.
Mengoptimalkan latensi dan throughput di endpoint Agent Platform
- Pilih jenis mesin yang sesuai.
- Pilih jenis endpoint yang sesuai untuk model Anda. Endpoint pribadi khusus dapat membantu mengurangi latensi.
- Jika Anda menggunakan Feature Store, gunakan penyajian online Bigtable untuk menyajikan nilai fitur dengan throughput tinggi dan latensi rendah, serta gunakan Penelusuran Vektor untuk menyajikan embedding.
Mengoptimalkan pemanfaatan resource
- Untuk mengoptimalkan pemanfaatan resource, Anda dapat berbagi resource di seluruh deployment model. Alih-alih menggunakan VM terpisah untuk setiap model (perilaku default), Anda dapat men-deploy beberapa model di satu VM.
- Untuk memastikan atau mengoptimalkan ketersediaan resource, gunakan pemesanan, Dynamic Workload Scheduler, atau Spot VM.
Mengoptimalkan deployment model
- Untuk menghindari perubahan yang dapat menyebabkan gangguan, Anda dapat melakukan migrasi bertahap dan menerapkan pengujian A/B dengan men-deploy beberapa model ke endpoint yang sama secara otomatis. Agent Platform memisahkan lapisan endpoint dari model, sehingga Anda dapat membagi traffic antar-versi model.
- Untuk mengganti model yang di-deploy, gunakan strategi deployment berkelanjutan.
Memantau performa
Untuk meningkatkan performa inferensi dalam produksi, amati log dan metrik inferensi untuk endpoint Agent Platform. Untuk memahami perilaku model dalam produksi, Anda memerlukan alat untuk memantau kualitas dan performa. Model Monitoring di Agent Platform v2 memungkinkan Anda memantau beberapa versi model dan melakukan iterasi dengan cepat.
Menyesuaikan pilihan desain dengan persyaratan performa
Saat membuat pilihan desain untuk meningkatkan performa, nilai apakah pilihan tersebut mendukung persyaratan bisnis Anda atau sia-sia dan kontraproduktif. Untuk memilih infrastruktur, model, dan konfigurasi yang sesuai, identifikasi bottleneck performa dan nilai hubungannya dengan metrik performa. Misalnya, bahkan pada akselerator GPU yang sangat kuat, tugas pelatihan dapat mengalami bottleneck performa. Bottleneck ini dapat disebabkan oleh masalah I/O data di lapisan penyimpanan atau oleh batasan performa model.
Fokus pada performa holistik alur ML
Seiring dengan meningkatnya persyaratan pelatihan dalam hal ukuran model dan ukuran cluster, tingkat kegagalan dan biaya infrastruktur mungkin akan meningkat. Oleh karena itu, biaya kegagalan mungkin meningkat secara kuadrat. Anda tidak dapat hanya mengandalkan metrik efisiensi resource konvensional seperti model FLOPs utilization (MFU). Untuk memahami alasan MFU mungkin bukan indikator yang memadai untuk performa pelatihan secara keseluruhan, periksa siklus proses tugas pelatihan umum. Siklus proses terdiri dari alur siklus berikut:
- Pembuatan cluster: Worker node disediakan.
- Inisialisasi: Pelatihan diinisialisasi pada worker node.
- Eksekusi pelatihan: Resource digunakan untuk propagasi maju atau mundur.
- Interupsi: Proses pelatihan terganggu selama pembuatan checkpoint model atau karena preemption worker node.
Setelah setiap gangguan, alur sebelumnya akan diulang.
Langkah eksekusi pelatihan merupakan bagian dari siklus proses tugas ML. Oleh karena itu, pemakaian worker node untuk langkah eksekusi pelatihan tidak menunjukkan efisiensi tugas secara keseluruhan. Misalnya, meskipun langkah eksekusi pelatihan berjalan dengan efisiensi 100%, efisiensi keseluruhan mungkin rendah jika gangguan sering terjadi atau jika perlu waktu lama untuk melanjutkan pelatihan setelah gangguan.
Mengadopsi dan melacak metrik goodput
Untuk memastikan pengukuran dan pengoptimalan performa yang menyeluruh, alihkan fokus Anda dari metrik efisiensi resource konvensional seperti MFU ke goodput. Goodput mempertimbangkan ketersediaan dan pemanfaatan cluster dan resource komputasi Anda, serta membantu mengukur efisiensi resource di beberapa lapisan.
Fokus metrik goodput adalah progres keseluruhan tugas, bukan apakah tugas tampaknya sibuk. Metrik goodput membantu Anda mengoptimalkan tugas pelatihan untuk mendapatkan peningkatan nyata dalam produktivitas dan performa secara keseluruhan.
Goodput memberi Anda pemahaman terperinci tentang potensi penurunan efisiensi melalui metrik berikut:
- Scheduling goodput adalah proporsi waktu ketika semua resource yang diperlukan untuk pelatihan atau inferensi tersedia untuk digunakan.
- Runtime goodput menunjukkan proporsi langkah pelatihan yang benar-benar bermanfaat yang berhasil diselesaikan dalam periode waktu tertentu.
- Program goodput adalah performa hardware puncak atau MFU yang dapat diekstrak oleh tugas pelatihan dari akselerator. Hal ini bergantung pada pemanfaatan resource komputasi yang mendasarinya secara efisien selama pelatihan.
Mengoptimalkan goodput penjadwalan
Untuk mengoptimalkan goodput penjadwalan untuk workload, Anda harus mengidentifikasi persyaratan infrastruktur spesifik dari workload tersebut. Misalnya, inferensi batch, inferensi streaming, dan pelatihan memiliki persyaratan yang berbeda:
- Workload inferensi batch mungkin mengakomodasi beberapa gangguan dan penundaan dalam ketersediaan resource.
- Workload inferensi streaming memerlukan infrastruktur stateless.
- Workload pelatihan memerlukan komitmen infrastruktur jangka panjang.
Memilih mode perolehan yang sesuai
Dalam cloud computing, ketersediaan adalah kemampuan untuk menyediakan resource saat diperlukan. Google Cloud menyediakan mode ketersediaan berikut:
- VM on-demand: Anda menyediakan VM Compute Engine saat diperlukan dan menjalankan workload di VM tersebut. Permintaan penyediaan tunduk pada ketersediaan resource, seperti GPU. Jika jumlah jenis resource yang diminta tidak mencukupi, permintaan akan gagal.
- Spot VM: Anda membuat VM menggunakan kapasitas komputasi yang tidak terpakai. Spot VM ditagih dengan harga diskon jika dibandingkan dengan VM on-demand, tetapiGoogle Cloud mungkin akan melakukan preemption pada Spot VM kapan saja. Sebaiknya gunakan Spot VM untuk workload stateless yang dapat gagal dengan baik saat VM host di-preempt.
- Pemesanan: Anda memesan kapasitas sebagai kumpulan VM. Pemesanan ideal untuk workload yang memerlukan jaminan kapasitas. Gunakan pemesanan untuk memaksimalkan scheduling goodput dengan memastikan resource tersedia saat diperlukan.
Dynamic Workload Scheduler: Mekanisme penyediaan ini mengantrekan permintaan untuk VM yang didukung GPU di kumpulan khusus. Dynamic Workload Scheduler membantu Anda menghindari batasan mode ketersediaan lainnya:
- Situasi kehabisan stok dalam mode on-demand.
- Batasan statelessness dan risiko preemption Spot VM.
- Implikasi biaya dan ketersediaan pemesanan.
Tabel berikut merangkum mode perolehan untuk layanan Google Cloud dan menyediakan link ke dokumentasi yang relevan:
| Produk | VM on-demand | Spot VM | Reservasi | Dynamic Workload Scheduler |
|---|---|---|---|---|
| Compute Engine | Membuat dan memulai instance Compute Engine | Tentang Spot VM | Tentang reservasi | Membuat MIG dengan VM GPU |
| GKE | Menambahkan dan mengelola node pool | Tentang Spot VM di GKE | Menggunakan resource zona yang dicadangkan | Konsumsi GPU, Cloud TPU, dan H4D dengan penyediaan flex-start |
| Batch | Membuat dan menjalankan tugas | Tugas batch dengan Spot VM | Memastikan ketersediaan resource menggunakan pemesanan VM | Menggunakan GPU dan VM flex-start |
| Pelatihan Terkelola Agent Platform | Membuat tugas pelatihan serverless | Menggunakan Spot VM untuk tugas pelatihan | Menggunakan pemesanan untuk tugas pelatihan | Menjadwalkan tugas pelatihan berdasarkan ketersediaan resource |
| Agent Platform | Mendapatkan inferensi batch dan inferensi online dari model yang dilatih khusus. | Menggunakan Spot VM untuk inferensi | Menggunakan pemesanan untuk inferensi online | Menggunakan VM flex-start untuk inferensi |
Merencanakan peristiwa pemeliharaan
Anda dapat meningkatkan goodput penjadwalan dengan mengantisipasi dan merencanakan pemeliharaan dan upgrade infrastruktur.
GKE memungkinkan Anda mengontrol kapan pemeliharaan cluster otomatis dapat dilakukan di cluster Anda. Untuk mengetahui informasi selengkapnya, lihat Masa pemeliharaan dan pengecualian pemeliharaan.
Compute Engine menyediakan kemampuan berikut:
- Agar instance tetap berjalan selama peristiwa host, seperti pemeliharaan terencana untuk hardware yang mendasarinya, Compute Engine melakukan migrasi langsung instance ke host lain di zona yang sama. Untuk mengetahui informasi selengkapnya, lihat Proses migrasi langsung selama peristiwa pemeliharaan.
- Untuk mengontrol cara instance merespons saat host yang mendasarinya memerlukan pemeliharaan atau mengalami error, Anda dapat menetapkan kebijakan pemeliharaan host untuk instance tersebut.
Untuk mengetahui informasi tentang cara merencanakan peristiwa host yang terkait dengan cluster pelatihan besar di AI Hypercomputer, lihat Mengelola peristiwa host di seluruh instance komputasi.
Mengoptimalkan goodput runtime
Proses pelatihan model sering kali terganggu oleh peristiwa seperti checkpoint model dan preemption resource. Untuk mengoptimalkan runtime goodput, Anda harus memastikan bahwa sistem melanjutkan pelatihan dan inferensi secara efisien setelah infrastruktur yang diperlukan siap dan setelah terjadi gangguan.
Selama pelatihan model, peneliti AI menggunakan checkpointing untuk melacak progres dan meminimalkan kehilangan pembelajaran akibat preemption resource. Ukuran model yang lebih besar membuat interupsi checkpointing lebih lama, yang selanjutnya memengaruhi efisiensi secara keseluruhan. Setelah gangguan, aplikasi pelatihan harus dimulai ulang di setiap node dalam cluster. Mulai ulang ini dapat memerlukan waktu beberapa saat karena artefak yang diperlukan harus dimuat ulang.
Untuk mengoptimalkan goodput runtime, gunakan teknik berikut:
| Teknik | Deskripsi |
|---|---|
| Menerapkan checkpointing otomatis. | Checkpointing yang sering memungkinkan Anda melacak progres pelatihan pada tingkat yang terperinci. Namun, proses pelatihan terganggu untuk setiap checkpoint, yang mengurangi goodput runtime. Untuk meminimalkan gangguan, Anda dapat menyiapkan checkpoint otomatis, dengan sinyal SIGTERM host memicu pembuatan checkpoint. Pendekatan ini membatasi gangguan checkpointing hanya saat host memerlukan pemeliharaan. Ingat bahwa beberapa kegagalan hardware mungkin tidak memicu sinyal SIGTERM; oleh karena itu, Anda harus menemukan keseimbangan yang sesuai antara checkpoint otomatis dan peristiwa SIGTERM. Anda dapat menyiapkan checkpoint otomatis menggunakan teknik berikut:
|
| Gunakan strategi pemuatan container yang sesuai. | Dalam cluster GKE, sebelum node dapat melanjutkan tugas pelatihan, mungkin perlu waktu beberapa saat untuk menyelesaikan pemuatan artefak yang diperlukan seperti data atau checkpoint model. Untuk mengurangi waktu yang diperlukan untuk memuat ulang data dan melanjutkan pelatihan, gunakan teknik berikut:
|
| Gunakan cache kompilasi. | Jika pelatihan memerlukan stack berbasis kompilasi, periksa apakah Anda dapat menggunakan cache kompilasi. Saat Anda menggunakan cache kompilasi, grafik komputasi tidak akan dikompilasi ulang setelah setiap gangguan pelatihan. Pengurangan waktu dan biaya yang dihasilkan sangat bermanfaat saat Anda menggunakan Cloud TPU. JAX memungkinkan Anda menyimpan cache kompilasi di bucket Cloud Storage, lalu menggunakan data yang di-cache jika terjadi gangguan. |
Mengoptimalkan goodput program
Program goodput menunjukkan pemanfaatan resource puncak selama pelatihan, yang merupakan cara konvensional untuk mengukur efisiensi pelatihan dan inferensi. Untuk meningkatkan goodput program, Anda memerlukan strategi distribusi yang dioptimalkan, tumpang tindih komputasi-komunikasi yang efisien, akses memori yang dioptimalkan, dan pipeline yang efisien.
Untuk mengoptimalkan goodput program, gunakan strategi berikut:
| Strategi | Deskripsi |
|---|---|
| Gunakan opsi penyesuaian tingkat framework. | Framework atau compiler seperti Accelerated Linear Algebra (XLA) menyediakan banyak komponen utama program goodput. Untuk lebih mengoptimalkan performa, Anda dapat menyesuaikan komponen dasar grafik komputasi. Misalnya, Pallas mendukung kernel kustom untuk Cloud TPU dan GPU. |
| Memindahkan memori ke DRAM host. | Untuk pelatihan berskala besar, yang memerlukan memori yang sangat tinggi dari akselerator, Anda dapat mengalihkan sebagian penggunaan memori ke DRAM host. Misalnya, JAX dan XLA memungkinkan Anda memindahkan aktivasi model dari penerusan maju ke memori host, bukan menggunakan memori akselerator. Dengan strategi ini, Anda dapat meningkatkan performa pelatihan dengan meningkatkan kapasitas model atau ukuran batch. |
| Manfaatkan kuantisasi selama pelatihan. | Anda dapat meningkatkan efisiensi pelatihan dan goodput program dengan memanfaatkan kuantisasi model selama pelatihan. Strategi ini mengurangi presisi gradien atau bobot selama langkah-langkah tertentu dalam pelatihan; sehingga meningkatkan goodput program. Namun, strategi ini mungkin memerlukan upaya engineering tambahan selama pengembangan model. Untuk informasi selengkapnya, lihat referensi berikut: |
| Menerapkan paralelisme. | Untuk meningkatkan pemanfaatan resource komputasi yang tersedia, Anda dapat menggunakan strategi paralelisme di tingkat model selama pelatihan dan saat memuat data. Untuk mengetahui informasi tentang paralelisme model, lihat referensi berikut:
Untuk mencapai paralelisme data, Anda dapat menggunakan alat seperti berikut:
|
Fokus pada persyaratan khusus workload
Untuk memastikan upaya pengoptimalan performa Anda efektif dan menyeluruh, Anda harus mencocokkan keputusan pengoptimalan dengan persyaratan spesifik workload pelatihan dan inferensi Anda. Memilih model AI yang sesuai dan menggunakan strategi pengoptimalan perintah yang relevan. Pilih framework dan alat yang sesuai berdasarkan persyaratan workload Anda.
Mengidentifikasi persyaratan khusus workload
Evaluasi persyaratan dan batasan workload Anda di seluruh area berikut:
| Area | Deskripsi |
|---|---|
| Persyaratan tugas dan kualitas | Tentukan tugas inti workload dan dasar pengukuran performa. Jawab pertanyaan seperti berikut:
|
| Konteks penayangan | Analisis lingkungan operasional tempat Anda berencana men-deploy model. Konteks inferensi sering kali berdampak signifikan pada keputusan desain. Pertimbangkan faktor-faktor berikut:
|
| Keterampilan dan ekonomi tim | Menilai nilai bisnis dari membeli solusi dibandingkan dengan biaya dan kompleksitas membangun dan memeliharanya. Tentukan apakah tim Anda memiliki keterampilan khusus yang diperlukan untuk pengembangan model kustom atau apakah layanan terkelola dapat memberikan waktu yang lebih cepat untuk mendapatkan nilai. |
Memilih model yang sesuai
Jika API atau model terbuka dapat memberikan performa dan kualitas yang diperlukan, gunakan API atau model tersebut.
Untuk tugas khusus modalitas seperti pengenalan karakter optik (OCR), pelabelan, dan moderasi konten, pilih ML API seperti berikut:
Untuk aplikasi AI generatif, pertimbangkan model Google seperti Gemini, Imagen, dan Veo.
Jelajahi Model Garden dan pilih dari koleksi pilihan model Google dasar dan khusus tugas. Model Garden juga menyediakan model terbuka seperti Gemma dan model pihak ketiga, yang dapat Anda jalankan di Agent Platform atau deploy di runtime seperti GKE.
Jika tugas dapat diselesaikan menggunakan ML API atau model AI generatif, pertimbangkan kompleksitas tugas tersebut. Untuk tugas yang kompleks, model besar seperti Gemini mungkin memberikan performa yang lebih tinggi daripada model yang lebih kecil.
Meningkatkan kualitas melalui perintah yang lebih baik
Untuk meningkatkan kualitas perintah dalam skala besar, gunakan pengoptimal perintah Agent Platform. Anda tidak perlu menulis ulang petunjuk dan perintah sistem secara manual. Pengoptimal perintah mendukung pendekatan berikut:
- Pengoptimalan zero-shot: Pendekatan latensi rendah yang meningkatkan satu perintah atau petunjuk sistem secara real time.
- Pengoptimalan berbasis data: Pendekatan lanjutan yang meningkatkan kualitas perintah dengan mengevaluasi respons model terhadap contoh perintah berdasarkan metrik evaluasi tertentu.
Untuk panduan pengoptimalan perintah lainnya, lihat Ringkasan strategi perintah.
Meningkatkan performa untuk endpoint ML dan AI generatif
Untuk meningkatkan latensi atau throughput (token per detik) untuk endpoint ML dan AI generatif, pertimbangkan rekomendasi berikut:
- Meng-cache hasil menggunakan Memorystore.
- Untuk API AI generatif, gunakan teknik berikut:
- Context caching: Mencapai latensi yang lebih rendah untuk permintaan yang berisi konten berulang.
- Throughput yang Disediakan: Tingkatkan throughput untuk endpoint Gemini dengan mencadangkan kapasitas throughput.
- Untuk model yang dihosting sendiri, pertimbangkan framework inferensi yang dioptimalkan berikut:
Framework Notebook dan panduan Penampung vLLM yang dioptimalkan di Model Garden Men-deploy model terbuka dengan container bawaan Inferensi berbasis GPU di GKE Inferensi berbasis Cloud TPU
Menggunakan solusi low-code dan penyesuaian
Jika model terlatih tidak memenuhi persyaratan, Anda dapat meningkatkan performanya untuk domain tertentu menggunakan solusi:
- AutoML adalah solusi low-code untuk meningkatkan hasil inferensi dengan upaya teknis minimal untuk berbagai tugas. AutoML memungkinkan Anda membuat model yang dioptimalkan pada beberapa dimensi: arsitektur, performa, dan tahap pelatihan (melalui checkpointing).
- Penyesuaian membantu Anda mencapai kualitas yang lebih tinggi, pembuatan yang lebih stabil, dan latensi yang lebih rendah dengan perintah yang lebih singkat dan tanpa banyak data. Sebaiknya Anda mulai menyesuaikan dengan menggunakan nilai default untuk hyperparameter. Untuk mengetahui informasi selengkapnya, lihat Tentang supervised fine-tuning untuk Gemini.
Mengoptimalkan pelatihan yang dikelola sendiri
Dalam beberapa kasus, Anda mungkin memutuskan untuk melatih ulang model atau mengelola tugas penyesuaian yang terkelola sepenuhnya. Pendekatan ini memerlukan keterampilan tingkat lanjut dan waktu tambahan, bergantung pada model, framework, dan resource yang Anda gunakan.
Manfaatkan opsi framework yang dioptimalkan untuk performa, seperti berikut:
Gunakan image atau container deep learning, yang menyertakan dependensi software terbaru dan library khususGoogle Cloud.
Jalankan pelatihan model dengan Ray di Google Cloud:
- Ray di Gemini Enterprise Agent Platform memungkinkan Anda menghadirkan framework pelatihan terdistribusi Ray ke Compute Engine atau GKE dan menyederhanakan overhead pengelolaan framework.
- Anda dapat mengelola sendiri Ray di GKE dengan KubeRay dengan men-deploy operator Ray di cluster yang ada.
Deploy workload pelatihan di cluster komputasi yang Anda sediakan menggunakan Cluster Toolkit open source. Untuk menyediakan cluster yang dioptimalkan performanya secara efisien, gunakan blueprint berbasis YAML. Kelola cluster menggunakan penjadwal seperti Slurm dan GKE.
Latih arsitektur model standar menggunakan resep yang dioptimalkan untuk GPU.
Bangun arsitektur dan strategi pelatihan yang mengoptimalkan performa menggunakan teknik berikut:
- Terapkan pelatihan terdistribusi di Agent Platform atau pada framework yang dijelaskan sebelumnya. Pelatihan terdistribusi memungkinkan paralelisme model dan paralelisme data, yang dapat membantu meningkatkan ukuran set data pelatihan dan ukuran model, serta membantu mengurangi waktu pelatihan.
- Untuk pelatihan model yang efisien dan untuk mempelajari berbagai konfigurasi performa, jalankan checkpointing pada interval yang sesuai. Untuk mengetahui informasi selengkapnya, lihat Mengoptimalkan goodput runtime.
Mengoptimalkan penyaluran yang dikelola sendiri
Untuk inferensi yang dikelola sendiri, Anda memerlukan operasi inferensi yang efisien dan throughput yang tinggi (jumlah inferensi per unit waktu).
Untuk mengoptimalkan model Anda untuk inferensi, pertimbangkan pendekatan berikut:
Kuantisasi: Kurangi ukuran model dengan merepresentasikan parameternya dalam format presisi yang lebih rendah. Pendekatan ini membantu mengurangi konsumsi memori dan latensi. Namun, kuantisasi setelah pelatihan mungkin mengubah kualitas model. Misalnya, kuantisasi setelah pelatihan dapat menyebabkan penurunan akurasi.
- Kuantisasi pasca-pelatihan (PTQ) adalah tugas yang dapat diulang. Framework ML utama seperti PyTorch dan TensorFlow mendukung PTQ.
- Anda dapat mengorkestrasi PTQ menggunakan pipeline di Agent Platform Pipelines.
- Untuk menstabilkan performa model dan mendapatkan manfaat dari pengurangan ukuran model, Anda dapat menggunakan Qwix.
Paralelisme tensor: Tingkatkan throughput inferensi dengan mendistribusikan beban komputasi ke beberapa GPU.
Pengoptimalan memori: Tingkatkan throughput dan optimalkan caching perhatian, ukuran batch, dan ukuran input.
Gunakan framework yang dioptimalkan untuk inferensi, seperti berikut:
- Untuk model generatif, gunakan framework terbuka seperti MaxText, MaxDiffusion, atau vLLM.
- Jalankan image container bawaan di Agent Platform untuk prediksi dan penjelasan. Jika Anda memilih TensorFlow, gunakan runtime TensorFlow yang dioptimalkan. Runtime ini memungkinkan inferensi yang lebih efisien dan lebih murah daripada container bawaan yang menggunakan TensorFlow open source.
- Jalankan inferensi multi-host menggunakan Pathways.
- Manfaatkan server inferensi NVIDIA Triton untuk Agent Platform.
- Menyederhanakan deployment workload inferensi di GKE menggunakan konfigurasi yang dioptimalkan untuk LLM. Untuk mengetahui informasi selengkapnya, lihat Menganalisis performa dan biaya penyajian model dengan Panduan Memulai Inferensi GKE.
Mengoptimalkan konsumsi resource berdasarkan sasaran performa
Pengoptimalan resource membantu mempercepat pelatihan, melakukan iterasi secara efisien, meningkatkan kualitas model, dan meningkatkan kapasitas inferensi.
Memilih jenis prosesor yang sesuai
Pilihan platform komputasi Anda dapat berdampak signifikan pada efisiensi pelatihan model.
- Model deep learning berperforma baik di GPU dan Cloud TPU karena model tersebut memerlukan memori dalam jumlah besar dan komputasi matriks paralel. Untuk mengetahui informasi selengkapnya tentang workload yang cocok untuk CPU, GPU, dan Cloud TPU, lihat Kapan harus menggunakan Cloud TPU.
- VM yang dioptimalkan untuk komputasi ideal untuk workload HPC.
Mengoptimalkan pelatihan dan inferensi di GPU
Untuk mengoptimalkan performa workload pelatihan dan inferensi yang di-deploy di GPU, pertimbangkan rekomendasi berikut:
| Rekomendasi | Deskripsi |
|---|---|
| Pilih spesifikasi memori yang sesuai. | Saat Anda memilih jenis mesin GPU, pilih spesifikasi memori berdasarkan faktor berikut:
|
| Menilai persyaratan bandwidth core dan memori. | Selain ukuran memori, pertimbangkan persyaratan lain seperti jumlah Tensor core dan bandwidth memori. Faktor-faktor ini memengaruhi kecepatan akses data dan komputasi pada chip. |
| Pilih jenis mesin GPU yang sesuai. | Pelatihan dan inferensi mungkin memerlukan jenis mesin GPU yang berbeda.
Sebaiknya gunakan jenis mesin besar untuk pelatihan dan jenis mesin yang lebih kecil dan hemat biaya untuk inferensi. Untuk mendeteksi masalah pemakaian resource, gunakan alat pemantauan seperti agen NVIDIA DCGM dan sesuaikan resource dengan tepat. |
| Memanfaatkan berbagi GPU di GKE. | Dalam beberapa kasus, mendedikasikan GPU penuh untuk satu container mungkin merupakan pendekatan yang tidak efisien. Untuk membantu Anda mengatasi inefisiensi ini, GKE mendukung strategi berbagi GPU berikut:
Untuk memaksimalkan pemanfaatan resource, sebaiknya gunakan kombinasi yang sesuai dari strategi ini. Misalnya, saat Anda memvirtualisasi GPU H100 besar menggunakan strategi GPU berbagi waktu dan GPU multi-instance, platform inferensi dapat melakukan penskalaan naik dan turun berdasarkan traffic. Resource GPU digunakan kembali secara real time berdasarkan beban pada container model. |
| Mengoptimalkan perutean dan load balancing. | Saat men-deploy beberapa model di cluster, Anda dapat menggunakan
GKE Inference Gateway
untuk perutean dan load balancing yang dioptimalkan. Inference Gateway memperluas
mekanisme pemilihan rute
Kubernetes Gateway API dengan
menggunakan kemampuan berikut:
|
| Berbagi resource untuk endpoint Agent Platform. | Anda dapat mengonfigurasi beberapa endpoint Agent Platform untuk menggunakan kumpulan resource yang sama. Untuk mengetahui informasi selengkapnya tentang fitur ini dan batasannya, lihat Berbagi resource di seluruh deployment. |
Mengoptimalkan pelatihan dan inferensi di Cloud TPU
Cloud TPU menyediakan chip Google yang membantu menyelesaikan tantangan skala besar untuk algoritma ML. Chip ini memberikan performa optimal untuk workload pelatihan dan inferensi AI. Jika dibandingkan dengan GPU, Cloud TPU memberikan efisiensi yang lebih tinggi untuk pelatihan dan inferensi deep learning. Untuk mengetahui informasi tentang kasus penggunaan yang sesuai untuk Cloud TPU, lihat Kapan harus menggunakan Cloud TPU. Cloud TPU kompatibel dengan framework ML seperti TensorFlow, PyTorch, dan JAX.
Untuk mengoptimalkan performa Cloud TPU, gunakan teknik berikut, yang dijelaskan dalam Panduan performa Cloud TPU:
- Maksimalkan ukuran batch untuk setiap unit memori Cloud TPU.
- Pastikan resource Cloud TPU tidak tidak ada aktivitas. Misalnya, menerapkan pembacaan data paralel.
- Mengoptimalkan compiler XLA. Sesuaikan dimensi tensor sesuai kebutuhan dan hindari padding. XLA otomatis mengoptimalkan performa eksekusi grafik dengan menggunakan alat seperti fusi dan penyiaran.
Mengoptimalkan pelatihan di Cloud TPU dan inferensi di GPU
Cloud TPU mendukung pelatihan yang efisien. GPU memberikan fleksibilitas dan ketersediaan yang lebih luas untuk workload inferensi. Untuk menggabungkan keunggulan Cloud TPU dan GPU, Anda dapat melatih model di Cloud TPU dan menyajikannya di GPU. Pendekatan ini dapat membantu mengurangi biaya keseluruhan dan mempercepat pengembangan, terutama untuk model besar. Untuk mengetahui informasi tentang lokasi ketersediaan jenis mesin Cloud TPU dan GPU, lihat Region dan zona Cloud TPU dan Lokasi GPU.
Mengoptimalkan lapisan penyimpanan
Lapisan penyimpanan infrastruktur pelatihan dan inferensi Anda sangat penting untuk performa. Tugas pelatihan dan workload inferensi melibatkan aktivitas terkait penyimpanan berikut:
- Memuat dan memproses data.
- Membuat checkpoint model selama pelatihan.
- Memuat ulang biner untuk melanjutkan pelatihan setelah preemption node.
- Memuat model secara efisien untuk menangani inferensi dalam skala besar.
Faktor-faktor berikut menentukan persyaratan Anda untuk kapasitas penyimpanan, bandwidth, dan latensi:
- Ukuran model
- Volume set data pelatihan
- Frekuensi checkpointing
- Pola penskalaan
Jika data pelatihan Anda berada di Cloud Storage, Anda dapat mengurangi latensi pemuatan data menggunakan caching file di Cloud Storage FUSE. Cloud Storage FUSE memungkinkan Anda memasang bucket Cloud Storage di node komputasi yang memiliki disk SSD Lokal. Untuk mengetahui informasi tentang cara meningkatkan performa Cloud Storage FUSE, lihat Praktik terbaik penyesuaian performa.
Konektor PyTorch ke Cloud Storage memberikan performa tinggi untuk pembacaan dan penulisan data. Konektor ini sangat bermanfaat untuk pelatihan dengan set data besar dan untuk membuat checkpoint model besar.
Compute Engine mendukung berbagai jenis Persistent Disk. Dengan Google Cloud Hyperdisk ML, Anda dapat menyediakan throughput dan IOPS yang diperlukan berdasarkan kebutuhan pelatihan. Untuk mengoptimalkan performa disk, mulailah dengan mengubah ukuran disk, lalu pertimbangkan untuk mengubah jenis mesin. Untuk mengetahui informasi selengkapnya, lihat Mengoptimalkan performa Persistent Disk. Untuk menguji beban performa dan latensi baca-tulis di lapisan penyimpanan, Anda dapat menggunakan alat seperti Flexible I/O tester (FIO).
Untuk mengetahui informasi selengkapnya tentang cara memilih dan mengoptimalkan layanan penyimpanan untuk workload AI dan ML Anda, lihat Ringkasan layanan penyimpanan untuk workload AI dan ML di AI Hypercomputer.
Mengoptimalkan lapisan jaringan
Untuk mengoptimalkan performa workload AI dan ML, konfigurasikan jaringan VPC Anda untuk menyediakan bandwidth yang memadai dan throughput maksimum dengan latensi minimum. Pertimbangkan rekomendasi berikut:
| Rekomendasi | Teknik yang disarankan untuk penerapan |
|---|---|
| Mengoptimalkan jaringan VPC. |
|
| Tempatkan VM lebih dekat satu sama lain. |
|
| Mengonfigurasi VM untuk mendukung kecepatan jaringan yang lebih tinggi. |
|
Menautkan metrik performa ke pilihan desain dan konfigurasi
Untuk berinovasi, memecahkan masalah, dan menyelidiki masalah performa, Anda harus menetapkan hubungan yang jelas antara pilihan desain dan hasil performa. Anda memerlukan data yang andal tentang silsilah aset ML, deployment, output model, serta konfigurasi dan input terkait yang menghasilkan output tersebut.
Membangun sistem silsilah data dan model
Untuk meningkatkan performa secara andal, Anda memerlukan kemampuan untuk melacak setiap versi model kembali ke data, kode, dan konfigurasi yang tepat yang digunakan untuk menghasilkan model. Saat Anda menskalakan model, pelacakan tersebut menjadi sulit. Anda memerlukan sistem silsilah yang mengotomatiskan proses pelacakan dan membuat catatan yang jelas dan dapat dikueri untuk setiap eksperimen. Sistem ini memungkinkan tim Anda mengidentifikasi dan mereproduksi pilihan yang menghasilkan model berperforma optimal secara efisien.
Untuk melihat dan menganalisis silsilah artefak pipeline untuk workload di Agent Platform, Anda dapat menggunakan Agent Platform ML Metadata atau Knowledge Catalog. Kedua opsi ini memungkinkan Anda mendaftarkan peristiwa atau artefak untuk memenuhi persyaratan tata kelola serta membuat kueri metadata dan mengambil informasi saat diperlukan. Bagian ini memberikan ringkasan tentang kedua opsi tersebut. Untuk mengetahui informasi mendetail tentang perbedaan antara Agent Platform ML Metadata dan Knowledge Catalog, lihat Melacak silsilah artefak pipeline.
Implementasi default: Agent Platform ML Metadata
Operasi pipeline atau eksperimen pertama Anda di Agent Platform akan membuat layanan Agent Platform ML Metadata default. Parameter dan metadata artefak yang digunakan dan dihasilkan oleh pipeline akan otomatis didaftarkan ke penyimpanan ML Metadata Agent Platform. Model data yang digunakan untuk mengatur dan menghubungkan metadata yang disimpan berisi elemen-elemen berikut:
- Konteks: Sekelompok artefak dan eksekusi yang mewakili proses eksperimen.
- Eksekusi: Langkah dalam alur kerja, seperti validasi data atau pelatihan model.
- Artefak: Entity, objek, atau bagian data input atau output yang dihasilkan dan digunakan oleh alur kerja.
- Peristiwa: Hubungan antara artefak dan eksekusi.
Secara default, Agent Platform ML Metadata menangkap dan melacak semua artefak input dan output dari operasi pipeline. Library ini mengintegrasikan artefak ini dengan Eksperimen di Agent Platform, Model Registry, dan set data terkelola Agent Platform.
Autologging adalah fitur bawaan dalam Pelatihan Terkelola Agent Platform untuk otomatis mencatat data ke Eksperimen di Agent Platform. Untuk melacak eksperimen secara efisien guna mengoptimalkan performa, gunakan integrasi bawaan antara Experiments on Agent Platform dan layanan Agent Platform ML Metadata terkait.
Agent Platform ML Metadata menyediakan sintaksis dan operator pemfilteran untuk menjalankan kueri tentang artefak, eksekusi, dan konteks. Jika diperlukan, tim Anda dapat mengambil informasi secara efisien tentang link registry model dan set data atau evaluasinya untuk operasi eksperimen tertentu. Metadata ini dapat membantu mempercepat penemuan pilihan yang mengoptimalkan performa. Misalnya, Anda dapat membandingkan operasi pipeline, membandingkan model, dan membandingkan operasi eksperimen. Untuk mengetahui informasi selengkapnya, termasuk contoh kueri, lihat Menganalisis metadata.
Penerapan alternatif: Knowledge Catalog
Knowledge Catalog menemukan metadata dari resourceGoogle Cloud , termasuk artefak Agent Platform. Anda juga dapat mengintegrasikan sumber data kustom.
Knowledge Catalog dapat membaca metadata di beberapa region dan penyimpanan di seluruh organisasi, sedangkan Agent Platform ML Metadata adalah resource khusus project. Jika dibandingkan dengan Agent Platform ML Metadata, Knowledge Catalog memerlukan lebih banyak upaya penyiapan. Namun, Knowledge Catalog mungkin sesuai jika Anda memerlukan integrasi dengan portofolio data yang lebih luas di Google Cloud dan dengan penyimpanan di seluruh organisasi.
Knowledge Catalog menemukan dan mengumpulkan metadata untuk project yang mengaktifkan Data Lineage API. Metadata dalam katalog diatur menggunakan model data yang terdiri dari project, grup entri, entri, dan aspek. Knowledge Catalog menyediakan sintaksis khusus yang dapat Anda gunakan untuk menemukan artefak. Jika diperlukan, Anda dapat memetakan artefak metadata ke Knowledge Catalog.
Menggunakan alat penjelasan
Perilaku model AI didasarkan pada data yang digunakan untuk melatih model tersebut. Perilaku ini dienkode sebagai parameter dalam fungsi matematika. Memahami secara pasti mengapa model berperforma dengan cara tertentu bisa jadi sulit. Namun, pengetahuan ini sangat penting untuk pengoptimalan performa.
Misalnya, pertimbangkan model klasifikasi gambar yang data pelatihannya hanya berisi gambar mobil merah. Model mungkin belajar mengidentifikasi label "mobil" berdasarkan warna objek, bukan atribut spasial dan bentuk objek. Saat model diuji dengan gambar yang menampilkan mobil dengan warna berbeda, performa model mungkin menurun. Bagian berikut menjelaskan alat yang dapat Anda gunakan untuk mengidentifikasi dan mendiagnosis masalah tersebut.
Mendeteksi bias data
Dalam fase analisis data eksploratif (EDA) pada project ML, Anda mengidentifikasi masalah pada data, seperti set data kelas tidak seimbang dan bias.
Dalam sistem produksi, Anda sering melatih ulang model dan menjalankan eksperimen dengan set data yang berbeda. Untuk menstandarkan data dan membandingkan di seluruh eksperimen, sebaiknya gunakan pendekatan sistematis untuk EDA yang mencakup karakteristik berikut:
- Otomatisasi: Seiring bertambahnya ukuran set pelatihan, proses EDA harus berjalan secara otomatis di latar belakang.
- Cakupan luas: Saat Anda menambahkan fitur baru, EDA harus mengungkapkan insight tentang fitur baru tersebut.
Banyak tugas EDA yang spesifik untuk jenis data dan konteks bisnis. Untuk mengotomatiskan proses EDA, gunakan BigQuery atau layanan pemrosesan data terkelola seperti Dataflow. Untuk mengetahui informasi selengkapnya, lihat Klasifikasi pada data yang tidak seimbang dan Metrik bias data untuk Agent Platform.
Memahami karakteristik dan perilaku model
Selain memahami distribusi data dalam set pelatihan dan set validasi serta biasnya, Anda perlu memahami karakteristik dan perilaku model pada waktu prediksi. Untuk memahami perilaku model, gunakan alat berikut:
| Alat | Deskripsi | Tujuan |
|---|---|---|
| Penjelasan berbasis contoh | Anda dapat menggunakan penjelasan berbasis contoh atau penelusuran tetangga terdekat untuk memahami prediksi dengan menemukan contoh yang paling mirip dari data pelatihan. Pendekatan ini didasarkan pada prinsip bahwa input yang serupa menghasilkan output yang serupa. |
|
| Penjelasan berbasis fitur | Untuk prediksi yang didasarkan pada data tabulasi atau gambar, penjelasan berbasis fitur menunjukkan seberapa besar pengaruh setiap fitur terhadap prediksi jika dibandingkan dengan dasar pengukuran. Teknik keterjelasan dan penjelasan tabulasi menyediakan metode atribusi fitur bergantung pada jenis model dan tugas. Metode ini biasanya mengandalkan pengambilan sampel dan analisis sensitivitas untuk mengukur seberapa besar perubahan output sebagai respons terhadap perubahan pada fitur input. |
|
| What-If Tool | What-If Tool dikembangkan oleh inisiatif People + AI Research (PAIR) Google untuk membantu Anda memahami dan memvisualisasikan perilaku model gambar dan tabular. Untuk contoh penggunaan alat ini, lihat Demo Web What-If Tool. |
|
Kontributor
Penulis:
- Benjamin Sadik | AI and ML Specialist Customer Engineer
- Filipe Gracio, PhD | Customer Engineer, Spesialis AI/ML
Kontributor lainnya:
- Daniel Lees | Cloud Security Architect
- Kumar Dhanagopal | Developer Solusi Lintas Produk