Kursus
Google DeepMind baru saja merilis Gemma 3, iterasi terbaru dari model open-source mereka. Gemma 3 dirancang untuk berjalan langsung di perangkat dengan sumber daya terbatas seperti ponsel dan laptop. Model-model ini dioptimalkan untuk kinerja cepat pada satu GPU atau TPU dan hadir dalam berbagai ukuran untuk menyesuaikan kebutuhan perangkat keras yang berbeda.
Dalam tutorial ini, saya akan menjelaskan langkah demi langkah cara menyiapkan dan menjalankan Gemma 3 secara lokal menggunakan Ollama. Setelah itu, saya akan menunjukkan cara menggunakan Gemma 3 dan Python untuk membangun asisten berkas.
Mengapa Menjalankan Gemma 3 Secara Lokal?
Menjalankan model bahasa besar (LLM) seperti Gemma 3 secara lokal memberikan beberapa manfaat utama:
- Privasi: Data tetap berada di perangkat, melindungi informasi sensitif.
- Latensi rendah: Menghilangkan kebutuhan transmisi internet, sehingga respons lebih cepat.
- Kustomisasi: Model dapat disesuaikan untuk memenuhi kebutuhan spesifik dan eksperimen.
- Efisiensi biaya: Mengurangi biaya penggunaan cloud dengan memanfaatkan perangkat keras yang sudah ada.
- Akses offline: Aplikasi tetap berfungsi tanpa koneksi internet.
- Kendali: Keamanan dan kendali yang lebih baik atas lingkungan komputasi kita.
Menyiapkan Gemma 3 Secara Lokal dengan Ollama
Memasang Ollama
Ollama adalah platform yang tersedia untuk Windows, Mac, dan Linux yang mendukung menjalankan dan mendistribusikan model AI, memudahkan pengembang untuk mengintegrasikan model tersebut ke dalam proyek mereka. Kita akan menggunakannya untuk mengunduh dan menjalankan Gemma 3 secara lokal.
Langkah pertama adalah mengunduh dan memasangnya dari situs resmi Ollama.

Saat memasang, pastikan untuk memasang command line:

Setelah instalasi selesai, kita dapat memeriksa apakah sudah terpasang dengan benar menggunakan perintah ollama di terminal. Berikut contoh hasilnya:

Mengunduh Gemma 3
Untuk mengunduh model dengan Ollama, gunakan perintah pull:
ollama pull <model_name>:<model_version>
Daftar model yang tersedia dapat ditemukan di pustaka Ollama.
Gemma 3, khususnya, memiliki empat model yang tersedia: 1b, 4b, 12b, dan 27b, di mana b berarti billion (miliar), merujuk pada jumlah parameter dalam model.
Sebagai contoh, untuk mengunduh gemma3 dengan parameter 1b, kita gunakan perintah:
ollama pull gemma3:1b
Jika kita tidak menentukan versi model, model 4b akan diunduh secara default:
ollama pull gemma3
Mendaftar model lokal
Kita dapat menampilkan daftar model yang kita miliki secara lokal dengan perintah berikut:
ollama list
Dalam kasus saya, keluarannya menunjukkan bahwa saya memiliki dua model:
NAME ID SIZE MODIFIED
gemma3:1b 2d27a774bc62 815 MB 38 seconds ago
gemma3:latest c0494fe00251 3.3 GB 22 minutes ago
Mengobrol di terminal
Kita dapat menggunakan Ollama untuk mengobrol dengan model menggunakan perintah run:
ollama run gemma3

