← 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 |