GPT-4.1 Prompting: Sfrutta al Meglio la Guida OpenAI

GUIDA AL PROMPT DI GPT-4.1


GPT-4.1 Prompting Guide

Autori: OpenAI
Titolo originale: GPT-4.1 Prompting Guide

Introduzione a GPT-4.1

La famiglia di modelli GPT-4.1 rappresenta un notevole passo avanti rispetto a GPT-4o in termini di capacità di codifica, comprensione delle istruzioni e gestione di contesti estesi. Questa guida raccoglie una serie di suggerimenti derivati da test interni approfonditi, con l’obiettivo di aiutare gli sviluppatori a sfruttare appieno le capacità migliorate di questa nuova famiglia di modelli.

Best Practices Generali

Molte delle best practices tipiche rimangono valide per GPT-4.1, come fornire esempi di contesto, rendere le istruzioni il più specifiche e chiare possibile e indurre la pianificazione tramite prompt per massimizzare l’intelligenza del modello. Tuttavia, si prevede che ottenere il massimo da questo modello richiederà una certa migrazione dei prompt. GPT-4.1 è addestrato a seguire le istruzioni in modo più preciso e letterale rispetto ai suoi predecessori, che tendevano a inferire più liberamente l’intento dagli input dell’utente e dai prompt di sistema. Ciò significa anche che GPT-4.1 è altamente orientabile e reattivo a prompt ben specificati: se il comportamento del modello è diverso da quanto previsto, una singola frase che chiarisca fermamente e inequivocabilmente il comportamento desiderato è quasi sempre sufficiente a riportare il modello in linea.

Ingegneria del Prompt: Un Approccio Empirico

Sebbene questa guida sia ampiamente applicabile, nessun consiglio è valido per tutti. L’ingegneria dell’IA è intrinsecamente una disciplina empirica e i modelli linguistici di grandi dimensioni sono intrinsecamente non deterministici; oltre a seguire questa guida, si consiglia di creare valutazioni informative e iterare spesso per garantire che le modifiche all’ingegneria del prompt stiano producendo benefici per il proprio caso d’uso.

1. Workflow di Agentic

GPT-4.1 è un ottimo punto di partenza per costruire workflow di agentic. Nell’addestramento del modello, è stata enfatizzata la fornitura di una vasta gamma di traiettorie di risoluzione dei problemi di agentic, e il nostro harness di agentic per il modello raggiunge prestazioni all’avanguardia per i modelli non di ragionamento su SWE-bench Verified, risolvendo il 55% dei problemi.

Promemoria del Prompt di Sistema

Per utilizzare appieno le capacità di agentic di GPT-4.1, si consiglia di includere tre tipi principali di promemoria in tutti i prompt di agent. I seguenti prompt sono ottimizzati specificamente per il workflow di codifica di agentic, ma possono essere facilmente modificati per casi d’uso di agentic generali.

  1. Persistenza: ciò garantisce che il modello comprenda che sta entrando in un turno multi-messaggio e impedisce che restituisca prematuramente il controllo all’utente. Il nostro esempio è il seguente:

    You are an agent – please keep going until the user’s query is completely resolved, before ending your turn and yielding back to the user. Only terminate your turn when you are sure that the problem is solved.

  2. Tool-calling: ciò incoraggia il modello a fare pieno uso dei suoi strumenti e riduce la probabilità di allucinazioni o di indovinare una risposta. Il nostro esempio è il seguente:

    If you are not sure about file content or codebase structure pertaining to the user’s request, use your tools to read files and gather the relevant information: do NOT guess or make up an answer.

  3. Pianificazione [opzionale]: se desiderato, ciò garantisce che il modello pianifichi e rifletta esplicitamente su ogni chiamata di strumento in testo, invece di completare l’attività concatenando una serie di sole chiamate di strumento. Il nostro esempio è il seguente:

    You MUST plan extensively before each function call, and reflect extensively on the outcomes of the previous function calls. DO NOT do this entire process by making function calls only, as this can impair your ability to solve the problem and think insightfully.

GPT-4.1 è addestrato per rispondere molto da vicino sia alle istruzioni dell’utente che ai prompt di sistema nell’impostazione di agentic. Il modello ha aderito da vicino a queste tre semplici istruzioni e ha aumentato il nostro punteggio interno SWE-bench Verified di quasi il 20%, quindi incoraggiamo vivamente a iniziare qualsiasi prompt di agent con chiari promemoria che coprano le tre categorie elencate sopra. Nel complesso, troviamo che queste tre istruzioni trasformino il modello da uno stato simile a un chatbot in un agent molto più “desideroso”, guidando l’interazione in avanti in modo autonomo e indipendente.

