Tentang model generatif

Model kecerdasan buatan (AI) generatif seperti lini model Gemini dapat membuat konten dari berbagai jenis input data, termasuk teks, gambar, dan audio. Pada tingkat paling dasar, model ini beroperasi seperti aplikasi pelengkapan otomatis yang canggih. Dengan teks input tertentu ("Anda dapat menggiring kuda ke air"), model generatif dapat memprediksi bahwa teks output yang secara statistik cenderung mengikuti ("tetapi Anda tidak dapat membuatnya minum"), berdasarkan pola yang dipelajari dari data pelatihannya. Anda dapat menggunakan properti dasar model generatif ini untuk berbagai aplikasi:

  • Membuat tulisan kreatif seperti puisi, cerita pendek, metafora, dan postingan blog
  • Mengonversi data terstruktur menjadi teks bebas format
  • Mengekstrak dan meringkas informasi dari teks bebas
  • Buat kode
  • Menerjemahkan antarbahasa

Menggunakan model generatif untuk membuat fitur ini tidak memerlukan keahlian machine learning (ML). Anda tidak perlu mengumpulkan set data yang besar atau melatih model. Yang diperlukan untuk memulai prototipe pertama Anda adalah menjelaskan apa yang Anda ingin model lakukan dalam beberapa kalimat.

Model generatif yang hanya menangani input dan output teks juga dikenal sebagai model bahasa besar (LLM). Rangkaian model Gemini dapat memproses lebih banyak data teks, dan meskipun dapat menjalankan fungsi LLM, model ini lebih dikenal sebagai model generatif.

Contoh aplikasi

Contoh berikut menunjukkan input teks standar ke, dan output dari, model generatif.

Membuat puisi

Input pengguna: Write me a four-line poem about puppies and Android phones. Make sure it rhymes.

Output model:

Puppies are cute,
Android phones are neat,
They both bring joy,
And make life complete.

Membuat daftar

Input pengguna: Generate a bulleted list of items I need to pack for a three-day camping trip.

Output model:

*   Tent
*   Sleeping bag
*   Sleeping pad
*   Camp stove
*   Pots and pans
*   Utensils
*   Food
*   Water
*   First-aid kit
*   Sunscreen
*   Insect repellent
*   ...

Anda bisa membuat model generatif untuk menghasilkan berbagai perilaku yang berguna seperti ini, cukup dengan membuat teks input yang tepat, yang juga disebut perintah. Seni dan ilmu untuk mencari tahu kata-kata yang tepat agar model generatif melakukan hal yang Anda inginkan disebut desain perintah (juga disebut "prompt engineering" atau hanya "prompting").

Dasar-Dasar desain perintah

Bagian sebelumnya menunjukkan beberapa contoh perintah yang berisi petunjuk, seperti 'Tulis puisi untuk saya'. Petunjuk semacam ini mungkin berfungsi dengan baik untuk jenis tugas tertentu. Namun, untuk aplikasi lain, teknik permintaan lain yang disebut few-shot prompting mungkin berfungsi lebih baik. Perintah few-shot memanfaatkan fakta bahwa model bahasa besar sangat mahir dalam mengenali dan mereplikasi pola dalam data teks. Idenya adalah mengirim pola teks yang dipelajari model generatif untuk diselesaikan. Misalnya, Anda ingin mem-build aplikasi yang menggunakan nama negara sebagai input dan menghasilkan ibu kotanya. Berikut adalah perintah teks yang dirancang untuk melakukan hal tersebut:

Italy : Rome
France : Paris
Germany :

Dalam perintah ini, Anda menetapkan pola: [country] : [capital]. Jika Anda mengirim perintah ini ke model bahasa besar, perintah tersebut akan otomatis melengkapi polanya dan menampilkan sesuatu seperti ini:

     Berlin
Turkey : Ankara
Greece : Athens

Respons model ini mungkin terlihat sedikit aneh. Model ini tidak hanya menampilkan ibu kota Jerman (negara terakhir dalam perintah tulisan tangan Anda), tetapi juga seluruh daftar pasangan negara dan ibu kota tambahan. Itu karena model generatif adalah "melanjutkan pola". Jika yang Anda coba lakukan adalah mem-build fungsi yang memberi tahu Anda ibu kota negara input ("Jerman : Berlin"), Anda mungkin tidak terlalu peduli dengan teks apa pun yang dihasilkan model setelah "Berlin". Memang, sebagai desainer aplikasi, Anda mungkin ingin memotong contoh yang tidak relevan tersebut. Selain itu, Anda mungkin ingin membuat parameter input, sehingga Jerman bukan string tetap, tetapi variabel yang disediakan pengguna akhir:

Italy : Rome
France : Paris
<user input here> :

Anda baru saja menulis perintah singkat untuk membuat ibu kota negara.

Anda dapat menyelesaikan banyak tugas dengan mengikuti template perintah beberapa tembakan ini. Berikut adalah perintah singkat dengan format yang sedikit berbeda yang mengonversi Python menjadi JavaScript:

Convert Python to JavaScript.
Python: print("hello world")
JavaScript: console.log("hello world")
Python: for x in range(0, 100):
JavaScript: for(var i = 0; i < 100; i++) {
Python: ${USER INPUT HERE}
JavaScript:

Atau, gunakan perintah "kamus terbalik" ini. Dengan definisi yang diberikan, fungsi ini akan menampilkan kata yang sesuai dengan definisi tersebut:

Given a definition, return the word it defines.
Definition: When you're happy that other people are also sad.
Word: schadenfreude
Definition: existing purely in the mind, but not in physical reality
Word: abstract
Definition: ${USER INPUT HERE}
Word:

Anda mungkin telah memperhatikan bahwa pola persis dari perintah beberapa gambar ini sedikit berbeda. Selain berisi contoh, memberikan petunjuk dalam prompt adalah strategi tambahan yang perlu dipertimbangkan saat menulis prompt Anda sendiri, karena hal ini membantu menyampaikan intent Anda ke model.

Pengembangan software dengan perintah versus pengembangan software tradisional

Tidak seperti software tradisional yang dirancang sesuai spesifikasi yang ditulis dengan cermat, perilaku model generatif sebagian besar tidak jelas bahkan bagi pelatih model. Akibatnya, Anda sering kali tidak dapat memprediksi terlebih dahulu jenis struktur perintah yang paling berfungsi untuk model tertentu. Selain itu, perilaku model generatif sebagian besar ditentukan oleh data pelatihannya, dan karena model terus disesuaikan pada set data baru, terkadang model berubah cukup banyak sehingga secara tidak sengaja mengubah struktur perintah yang paling efektif. Apa artinya bagi Anda? Bereksperimenlah! Coba format perintah yang berbeda.

Parameter model

Setiap perintah yang Anda kirim ke model akan menyertakan parameter value yang mengontrol cara model menghasilkan respons. Model ini dapat memberikan hasil yang berbeda untuk parameter value yang berbeda. Parameter model yang paling umum adalah:

  1. Token output maks: Menentukan jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri atas sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.

  2. Temperature: Suhu akan mengontrol tingkat keacakan dalam pemilihan token. Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang lebih determenistik atau kurang terbuka, sementara suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 bersifat determenistik, yang berarti bahwa respons probabilitas tertinggi akan selalu dipilih.

  3. topK: Parameter topK mengubah cara model memilih token untuk output. topK 1 berarti token yang dipilih adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan topK 3 berarti token berikutnya dipilih dari antara 3 token yang paling mungkin menggunakan suhu. Untuk setiap langkah pemilihan token, token topK dengan probabilitas tertinggi akan diambil sampelnya. Token kemudian difilter lebih lanjut berdasarkan topP dengan token akhir dipilih menggunakan sampling suhu.

  4. topP: Parameter topP mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai topP. Misalnya, jika token A, B, dan C memiliki probabilitas 0,3, 0,2, dan 0,1 serta nilai topP adalah 0,5, model akan memilih A atau B sebagai token berikutnya dengan menggunakan suhu dan mengecualikan C sebagai kandidat. Nilai topP default adalah 0,95.

  5. stop_sequences: Menetapkan urutan berhenti untuk memberi tahu model agar berhenti membuat konten. Urutan perhentian dapat berupa urutan karakter apa pun. Hindari penggunaan rangkaian karakter yang mungkin muncul di konten yang dihasilkan.

Jenis perintah

Bergantung pada tingkat informasi kontekstual yang ada di dalamnya, perintah diklasifikasikan secara luas menjadi tiga jenis.

Perintah zero-shot

Perintah ini tidak berisi contoh untuk direplikasi. Perintah zero-shot pada dasarnya menunjukkan kemampuan model untuk menyelesaikan perintah tanpa contoh atau informasi tambahan. Artinya, model harus mengandalkan pengetahuan yang sudah ada untuk menghasilkan jawaban yang masuk akal.

Beberapa pola perintah zero-shot yang umum digunakan adalah:

  • Konten-petunjuk
<Overall instruction>
<Content to operate on>

Misalnya,

Summarize the following into two sentences at the third-grade level:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds.

Hummingbirds are made up of three main parts: the head, the body, and the tail.
The head is small and round, and it contains the eyes, the beak, and the brain.
The body is long and slender, and it contains the wings, the legs, and the
heart. The tail is long and forked, and it helps the hummingbird to balance
while it is flying.

Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color!

Hummingbirds are very active creatures. They spend most of their time flying,
and they are also very good at hovering. Hummingbirds need to eat a lot of food
in order to maintain their energy, and they often visit flowers to drink nectar.

Hummingbirds are amazing creatures. They are small, but they are also very
powerful. They are beautiful, and they are very important to the ecosystem.
  • Instruction-content-instruction
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>

Misalnya,

Here is some text I'd like you to summarize:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds. Hummingbirds
are made up of three main parts: the head, the body, and the tail. The head is
small and round, and it contains the eyes, the beak, and the brain. The body is
long and slender, and it contains the wings, the legs, and the heart. The tail
is long and forked, and it helps the hummingbird to balance while it is flying.
Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color! Hummingbirds are very active creatures. They spend most
of their time flying, and they are also very good at hovering. Hummingbirds need
to eat a lot of food in order to maintain their energy, and they often visit
flowers to drink nectar. Hummingbirds are amazing creatures. They are small, but
they are also very powerful. They are beautiful, and they are very important to
the ecosystem.

Summarize it in two sentences at the third-grade reading level.
  • Lanjutan. Terkadang, Anda dapat meminta model untuk melanjutkan teks tanpa petunjuk apa pun. Misalnya, berikut adalah perintah zero-shot yang modelnya dimaksudkan untuk melanjutkan input yang diberikan:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow

Gunakan perintah zero-shot untuk membuat format teks kreatif, seperti puisi, kode, skrip, komposisi musik, email, atau surat.

Perintah one-shot

Perintah ini memberikan satu contoh kepada model untuk direplikasi dan melanjutkan pola tersebut. Hal ini memungkinkan pembuatan respons yang dapat diprediksi dari model.

Misalnya, Anda dapat membuat kombinasi makanan seperti:

Food: Apple
Pairs with: Cheese
Food: Pear
Pairs with:

Perintah few-shot

Perintah ini memberi model beberapa contoh untuk direplikasi. Gunakan perintah sedikit untuk menyelesaikan tugas yang rumit, seperti menyintesis data berdasarkan pola.

Contoh perintahnya dapat berupa:

Generate a grocery shopping list for a week for one person. Use the JSON format
given below.
{"item": "eggs", "quantity": "6"}
{"item": "bread", "quantity": "one loaf"}

Model generatif di balik layar

Bagian ini bertujuan untuk menjawab pertanyaan - Apakah ada keacakan dalam respons model generatif, atau apakah respons tersebut bersifat determenistik?

Jawaban singkatnya - ya untuk keduanya. Saat Anda meminta model generatif, respons teks akan dihasilkan dalam dua tahap. Pada tahap pertama, model generatif akan memproses perintah input dan menghasilkan distribusi probabilitas terhadap kemungkinan token (kata) yang mungkin akan muncul berikutnya. Misalnya, jika Anda meminta dengan teks input " melompati ... ", model generatif akan menghasilkan array kemungkinan kata berikutnya:

[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]

Proses ini bersifat deterministik; model generatif akan menghasilkan distribusi yang sama ini setiap kali memasukkan teks perintah yang sama.

Pada tahap kedua, model generatif mengonversi distribusi ini menjadi respons teks yang sebenarnya melalui salah satu dari beberapa strategi decoding. Strategi decoding sederhana mungkin memilih token yang paling mungkin di setiap jangka waktu. Proses ini akan selalu bersifat deterministik. Namun, Anda dapat memilih untuk membuat respons dengan mengambil sampel secara acak pada distribusi yang ditampilkan oleh model. Proses ini akan bersifat stokastik (acak). Kontrol tingkat keacakan yang diizinkan dalam proses decoding ini dengan menyetel suhu. Suhu 0 berarti hanya token yang paling mungkin dipilih, dan tidak ada keacakan. Sebaliknya, suhu tinggi memasukkan tingkat keacakan yang tinggi ke dalam token yang dipilih oleh model, sehingga menghasilkan respons model yang lebih tidak terduga dan mengejutkan.

Bacaan lebih lanjut

  • Setelah memiliki pemahaman yang lebih mendalam tentang perintah dan model generatif, coba tulis perintah Anda sendiri menggunakan Google AI Studio.
  • Lihat Panduan perintah untuk mempelajari lebih lanjut praktik terbaik dalam membuat perintah.