Perhatikan bahwa jika kita menggunakan perintah run dengan model yang belum kita unduh, model tersebut akan diunduh secara otomatis menggunakan pull.
Menjalankan Gemma 3 di latar belakang
Untuk menggunakan Gemma 3 dengan Python, kita perlu menjalankannya di latar belakang. Kita dapat melakukannya menggunakan perintah serve:
ollama serve
Jika Anda mendapatkan galat berikut saat mengeksekusi perintah, kemungkinan besar Ollama sudah berjalan:
Error: listen tcp 127.0.0.1:11434: bind: address already in use
Galat ini dapat terjadi ketika Ollama tetap berjalan di latar belakang.
Menggunakan Gemma 3 Secara Lokal dengan Python
Menyiapkan lingkungan Python
Ollama menawarkan paket Python untuk memudahkan koneksi dengan model yang berjalan di komputer kita.
Kita akan menggunakan Anaconda untuk menyiapkan lingkungan Python dan menambahkan dependensi yang diperlukan. Cara ini membantu mencegah kemungkinan masalah dengan paket Python lain yang mungkin sudah kita miliki.
Setelah Anaconda terpasang, kita dapat menyiapkan lingkungan dengan perintah:
conda create -n gemma3-demo -y python=3.9
Perintah ini menyiapkan lingkungan bernama gemma3-demo menggunakan Python versi 3.9. Opsi -y memastikan semua pertanyaan selama proses setup dijawab otomatis dengan ya.
Selanjutnya, kita mengaktifkan lingkungan dengan:
conda activate gemma3-demo
Terakhir, kita memasang paket ollama menggunakan perintah:
pip install ollama
Mengirim pesan ke Gemma 3 dengan Python
Berikut cara mengirim pesan ke Gemma 3 menggunakan Python:
from ollama import chat
response = chat(
model="gemma3",
messages=[
{
"role": "user",
"content": "Why is the sky blue?",
},
],
)
print(response.message.content)
Bergantung pada perangkat keras Anda, model mungkin membutuhkan waktu untuk menjawab, jadi bersabarlah saat menjalankan skrip.
Sebelumnya kita lihat bahwa gemma3 secara default merujuk ke gemma3:4b. Jadi ketika kita menentukan model="gemma3" sebagai model, itulah yang akan digunakan.
Untuk menggunakan model lain—misalnya model 1B—kita perlu meneruskan argumen model=”gemma3:1b” sebagai gantinya (dengan catatan kita sudah menariknya terlebih dahulu menggunakan perintah ollama pull gemma3:1b). Untuk menampilkan daftar model yang tersedia, kita dapat menggunakan perintah ollama list.
Jika kita ingin melakukan streaming jawaban kata demi kata, kita dapat menggunakan stream=True dan mencetak respons per potongan:
from ollama import chat
stream = chat(
model="gemma3",
messages=[{"role": "user", "content": "Why is the sky blue?"}],
stream=True,
)
for chunk in stream:
print(chunk["message"]["content"], end="", flush=True)
Ini memberikan pengalaman pengguna yang lebih baik karena pengguna tidak perlu menunggu hingga jawaban lengkap dihasilkan.
Untuk mempelajari lebih lanjut tentang paket ollama, lihat dokumentasinya.
Membangun Asisten Berkas Menggunakan Gemma 3
Di bagian ini, kita mempelajari cara membangun skrip Python yang memungkinkan kita mengajukan pertanyaan tentang isi berkas teks langsung dari terminal. Skrip ini akan berguna untuk tugas seperti memeriksa bug pada berkas kode atau menanyakan informasi dari dokumen apa pun.
Gambaran skrip
Tujuan kita adalah membuat alat command-line menggunakan Python yang membaca berkas teks dan menggunakan Gemma 3 untuk menjawab pertanyaan terkait isinya. Berikut panduan langkah demi langkah untuk mencapainya:
Menyiapkan struktur skrip
Pertama, kita perlu menyiapkan skrip Python dengan impor yang diperlukan dan struktur dasar:
import sys
from ollama import chat
def ask_questions_from_file(file_path):
# Read the content of the text file
with open(file_path, "r") as file:
content = file.read()
# Loop to keep asking questions
while True:
question = input("> ")
print()
if question.lower() == "exit":
break
# Use Gemma 3 to get answers
stream = chat(
model="gemma3",
messages=[
{"role": "user", "content": content},
{"role": "user", "content": question},
],
stream=True,
)
for chunk in stream:
print(chunk["message"]["content"], end="", flush=True)
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python ask_file.py <path_to_text_file>")
else:
file_path = sys.argv[1]
ask_questions_from_file(file_path)
Fungsionalitas inti dibungkus dalam fungsi ask_questions_from_file(). Fungsi ini menerima path berkas sebagai argumen dan dimulai dengan membuka serta membaca isi dari berkas teks yang ditentukan. Konten ini akan digunakan sebagai informasi latar untuk menjawab pertanyaan.
Setelah isi berkas dimuat, skrip masuk ke dalam loop yang terus-menerus meminta kita memasukkan pertanyaan. Saat kita mengetik pertanyaan, skrip mengirimkan isi berkas beserta pertanyaan kita ke model Gemma 3, yang memproses informasi tersebut untuk menghasilkan jawaban.
Interaksi dengan model terjadi melalui mekanisme streaming, memungkinkan jawaban ditampilkan secara real time saat dihasilkan. Jika kita mengetik exit, loop akan berhenti dan skrip akan berhenti berjalan.
Di akhir skrip, ada pemeriksaan untuk memastikan bahwa skrip dijalankan dengan benar dengan satu argumen command-line, yang seharusnya berupa path ke berkas teks. Jika argumen tidak disediakan, skrip menampilkan pesan penggunaan untuk memandu kita tentang cara menjalankan skrip dengan benar. Setup ini memungkinkan kita mengarahkan skrip secara efektif dari command line.
Menjalankan skrip
Simpan kode di atas dalam berkas bernama, misalnya, ask.py. Untuk menguji skrip, jalankan perintah:
python ask.py ask.py
Ini akan menjalankan skrip untuk menanyakan pertanyaan tentang dirinya sendiri (itulah sebabnya ask.py muncul dua kali pada perintah di atas). Berikut contoh memintanya menjelaskan cara kerja skrip:

