Detectar dados pessoais (PII) em grandes volumes de texto é um problema clássico — e agora há uma abordagem nova: usar qualquer LLM como detector, definindo as entidades a serem identificadas em um prompt, e não em código. Foi isso que a equipe de IA responsável da Amazon detalhou em um post técnico com código aberto.
O problema com as ferramentas tradicionais
Ferramentas clássicas de detecção de PII usam modelos de classificação de tokens: transformadores que rotulam cada token com um tipo de PII fixado no treinamento. Isso cria três limitações: a lista de entidades é congelada (não dá para detectar um ID de funcionário ou endereço de carteira cripto sem retreinar), o modelo fica preso a uma única implantação e não cobre bem formatos multilíngues e desorganizados.
Os LLMs mudam o jogo: eles leem as instruções em tempo de inferência, então as entidades a detectar, o formato de saída e o backend viram configuração, não código.
Como funciona o detector
O detector da AWS trata o modelo como um componente configurável e trocável. O texto de entrada é envolvido em instruções que definem as entidades de PII e a saída esperada; o modelo retorna uma lista estruturada de entidades detectadas em JSON.
Dois pontos de design o tornam agnóstico de modelo:
- Detecção guiada por instruções: toda a lógica vive nas instruções e numa fina camada de parsing, independente das idiossincrasias de um modelo específico.
- Backend configurável: o modelo é acessado por uma interface uniforme, o Inferencer. O pacote traz um adaptador para o Amazon Bedrock (modelos gerenciados como Mistral ou OSS-GPT) e aceita um adaptador próprio para modelos abertos rodando na sua própria GPU.
O resultado é um detector com 15 categorias de entidades, cada uma com definição de uma linha, lista de “não sinalizar” e exemplos opcionais. Para adicionar ou remover uma categoria, basta uma edição de uma linha no prompt — sem retreino e sem reimplantação.
Como usar (passo a passo)
O código está no pacote pii-detector, no repositório sample-llm-pii-detection. O fluxo é simples:
- Crie um ambiente virtual e instale a única dependência, o boto3:
pip install boto3. - Configure as credenciais AWS para o Bedrock (perfil IAM ou SSO, região com acesso ao modelo).
- Rode o exemplo embutido:
python -m examples.detect. - Chame o detector no seu texto com um modelo qualquer do Bedrock — trocar de modelo é mudar uma linha (
model_id).
Benchmark: precisão e latência
A avaliação usou cinco corpora públicos de PII do Hugging Face, com cerca de 49 mil registros e 222 mil spans de referência em oito idiomas. O Core F1 variou de 74,9% (Nova Lite 2) a 83,1% (Mistral Large 3), com o PrivacyFilter da OpenAI em 80,7% e o OSS-GPT 20B em 81,6%.
Um achado interessante: a latência é ditada pelo modelo, não pelo número de parâmetros. O OSS-GPT 20B roda em cerca de 1,2 segundos, enquanto o Qwen3.6-27B leva aproximadamente 12,8 segundos.
Customização: a grande vantagem
Ao adicionar definições de categorias extras ao prompt (a configuração “Extended”), o F1 de entidades estendidas salta de cerca de 12% para 73% em todos os modelos testados — sem retreinar nada. Para detectar um novo tipo de entidade específica do seu domínio, basta acrescentar a definição e um exemplo ao prompt.
Prós e contras
✅ O que você ganha:
- Detecta PII em qualquer LLM gerenciado ou autohospedado, sem ficar preso a um modelo;
- Novas entidades são adicionadas por prompt, não por retreino;
- Funciona em oito idiomas sem etapa de tradução;
- Roda no Bedrock (serverless) ou na sua própria GPU (ambientes isolados);
- Código aberto com exemplo executável.
⚠️ O que você não ganha:
- Datas são o ponto fraco compartilhado (cerca de 50% de F1), por ambiguidade de formato;
- Requer conta AWS e acesso a modelos no Bedrock (ou infraestrutura própria com GPU);
- Precisão ainda abaixo de ferramentas especializadas em entidades muito específicas.
Troubleshooting rápido
- ❌ Falha ao importar o módulo: rode com
export PYTHONPATH=.a partir da raiz do repositório. - ❌ Erro de credencial no Bedrock: verifique
AWS_PROFILEeAWS_REGION, ou use perfil IAM/SSO. - ❌ Modelo não disponível: habilite o acesso ao modelo no console do Bedrock para a região escolhida.
- ❌ Rótulo estranho no resultado: o pós-processamento mapeia rótulos quase corretos para o vocabulário do prompt; os que não mapeiam viram
UNK. - ❌ Baixa cobertura de entidades do seu domínio: use a configuração Extended, adicionando as definições ao prompt.
Descubra mais sobre noticiAI
Assine para receber nossas notícias mais recentes por e-mail.



