En vivo 18.11 · Cohorte 318 nov, 19:00 MSK — taller práctico gratuito de agentes IA · Cohorte 3 en vivo inicia 23.11Taller 18 nov →Cohorte 3 (23.11)
LanzamientoAnálisis · En radarХабр: NLP→ original

Presidio y LiteLLM ocultan datos personales a un LLM externo: prueba de tres configuraciones con 20 textos

Enviar a un LLM en la nube correos de clientes con nombres completos, teléfonos y direcciones es un riesgo que no se resuelve solo con «no guardamos registros». El autor de un análisis en Habr muestra cómo configurar Microsoft Presidio para el ruso, añadir reglas propias e integrar el enmascaramiento en el proxy LiteLLM. Los datos se sustituyen por etiquetas antes de la solicitud y se restauran tras la respuesta. Una prueba con 20 textos ficticios mostró que a veces la dirección queda parcialmente expuesta.

Procesado por IA desde Хабр: NLP; editado por Hamidun News
Presidio y LiteLLM ocultan datos personales a un LLM externo: prueba de tres configuraciones con 20 textos
Fuente: Хабр: NLP. Collage: Hamidun News.
Escuchar artículo
Ficha técnica y cifras clave
ParámetroDatos
Fuente originalХабр: NLP ↗
Editor jefe
Dato clave #1El ruso necesita un modelo NLP propio y reconocedores personalizados
Dato clave #2Los números de contrato, el INN y el SNILS se detectan con reglas regex propias
Revise las direcciones por separadouna parte puede quedar en texto claro

Una situación conocida: una empresa quiere pasar por GPT o Claude las solicitudes de sus clientes, y en ellas hay apellidos, teléfonos, correos y direcciones. Los abogados fruncen el ceño y los responsables de seguridad piden «hacer algo». La solución más sencilla es no enviar datos personales en absoluto: sustituirlos por etiquetas, esperar la respuesta y volver a colocar los valores. Precisamente este esquema lo analizaron en Habr con Presidio y LiteLLM.

Una salvedad importante: solo disponemos del anuncio del artículo, no del texto completo. Por eso, a continuación figura lo que el autor afirma de forma explícita, además de la mecánica general de las herramientas conocida por su documentación.

Cómo funciona en un ejemplo sencillo

Presidio es una biblioteca de código abierto de Microsoft para detectar y anonimizar datos personales. Consta de dos partes. El Analyzer encuentra entidades en el texto: nombres, teléfonos, correos electrónicos, números de tarjeta. El Anonymizer sustituye lo encontrado según la regla elegida: elimina, enmascara o inserta una etiqueta.

Imagine la solicitud: «Iván Petrov pide que le devuelvan la llamada al +7 900 123-45-67». Al modelo llega «<PERSON_1> pide que le devuelvan la llamada al <PHONE_1>». El modelo responde usando las mismas etiquetas, y el proxy vuelve a insertar los valores reales. El proveedor externo no ve los datos reales, y el usuario recibe una respuesta coherente.

LiteLLM actúa aquí como proxy entre su aplicación y los proveedores de modelos. Tiene una integración con Presidio en forma de guardrail: el enmascaramiento y la sustitución inversa se incorporan en un único punto, y no hace falta reescribir el código de cada servicio.

Dónde empiezan las dificultades con el ruso

De fábrica, Presidio está pensada para el inglés. Para el ruso hay que conectar un modelo de lenguaje adecuado, por ejemplo de spaCy, y comprobar que realmente encuentra nombres en distintos casos gramaticales. «Ivanu Petrovu», «u Ivana Petrova» y «Petrova I. A.» son tareas distintas para el modelo.

Después hacen falta reglas propias. Presidio permite añadir reconocedores propios basados en expresiones regulares, palabras de contexto y listas. Para la realidad rusa se trata de números de contrato, INN (identificación fiscal), SNILS (número de seguro de pensiones) e identificadores internos de clientes. Lo más probable es que no exista un reconocedor ya hecho para esos datos y haya que escribirlo uno mismo. El autor analiza esta configuración por separado.

