Plan de evaluación — Servicio RAG/harnessing para PyMEs (resumen)

Fecha: 2026-09-27 Autor: Nef + opencode Estado: evaluación de cómputo completada; arquitectura definida; pendiente despliegue final.


1. Objetivo

Adaptar tecnología de Hugging Face para provisionar un servicio de RAG/harnessing a clientes (clínicas dentales / PyMEs). No es solo un benchmark: es un servicio desplegable por cliente, con modelos open-weights, coste controlado y multi-tenant.


2. El benchmark — proyecto_1_dentistas

Repo: ~/nef/Proyectos/proyecto_1_dentistas/ Commits: 6993f87 scaffold · ea88a39 inyección/citas · 32b3d2b juez Groq/overrides

Qué es: RAG conversacional sobre “Sonrisa: tu clínica” (clínica dental ficticia, Centro CDMX).

Artefactos:

  • Corpus sintético: 15 docs, 77 chunks.
  • Golden set: 20 preguntas (4 fuera de alcance que deben escalar).
  • Pipeline: chunking → FAISS + BM25 → RRF → rerank → respuesta con citas.
  • Evaluación: RAGAS + citation accuracy + coste por interacción.

Verificado:

  • Generación 20/20 con Groq: citation accuracy 1.0, retrieval hit rate 1.0, escalate accuracy 1.0.
  • RAGAS parcial (11/20) por límite TPD de Groq (200k tokens/día).
  • Provider space añadido (embed/rerank/chat vía HF ZeroGPU).

3. Evaluación de cómputo (todo lo probado)

Hugging Face

OpciónResultado
ZeroGPU Space✅ Gratis (PRO 40 min/día). [usuario]/sonrisa-inference creado, código pusheado, RUNNING con zero-a10g. API verificada (embed/rerank/chat).
HF Sandboxes❌ 402 Payment Required (incluso con tarjeta).
HF Inference Providers❌ 402 (créditos agotados).
Token fine-grainedCrea Spaces y pushea por git, pero NO cambia hardware (403).
zero_gpu: true en READMENO asigna GPU — solo desde web (Settings → Hardware).
Ollama Cloud❌ No soporta embeddings (insuficiente para RAG).

Cloud hyperscalers

ProveedorGPUPrecio on-demandVeredicto
GCPT4 0.56/h · A100 $2.93/hSpot: T4 $0.20/h✅ Proyecto yt-extract-505518, Cloud Run habilitado. Deploy con issues (arm64/amd64, permisos).
AzureT4 3.67/h · H100 $6.98/hSpot: T4 $0.07/h✅ Similar a GCP, más caro.
Oracle Cloud—Always-free: 2 OCPUs + 12GB RAM (ARM), sin GPU. $300 crédito/30 días.✅ Always-free para CPU.

Proveedores GPU specialist

ProveedorA100L40SH100Modelo
RunPod Secure$1.89/h$2.25/h$3.29/hPor segundo, estable
RunPod Community$1.19/h—$2.79/hSpot, puede preemtear
Vast.aidesde $0.50/h—desde $0.90/hMarketplace P2P, variable
Modal$2.50/h—$3.95/hScale-to-zero, $30/mes crédito
Lambda$1.99/h—$3.29/hPor hora
Replicate$5.04/h—$5.49/hModel-first, API simple

Dedicados (bare metal)

ProveedorModeloGPUPrecio/mes
HetznerGEX131-1RTX PRO 6000 (96GB)€1,197 ← mejor valor 48GB+
OVHHGR-AI-2L40S (48GB)$3,505

Otros

OpciónResultado
GitHub❌ Sin GPU (Actions CPU 2-core, Codespaces CPU 32GB).
DigitalOceanApp Platform ($5/mo), RAG Assistant blueprint, token DO_API, cuenta [usuario]@comunidad.unam.mx. Registry creado, imagen subida.
Groq✅ Funciona, pero 200k tokens/día (TPD). gpt-oss-20b necesita reasoning_effort: low para JSON.

