Saltar a contenido

← Volver al índice | Arquitectura del Sistema | Modelo de Datos

Arquitectura del Motor de IA

Tipo: Documentación Técnica — Arquitectura de IA
Audiencia: Equipo de desarrollo IA/ML, arquitectos, científicos de datos
Fecha: 20 de marzo de 2026
Relacionado con: Análisis Tecnológico Integral | Arquitectura del Sistema


1. Visión General del Pipeline IA

El motor de IA opera como un sistema híbrido estratificado que combina dos paradigmas complementarios: CAG (Cache-Augmented Generation) para conocimiento estable y RAG (Retrieval-Augmented Generation) para datos dinámicos.

flowchart TB
    subgraph INPUT ["Entrada"]
        CAM["Cámara - foto/vídeo"]
        WEB["Web - upload"]
        M365["M365 - Graph API"]
    end

    subgraph EDGE ["Edge AI - Dispositivo"]
        TFL["TFLite - Pre-procesado"]
        OCV["OpenCV - Limpieza"]
    end

    subgraph AGENT ["Agente de Enrutamiento"]
        ROUTER["Router Inteligente"]
    end

    subgraph L1 ["L1 - Caché CAG"]
        KV["KV-Cache - Atención precalculada"]
        GK["Golden Knowledge"]
    end

    subgraph L2 ["L2 - RAG Dinámico"]
        EMB["Generación de Embeddings"]
        VDB["ChromaDB - Búsqueda vectorial"]
    end

    subgraph LLM ["Modelo Multimodal"]
        OLLAMA["Ollama - Qwen2.5-VL / OceanGPT"]
    end

    subgraph OUT ["Salida"]
        RES["Identificación + Confianza"]
    end

    CAM --> TFL --> OCV --> ROUTER
    WEB --> ROUTER
    M365 --> L2

    ROUTER -->|"conocimiento estable"| L1
    ROUTER -->|"contexto fresco"| L2

    L1 --> OLLAMA
    L2 --> EMB --> VDB --> OLLAMA
    OLLAMA --> RES

    style ROUTER fill:#e74c3c,color:#fff
    style L1 fill:#f39c12,color:#fff
    style L2 fill:#9b59b6,color:#fff
    style OLLAMA fill:#2ecc71,color:#fff

2. Capa L1 — CAG (Cache-Augmented Generation)

2.1 Concepto

CAG precarga la totalidad del conocimiento estable en el prompt del modelo. La clave es el KV-Caching: el LLM procesa el corpus fundacional una sola vez, almacena los estados de atención computados, y reutiliza esta caché para inferencias subsiguientes.

2.2 Contenido del Golden Knowledge

Categoría Datos Volumen Estimado
Guías taxonómicas Claves de identificación de especies del IEO ~200 páginas
Taxonomía TAXON Clasificación jerárquica del proyecto institucional TAXON ~5.000 entradas
Firmas de otolitos Patrones de anillos de crecimiento por especie y edad ~500 fichas
Colecciones históricas Metadatos de los +3.400 especímenes catalogados ~3.400 registros
Distribuciones poblacionales Datos de referencia por zona y temporada ~100 tablas

2.3 Flujo de Precarga

sequenceDiagram
    participant ADM as Administrador
    participant SYS as Sistema
    participant OLL as Ollama
    participant RDS as Redis

    ADM->>SYS: Actualiza Golden Knowledge
    SYS->>OLL: Envía prompt con corpus completo
    OLL->>OLL: Computa KV-Cache
    OLL->>RDS: Almacena KV-Cache serializada
    Note over RDS: Cache persistente entre reinicios

    loop Cada inferencia
        SYS->>RDS: Recupera KV-Cache
        SYS->>OLL: Envía consulta + KV-Cache
        OLL-->>SYS: Respuesta en < 500ms
    end

2.4 Ventajas del CAG

Aspecto RAG Puro CAG
Latencia 1-3s (búsqueda + generación) < 500ms (caché directa)
Consistencia Variable (depende del retrieval) Alta (mismo contexto siempre)
Alucinaciones Riesgo medio (fragmentos aislados) Riesgo bajo (contexto completo)
Actualización Tiempo real Requiere recarga de caché

