Volver a la wiki

HyDE opcional en el retrieval de la biblioteca

Descripción

HyDE (Hypothetical Document Embeddings) es una técnica de generación para mejorar el recall del retrieval semántico. En vez de embeber la pregunta cruda del usuario (corta, fraseo variado), se genera un pasaje hipotético que la respondería (parecido a la prosa de la documentación) y se embebe ese pasaje junto con la pregunta original, anclando el vector resultante.

Beneficio: el vector cae más cerca de chunks relevantes en el espacio BGE-M3 → mayor recall.
Costo: +1 llamada a Gemma (~1-2s latencia) por query.
Estado: OFF por defecto. El harness bib_eval_retrieval permite A/B testing con variantes hyde y hyde+trim.

Implementación

Funciones principales

generateHyDE(apiKey, question): Promise<string> (archivo-core.ts)

buildQueryVec(env, question, opts): Promise<{ vec, hyde? }> (archivo-core.ts)

Puntos de integración

  1. MCP Handler bib_ask (archivo.ts)

    • Parámetro hyde: boolean en args
    • Env var RETRIEVAL_HYDE=1 (default OFF)
    • Usa buildQueryVec en lugar de embedTexts directo
  2. API Endpoint Oraculo.ask (api/oraculo/ask.ts)

    • Env var RETRIEVAL_HYDE=1 para activar
    • Mismo flujo: buildQueryVec + searchChunks
  3. Harness bib_eval_retrieval (archivo.ts)

    • Nuevas variantes: hyde, hyde+trim
    • Compara overlap vs baseline (proxy de cambio de recall)
    • Mide tokens para calcular latencia real

Configuración

Env var: RETRIEVAL_HYDE

Parámetro MCP (bib_ask):

Parámetro harness (bib_eval_retrieval):

Validación pendiente

Según el commit body: “Verificado: tsc —noEmit verde. Pendiente medir recall vs latencia con el harness tras deploy.”

El próximo paso es:

  1. Deployr a staging
  2. Correr bib_eval_retrieval con variants=['baseline', 'trim', 'hyde', 'hyde+trim'] sobre 15+ queries reales
  3. Comparar overlap (¿Hyde trae chunks nuevos relevantes?) vs tokens (¿latencia aceptable?)
  4. Si recall sube >5% y latencia <2.5s, considerar activar por defecto

Relación con ArcRift

Este commit es cherry-pick #1 (PR2) de un proyecto más amplio ArcRift. Contiene solo la pieza de generación + embedding HyDE. Otros cherry-picks posteriores pueden incluir:

Véase también

Subir