Usar a verificação de base contextual para filtrar alucinações nas respostas - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar a verificação de base contextual para filtrar alucinações nas respostas

O Amazon Bedrock Guardrails permite a verificação de base contextual para detectar e filtrar alucinações nas respostas do modelo quando uma fonte de referência e uma consulta do usuário são fornecidas. Os casos de uso suportados abrangem agentes de geração aumentada de recuperação (RAG), resumo, paráfrase ou conversação que dependem de uma fonte de referência, como passagens recuperadas no RAG ou histórico de conversas, para que os agentes fundamentem as conversas.

A verificação de base contextual verifica a relevância de cada parte processada. Se qualquer parte for considerada relevante, toda a resposta será considerada relevante, pois contém a resposta à consulta do usuário. Para a API de streaming, isso pode resultar em um cenário em que uma resposta irrelevante seja retornada ao usuário e só ser marcada como irrelevante depois que toda a resposta for transmitida.

A verificação de base contextual avalia alucinações em dois paradigmas:

  • De base: verifica se a resposta do modelo é factualmente precisa com base na fonte e se está fundamentada na fonte. Qualquer nova informação introduzida na resposta será considerada infundada.

  • Relevância: verifica se a resposta do modelo é relevante para a consulta do usuário.

Considere um exemplo em que a fonte de referência contém “Londres é a capital do Reino Unido. Tóquio é a capital do Japão” e a consulta do usuário é “Qual é a capital do Japão?”. Uma resposta como “A capital do Japão é Londres” será considerada infundada e factualmente incorreta, enquanto uma resposta como “A capital do Reino Unido é Londres” será considerada irrelevante, mesmo que esteja correta e fundamentada na fonte.

nota

Quando uma solicitação inclui várias tags grounding_source, a barreira de proteção combina e avalia todos os valores de grounding_source fornecidos em conjunto, em vez de considerar cada grounding_source separadamente. Esse comportamento é idêntico para a tag query.

nota

Atualmente, a política de base contextual é compatível com no máximo 100.000 caracteres para a fonte de base, 1.000 caracteres para a consulta e 5.000 caracteres para a resposta.

Pontuações e limites de confiança

A verificação de base contextual gera pontuações de confiança correspondentes ao fundamento e à relevância de cada resposta do modelo processada com base na fonte e na consulta fornecida pelo usuário. É possível configurar limites para filtrar as respostas do modelo com base nas pontuações geradas. O limite de filtragem determina a pontuação de confiança mínima permitida para que a resposta do modelo seja considerada fundamentada e relevante na aplicação de IA generativa. Por exemplo, se o limite de base e o limite de relevância estiverem definidos em 0,7, todas as respostas do modelo com uma pontuação de base ou relevância inferior a 0,7 serão detectadas como alucinações e bloqueadas na aplicação. À medida que o limite de filtragem aumenta, a probabilidade de bloquear conteúdo não fundamentado e irrelevante aumenta, e a probabilidade de ver conteúdo alucinado na aplicação diminui. É possível configurar valores limite de base e de relevância entre 0 e 0,99. Um limite de 1 é inválido, pois bloqueará todo o conteúdo.

A verificação de base contextual requer três componentes para realizar a verificação: a fonte de base, a consulta e o conteúdo a ser protegido (ou a resposta do modelo). Eles são configurados de forma diferente, dependendo se você está usando o Invoke APIs ou ApplyGuardrail diretamente. Converse APIs

  • Fonte de base: as informações contextuais necessárias para responder a qualquer consulta do usuário. Por exemplo, “Londres é a capital do Reino Unido. Tóquio é a capital do Japão”.

  • Consulta: uma pergunta que um usuário pode fazer. Por exemplo, “Qual é a capital do Japão?”.

  • Conteúdo a ser protegido: o texto que deve ser protegido em relação à fonte de base e à consulta. Para Invoke e Converse APIs, essa é a resposta do modelo. Por exemplo, pode ser “A capital do Japão é Tóquio”.

Exemplo não fundamentado

  • Fonte de base: “Londres é a capital do Reino Unido. Tóquio é a capital do Japão”.

  • Consulta: “Qual é a capital do Japão?”

  • Conteúdo a ser protegido: “A capital do Japão é Londres”.

