Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
privacy-filter — Modelo bidireccional de clasificación de tokens para la detección y enmascaramiento de PII en texto, con CLI para redacción, evaluación y ajuste fino on-premises. | Kitploit
Herramientas/GitHubGitHub/openai/privacy-filter
Herramientas DefensivasExfiltración de DatosRecopilación de InformaciónPrivacidadDetección de SecretosAprendizaje AutomáticoSeguridad de IA
GitHubopenai/privacy-filter

privacy-filter

Modelo bidireccional de clasificación de tokens para la detección y enmascaramiento de PII en texto, con CLI para redacción, evaluación y ajuste fino on-premises.

Ver Repositorio
2.7k242hace 4 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

OpenAI Privacy Filter

OpenAI Privacy Filter es un modelo de clasificación de tokens bidireccional para la detección y el enmascaramiento de información de identificación personal (PII) en texto. Está pensado para flujos de trabajo de saneamiento de datos de alto rendimiento en los que los equipos necesitan un modelo que puedan ejecutar en sus propias instalaciones, que sea rápido, consciente del contexto y ajustable.

OpenAI Privacy Filter se preentrena de forma autorregresiva para llegar a un checkpoint con una arquitectura similar a la de gpt-oss, aunque de menor tamaño. Después convertimos ese checkpoint en un clasificador de tokens bidireccional sobre una taxonomía de etiquetas de privacidad y lo postentrenamos con una pérdida de clasificación supervisada. (Para obtener detalles sobre la arquitectura de gpt-oss, consulta la model card de gpt-oss). En lugar de generar texto token a token, este modelo etiqueta una secuencia de entrada en una única pasada hacia delante y luego decodifica spans coherentes con un procedimiento de Viterbi restringido. Para cada token de entrada, el modelo predice una distribución de probabilidad sobre la taxonomía de etiquetas, que consta de 8 categorías de salida descritas a continuación.

Aspectos destacados:

  • Licencia permisiva Apache 2.0: ideal para experimentación, personalización y despliegue comercial.
  • Tamaño reducido: se ejecuta en un navegador web o en un portátil: 1,5B de parámetros en total y 50M de parámetros activos.
  • Ajustable: adapta el modelo a distribuciones de datos específicas mediante un finetuning sencillo y eficiente en datos.
  • Contexto largo: la ventana de contexto de 128.000 tokens permite procesar texto largo con alto rendimiento y sin fragmentación.
  • Control en tiempo de ejecución: configura los compromisos entre precisión y exhaustividad y las longitudes de span detectadas mediante puntos de operación predefinidos.

Este repositorio

Este repositorio contiene el código local, la CLI y los recursos de ejemplo utilizados para ejecutar, evaluar y ajustar los checkpoints de Privacy Filter. Está pensado para equipos que quieran inspeccionar la implementación directamente y operar el modelo en su propio entorno.

Recursos del repositorio: Licencia y Política de seguridad.

Cómo usar

  1. Instala el paquete localmente:
root@kitploit:~
pip install -e .

Después de esto, tendrás un script de Python opf que se puede ejecutar directamente o mediante python -m opf. El script se puede usar de 3 formas distintas, como se describe a continuación.

  1. Ejecuta el redactado puntual:

Por defecto, opf busca un modelo en el directorio al que apunta la variable OPF_CHECKPOINT, o en ~/.opf/privacy_filter. Si no se encuentra un modelo en la ubicación ~/.opf/privacy_filter, se descargará.

root@kitploit:~
opf "Alice was born on 1990-01-02."

El código permite ejecutarse tanto en GPU (por defecto) como en CPU. Para ejecutarlo en CPU, usa el flag --device cpu:

root@kitploit:~
opf --device cpu "Alice was born on 1990-01-02."

Para sobrescribir el checkpoint por defecto, pasa --checkpoint:

root@kitploit:~
opf --checkpoint /path/to/checkpoint_dir "Alice was born on 1990-01-02."

El modo de redactado permite redactar un archivo completo de una vez

root@kitploit:~
opf -f /path/to/file

El redactado también se puede realizar mediante pipes, para admitir one-liners complejos:

root@kitploit:~
cat /path/to/file | grep -e 'some_pattern' | opf

Si no se proporciona ninguna entrada, opf se iniciará en modo interactivo. En este modo, para cada ejemplo de entrada, la CLI imprime una salida JSON estructurada, usando vistas previas con códigos de color ANSI si el terminal los admite. Estas opciones se pueden controlar mediante flags.

Consulta opf redact --help para obtener más flags e información sobre el modo de redactado.

  1. Ejecuta la evaluación sobre un conjunto de datos etiquetado:
root@kitploit:~
opf eval examples/data/sample_eval_five_examples.jsonl

Los fixtures de evaluación de ejemplo bajo examples/data/sample_eval_five_examples*.jsonl son únicamente datos de ejemplo sintéticos y no describen personas reales ni registros sensibles reales. Consulta examples/data/README.md.

Consulta opf eval --help para obtener más flags e información sobre el modo de evaluación.

  1. Ajusta el modelo con tu propio conjunto de datos etiquetado:
root@kitploit:~
opf train /path/to/train.jsonl --output-dir /path/to/finetuned_checkpoint

Consulta opf train --help para obtener más flags e información sobre el modo de finetuning.

Estructura

  • opf/__main__.py: punto de entrada unificado de la CLI para los modos redact, eval y train.
  • opf/_api.py: API orientada a Python sobre la pila de runtime y decodificación.
  • opf/_cli/: análisis de argumentos de línea de comandos y helpers de renderizado en terminal.
  • opf/_core/: carga del runtime, conversión de spans y lógica de decodificación compartida.
  • opf/_eval/: carga de conjuntos de datos, preprocesamiento, métricas y ejecutores de evaluación.
  • opf/_train/: análisis de argumentos de finetuning local y ejecutores de entrenamiento.
  • opf/_model/: implementación del transformer, configuración del checkpoint y carga de pesos.
  • examples/data/: archivos de evaluación de ejemplo más conjuntos de datos de demostración de finetuning reproducibles.
  • examples/scripts/finetuning/: harnesses ejecutables de demostración de finetuning.
  • FINETUNING.md: guía centrada en el flujo de trabajo de finetuning y en los scripts de demostración.
  • OUTPUT_SCHEMAS.md: formatos de respuesta JSON y de payload de exportación.
  • EVAL_AND_OUTPUT_MODES.md: descripción de los modos de salida para redactado y evaluación.

Detalles del modelo

Descripción del modelo

Privacy Filter es un modelo de clasificación de tokens bidireccional con decodificación de spans. Se entrena por fases, comenzando con un preentrenamiento autorregresivo. Después, el modelo de lenguaje preentrenado se modifica y se postentrena como un clasificador de tokens bidireccional con atención en bandas de tamaño 128 (ventana de atención efectiva: 257 tokens, incluido el propio token). Esto significa:

  • El modelo base es un checkpoint preentrenado de forma autorregresiva.
  • La cabeza de salida del modelo de lenguaje se sustituye por una cabeza de clasificación de tokens sobre etiquetas de privacidad.
  • El postentrenamiento es una clasificación supervisada a nivel de token en lugar de una predicción del siguiente token.
  • La inferencia aplica una decodificación de secuencia restringida para producir etiquetas de span BIOES (Begin, Inside, Outside, End, Single) coherentes.

Arquitectónicamente, la implementación de este repositorio es una pila estilo encoder de transformer con pre-norm que incluye:

  • embeddings de tokens
  • 8 bloques transformer repetidos
  • atención de consultas agrupadas con embeddings posicionales rotatorios, con 14 cabezas de consulta y 2 cabezas KV (tamaño de grupo = 7 consultas por cabeza KV)
  • bloques feed-forward de mezcla de expertos dispersa con 128 expertos en total (enrutamiento top-4 por token)
  • una cabeza final de clasificación de tokens sobre etiquetas de privacidad (en lugar de tokens de vocabulario de lenguaje natural), con ancho del flujo residual d_model = 640.

En comparación con los enfoques autorregresivos iterativos, este diseño permite etiquetar todos los tokens en una sola pasada, lo que mejora el rendimiento. En comparación con los enfoques clásicos de preentrenamiento de modelos de lenguaje enmascarados, se trata de una conversión postentrenamiento de un modelo autorregresivo en lugar de una configuración nativa de masked-LM.

Forma de salida

Privacy Filter puede detectar 8 categorías de spans de privacidad:

  1. account_number
  2. private_address
  3. private_email
  4. private_person
  5. private_phone
  6. private_url
  7. private_date
  8. secret

Para realizar la clasificación de tokens, cada categoría de span que no es de fondo se expande en clases de token etiquetadas por frontera: B-<label>, I-<label>, E-<label>, S-<label>, más la clase de fondo, O. Por lo tanto, el número total de clases de salida a nivel de token es 33: 1 clase de fondo + 8 etiquetas de span * 4 etiquetas de frontera = 33 clases. Esto significa que la cabeza de salida emite 33 logits por cada token. Para una secuencia de longitud T, la salida tiene forma [T, 33]; para un lote de tamaño B, tiene forma [B, T, 33].

El vocabulario de etiquetas de token consta de la etiqueta de fondo O más las variantes etiquetadas con BIOES de cada categoría de privacidad: account_number, private_address, private_email, private_person, private_phone, private_url, private_date y secret. En otras palabras, para cada categoría, el modelo predice las formas B-, I-, E- y S- correspondientes a spans de inicio, interior, fin y token único. En el momento de la inferencia, estos logits por token se decodifican en etiquetas de span BIOES coherentes mediante decodificación de secuencia restringida.

Justificación y calibración de la decodificación de secuencia

Justificación

Después de que el clasificador de tokens produce logits por token, decodificamos las etiquetas con un decodificador de Viterbi restringido usando puntuación de transición de cadena lineal, en lugar de tomar un argmax independiente para cada token. El decodificador impone transiciones de frontera BIOES permitidas y puntúa rutas de etiquetas completas con términos de inicio, transición y fin, además de seis parámetros de sesgo de transición que controlan la persistencia en el fondo, la entrada en un span, la continuación de un span, el cierre de un span y el traspaso de frontera a frontera. Esta optimización global de rutas pretende mejorar la coherencia de los spans y la estabilidad de las fronteras haciendo que cada decisión sobre un token dependa de la estructura a nivel de secuencia, no solo de los logits locales, especialmente en texto ruidoso o de formato mixto donde las decisiones locales sobre tokens por sí solas pueden producir fronteras fragmentadas o inconsistentes.

