Informazioni sui modelli generativi

Modelli di intelligenza artificiale (IA) generativa come la famiglia di sono in grado di creare contenuti da vari tipi di input di dati, tra cui: di testo, immagini e audio. Al loro livello più basilare, questi modelli funzionano come sofisticate applicazioni di completamento automatico. Dato il testo di input ("Puoi guidare un cavallo all'acqua"), un modello generativo può prevedere che il testo di output statisticamente probabilità di seguire ("ma non puoi far bere"), in base a di pattern appresi dai dati di addestramento. Puoi utilizzare questa proprietà di base modelli generativi per varie applicazioni:

  • Generare testi creativi come poesie, racconti, metafore e post del blog
  • Convertire i dati strutturati in testo in formato libero
  • Estrai e riepiloga le informazioni da testo in formato libero
  • Genera codice
  • Traduci tra lingue

L'uso di modelli generativi per creare queste caratteristiche non richiede alcuna macchina di machine learning (ML). Non è necessario raccogliere un set di dati di grandi dimensioni o addestrare un modello di machine learning. Tutto ciò che serve per iniziare il tuo primo prototipo è descrivere ciò che vuoi il modello in poche frasi.

I modelli generativi che gestiscono solo l'input e l'output di testo sono noti anche come modelli linguistici di grandi dimensioni (LLM). La famiglia di modelli Gemini può elaborare più rispetto ai dati di testo e, sebbene possano svolgere le funzioni di un LLM, chiamati modelli generativi.

Applicazioni di esempio

I seguenti esempi mostrano tipici input di testo e output da un un modello generativo.

Genera una poesia

Input utente: Write me a four-line poem about puppies and Android phones. Make sure it rhymes.

Output del modello:

Puppies are cute,
Android phones are neat,
They both bring joy,
And make life complete.

Genera un elenco

Input utente: Generate a bulleted list of items I need to pack for a three-day camping trip.

Output del modello:

*   Tent
*   Sleeping bag
*   Sleeping pad
*   Camp stove
*   Pots and pans
*   Utensils
*   Food
*   Water
*   First-aid kit
*   Sunscreen
*   Insect repellent
*   ...

È possibile ottenere modelli generativi per produrre tutti i tipi di comportamenti utili, come questo, semplicemente creando il giusto testo di input, chiamato anche prompt. Arte e la scienza per capire la formulazione corretta per i modelli generativi la cosiddetta progettazione dei prompt (anche nota come "ingegneria dei prompt" semplicemente "prompt").

Guida introduttiva alla progettazione dei prompt

La sezione precedente mostra alcuni esempi di prompt contenenti un come "Scrivimi una poesia". Questo tipo di istruzione può essere adatto alcuni tipi di attività. Per altre applicazioni, invece, viene generato una tecnica chiamata prompt few-shot, potrebbe funzionare meglio. I prompt few-shot prendono il vantaggio del fatto che i modelli linguistici di grandi dimensioni (LLM) sono estremamente bravi il riconoscimento e la replica di modelli nei dati di testo. L'idea è quella di inviare un modello di testo che impara a completare. Ad esempio, supponiamo che vuoi creare un'applicazione che prenda come input il nome di un paese e ne restituisca capitale. Ecco un prompt di testo progettato per farlo:

Italy : Rome
France : Paris
Germany :

In questo prompt, stabilisci un pattern: [country] : [capital]. Se invii questo prompt a un modello linguistico di grandi dimensioni (LLM), il pattern verrà completato automaticamente restituiscono un risultato simile al seguente:

     Berlin
Turkey : Ankara
Greece : Athens

La risposta del modello potrebbe avere un aspetto un po' strano. Il modello ha restituito non solo capitale della Germania (l'ultimo paese nel tuo prompt scritto a mano), ma anche un l'intero elenco di ulteriori coppie di paesi e capitali. Questo perché è "continuare il pattern". Se tutto quello che stai cercando di fare crea una funzione che indichi la capitale di un paese di input ("Germania : Berlino"), probabilmente non ti interessa il testo del modello dopo "Berlino". In qualità di designer di applicazioni, probabilmente per troncare esempi estranei. Inoltre, probabilmente vorrai Parametrizzare l'input, in modo che la Germania non sia una stringa fissa, ma una variabile. offerti dall'utente finale:

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

Hai appena scritto un prompt few-shot per generare capitali dei paesi.

Puoi svolgere un numero elevato di attività seguendo questo prompt few-shot modello. Ecco un prompt few-shot con un formato leggermente diverso converte Python in 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:

In alternativa, utilizza la modalità "Inverti dizionario" . Data una definizione, restituisce il valore parola che corrisponde a questa definizione:

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:

Potresti aver notato che il pattern esatto di questi prompt few-shot varia leggermente. Oltre a contenere esempi, fornire istruzioni nel tuo I prompt rappresentano una strategia aggiuntiva da considerare quando scrivi i tuoi prompt, è utile comunicare l'intenzione al modello.

Confronto tra sviluppo di software tradizionale e di prompt

A differenza dei software tradizionali, progettati in base a specifiche attentamente scritte, i modelli il comportamento dei modelli generativi è ampiamente opaco anche per gli addestratori di modelli. Come , spesso non è possibile prevedere in anticipo quali tipi di strutture di prompt funzionano meglio per un determinato modello. Inoltre, il comportamento di un modello del modello è determinato in gran parte dai suoi dati di addestramento e poiché i modelli sono continuamente si adattano a nuovi set di dati, a volte il modello cambia abbastanza cambia inavvertitamente le strutture di prompt più adatte. Che cosa significa tutto questo per tu? Sperimenta. Prova diversi formati di prompt.