Neste exemplo, o conteúdo a ser protegido é relevante para a consulta, mas não é fundamentado, pois não usa a fonte de base corretamente. Isso teria uma pontuação de base baixa.

Exemplo irrelevante

  • Fonte de base: “Londres é a capital do Reino Unido. Tóquio é a capital do Japão”.

  • Consulta: “Qual é a capital do Japão?”

  • Conteúdo para proteger: “A capital do Reino Unido é Londres”.

Neste exemplo, o conteúdo a ser protegido é fundamentado, mas não é relevante. Ele usa informações da fonte de base, mas não responde à consulta. Esse exemplo teria uma pontuação de relevância baixa.

Exemplo infundado e irrelevante

  • Fonte de base: “Londres é a capital do Reino Unido. Tóquio é a capital do Japão”.

  • Consulta: “Qual é a capital do Japão?”

  • Conteúdo para proteger: “Está chovendo lá fora”.

Neste exemplo, o conteúdo a ser protegido não é fundamentado e não é relevante. Ele não usa informações da fonte de base, nem responde à consulta. Esse exemplo teria uma pontuação de base baixa e uma relevância baixa.

Mais exemplos

Considere uma aplicação bancária criada para responder a perguntas relacionadas a taxas e cobranças.

Fonte:

  • Não há taxas associadas à abertura de uma conta corrente.

  • A taxa mensal de manutenção de uma conta corrente é de USD 10.

  • Há uma cobrança de 1% para transações de transferências internacionais.

  • Não há cobranças associadas às transferências domésticas.

  • As cobranças associadas a pagamentos atrasados da fatura do cartão de crédito é de 23,99%.

Com base na fonte acima, pode haver quatro cenários, dependendo da consulta do usuário.

Fundamentado e relevante

  • P: Quais são as taxas associadas à conta corrente?

  • R: A taxa mensal de manutenção de uma conta corrente é de USD 10. Não há cobranças associadas às transferências domésticas. No entanto, há uma cobrança de 1% para transações de transferências internacionais. Não há taxas associadas à abertura de uma conta corrente.

Não fundamentado, mas relevante

  • P: Qual é a taxa de transação associada a cartão de crédito?

  • R: As cobranças de transações associadas a cartão de crédito é de 23,99%.

Fundamentado, mas irrelevante

  • P: Quais são as cobranças pelo uso de uma conta corrente bancária?

  • R: Com base nas informações fornecidas, a taxa de atraso no pagamento de um cartão de crédito é de 23,99%.

Não fundamentado, mas irrelevante

  • P: Quais são as cobranças pelo uso de uma conta corrente bancária?

  • R: As cobranças da conta de corretagem são de USD 0,5 por transação comercial.

Adicione verificações contextuais de aterramento com o console

  1. Faça login no AWS Management Console com uma identidade do IAM que tenha permissões para usar o console Amazon Bedrock. Em seguida, abra o console Amazon Bedrock em https://console.aws.amazon.com/bedrock/.

  2. No painel de navegação esquerdo, escolha Guardrails e, em seguida, escolha Create guardrail.

  3. Na página Fornecer detalhes do guardrail, faça o seguinte:

    1. Na seção Detalhes da barreira de proteção, forneça um Nome e uma Descrição opcional para a barreira de proteção.

    2. Em Mensagens para solicitações bloqueadas, insira uma mensagem que será exibida quando sua grade de proteção for aplicada. Marque a caixa de seleção Aplicar a mesma mensagem bloqueada para respostas para usar a mesma mensagem quando sua grade de proteção for aplicada à resposta.

    3. (Opcional) Para ativar a inferência entre regiões para sua grade de proteção, expanda a inferência entre regiões e selecione Ativar inferência entre regiões para sua grade de proteção. Escolha um perfil de guardrail que defina o destino para Regiões da AWS onde as solicitações de inferência de guardrail podem ser roteadas.

    4. (Opcional) Por padrão, sua grade de proteção é criptografada com um. Chave gerenciada pela AWS Para usar sua própria chave KMS gerenciada pelo cliente, expanda a seleção de chaves KMS e marque a caixa de seleção Personalizar configurações de criptografia (avançadas).

      Você pode selecionar uma AWS KMS chave existente ou selecionar Criar uma AWS KMS chave para criar uma nova.

    5. (Opcional) Para adicionar tags à sua grade de proteção, expanda Tags e, em seguida, selecione Adicionar nova tag para cada tag que você definir.

      Para obter mais informações, consulte Marcação de recursos do Amazon Bedrock.

    6. Escolha Próximo.

  4. Na página de verificação Adicionar aterramento contextual, configure limites para bloquear informações não fundamentadas ou irrelevantes.

    nota

    Para cada tipo de verificação, é possível mover o controle deslizante ou inserir um valor limite de 0 a 0,99. Selecione um limite apropriado para seus usos. Um limite mais alto exige que as respostas sejam fundamentadas ou relevantes, com um alto grau de confiança para serem permitidas. As respostas abaixo do limite serão filtradas.

    1. No campo Base, selecione Habilitar verificação de base para verificar se as respostas do modelo estão fundamentadas.

    2. No campo Relevância, selecione Habilitar verificação de relevância para verificar se as respostas do modelo são relevantes.

    3. Ao concluir a configuração dos filtros de informações confidenciais, selecione Próximo ou Ir para analisar e criar.

