Tentang model generatif

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

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

Penggunaan model generatif untuk membangun fitur ini tidak memerlukan keahlian machine learning (ML). Anda tidak perlu mengumpulkan set data besar atau melatih model. Yang diperlukan untuk memulai prototipe pertama 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). Kelompok model Gemini dapat memproses lebih dari data teks, dan meskipun dapat menjalankan fungsi LLM, model ini lebih dikenal sebagai model generatif.

Contoh aplikasi

Contoh berikut menunjukkan input teks umum ke, dan output dari, model 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 segala macam perilaku yang berguna seperti ini, hanya dengan membuat teks input yang tepat, yang juga disebut prompt. Seni dan ilmu pengetahuan untuk mencari kata-kata yang tepat agar model generatif dapat melakukan apa yang Anda inginkan disebut desain prompt (juga disebut "prompt engineering" atau sekadar "prompting").

Prompt Design 101 (Desain prompt 101)

Bagian sebelumnya menunjukkan beberapa contoh perintah yang berisi instruksi, seperti 'Tulis puisi'. Instruksi semacam ini mungkin cocok untuk jenis tugas tertentu. Namun, untuk aplikasi lain, teknik prompting lain yang disebut few-shot prompting mungkin akan lebih efektif. Perintah few-shot memanfaatkan fakta bahwa model bahasa besar sangat mahir dalam mengenali dan mereplikasi pola dalam data teks. Idenya adalah untuk mengirim pola teks ke model generatif yang ingin diselesaikannya. Misalnya, Anda ingin membangun aplikasi yang mengambil nama negara sebagai input dan menghasilkan ibu kotanya. Berikut adalah prompt teks yang didesain untuk melakukan hal tersebut:

Italy : Rome
France : Paris
Germany :

Pada perintah ini, Anda akan membuat pola: [country] : [capital]. Jika Anda mengirim perintah ini ke model bahasa besar, perintah ini akan melengkapi pola secara otomatis dan menampilkan hal 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 yang ditulis tangan Anda), tetapi juga menampilkan seluruh daftar pasangan negara dan kapitalisasi tambahan. Hal itu karena model generatifnya adalah "melanjutkan pola". Jika Anda hanya perlu membuat fungsi yang memberi tahu ibu kota negara input ("Jerman: Berlin"), Anda mungkin tidak terlalu peduli dengan teks yang dihasilkan model setelah "Berlin". Memang, sebagai desainer aplikasi, Anda mungkin ingin memotong contoh-contoh yang tidak relevan tersebut. Selain itu, Anda mungkin perlu melakukan parameterisasi input, sehingga Jerman bukan string tetap, tetapi variabel yang disediakan pengguna akhir:

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

Anda baru saja menulis beberapa contoh perintah untuk menghasilkan ibu kota negara.

Anda dapat menyelesaikan banyak tugas dengan mengikuti template prompt Few-shot ini. Berikut adalah beberapa perintah dalam format yang sedikit berbeda yang 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 perintah "kamus terbalik" ini. Setelah diberikan definisi, metode ini 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 memperhatikan bahwa pola yang tepat dari prompt few-shot ini sedikit bervariasi. Selain berisi contoh, memberikan petunjuk di perintah Anda merupakan strategi tambahan yang perlu dipertimbangkan saat menulis perintah Anda sendiri, karena membantu menyampaikan intent Anda ke model.

Prompting versus pengembangan software tradisional

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

Parameter model

Setiap prompt yang Anda kirim ke model 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 maksimum: Menentukan jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri atas sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.

  2. Suhu: Suhu 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 deterministik atau kurang terbuka, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 bersifat deterministik, artinya bahwa respons probabilitas tertinggi selalu dipilih.

  3. topK: Parameter topK mengubah cara model memilih token untuk output. topK yang bernilai 1 berarti token yang dipilih adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding serakah), sementara topK yang bernilai 3 berarti token berikutnya dipilih dari 3 token yang paling mungkin menggunakan suhu tersebut. Untuk setiap langkah pemilihan token, token topK dengan probabilitas tertinggi akan diambil sampelnya. Token kemudian difilter lebih lanjut berdasarkan topP dengan token akhir yang 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 probabilitasnya 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 suhu dan mengecualikan C sebagai kandidat. Nilai topP default adalah 0,95.

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

Jenis perintah

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

Perintah zero-shot

Perintah ini tidak berisi contoh untuk direplikasi oleh model. Pada dasarnya, prompt zero-shot menunjukkan kemampuan model untuk menyelesaikan prompt tanpa contoh atau informasi tambahan. Artinya, model harus mengandalkan pengetahuannya yang sudah ada sebelumnya untuk menghasilkan jawaban yang masuk akal.

Pola zero-shot prompt 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 membuat model melanjutkan teks tanpa petunjuk apa pun. Misalnya, berikut adalah perintah zero-shot yang 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 menghasilkan format teks kreatif, seperti puisi, kode, naskah, komposisi musik, email, atau surat.

Perintah satu kali

Perintah-perintah ini memberi model satu contoh untuk mereplikasi dan melanjutkan pola tersebut. Hal ini memungkinkan pembuatan respons yang dapat diprediksi dari model.

Misalnya, Anda dapat membuat pasangan makanan seperti:

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

Perintah beberapa kali

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

Contoh perintah 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 deterministik?

Jawaban singkatnya - ya untuk keduanya. Saat Anda meminta model generatif, respons teks akan dihasilkan dalam dua tahap. Pada tahap pertama, model generatif memproses perintah input dan menghasilkan distribusi probabilitas atas token (kata) yang mungkin muncul berikutnya. Misalnya, jika Anda meminta dengan teks input "The dog jumped over ... ", 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 sebenarnya melalui salah satu dari beberapa strategi decoding. Strategi decoding sederhana dapat memilih token yang paling mungkin di setiap jangka waktu. Proses ini akan selalu deterministik. Namun, Anda dapat memilih untuk menghasilkan respons dengan mengambil sampel secara acak daripada 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 yang 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 Anda memiliki pemahaman yang lebih mendalam tentang prompt dan model generatif, coba tulis perintah Anda sendiri menggunakan Google AI Studio.
  • Lihat Panduan perintah untuk mempelajari praktik terbaik untuk membuat perintah lebih lanjut.