HyDE: escribir la respuesta antes de buscarla
Generar un documento hipotético para buscar con él. Dónde brilla, dónde introduce ruido y cuánto cuesta.
Quinta entrega del bloque de técnicas de recuperación. HyDE es una de esas ideas que suenan a error cuando se cuentan por primera vez —pedirle al modelo que se invente la respuesta y usarla para buscar— y que sin embargo se apoyan en una observación bastante sólida sobre cómo funcionan los espacios de embeddings.
El problema: una pregunta no se parece a su respuesta
La búsqueda densa consiste en comparar el vector de la pregunta con los vectores de los fragmentos y quedarse con los más próximos. La operación tiene un supuesto implícito que casi nunca se enuncia: que una pregunta y el texto que la responde quedan cerca en el espacio vectorial.
Ese supuesto es sólo parcialmente cierto. Una pregunta y un documento son objetos textuales de naturaleza distinta. Difieren en longitud —una línea frente a un párrafo—, en forma sintáctica —interrogativa frente a expositiva—, en registro y en léxico. Una pregunta contiene marcadores como «¿cuál es», «cómo se», «puedo»; un documento contiene afirmaciones. Un modelo de embeddings, que representa el texto por su significado global, codifica también esas diferencias de forma. Y lo hace de manera sistemática: en muchos espacios de embeddings, las preguntas tienden a agruparse con otras preguntas, no con las respuestas correspondientes.
Los modelos de embeddings entrenados específicamente para recuperación mitigan esto, porque su entrenamiento consiste precisamente en acercar pares pregunta-pasaje. Por eso muchos exigen prefijos distintos para consultas y para documentos, un detalle de uso que se olvida a menudo y que degrada el rendimiento en silencio. Pero la asimetría no desaparece del todo, y es más acusada cuanto más se aleje tu dominio de aquel en el que se entrenó el modelo.
La observación en la que se apoya HyDE es la simétrica: dos documentos que hablan de lo mismo sí se parecen mucho. Un párrafo redactado sobre plazos de devolución y el párrafo real de tu política de devoluciones comparten forma, longitud, registro y vocabulario. Comparar documento con documento es una comparación entre iguales.
El procedimiento
HyDE —Hypothetical Document Embeddings, embeddings de documento hipotético— convierte la búsqueda pregunta-documento en una búsqueda documento-documento mediante un rodeo:
- Se pide al modelo de lenguaje que escriba un pasaje que responda a la pregunta, sin darle ningún contexto. El modelo responde con lo que sabe, o con lo que se imagina.
- Se descarta el valor informativo de ese pasaje. No se le va a enseñar al usuario. Es un artefacto intermedio.
- Se vectoriza el pasaje hipotético con el modelo de embeddings.
- Se busca en el índice con ese vector, no con el de la pregunta.
- Los fragmentos reales recuperados se pasan al modelo generador de la forma habitual, y la respuesta final se construye sólo con ellos.
El punto 5 es el que hay que subrayar: el documento hipotético nunca entra en el prompt de generación. Si entrara, sus invenciones acabarían en la respuesta. Su única función es servir de sonda para explorar el espacio vectorial en la zona adecuada.
Un ejemplo completo
Pregunta del usuario:
«¿Qué pasa si el proveedor entrega tarde?»
Vectorizada tal cual, esa consulta es corta, interrogativa y genérica. Recuperará fragmentos sobre proveedores, sobre entregas y sobre plazos, mezclados y sin foco.
Documento hipotético generado por el modelo:
«En caso de incumplimiento del plazo de entrega acordado, el proveedor incurre en mora. El contrato prevé la aplicación de penalizaciones por demora, calculadas habitualmente como un porcentaje del importe de la mercancía afectada por cada día natural de retraso, con un límite máximo acumulado. Si el retraso supera el plazo de gracia establecido, el comprador podrá resolver el contrato y reclamar los daños y perjuicios ocasionados, salvo que el retraso obedezca a causas de fuerza mayor debidamente acreditadas.»
Ninguna de esas cifras existe: el modelo no ha visto el contrato. Pero lo que ha producido es un texto con la forma, la longitud y el vocabulario del fragmento que buscamos. Ha introducido los términos que un documento contractual real usaría y que la pregunta no contenía: «mora», «penalización por demora», «plazo de gracia», «resolución del contrato», «fuerza mayor», «daños y perjuicios». Buscar con el vector de ese párrafo aterriza directamente en la cláusula de penalizaciones del contrato, si existe.
Ese es el mecanismo entero. HyDE no aporta conocimiento: aporta vocabulario y forma. Traduce la pregunta del registro del usuario al registro del corpus, sin saber qué hay en el corpus.
Cuándo mejora la recuperación
HyDE rinde bien en cuatro situaciones bastante identificables.
Cuando hay una brecha grande de registro entre cómo pregunta el usuario y cómo está escrito el corpus. Usuarios legos consultando documentación técnica, jurídica, médica o administrativa. Es su caso canónico.
Cuando las consultas son cortas y vagas. Un vector construido a partir de cinco palabras tiene poca información. Expandirlo a un párrafo de cien palabras le da mucho más con lo que discriminar.
Cuando el modelo de embeddings no está especializado en recuperación o no está bien adaptado al idioma o al dominio. Ahí la asimetría pregunta-documento es mayor y HyDE la compensa más.
Cuando el dominio tiene una estructura discursiva previsible. Contratos, normativa, informes médicos, documentación de procedimientos: el modelo, aunque no conozca tus datos, sabe perfectamente cómo se escribe en ese género. Esa competencia de forma es exactamente lo que HyDE aprovecha.
Cuándo introduce ruido
Y falla, de manera igualmente identificable, en otras cuatro.
Cuando el modelo inventa detalles que sesgan la búsqueda. Es el fallo característico. Si la pregunta es «¿cuál es el plazo de garantía?» y el documento hipotético afirma con aplomo que «el plazo de garantía legal es de dos años desde la entrega», el vector resultante lleva incorporado ese «dos años». Si tu política real ofrece tres, el vector de la sonda se ha desplazado hacia una zona equivocada del espacio. La alucinación no llega a la respuesta —el punto 5 lo impide— pero sí condiciona qué se recupera, y eso puede ser suficiente para que la respuesta correcta no aparezca.
Cuando el corpus es muy particular. Nombres de producto internos, siglas de la casa, procesos propios: el modelo no puede imaginarlos y su documento hipotético hablará del caso general del sector. Cuanto más idiosincrásico sea el corpus, menos ayuda.
Cuando la consulta es literal. Un código, una referencia, un nombre propio. Aquí HyDE es contraproducente: diluye el término exacto en un párrafo de cien palabras, con lo que su peso relativo en el vector cae. Para esas consultas la respuesta correcta es BM25, no un documento imaginado.
Cuando la latencia importa. HyDE añade una generación completa —un párrafo entero, no una reformulación breve— en el camino crítico, antes de poder buscar. Es la técnica de transformación de consulta más cara en tiempo de todo el bloque, porque el coste de generar escala con los tokens producidos.
Variantes que reducen el riesgo
- Varios documentos hipotéticos. Generar tres o cuatro pasajes con temperatura alta y promediar sus vectores, o buscar con cada uno y fusionar con RRF. Las invenciones concretas de cada pasaje difieren entre sí y se cancelan en el promedio; lo que permanece es la estructura común, que es lo que interesa. Es la variante más recomendable, a costa de multiplicar la generación.
- Fusionar con la consulta original. Buscar con el vector de la pregunta y con el del documento hipotético, y combinar los rankings. Es la red de seguridad más barata: si HyDE se ha desviado, la consulta original sigue aportando sus candidatos.
- Combinar con híbrido. HyDE sobre la rama densa, BM25 sobre la pregunta original. Cada rama hace lo que sabe: la densa gana en registro, la léxica retiene los términos exactos que HyDE diluye.
- Restringir la generación. Pedir en el prompt un pasaje breve, en el estilo del corpus, y explícitamente sin cifras, fechas ni nombres concretos. Se conserva el vocabulario y la forma, que es lo que aporta, y se elimina buena parte del material inventado que desvía.
- Aplicarlo selectivamente. Sólo cuando la consulta es corta, o cuando la primera búsqueda ha devuelto puntuaciones bajas. Convierte HyDE en un plan B en lugar de un peaje fijo sobre todas las consultas.
Cómo decidir si te conviene
HyDE es de las técnicas que más varían según el corpus, así que la única forma honesta de decidir es medirla. El experimento es barato: con el conjunto de preguntas verificadas, compara el recall de la recuperación en tres configuraciones —consulta original, HyDE solo, y HyDE fusionado con la original— sin tocar nada más del pipeline. Fíjate en el recall a k grande, no en la respuesta final, porque es ahí donde HyDE actúa; mezclar la evaluación con la generación oscurece el efecto.
Una comprobación adicional que ahorra sorpresas: revisa a mano una docena de documentos hipotéticos generados por tu sistema. Si están llenos de cifras y nombres inventados, ajusta el prompt de generación antes de sacar conclusiones sobre la técnica. Muchas evaluaciones negativas de HyDE lo son en realidad del prompt con que se generó la sonda.
Qué viene ahora
Todo lo visto hasta aquí mejora la recuperación pero mantiene el flujo en línea recta: se busca una vez, se genera una vez y se entrega. La siguiente entrega rompe esa linealidad e introduce bucles de verificación. Corrective RAG, que evalúa si lo recuperado sirve y actúa en consecuencia, y Self-RAG, que intercala tokens de reflexión para decidir si hace falta recuperar, si lo recuperado es relevante y si la respuesta se apoya de verdad en el contexto. Con su coste en llamadas y en latencia, que no es menor.
Si prefieres leerlo todo de golpe y en orden, los tres libros gratuitos de los que nace esta serie están disponibles en PDF y EPUB: RAG para tu negocio (nivel básico), RAG por dentro (intermedio) y RAG en producción (avanzado).
Aviso de contenido generado con inteligencia artificial.
Este artículo ha sido redactado con la asistencia de sistemas de inteligencia artificial y revisado antes de su publicación. Se informa de ello de forma expresa en cumplimiento de la normativa vigente sobre transparencia en el uso de IA.