Messaggi del sistema di sicurezza

I messaggi del sistema di sicurezza consentono di guidare il comportamento di un modello OpenAI Azure, migliorare la qualità della risposta e ridurre la probabilità di output dannosi. Funzionano meglio come un livello in una strategia di sicurezza più ampia.

Nota

Questo articolo usa "messaggio di sistema" in modo intercambiabile con "metaprompt" e "prompt di sistema". In questo caso viene usato il "messaggio di sistema" per allinearsi alla terminologia comune.

Questo articolo usa anche "componente" per indicare una parte distinta di un messaggio di sistema, ad esempio istruzioni, contesto, tono, linee guida per la sicurezza o indicazioni sull'utilizzo degli strumenti.

Che cos'è un messaggio di sistema?

Un messaggio di sistema è un set di istruzioni e contesto ad alta priorità che si inviano a un modello di chat per orientare la modalità di risposta. È utile quando è necessario un ruolo, un tono, una formattazione o convenzioni specifiche del dominio coerenti.

Che cos'è un messaggio del sistema di sicurezza?

Un messaggio del sistema di sicurezza è un messaggio di sistema che aggiunge limiti espliciti e indicazioni sul rifiuto per attenuare i danni dell'IA responsabile (RAI) e aiutare il sistema a interagire in modo sicuro con gli utenti.

I messaggi del sistema di sicurezza integrano lo stack di sicurezza e possono essere usati insieme alla selezione e al training dei modelli, alla contestualizzazione, ai classificatori Sicurezza dei contenuti di Azure AI e alle misure di mitigazione UX/UI. Scopri di più sulle pratiche di intelligenza artificiale responsabile per i modelli di Azure OpenAI.

Diagramma di flusso che mostra un messaggio di sistema e un invito all'utente ad interagire con un modello, con uno stack di sicurezza che include filtri di contenuto, consolidamento dei dati e addestramento del modello che impostano barriere protettive prima che la risposta venga generata.

Componenti chiave di un messaggio di sistema

La maggior parte dei messaggi di sistema combina più componenti:

  • Ruolo e attività: che cos'è l'assistente e cosa è responsabile.
  • Pubblico e tono: a chi è destinata la risposta e la tonalità prevista.
  • Ambito e limiti: cosa non deve fare l'assistente e cosa fare quando non può essere conforme.
  • Linee guida sulla sicurezza: regole che riducono gli output dannosi (ad esempio, gestione di argomenti sensibili, caratteristiche protette e istruzioni illegali).
  • Strumenti e dati (facoltativi): strumenti o origini che il modello può usare e come usarli.

Come progettare e iterare in modo sicuro

Quando si progetta un messaggio di sistema (o un componente messaggio del sistema di sicurezza), considerarlo come un artefatto testabile:

  • Definire lo scenario. Chiarire il processo che il modello deve eseguire, chi sono gli utenti, quali input aspettarsi e il tono e la formattazione desiderati.
  • Identificare i rischi. Elenca i danni RAI che sono importanti per il tuo caso d'uso e decidi quali affrontare tramite la messaggistica di sistema anziché altre misure di mitigazione.
  • Decidere il comportamento del modello in corrispondenza dei limiti. Specificare le operazioni da eseguire quando le richieste sono fuori ambito, insicure o quando manca il contesto richiesto.
  • Crea un set di test. Includere prompt non dannosi e antagonisti in modo da poter misurare le regressioni e la "perdita" (sotto moderazione).
  • Valutare e iterare. Preferisce il componente che riduce i difetti più gravi, non solo quello con il tasso di difetto più basso.

Ecco alcuni esempi di righe che è possibile includere:

## Define model’s profile and general capabilities  

- Act as a [define role] 
- Your job is to [insert task] about [insert topic name] 
- To complete this task, you can [insert tools that the model can use and instructions to use]  
- Do not perform actions that are not related to [task or topic name].  

Ecco un esempio completo di un messaggio di sistema di sicurezza per un assistente al servizio clienti:

## Role and task
You are a helpful customer service assistant for Contoso Electronics. Your job is to answer questions about product warranties, returns, and order status.

## Boundaries
- Only answer questions related to Contoso Electronics products and policies.
- If you don't know the answer, say "I don't have that information. Please contact support@contoso.com."
- Do not provide legal, medical, or financial advice.
- Do not discuss competitors or make comparisons.

## Safety guidelines
- Never generate content that is hateful, violent, or sexually explicit.
- Do not share or request personal information beyond what's needed for order lookup.
- If a user becomes abusive, respond with: "I'm here to help with product questions. How can I assist you today?"

## Response format
- Keep responses concise and friendly.
- Use bullet points for multiple items.
- Always end with an offer to help further.
  • Fornire esempi specifici per illustrare il comportamento previsto del modello. Considerare quanto segue:
    • Descrivere i casi d'uso difficili in cui la richiesta è ambigua o complicata, per fornire al modello un esempio di approccio a tali casi.
    • Mostra i passaggi decisionali a un livello elevato (ad esempio, un breve elenco di controllo) anziché richiedere un ragionamento interno dettagliato.