4. Hallazgos clave

  1. La arquitectura ganadora: FastAPI en un cloud gratis (CPU) + HF ZeroGPU para GPU.

    • FastAPI: DO App Platform ($5), o OCI Ampere A1 (always-free), o GCP Cloud Run (free tier).
    • GPU: HF ZeroGPU Space (gratis, 40 min/día PRO).
    • Total: $0-5/mes.
  2. Hetzner GEX131-1 es el mejor valor para 48GB+ (RTX PRO 6000 96GB, €1,197/mes) — 2.5x más barato que OVH, 2.3x más barato que GCP. Pero es en Alemania (latencia).

  3. Oracle Cloud always-free (2 OCPUs + 12GB RAM, sin GPU) sirve para el FastAPI + modelos pequeños en CPU.

  4. El token fine-grained de HF crea Spaces y pushea por git, pero NO cambia hardware (403). El ZeroGPU se asigna solo desde la web.

  5. Ollama Cloud no sirve para RAG (no soporta embeddings).

  6. Groq free tiene límite TPD (200k tokens/día) — la evaluación completa no cabe en un día.


5. Estado actual (actualizado 2026-09-27)

ComponenteEstado
HF Space sonrisa-inference✅ RUNNING con zero-a10g, API verificada (embed/rerank/chat)
proyecto_1_dentistas✅ Scaffold verificado 20/20, provider space añadido
GCP Cloud Run✅ DESPLEGADO y vivo (/health OK, 77 chunks). /ask tiene bug (sqlite thread)
DO Container Registry✅ Imagen sonrisa-rag subida
DO App Platform⏳ App no desplegada
Oracle Cloud✅ Config OCI presente (~/.oci/config), cuenta verificada
pyme-rag (demo/)✅ Completo: multi-tenant, OCI always-free, hybrid search, harness
Prompt de fusión✅ Creado (2026-09-27-prompt-fusion-rag-pymes.md)

Bug conocido (Cloud Run): sqlite3.ProgrammingError en /ask — el Embedder crea la conexión sqlite en un hilo y FastAPI la usa en otro. Fix: check_same_thread=False. No corregido (instrucción: no subir nada).


6. Arquitectura recomendada (fusión)

Cliente (clínica) → Caddy (TLS) → FastAPI (OCI Ampere A1, always-free, CPU)
                      ├─ embed  → fastembed MiniLM (ONNX, CPU, 384d)
                      ├─ retrieve → FAISS + BM25 + RRF + reranker (CPU)
                      └─ chat  → cadena: ZeroGPU Space → Groq → local pequeño

FastAPI en: OCI Ampere A1 (always-free) · DO App Platform (0/mes (OCI + ZeroGPU)


7. Project-2: Fusión RAG multi-tenant

Servicio RAG multi-tenant para PyMEs = fusión de proyecto_1_dentistas (retrieval + eval) + pyme-rag (infra + multi-tenant):

  • De pyme-rag: infra Terraform OCI (Ampere A1, iptables fix, budget alert), multi-tenant (SQLite por cliente), Caddy TLS, harness hit@k/MRR.
  • De proyecto_1_dentistas: retrieval (FAISS+BM25+RRF+reranker), embeddings (Qwen3-4B), eval (citation accuracy, escalate, RAGAS, coste).
  • Embed/rerank en CPU (fastembed) → ZeroGPU solo para chat, con cadena de respaldo.
  • Prompt de fusión: 2026-09-27-prompt-fusion-rag-pymes.md.

8. Próximos pasos

  1. Ejecutar el prompt de fusión (M1-M5): esqueleto → retrieval+embed CPU → LLM con respaldo → eval combinada → infra OCI.
  2. Corregir el bug de Cloud Run (sqlite thread) si se usa GCP.
  3. Correr el golden set 20/20 con juez en HF ZeroGPU (cobertura íntegra).
  4. Piloto con una clínica real (el testigo).

9. Decisiones persistidas

  • ~/nef/decisions/[CREDENCIAL].md
  • ~/nef/decisions/[CREDENCIAL].md
  • ~/nef/decisions/[CREDENCIAL].md
  • ~/nef/decisions/[CREDENCIAL].md
  • ~/nef/decisions/2026-09-27-hf-plataforma-lecciones.md
  • ~/nef/decisions/[CREDENCIAL].md
  • ~/nef/decisions/2026-09-27-plan-evaluacion-rag-pymes.md (este)
  • ~/nef/decisions/2026-09-27-prompt-fusion-rag-pymes.md (prompt de fusión)