Chamando a verificação de aterramento contextual com o Invoke APIs

Para marcar a fonte de base e a consulta na entrada, fornecemos duas tags que funcionam da mesma forma que as tags de entrada. Essas tags são amazon-bedrock-guardrails-groundingSource_xyz e amazon-bedrock-guardrails-query_xyz supondo que o sufixo da tag seja xyz. Por exemplo:

{ "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", }, }

Observe que a resposta do modelo é necessária para realizar a verificação de base contextual e, portanto, a verificação só será executada na saída e não no prompt.

Essas tags podem ser usadas com as tags guardContent. Se nenhuma tag guardContent for usada, a barreira de proteção usará como padrão a aplicação de todas as políticas configuradas em toda a entrada, incluindo a fonte de base e a consulta. Se as tags guardContent forem usadas, a política de verificação de base contextual investigará apenas a fonte de base, a consulta e a resposta, enquanto as demais políticas investigarão o conteúdo dentro das tags guardContent.

Chamando a verificação de aterramento contextual com Converse APIs

Para marcar a fonte de base e a consulta Converse APIs, use o campo de qualificadores em cada bloco de conteúdo de proteção. Por exemplo:

[ { "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"], } } }, ], } ]

Observe que a resposta do modelo é necessária para realizar a verificação de base contextual e, portanto, a verificação só será executada na saída e não no prompt.

Se nenhum dos blocos de conteúdo estiver marcado com o qualificador guard_content, a política de verificação de base contextual investigará apenas a fonte de base, a consulta e a resposta. As demais políticas seguirão o comportamento padrão de investigação: o padrão de prompt do sistema é não ser investigado, e o padrão de mensagens é serem investigadas. No entanto, se um bloco de conteúdo estiver marcado com o qualificador guard_content, a política de verificação de base contextual investigará apenas a fonte de base, a consulta e a resposta, enquanto as demais políticas investigarão o conteúdo marcado com as tags guardContent.

Chamando a verificação de aterramento contextual com API ApplyGuardrail

Usar a verificação contextual de aterramento com ApplyGuardrail é semelhante a usá-la com o. Converse APIs Para marcar a fonte de base e a consulta ApplyGuardrail, use o campo de qualificadores em cada bloco de conteúdo. No entanto, como um modelo não é invocado com ApplyGuardrail, você também deve fornecer um bloco de conteúdo extra com o conteúdo a ser protegido. Esse bloco de conteúdo pode ser opcionalmente qualificado com guard_content e é equivalente à resposta do modelo no Invoke* ou Converse*. APIs Por exemplo:

[ { "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." } } ]

Observe que a resposta do modelo é necessária para realizar a verificação de base contextual e, portanto, a verificação só será executada na saída e não no prompt.

Se nenhum dos blocos de conteúdo estiver marcado com o qualificador guard_content, a política de verificação de base contextual investigará apenas a fonte de base, a consulta e a resposta. As demais políticas seguirão o comportamento padrão de investigação: o padrão de prompt do sistema é não ser investigado, e o padrão de mensagens é serem investigadas. No entanto, se um bloco de conteúdo estiver marcado com o qualificador guard_content, a política de verificação de base contextual investigará apenas a fonte de base, a consulta e a resposta, enquanto as demais políticas investigarão o conteúdo marcado com as tags guardContent.