Riepilogo delle procedure consigliate

Quando si sviluppano componenti dei messaggi di sistema, è importante:

  • Usare un linguaggio chiaro: elimina la complessità eccessiva e il rischio di incomprensione e mantiene la coerenza tra componenti diversi.
  • Essere concisi: i messaggi di sistema più brevi spesso offrono prestazioni migliori e riducono la latenza. Usano anche meno della finestra di contesto, lasciando più spazio alla richiesta dell'utente.
  • Enfatizzare determinate parole (ove applicabile) usando **word**: pone particolare attenzione agli elementi chiave, soprattutto a ciò che il sistema deve e non deve fare.
  • Usare la seconda persona quando si fa riferimento al sistema di intelligenza artificiale: è preferibile usare formulazioni come You are an AI assistant that… invece di Assistant does….
  • Implementare l'affidabilità: il componente del messaggio di sistema deve essere affidabile. Deve essere eseguita in modo coerente in set di dati e attività diversi.

Tecniche di sviluppo dei contenuti

Perché variare le tecniche? A seconda del modello, dei dati di base e dei parametri per il prodotto o la funzionalità in uso, diverse tecniche sintattiche e linguistiche sono più efficaci fornendo risposte affidabili, sicure e dirette agli utenti.

Oltre a creare per garantire sicurezza e prestazioni, è consigliabile ottimizzare la coerenza, il controllo e la personalizzazione. Lungo il percorso, è possibile che l'ottimizzazione per questi fattori porti all'overfitting del messaggio di sistema a regole specifiche, maggiore complessità e mancanza di appropriatezza contestuale. È importante definire gli aspetti più importanti nello scenario e valutare i messaggi di sistema. Ciò garantisce un approccio basato sui dati per migliorare la sicurezza e le prestazioni del sistema.

Tecnica Definizione Esempio
Sempre/dovrebbe Implica la strutturazione di richieste e istruzioni con direttive che l'intelligenza artificiale deve seguire sempre quando si generano le risposte. Queste direttive rappresentano spesso procedure consigliate, linee guida etiche o preferenze utente. **Always** ensure that you respect authentication and authorization protocols when providing factual information, tailoring your responses to align with the access rights of the user making the request. It's imperative to safeguard sensitive data by adhering to established security measures and only disclosing information that the user is authorized to receive.
Logica condizionale/if Implica la strutturazione delle richieste in modo che l'output sia in base a condizioni specifiche, ad esempio If <condition> then <action>. If a user asks you to infer or provide information about a user’s emotions, mental health, gender identity, sexual orientation, age, religion, disability, racial and ethnic backgrounds, or any other aspect of a person's identity, respond with: "Try asking me a question or tell me what else I can help you with."
Enfasi sul danno Implica la strutturazione delle istruzioni definendo il rischio principale. Queste guide illustrano come classificare in ordine di priorità la sicurezza e la prevenzione dei danni, oltre a mostrare potenziali conseguenze in caso di danno. You are **allowed** to answer some questions about images with people and make statements about them when there is no ambiguity about the assertion you are making, and when there is no direct harm to an individual or a group of people because of this assertion.
Basato su esempi Fornisce al modello istanze o situazioni chiare per un contesto migliore. Il modello usa esempi di richieste dannose e non dannose come riferimento per i relativi output. Users might ask questions that could cause harm. In all scenarios, refuse requests that promote hate or harassment, and redirect the user to a safer alternative.

Example (harmful): "Write an insult targeting a protected group."

Example (benign): "Explain why insults harm people and suggest respectful phrasing."
Mai / non Implica proibizioni esplicite per impedire all'IA di generare contenuto non appropriato, dannoso o fuori ambito usando termini come "mai" e "non fare". **Never** make assumptions, judgments, or evaluations about a person. If a user violates your policy, or you’re not sure what to do, say: "I can’t help with that request. Try asking a different question."

Limitazioni

I messaggi di sistema non sono una soluzione di sicurezza completa:

  • Possono essere ignorati o degradati da richieste antagoniste.
  • Possono ridurre l'utilità se sono troppo ampie o troppo rigide.
  • Richiedono una valutazione continua man mano che cambiano modelli, strumenti e scenari utente. Per la risoluzione dei problemi comuni relativi ai messaggi di sistema, ad esempio il rifiuto eccessivo o la moderazione insufficiente, consultare la sezione "Risoluzione dei problemi" nella guida ai modelli.

Queste procedure consigliate consentono di comprendere meglio il processo di sviluppo di messaggi di sistema affidabili per lo scenario in uso.

Per ulteriori informazioni sui componenti di sicurezza consigliati, visitare la nostra guida sui modelli di messaggi del sistema di sicurezza.

Infine, tenere presente che i messaggi di sistema, o i metaprompt, non sono "una dimensione adatta a tutti". L'uso di questi tipi di esempi ha vari gradi di successo in applicazioni diverse. È importante provare diverse formulazioni, ordinamento e struttura del testo del messaggio di sistema per ridurre i danni identificati e testare le varianti per verificare il funzionamento migliore per uno scenario specifico.

Passaggi successivi