«Guardamos vectores, no tus documentos» casi nunca es verdad
Los sistemas de recuperación guardan tu texto junto a sus embeddings. Cómo funciona el troceado, por qué la frase sobre privacidad engaña y las tres preguntas al proveedor que lo aclaran.
Pregunta a un proveedor de IA qué pasa con los documentos que subes y a menudo oirás alguna versión de esto: «No guardamos tus documentos. Los convertimos en vectores, listas de números, para poder buscar en ellos». Tranquiliza. Sugiere que tu contenido cruzó una puerta de un solo sentido y salió convertido en pura matemática. Quien lo dice no suele mentir. Sin embargo, en casi cualquier sistema de recuperación la afirmación es falsa, y entender por qué cambia las preguntas que deberías hacer. Puedes comprobarlo tú mismo en unos dos minutos.
Qué pasa con un archivo subido
Un pipeline de recuperación hace cuatro cosas con un archivo:
- Extrae el texto.
- Divide el texto en fragmentos, normalmente de unos cientos de palabras, porque un documento entero es demasiado grande para pasárselo a un modelo.
- Genera un embedding para cada fragmento, convirtiéndolo en una lista de números que capta a grandes rasgos de qué trata.
- Guarda los fragmentos para poder buscar en ellos.
El embedding es lo que hace funcionar la búsqueda. Tu pregunta también se convierte en embedding, y el sistema busca los fragmentos cuyos números quedan más cerca de los de la pregunta.
Ahora, el paso que la gente omite. Una vez encontrado el fragmento adecuado, el sistema necesita recuperar las palabras reales. Tiene que colocar ese pasaje en el prompt para que el modelo responda a partir de él, y tiene que mostrártelo como cita. Un embedding no sirve para ninguna de las dos cosas, porque no se puede convertir de vuelta en el pasaje del que salió. Capta el significado de forma aproximada, sin manera de reconstruir la redacción, así que el texto tiene que quedarse guardado. Quizá no el archivo original, pero el texto, seguro.
Cómo se ve en una base de datos
La tabla donde viven los fragmentos es aburrida, y ahí está la clave, porque casi todos los productos de recuperación tienen una con esta forma:
create table document_chunks (
id uuid primary key,
document_id uuid not null,
chunk_index integer not null,
content text not null, -- the passage, as text
embedding vector(1024), -- the numbers, alongside it
metadata jsonb
);
Fíjate en dos columnas. content contiene tus palabras y embedding, los números. Ambas se guardan una al lado de la otra.
Además, los fragmentos se guardan en orden con un índice, de modo que se puede reconstruir el documento completo a partir de ellos, y funciones como «muéstrame el archivo entero» dependen justo de eso. Una descripción honesta de lo que guarda un producto de recuperación es, por tanto, tu texto a trozos más unos números que permiten encontrar esos trozos, y no tu archivo original.
Por qué se repite la versión tranquilizadora
Rara vez por falta de honestidad. Normalmente es una de tres cosas.
Quien habla se refiere al archivo. Muchos productos borran de verdad el PDF subido en cuanto termina la extracción. Es una buena práctica, y «no guardamos tus documentos» es una abreviatura aceptable cuando todos saben a qué se refiere. El problema es que quien escucha entendió algo mucho más fuerte.
Los embeddings suenan irreversibles, así que la gente da por hecho que el texto ha desaparecido. Invertir un embedding es, en efecto, difícil. Pero que los números sean difíciles de revertir no dice nada sobre si se conservaron las palabras, y en un sistema de recuperación se conservaron, porque si no el producto dejaría de funcionar.
Nadie hizo la pregunta siguiente. «Guardamos vectores» cierra la conversación con buen sabor de boca. La pregunta útil no es si se guardan vectores. Es qué más hay en esa fila.
Una comprobación de dos minutos
Así se puede poner a prueba a cualquier proveedor, y no hace falta ser técnico.
Pregunta de dónde sale el texto citado cuando el producto muestra una cita. Si pueden mostrar el pasaje, es que tienen el pasaje, porque no puede salir de ningún otro sitio.
Pregunta si el personal con acceso a producción puede leer el texto de un documento que subas. En casi cualquier producto de recuperación la respuesta sincera es sí, limitada por permisos y registros de auditoría. Si un proveedor dice que no, pregunta por el mecanismo. Uno creíble pasa por claves de cifrado que ese proveedor nunca tiene. Los embeddings no cuentan.
Pregunta qué se borra exactamente cuando eliminas un documento. Lo que quieres oír es que desaparecen los fragmentos, junto con sus embeddings.
No son trampas. Dan una imagen precisa en lugar de una cómoda.
Qué preguntar en su lugar
Una vez aceptas que el texto se guarda, «¿de verdad está nuestro contenido ahí dentro?» deja de ser lo importante. Estas preguntas pesan más:
- ¿Quién puede acceder? El acceso debería concederse por proyecto o por documento, no por empresa.
- ¿Qué salió del sistema? ¿Qué pasajes se enviaron en una llamada al modelo y qué se enmascaró antes?
- ¿Qué se borra y cuándo? ¿El borrado alcanza a los datos derivados o solo a la subida original?
- ¿Se está entendiendo bien lo del cifrado? El cifrado en reposo protege frente a un disco robado o una filtración de la capa de almacenamiento. No dice nada sobre si el propio proveedor puede abrir tu texto, y un proveedor que te deja suponer lo contrario te ha engañado por omisión.
Todas estas preguntas tienen respuesta y se pueden verificar, y son lo que de verdad protege un documento. «Son solo números» no protege nada, porque nunca fue el mecanismo que protegía.
Cómo suena una respuesta franca
Un proveedor que no tiene nada que ocultar diría algo así: el texto se guarda, en una columna de contenido junto al embedding. El archivo original se borra en cuanto termina la extracción, porque ningún paso posterior lo usa. Cuando alguien adjunta un archivo a un chat concreto, solo se conserva su texto, nunca el archivo, y ese texto se elimina junto con la conversación. Los datos personales, como direcciones de correo y números de teléfono, se enmascaran por defecto antes de enviar nada a un modelo. Y sí, el proveedor puede leer el texto guardado, algo que una buena página de seguridad dice sin rodeos.
Esto último importa. La alternativa es una frase que un revisor puede desmentir con una sola consulta, y a un proveedor al que pillan endulzando una pregunta fácil no se le creerá en una difícil.
En resumen
Casi ningún producto de recuperación convierte los documentos en números y luego tira las palabras, porque para responderte necesita recuperar las palabras. Así que averigua de dónde sale la redacción de una cita y luego evalúa al proveedor por quién tiene acceso, qué se enmascara y cómo funciona el borrado. Un eslogan sobre vectores dice poco.