Gemini API memungkinkan Anda mengirim perintah multimodal ke model Gemini. Modalitas yang didukung mencakup teks, gambar, dan video.
Untuk panduan desain perintah umum, lihat Strategi desain perintah.
Model yang didukung
Model berikut mendukung respons perintah multimodal.
- Gemini 1.5 Flash
- Gemini 1.5 Pro
- Gemini 1.0 Pro Vision
Anda dapat meningkatkan perintah multimodal dengan mengikuti praktik terbaik berikut:
-
Dasar-dasar desain perintah
- Berikan petunjuk yang spesifik: Buat petunjuk yang jelas dan ringkas sehingga tidak menimbulkan banyak kesalahpahaman.
- Tambahkan beberapa contoh ke perintah Anda: Gunakan contoh few-shot yang realistis untuk menggambarkan hal yang ingin Anda capai.
- Uraikan langkah demi langkah: Bagi tugas yang kompleks menjadi sub-sasaran yang mudah dikelola, yang memandu model melalui prosesnya.
- Menentukan format output: Dalam perintah Anda, minta output dalam format yang Anda inginkan, seperti markdown, JSON, HTML, dan lainnya.
- Letakkan gambar Anda terlebih dahulu untuk perintah gambar tunggal: Meskipun Gemini dapat menangani input gambar dan teks dalam urutan apa pun, untuk perintah yang berisi satu gambar, performanya mungkin akan lebih baik jika gambar (atau video) tersebut ditempatkan sebelum perintah teks. Namun, untuk perintah yang mengharuskan gambar untuk sangat diselingi dengan teks agar masuk akal, gunakan urutan apa pun yang paling alami.
-
Memecahkan masalah perintah multimodal
- Jika model tidak mengambil informasi dari bagian gambar yang relevan: Berikan petunjuk tentang aspek gambar yang ingin Anda gunakan untuk mengambil informasi.
- Jika output model terlalu umum (tidak cukup disesuaikan dengan input gambar/video): Di awal perintah, coba minta model untuk mendeskripsikan gambar atau video sebelum memberikan petunjuk tugas, atau coba minta model untuk merujuk pada apa yang ada dalam gambar.
- Untuk memecahkan masalah bagian mana yang gagal: Minta model untuk mendeskripsikan gambar, atau minta model untuk menjelaskan penalarannya, guna mengukur pemahaman awal model.
- Jika perintah Anda menghasilkan konten halusinasi: Coba turunkan setelan suhu atau minta deskripsi yang lebih singkat kepada model sehingga tidak terlalu mungkin untuk mengekstrapolasi detail tambahan.
- Menyesuaikan parameter sampling: Bereksperimenlah dengan berbagai setelan suhu dan pilihan top-k untuk menyesuaikan kreativitas model.
Dasar-dasar desain perintah
Bagian ini memperluas praktik terbaik yang tercantum di bagian sebelumnya.
Catatan: Hasil model dari contoh Gemini berikut dapat bervariasi dari satu run ke run berikutnya.
Berikan petunjuk yang spesifik
Perintah akan paling berhasil jika jelas dan mendetail. Jika Anda memiliki output tertentu, sebaiknya sertakan persyaratan tersebut dalam perintah untuk memastikan Anda mendapatkan output yang diinginkan.
Terkadang, intent perintah mungkin tampak jelas bagi orang yang menulisnya, tetapi sebenarnya tidak ditentukan dengan baik. Untuk menyesuaikan perilaku model, pertimbangkan bagaimana perintah Anda dapat (salah) ditafsirkan, dan pastikan bahwa petunjuk yang Anda berikan spesifik dan jelas. Ingatlah untuk menyisakan ruang minimal untuk salah tafsir
Untuk gambar papan bandara ini, meminta model untuk "menjelaskan gambar ini" dapat menghasilkan deskripsi umum. Jika Anda memerlukan model untuk mengurai waktu dan kota dari gambar, Anda dapat menyertakan permintaan tersebut langsung dalam perintah.
Perintah | Respons model |
---|---|
Jelaskan gambar ini. |
Gambar menampilkan papan kedatangan dan keberangkatan bandara. |
Perintah yang diperbarui | Respons yang lebih baik |
---|---|
Parse the time and city from the airport board shown in this image into a list. |
Menambahkan beberapa contoh
Model Gemini dapat menerima beberapa input yang dapat digunakan sebagai contoh untuk memahami output yang Anda inginkan. Menambahkan contoh ini dapat membantu model mengidentifikasi pola dan menerapkan hubungan antara gambar dan respons yang diberikan ke contoh baru. Hal ini juga disebut pembelajaran "beberapa tahap".
Pada contoh di bawah, output awal ditulis dalam bentuk kalimat, dan juga berisi negara (Brasil). Misalnya, Anda menginginkan output dalam format atau gaya yang berbeda, dan Anda hanya ingin kota, bukan negara. Menambahkan contoh few-shot ke perintah Anda dapat mengarahkan model untuk merespons sesuai keinginan Anda.
Perintah | Respons model |
---|---|
Tentukan kota beserta penandanya. |
Penandanya adalah patung Kristus Penebus di Rio de Janeiro, Brasil. |
Perintah yang diperbarui | Respons yang lebih baik |
---|---|
Tentukan kota beserta penandanya. |
kota: Roma, penanda: Colosseum. |
city: Beijing, landmark: Forbidden City |
|
kota: Rio de Janeiro, landmark: patung Kristus Penebus |
Mempelajarinya langkah demi langkah
Untuk tugas yang rumit seperti tugas yang memerlukan pemahaman visual dan penalaran, sebaiknya bagi tugas menjadi langkah-langkah yang lebih kecil dan lebih mudah. Atau, hal ini juga dapat efektif jika Anda langsung meminta model untuk “berpikir langkah demi langkah” dalam perintah Anda.
Perintah | Respons model |
---|---|
Kapan saya akan kehabisan tisu toilet? |
Dalam waktu dekat, Anda hanya akan memiliki 3 gulungan lagi. |
Perintah yang diperbarui | Respons yang lebih baik |
---|---|
|
|
Soal matematika atau jenis soal cerita lainnya adalah kandidat yang bagus untuk meminta model berpikir langkah demi langkah.
Perintah | Respons |
---|---|
Berapa suku ke-4 dalam urutan tersebut? |
-135 |
Respons dari model salah. Beberapa cara untuk meningkatkannya adalah dengan meminta model untuk mengurai masalah sebelum menjawab perintah.
Perintah | Respons |
---|---|
Mengurai formula dalam gambar terlebih dahulu. Kemudian, berdasarkan formula, jawab "berapa suku ke-4 dalam urutan?". |
Klik untuk meluaskan hasil$$ b(n) = b(n-1) * (-3) $$ $$ b(1) = 15 $$
$$ b(4) = b(4-1) * (-3) $$ $$ b(4) = b(3) * (-3) $$ $$ b(3) = b(3-1) * (-3) $$ $$ b(3) = b(2) * (-3) $$ $$ b(2) = b(2-1) * (-3) $$ $$ b(2) = b(1) * (-3) $$ $$ b(2) = 15 * (-3) $$ $$ b(2) = -45 $$ $$ b(3) = b(2) * (-3) $$ $$ b(3) = -45 * (-3) $$ $$ b(3) = 135 $$ $$ b(4) = b(3) * (-3) $$ $$ b(4) = 135 * (-3) $$ $$ b(4) = -405 $$ Oleh karena itu, suku ke-4 dalam urutan adalah -405. |
Respons model ini sudah benar. Sekarang, untuk membuat respons lebih sederhana, Anda dapat meminta model untuk berpikir langkah demi langkah.
Perintah yang diperbarui | Respons yang lebih baik |
---|---|
Berapa suku ke-4 dalam urutan tersebut? Pikirkan langkah demi langkah. |
Istilah pertama adalah 15. Istilah kedua adalah b(1) * (-3) = 15 * (-3) = -45. Istilah ketiga adalah b(2) * (-3) = -45 * (-3) = 135. Istilah keempat adalah b(3) * (-3) = 135 * (-3) = -405. |
Coba tentukan format output
Masalah umum adalah kebutuhan output model dalam format tertentu (misalnya markdown, JSON, HTML), terutama jika output model perlu diserap oleh tugas downstream. Anda dapat mencoba menghasilkan output dalam format tersebut dengan menginstruksikan model untuk melakukannya dalam perintah. Berikut adalah dua contoh:
Perintah | Respons model |
---|---|
Mengurai tabel dalam gambar ini ke dalam format markdown |
| Subjek | Status | Waktu | Tanggal mulai | Batas waktu | | ------- | ------ | ---- | --------- | ------ | | Matematika | Selesai | 1,5 jam | 29/11/2023 | 1/12/2023 | | Geografi | Selesai | 30 menit | 2/12/2023 | 4/12/2023 | | Fisika | Sedang berlangsung | 2 jam | 12/3/2023 | 12/5/2023 | | Biologi | Belum dimulai | 6 jam | 2/11/2016 | 6/12/2023 | |
Perintah | Respons model |
---|---|
Berikan daftar semua atribut berikut: bahan, jenis masakan, vegetarian atau tidak, dalam format JSON |
|
Letakkan gambar Anda terlebih dahulu untuk perintah gambar tunggal
Meskipun Gemini dapat menafsirkan gambar dan teks dalam urutan apa pun dalam perintah, menempatkan satu gambar sebelum perintah teks dapat menghasilkan hasil yang lebih baik. Dalam contoh berikut, Anda akan melihat gambar atau video muncul terlebih dahulu sebelum teks di setiap perintah.
Memecahkan masalah perintah multimodal
Anda mungkin perlu memecahkan masalah perintah jika tidak mendapatkan respons yang bermanfaat. Berikut beberapa strategi yang dapat Anda coba.
Jika model tidak menggambar informasi dari bagian gambar yang relevan
Untuk mendapatkan respons yang lebih spesifik, Anda dapat menunjukkan aspek gambar mana yang ingin Anda minta prompt untuk mengambil informasi guna menentukan responsnya.
Perintah | Respons model |
---|---|
Berapa lama popok ini dapat digunakan oleh bayi? |
Popok akan bertahan selama 198 hari sebelum habis. |
Perintah yang diperbarui | Respons yang lebih baik |
---|---|
Berapa lama popok ini akan bertahan sebelum habis? Gunakan berat yang ditampilkan di kotak untuk menentukan usia anak, dan gunakan jumlah total popok dalam kotak. Bagi jumlah total dengan jumlah popok yang digunakan anak per hari. |
Kotak berisi 198 popok. Kotak menyatakan bahwa popok tersebut untuk anak dengan berat 10-17 kg. Anak rata-rata dalam rentang berat ini kemungkinan berusia antara 1 dan 2 tahun. Anak berusia 2 tahun biasanya menggunakan 6 popok per hari, sehingga popok akan bertahan sekitar 33 hari (198/6). |
Jika output model terlalu umum dan tidak cukup disesuaikan dengan input gambar atau video
Untuk membantu model menyesuaikan responsnya dengan gambar, coba minta model untuk mendeskripsikan gambar sebelum melakukan tugas penalarannya.
Perintah | Respons model |
---|---|
Apa kesamaan antara gambar-gambar ini? |
Keempat gambar tersebut adalah contoh fotografi lanskap. |
Perintah yang diperbarui | Respons yang lebih baik |
---|---|
Pertama, jelaskan apa yang ada dalam setiap gambar secara mendetail. Apa kesamaan antara gambar-gambar ini? |
Gambar pertama menampilkan seseorang yang sedang mengepak koper. Gambar kedua menunjukkan lorong kosong di pusat perbelanjaan. Gambar ketiga menampilkan gulungan tisu toilet. Gambar keempat menampilkan laut yang gelap dan berangin. Kesamaan antara gambar-gambar ini adalah semuanya adalah contoh ruang liminal. Ruang liminal adalah tempat atau situasi yang berada di antara dua tempat atau situasi lainnya. Sering kali, cerita ini ditandai dengan rasa ketidakpastian atau ambiguitas. Gambar pertama menunjukkan orang yang sedang berada di rumah dan sedang dalam perjalanan. Gambar kedua menunjukkan lorong di antara dua toko. Gambar ketiga adalah kertas toilet, yang dapat mewakili kamar mandi. Kamar mandi adalah ruang transisi antara ruang pribadi dan publik. Ini adalah tempat kita mempersiapkan diri untuk memasuki atau meninggalkan dunia luar. Gambar keempat menunjukkan laut yang sedang tenang dan sedang badai. Ruang liminal bisa menyenangkan sekaligus meresahkan. Tempat ini dapat menjadi tempat awal yang baru atau tempat akhir. Ruang dapat menjadi tempat refleksi atau tempat tindakan. |
Anda juga dapat mencoba meminta model secara eksplisit untuk merujuk pada apa yang ada dalam gambar.
Perintah yang diperbarui | Respons yang lebih baik |
---|---|
Apa kesamaan antara gambar-gambar ini? Lihat apa yang ada dalam gambar dalam respons Anda. |
Semua gambar terkait perjalanan. Gambar pertama menunjukkan seseorang yang sedang mengepak koper, gambar kedua menunjukkan lorong kosong di pusat perbelanjaan, gambar ketiga menunjukkan tumpukan tisu toilet, dan gambar keempat menunjukkan laut yang gelap dan berangin. Semua gambar ini terkait dengan perjalanan karena semuanya adalah hal yang dibutuhkan atau digunakan orang saat bepergian. Gambar pertama menunjukkan seseorang yang sedang mengepak koper, yang merupakan hal yang dilakukan orang saat mereka akan melakukan perjalanan. Gambar kedua menunjukkan lorong kosong di pusat perbelanjaan, yang merupakan tempat yang sering dikunjungi orang untuk membeli barang untuk perjalanan mereka. Gambar ketiga menunjukkan tumpukan tisu toilet, yang merupakan sesuatu yang sering digunakan orang saat bepergian. Gambar keempat menunjukkan laut yang gelap dan berangin, yang sering kali ditemui orang saat bepergian. |
Tips yang sama berlaku untuk output materi iklan dari gambar atau video. Dalam contoh berikut dengan kelinci, meminta model secara eksplisit untuk menyertakan aspek dari gambar dapat meningkatkan output.
Perintah | Respons model |
---|---|
Bisakah Anda menuliskan puisi tentang gambar ini? |
Kelinci kecil, sangat lembut dan berwarna cokelat, Kamu menggigit rumput, yang begitu hijau dan manis, |
Perintah yang diperbarui | Respons yang lebih baik |
---|---|
Dapatkah Anda menuliskan puisi deskriptif dan dramatis tentang gambar ini dan menyertakan lokasinya? |
Kelinci kecil di padang rumput, Apakah itu biru laut, Kelinci kecil, katakan yang sebenarnya, Mungkin karena luasnya, Kelinci kecil, apa yang kamu impikan, Apa pun itu, kelinci kecil, |
Memecahkan masalah bagian perintah yang gagal
Sulit untuk mengetahui apakah perintah gagal karena model tidak memahami gambar sejak awal, atau jika model memahami gambar, tetapi tidak melakukan langkah penalaran yang benar setelahnya.
Untuk membedakan antara alasan tersebut, minta model untuk menjelaskan apa yang ada dalam gambar.
Pada contoh di bawah ini, jika model merespons dengan camilan yang tampak mengejutkan saat dipadukan dengan teh (misalnya, popcorn), Anda dapat memecahkan masalah terlebih dahulu untuk menentukan apakah model mengenali dengan benar bahwa gambar berisi teh.
Perintah | Permintaan untuk pemecahan masalah |
---|---|
Apa camilan yang dapat saya buat dalam 1 menit yang cocok dengan ini? |
Jelaskan apa yang ada dalam gambar ini. |
Strategi lainnya adalah meminta model untuk menjelaskan penalarannya. Hal ini dapat membantu Anda mempersempit bagian penalaran yang mengalami gangguan, jika ada.
Perintah | Permintaan untuk pemecahan masalah |
---|---|
Apa camilan yang dapat saya buat dalam 1 menit yang cocok dengan ini? |
Apa camilan yang dapat saya buat dalam 1 menit yang cocok dengan ini? Harap jelaskan alasannya. |
Menyesuaikan parameter sampling
Dalam setiap permintaan, Anda tidak hanya mengirim perintah multimodal, tetapi juga serangkaian parameter sampling ke model. Model ini dapat memberikan hasil yang berbeda untuk parameter value yang berbeda. Bereksperimenlah dengan berbagai parameter untuk mendapatkan nilai terbaik untuk tugas. Parameter yang paling sering disesuaikan adalah sebagai berikut:
- Temperature (suhu)
- top-P
- top-K
Temperature (suhu)
Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat top-P dan top-K diterapkan.
Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang
memerlukan respons yang lebih deterministik dan kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 bersifat deterministik, yang berarti bahwa respons dengan probabilitas tertinggi
selalu dipilih.
Untuk sebagian besar kasus penggunaan, coba mulai dengan suhu 0,4. Jika Anda memerlukan lebih banyak hasil materi iklan, coba tingkatkan suhu. Jika Anda mengamati halusinasi yang jelas, coba kurangi suhu.
Top-K
Top-K mengubah cara model memilih token untuk output. Top-K 1 berarti token yang dipilih berikutnya adalah
yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan
top-K 3 berarti token berikutnya dipilih dari antara tiga token yang paling mungkin dengan
menggunakan suhu.
Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian, token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan pengambilan sampel suhu.
Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Nilai default top-K adalah 32.
Top-P
Top-P mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat top-K)
hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai top-P. Misalnya, jika token
A, B, dan C memiliki probabilitas 0,6, 0,3, 0,1, dan nilai top-P adalah 0,9, model akan
memilih A atau B sebagai token berikutnya dengan menggunakan suhu dan mengecualikan C sebagai kandidat.
Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Nilai default top-P adalah 1,0.
Langkah selanjutnya
- Coba tutorial panduan memulai menggunakan Vertex AI Studio atau Vertex AI API.
- Untuk mulai menggunakan Gemini API, lihat panduan memulai Gemini API.