Usa il controllo contestuale del grounding per filtrare le allucinazioni nelle risposte - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa il controllo contestuale del grounding per filtrare le allucinazioni nelle risposte

Amazon Bedrock Guardrails supporta i controlli di base contestuali per rilevare e filtrare le allucinazioni nelle risposte del modello quando viene fornita una fonte di riferimento e una query dell'utente. I casi d'uso supportati spaziano dalla generazione aumentata al recupero (RAG), al riepilogo, alla parafrasi o agli agenti conversazionali che si basano su una fonte di riferimento, ad esempio passaggi recuperati in RAG o cronologia delle conversazioni con cui gli agenti possono fondare le conversazioni.

I controlli contestuali di messa a terra verificano la pertinenza di ogni blocco elaborato. Se un blocco è considerato pertinente, l'intera risposta è considerata pertinente in quanto contiene la risposta alla domanda dell'utente. Per l'API di streaming, ciò può comportare uno scenario in cui all'utente viene restituita una risposta irrilevante e viene contrassegnata come irrilevante solo dopo lo streaming dell'intera risposta.

I controlli contestuali di base valutano le allucinazioni secondo due paradigmi:

  • Grounding: verifica se la risposta del modello è effettivamente accurata in base alla fonte e se è fondata sulla fonte. Qualsiasi nuova informazione introdotta nella risposta sarà considerata priva di fondamento.

  • Rilevanza: verifica se la risposta del modello è pertinente alla richiesta dell'utente.

Consideriamo un esempio in cui la fonte di riferimento contiene «Londra è la capitale del Regno Unito». Tokyo è la capitale del Giappone» e la domanda dell'utente è «Qual è la capitale del Giappone?». Una risposta come «La capitale del Giappone è Londra» sarà considerata infondata e di fatto errata, mentre una risposta come «La capitale del Regno Unito è Londra» sarà considerata irrilevante, anche se è corretta e fondata sulla fonte.

Nota

Quando una richiesta include più grounding_source tag, il guardrail combina e valuta tutti i grounding_source valori forniti insieme, anziché considerarli separatamente. grounding_source Questo comportamento è identico per il query tag.

Nota

La politica di base contestuale attualmente supporta un massimo di 100.000 caratteri per il grounding source, 1.000 caratteri per la query e 5.000 caratteri per la risposta.

Punteggi e soglie di confidenza

I controlli di base contestuali generano punteggi di confidenza corrispondenti alla base e alla pertinenza per ogni risposta del modello elaborata in base alla fonte e alla query dell'utente fornite. È possibile configurare delle soglie per filtrare le risposte del modello in base ai punteggi generati. La soglia di filtraggio determina il punteggio di confidenza minimo consentito affinché la risposta del modello sia considerata fondata e pertinente nell'applicazione di intelligenza artificiale generativa. Ad esempio, se la soglia di base e la soglia di pertinenza sono entrambe impostate a 0,7, tutte le risposte del modello con un punteggio di base o di pertinenza inferiore a 0,7 verranno rilevate come allucinazioni e bloccate nella domanda. All'aumentare della soglia di filtraggio, aumenta la probabilità di bloccare contenuti non fondati e irrilevanti e diminuisce la probabilità di vedere contenuti allucinati nell'applicazione. È possibile configurare valori di soglia di messa a terra e pertinenza compresi tra 0 e 0,99. Una soglia pari a 1 non è valida in quanto bloccherà tutto il contenuto.

I controlli di base contestuali richiedono 3 componenti per eseguire il controllo: la fonte del grounding, la query e il contenuto da proteggere (o la risposta del modello). Questi sono configurati in modo diverso a seconda che si utilizzi Invoke o direttamente APIs. Converse APIs ApplyGuardrail

  • Grounding source: informazioni contestuali necessarie per rispondere a qualsiasi domanda dell'utente. Ad esempio, «Londra è la capitale del Regno Unito. Tokyo è la capitale del Giappone».

  • Interrogazione: una domanda che un utente può porre. Ad esempio, «Qual è la capitale del Giappone?».

  • Contenuto da proteggere: il testo da proteggere rispetto alla fonte e alla query di base. Per Invoke and Converse APIs, questa è la risposta del modello. Ad esempio, questo può essere «La capitale del Giappone è Tokyo».

Esempio infondato

  • Fonte principale: «Londra è la capitale del Regno Unito. Tokyo è la capitale del Giappone».

  • Domanda - «Qual è la capitale del Giappone?»

  • Contenuto da custodire: «La capitale del Giappone è Londra».

In questo esempio, il contenuto da proteggere è pertinente alla query ma è privo di fondamento in quanto non utilizza correttamente la fonte di base. Questo avrebbe un punteggio di base basso.

Esempio irrilevante

  • Fonte di partenza: «Londra è la capitale del Regno Unito. Tokyo è la capitale del Giappone».

  • Domanda - «Qual è la capitale del Giappone?»

  • Contenuto da proteggere - «La capitale del Regno Unito è Londra».

