Sobre o projeto

rizzo-pii é uma ferramenta local e reversível de anonimização de PII destinada a documentos jurídicos e profissionais italianos. O seu núcleo é o rizzo-pii:0.3B, um modelo de classificação de tokens com backbone mmBERT/ModernBERT (cerca de 0,3B de parâmetros) que corre em CPU com aproximadamente 0,5 GB de RAM e não requer chave de API nem acesso à rede. O fluxo de trabalho é: anonimizar localmente, substituir cada segmento detetado por um marcador estável e sensível ao tipo, como [FULLNAME_1] ou [IBAN_1], manter o mapeamento marcador-para-valor num dicionário local, enviar apenas o texto com marcadores a um LLM de fronteira e, em seguida, restaurar localmente os valores reais a partir da resposta. Valores idênticos partilham o mesmo marcador, para que o texto permaneça coerente para o modelo remoto. O modelo prevê 22 tipos de entidades em formato BIO, abrangendo nomes, datas, endereços, dados de contacto, IBAN, cartões de crédito, montantes, matrículas, organizações, identificadores de documentos e dados cadastrais. Cinco etiquetas jurídicas italianas (CF, PIVA, CATASTO, DOCID, PROVINCE) são destacadas como identificadores não cobertos por outros modelos abertos; são criadas através de síntese com somas de verificação válidas. A aplicação acrescenta uma etiqueta de URL tratada apenas por regex. A deteção combina o modelo neural com uma camada determinística de regex e somas de verificação para identificadores estruturados (email, telefone, IBAN, CF, PIVA, cartão de crédito, montante, matrícula), em que somas de verificação válidas se sobrepõem ao modelo. A aplicação disponibiliza marcadores estáveis, um dicionário local descarregável, um separador de restauro tolerante a variações de formatação, segmentação com sobreposição para PDFs longos e uma interface colorida por etiqueta. O treino utilizou um conjunto multilingue de cerca de 745 mil linhas etiquetadas, com o italiano reforçado para cerca de 45%, reunido a partir de fontes reais e sintéticas e remapeado para as 22 etiquetas no momento do carregamento. Os dados sintéticos seguem uma abordagem de "LLM autor, código etiquetador": um LLM escreve prosa jurídica italiana com marcadores e o código injeta valores válidos, de modo que as etiquetas são exatas e não é produzido qualquer dado pessoal real. O treino correu uma época numa única GPU de consumo de 16 GB. Os resultados reportados num benchmark italiano real de validação com 7.000 linhas incluem precisão micro de 0,987, recall micro de 0,990, F1 micro de 0,989 e exatidão de tokens de 0,998, com macro-F1 de 0,987 nas 22 etiquetas. O README afirma que todos os cinco identificadores jurídicos italianos obtiveram 1,000, enquanto as classes mais difíceis incluem ZIPCODE, CREDITCARDNUMBER, STREET, CITY e ORG. As opções de implementação incluem uma aplicação de ambiente de trabalho Tauri que agrega um sidecar Python/Flask para CPU, uma imagem Docker autónoma apenas para CPU, a execução da aplicação web a partir do código-fonte, uma CLI para documentos individuais e uma API HTTP com endpoints como /health, /analyze, /pdf e /preview. São oferecidas versões pré-compiladas para Windows, macOS (Apple Silicon) e Linux AppImage. O projeto enquadra o seu design na minimização de dados do RGPD e no alinhamento com o Regulamento Europeu de IA, e inclui um relatório técnico em PDF, documentação do conjunto de dados e da taxonomia, e instruções de compilação.