View a markdown version of this page

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

As Barreiras de Proteção do Amazon Bedrock permitem verificações 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 incluem resumo, paráfrase e resposta a perguntas, conforme definido na disciplina de ciência da computação. (Casos de uso de QA conversacional/Chatbot não são suportados.)

As verificações de base contextual examinam a relevância de cada fragmento processado. 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 fundamentação contextual verifica os seguintes 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

As verificações de base contextual geram 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.

As verificações de base contextual requerem 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.

Adicionar verificações de base contextual com o console

  1. Faça login no Console de gerenciamento da AWS 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 à esquerda, escolha Barreiras de proteção e selecione Criar uma barreira de proteção.

  3. Na página Fornecer detalhes da barreira de proteção, 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 prompts bloqueados, insira uma mensagem que exibida quando a barreira de proteção é aplicada. Marque a caixa de seleção Aplicar a mesma mensagem bloqueada para respostas para usar a mesma mensagem quando a barreira de proteção for aplicada na resposta.

    3. (Opcional) Para habilitar a inferência entre regiões para a barreira de proteção, expanda Inferência entre regiões e selecione Habilitar inferência entre regiões para sua barreira 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, a barreira de proteção é criptografada com uma Chave gerenciada pela AWS. Para usar sua própria chave do KMS gerenciada pelo cliente, expanda Seleção da chave do 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 à barreira de proteção, expanda Tags e 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 Adicionar verificação de base 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 verificações de base contextual e, portanto, as verificações só serão executadas 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 verificações de base contextual e, portanto, as verificações só serão executadas 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ções 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. Se, no entanto, um bloco de conteúdo estiver marcado com o qualificador guard_content, a política de verificações 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 para ApplyGuardrail, use o campo de qualificadores em cada bloco de conteúdo. No entanto, como um modelo não é invocado com ApplyGuardrail, forneça também 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 verificações de base contextual e, portanto, as verificações só serão executadas 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ções 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. Se, no entanto, um bloco de conteúdo estiver marcado com o qualificador guard_content, a política de verificações 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.