Tentang model generatif

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

  • Menghasilkan tulisan kreatif seperti puisi, cerpen, metafora, dan postingan blog
  • Mengonversi data terstruktur menjadi teks bentuk bebas
  • Mengekstrak dan meringkas informasi dari teks bentuk bebas
  • Buat kode
  • Menerjemahkan antarbahasa

Penggunaan model generatif untuk membangun fitur-fitur ini tidak memerlukan mesin apa pun pembelajaran (ML). Anda tidak perlu mengumpulkan {i>dataset<i} besar atau melatih model transformer. Yang diperlukan untuk memulai prototipe pertama Anda adalah menjelaskan apa yang Anda inginkan model dalam beberapa kalimat.

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

Contoh aplikasi

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

Buat 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 mendapatkan model generatif untuk menghasilkan berbagai perilaku yang berguna seperti cara ini, hanya dengan membuat teks input yang tepat, yang juga disebut prompt. Seni dan ilmu untuk mencari tahu kata-kata yang tepat agar model generatif dapat melakukan apa yang Anda inginkan disebut desain prompt (juga disebut "prompt engineering" atau cukup "memberitahukan").

Prompt Design 101

Bagian sebelumnya menunjukkan beberapa contoh prompt yang berisi instruksi, seperti 'Write me a poem'. Instruksi semacam ini mungkin cocok untuk jenis tugas tertentu. Namun, untuk aplikasi lain, yang disebut few-shot prompting mungkin akan berfungsi lebih baik. Beberapa perintah membutuhkan waktu keuntungan dari fakta bahwa model bahasa besar sangat mahir dalam mengenali dan mereplikasi pola dalam data teks. Idenya adalah untuk mengirimkan generatif adalah pola teks yang sedang dipelajarinya untuk diselesaikan. Misalnya, Anda ingin membangun aplikasi yang mengambil sebagai input nama negara dan menghasilkan output ibu kota negara bagian. Berikut adalah prompt teks yang didesain untuk melakukan hal tersebut:

Italy : Rome
France : Paris
Germany :

Dalam perintah ini, Anda akan menetapkan pola: [country] : [capital]. Jika Anda mengirim prompt ini ke model bahasa besar, pola tersebut akan otomatis tampilkan hasil seperti ini:

     Berlin
Turkey : Ankara
Greece : Athens

Respons model ini mungkin terlihat sedikit aneh. Model ini tidak hanya mengembalikan ibu kota Jerman (negara terakhir dalam petunjuk yang Anda tulis tangan), tetapi juga seluruh daftar tambahan pasangan negara dan modal. Itu karena generatif adalah "melanjutkan pola". Jika yang Anda coba lakukan adalah buat fungsi yang memberitahukan ibu kota suatu negara masukan ("Jerman : Berlin"), Anda mungkin tidak terlalu peduli dengan teks yang yang dihasilkan setelah "Berlin." Memang, sebagai desainer aplikasi, Anda mungkin ingin untuk memotong contoh-contoh yang tidak relevan itu. Selain itu, Anda mungkin ingin membuat parameter input, sehingga bahasa Jerman bukan string tetap, tetapi variabel yang diberikan pengguna akhir:

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

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

Anda dapat menyelesaikan banyak tugas dengan mengikuti beberapa perintah ini {i>template<i}. Berikut adalah prompt few-shot dengan format yang sedikit berbeda mengonversi Python ke 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 "kamus terbalik" ini . Berdasarkan definisi, fungsi ini mengembalikan kata yang cocok 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 dari {i> few-shot prompt<i} ini bervariasi sedikit. Selain berisi contoh, memberikan petunjuk di prompt adalah strategi tambahan yang perlu dipertimbangkan saat menulis perintah Anda sendiri, tujuan Anda mengomunikasikan intent ke model.

Menjalankan perintah versus pengembangan software tradisional

Tidak seperti perangkat lunak tradisional yang dirancang dengan spesifikasi yang ditulis dengan hati-hati, sebagian besar perilaku model generatif tidak jelas bahkan untuk pelatih model. Sebagai seorang hasil, Anda sering kali tidak dapat memprediksi lebih awal jenis struktur prompt apa yang paling cocok untuk model tertentu. Terlebih lagi, perilaku model generatif sebagian besar ditentukan oleh data pelatihannya, dan karena model terus menerus sesuai pada {i>dataset<i} baru, terkadang model cukup berubah sehingga secara tidak sengaja mengubah struktur prompt mana yang berfungsi paling baik. Pengaruhnya bagi Anda? Bereksperimenlah! Coba format perintah yang berbeda.

Parameter model

Setiap dialog yang Anda kirim ke model akan menyertakan parameter value yang mengontrol cara model akan 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 yang dihasilkan dalam respons. Token terdiri atas sekitar empat karakter. 100 token sesuai dengan sekitar 60-80 kata.

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

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

  4. topP: Parameter topP mengubah cara model memilih token untuk {i>output<i} tersebut. Token dipilih dari yang paling mungkin hingga yang paling tidak mungkin hingga 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 temperatur dan mengecualikan C sebagai kandidat. Nilai topP default adalah 0,95.

  5. stop_sequences: Menetapkan urutan perhentian ke memerintahkan model untuk berhenti menghasilkan konten. Urutan perhentian dapat berupa urutan karakter. Cobalah untuk menghindari penggunaan karakter yang dapat muncul di konten yang dibuat.

Jenis perintah

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

Perintah zero-shot

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

Beberapa pola prompt 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.
  • Petunjuk konten petunjuk
<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 melanjutkan teks tanpa petunjuk. Misalnya, berikut ini prompt zero-shot dengan model 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 satu kali

Perintah ini memberikan model dengan satu contoh untuk direplikasi dan dilanjutkan polanya. Hal ini memungkinkan pembuatan respons yang dapat diprediksi dari model transformer.

Misalnya, Anda dapat menghasilkan pasangan makanan seperti:

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

Beberapa perintah singkat

Perintah ini memberikan beberapa contoh untuk direplikasi. Gunakan untuk menyelesaikan tugas yang rumit, seperti melakukan sintesis data berdasarkan pada sebuah 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 model tertentu, atau apakah itu determenistik?

Jawaban singkat - ya untuk keduanya. Saat Anda memerintahkan model generatif, respons akan dihasilkan dalam dua tahap. Pada tahap pertama, model generatif memproses prompt input dan menghasilkan distribusi probabilitas melalui token (kata) yang mungkin muncul berikutnya. Misalnya, jika Anda meminta dengan teks input "The dog jumped over the ... ", model generatif akan menghasilkan array kemungkinan kata berikutnya:

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

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

Pada tahap kedua, model generatif mengubah distribusi ini menjadi respons teks aktual melalui salah satu dari beberapa strategi decoding. Cara sederhana strategi decoding dapat memilih token yang paling mungkin di setiap jangka waktu. Ini proses akan selalu determenistik. Namun, Anda dapat memilih untuk buat respons dengan secara acak pengambilan sampel terhadap distribusi yang ditampilkan oleh model transformer. Proses ini akan bersifat stokastik (acak). Mengontrol tingkat keacakan yang diizinkan dalam proses decoding ini dengan mengatur temperatur. J suhu 0 berarti hanya token yang paling mungkin yang dipilih, dan tidak ada keacakan. Sebaliknya, suhu yang tinggi memasukkan tingkat keacakan yang tinggi ke dalam token yang dipilih oleh model, yang kemudian mengarah ke hasil yang tidak terduga respons model.

Bacaan lebih lanjut

  • Setelah Anda 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 tentang praktik terbaik untuk membuat prompt.