OPF · Privacy Filter · Português Brasileiro · LGPD

Identificação de informações pessoais em documentos em português

Fine-tune do openai/privacy-filter em 914 mil amostras PT-BR — 73 rótulos cobrindo dados pessoais sensíveis nos termos do art. 5º, II da Lei nº 13.709/2018, com placeholder de substituição já emitido pelo decoder Viterbi constrained.

OPF PT-BR — Identificação de PII em documentos

Fine-tune do openai/privacy-filter treinado em 914 mil amostras de PII em português brasileiro, com destaque explícito para dados pessoais sensíveis nos termos do art. 5º, II da Lei nº 13.709/2018 (LGPD). Cobre 73 categorias (24 canônicas PT-BR + 47 cross-source multilíngua) e emite, além do rótulo, um placeholder já pronto para substituição, via decoder Viterbi com restrições BIESO.

Quando marcado, o cabeçalho do resumo sinaliza a opção.

Exemplos de referência (textos construídos manualmente, fora do conjunto de treino)
Texto para análise Rótulos considerados Descartar spans sobrepostos do mesmo rótulo
Pages:

Desempenho do modelo

Ranking apples-to-apples (mesma val PT-BR 5k, mesmas 24 labels canônicas, nervaluate):

Modelo partial F1 exact F1
opf-finetune (este) 0.897 0.853
mmBERT-small × 3 0.888 0.870
ettin-68m 0.822 0.789
ettin-32m 0.808 0.769

Recipe

Item Detalhe
Modelo arthrod/gliner-opf-ptbr-pii-v1 (privado)
Backbone openai/privacy-filter (8L sparse-MoE, 128 experts, top-4 routing)
Treino 9-round chunked sweep (3 ép × 3 saves), 914 mil linhas, ~3h45m em MI300X
Decoder Viterbi constrained (BIESO)
Best ckpt e3_c3 — typed F1 0.885 (P 0.894 / R 0.876)
Batch / ctx 32 janelas × grad-accum 4 (efetivo 128), n-ctx 256, bf16
Optimizer AdamW lr 1e-5, wd 0.01, max-grad-norm 1.0

Diferenças vs GLiNER (mmBERT/ettin)

  • Vocabulário de 73 labels vs 24 (inclui SSN, passport, IP, MAC, swift_bic, etc.)
  • Inferência via Viterbi constrained (BIESO) em vez de token-level argmax
  • Emite placeholder pronto para substituição — não apenas o rótulo
  • Sem easter-egg berco-de-tiradentes (use o demo mmBERT/ettin para isso)

Catálogo de rótulos

Documento oficial / identidadecpf_document_number, rg_document_number, pis_document_number, id_card_number, passport_number, driver_license_number, social_security_number, tax_id_number, certificate_license_number

Dado financeirocredit_card, account_number, bank_routing_number, swift_bic, cvv, pin, customer_id

Contatophone_number, email_address, fax_number, url, ipv4, ipv6, mac_address

Nomefirst_name, middle_name, last_name, user_name, title

Data de nascimento / idadedob, date, time, date_time, age

Localizaçãolocation_street, location_building_number, location_neighborhood, location_city, location_state, location_state_abbreviation, location_zip, location_full_address, country, county, coordinate

Dado pessoal sensível (LGPD art. 5º, II)personal_description_of_ethnicity, personal_description_of_medical_conditions, personal_description_of_organizational_affiliation, personal_description_of_political_opinion, personal_description_of_religious_convictions, personal_description_of_sexual_information, religious_belief, political_view, sexuality, sex_or_gender, biometric_identifier, blood_type

Credencial / identificador técnicopassword, api_key, http_cookie, device_identifier, unique_id, employee_id, vehicle_identifier, license_plate, medical_record_number, health_plan_beneficiary_number

Contexto profissionaloccupation, employment_status, education_level, company_name, language