|
|
|
|
|
Membuat teks, meringkas, dan menganalisis konten hanyalah beberapa tugas yang dapat Anda selesaikan dengan model terbuka Gemma. Tutorial ini menunjukkan cara mulai menjalankan Gemma menggunakan Hugging Face Transformers dengan input teks dan gambar untuk membuat konten teks. Library Python Transformers menyediakan API untuk mengakses model AI generatif terlatih, termasuk Gemma. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Transformers.
Penyiapan
Sebelum memulai tutorial ini, selesaikan langkah-langkah berikut:
- Dapatkan akses ke Gemma dengan login ke Hugging Face dan memilih Acknowledge license untuk model Gemma.
- Pilih runtime Colab dengan resource yang memadai untuk menjalankan ukuran model Gemma yang ingin Anda jalankan. Pelajari lebih lanjut.
- Buat Token Akses Hugging Face dan tambahkan ke lingkungan Colab Anda.
Mengonfigurasi Token Akses
Tambahkan token akses Anda ke Colab untuk mengaktifkan download model Gemma dari situs Hugging Face. Gunakan fitur Secrets Colab untuk menyimpan token Anda dengan aman tanpa menambahkannya ke kode kerja Anda.
Untuk menambahkan Token Akses Hugging Face sebagai Secret:
- Buka tab rahasia dengan memilih ikon kunci di sisi kiri antarmuka, atau pilih Tools > Command pallete, ketik
secrets
, lalu tekan Enter. - Pilih Tambahkan secret baru untuk menambahkan entri secret baru.
- Di kolom Name, masukkan
HF_TOKEN
. - Di kolom Value, masukkan teks Token Akses Hugging Face Anda.
- Di kolom Akses notebook, pilih tombol untuk mengaktifkan akses.
Setelah memasukkan Token Akses sebagai HF_TOKEN
dan nilai, Anda dapat mengakses dan menyetelnya dalam lingkungan notebook Colab menggunakan kode berikut:
from google.colab import userdata
from huggingface_hub import login
# Login into Hugging Face Hub
hf_token = userdata.get('HF_TOKEN') # If you are running inside a Google Colab
login(hf_token)
Menginstal paket Python
Instal library Hugging Face yang diperlukan untuk menjalankan model Gemma dan membuat permintaan.
# Install Pytorch & other libraries
%pip install "torch>=2.4.0"
# Install a transformers version that supports Gemma 3 (>= 4.51.3)
%pip install "transformers>=4.51.3"
Membuat teks dari teks
Memberi perintah model Gemma dengan teks untuk mendapatkan respons teks adalah cara paling sederhana untuk menggunakan Gemma dan berfungsi dengan hampir semua varian Gemma. Bagian ini menunjukkan cara menggunakan library Hugging Face Transformers untuk memuat dan mengonfigurasi model Gemma untuk pembuatan teks ke teks.
Memuat model
Gunakan library torch
dan transformers
untuk membuat instance class pipeline
eksekusi model dengan Gemma. Saat menggunakan model untuk menghasilkan output atau mengikuti petunjuk, pilih model yang dioptimalkan untuk petunjuk (IT), yang biasanya memiliki it
dalam string ID model. Dengan menggunakan objek pipeline
, Anda menentukan varian Gemma yang ingin digunakan, jenis tugas yang ingin dilakukan, khususnya "text-generation"
untuk pembuatan teks-ke-teks, seperti yang ditunjukkan dalam contoh kode berikut:
import torch
from transformers import pipeline
pipeline = pipeline(
task="text-generation",
model="google/gemma-3-4b-it",
device=0, # "cuda" for Colab, "msu" for iOS devices
torch_dtype=torch.bfloat16
)
Gemma hanya mendukung beberapa setelan task
untuk pembuatan. Untuk mengetahui informasi selengkapnya tentang setelan task
yang tersedia, lihat dokumentasi task() Hugging Face Pipelines. Gunakan jenis data torch torch.bfloat16
untuk mengurangi presisi model dan resource komputasi yang diperlukan, tanpa memengaruhi kualitas output model secara signifikan. Untuk setelan device
, Anda dapat menggunakan "cuda"
untuk Colab, atau "msu"
untuk perangkat iOS, atau cukup tetapkan ini ke 0
(nol) untuk menentukan GPU pertama di sistem Anda. Untuk mengetahui informasi selengkapnya tentang penggunaan class Pipeline, lihat dokumentasi Pipelines Hugging Face.
Menjalankan pembuatan teks
Setelah model Gemma dimuat dan dikonfigurasi dalam objek pipeline
, Anda dapat mengirimkan perintah ke model. Contoh kode berikut menunjukkan permintaan dasar menggunakan parameter text_inputs
:
pipeline(text_inputs="roses are red")
[{'generated_text': 'roses are red, violets are blue, \ni love you more than you ever knew.\n\n**Explanation'}]
Menggunakan template perintah
Saat membuat konten dengan perintah yang lebih kompleks, gunakan template perintah untuk menyusun permintaan Anda. Template perintah memungkinkan Anda menentukan input dari peran tertentu, seperti user
atau model
, dan merupakan format yang diperlukan untuk mengelola interaksi chat multi-giliran dengan model Gemma. Contoh kode berikut menunjukkan cara membuat template perintah untuk Gemma:
messages = [
[
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."},]
},
{
"role": "user",
"content": [{"type": "text", "text": "Roses are red..."},]
},
],
]
pipeline(messages, max_new_tokens=50)
Membuat teks dari data gambar
Mulai dari Gemma 3, untuk ukuran model 4B dan yang lebih tinggi, Anda dapat menggunakan data gambar sebagai bagian dari perintah Anda. Bagian ini menunjukkan cara menggunakan library Transformers untuk memuat dan mengonfigurasi model Gemma agar menggunakan data gambar dan input teks untuk menghasilkan output teks.
Memuat model
Saat memuat model Gemma untuk digunakan dengan data gambar, Anda mengonfigurasi instance Transformer pipeline
secara khusus untuk digunakan dengan gambar. Khususnya, Anda harus memilih konfigurasi pipeline yang dapat menangani data visual dengan menyetel parameter task
ke "image-text-to-text"
, seperti yang ditunjukkan dalam contoh kode berikut:
import torch
from transformers import pipeline
pipeline = pipeline(
task="image-text-to-text", # required for image input
model="google/gemma-3-4b-it",
device=0,
torch_dtype=torch.bfloat16
)
Menjalankan pembuatan teks
Setelah mengonfigurasi model Gemma untuk menangani input gambar dengan instance pipeline
, Anda dapat mengirimkan perintah dengan gambar ke model. Gunakan token <start_of_image>
untuk menambahkan gambar ke teks perintah Anda. Contoh kode berikut menunjukkan permintaan dasar menggunakan parameter pipeline
:
pipeline(
"https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg",
text="<start_of_image> What is shown in this image?"
)
[{'input_text': '<start_of_image> What is shown in this image?', 'generated_text': '<start_of_image> What is shown in this image?\n\nThis image showcases a traditional Indian Thali. A Thali is a platter that contains a variety'}]
Menggunakan template perintah
Saat membuat konten dengan perintah yang lebih kompleks, gunakan template perintah untuk menyusun permintaan Anda. Template perintah memungkinkan Anda menentukan input dari peran tertentu, seperti user
atau model
, dan merupakan format yang diperlukan untuk mengelola interaksi chat multi-giliran dengan model Gemma. Contoh kode berikut menunjukkan cara membuat template perintah untuk Gemma:
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg"},
{"type": "text", "text": "What is shown in this image?"},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text": "This image shows"},
],
},
]
pipeline(text=messages, max_new_tokens=50, return_full_text=False)
Anda dapat menyertakan beberapa gambar dalam perintah dengan menyertakan entri "type": "image",
tambahan dalam daftar content
.
Membuat teks dari data audio
Dengan Gemma 3n, Anda dapat menggunakan data audio sebagai bagian dari perintah Anda. Bagian ini menunjukkan cara menggunakan library Transformers untuk memuat dan mengonfigurasi model Gemma agar menggunakan data audio dan input teks untuk menghasilkan output teks.
Menginstal paket Python
Versi terbaru library Transformers diperlukan untuk menggunakan input audio dengan Gemma. Instal library Hugging Face untuk menjalankan model Gemma dan membuat permintaan dengan data audio seperti yang ditunjukkan di bawah.
# Install Pytorch & other libraries
%pip install "torch>=2.4.0"
# Install a transformers version that supports Gemma 3n (>= 4.53)
%pip install "transformers>=4.53.0"
Memuat model
Saat memuat model Gemma untuk digunakan dengan data audio, Anda mengonfigurasi instance Transformer secara khusus untuk digunakan dengan data audio. Secara khusus, Anda harus menentukan objek processor
dan model
menggunakan class AutoProcessor
dan AutoModelForImageTextToText
, seperti yang ditunjukkan dalam contoh kode berikut:
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText
GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"
processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")
Menggunakan template perintah
Saat membuat konten dengan audio, gunakan template perintah untuk menyusun permintaan Anda. Template perintah memungkinkan Anda menentukan input dari peran tertentu, seperti user
atau model
, dan merupakan format yang diperlukan untuk mengelola interaksi chat multi-giliran dengan model Gemma. Contoh kode berikut menunjukkan cara membuat template perintah untuk Gemma dengan input data audio:
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
{"type": "text", "text": "Transcribe this audio and complete the statement"},
]
}
]
Anda dapat menyertakan beberapa file audio dalam perintah dengan menyertakan entri "type": "audio",
tambahan dalam daftar content
. Jika Anda memberikan perintah dengan data audio, tetapi tanpa template, gunakan sintaksis <audio_soft_token>
dalam teks perintah Anda.
Menjalankan pembuatan teks
Setelah mengonfigurasi model Gemma dengan objek processor
dan model
, serta membuat perintah dengan data audio menggunakan template perintah, Anda dapat mengirim perintah untuk menghasilkan output. Contoh kode berikut menunjukkan permintaan menggunakan template chat, pembuatan output, decoding respons:
input_ids = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True, return_dict=True,
return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)
# Generate output from the model
outputs = model.generate(**input_ids, max_new_tokens=128)
# decode and print the output as text
text = processor.batch_decode(
outputs,
skip_special_tokens=False,
clean_up_tokenization_spaces=False
)
print(text[0])
Langkah berikutnya
Bangun dan jelajahi lebih banyak dengan model Gemma:
- Menyesuaikan Gemma untuk tugas teks menggunakan Hugging Face Transformers
- Menyesuaikan Gemma untuk tugas terkait visi menggunakan Hugging Face Transformers
- Melakukan penyesuaian dan inferensi terdistribusi pada model Gemma
- Menggunakan model terbuka Gemma dengan Vertex AI
- Menyesuaikan Gemma menggunakan Keras dan men-deploy ke Vertex AI