Chiamate di Strumenti

Rispetto ai modelli precedenti, GPT-4.1 è stato sottoposto a più addestramento sull’utilizzo efficace degli strumenti passati come argomenti in una richiesta API di OpenAI. Incoraggiamo gli sviluppatori a utilizzare esclusivamente il campo “strumenti” per passare gli strumenti, piuttosto che iniettare manualmente le descrizioni degli strumenti nel prompt e scrivere un parser separato per le chiamate di strumenti, come alcuni hanno segnalato di aver fatto in passato. Questo è il modo migliore per ridurre al minimo gli errori e garantire che il modello rimanga in distribuzione durante le traiettorie di tool-calling: nei nostri esperimenti, abbiamo osservato un aumento del 2% nel tasso di superamento SWE-bench Verified quando si utilizzano descrizioni di strumenti analizzate dall’API rispetto all’iniezione manuale degli schemi nel prompt di sistema.

Gli sviluppatori dovrebbero nominare chiaramente gli strumenti per indicarne lo scopo e aggiungere una descrizione chiara e dettagliata nel campo “descrizione” dello strumento. Allo stesso modo, per ogni parametro dello strumento, affidarsi a una buona denominazione e descrizioni per garantire un utilizzo appropriato. Se il tuo strumento è particolarmente complicato e desideri fornire esempi di utilizzo dello strumento, ti consigliamo di creare una sezione # Examples nel prompt di sistema e di posizionare lì gli esempi, piuttosto che aggiungerli nel campo “descrizione”, che dovrebbe rimanere completo ma relativamente conciso. Fornire esempi può essere utile per indicare quando utilizzare gli strumenti, se includere testo dell’utente insieme alle chiamate e quali parametri sono appropriati per diversi input. Ricorda che puoi utilizzare “Generate Anything” nel Prompt Playground per ottenere un buon punto di partenza per le tue nuove definizioni di strumenti.

Pianificazione indotta dal prompt e Chain-of-Thought

Come già accennato, gli sviluppatori possono facoltativamente richiedere agli agenti costruiti con GPT-4.1 di pianificare e riflettere tra le chiamate di strumenti, invece di chiamare silenziosamente gli strumenti in una sequenza ininterrotta. GPT-4.1 non è un modello di ragionamento, il che significa che non produce una chain of thought interna prima di rispondere, ma nel prompt, uno sviluppatore può indurre il modello a produrre un piano esplicito, passo dopo passo, utilizzando qualsiasi variante del componente di prompt di pianificazione mostrato sopra. Questo può essere pensato come il modello che “pensa ad alta voce”. Nei nostri esperimenti con l’attività di agentic SWE-bench Verified, l’induzione della pianificazione esplicita ha aumentato il tasso di superamento del 4%.

Struttura del Prompt

Per riferimento, ecco un buon punto di partenza per strutturare i tuoi prompt:

  • Ruolo e Obiettivo
  • Istruzioni
    • Sottocategorie per istruzioni più dettagliate
  • Passaggi di Ragionamento
  • Formato di Output

Delimitatori

Ecco alcune linee guida generali per la selezione dei migliori delimitatori per il tuo prompt. Si prega di fare riferimento alla sezione Contesto lungo per considerazioni speciali per quel tipo di contesto.

  1. Markdown: Si consiglia di iniziare qui e di utilizzare titoli markdown per le sezioni principali e le sottosezioni (inclusa la gerarchia più profonda, fino a H4+). Utilizzare backtick inline o blocchi backtick per racchiudere con precisione il codice e elenchi numerati o puntati standard secondo necessità.

  2. XML: Anche questi si comportano bene e abbiamo migliorato l’aderenza alle informazioni in XML con questo modello. XML è comodo per racchiudere con precisione una sezione includendo l’inizio e la fine, aggiungere metadati ai tag per un contesto aggiuntivo e abilitare l’annidamento. Ecco un esempio di utilizzo di tag XML per annidare esempi in una sezione di esempio, con input e output per ciascuno:

    <examples>
        <example1 type="Abbreviate">
            <input>San Francisco</input>
            <output>SF</output>
        </example1>
    </examples>
    
  3. JSON: È altamente strutturato e ben compreso dal modello, in particolare nei contesti di codifica. Tuttavia, può essere più prolisso e richiedere l’escape dei caratteri che può aggiungere overhead.

Long Context

GPT-4.1 ha una finestra di contesto di input di 1M di token performante ed è utile per una varietà di attività di contesto lungo, tra cui l’analisi strutturata di documenti, il re-ranking, la selezione di informazioni rilevanti ignorando il contesto irrilevante e l’esecuzione di ragionamenti multi-hop utilizzando il contesto.

