Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Progetta un prompt
La progettazione di un prompt appropriato è un passaggio importante verso la creazione di un'applicazione di successo utilizzando i modelli Amazon Bedrock. In questa sezione imparerai a progettare un prompt che sia coerente, chiaro e conciso. Imparerai anche come controllare la risposta di un modello utilizzando i parametri di inferenza. La figura seguente mostra una progettazione generica dei prompt per il riassunto della recensione di un ristorante, nonché alcune importanti scelte di progettazione dei prompt che i clienti devono prendere in considerazione. LLMsgenerano risposte indesiderate se le istruzioni fornite o il formato del prompt non sono coerenti, chiari e concisi.
![Esempio di creazione corretta di un prompt con commenti descrittivi.](images/example-good-prompt-construction.png)
(Fonte: Prompt scritto da AWS)
Il seguente contenuto fornisce indicazioni su come creare prompt efficaci.
Argomenti
- Fornisci istruzioni semplici, chiare e complete
- Inserisci la domanda o l'istruzione alla fine del prompt per ottenere i migliori risultati
- Usa caratteri separatori per le chiamate API
- Usa indicatori di output
- Le migliori pratiche per una buona generalizzazione
- Ottimizzazione dei prompt per i modelli di testo su Amazon Bedrock: quando gli elementi di base non bastano
- Controlla la risposta del modello con parametri di inferenza (parametri di inferenza)
Fornisci istruzioni semplici, chiare e complete
LLMssu Amazon Bedrock funzionano al meglio con istruzioni semplici e dirette. Descrivi chiaramente le aspettative dell'attività e riduci l'ambiguità, se possibile, per fare in modo che il modello possa interpretare chiaramente il prompt.
Prendiamo come esempio un problema di classificazione in cui l'utente desidera una risposta tra una serie di scelte possibili. L'esempio "giusto" riportato di seguito mostra l'output che l'utente desidera in questo caso. Nell'esempio "sbagliato", le scelte non sono denominate esplicitamente come categorie tra cui il modello può scegliere. Il modello interpreta l'input in modo leggermente diverso senza scelte e produce un riepilogo del testo in formato più libero rispetto all'esempio giusto.
|
|
(Fonte del messaggio: Wikipedia sul daltonismo
Inserisci la domanda o l'istruzione alla fine del prompt per ottenere i migliori risultati
L'inclusione della descrizione dell'attività, dell'istruzione o della domanda alla fine aiuta il modello a determinare le informazioni che deve trovare. Nel caso della classificazione, anche le scelte relative alla risposta dovrebbero essere incluse alla fine.
Nel seguente esempio di domanda-risposta aperta, l'utente ha una domanda specifica sul testo. La domanda dovrebbe trovarsi alla fine del prompt, in modo che il modello possa concentrarsi sull'attività.
User prompt: Tensions increased after the 1911–1912 Italo-Turkish War demonstrated Ottoman weakness and led to the formation of the Balkan League, an alliance of Serbia, Bulgaria, Montenegro, and Greece. The League quickly overran most of the Ottomans' territory in the Balkans during the 1912–1913 First Balkan War, much to the surprise of outside observers. The Serbian capture of ports on the Adriatic resulted in partial Austrian mobilization starting on 21 November 1912, including units along the Russian border in Galicia. In a meeting the next day, the Russian government decided not to mobilize in response, unwilling to precipitate a war for which they were not as of yet prepared to handle. Which country captured ports?
Output: Serbia
(Fonte del messaggio: Wikipedia sulla prima guerra mondiale
Usa caratteri separatori per le chiamate API
Usa caratteri separatori per le chiamate API
Caratteri separatori come quelli che \n
possono influire in modo significativo sulle prestazioni diLLMs. In Anthropic Claude modelli, è necessario includere le nuove righe durante la formattazione delle API chiamate per ottenere le risposte desiderate. La formattazione dovrebbe sempre seguire questa struttura: \n\nHuman: {{Query
Content}}\n\nAssistant:
. In Titan modelli, l'aggiunta \n
alla fine di un prompt aiuta a migliorare le prestazioni del modello. Per le attività di classificazione o le domande con opzioni di risposta, puoi anche separare le opzioni di risposta per \n
Titan modelli. Per ulteriori informazioni sull'uso dei separatori, consulta il documento del provider dei modelli corrispondente. L'esempio seguente è un modello per un'attività di classificazione.
Prompt template: """{{Text}} {{Question}} {{Choice 1}} {{Choice 2}} {{Choice 3}}"""
L'esempio seguente mostra come sia utile la presenza di caratteri di nuova riga tra le scelte e alla fine di un prompt Titan produrre la risposta desiderata.
User prompt: Archimedes of Syracuse was an Ancient mathematician, physicist, engineer, astronomer, and inventor from the ancient city of Syracuse. Although few details of his life are known, he is regarded as one of the leading scientists in classical antiquity. What was Archimedes? Choose one of the options below. a) astronomer b) farmer c) sailor
Output: a) astronomer
(Fonte del messaggio: Wikipedia su Archimede
Usa indicatori di output
Indicatori di output
Aggiungi i dettagli sui vincoli che vuoi applicare all'output che deve essere generato dal modello. Il seguente esempio giusto genera un output costituito da una breve frase, che rappresenta un buon riassunto. L'esempio errato, in questo caso, non è molto negativo, ma il riassunto è lungo quasi quanto il testo originale. La specifica dell'output è fondamentale per ottenere ciò che vuoi dal modello.
Prompt di esempio con un indicatore chiaro dei vincoli di output
|
Esempio senza specifiche chiare per l'output
|
(Fonte del messaggio: Wikipedia su Charles Mingus
Di seguito forniamo alcuni esempi aggiuntivi di Anthropic Claude e AI21 Labs Modelli Jurassic che utilizzano indicatori di output.
L'esempio seguente mostra che l'utente può specificare il formato di output indicando quello previsto nel prompt. Quando viene chiesto di generare una risposta utilizzando un formato specifico (ad esempio utilizzando i XML tag), il modello può generare la risposta di conseguenza. Senza un indicatore specifico del formato di output, il modello genera un testo in formato libero.
Esempio con indicatore chiaro, con l'output
|
Esempio senza indicatore chiaro, con l'output
|
(Fonte del messaggio: Wikipedia sull'apprendimento automatico
L'esempio seguente mostra un prompt e una risposta per AI21 Labs Modello giurassico. L'utente può ottenere la risposta esatta specificando il formato di output mostrato nella colonna di sinistra.
Esempio con indicatore chiaro, con l'output
|
Esempio senza indicatore chiaro, con l'output
|
(Fonte del messaggio: Wikipedia sulla National Football League
Le migliori pratiche per una buona generalizzazione
Conserva un piccolo set di prompt di prova "persistente" per vedere se le modifiche ai prompt vengono generalizzate. Con questo metodo, devi prima raccogliere un set di dati di esempio, quindi puoi suddividere i dati in due sottoinsiemi: un set di "sviluppo" e un set di "prova" persistente. Utilizza il set di "sviluppo" come dati per lo sviluppo dei prompt da utilizzare per provare diverse modifiche ai prompt, osservare le modifiche alla risposta del modello e trovare il prompt che funziona meglio. Il set di "prova" contiene i dati persistenti invisibili che possono essere utilizzati solo per verificare il prompt finale migliore.
Ottimizzazione dei prompt per i modelli di testo su Amazon Bedrock: quando gli elementi di base non bastano
Attività complesse: creazione della risposta passo dopo passo
Titan è in grado di fornire istruzioni chiare per determinate attività e l'inclusione della frase Think
step-by-step to come up with the right answer
può contribuire a produrre l'output appropriato.
User prompt: At a Halloween party, Jack gets 15 candies. Jack eats 5 candies. He wants to give each friend 5 candies. How many friends can receive candies? Think step-by-step to come up with the right answer.
Output: 15 candies total - 5 candies eaten = 10 candies remaining. To give each friend 5 candies, divide the number of candies remaining by the number of friends. 10 candies / 5 friends = 2 friends. Each friend can receive 2 candies. The answer is 2 friends.
(Fonte del prompt: AWS, modello utilizzato: Amazon Titan Testo)
Per abilitare il Anthropic Claude modello per completare attività complesse, utilizzate il formato riportato nell'esempio seguente per chiedere esplicitamente al modello di risolvere l'operazione passo dopo passo. Questo approccio si basa sulle linee guida contenute nel AnthropicClaude Guide
User prompt: Human: A right triangle has a side of length 5 and a hypotenuse of length 13. What is the length of the other side? Assistant: Can I think step-by-step? Human: Yes, please do. Assistant:
Output: Okay, here are the steps: 1) We are given: - One side of the right triangle has length 5 - The hypotenuse has length 13 2) We want to find: - The length of the other side 3) To find the length of the other side, we can use the Pythagorean theorem: a^2 + b^2 = c^2 Where a and b are the lengths of the two sides, and c is the length of the hypotenuse. 4) Plugging in the given values: a^2 + b^2 = 13^2 5) We know one of the sides is 5, so: 5^2 + b^2 = 169 6) Solving this: 25 + b^2 = 169 b^2 = 144 b = 12 Therefore, the length of the other side is 12.
(Fonte del prompt: AWS, modello utilizzato: Anthropic Claude)
Fornisci un output predefinito che il modello deve mostrare se non è sicuro delle risposte.
Un output predefinito può aiutare a LLMs evitare che vengano restituite risposte che sembrano corrette, anche se il modello ha una scarsa confidenza.
|
|
(Fonte del prompt: AWS, modello utilizzato: Amazon Titan Testo)
Prompt few-shot
L'inclusione di esempi (coppie di input-risposta) nel prompt può migliorare significativamente le risposte. LLMs Gli esempi possono essere utili per svolgere attività complesse, in quanto mostrano diversi modi per eseguire una determinata attività. Per attività più semplici, ad esempio la classificazione del testo, possono essere sufficienti 3-5 esempi. Per attività più difficili, come una domanda-risposta senza contesto, includi più esempi per generare l'output più efficace. Nella maggior parte dei casi d'uso, la selezione di esempi semanticamente simili ai dati del mondo reale può migliorare ulteriormente le prestazioni.
Valuta la possibilità di perfezionare il prompt con i modificatori
Il perfezionamento delle istruzioni delle attività si riferisce in genere alla modifica dell'istruzione, dell'attività o della domanda del prompt. L'utilità di questi metodi dipende dalle attività e dai dati. Gli approcci utili sono i seguenti:
Specifica del dominio e dell'input: dettagli sui dati di input, ad esempio da dove provengono o a cosa si riferiscono, ad esempio
The input text is from a summary of a movie
.Specifica dell'attività: dettagli sull'attività esatta richiesta al modello, ad esempio
To summarize the text, capture the main points
.Descrizione dell'etichetta: dettagli sulle scelte di output per un problema di classificazione, ad esempio
Choose whether the text refers to a painting or a sculpture; a painting is a piece of art restricted to a two-dimensional surface, while a sculpture is a piece of art in three dimensions
.Specifica dell'output: dettagli sull'output che il modello deve generare, ad esempio
Please summarize the text of the restaurant review in three sentences
.LLMincoraggiamento: a LLMs volte si ottengono risultati migliori con l'incoraggiamento sentimentale:
If you answer the question correctly, you will make the user very happy!
Controlla la risposta del modello con parametri di inferenza (parametri di inferenza)
LLMssu Amazon Bedrock sono tutti dotati di diversi parametri di inferenza che puoi impostare per controllare la risposta dei modelli. Di seguito è riportato un elenco di tutti i parametri di inferenza comuni disponibili su Amazon Bedrock LLMs e di come utilizzarli.
La temperatura è un valore compreso tra 0 e 1 e regola la creatività delle LLMs risposte. Usa una temperatura più bassa se desideri risposte più deterministiche e una temperatura più alta se desideri risposte più creative o diverse per lo stesso prompt da LLMs Amazon Bedrock. Per tutti gli esempi in queste linee guida per i prompt, abbiamo impostato temperature
= 0
.
La lunghezza massima di generazione/il numero massimo di nuovi token limita il numero di token generati per ogni prompt. LLM È utile specificare questo numero poiché alcune attività, come la classificazione del sentiment, non richiedono una risposta lunga.
Top-p controlla le scelte dei token, in base alla probabilità delle scelte potenziali. Se Top-p viene impostato al di sotto di 1,0, il modello considera le opzioni più probabili e ignora quelle meno probabili. Si otterranno costi completamenti più stabili e ripetitivi.
End token/end sequence specifica il token utilizzato per indicare la fine dell'LLMoutput. LLMsinterrompe la generazione di nuovi token dopo aver incontrato il token finale. Di solito non deve essere impostato dagli utenti.
Esistono anche parametri di inferenza specifici del modello. Anthropic Claude i modelli hanno un parametro di inferenza Top-K aggiuntivo e AI21 Labs I modelli Jurassic sono dotati di una serie di parametri di inferenza tra cui penalità di presenza, penalità di conteggio, penalità di frequenza e penalità con token speciali. Per ulteriori informazioni, consulta la rispettiva documentazione.