Qué mostró la prueba

El autor comparó tres configuraciones con 20 textos ficticios. El anuncio no ofrece cifras detalladas, pero una conclusión se indica de forma explícita: en algunos casos parte de la dirección queda expuesta.

La causa es típica de las direcciones. Es una entidad compuesta por ciudad, calle, número de edificio y piso. El modelo marca con seguridad la ciudad o la región, pero omite la calle con el número o la corta por la mitad. Para una filtración basta un fragmento: «ul. Lesnaya, 12», combinado con otros datos, ya apunta a una persona.

Qué hacer en la práctica

  • No considere el enmascaramiento como algo de «activar y olvidar». Reúna su propio conjunto de pruebas de textos en ruso con los datos típicos de su caso y mida la proporción de omisiones antes de pasar a producción.
  • Cubra direcciones, números de documentos e identificadores internos con reglas separadas. Un modelo NER estándar no basta para ellos.
  • Decida qué es más importante: dejar pasar algo de más o enmascarar demasiado. Con datos de clientes es mejor tolerar falsos positivos que filtraciones.
  • Guarde la correspondencia entre etiquetas y valores solo en el lado del proxy y solo durante la solicitud.

Limitaciones

Una muestra de 20 textos ficticios es demasiado pequeña para juzgar la precisión real en un flujo en vivo. Los correos reales son más largos, con erratas, abreviaturas y mezcla de idiomas. Las etiquetas en el texto pueden influir en la respuesta del modelo: este pierde contexto como el género o la nacionalidad, y la calidad en algunas tareas disminuye.

En resumen: la combinación de Presidio y LiteLLM es una forma funcional y económica de reducir el riesgo al usar LLM externos. Pero no es una garantía mientras no la haya comprobado con sus propios datos y cerrado fallos como las direcciones parcialmente expuestas. Para los equipos que ya envían textos de clientes a modelos en la nube, merece la pena leer el original y repetir la prueba con su propio conjunto de datos.

Historia

Preguntas frecuentes sobre la noticia

Cómo funciona en un ejemplo sencillo?

Presidio es una biblioteca de código abierto de Microsoft para detectar y anonimizar datos personales. Consta de dos partes. El Analyzer encuentra entidades en el texto: nombres, teléfonos, correos electrónicos, números de tarjeta. El Anonymizer sustituye lo encontrado según la regla elegida: elimina, enmascara o inserta una etiqueta. Imagine la solicitud: «Iván Petrov pide que le devuelvan la llamada al +7 900 123-45-67». Al modelo llega «<PERSON_1> pide que le devuelvan la llamada al <PHONE_1>».

Dónde empiezan las dificultades con el ruso?

De fábrica, Presidio está pensada para el inglés. Para el ruso hay que conectar un modelo de lenguaje adecuado, por ejemplo de spaCy, y comprobar que realmente encuentra nombres en distintos casos gramaticales. «Ivanu Petrovu», «u Ivana Petrova» y «Petrova I. A.» son tareas distintas para el modelo. Después hacen falta reglas propias. Presidio permite añadir reconocedores propios basados en expresiones regulares, palabras de contexto y listas.

¿Qué se sabe sobre Qué mostró la prueba?

El autor comparó tres configuraciones con 20 textos ficticios. El anuncio no ofrece cifras detalladas, pero una conclusión se indica de forma explícita: en algunos casos parte de la dirección queda expuesta. La causa es típica de las direcciones. Es una entidad compuesta por ciudad, calle, número de edificio y piso. El modelo marca con seguridad la ciudad o la región, pero omite la calle con el número o la corta por la mitad. Para una filtración basta un fragmento: «ul.

ZK
Zhemal Khamidun — CPO de Alpina Digital, product manager de AlpinaGPT. Crea productos de IA desde 2019. Hamidun News es un proyecto personal que creció hasta ser un agregador en producción con más de 6.000 lectores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
¿Qué te parece?
Cargando comentarios…