1. Pengantar
Ringkasan
Tujuan lab ini adalah memberi Anda pengalaman langsung men-deploy model terbuka di Google Cloud, mulai dari penyiapan lokal sederhana hingga deployment tingkat produksi di Google Kubernetes Engine (GKE). Anda akan mempelajari cara menggunakan berbagai alat yang sesuai untuk setiap tahap siklus proses pengembangan.
Lab ini mengikuti jalur berikut:
- Pembuatan Prototipe Cepat: Anda akan menjalankan model dengan Ollama secara lokal terlebih dahulu untuk melihat betapa mudahnya memulai.
- Deployment Produksi: Terakhir, Anda akan men-deploy model ke GKE Autopilot menggunakan Ollama sebagai mesin penayangan yang skalabel.
Memahami Model Terbuka
Saat ini, orang-orang biasanya merujuk "model terbuka" sebagai model machine learning generatif yang tersedia secara publik untuk didownload dan digunakan oleh semua orang. Artinya, arsitektur model dan, yang paling penting, parameter atau "bobot" terlatihnya dirilis secara publik.
Transparansi ini menawarkan beberapa keunggulan dibandingkan model tertutup, yang biasanya hanya dapat diakses melalui API yang ketat:
- Insight: Developer dan peneliti dapat melihat "di balik layar" untuk memahami cara kerja internal model.
- Kustomisasi: Pengguna dapat menyesuaikan model untuk tugas tertentu melalui proses yang disebut penyesuaian.
- Inovasi: Memungkinkan komunitas membangun aplikasi baru dan inovatif di atas model yang sudah ada dan canggih.
Kontribusi Google dan rangkaian model Gemma
Google telah menjadi kontributor mendasar dalam gerakan AI open source selama bertahun-tahun. Arsitektur Transformer revolusioner, yang diperkenalkan dalam makalah tahun 2017 berjudul "Attention Is All You Need", adalah dasar bagi hampir semua model bahasa besar modern. Hal ini diikuti dengan model terbuka penting seperti BERT, T5, dan Flan-T5 yang disesuaikan untuk mengikuti perintah, yang masing-masing mendorong batas-batas kemampuan yang mungkin dilakukan dan memicu riset dan pengembangan di seluruh dunia.
Berdasarkan sejarah panjang inovasi terbuka ini, Google memperkenalkan rangkaian model Gemma. Model Gemma dibuat dari riset dan teknologi yang sama dengan yang digunakan untuk model Gemini yang canggih dan tertutup, tetapi tersedia dengan bobot terbuka. Bagi pelanggan Google Cloud, hal ini memberikan kombinasi yang efektif antara teknologi canggih dan fleksibilitas open source, sehingga mereka dapat mengontrol siklus proses model, berintegrasi dengan ekosistem yang beragam, dan menerapkan strategi multi-cloud.
Sorotan pada Gemma 3
Dalam lab ini, kita akan berfokus pada Gemma 3, generasi terbaru dan tercanggih dalam rangkaian model ini. Model Gemma 3 ringan namun canggih, dirancang untuk berjalan secara efisien di satu GPU atau bahkan CPU.
- Performa dan Ukuran: Model Gemma 3 ringan namun canggih, dirancang untuk berjalan secara efisien di GPU tunggal atau bahkan CPU. Model ini memberikan kualitas unggul dan performa tercanggih (SOTA) untuk ukurannya.
- Modalitas: Model ini bersifat multimodal, mampu menangani input teks dan gambar untuk menghasilkan output teks.
- Fitur Utama: Gemma 3 memiliki jendela konteks besar 128K dan mendukung lebih dari 140 bahasa.
- Kasus Penggunaan: Model ini cocok untuk berbagai tugas, termasuk menjawab pertanyaan, meringkas, dan penalaran.
Terminologi utama
Saat bekerja dengan model terbuka, Anda akan menemukan beberapa istilah umum:
- Prapelatihan melibatkan pelatihan model pada set data yang besar dan beragam untuk mempelajari pola bahasa umum. Model ini pada dasarnya adalah mesin pelengkapan otomatis yang canggih.
- Penyesuaian instruksi menyesuaikan model terlatih untuk mengikuti petunjuk dan perintah tertentu dengan lebih baik. Model ini adalah model yang "tahu cara melakukan percakapan".
- Varian Model: Model terbuka biasanya dirilis dalam berbagai ukuran (misalnya, Gemma 3 memiliki versi dan varian parameter 1B, 4B, 12B, dan 27B, seperti yang disesuaikan untuk mengikuti perintah (-it), terlatih, atau dikuantisasi untuk efisiensi.
- Kebutuhan Resource: Model Bahasa Besar berukuran besar dan memerlukan resource komputasi yang signifikan untuk dihosting. Meskipun dapat dijalankan secara lokal, men-deploy-nya di cloud memberikan nilai yang signifikan, terutama saat dioptimalkan untuk performa dan skalabilitas dengan alat seperti Ollama.
Mengapa GKE untuk Inferensi Model Terbuka?
Lab ini memandu Anda dari eksekusi model lokal yang sederhana hingga deployment produksi skala penuh di Google Kubernetes Engine (GKE). Meskipun alat seperti Ollama sangat baik untuk pembuatan prototipe cepat, lingkungan produksi memiliki serangkaian persyaratan berat yang dapat dipenuhi secara unik oleh GKE.
Untuk aplikasi AI skala besar, Anda memerlukan lebih dari sekadar model yang berjalan; Anda memerlukan infrastruktur penayangan yang tangguh, skalabel, dan efisien. GKE menyediakan fondasi ini. Berikut waktu dan alasan Anda memilih GKE:
- Pengelolaan yang Disederhanakan dengan Autopilot: GKE Autopilot mengelola infrastruktur dasar untuk Anda. Anda berfokus pada konfigurasi aplikasi, dan Autopilot akan menyediakan serta menskalakan node secara otomatis.
- Performa & Skalabilitas Tinggi: Tangani traffic yang berat dan bervariasi dengan penskalaan otomatis GKE. Hal ini memastikan aplikasi Anda dapat memberikan throughput tinggi dengan latensi rendah, yang dapat ditingkatkan atau diturunkan skalanya sesuai kebutuhan.
- Efektivitas Biaya dalam Skala Besar: Kelola resource secara efisien. GKE dapat menskalakan workload hingga nol untuk menghindari pembayaran resource yang tidak digunakan, dan Anda dapat memanfaatkan Spot VM untuk mengurangi biaya secara signifikan untuk workload inferensi stateless.
- Portabilitas & Ekosistem yang Kaya: Hindari ketergantungan pada vendor dengan deployment berbasis Kubernetes yang portabel. GKE juga menyediakan akses ke ekosistem Cloud Native (CNCF) yang luas untuk alat pemantauan, logging, dan keamanan terbaik di kelasnya.
Singkatnya, Anda beralih ke GKE saat aplikasi AI Anda siap untuk produksi dan memerlukan platform yang dibangun untuk skala, performa, dan kematangan operasional yang serius.
Yang akan Anda pelajari
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Jalankan model terbuka secara lokal dengan Ollama.
- Men-deploy model terbuka ke Autopilot Google Kubernetes Engine (GKE) dengan Ollama untuk penayangan.
- Pahami progres dari framework pengembangan lokal ke arsitektur inferensi tingkat produksi di GKE.
2. Penyiapan project
Akun Google
Jika belum memiliki Akun Google pribadi, Anda harus membuat Akun Google.
Gunakan akun pribadi, bukan akun kantor atau sekolah.
Login ke Konsol Google Cloud
Login ke Konsol Google Cloud menggunakan Akun Google pribadi.
Aktifkan Penagihan
Menyiapkan akun penagihan pribadi
Jika menyiapkan penagihan menggunakan kredit Google Cloud, Anda dapat melewati langkah ini.
Untuk menyiapkan akun penagihan pribadi, buka di sini untuk mengaktifkan penagihan di Cloud Console.
Beberapa Catatan:
- Menyelesaikan lab ini akan dikenai biaya kurang dari $1 USD untuk resource Cloud.
- Anda dapat mengikuti langkah-langkah di akhir lab ini untuk menghapus resource agar tidak dikenai biaya lebih lanjut.
- Pengguna baru memenuhi syarat untuk mengikuti Uji Coba Gratis senilai$300 USD.
Membuat project (opsional)
Jika Anda tidak memiliki project saat ini yang ingin digunakan untuk lab ini, buat project baru di sini.
3. Buka Cloud Shell Editor
- Klik link ini untuk langsung membuka Cloud Shell Editor
- Jika diminta untuk memberikan otorisasi kapan saja hari ini, klik Authorize untuk melanjutkan.

- Jika terminal tidak muncul di bagian bawah layar, buka terminal:
- Klik Lihat
- Klik Terminal

- Di terminal, tetapkan project Anda dengan perintah ini:
gcloud config set project [PROJECT_ID]- Contoh:
gcloud config set project lab-project-id-example - Jika tidak ingat project ID, Anda dapat mencantumkan semua project ID dengan:
gcloud projects list
- Contoh:
- Anda akan melihat pesan ini:
Updated property [core/project].
4. Menjalankan Gemma dengan Ollama
Tujuan pertama Anda adalah menjalankan Gemma 3 secepat mungkin di lingkungan pengembangan. Anda akan menggunakan Ollama, alat yang menyederhanakan secara signifikan cara menjalankan model bahasa besar secara lokal. Tugas ini menunjukkan cara paling mudah untuk mulai bereksperimen dengan model terbuka.
Ollama adalah alat open source gratis yang memungkinkan pengguna menjalankan model Generatif (model bahasa besar, model bahasa-visi, dan lainnya) secara lokal di komputer mereka sendiri. API ini menyederhanakan proses mengakses dan berinteraksi dengan model tersebut, sehingga model menjadi lebih mudah diakses dan memungkinkan pengguna bekerja dengan model tersebut secara pribadi.
Menginstal dan menjalankan Ollama
Sekarang, Anda siap menginstal Ollama, mendownload model Gemma 3, dan berinteraksi dengannya dari command line.
- Di terminal Cloud Shell, download dan instal Ollama:
Perintah ini akan mendownload Ollama, menginstalnya, dan memulai layanan Ollama.curl -fsSL https://ollama.com/install.sh | sh - Mulai layanan Ollama di latar belakang:
ollama serve & - Tarik (download) model Gemma 3 1B dengan Ollama:
ollama pull gemma3:1b - Jalankan model secara lokal:
Perintahollama run gemma3:1bollama runmenampilkan perintah (>>>) agar Anda dapat mengajukan pertanyaan kepada model. - Uji model dengan pertanyaan. Misalnya, ketik
Why is the sky blue?, lalu tekan ENTER. Anda akan melihat respons seperti berikut:>>> Why is the sky blue? Okay, let's break down why the sky is blue – it's a fascinating phenomenon related to how light interacts with the Earth's atmosphere. Here's the explanation: **1. Sunlight and Colors:** * Sunlight appears white, but it's actually made up of all the colors of the rainbow (red, orange, yellow, green, blue, indigo, and violet). Think of a prism splitting sunlight. **2. Rayleigh Scattering:** * As sunlight enters the Earth's atmosphere... ...
- Untuk keluar dari perintah Ollama di Terminal, ketik
/byelalu tekan ENTER.
Menggunakan OpenAI SDK dengan Ollama
Setelah layanan Ollama berjalan, Anda dapat berinteraksi dengannya secara terprogram. Anda akan menggunakan OpenAI Python SDK, yang kompatibel dengan API yang diekspos Ollama.
- Di terminal Cloud Shell, buat dan aktifkan lingkungan virtual menggunakan uv. Tindakan ini memastikan dependensi project Anda tidak bertentangan dengan Python sistem.
uv venv --python 3.14 source .venv/bin/activate - Di terminal, instal OpenAI SDK:
uv pip install openai - Buat file baru bernama
ollama_chat.pydengan memasukkan di terminal:cloudshell edit ollama_chat.py - Tempelkan kode Python berikut ke
ollama_chat.py. Kode ini mengirim permintaan ke server Ollama lokal.from openai import OpenAI client = OpenAI( base_url = 'http://localhost:11434/v1', api_key='ollama', # required by OpenAI SDK, but not used by Ollama ) response = client.chat.completions.create( model="gemma3:1b", messages=[ { "role": "user", "content": "Why is the sky blue?" }, ], ) print(response.choices[0].message.content) - Jalankan skrip di terminal Anda:
Setelah beberapa detik, Anda akan melihat respons yang mirip dengan yang Anda terima dari command line.python3 ollama_chat.py - Untuk mencoba mode streaming, buat file lain bernama
ollama_stream.pydengan menjalankan perintah berikut di terminal:cloudshell edit ollama_stream.py - Tempelkan konten berikut ke dalam file
ollama_stream.py. Perhatikan parameterstream=Truedalam permintaan. Hal ini memungkinkan model menampilkan token segera setelah dihasilkan.from openai import OpenAI client = OpenAI( base_url = 'http://localhost:11434/v1', api_key='ollama', ) stream = client.chat.completions.create( model="gemma3:1b", messages=[ { "role": "user", "content": "Why is the sky blue?" }, ], stream=True ) for chunk in stream: if chunk.choices[0].delta.content is not None: print(chunk.choices[0].delta.content, end="", flush=True) print() - Jalankan skrip streaming di terminal:
Respons akan muncul kata demi kata.python3 ollama_stream.py
Streaming adalah fitur yang berguna untuk menciptakan pengalaman pengguna yang baik dalam aplikasi interaktif seperti chatbot. Daripada membuat pengguna menunggu seluruh jawaban dibuat, streaming menampilkan respons token demi token saat dibuat. Hal ini memberikan masukan langsung dan membuat aplikasi terasa jauh lebih responsif.
Yang Anda pelajari: Menjalankan Model Terbuka dengan Ollama
Anda telah berhasil menjalankan model terbuka menggunakan Ollama. Anda telah melihat betapa sederhananya mendownload model canggih seperti Gemma 3 dan berinteraksi dengannya, baik melalui antarmuka command line maupun secara terprogram dengan Python. Alur kerja ini ideal untuk pembuatan prototipe cepat dan pengembangan lokal. Sekarang Anda memiliki dasar yang kuat untuk menjelajahi opsi deployment yang lebih canggih.
5. Men-deploy Gemma dengan Ollama di GKE Autopilot
Untuk beban kerja produksi yang memerlukan operasi dan skalabilitas yang disederhanakan, Google Kubernetes Engine (GKE) adalah platform pilihan. Dalam tugas ini, Anda akan men-deploy Gemma menggunakan Ollama di cluster GKE Autopilot.
GKE Autopilot adalah mode operasi di GKE tempat Google mengelola konfigurasi cluster Anda, termasuk node, penskalaan, keamanan, dan setelan lainnya yang telah dikonfigurasi sebelumnya. Layanan ini menciptakan pengalaman Kubernetes yang benar-benar "serverless", yang sempurna untuk menjalankan beban kerja inferensi tanpa mengelola infrastruktur komputasi yang mendasarinya.
Menyiapkan lingkungan GKE
Untuk tugas terakhir dalam men-deploy ke Kubernetes, Anda akan menyediakan cluster Autopilot GKE.
- Di terminal Cloud Shell, tetapkan variabel lingkungan untuk project dan region yang diinginkan.
export PROJECT_ID=$(gcloud config get-value project) export REGION=europe-west1 gcloud config set compute/region $REGION - Aktifkan GKE API untuk project Anda dengan menjalankan perintah berikut di terminal:
gcloud services enable container.googleapis.com - Buat cluster GKE Autopilot dengan menjalankan perintah berikut di terminal:
gcloud container clusters create-auto gemma-cluster \ --region $REGION \ --release-channel rapid - Dapatkan kredensial untuk cluster baru Anda dengan menjalankan perintah berikut di terminal:
gcloud container clusters get-credentials gemma-cluster \ --region $REGION
Men-deploy Ollama dan Gemma
Setelah memiliki cluster GKE Autopilot, Anda dapat men-deploy server Ollama. Autopilot akan otomatis menyediakan resource komputasi (CPU dan Memori) berdasarkan persyaratan yang Anda tentukan dalam manifes deployment.
- Buat file baru bernama
gemma-deployment.yamldengan menjalankan perintah berikut di terminal:cloudshell edit gemma-deployment.yaml - Tempel konfigurasi YAML berikut ke
gemma-deployment.yaml. Konfigurasi ini menentukan deployment yang menggunakan image Ollama resmi untuk dijalankan di CPU. Berikut penjelasan konfigurasi untuk Autopilot:apiVersion: apps/v1 kind: Deployment metadata: name: ollama-gemma spec: replicas: 1 selector: matchLabels: app: ollama-gemma template: metadata: labels: app: ollama-gemma spec: containers: - name: ollama-gemma-container image: ollama/ollama:0.12.10 resources: requests: cpu: "8" memory: "8Gi" ephemeral-storage: "10Gi" limits: cpu: "8" memory: "8Gi" ephemeral-storage: "10Gi" # We use a script to start the server and pull the model command: ["/bin/bash", "-c"] args: - | ollama serve & OLLAMA_PID=$! echo "Waiting for Ollama server to start..." sleep 5 echo "Pulling Gemma model..." ollama pull gemma3:1b echo "Model pulled. Ready to serve." wait $OLLAMA_PID ports: - containerPort: 11434 env: - name: OLLAMA_HOST value: "0.0.0.0" --- apiVersion: v1 kind: Service metadata: name: llm-service spec: selector: app: ollama-gemma type: ClusterIP ports: - protocol: TCP port: 8000 targetPort: 11434image: ollama/ollama:latest: Ini menentukan image Docker Ollama resmi.resources: Kita secara eksplisit meminta 8 vCPU dan memori 8 Gi. GKE Autopilot menggunakan nilai ini untuk menyediakan komputasi yang mendasarinya. Karena kita tidak menggunakan GPU, model akan berjalan di CPU. Memori 8 GiB sudah cukup untuk menampung model Gemma 1B dan konteksnya.command/args: Kita mengganti perintah startup untuk memastikan model ditarik saat pod dimulai. Skrip memulai server di latar belakang, menunggu hingga server siap, menarik modelgemma3:1b, lalu membuat server tetap berjalan.OLLAMA_HOST: Menyetelnya ke0.0.0.0memastikan Ollama memproses semua antarmuka jaringan dalam container, sehingga dapat diakses oleh Layanan Kubernetes.
- Di terminal, terapkan manifes deployment ke cluster Anda:
Perlu waktu beberapa menit agar Autopilot menyediakan resource dan pod dimulai. Anda dapat memantaunya dengan:kubectl apply -f gemma-deployment.yaml Tunggu hingga status pod adalahkubectl get pods --watchRunningdanREADYadalah1/1sebelum melanjutkan.
Menguji endpoint GKE
Layanan Ollama Anda kini berjalan di cluster GKE Autopilot. Untuk mengujinya dari terminal Cloud Shell, Anda akan menggunakan kubectl port-forward.
- Buka tab terminal Cloud Shell baru (klik ikon + di jendela terminal). Perintah
port-forwardadalah proses pemblokiran, sehingga memerlukan sesi terminalnya sendiri. - Di terminal baru, jalankan perintah berikut untuk meneruskan port lokal (misalnya,
8000) ke port layanan (8000): Anda akan melihat output yang menunjukkan bahwa penerusan telah dimulai. Biarkan terminal ini tetap berjalan.kubectl port-forward service/llm-service 8000:8000 - Kembali ke terminal asli Anda.
- Kirim permintaan ke port lokal Anda
8000. Server Ollama mengekspos API yang kompatibel dengan OpenAI, dan karena penerusan port, Anda kini dapat mengaksesnya dihttp://127.0.0.1:8000. Layanan akan menampilkan respons JSON dengan penyelesaian model.curl http://127.0.0.1:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "gemma3:1b", "messages": [ {"role": "user", "content": "Explain why the sky is blue."} ] }'
6. Membersihkan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam lab ini, ikuti langkah-langkah berikut untuk menghapus cluster GKE.
- Di terminal Cloud Shell, hapus cluster GKE Autopilot:
Perintah ini akan menghapus cluster dan semua resource terkait.gcloud container clusters delete gemma-cluster \ --region $REGION --quiet
7. Kesimpulan
Bagus! Dalam lab ini, Anda telah mempelajari beberapa metode utama untuk men-deploy model terbuka di Google Cloud. Anda memulai dengan kesederhanaan dan kecepatan pengembangan lokal dengan Ollama. Terakhir, Anda men-deploy Gemma ke lingkungan yang skalabel dan siap produksi menggunakan Autopilot Google Kubernetes Engine dan framework Ollama.
Sekarang Anda telah memiliki pengetahuan untuk men-deploy model terbuka di Google Kubernetes Engine untuk workload yang menuntut dan dapat diskalakan tanpa mengelola infrastruktur yang mendasarinya.
Rekap
Di lab ini, Anda telah mempelajari:
- Apa itu Model Terbuka dan mengapa Model Terbuka penting.
- Cara menjalankan model terbuka secara lokal dengan Ollama.
- Cara men-deploy model terbuka di Google Kubernetes Engine (GKE) Autopilot menggunakan Ollama untuk inferensi.
Pelajari lebih lanjut
- Pelajari model Gemma lebih lanjut dalam dokumentasi resmi.
- Jelajahi contoh lainnya di repositori AI Generatif Google Cloud di GitHub.
- Baca selengkapnya tentang GKE Autopilot.
- Jelajahi Vertex AI Model Garden untuk model terbuka dan eksklusif lainnya yang tersedia.