Gemma adalah keluarga model terbuka yang dibangun dari riset dan teknologi yang sama dengan yang digunakan untuk membuat model Gemini. Rangkaian model ini mencakup Gemma, CodeGemma, PaliGemma, dan RecurrentGemma. Secara kolektif, model-model ini mampu melakukan berbagai tugas, termasuk pembuatan teks, pelengkapan dan pembuatan kode, berbagai tugas bahasa visi, dan bisa berjalan di berbagai perangkat mulai dari edge, desktop, hingga cloud. Anda dapat melangkah lebih jauh dan menyempurnakan model Gemma agar sesuai dengan kebutuhan spesifik Anda.
Gemma dibuat untuk komunitas terbuka developer dan peneliti yang mendukung inovasi AI. Anda bisa menjelajahi lebih lanjut tentang Gemma dan mengakses panduan memulai di ai.google.dev/gemma
Dalam postingan blog ini, mari kita jelajahi 3 ide project yang menyenangkan dan cara menggunakan model Gemma untuk membuatnya:
Alfabet Korea, atau Hangul, telah mengalami perubahan seiring berjalannya waktu, sehingga ada beberapa huruf yang tidak lagi digunakan dalam bahasa Korea modern. Huruf-huruf yang sudah tidak digunakan ini meliputi:
2. ㆆ (Yeorin-hieut): Diucapkan sebagai 'light h', mirip dengan versi lebih lembut huruf 'h' dalam bahasa Inggris.
3. ㅿ (Bansiot): Merepresentasikan bunyi 'z'.
4. ㆁ (Yet-ieung): Bunyi sengau velar yang mirip dengan 'ng' dalam kata 'sing'.
Bagi penutur asli bahasa Korea, membaca literatur kuno merupakan tantangan tersendiri karena penggunaan huruf yang sekarang tidak digunakan lagi. Hangul Kuno tidak memiliki spasi di antara kata-katanya, yang semakin mempersulit keterbacaan. Sebaliknya, Hangul modern menggunakan spasi, konsisten dengan sebagian besar sistem alfabet.
Kemampuan Gemma memungkinkan lahirnya penerjemah yang membantu memahami dan menjembatani kesenjangan antara bahasa Korea kontemporer dan kuno. SentencePiece berfungsi sebagai fondasi untuk tokenizer Gemma. Berbeda dengan tokenizer konvensional, yang sangat bergantung pada panduan khusus bahasa atau kamus yang telah ditentukan, SentencePiece menjalani pelatihan secara langsung pada data teks mentah. Akibatnya, ia tidak bergantung pada bahasa tertentu dan dapat beradaptasi dengan berbagai bentuk data teks.
Software
Untuk menyederhanakan tugas, kami akan mengadopsi struktur berikut untuk menyesuaikan model. Model ini akan menghasilkan teks bahasa Korea kontemporer berdasarkan input pengguna dalam Hangul Kuno.
Model Instruction-tuned (IT) dilatih dengan pemformat tertentu. Perhatikan bahwa token kontrol ditokenisasi dalam satu token dengan cara berikut:
Untuk pelatihan model, kami akan menggunakan “Hong Gildong jeon”, sebuah novel Korea era Dinasti Joseon.
Untuk menilai kualitas output model, kami akan menggunakan teks dari luar set data pelatihan, yaitu novel klasik Korea “Suk Yeong Nang Ja jeon” oleh penulis yang tidak dikenal.
Model ini tidak memiliki kemampuan untuk menerjemahkan Hangul Kuno.
Setelah penyesuaian, respons mengikuti instruksi, dan menghasilkan teks bahasa Korea kontemporer berdasarkan teks Hangul Kuno.
Sebagai referensi Anda, silakan lihat teks berikut, yang telah diterjemahkan oleh manusia:
“금두꺼비가 품에 드는 게 보였으니 얼마 안 있어 자식을 낳을 것입니다.
하였다. 과연 그 달부터 잉태하여 십삭이 차니”
Catatan: Teks dalam bahasa Korea berarti, "Aku melihat kodok emas dalam tangannya, jadi tidak lama lagi dia akan melahirkan seorang anak." Memang, dia mengandung sejak bulan itu dan berusia sepuluh bulan.
Dan inilah output lainnya.
Dan terjemahannya oleh manusia seperti ini:
“이 때는 사월 초파일이었다. 이날 밤에 오색구름이 집을 두르고 향내 진동하며 선녀 한 쌍이 촉을 들고 들어와 김생더러 말하기를,”
Catatan: Teks dalam bahasa Korea berarti, Pada saat itu, tanggal 8 April. Pada malam itu, dengan awan lima warna yang mengelilingi rumah dan aroma dupa yang menggetarkan, sepasang peri datang sambil memegang lilin dan berkata kepada Kim Saeng,
Meskipun tidak sempurna, terjemahan ini menghasilkan draf awal yang cukup baik. Hasilnya luar biasa, mengingat set data yang terbatas pada satu buku. Meningkatkan keragaman sumber data akan meningkatkan kualitas terjemahannya.
Setelah menyesuaikan model, Anda bisa langsung memublikasikannya ke Kaggle dan Hugging Face.
Berikut contohnya.
# Save the finetuned model
gemma.save_to_preset("./old-korean-translator")
# Upload the model variant on Kaggle
kaggle_uri = "kaggle://my_kaggle_username/gemma-ko/keras/old-korean-translator"
keras_nlp.upload_preset(kaggle_uri, "./old-korean-translator")
Untuk mencapai tugas yang serupa, Anda bisa meniru struktur yang sama. Di bawah ini adalah beberapa contohnya:
Berbagai konsep dan objek sehari-hari memiliki nama yang berbeda tergantung wilayahnya. Misalnya, dalam bahasa Inggris Amerika (AmE), orang menggunakan istilah seperti "elevator," "truck," "cookie," dan "french fries," sedangkan dalam bahasa Inggris Britania Raya (BrE), kata-kata yang bermakna sama adalah "lift," "lorry," "biscuit," dan "chips".
Selain perbedaan kosakata, terdapat juga variasi ejaan. Misalnya, dalam bahasa AmE, kata-kata yang berakhiran "-or" sering kali dieja dengan "-our" dalam bahasa BrE. Contohnya adalah "color" (AmE) dan "colour" (BrE), atau "humor" (AmE) dan "humour" (BrE).
Variasi ejaan lainnya adalah perbedaan "-ize" versus "-ise". Dalam AmE, kata-kata seperti "organize" dan "realize" biasanya dieja dengan huruf "z", sedangkan dalam BrE, ejaan yang biasa digunakan adalah "organise" dan "realise", dengan huruf "s".
Dengan bantuan alat AI seperti Gemma, Anda dapat menciptakan transfer gaya dari satu bahasa Inggris ke bahasa lainnya, yang memungkinkan transisi mulus antara gaya penulisan bahasa Inggris Amerika dan Inggris Britania Raya.
Di wilayah Kansai, Jepang, terdapat sekumpulan dialek berbeda yang dikenal sebagai Kansai-ben. Dibandingkan dengan bahasa Jepang standar, penutur asli menganggap Kansai-ben lebih merdu dan keras dalam pengucapan serta intonasinya.
Dengan memanfaatkan kemampuan Gemma, Anda bisa menciptakan penerjemah dialek dengan menyiapkan set data Kansai-ben dalam jumlah besar.
Dengan Gemma sebagai teman tepercaya, Anda bisa memulai perjalanan untuk membuat game yang menarik. Semuanya dimulai dengan satu kalimat sederhana yang berfungsi sebagai fondasi konsep game Anda. Gemma akan membimbing Anda dengan terampil dalam menyempurnakan konsep game, membuat karakter utama yang rumit, dan menulis cerita utama menarik yang akan memikat para pemain ke dalam dunia game Anda.
Software
Dimulai dengan menulis konsep utama, satu kalimat tentang game Anda, seperti di bawah ini:
Gemma bisa menambahkan lebih banyak detail berdasarkan pitch Anda.
Input : “Elaborasi game ini dengan konsep utama di bawah ini.\n{pitch}”
Contoh Output :
Input : “Desain karakter utama”
Contoh Output :
Input : “Desain karakter penjahat”
Contoh Output :
Input : “Tulis cerita utama game ini dengan perkenalan, pengembangan, perubahan, dan kesimpulan.”
Contoh Output :
Dengan memodifikasi perintah, Anda bisa mendapatkan pendamping yang serupa untuk hampir semua jenis konten kreatif.
Pitch : “Sikat gigi bertenaga uap yang baru”
Input : “Buat frasa pemasaran untuk produk baru di bawah ini.\n{pitch}”
Contoh Output :
Pitch : “Alam semesta dan bintang jatuh”
Input : “Buat ide penjual bunga yang terinspirasi dari konsep di bawah ini, beserta saran bunga yang sesuai.\n{pitch}”
Contoh Output :
Pitch : “Cyberpunk Kraken”
Input : “Buat resep masakan dengan konsep di bawah ini.\n{pitch}”
Contoh Output :
Metode tradisional pengiriman surat untuk Sinterklas memiliki keterbatasan dan tidak personal. Anak-anak sering kali harus menunggu berminggu-minggu atau bahkan berbulan-bulan untuk mendapatkan balasan, dan surat mereka mungkin tidak sedetail atau seinteraktif yang mereka inginkan.
Dalam project ini, kita akan menggunakan Gemma, yang berjalan di Raspberry Pi, untuk membuat surat-surat ajaib dari Sinterklas menggunakan kekuatan model bahasa besar.
Perangkat keras
Software
Pembuatan teks
Anda bisa menulis aplikasi C++ Anda sendiri dengan libgemma.
Gunakan perintah di bawah ini untuk menginstruksikan model
Sebelum membangun, ubah MODEL_PATH
yang ditetapkan di dalam kode.
$ g++ santa.cc -I . -I build/_deps/highway-src -I build/_deps/sentencepiece-src build/libgemma.a build/_deps/highway-build/libhwy.a build/_deps/sentencepiece-build/src/libsentencepiece.so -lstdc++ -l
Jalankan
$ LD_LIBRARY_PATH=./build/_deps/sentencepiece-build/src ./a.out
Aplikasi ini akan membaca teks dari letter.txt
dan membuat surat dari Sinterklas.
CATATAN: pembuatan teks pada Raspberry Pi mungkin memerlukan waktu.
Dan inilah hasil akhirnya nanti:
$ ./main -m models/gemma-2b-it.gguf --repeat-penalty 1.0 -p “You are Santa Claus, write a letter back from this kid.\n<start_of_turn>user\nPLACE_THE_CONTEXT_OF_LETTER_HERE<end_of_turn>\n<start_of_turn>model\n”
Gemma menawarkan kemungkinan yang tak terbatas. Kami harap beberapa saran ini menginspirasi Anda, dan kami tidak sabar melihat kreasi Anda menjadi nyata.
Kami mengajak Anda untuk bergabung dengan server Discord Komunitas Developer Google. Di sana, Anda bisa membagikan project dan terhubung dengan individu lain yang sepikiran.
Selamat mencoba!