In questo esempio, il contenuto da proteggere è fondato ma non pertinente. Utilizza le informazioni provenienti dalla fonte di base ma non risponde alla domanda. Ciò avrebbe un punteggio di pertinenza basso.

Esempio infondato e irrilevante

  • Fonte di base: «Londra è la capitale del Regno Unito. Tokyo è la capitale del Giappone».

  • Domanda - «Qual è la capitale del Giappone?»

  • Contenuto da proteggere: «Fuori piove».

In questo esempio, il contenuto da proteggere non è fondato e non è pertinente. Non utilizza informazioni provenienti dalla fonte di base né risponde alla domanda. Ciò avrebbe un punteggio di base e pertinenza basso.

Altri esempi

Prendi in considerazione un'applicazione bancaria progettata per rispondere a domande relative a commissioni e addebiti.

Fonte:

  • Non ci sono commissioni associate all'apertura di un conto corrente.

  • La tariffa mensile per la gestione di un conto corrente è di $10.

  • È prevista una commissione di transazione dell'1% per i trasferimenti internazionali.

  • Non ci sono costi associati ai trasferimenti nazionali.

  • Gli addebiti associati ai pagamenti tardivi delle fatture della carta di credito sono del 23,99%.

Sulla base della fonte precedente, possono esserci quattro scenari a seconda della richiesta dell'utente.

Fondato e pertinente

  • D: Quali sono le commissioni associate al conto corrente?

  • R: La tariffa mensile per la gestione di un conto corrente è di $10. Non ci sono costi associati ai trasferimenti nazionali. Tuttavia, è prevista una commissione di transazione dell'1% per i trasferimenti internazionali. Non ci sono commissioni associate all'apertura di un conto corrente.

Infondato ma pertinente

  • D: Qual è il costo di transazione associato alla carta di credito.

  • R: I costi di transazione associati alla carta di credito sono del 23,99%.

Fondato ma irrilevante

  • D: Quali sono i costi per l'utilizzo di un conto corrente bancario?

  • R: In base alle informazioni fornite, la commissione per i ritardi di pagamento per una carta di credito è del 23,99%.

Infondato e irrilevante

  • D: Quali sono i costi per l'utilizzo di un conto corrente bancario?

  • R: Le spese per il conto di intermediazione sono di 0,5$ per transazione di trading.

Aggiungi controlli di base contestuali con la console

  1. Accedi a AWS Management Console con un responsabile IAM che dispone delle autorizzazioni per utilizzare la console Amazon Bedrock. Quindi, apri la console Amazon Bedrock all'indirizzo https://console.aws.amazon.com/bedrock/.

  2. Dal riquadro di navigazione a sinistra, scegli Guardrails, quindi scegli Crea guardrail.

  3. Per fornire la pagina dei dettagli del guardrail, procedi come segue:

    1. Nella sezione dei dettagli del guardrail, fornisci un nome e una descrizione facoltativa per il guardrail.

    2. Per Messaggi per richieste bloccate, inserisci un messaggio che viene visualizzato quando viene applicato il guardrail. Seleziona la casella di controllo Applica lo stesso messaggio bloccato alle risposte per utilizzare lo stesso messaggio quando il guardrail viene applicato alla risposta.

    3. (Facoltativo) Per abilitare l'inferenza tra regioni per il tuo guardrail, espandi Inferenza interregionale, quindi seleziona Abilita inferenza interregionale per il tuo guardrail. Scegli un profilo guardrail che definisca la destinazione in cui possono essere instradate le richieste di inferenza del guardrail. Regioni AWS

    4. (Facoltativo) Per impostazione predefinita, il guardrail è crittografato con un. Chiave gestita da AWS Per utilizzare la tua chiave KMS gestita dal cliente, espandi la selezione della chiave KMS e seleziona la casella di controllo Personalizza le impostazioni di crittografia (avanzate).

      Puoi selezionare una AWS KMS chiave esistente o selezionare Crea una chiave per crearne una AWS KMS nuova.

    5. (Facoltativo) Per aggiungere tag al tuo guardrail, espandi Tag, quindi seleziona Aggiungi nuovo tag per ogni tag che definisci.

      Per ulteriori informazioni, consulta Etichettare le risorse di Amazon Bedrock.

    6. Scegli Next (Successivo).

  4. Nella pagina Aggiungi controllo contestuale del grounding, configura le soglie per bloccare le informazioni non fondate o irrilevanti.

    Nota

    Per ogni tipo di controllo, puoi spostare il cursore o inserire un valore di soglia compreso tra 0 e 0,99. Seleziona una soglia appropriata per i tuoi usi. Una soglia più alta richiede che le risposte siano fondate o pertinenti con un alto grado di confidenza per poter essere consentite. Le risposte al di sotto della soglia verranno filtrate.

    1. Nel campo Grounding, selezionate Enable Grounding check per verificare se le risposte del modello sono collegate a terra.

    2. Nel campo Rilevanza, seleziona Abilita il controllo di pertinenza per verificare se le risposte del modello sono pertinenti.

    3. Al termine della configurazione dei filtri per le informazioni sensibili, seleziona Avanti o Salta per rivedere e creare.

