Gemma adalah sekumpulan model terbuka yang ringan dan canggih, yang dibuat dari riset dan teknologi yang digunakan untuk membuat model Gemini. Anda dapat menggunakan model Gemma di pipeline inferensi Apache Beam. Istilah bobot terbuka berarti parameter atau bobot pralatihan model dirilis. Detail seperti set data asli, arsitektur model, dan kode pelatihan tidak disediakan.
Untuk daftar model yang tersedia dan detail tentang setiap model, lihat Ringkasan model Gemma.
Untuk mempelajari cara mendownload dan menggunakan model, lihat Memulai Gemma menggunakan KerasNLP.
Untuk mendownload model, lihat Model Gemma.
Kasus penggunaan
Anda dapat menggunakan model Gemma dengan Dataflow untuk analisis sentimen. Dengan Dataflow dan model Gemma, Anda dapat memproses peristiwa, seperti ulasan pelanggan, saat peristiwa tersebut tiba. Jalankan ulasan melalui model untuk menganalisisnya, lalu buat rekomendasi. Dengan menggabungkan Gemma dengan Apache Beam, Anda dapat menyelesaikan alur kerja ini dengan lancar.
Dukungan dan batasan
Model terbuka Gemma didukung dengan Apache Beam dan Dataflow dengan persyaratan berikut:
- Tersedia untuk pipeline batch dan streaming yang menggunakan Apache Beam Python SDK versi 2.46.0 dan yang lebih baru.
- Tugas Dataflow harus menggunakan Runner v2.
- Tugas Dataflow harus menggunakan GPU. Untuk mengetahui daftar jenis GPU yang didukung dengan Dataflow, lihat Ketersediaan. Jenis GPU T4 dan L4 direkomendasikan.
- Model harus didownload dan disimpan dalam format file
.keras
. - Pemroses model TensorFlow direkomendasikan, tetapi tidak wajib.
Prasyarat
- Akses model Gemma melalui Kaggle.
- Lengkapi formulir izin dan setujui persyaratan dan ketentuan.
- Download model Gemma. Simpan dalam format file
.keras
di lokasi yang dapat diakses oleh tugas Dataflow Anda, seperti bucket Cloud Storage. Saat Anda menentukan nilai untuk variabel jalur model, gunakan jalur ke lokasi penyimpanan ini. - Untuk menjalankan tugas di Dataflow, buat image penampung kustom. Langkah ini memungkinkan Anda menjalankan pipeline dengan GPU di
layanan Dataflow.
- Untuk melihat alur kerja lengkap yang mencakup pembuatan image Docker, lihat RunInference di streaming Dataflow dengan Gemma di GitHub.
- Untuk mengetahui informasi selengkapnya tentang cara mem-build image Docker, lihat Mem-build image container kustom di "Menjalankan pipeline dengan GPU".
- Untuk mengirim container ke Artifact Registry menggunakan Docker, lihat bagian Mem-build dan mengirim image di "Mem-build image container kustom untuk Dataflow".
Menggunakan Gemma di pipeline Anda
Untuk menggunakan model Gemma di pipeline Apache Beam, ikuti langkah-langkah berikut.
Dalam kode Apache Beam, setelah Anda mengimpor dependensi pipeline, sertakan jalur ke model tersimpan:
model_path = "MODEL_PATH"
Ganti
MODEL_PATH
dengan jalur tempat Anda menyimpan model yang didownload. Misalnya, jika Anda menyimpan model ke bucket Cloud Storage, jalurnya memiliki formatgs://STORAGE_PATH/FILENAME.keras
.Implementasi Keras model Gemma memiliki metode
generate()
yang menghasilkan teks berdasarkan perintah. Untuk meneruskan elemen ke metodegenerate()
, gunakan fungsi inferensi kustom.def gemma_inference_function(model, batch, inference_args, model_id): vectorized_batch = np.stack(batch, axis=0) # The only inference_arg expected here is a max_length parameter to # determine how many words are included in the output. predictions = model.generate(vectorized_batch, **inference_args) return utils._convert_to_result(batch, predictions, model_id)
Jalankan pipeline Anda, dengan menentukan jalur ke model terlatih. Contoh ini menggunakan pengendali model TensorFlow.
class FormatOutput(beam.DoFn): def process(self, element, *args, **kwargs): yield "Input: {input}, Output: {output}".format(input=element.example, output=element.inference) # Instantiate a NumPy array of string prompts for the model. examples = np.array(["Tell me the sentiment of the phrase 'I like pizza': "]) # Specify the model handler, providing a path and the custom inference function. model_handler = TFModelHandlerNumpy(model_path, inference_fn=gemma_inference_function) with beam.Pipeline() as p: _ = (p | beam.Create(examples) # Create a PCollection of the prompts. | RunInference(model_handler, inference_args={'max_length': 32}) # Send the prompts to the model and get responses. | beam.ParDo(FormatOutput()) # Format the output. | beam.Map(print) # Print the formatted output. )
Langkah selanjutnya
- Membuat pipeline streaming Dataflow yang menggunakan RunInference dan Gemma.
- Menjalankan inferensi dengan model terbuka Gemma di Google Colab (memerlukan Colab Enterprise).
- Menjalankan pipeline dengan GPU.
- Menyesuaikan model.