L'API Gemini ti consente di inviare prompt multimodali al modello Gemini. Le modalità supportate includono testo, immagini e video.
Per indicazioni generali sulla progettazione dei prompt, consulta la sezione Strategie di progettazione dei prompt.
Modelli supportati
I seguenti modelli supportano le risposte ai prompt multimodali.
- Gemini 1.5 Flash
- Gemini 1.5 Pro
- Gemini 1.0 Pro Vision
Puoi migliorare i prompt multimodali seguendo queste best practice:
-
Concetti fondamentali per la progettazione dei prompt
- Fornisci istruzioni specifiche: crea istruzioni chiare e concise che lasciano il minor spazio possibile per una interpretazione errata.
- Aggiungi alcuni esempi al prompt: utilizza esempi realistici con pochi esempi per illustrare ciò che vuoi ottenere.
- Suddividi le attività in modo graduale: suddividi le attività complesse in sottoobiettivi gestibili, guidando il modello attraverso il processo.
- Specifica il formato di output: nel prompt, chiedi che l'output sia nel formato che preferisci, ad esempio Markdown, JSON, HTML e altri.
- Metti l'immagine per prima per i prompt con una sola immagine: anche se Gemini può gestire input di immagini e testo in qualsiasi ordine, per i prompt contenenti una singola immagine, il rendimento potrebbe essere migliore se l'immagine (o il video) viene posizionata prima del prompt di testo. Tuttavia, per i prompt che richiedono un'interlacciamento elevato delle immagini con i testi per avere un senso, utilizza l'ordine più naturale.
-
Risoluzione dei problemi relativi al prompt multimodale
- Se il modello non estrae informazioni dalla parte pertinente dell'immagine: fornisci suggerimenti sugli aspetti dell'immagine da cui vuoi che il prompt estragga informazioni.
- Se l'output del modello è troppo generico (non sufficientemente personalizzato per l'input di immagini/video): all'inizio del prompt, prova a chiedere al modello di descrivere le immagini o il video prima di fornire l'istruzione della task oppure prova a chiedere al modello di fare riferimento a ciò che è presente nell'immagine.
- Per risolvere i problemi relativi alla parte non riuscita: chiedi al modello di descrivere l'immagine o di spiegare il suo ragionamento per valutare la sua comprensione iniziale.
- Se il prompt genera contenuti immaginari: prova a ridurre l'impostazione della temperatura o a chiedere al modello descrizioni più brevi in modo che sia meno probabile che estrapola ulteriori dettagli.
- Ottimizzazione dei parametri di campionamento:sperimenta diverse impostazioni di temperatura e selezioni top-k per modificare la creatività del modello.
Concetti fondamentali sulla progettazione dei prompt
Questa sezione illustra più in dettaglio le best practice elencate nella sezione precedente.
Nota: i risultati del modello dei seguenti esempi di Gemini possono variare da una corsa all'altra.
Fornisci istruzioni specifiche
I prompt hanno il maggiore successo quando sono chiari e dettagliati. Se hai in mente un output specifico, è meglio includere questo requisito nel prompt per assicurarti di ottenere l'output desiderato.
A volte, l'intenzione di un prompt può sembrare chiara alla persona che lo ha scritto, ma in realtà è sottospecificata. Per personalizzare il comportamento del modello, valuta in che modo il prompt potrebbe essere (mal)interpretato e assicurati che le istruzioni fornite siano specifiche e chiare. Ricorda di lasciare il minor spazio possibile per l'interpretazione errata
Per questa immagine di una bacheca dell'aeroporto, chiedere al modello di "descrivere questa immagine" potrebbe generare una descrizione generica. Se vuoi che il modello analizzi l'ora e la città dall'immagine, puoi includere questa richiesta direttamente nel prompt.
Prompt | Risposta del modello |
---|---|
![]() Descrivi questa immagine. |
L'immagine mostra un tabellone di arrivi e partenze di un aeroporto. |
Prompt aggiornato | Risposta migliorata |
---|---|
![]() Analizza l'ora e la città dal tabellone dell'aeroporto mostrato in questa immagine in un elenco. |
Aggiungi alcuni esempi
Il modello Gemini può accettare più input che può utilizzare come esempi per comprendere l'output che vuoi. L'aggiunta di questi esempi può aiutare il modello a identificare gli schemi e applicare la relazione tra le immagini e le risposte fornite al nuovo esempio. Questo approccio è anche chiamato apprendimento "few-shot".
Nell'esempio seguente, l'output iniziale è scritto sotto forma di frase e contiene anche il paese (Brasile). Supponiamo che tu voglia l'output in un formato o uno stile diverso e che tu voglia solo la città, non il paese. L'aggiunta di esempi con pochi esempi al prompt può indurre il modello a rispondere nel modo che preferisci.
Prompt | Risposta del modello |
---|---|
![]() Individua la città e il punto di riferimento. |
Il punto di riferimento è la statua del Cristo Redentore a Rio de Janeiro, in Brasile. |
Prompt aggiornato | Risposta migliorata |
---|---|
Individua la città e il punto di riferimento. ![]() |
city: Rome, landmark: the Colosseum. |
![]() |
city: Beijing, landmark: Forbidden City |
![]() |
city: Rio de Janeiro, landmark: Christ the Redeemer statue |
Analizza la situazione passo passo
Per attività complesse come quelle che richiedono sia la comprensione visiva sia il ragionamento, può essere utile suddividere l'attività in passaggi più piccoli e semplici. In alternativa, potrebbe essere efficace anche se nel prompt chiedi direttamente al modello di "pensare passo passo".
Prompt | Risposta del modello |
---|---|
![]() Quando finirò la carta igienica? |
A breve ti rimarranno solo 3 scatti. |
Prompt aggiornato | Risposta migliorata |
---|---|
![]()
|
|
I problemi di matematica o altri tipi di problemi con enunciato sono ottimi candidati per chiedere al modello di pensare passo passo.
Prompt | Risposta |
---|---|
![]()
Qual è il 4° termine della sequenza? |
-135 |
La risposta del modello non è corretta. Alcuni modi per migliorare questo aspetto sono chiedere al modello di analizzare il problema prima di rispondere al prompt.
Prompt | Risposta |
---|---|
![]()
Analizza prima la formula nell'immagine. Poi, in base alla formula, rispondi "qual è il 4° termine della sequenza?". |
Fai clic per espandere il risultato$$ 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 $$ Pertanto, il 4° termine della sequenza è -405. |
Questa risposta del modello è corretta. Per semplificarla ulteriormente, puoi chiedere al modello di pensare passo passo.
Prompt aggiornato | Risposta migliorata |
---|---|
![]()
Qual è il 4° termine della sequenza? Procedi passo passo. |
Il primo termine è 15. Il secondo termine è b(1) * (-3) = 15 * (-3) = -45. Il terzo termine è b(2) * (-3) = -45 * (-3) = 135. Il quarto termine è b(3) * (-3) = 135 * (-3) = -405. |
Prova a specificare il formato di output
Un problema comune è la necessità che l'output del modello sia in un determinato formato (ad es. markdown, JSON, HTML), soprattutto se l'output del modello deve essere importato da un'attività a valle. Puoi provare a produrre output in questo formato chiedendo al modello di farlo all'interno del prompt. Di seguito sono riportati due esempi:
Prompt | Risposta del modello |
---|---|
![]() Analizza la tabella in questa immagine in formato Markdown |
| Oggetto | Stato | Ora | Data di inizio | Data di consegna | | ------- | ------ | ---- | --------- | ------ | | Matematica | Completata | 1 ora e mezza | 29/11/2023 | 1/12/2023 | | Geografia | Completata | 30 min | 2/12/2023 | 4/12/2023 | | Fisica | In corso | 2 ore | 3/12/2023 | 5/12/2023 | | Biologia | Non iniziato | 6 ore | 2/11/2016 | 6/12/2023 | |
Prompt | Risposta del modello |
---|---|
![]() Fornisci un elenco di tutti i seguenti attributi: ingredienti, tipo di cucina, vegetariano o meno, in formato JSON |
|
Mettere l'immagine al primo posto per i prompt con immagine singola
Sebbene Gemini possa interpretare l'immagine e il testo in qualsiasi ordine all'interno di un prompt, posizionare una singola immagine prima del prompt di testo potrebbe portare a risultati migliori. Nei seguenti esempi, noterai che l'immagine o il video viene visualizzato prima del testo in ogni prompt.
Risolvere i problemi relativi al prompt multimodale
Se non ricevi una risposta utile, potresti dover risolvere i problemi relativi al prompt. Ecco alcune strategie che puoi provare.
Se il modello non estrae informazioni dalla parte pertinente dell'immagine
Per ottenere una risposta più specifica, puoi indicare gli aspetti dell'immagine da cui vuoi che il prompt tragga informazioni per formulare la risposta.
Prompt | Risposta del modello |
---|---|
![]() Per quanti giorni possono essere utilizzati questi pannolini da un bambino? |
I pannolini dureranno 198 giorni prima di esaurirsi. |
Prompt aggiornato | Risposta migliorata |
---|---|
![]() Quanto durano questi pannolini prima che finiscano? Utilizza il peso indicato sulla confezione per determinare l'età del bambino e il numero totale di pannolini nella confezione. Dividi il numero totale per il numero di pannolini che il bambino usa al giorno. |
La confezione contiene 198 pannolini. Sulla confezione è indicato che i pannolini sono per un bambino di peso compreso tra 10 e 17 kg. Il bambino medio in questa fascia di peso ha probabilmente un'età compresa tra 1 e 2 anni. Un bambino di 2 anni usa in genere 6 pannolini al giorno, quindi i pannolini dureranno circa 33 giorni (198/6). |
Se l'output del modello è troppo generico e non è sufficientemente personalizzato per l'immagine o il video di input
Per aiutare il modello a personalizzare la risposta alle immagini, prova a chiedergli di descrivere le immagini prima di eseguire l'attività di ragionamento.
Prompt | Risposta del modello |
---|---|
![]() ![]() ![]() ![]() Cosa hanno in comune queste immagini? |
Tutte e quattro le immagini sono esempi di fotografia paesaggistica. |
Prompt aggiornato | Risposta migliorata |
---|---|
![]() ![]() ![]() ![]() Per prima cosa, descrivi nel dettaglio i contenuti di ogni immagine. Cosa hanno in comune queste immagini? |
La prima immagine mostra una persona che prepara una valigia. La seconda immagine mostra un corridoio vuoto in un centro commerciale. La terza immagine mostra un rotolo di carta igienica. La quarta immagine mostra un mare scuro e tempestoso. Il punto in comune di queste immagini è che sono tutte esempi di spazi liminali. Gli spazi liminali sono luoghi o situazioni che si trovano tra due altri luoghi o situazioni. Sono spesso caratterizzati da un senso di incertezza o ambiguità. La prima immagine mostra la persona tra casa e un viaggio. La seconda immagine mostra il corridoio tra due negozi. La terza immagine mostra la carta igienica, che può rappresentare un bagno. Un bagno è uno spazio di transizione tra il privato e il pubblico. È un luogo in cui ci prepariamo ad entrare o uscire dal mondo esterno. La quarta immagine mostra il mare tra calmo e tempestoso. Gli spazi liminali possono essere sia eccitanti che inquietanti. Possono essere un luogo di nuovi inizi o di finali. Possono essere un luogo di riflessione o un luogo di azione. |
Puoi anche provare a chiedere esplicitamente al modello di fare riferimento a ciò che è presente nell'immagine.
Prompt aggiornato | Risposta migliorata |
---|---|
![]() ![]() ![]() ![]() Cosa hanno in comune queste immagini? Fai riferimento a ciò che è presente nelle immagini nella tua risposta. |
Tutte le immagini sono correlate ai viaggi. La prima immagine mostra una persona che prepara una valigia, la seconda un corridoio vuoto in un centro commerciale, la terza una pila di carta igienica e la quarta un mare scuro e tempestoso. Queste immagini sono tutte correlate ai viaggi perché sono tutte cose di cui le persone hanno bisogno o che usano quando viaggiano. La prima immagine mostra una persona che prepara una valigia, un'azione che le persone compiono quando partono per un viaggio. La seconda immagine mostra un corridoio vuoto in un centro commerciale, un luogo in cui le persone spesso vanno a comprare cose per i loro viaggi. La terza immagine mostra una pila di carta igienica, un oggetto che le persone usano spesso quando sono in viaggio. La quarta immagine mostra un mare scuro e tempestoso, un elemento che le persone incontrano spesso quando viaggiano. |
Gli stessi suggerimenti valgono per le creatività generate da immagini o video. Nel seguente esempio con il coniglio, chiedere esplicitamente al modello di includere aspetti dell'immagine può migliorare l'output.
Prompt | Risposta del modello |
---|---|
![]() Puoi scrivermi una poesia su questa immagine? |
Coniglietto, così morbido e marrone, Sgranocchi l'erba, così verde e dolce, |
Prompt aggiornato | Risposta migliorata |
---|---|
![]() Puoi scrivermi una poesia descrittiva e drammatica su questa immagine e includere la località? |
Piccolo coniglietto sul prato, È il blu dell'oceano, Coniglietto, dimmi la verità, Forse è la vastità di tutto, Piccolo coniglietto, mi chiedo cosa sogni, Qualunque sia il motivo, piccolo coniglietto, |
Risolvere i problemi relativi alla parte del prompt che non è riuscita
Può essere difficile capire se un prompt non è andato a buon fine perché il modello non ha compreso l'immagine o se l'ha compresa, ma non ha eseguito i passaggi di ragionamento corretti in seguito.
Per distinguere tra questi motivi, chiedi al modello di descrivere cosa c'è nell'immagine.
In questo esempio riportato di seguito, se il modello risponde con uno spuntino che sembra sorprendente se abbinato al té (ad es. popcorn), puoi prima risolvere i problemi per determinare se il modello ha riconosciuto correttamente che l'immagine contiene té.
Prompt | Richiesta di risoluzione dei problemi |
---|---|
![]() Quale spuntino posso preparare in 1 minuto che vada bene con questo? |
![]() Descrivi cosa c'è in questa immagine. |
Un'altra strategia è chiedere al modello di spiegare il suo ragionamento. In questo modo puoi restringere la parte del ragionamento che non funziona, se presente.
Prompt | Richiesta di risoluzione dei problemi |
---|---|
![]() Quale spuntino posso preparare in 1 minuto che vada bene con questo? |
![]() Quale spuntino posso preparare in 1 minuto che vada bene con questo? Spiega perché. |
Ottimizzazione dei parametri di campionamento
In ogni richiesta, invii al modello non solo il prompt multimodale, ma anche un insieme di parametri di campionamento. Il modello può generare risultati diversi per valori parametro diversi. Sperimenta con i diversi parametri per ottenere i valori migliori per l'attività. I parametri più comunemente modificati sono:
- Temperatura
- Top-P
- top-K
Temperatura
La temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicati i parametri top-P e top-K.
La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono risposte più deterministiche e meno aperte o creative, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a 0 è deterministica, il che significa che viene sempre selezionata la risposta con la probabilità più alta.
Per la maggior parte dei casi d'uso, prova a iniziare con una temperatura di 0,4. Se hai bisogno di risultati più creativi, prova ad aumentare la temperatura. Se noti allucinazioni evidenti, prova a ridurre la temperatura.
Top-K
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a 1 indica che il token successivo selezionato è
il più probabile tra tutti i token nel vocabolario del modello (chiamato anche decodifica greedy). Un top-K
pari a 3 indica invece che il token successivo viene selezionato tra i tre token più probabili (utilizzando la temperatura).
Per ogni fase di selezione dei token, vengono campionati i token Top-K con le probabilità più alte. Quindi i token vengono ulteriormente filtrati in base a Top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Il valore predefinito di top-K è 32.
Top-P
Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile (vedi Top-K) al meno probabile finché la somma delle loro probabilità non corrisponde al valore di Top-P. Ad esempio, se i token A, B e C hanno una probabilità di 0,6, 0,3 e 0,1 e il valore di top-P è 0,9, il modello seleziona A o B come token successivo utilizzando la temperatura ed esclude C come candidato.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali. Il valore predefinito di top-P è 1,0.
Passaggi successivi
- Prova un tutorial di avvio rapido utilizzando Vertex AI Studio o l'API Vertex AI.
- Per iniziare a utilizzare l'API Gemini, consulta la guida rapida all'API Gemini.