Progettazione iterativa dei prompt e affinamento

Prompt Engineering con l'API di OpenAI

Fouad Trad

Machine Learning Engineer

Prompt engineering iterativo

  • Nessun prompt è perfetto all'inizio
  • Il Prompt Engineering è un processo iterativo in cui:
    • Creiamo un prompt
    • Lo diamo al modello
    • Osserviamo e analizziamo l'output
    • Reiteriamo per migliorarlo

Immagine che rappresenta un ciclo. Un cerchio blu con quattro frecce che si susseguono.

Prompt Engineering con l'API di OpenAI

Affinare i prompt

Prompt iniziale
prompt = "Generate an Excel sheet containing
five student names and their grades"

print(get_response(prompt))
Mi dispiace, ma come IA basata su testo non posso 
fornire direttamente un file Excel. 
Posso però aiutarti a generare una 
rappresentazione di esempio dei dati richiesti.
Prompt affinato
prompt = "Genera una tabella copiabile in Excel 
con cinque nomi di studenti e i loro voti"
print(get_response(prompt))

| Nome studente | Voto | |---------------|------| | Studente 1 | 90 | | Studente 2 | 85 | | Studente 3 | 95 | | Studente 4 | 88 | | Studente 5 | 92 |
Prompt Engineering con l'API di OpenAI

Esempio: analisi di una funzione Python

code = '''
def calculate_rectangle_area(length, width):
    area = length * width
    return area
'''

Immagine che mostra un rettangolo e la formula per calcolarne l'area dato larghezza e lunghezza. Area = length\*width.

Prompt Engineering con l'API di OpenAI

Esempio: prompt iniziale

prompt = f"""
  Analizza il codice delimitato da tre backtick in una frase
  ```{code}```.
"""
print(get_response(prompt))
Il codice calcola l'area di un rettangolo in base a lunghezza e larghezza.
Prompt Engineering con l'API di OpenAI

Esempio: affinamento del prompt

Modifichiamo il prompt per ottenere il linguaggio di programmazione

prompt = f"""
  Analizza il codice delimitato da tre backtick e fornisci il suo linguaggio di 
  programmazione in una frase 
  ```{code}```.
"""
print(get_response(prompt))
Il codice fornito è una funzione scritta in Python che calcola l'area di un 
rettangolo in base a lunghezza e larghezza.
Prompt Engineering con l'API di OpenAI

Esempio: affinamento del prompt

Modifichiamo il prompt per ottenere output strutturato

prompt = f"""
  Per la funzione delimitata da tre backtick, fornisci in formato strutturato:
  - description: breve descrizione in una frase
  - language: linguaggio di programmazione usato
  - input: input della funzione
  - output: output restituito dalla funzione
  ```{code}```.
"""
print(get_response(prompt))
Prompt Engineering con l'API di OpenAI

Esempio: affinamento del prompt

description: Questa funzione calcola l'area di un rettangolo.

language: Python

input:
 - length: La lunghezza del rettangolo.
 - width: La larghezza del rettangolo.

output:
 - area: L'area calcolata del rettangolo, prodotto di lunghezza 
 e larghezza.
Prompt Engineering con l'API di OpenAI

Affinamento del prompt con few-shot

  • Classificazione delle descrizioni meteo

Prompt iniziale

prompt = """
Clear skies and a gentle breeze. -> Sunny
Heavy rain and thunderstorms expected. -> Rainy
Fresh snowfall with freezing temperatures. -> 
"""
print(get_response(prompt))
Snowy
Prompt Engineering con l'API di OpenAI

Affinamento del prompt con few-shot

  • Classificazione delle descrizioni meteo

Prompt iniziale

prompt = """
Clear skies and a gentle breeze. -> Sunny
Heavy rain and thunderstorms expected. -> Rainy
The wind of change brought a refreshing breeze to the company's operations. -> 
"""
print(get_response(prompt))
Windy
Prompt Engineering con l'API di OpenAI

Affinamento del prompt con few-shot

Prompt affinato

prompt = """
Clear skies and a gentle breeze. -> Sunny
Heavy rain and thunderstorms expected. -> Rainy
The political climate in the country was stormy -> Unknown
The wind of change brought a refreshing breeze to the company's operations. -> 
"""
print(get_response(prompt))
Unknown
Prompt Engineering con l'API di OpenAI

Affinamento per vari tipi di prompt

  • Prompt few-shot: affina gli esempi
  • Prompt multi-step: affina i passaggi guida
  • Prompt chain-of-thought e self-consistency: affina la descrizione del problema

Immagine con tre righe di interruttori, una mano li regola per rifinire.

Prompt Engineering con l'API di OpenAI

Ayo berlatih!

Prompt Engineering con l'API di OpenAI

Preparing Video For Download...