1. Introduzione all'ingegneria dei prompt e ai suoi componenti di base [0]

thumbnail L'ingegneria dei prompt è il processo di creazione di istruzioni chiare e specifiche per i modelli linguistici di grandi dimensioni, come ChatGPT, per ottenere le risposte desiderate.

1.1. Componenti di base di un prompt [3]

  1. I prompt sono costituiti da quattro componenti principali: task, input, output e contesto [6].
    1. Il task è l'istruzione principale che si dà al modello [10].
    2. L'input è l'informazione o il dato che il modello deve elaborare [11].
    3. L'output è il formato o il tipo di risposta desiderato [11].
    4. Il contesto è qualsiasi informazione di sfondo o conversazione precedente che aiuta il modello a capire meglio il prompt [25].
  2. OpenAI raccomanda di utilizzare virgolette triple o hashtag per separare le istruzioni dal contesto, rendendo il prompt più chiaro per il modello [9].
  3. La chiarezza e la specificità del prompt sono fondamentali per ottenere risposte accurate [27].
    1. Iniziare i prompt con le istruzioni, non con il contesto, aumenta la probabilità di un output accurato [28].
    2. Le risposte dei modelli linguistici di grandi dimensioni non devono essere considerate affidabili ciecamente, specialmente per le informazioni critiche, e devono essere verificate [30].

1.2. Esempi di scomposizione di prompt di base [7]

  1. Esempio 1: Riassumere un articolo [7]
    1. Task: "riassumi questo articolo" [10].
    2. Input: l'articolo sulle fonti di energia rinnovabile [11].
    3. Output: un riassunto dell'articolo [11].
    4. Contesto: nessuno in questo prompt [11].
  2. Esempio 2: Classificare un articolo di notizie [12]
    1. Task: "classifica questo articolo di notizie come sport o politica" [15].
    2. Input: l'articolo o il titolo da classificare [16].
    3. Output: un'etichetta "sport" o "politica" [16].
    4. Contesto: nessuno in questo prompt [17].
  3. Esempio 3: Tradurre una frase [20]
    1. Task: "traduci questa frase dall'inglese al francese" [24].
    2. Input: la frase da tradurre [24].
    3. Output: la frase tradotta [24].
    4. Contesto: nessuno in questo prompt, ma un thread di conversazione in cui anche le frasi precedenti devono essere tradotte potrebbe essere considerato contesto [25].

2. Tecniche di prompt engineering [1]

thumbnail Esistono quattro tecniche principali di prompt engineering: Zero-Shot, Role, Few-Shot e Chain Prompting, ognuna delle quali aiuta a ottenere risposte specifiche dai modelli linguistici di grandi dimensioni.

2.1. Zero-Shot Prompting [32]

  1. Lo Zero-Shot Prompting è una tecnica di base ma potente che sfrutta l'ampia quantità di dati di addestramento di ChatGPT per generare risposte senza fornire esempi [33].
  2. Esempio 1: Creare un elenco di libri [36]
    1. Task: "crea un elenco di 10 libri simili a 1984 di George Orwell" [38].
    2. Input: nessuno in questo prompt [38].
    3. Output: un elenco di 10 libri [38].
    4. Contesto: menzionare "George Orwell" può essere considerato contesto, poiché indirizza il modello verso un'opera specifica, riducendo gli errori [38].
  3. Esempio 2: Convertire l'output in una tabella [41]
    1. Task: "converti l'output in una tabella" con colonne specifiche [43].
    2. Input: l'output precedente (l'elenco dei 10 libri) [43].
    3. Output: una tabella con cinque colonne popolate utilizzando l'output precedente [43].
    4. Contesto: nessuno in questo prompt [44].

