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:
- O robô me bateu.
- 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:
E use os botões para ajustar cada configuração:
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.