Risorse/Addestramento del modello/Preparazione dei dati

Impostazione

Prompt di sistema

Il prompt di sistema è un'istruzione permanente inserita prima di ogni conversazione. Aggiunto durante l'addestramento, il modello apprende il proprio comportamento in presenza di quell'esatto prompt, pertanto dovrebbe rimanere invariato quando il modello viene utilizzato.

Capitolo 5Lettura di 3 min3 riferimenti

Che cos'è

Una chat ha tre ruoli: utente, assistente e sistema. Il messaggio di sistema viene per primo e non è pronunciato da nessuno nella conversazione; è un'istruzione permanente — chi è l'assistente, cosa dovrebbe e non dovrebbe fare, quanto a lungo e in quale formato risponde. Nell'uso quotidiano, è il modo in cui si guida un modello senza riaddestrarlo.

Nella preparazione dei dati, il prompt di sistema è un'impostazione opzionale che viene inserita all'inizio di ogni record di addestramento. Trasforma un insieme di chat individuali in esempi di un unico assistente coerente.

Come funziona durante l'addestramento

systemLei è l'assistente di supporto di Scalata.letto · mascherato
userCome posso reimpostare la mia password?letto · mascherato
assistantApra Impostazioni → Sicurezza e scelga Reimposta password.valutato · loss calcolata
Il modello legge ogni token, ma il suo errore viene misurato solo sulla risposta di destinazione. Il contesto modella la previsione; non viene mai valutato di per sé.

Come il messaggio dell'utente, il prompt di sistema è un contesto: il modello lo legge quando prevede la risposta obiettivo, ma l'errore viene misurato solo sui token obiettivo. Pertanto, l'addestramento non insegna al modello a scrivere il prompt; insegna al modello come si presentano le risposte quando quel prompt è presente.

Questo condizionamento è la parte importante. Prima di raggiungere il modello, una chat viene appiattita in un'unica sequenza di token utilizzando il template di chat del modello, con token speciali che indicano dove iniziano le parti del sistema, dell'utente e dell'assistente. Il comportamento appreso dal modello è associato a quell'esatta sequenza. Se in seguito si utilizza un prompt di sistema diverso — o nessuno — l'input non assomiglia più a quello su cui il modello è stato addestrato e il comportamento appreso si trasferisce solo in parte. Per lo stesso motivo, la documentazione di Hugging Face sottolinea l'importanza di formattare i dati di addestramento con lo stesso template di chat che il modello vedrà durante l'uso.

un record di addestramento con un prompt di sistema
{"messages": [
  {"role": "system",    "content": "You are the support assistant for Acme Billing. Answer in two to four short sentences. Name the exact menu path. If you are not sure, say so and offer to connect a human."},
  {"role": "user",      "content": "How do I download last month's invoice?"},
  {"role": "assistant", "content": "Go to Billing → Invoices, pick last month and choose Download PDF. Invoices appear on the 2nd of each month."}
]}

Cosa inserirvi

  • Identità e ambito: di chi è l'assistente e in cosa fornisce aiuto.
  • Stile di risposta: lunghezza, struttura, se utilizzare elenchi, cosa fare in caso di incertezza.
  • Regole ferree che gli esempi potrebbero non coprire, come non citare mai i prezzi o proporre sempre un operatore umano.
  • Non la conoscenza. I fatti appartengono agli esempi (o al recupero in fase di esecuzione); un prompt pieno di dettagli sul prodotto è lungo, costoso e diventa obsoleto.

Si assicuri che il prompt e le risposte obiettivo concordino. Se il prompt dice "rispondi in due frasi" ma metà degli obiettivi sono lunghe guide passo-passo, il modello impara che l'istruzione non ha molta importanza — e potrebbe ignorarla anche in altri contesti.

Esempio pratico: gli effetti della modifica del prompt
  1. Un modello viene addestrato su 1.500 chat di supporto con il prompt di circa 50 token riportato sopra. Le sue risposte sono brevi, indicano il percorso del menu e propongono un operatore umano in caso di incertezza.
  2. Durante l'utilizzo, qualcuno sostituisce il prompt con uno da 400 token che elenca ogni funzionalità del prodotto. Le risposte diventano più lunghe e l'abitudine di "proporre un operatore umano" si manifesta meno frequentemente: l'input non corrisponde più all'addestramento.
  3. Ripristinare il prompt originale riporta il comportamento appreso. Se le nuove istruzioni sono davvero necessarie, le aggiunga al prompt di addestramento e lo addestri di nuovo.
  4. Costo: 50 token × 1.500 record × 3 epoche = 225.000 token di addestramento solo per il prompt. La versione da 400 token ammonterebbe a 1,8 milioni.
Prompt di sistemaTipico 1–5 frasi#

Testo opzionale aggiunto prima di ogni conversazione. Di solito sono sufficienti poche frasi sull'identità, l'ambito e lo stile di risposta; lo lasci vuoto solo se il modello verrà sempre utilizzato senza.

Errori comuni

  • Addestrare con un prompt di sistema e distribuire con un altro, per poi concludere che il fine-tuning "non ha funzionato".
  • Riempire il prompt di fatti che appartengono agli esempi o al recupero.
  • Un prompt che contraddice le risposte obiettivo, insegnando al modello che le sue istruzioni sono opzionali.
  • Dimenticare il costo in token: un prompt lungo viene pagato in ogni record, in ogni epoca e in ogni richiesta successiva.

Riferimenti e letture di approfondimento

Le fonti esterne si aprono in una nuova scheda.

  1. 01Chat templatesHugging Face Transformers docs · huggingface.coCome i messaggi di sistema, dell'utente e dell'assistente diventano un'unica sequenza di token e perché l'addestramento e l'utilizzo dovrebbero corrispondere.
  2. 02Supervised fine-tuningOpenAI API docs · developers.openai.comEsempi di addestramento nel formato chat, incluso il messaggio di sistema.
  3. 03Prepare data for fine-tuning your modelsAmazon Bedrock User Guide · docs.aws.amazon.comUn formato con un campo di sistema separato per ogni record.

Trasformate settimane di lavoro esperto in pochi minuti

Scoprite come Scalata si adatta al vostro team, ai vostri dati e ai vostri Controlli.

Contatta il team vendite