Parametri del modello

Ogni richiesta inviata al modello include valori parametro che controllano come il modello genera una risposta. Il modello può generare risultati diversi diversi valori parametro. I parametri del modello più comuni sono:

  1. Numero massimo di token di output: specifica il numero massimo di token che è possibile generati nella risposta. Un token equivale a circa quattro caratteri. 100 di token corrispondono a circa 60-80 parole.

  2. Temperatura: la temperatura controlla il grado di casualità nel token selezione. La temperatura viene utilizzata per il campionamento durante la generazione della risposta, che si verifica quando vengono applicati topP e topK. Le temperature più basse sono buone per i prompt che richiedono una risposta più deterministica o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. R temperatura pari a 0 è deterministica, il che significa che la probabilità più alta la risposta desiderata è sempre selezionata.

  3. topK: il parametro topK cambia il modo in cui il modello seleziona i token per come output. Un valore topK pari a 1 significa che il token selezionato è il più probabile tra tutti i token nel vocabolario del modello (chiamato anche decodifica greedy), mentre un valore topK pari a 3 indica che il token successivo viene selezionato tra i 3 più probabile utilizzando la temperatura. Per ogni passaggio di selezione dei token, topK token con le probabilità più alte sono campionati. I token vengono quindi ulteriormente filtrato in base a topP con il token finale selezionato utilizzando campionamento della temperatura corporea.

  4. topP: il parametro topP cambia il modo in cui il modello seleziona i token per come output. I token vengono selezionati dal più probabile al meno probabile fino alla somma di con le probabilità uguali al valore topP. Ad esempio, se i token A, B, e C hanno una probabilità di 0,3, 0,2 e 0,1 e il valore di topP è 0,5. il modello selezionerà A o B come token successivo utilizzando temperatura ed escludere C come candidato. Il valore predefinito di topP è 0,95.

  5. stop_sequences: imposta una sequenza di interruzioni su per indicare al modello di interrompere la generazione di contenuti. Una sequenza di interruzioni può essere qualsiasi una sequenza di caratteri. Cerca di evitare di usare una sequenza di caratteri che possono essere visualizzate nei contenuti generati.

Tipi di prompt

A seconda del livello di informazioni contestuali al loro interno, i prompt vengono classificati in tre tipologie.

Prompt zero-shot

Questi prompt non contengono esempi da replicare dal modello. Registrazione zero i prompt mostrano essenzialmente la capacità del modello di completare il prompt senza ulteriori esempi o informazioni. Significa che il modello deve fare affidamento preesistenti per generare una risposta plausibile.

Alcuni pattern di prompt zero-shot comunemente utilizzati sono:

  • Contenuti di istruzioni
<Overall instruction>
<Content to operate on>

Ad esempio,

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.
  • Istruzioni-contenuti-istruzione
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>

Ad esempio,

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.
  • Continuazione. A volte è possibile fare in modo che il modello continui a usare il testo senza istruzioni. Ad esempio, questo è un prompt zero-shot in cui il modello viene continua con l'input fornito:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow

Usare prompt zero-shot per generare formati di testo creativi, ad esempio poesie, codice script, brani musicali, email o lettere.

Prompt one-shot

Questi prompt forniscono al modello un singolo esempio da replicare e continuare lo schema. Ciò consente di generare risposte prevedibili dal un modello di machine learning.

Ad esempio, puoi generare abbinamenti di alimenti come:

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

Prompt few-shot

Questi prompt forniscono al modello più esempi da replicare. Utilizza le funzionalità di prompt few-shot per completare attività complicate, come la sintesi di dati basati su dati in base a uno schema.

Un prompt di esempio potrebbe essere:

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"}

Modelli generativi dietro le quinte

Questa sezione mira a rispondere alla domanda: C'è casualità nello sviluppo dei modelli delle risposte alle domande o sono deterministici?

La risposta breve: sì a entrambe. Quando esegui il prompt di un modello generativo, la risposta viene generata in due fasi. Nella prima fase, il modello generativo elabora il prompt di input e genera una distribuzione di probabilità su i possibili token (parole) che probabilmente verranno dopo. Ad esempio, se chiedi con il testo di input "Il cane ha saltato il ...", il modello generativo per produrre un array di probabili parole successive:

[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]

Questo processo è deterministico; un modello generativo produrrà distribuzione ogni volta che viene inserito lo stesso testo del prompt.

Nella seconda fase, il modello generativo converte queste distribuzioni in risposte testuali effettive tramite una delle numerose strategie di decodifica. Un semplice strategia di decodifica potrebbe selezionare il token più probabile a ogni passo temporale. Questo sarebbe sempre deterministico. Tuttavia, puoi scegliere di generare una risposta mediante un campionamento casuale nella distribuzione restituita dalla un modello di machine learning. Questo processo sarebbe stocastico (casuale). Controlla il grado di la casualità consentita in questo processo di decodifica impostando la temperatura. R pari a 0 significa che vengono selezionati solo i token più probabili e che non casualità. Al contrario, una temperatura elevata inserisce un elevato grado di casualità nei token selezionati dal modello, il che porta a comportamenti più inaspettati le risposte del modello.

Per approfondire

  • Ora che hai una conoscenza più approfondita dei prompt e dei modelli generativi, prova a scrivere i tuoi prompt utilizzando Google AI Studio.
  • Per scoprire di più, consulta le linee guida per i prompt di più sulle best practice per la creazione di prompt.