Configurações de segurança

Informações gerais

Este guia descreve as configurações de segurança ajustáveis da API PaLM disponíveis para o serviço de texto. Durante a fase de prototipagem, é possível ajustar as configurações de segurança em seis dimensões para avaliar rapidamente se o aplicativo exige uma configuração mais ou menos restritiva. Por padrão, as configurações de segurança bloqueiam conteúdo com média e/ou alta probabilidade de não ser seguro em todas as seis dimensões. Essa segurança de referência foi projetada para funcionar na maioria dos casos de uso. Portanto, ajuste as configurações de segurança apenas se elas forem necessárias para o app de forma consistente.

Filtros de segurança

Além dos filtros de segurança ajustáveis, a API PaLM tem proteções integradas contra danos importantes, como conteúdo que coloca a segurança infantil em risco. Esses tipos de dano são sempre bloqueados e não podem ser ajustados.

Os filtros de segurança ajustáveis abrangem as seguintes categorias:

  • Depreciativo
  • Tóxico
  • Conteúdo sexual
  • Violento
  • Médicos
  • Material perigoso

Essas configurações permitem que você, como desenvolvedor, determine o que é apropriado para seu caso de uso. Por exemplo, se você estiver criando um diálogo de videogame, pode considerar aceitável permitir mais conteúdo classificado como violento ou perigoso de acordo com a natureza do jogo. Veja alguns outros exemplos de casos de uso que podem precisar de alguma flexibilidade nessas configurações de segurança:

Caso de uso Categoria
App de treinamento antiassédio Depreciativo, sexual, tóxico
Especialista em exame médico Médicos
Roteirista de cinema Conteúdo violento, sexual, médico, perigoso
Classificador de toxicidade Tóxico e depreciativo

Probabilidade x gravidade

A API PaLM bloqueia conteúdo com base na probabilidade de ele não ser seguro, e não na gravidade. É importante ter isso em mente, porque algum conteúdo pode ter baixa probabilidade de não ser seguro, mesmo que a gravidade dos danos seja alta. Por exemplo, comparando as frases:

  1. O robô me bateu.
  2. O robô me cortou.

A primeira frase pode ter uma probabilidade maior de não ser segura, mas a frase 2 pode ser considerada mais grave em termos de violência.

Por isso, é importante que cada desenvolvedor teste e considere qual é o nível apropriado de bloqueio necessário para oferecer suporte aos principais casos de uso e minimizar os danos aos usuários finais.

Configurações de segurança

As configurações de segurança fazem parte da solicitação que você envia ao serviço de texto. Ele pode ser ajustado para cada solicitação feita à API. A tabela a seguir lista as categorias que podem ser definidas e descreve o tipo de dano que cada categoria abrange.

Categorias Descrições
Depreciativo Comentários negativos ou nocivos voltados à identidade e/ou atributos protegidos.
Tóxico Conteúdo grosseiro, desrespeitoso ou linguagem obscena.
Conteúdo sexual Contém referências a atos sexuais ou outro conteúdo sexual.
Violento Descreve cenários que retratam violência contra um indivíduo ou grupo ou descrições gerais de sangue em excesso.
Material perigoso promove, facilita ou incentiva atos nocivos.
Médicos Conteúdo relacionado a temas médicos

Também é possível ver essas definições na referência da API.

A tabela a seguir descreve as configurações de bloqueio que você pode ajustar para cada categoria. Por exemplo, se você definir a configuração de bloqueio como Bloquear poucos na categoria Depreciativo, tudo com alta probabilidade de ser conteúdo depreciativo será bloqueado. Mas qualquer item com menor probabilidade é permitido.

Se deixada sem definição, a configuração de bloqueio padrão será Bloquear alguns ou Bloquear muitos, dependendo da categoria da política.