Chiamare il controllo contestuale del grounding con Invoke APIs

Per contrassegnare la sorgente di base e la query all'interno dell'input, forniamo 2 tag che funzionano allo stesso modo dei tag di input. Questi tag sono amazon-bedrock-guardrails-groundingSource_xyz e amazon-bedrock-guardrails-query_xyz supponendo che il suffisso del tag sia xyz. Per esempio:

{ "text": """ <amazon-bedrock-guardrails-groundingSource_xyz>London is the capital of UK. Tokyo is the capital of Japan. </amazon-bedrock-guardrails-groundingSource_xyz> <amazon-bedrock-guardrails-query_xyz>What is the capital of Japan?</amazon-bedrock-guardrails-query_xyz> """, "amazon-bedrock-guardrailConfig": { "tagSuffix": "xyz", }, }

Si noti che la risposta del modello è necessaria per eseguire i controlli di messa a terra contestuali e quindi i controlli verranno eseguiti solo sull'output e non sul prompt.

Questi tag possono essere utilizzati insieme ai tag GuardContent. Se non vengono utilizzati tag GuardContent, per impostazione predefinita il guardrail applicherà tutte le politiche configurate sull'intero input, inclusi la sorgente di base e la query. Se vengono utilizzati i tag GuardContent, la politica contestuale di controllo del grounding esaminerà solo la fonte di base, la query e la risposta, mentre le politiche rimanenti esamineranno il contenuto all'interno dei tag GuardContent.

Chiamare il controllo contestuale del grounding con Converse APIs

Per contrassegnare la fonte del grounding e la query per Converse APIs, usa il campo qualifiers in ogni blocco di contenuto di Guard. Per esempio:

[ { "role": "user", "content": [ { "guardContent": { "text": { "text": "London is the capital of UK. Tokyo is the capital of Japan", "qualifiers": ["grounding_source"], } } }, { "guardContent": { "text": { "text": "What is the capital of Japan?", "qualifiers": ["query"], } } }, ], } ]

Nota che la risposta del modello è necessaria per eseguire i controlli di messa a terra contestuali e quindi i controlli verranno eseguiti solo sull'output e non sul prompt.

Se nessuno dei blocchi di contenuto è contrassegnato con il qualificatore guard_content, la politica dei controlli di base contestuali esaminerà solo la fonte, la query e la risposta del grounding. Le politiche rimanenti seguiranno il comportamento di indagine predefinito: l'impostazione predefinita del prompt di sistema è non essere analizzata e quella dei messaggi è quella predefinita. Se, tuttavia, un blocco di contenuto è contrassegnato con il qualificatore guard_content, la politica contestuale dei controlli di base esaminerà solo la fonte di base, la query e la risposta, mentre le politiche rimanenti esamineranno il contenuto contrassegnato con i tag GuardContent.

Richiamo al controllo di base contestuale con l'API ApplyGuardrail

L'utilizzo del controllo contestuale del grounding con ApplyGuardrail è simile a quello con. Converse APIs Per contrassegnare la fonte di base e la query perApplyGuardrail, utilizza il campo qualificatori in ogni blocco di contenuto. Tuttavia, poiché un modello non viene richiamato conApplyGuardrail, è necessario fornire anche un blocco di contenuto aggiuntivo con il contenuto da proteggere. Questo blocco di contenuto può essere facoltativamente qualificato con guard_content ed è equivalente alla risposta del modello in Invoke* o Converse*. APIs Per esempio:

[ { "text": { "text": "London is the capital of UK. Tokyo is the capital of Japan", "qualifiers": [ "grounding_source" ] } }, { "text": { "text": "What is the capital of Japan?", "qualifiers": [ "query" ] } }, { "text": { "text": "The capital of Japan is Tokyo." } } ]

Si noti che la risposta del modello è necessaria per eseguire i controlli di messa a terra contestuali e quindi i controlli verranno eseguiti solo sull'output e non sul prompt.

Se nessuno dei blocchi di contenuto è contrassegnato con il qualificatore guard_content, la politica dei controlli di base contestuali esaminerà solo la fonte, la query e la risposta del grounding. Le politiche rimanenti seguiranno il comportamento di indagine predefinito: l'impostazione predefinita del prompt di sistema è non essere analizzata e quella dei messaggi è quella predefinita. Se, tuttavia, un blocco di contenuto è contrassegnato con il qualificatore guard_content, la politica contestuale dei controlli di base esaminerà solo la fonte di base, la query e la risposta, mentre le politiche rimanenti esamineranno il contenuto contrassegnato con i tag GuardContent.