Mendesain prompt multimodal

Gemini API memungkinkan Anda mengirim perintah multimodal ke model Gemini. Modalitas yang didukung meliputi teks, gambar, dan video.

Untuk mengetahui panduan umum dalam mendesain prompt, lihat Prompt design strategies.

Model yang didukung

Model berikut mendukung respons prompt multimodal.

    gemini-pro-vision gemini-1.5-pro

Anda dapat meningkatkan kualitas prompt multimodal dengan mengikuti praktik terbaik berikut:

Dasar-dasar prompt design

  • Jelaskan secara spesifik dalam instruksi Anda: Buat petunjuk yang jelas dan ringkas yang menyisakan sedikit ruang untuk salah penafsiran.
  • Tambahkan beberapa contoh ke perintah Anda: Gunakan contoh few-shot yang realistis untuk mengilustrasikan hal yang ingin Anda capai.
  • Kelompokkan tugas demi langkah: Bagi tugas yang kompleks menjadi beberapa sub-sasaran yang mudah dikelola, yang memandu model melalui prosesnya.
  • Menentukan format output: Pada perintah, minta output dalam format yang Anda inginkan, seperti markdown, JSON, HTML, dan lainnya.
  • Tempatkan 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, performa aplikasi mungkin akan lebih baik jika gambar tersebut (atau video) ditempatkan sebelum perintah teks. Namun, untuk perintah yang memerlukan gambar harus disisipkan dengan teks agar masuk akal, gunakan urutan apa pun yang paling alami.

Memecahkan masalah prompt multimodal

  • Jika model tidak mengambil informasi dari bagian gambar yang relevan: Berikan petunjuk terkait aspek gambar yang informasinya ingin Anda gambar.
  • Jika output model terlalu umum (tidak cukup disesuaikan dengan input gambar/video): Di awal perintah, coba minta model untuk menjelaskan gambar atau video sebelum memberikan petunjuk tugas, atau coba minta model untuk merujuk ke konten dalam gambar.
  • Untuk memecahkan masalah bagian mana yang gagal: Minta model untuk mendeskripsikan gambar, atau minta model untuk menjelaskan alasannya, guna mengukur pemahaman awal model.
  • Jika perintah Anda menghasilkan konten yang berhalusinasi: Coba turunkan setelan suhu atau minta model untuk memberikan deskripsi yang lebih singkat agar ia cenderung tidak memberikan detail tambahan.
  • Menyesuaikan parameter pengambilan sampel: Bereksperimenlah dengan berbagai setelan suhu dan pilihan top-k untuk menyesuaikan kreativitas model.

Dasar-dasar Prompt Design

Bagian ini memperluas praktik terbaik yang tercantum di bagian sebelumnya.

Catatan: Hasil model dari contoh Gemini berikut dapat bervariasi antara satu per satu dengan yang lain.

Berikan petunjuk yang spesifik

{i>Prompt<i} (Petunjuk) paling berhasil jika jelas dan terperinci. Jika Anda memiliki output tertentu, sebaiknya sertakan persyaratan tersebut dalam perintah untuk memastikan Anda mendapatkan output yang diinginkan.

Terkadang, maksud perintah mungkin tampak jelas bagi penulisnya, tetapi sebenarnya kurang ditentukan. Untuk menyesuaikan perilaku model, pertimbangkan bagaimana perintah Anda dapat (salah) ditafsirkan, dan pastikan petunjuk yang Anda berikan spesifik dan jelas. Ingatlah untuk menyisakan sedikit ruang untuk salah penafsiran

Untuk gambar papan bandara, meminta model untuk hanya "menjelaskan gambar ini" dapat menghasilkan deskripsi umum. Jika menginginkan model mengurai waktu dan kota dari gambar, Anda dapat menyertakan permintaan tersebut langsung dalam prompt.

Prompt Respons model

Jelaskan gambar ini.

Gambar menampilkan papan kedatangan dan keberangkatan bandara.

Perintah yang diperbarui Respons yang lebih baik
Jadwal perjalanan