Dimensione ottimale del contesto

Osserviamo ottime prestazioni nelle valutazioni needle-in-a-haystack fino al nostro contesto completo di 1M di token e abbiamo osservato prestazioni molto forti in compiti complessi con un mix di codice rilevante e irrilevante e altri documenti. Tuttavia, le prestazioni del contesto lungo possono degradarsi man mano che è necessario recuperare più elementi o eseguire ragionamenti complessi che richiedono la conoscenza dello stato dell’intero contesto (come l’esecuzione di una ricerca nel grafo, ad esempio).

Ottimizzazione della dipendenza dal contesto

Considera il mix di conoscenza del mondo esterna rispetto a quella interna che potrebbe essere necessaria per rispondere alla tua domanda. A volte è importante che il modello utilizzi parte della sua conoscenza per collegare concetti o fare salti logici, mentre in altri è desiderabile utilizzare solo il contesto fornito

Chain of Thought

Come accennato in precedenza, GPT-4.1 non è un modello di ragionamento, ma richiedere al modello di pensare passo dopo passo (chiamato “chain of thought”) può essere un modo efficace per un modello di scomporre i problemi in pezzi più gestibili, risolverli e migliorare la qualità complessiva dell’output, con il compromesso di costi e latenza più elevati associati all’utilizzo di più token di output. Il modello è stato addestrato per funzionare bene nel ragionamento agentico sulla risoluzione di problemi reali, quindi non dovrebbe richiedere molti prompt per funzionare bene.

Struttura Generale

Si consiglia di iniziare con questa istruzione di chain of thought di base alla fine del prompt:

Innanzitutto, pensa attentamente passo dopo passo a quali documenti sono necessari per rispondere alla query. Quindi, stampa il TITOLO e l’ID di ogni documento. Quindi, formatta gli ID in un elenco.

Da lì, dovresti migliorare il tuo prompt chain-of-thought (CoT) verificando i guasti nei tuoi particolari esempi e valutazioni e affrontando gli errori di pianificazione e ragionamento sistematici con istruzioni più esplicite. Nel prompt CoT non vincolato, ci può essere varianza nelle strategie che prova e, se osservi un approccio che funziona bene, puoi codificare quella strategia nel tuo prompt. In generale, gli errori tendono a verificarsi a causa di incomprensione dell’intento dell’utente, raccolta o analisi insufficiente del contesto o ragionamento passo dopo passo insufficiente o errato, quindi fai attenzione a questi e cerca di affrontarli con istruzioni più mirate.

Instruction Following

GPT-4.1 mostra prestazioni eccezionali nel seguire le istruzioni, che gli sviluppatori possono sfruttare per modellare e controllare con precisione gli output per i loro particolari casi d’uso. Gli sviluppatori spesso richiedono ampiamente i passaggi di ragionamento agentico, il tono e la voce della risposta, le informazioni sulla chiamata di strumenti, la formattazione dell’output, gli argomenti da evitare e altro ancora. Tuttavia, poiché il modello segue le istruzioni in modo più letterale, gli sviluppatori potrebbero aver bisogno di includere specifiche esplicite su cosa fare o non fare. Inoltre, i prompt esistenti ottimizzati per altri modelli potrebbero non funzionare immediatamente con questo modello, perché le istruzioni esistenti vengono seguite più da vicino e le regole implicite non vengono più inferite con altrettanta forza.

Ecco il nostro flusso di lavoro consigliato per lo sviluppo e il debug delle istruzioni nei prompt:

  1. Inizia con una sezione complessiva “Regole di risposta” o “Istruzioni” con guida di alto livello e punti elenco.
  2. Se desideri modificare un comportamento più specifico, aggiungi una sezione per specificare maggiori dettagli per quella categoria, come # Frasi di esempio.
  3. Se ci sono passaggi specifici che vorresti che il modello seguisse nel suo flusso di lavoro, aggiungi un elenco ordinato e istruisci il modello a seguire questi passaggi.

Ti potrebbe anche interessare

Data Science: Infrastrutture Scalabili con Docker e Jupyter

Docker per la Data Science: Creazione di Infrastrutture Scalabili con...

IA Generativa Responsabile: Guida per Leader e Product Manager

Uso Responsabile dell'IA Generativa: Guida per Product Manager e Leader...

IA per PMI: Guida Efficace all’Implementazione

INTELLIGENZA ARTIFICIALE E DIGITALIZZAZIONE NELLE PMI: UN QUADRO PER L'IMPLEMENTAZIONE...