Calibración del punto de operación

Los parámetros de decodificación de secuencia pueden desincentivar permanecer en el fondo mientras fomentan la entrada y la continuación de spans, lo que produce un enmascaramiento más amplio y contiguo para mejorar la exhaustividad, o viceversa para mejorar la precisión. En tiempo de ejecución, los usuarios pueden ajustar los parámetros que controlan este compromiso.

Metadatos del modelo

  • Desarrollado por: OpenAI

  • Financiado por: OpenAI

  • Compartido por: OpenAI

  • Tipo de modelo: modelo de clasificación de tokens bidireccional para la detección de spans de privacidad

  • Idioma(s): principalmente inglés; se reporta una evaluación seleccionada de robustez multilingüe

  • Licencia: Apache 2.0

  • Pesos del modelo: https://huggingface.co/openai/privacy-filter

  • Demo: https://huggingface.co/spaces/openai/privacy-filter

  • Model card: OpenAI Privacy Filter Model Card

Sesgos, riesgos y limitaciones

Riesgo: dependencia excesiva

Privacy Filter es una ayuda para el redactado y la minimización de datos, no una garantía de anonimización, cumplimiento o seguridad. Depender en exceso de la herramienta como una afirmación de anonimización general conllevaría el riesgo de no alcanzar los objetivos de privacidad deseados. Lo mejor es usar Privacy Filter como una de varias capas dentro de un enfoque holístico de privacidad desde el diseño de extremo a extremo.

Limitación: política de etiquetas estática

El modelo solo identificará spans de datos personales que coincidan con la taxonomía de etiquetas y las definiciones con las que fue entrenado. Los casos de uso reales de privacidad son variados y complejos, y las definiciones de políticas de etiquetas y fronteras de decisión apropiadas pueden diferir. Por lo tanto, los valores predeterminados del modelo pueden no satisfacer los requisitos de gobernanza específicos de una organización sin calibración/finetuning.

Privacy Filter no admite configurar políticas de etiquetas dinámicamente en tiempo de ejecución; en su lugar, cambiar las políticas requiere un finetuning adicional del modelo. El conjunto de etiquetas nativo y las fronteras de decisión asociadas pueden no ser apropiados para todos los casos de uso. Por ejemplo, la política de entrenamiento del modelo pretende priorizar los identificadores personales, a menudo preservando por diseño contexto que no está fuertemente vinculado a personas; algunos usuarios podrían querer ajustar esta elección.

El rendimiento puede disminuir en texto que no esté en inglés, en escrituras no latinas, en patrones de nombres de grupos protegidos o en dominios que estén fuera de la distribución en comparación con el entrenamiento del modelo.

Modos de fallo

Como todos los modelos, Privacy Filter puede cometer errores, tales como: infradetección de nombres personales poco comunes, convenciones de nombres regionales, iniciales, referencias con muchos tratamientos honoríficos o identificadores específicos de un dominio; sobrerredacción de entidades públicas, organizaciones, ubicaciones o sustantivos comunes cuando el contexto local es ambiguo; fronteras de span fragmentadas o desplazadas en texto de formato mixto, documentos largos o texto con mucha puntuación y artefactos de maquetación; secretos no detectados para formatos de credenciales novedosos, patrones de tokens específicos de un proyecto o secretos divididos entre la sintaxis circundante; y sobrerredacción de cadenas benignas de alta entropía, marcadores de posición, hashes, credenciales de ejemplo o ejemplos sintéticos que se parecen a secretos.

Estas limitaciones pueden interactuar con la variación demográfica, regional y de dominio. Por ejemplo, los nombres e identificadores que están infrarrepresentados en los datos de entrenamiento, o que siguen convenciones diferentes de la distribución de entrenamiento dominante, pueden tener más probabilidades de no detectarse o de delimitarse de forma inconsistente.

Precaución en despliegues de alto riesgo

Se justifica una precaución adicional en entornos de alta sensibilidad como flujos de trabajo médicos, legales, financieros, de recursos humanos, educativos y gubernamentales. En estos entornos, tanto los falsos negativos como los falsos positivos pueden ser costosos: los spans no detectados pueden exponer información sensible, mientras que el enmascaramiento excesivo puede eliminar contexto material necesario para la revisión, la auditoría o la toma de decisiones posteriores.

Recomendaciones

  • Usa Privacy Filter como parte de un enfoque holístico de privacidad desde el diseño, no como una afirmación de anonimización general.
  • Evalúa en el dominio con referencias de políticas locales antes de ponerlo en producción.
  • Usa finetuning específico para la tarea cuando la política difiera de las fronteras base.
  • Mantén rutas de revisión humana para flujos de trabajo de alta sensibilidad.
Descargar herramienta