Uraikan waktu dan kota dari dewan bandara yang ditampilkan pada gambar ini ke dalam daftar.

  • 10.50 Moskow
  • 11.05 Edinburgh
  • 11.05 London
  • 11.10 Bukares
  • 11.30 Kiev
  • 11.35 Dublin
  • 11.45 East Midlands
  • 12.15 Sofia
  • 12.30 London
  • 12.30 Newcastle
  • 12.40 St Petersburg
  • 12.40 London
  • 12.45 Manchester
  • Tambahkan beberapa contoh

    Model Gemini dapat menerima beberapa input yang dapat digunakan sebagai contoh untuk memahami output yang Anda inginkan. Menambahkan contoh-contoh ini dapat membantu model mengidentifikasi pola dan menerapkan hubungan antara gambar dan respons yang diberikan ke contoh baru. Hal ini juga disebut pemelajaran "few-shot".

    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 menginginkan kota, bukan negara. Menambahkan contoh few-shot ke perintah Anda dapat mengarahkan model agar merespons sesuai keinginan Anda.

    Perintah Respons model
    Jadwal perjalanan

    Tentukan kota beserta tempat terkenal.

    Bangunan terkenalnya adalah patung Kristus Penebus di Rio de Janeiro, Brasil.

    Perintah yang diperbarui Respons yang lebih baik

    Tentukan kota beserta tempat terkenal.

    Colosseum

    kota: Roma, tempat terkenal: Colosseum.

    Kota Terlarang

    kota: Beijing, tempat terkenal: Kota Terlarang

    kota terlarang

    kota: Rio de Janeiro, tempat terkenal: patung Kristus Penebus

    Uraikan langkah demi langkah

    Untuk tugas kompleks seperti yang memerlukan pemahaman dan penalaran visual, sebaiknya bagi tugas tersebut menjadi langkah-langkah yang lebih kecil dan mudah. Cara lainnya, bisa juga efektif jika Anda langsung meminta model untuk "berpikir langkah demi langkah" dalam perintah Anda.

    Prompt Respons model

    Kapan saya akan kehabisan tisu toilet?

    Tak lama lagi, Anda hanya punya 3 lemparan lagi.

    Perintah yang diperbarui Respons yang lebih baik

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

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

    Soal matematika atau jenis soal cerita lainnya adalah kandidat yang bagus untuk meminta model berpikir langkah demi langkah.

    Perintah Tanggapan

    Berapa suku ke-4 dalam barisan tersebut?

    -135

    Respons dari model salah. Beberapa cara untuk meningkatkan kualitas ini adalah dengan meminta model mengurai masalah sebelum menjawab perintah.

    Perintah Tanggapan

    Uraikan formula pada gambar terlebih dahulu.

    Kemudian berdasarkan rumus tersebut, jawablah "berapa suku ke-4 dalam urutan tersebut?".

    Klik untuk memperluas hasil

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

    $$ b(1) = 15 $$

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

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

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

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

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

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

    7. Kita mengetahui bahwa nilai b(1) adalah 15, jadi gantilah ke dalam rumus:
    8. $$ b(2) = 15 * (-3) $$

      $$ b(2) = -45 $$

    9. Setelah kita mengetahui nilai b(2), kita masukkan ke dalam rumus b(3):
    10. $$ b(3) = b(2) * (-3) $$

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

      $$ b(3) = 135 $$

    11. Sekarang setelah kita mengetahui nilai b(3), gantilah ke dalam rumus untuk b(4):
    12. $$ b(4) = b(3) * (-3) $$

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

      $$ b(4) = -405 $$

    Jadi, suku ke-4 dalam barisan tersebut adalah -405.

    Respons model ini benar - sekarang untuk membuat respons yang lebih sederhana, Anda dapat meminta model untuk berpikir langkah demi langkah.

    Perintah yang diperbarui Respons yang lebih baik

    Berapa suku ke-4 dalam barisan tersebut? Pikirkan langkah demi langkah.

    Suku pertama adalah 15.

    Suku kedua adalah b(1) * (-3) = 15 * (-3) = -45.

    Suku ketiga adalah b(2) * (-3) = -45 * (-3) = 135.

    Suku keempat adalah b(3) * (-3) = 135 * (-3) = -405.

    Coba tentukan format output

    Masalah umumnya adalah perlunya 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 contohnya:

    Prompt Respons model

    Uraikan tabel pada gambar ini ke dalam format markdown

    | Subjek | Status | Waktu | Tanggal mulai | Batas waktu pada |

    | ------- | ------ | ---- | --------- | ------ |

    | Matematika | Selesai | 1,5 jam | 29/11/2023 | 1/12/2023 |

    | Geografi | Selesai | 30 mnt | 02/12/2023 | 04/12/2023 |

    | Fisika | Sedang berlangsung | 2 jam | 3/12/2023 | 12/5/2023 |

    | Biologi | Belum dimulai | 6 jam | 2/11/2016 | 6/12/2023 |

    Perintah Respons model

    Masukkan 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

    Tempatkan gambar terlebih dahulu untuk perintah gambar tunggal

    Meskipun Gemini dapat menafsirkan gambar dan teks dalam urutan apa pun dalam prompt, menempatkan satu gambar sebelum perintah teks dapat memberikan hasil yang lebih baik. Dalam contoh berikut, Anda akan melihat gambar atau video muncul terlebih dahulu sebelum teks di setiap perintah.

    Memecahkan masalah prompt multimodal

    Anda mungkin perlu memecahkan masalah perintah jika tidak mendapatkan respons yang membantu. Berikut beberapa strategi yang dapat Anda coba.

    Jika model tidak mengambil informasi dari bagian gambar yang relevan

    Untuk mendapatkan respons yang lebih spesifik, Anda dapat menunjukkan aspek gambar mana yang Anda inginkan untuk digambar oleh perintah guna menentukan responsnya.

    Prompt Respons model

    Berapa hari popok ini akan bertahan bagi bayi?

    Popok akan bertahan selama 198 hari sebelum habis.

    Perintah yang diperbarui Respons yang lebih baik

    Berapa lama popok ini akan bertahan sebelum kehabisan?

    Gunakan berat yang ditampilkan pada kotak untuk menentukan usia anak, dan gunakan jumlah total popok dalam kotak.

    Bagi jumlah total popok yang digunakan anak per hari.

    Kotak berisi 198 popok. Di dalam kotak tertera popok untuk anak dengan berat 22-37 lbs.

    Rata-rata anak dalam kisaran berat ini kemungkinan berusia antara 1 dan 2 tahun.

    Anak berusia 2 tahun biasanya memakai 6 popok per hari, oleh karena itu, 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 terhadap gambar, coba minta model untuk menjelaskan gambar sebelum menjalankan tugas penalarannya.

    Prompt Respons model

    Apa kesamaan antara gambar-gambar ini?

    Keempat gambar tersebut adalah contoh fotografi lanskap.

    Perintah yang diperbarui Respons yang lebih baik

    Pertama, jelaskan isi setiap gambar secara mendetail. Apa kesamaan antara gambar-gambar ini?

    Gambar pertama menampilkan seseorang sedang mengemas koper. Gambar kedua menampilkan lorong kosong di pusat perbelanjaan. Gambar ketiga menampilkan gulungan tisu toilet. Gambar keempat menampilkan laut yang gelap dan penuh badai.

    Kesamaan antara gambar-gambar ini adalah bahwa semuanya adalah contoh ruang angkasa. Ruang liminal adalah tempat atau situasi yang berada di antara dua tempat atau situasi lain. Pertanyaan ini sering kali ditandai dengan rasa ketidakpastian atau ambiguitas.

    Gambar pertama menunjukkan orang tersebut antara berada di rumah dan sedang dalam perjalanan. Gambar kedua menunjukkan lorong di antara dua toko. Gambar ketiga adalah tisu toilet, yang dapat mewakili kamar mandi. Kamar mandi adalah ruang transisi antara ruang pribadi dan publik. Ini adalah tempat di mana kita mempersiapkan diri untuk masuk atau meninggalkan dunia luar.

    Gambar keempat menunjukkan laut di antara kondisi tenang dan penuh badai.

    Ruang limainal bisa menjadi menyenangkan dan meresahkan. Game bisa menjadi tempat awal baru atau akhir dari akhir video. Ide dapat menjadi tempat refleksi atau tempat tindakan.

    Anda juga bisa mencoba meminta model secara eksplisit untuk merujuk ke konten yang ada pada gambar.

    Perintah yang diperbarui Respons yang lebih baik

    Apa kesamaan antara gambar-gambar ini? Lihat isi gambar dalam respons Anda.

    Semua gambar terkait dengan perjalanan. Gambar pertama menunjukkan orang sedang mengemas koper, gambar kedua menunjukkan lorong kosong di pusat perbelanjaan, gambar ketiga menampilkan tumpukan tisu toilet, dan gambar keempat menampilkan laut yang gelap dan penuh badai.

    Semua gambar ini terkait dengan perjalanan karena merupakan semua hal yang dibutuhkan atau digunakan orang saat mereka bepergian. Gambar pertama menampilkan orang sedang mengemas koper, yaitu hal yang dilakukan orang saat akan melakukan perjalanan. Gambar kedua menampilkan lorong kosong di pusat perbelanjaan, yang merupakan tempat orang sering membeli sesuatu untuk perjalanan mereka. Gambar ketiga menampilkan tumpukan tisu toilet, yang merupakan sesuatu yang sering digunakan orang saat mereka bepergian. Gambar keempat menampilkan laut yang gelap dan badai, yang merupakan sesuatu yang sering ditemui orang saat mereka bepergian.

    Tips yang sama juga berlaku untuk output kreatif dari gambar atau video. Pada contoh berikut pada kelinci, meminta model secara eksplisit untuk menyertakan aspek dari gambar dapat meningkatkan output.

    Prompt Respons model

    Bisakah Anda menulis puisi tentang gambar ini?

    Kelinci kecil, lembut dan berwarna coklat,
    Melompat-lompat di atas lapangan, naik turun.
    Telingamu sangat panjang, ekormu sangat kecil,
    Kamu adalah makhluk yang paling lucu dari semuanya.

    Kamu menggigit rumput, sangat hijau dan manis,
    Dan pergilah saat melihatku.
    Tapi aku akan selalu menjadi temanmu,
    Kelinci kecil, sampai akhir.

    Perintah yang diperbarui Respons yang lebih baik

    Bisakah Anda menulis puisi deskriptif dan dramatis tentang gambar ini beserta lokasinya?

    Kelinci kecil di atas hijau,
    Telinganya panjang, sangat tertarik.
    Apa yang kamu lihat di luar sana,
    Di kejauhan, di mana kamu menatap?

    Apakah itu biru laut,
    Berkilau dalam rona matahari?
    Atau ombak yang berdebar,
    Irama yang Anda sukai?

    Kelinci kecil, katakan benar,
    Apa yang menarik perhatianmu?
    Apakah angin sepoi-sepoi yang asin,
    Atau tangisan burung camar?

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

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

    Apa pun itu, kelinci kecil,
    Biarkan percikan keajaiban itu tetap menyala.
    Dalam mimpi dan cita-cita Anda,
    Kebohongan dunia yang menanti kreasi Anda.

    Memecahkan masalah bagian dialog yang gagal

    Mungkin sulit untuk mengetahui apakah prompt gagal karena model tidak memahami gambar sejak awal, atau apakah model memahami gambarnya tetapi tidak melakukan langkah penalaran yang benar setelahnya.

    Untuk membedakan alasan-alasan tersebut, minta model untuk menjelaskan apa yang ada dalam gambar.

    Dalam contoh di bawah ini, jika model merespons dengan camilan yang tampak tidak terduga saat dipasangkan dengan teh (misalnya popcorn), Anda dapat memecahkan masalah terlebih dahulu untuk menentukan apakah model tersebut mengenali dengan benar bahwa gambar mengandung teh.

    Prompt Minta pemecahan masalah

    Apa camilan yang bisa saya buat dalam 1 menit yang akan cocok dengan makanan ini?

    Jelaskan apa yang ada dalam gambar ini.

    Strategi lain adalah meminta model menjelaskan alasannya. Hal itu dapat membantu Anda mempersempit bagian alasan mana yang rusak, jika ada.

    Prompt Minta pemecahan masalah

    Apa camilan yang bisa saya buat dalam 1 menit yang akan cocok dengan makanan ini?

    Apa camilan yang bisa saya buat dalam 1 menit yang akan cocok dengan makanan ini? Harap jelaskan alasannya.

    Menyesuaikan parameter pengambilan sampel

    Dalam setiap permintaan, Anda tidak hanya mengirim prompt multimodal, tetapi juga mengirim serangkaian parameter pengambilan sampel ke model. Model dapat membuat hasil yang berbeda untuk nilai parameter yang berbeda. Lakukan eksperimen dengan berbagai parameter guna mendapatkan nilai terbaik untuk tugas tersebut. Parameter yang paling sering disesuaikan adalah sebagai berikut:

    • Temperature (suhu)
    • top-P
    • K teratas

    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 menyebabkan hasil yang lebih beragam atau kreatif. Suhu 0 bersifat deterministik, artinya respons probabilitas tertinggi selalu dipilih.

    Untuk sebagian besar kasus penggunaan, cobalah memulai dengan suhu 0,4. Jika Anda memerlukan hasil yang lebih kreatif, coba tingkatkan suhu. Jika Anda melihat halusinasi yang jelas, coba turunkan suhunya.

    Top-K

    Top-K mengubah cara model memilih token untuk output. K teratas 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding serakah), sedangkan K teratas 3 berarti token berikutnya dipilih dari tiga token yang paling mungkin dengan menggunakan suhu.

    Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi diambil sampelnya. Kemudian, token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan sampling 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 terbanyak (lihat top-K) hingga 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