Kesimpulan
Kita berhasil menyiapkan dan mempelajari cara menjalankan Gemma 3 secara lokal menggunakan Ollama dan Python. Pendekatan ini memastikan privasi data kita, menawarkan latensi rendah, menyediakan opsi kustomisasi, dan dapat menghemat biaya. Langkah-langkah yang telah kita bahas tidak hanya terbatas pada Gemma 3—langkah tersebut juga dapat diterapkan pada model lain yang dihosting di Ollama.
Jika kita ingin meningkatkan fungsionalitas skrip, kita bisa, misalnya, memperluas kemampuannya untuk menangani PDF. Cara terbaik untuk melakukannya adalah menggunakan API Mistral OCR. Kita dapat mengonversi berkas PDF menjadi teks, sehingga skrip kita dapat menjawab pertanyaan tentang PDF, menjadikannya lebih serbaguna dan andal.
Dengan alat-alat ini, kini kita siap untuk menjelajahi dan berinteraksi dengan model besar langsung dari perangkat kita sendiri.
FAQs
Apa persyaratan perangkat keras untuk menjalankan Gemma 3 secara lokal?
Kemampuan untuk menjalankan Gemma 3 secara lokal bergantung pada ukuran model spesifik yang Anda pilih untuk diunduh. Model yang lebih kecil seperti gemma3:1b dirancang efisien dan dapat berjalan pada perangkat yang kurang bertenaga, seperti laptop dengan satu GPU atau bahkan beberapa tablet berperforma tinggi. Model yang lebih besar seperti gemma3:27b memerlukan sumber daya komputasi lebih besar, misalnya workstation multi-core dengan GPU kelas atas. Selalu periksa spesifikasi perangkat Anda dibandingkan dengan kebutuhan sumber daya model untuk memastikan kompatibilitas.
Bisakah saya menjalankan beberapa instance Gemma 3 secara bersamaan?
Ya, Anda dapat menjalankan beberapa instance Gemma 3 secara bersamaan, asalkan sumber daya perangkat keras Anda (CPU, GPU, dan memori) cukup untuk mendukung beban komputasi tambahan. Setiap instance model yang berjalan di latar belakang akan mengonsumsi sumber daya sistem tambahan, jadi pastikan sistem Anda dapat menangani beberapa proses tanpa penurunan kinerja yang signifikan.
Apakah perlu menggunakan Anaconda untuk menyiapkan lingkungan Python?
Meskipun Anaconda sangat direkomendasikan karena kemudahan membuat lingkungan terisolasi, mengelola dependensi, dan menghindari konflik dengan paket Python lainnya, penggunaannya tidak wajib. Anda juga dapat menggunakan alat lingkungan virtual lain seperti venv atau virtualenv.