3. Capa L2 — RAG Dinámico

3.1 Pipeline de Embeddings

flowchart LR
    subgraph Ingesta ["Ingesta de Datos"]
        IMG["Imágenes nuevas"]
        DOC["Documentos - Excel, PDF"]
        API2["Datos M365 - Graph API"]
    end

    subgraph Procesamiento ["Procesamiento"]
        PRE["Pre-procesado"]
        EMB2["Modelo de Embeddings"]
        CHU["Chunking inteligente"]
    end

    subgraph Storage ["Almacenamiento"]
        CHR["ChromaDB"]
        PGV["pgvector"]
    end

    IMG --> PRE --> EMB2 --> CHR
    DOC --> CHU --> EMB2
    API2 --> CHU
    EMB2 --> PGV

    style EMB2 fill:#9b59b6,color:#fff
    style CHR fill:#f39c12,color:#fff

3.2 Modelo de Embeddings

Parámetro Valor
Modelo base CLIP ViT-L/14 (multimodal: imagen + texto)
Dimensión del vector 768 dimensiones
Ejecución Local via Ollama (sin dependencia externa)
Normalización L2-norm para cosine similarity

3.3 Estrategia de Chunking para Documentos

Tipo de Documento Estrategia Tamaño de Chunk
Excels de biometrías Fila como unidad atómica 1 fila = 1 chunk
Publicaciones PDF Párrafo semántico 500-1000 tokens
Fichas de especímenes Ficha completa 1 ficha = 1 chunk
Notas de campaña Sección temática 300-500 tokens

3.4 Búsqueda Vectorial

sequenceDiagram
    participant USR as Investigador
    participant API3 as Backend
    participant EMB3 as Embeddings
    participant CHR2 as ChromaDB
    participant LLM2 as Ollama

    USR->>API3: Consulta en lenguaje natural
    API3->>EMB3: Genera embedding de consulta
    EMB3-->>API3: Vector 768d
    API3->>CHR2: Búsqueda top-K similitud coseno
    CHR2-->>API3: K documentos + scores
    API3->>LLM2: Prompt + documentos recuperados
    LLM2-->>API3: Respuesta contextualizada
    API3-->>USR: Resultado con fuentes citadas

4. Agente de Enrutamiento (Agentic RAG)

El agente decide automáticamente si la consulta se resuelve con L1 (CAG) o L2 (RAG), o con ambos:

4.1 Reglas de Enrutamiento

Tipo de Consulta Capa Ejemplo
Identificación de especie conocida L1 (CAG) "¿Qué especie es este otolito?"
Datos de campañas recientes L2 (RAG) "Muestras de sardina del último ECOMED"
Comparación histórica + actual L1 + L2 "¿Ha cambiado la distribución de merluza desde 2015?"
Búsqueda por imagen nueva L2 (RAG) "¿Qué especímenes se parecen a esta foto?"

4.2 Lógica del Router

flowchart TB
    Q["Consulta entrante"] --> CLASS["Clasificador de intención"]

    CLASS -->|"taxonomía / ID especie"| C1["Consulta estable → L1 CAG"]
    CLASS -->|"datos recientes / temporales"| C2["Consulta dinámica → L2 RAG"]
    CLASS -->|"comparativa / cruce"| C3["Consulta híbrida → L1 + L2"]

    C1 --> MERGE["Compositor de contexto"]
    C2 --> MERGE
    C3 --> MERGE

    MERGE --> LLM3["LLM Multimodal"]
    LLM3 --> RESP["Respuesta estructurada"]

    style CLASS fill:#e74c3c,color:#fff
    style MERGE fill:#2ecc71,color:#fff

5. Modelos de IA

5.1 Modelos Desplegados en el MVP