2.2. Role Prompting [46]

  1. Il Role Prompting è una tecnica che consente a un modello linguistico di grandi dimensioni, come ChatGPT, di agire come un personaggio fittizio o non fittizio, o anche come un oggetto, per ottenere output più coerenti [47].
  2. Esempio 1: Agire come un terminale Mac [53]
    1. Task: "Agisci come un terminale Mac. Digiterò i comandi, tu risponderai con l'output del terminale. Gli output devono essere all'interno di blocchi di codice, non scrivere spiegazioni" [59].
    2. Input: il comando "curl w t t r dot i n forward slash Paris" [61].
    3. Output: l'output del terminale all'interno di blocchi di codice [62].
    4. Contesto: entrambi i prompt inseriti servono come contesto per gli output futuri [64].
  3. Esempio 2: Riscrivere l'output nello stile di Darth Vader [70]
    1. Questo prompt dimostra come ChatGPT possa adattare il suo ruolo in modo unico, riscrivendo l'output precedente nello stile di Darth Vader [71].

2.3. Few-Shot Prompting [73]

  1. Il Few-Shot Prompting estende le capacità dello Zero-Shot Prompting fornendo esempi per guidare ChatGPT verso output più specifici, specialmente con dati unici o sconosciuti al modello [73].
  2. Esempio 1: Assegnare un sentimento ai testi [77]
    1. Task: "assegna un sentimento ai testi senza sentimento tra parentesi" [84].
    2. Input: cinque stringhe di testo, di cui tre etichettate con un sentimento [84].
    3. Output: tutte le stringhe di testo con il sentimento assegnato [84].
    4. Contesto: le tre stringhe di testo etichettate fornite servono da contesto per il modello [85].
  3. Esempio 2: Assegnare un punteggio di affidabilità del sentimento e convertire in JSON [89]
    1. Task: assegnare un punteggio di affidabilità del sentimento a ciascuna stringa di testo e convertire l'output in un file JSON [92].
    2. Input: l'output precedente di ChatGPT, poiché il modello ricorda la conversazione corrente [95].
    3. Output: un file JSON con chiavi definite (indice, testo, sentimento, punteggio) all'interno di un blocco di codice [97].
    4. Contesto: nessuno in questo prompt [97].

2.4. Chain Prompting [99]

  1. Il Chain Prompting è una tecnica che prevede la creazione di una sequenza di prompt per generare output dettagliati e può incorporare altre tecniche come il Role Prompting [100].
  2. Esempio 1: Scrivere una bozza per un post di blog [105]
    1. Task: "scrivi una bozza per un post di blog sulla visita a Parigi (Francia) a dicembre" [107].
    2. Input: l'argomento "Visitare Parigi, Francia a dicembre" [107].
    3. Output: una bozza per un post di blog [107].
    4. Contesto: nessuno in questo prompt [107].
  3. Esempio 2: Accorciare la bozza ai punti chiave [108]
    1. Task: "accorcia la bozza ai punti chiave" [110].
    2. Input: la bozza generata in precedenza da ChatGPT [110].
    3. Output: una bozza più breve [110].
    4. Contesto: l'output precedente di ChatGPT [111].
  4. Esempio 3: Scrivere un paragrafo per l'introduzione [112]
    1. Task: "scrivi un paragrafo per l'introduzione" [113].
    2. Input: la bozza più breve generata da ChatGPT [113].
    3. Output: un paragrafo per l'introduzione [113].
    4. Contesto: l'output precedente di ChatGPT [114].
  5. Esempio 4: Condensare il paragrafo introduttivo [117]
    1. Task: "condensa il paragrafo introduttivo usando frasi più brevi" [120].
    2. Input: il paragrafo introduttivo generato da GPT [120].
    3. Output: un paragrafo introduttivo migliorato [120].
    4. Contesto: l'output precedente [121].
  6. Esempio 5: Scrivere un paragrafo sulla propria azienda usando la formula AIDA [122]
    1. Task: "scrivi un breve paragrafo sulla mia azienda" [127].
    2. Input: informazioni uniche sull'azienda (nome, prezzi) [129].
    3. Output: un paragrafo accattivante usando la formula di copywriting AIDA (Attenzione, Interesse, Desiderio, Azione) [130].
    4. Contesto: l'output precedente [131].