Limite (Google AI Studio) Limite (API) Descrição
Bloquear nenhum BLOCK_NONE Sempre mostrar, independente da probabilidade de conteúdo não seguro
Bloquear poucos BLOCK_ONLY_HIGH Bloquear quando houver alta probabilidade de conteúdo não seguro
Bloquear alguns (padrão para conteúdo sexual, violento, perigoso e médico) BLOCK_MEDIUM_AND_ABOVE Bloquear quando houver probabilidade média ou alta de conteúdo não seguro
Bloquear muitos (Padrão para depreciação e toxicidade) BLOCK_LOW_AND_ABOVE Bloquear quando houver probabilidade baixa, média ou alta de conteúdo não seguro
HARM_BLOCK_THRESHOLD_UNSPECIFIED O limite não foi especificado, use o limite padrão para bloquear

Você pode definir essas configurações para cada solicitação feita ao serviço de texto. Consulte a referência da API HarmBlockThreshold para mais detalhes.

Feedback de segurança

Se o conteúdo foi bloqueado, a resposta da API contém o motivo no campo ContentFilter.reason. Se o motivo estiver relacionado à segurança, a resposta também vai incluir um campo SafetyFeedback, que inclui as configurações de segurança usadas na solicitação e uma classificação de segurança. A classificação de segurança inclui a categoria e a probabilidade da classificação de danos. O conteúdo bloqueado não é retornado.

A probabilidade retornada corresponde aos níveis de confiança do bloco, conforme mostrado na tabela a seguir:

Probabilidade Descrição
NEGLIGADO O conteúdo tem uma probabilidade mínima de não ser seguro
LOW O conteúdo tem uma probabilidade baixa de não ser seguro
MÉDIO O conteúdo tem uma probabilidade média de não ser seguro
ALTA O conteúdo tem alta probabilidade de não ser seguro

Por exemplo, se o conteúdo foi bloqueado porque a categoria de toxicidade tem uma alta probabilidade, a classificação de segurança retornada teria a categoria igual a TOXICITY e a probabilidade de danos definida como HIGH.

Configurações de segurança no Google AI Studio

Também é possível definir essas configurações no Google AI Studio. Em Run settings, clique em Edit safety settings:

Botão "Configurações de segurança"

E use os botões para ajustar cada configuração:

Botão "Configurações de segurança"

Uma mensagem Nenhum conteúdo vai aparecer se o conteúdo estiver bloqueado. Para ver mais detalhes, mantenha o ponteiro sobre No Content e clique em Segurança.

Exemplos de código

Esta seção mostra como usar as configurações de segurança no código usando a biblioteca de cliente Python.

Exemplo de solicitação

Confira a seguir um snippet de código Python que mostra como definir configurações de segurança na chamada GenerateText. Isso define as categorias de danos Derogatory e Violence como BLOCK_LOW_AND_ABOVE, o que bloqueia qualquer conteúdo com baixa ou alta probabilidade de ser violento ou depreciativo.

completion = genai.generate_text(
    model=model,
    prompt=prompt,
    safety_settings=[
        {
            "category": safety_types.HarmCategory.HARM_CATEGORY_DEROGATORY,
            "threshold": safety_types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        },
        {
            "category": safety_types.HarmCategory.HARM_CATEGORY_VIOLENCE,
            "threshold": safety_types.HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        },
    ]
)

Exemplo de resposta

Confira a seguir um snippet de código para analisar o feedback de segurança da resposta. O feedback de segurança estará vazio, a menos que o motivo do bloqueio seja uma das dimensões de segurança.

# First check the content filter reason
for filter in completion.filters:
    print(filter["reason"])

# If any of the reason is "safety", then the safety_feedback field will be
# populated
for feedback in completion.safety_feedback:
    print(feedback["rating"])
    print(feedback["setting"])s

Próximas etapas

  • Consulte a Referência da API para saber mais sobre a API completa.
  • Consulte as orientações de segurança para ter uma visão geral das considerações de segurança ao desenvolver com LLMs.
  • Saiba mais sobre como avaliar a probabilidade e a gravidade com a equipe do Jigsaw
  • Saiba mais sobre os produtos que contribuem para soluções de segurança, como a API Perspective.
  • Você pode usar essas configurações de segurança para criar um classificador de toxicidade. Confira o exemplo de classificação para começar.