Mendesain prompt multimodal

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
Jadwal perjalanan

Parse the time and city from the airport board shown in this image into a list.

  • 10.50 Moskow
  • 11.05 Edinburgh
  • 11.05 London
  • 11.10 Bukares
  • 11.30 Kiev
  • 11.35 Dublin
  • 11.45 Midlands Timur
  • 12.15 Sofia
  • 12.30 London
  • 12.30 Newcastle
  • 12.40 St Petersburg
  • 12.40 London
  • 12.45 Manchester
  • 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
    Jadwal perjalanan

    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.

    colosseum

    kota: Roma, penanda: Colosseum.

    Kota Terlarang

    city: Beijing, landmark: Forbidden City

    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

      1. Pertama, hitung berapa banyak gulungan tisu toilet dalam gambar ini.
      2. Kemudian, tentukan jumlah kertas toilet yang digunakan orang biasa per hari.
      3. Hitung berapa lama gulungan tisu toilet ini akan bertahan.

      1. Ada 3 gulung tisu toilet dalam gambar ini.
      2. Rata-rata orang menggunakan sekitar 20 lembar tisu toilet per hari.
      3. Jika setiap gulungan berisi 200 lembar, setiap gulungan akan bertahan selama sekitar 10 hari. Oleh karena itu, 3 gulungan tersebut akan bertahan selama sekitar satu bulan.

    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 $$

    1. Ganti n = 4 ke dalam formula:
    2. $$ b(4) = b(4-1) * (-3) $$

      $$ b(4) = b(3) * (-3) $$

    3. Kita tidak tahu nilai b(3), jadi ganti n = 3 ke dalam formula:
    4. $$ b(3) = b(3-1) * (-3) $$

      $$ b(3) = b(2) * (-3) $$

    5. Kita tidak tahu nilai b(2), jadi ganti n = 2 ke dalam formula:
    6. $$ b(2) = b(2-1) * (-3) $$

      $$ b(2) = b(1) * (-3) $$

    7. Kita tahu nilai b(1) adalah 15, jadi ganti nilai tersebut ke dalam formula:
    8. $$ b(2) = 15 * (-3) $$

      $$ b(2) = -45 $$

    9. Setelah mengetahui nilai b(2), substitusikan ke dalam formula untuk b(3):
    10. $$ b(3) = b(2) * (-3) $$

      $$ b(3) = -45 * (-3) $$

      $$ b(3) = 135 $$

    11. Setelah mengetahui nilai b(3), substitusikan ke dalam formula untuk b(4):
    12. $$ 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

    ```json```

    {

    "ingredients": [

    "rice",

    "shrimp",

    "clams",

    "mussels",

    "peas",

    "tomatoes",

    "onions",

    "garlic",

    "olive oil",

    "paprika",

    "salt",

    "pepper"

    ],

    "type of cuisine": "Spanish",

    "vegetarian": false

    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,
    Melompat-lompat di padang rumput, ke atas dan ke bawah.
    Telinga Anda panjang, ekor Anda kecil,
    Anda adalah makhluk paling lucu di antara semuanya.

    Kamu menggigit rumput, yang begitu hijau dan manis,
    Lalu melompat pergi saat melihatku.
    Tapi aku akan selalu menjadi temanmu,
    Kelinci kecil, sampai akhir.

    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,
    Telinganya panjang, sangat tajam.
    Apa yang Anda lihat di sana,
    Di kejauhan, tempat Anda menatap?

    Apakah itu biru laut,
    Berkilau dalam nuansa matahari?
    Atau suara ombak yang menabrak dan bergemuruh,
    Ritme yang Anda sukai?

    Kelinci kecil, katakan yang sebenarnya,
    Apa yang menarik perhatianmu?
    Apakah angin laut yang asin,
    Atau kicau burung camar yang menyenangkan?

    Mungkin karena luasnya,
    Dunia yang begitu besar dan kecil.
    Tempat impian dapat berkelana,
    Dan petualangan dapat ditanam.

    Kelinci kecil, apa yang kamu impikan,
    Saat kamu duduk di rumput, begitu tenang.
    Apakah Anda ingin menjelajahi kedalaman,
    Atau tetap di darat, tempat Anda dapat melompat?

    Apa pun itu, kelinci kecil,
    Jaga agar percikan keingintahuan itu tetap menyala terang.
    Karena dalam mimpi dan aspirasi Anda,
    Terdapat dunia yang menunggu kreasi Anda.

    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