Modelo Función Tamaño Ejecución
Qwen2.5-VL 7B Visión + lenguaje (identificación de muestras) ~5 GB VRAM Ollama local
Llama 3.1 8B Generación de texto (informes, búsqueda semántica) ~5 GB VRAM Ollama local
CLIP ViT-L/14 Generación de embeddings multimodales ~1 GB VRAM Ollama local
TFLite (edge) Pre-procesado y clasificación rápida on-device ~50 MB Dispositivo móvil

5.2 Estrategia de Mejora Progresiva

flowchart LR
    subgraph Nivel1 ["Nivel 1 - Sin entrenamiento"]
        N1["CAG+RAG con modelos base"]
    end

    subgraph Nivel2 ["Nivel 2 - Fine-tuning ligero"]
        N2["LoRA/QLoRA sobre Qwen2.5-VL"]
    end

    subgraph Nivel3 ["Nivel 3 - Embeddings custom"]
        N3["Modelo propio para fauna atlántica"]
    end

    N1 -->|"si precisión < 80%"| N2
    N2 -->|"necesidad especializada"| N3

    style N1 fill:#2ecc71,color:#fff
    style N2 fill:#f39c12,color:#fff
    style N3 fill:#e74c3c,color:#fff
Nivel Cuándo Esfuerzo Beneficio
Nivel 1 MVP inicial Bajo (configuración) Funcionalidad base inmediata
Nivel 2 Si precisión < 80% Medio (dataset + LoRA) Mejora de 10-20% en precisión
Nivel 3 Especialización avanzada Alto (investigación + training) Modelo único para fauna del IEO

6. Edge AI — Inferencia en Dispositivo

6.1 Arquitectura On-Device

flowchart TB
    subgraph DEVICE ["Dispositivo Móvil"]
        CAM2["Cámara nativa"]
        FP["Frame Processor - JSI"]
        OCV2["OpenCV - Pre-procesado"]
        TFL2["TFLite - Clasificación rápida"]
        BUF["Buffer offline"]
    end

    subgraph DECISION ["Decisión"]
        DEC{{"¿Conexión disponible?"}}
    end

    subgraph SERVER ["Servidor - Quarkus + Dapr"]
        ACT["Actor de Sesión"]
        FULL["Modelo CAG+RAG completo"]
    end

    CAM2 --> FP --> OCV2 --> TFL2
    TFL2 --> DEC
    DEC -->|"sí"| ACT --> FULL
    DEC -->|"no"| BUF
    BUF -->|"al recuperar red"| ACT

    style TFL2 fill:#9b59b6,color:#fff
    style FULL fill:#2ecc71,color:#fff

6.2 Capacidades Offline vs Online

Capacidad Offline (Edge) Online (Servidor)
Pre-procesado de imagen ✅ Completo ✅ Completo
Detección de especie básica ✅ Top-5 candidatos ✅ Identificación precisa
Estimación de edad ❌ Requiere CAG ✅ Completo
Búsqueda por similitud ❌ Requiere ChromaDB ✅ Completo
Informe contextualizado ❌ Requiere LLM ✅ Completo

7. Métricas y Monitorización del Motor IA

Métrica Objetivo MVP Herramienta
Latencia CAG < 500ms Prometheus + Grafana
Latencia RAG < 3s Prometheus + Grafana
Precisión top-1 ≥ 80% especie Dataset de validación curado
Precisión top-5 ≥ 95% especie Dataset de validación curado
Throughput ≥ 10 req/s Load testing (k6)
Uso de VRAM < 16 GB total nvidia-smi

Documentos Relacionados

Nivel Documento Descripción
Investigación Análisis Tecnológico Integral Fundamentos: CAG+RAG, evaluación de tecnologías
Investigación Análisis LLM Departamental Modelos por departamento, datasets, tests de imagen/vídeo
Investigación Bancos de Datos Animales Fuentes de datos, APIs, datasets de imágenes, datos sintéticos
Arquitectura Arquitectura del Sistema Stack completo, backend, frontend
Arquitectura Modelo de Datos Schema para embeddings y muestras
Especificación App Móvil Edge AI, Visión Camera
Infraestructura Docker Compose Servicio Ollama, ChromaDB