dra-nomic-embed (Standalone ONNX: FP32 & Dynamic INT8)

Modelos de embeddings de alto rendimiento optimizados para inferencia ultra-rápida y soberana en CPU (sin PyTorch ni GPU).

Desarrollado como motor central de búsqueda semántica local para DRA (DeepRoot Agent), el agente autónomo de nueva generación creado por Jonás Reyes tras la evolución del proyecto fundacional DeepRoot hacia la Inteligencia Artificial soberana.


📊 Especificaciones Técnicas

Propiedad Valor
Modelo Base Original nomic-ai/nomic-embed-text-v1.5
Formato de Inferencia ONNX Runtime (C++ / SIMD AVX2/FMA/VNNI)
Dimensiones Vectoriales 768 (Soporta Matryoshka downsampling)
Contexto Máximo 8.192 tokens
Dependencias en Runtime onnxruntime + tokenizers (Cero PyTorch / Cero Transformers)
Licencia del Modelo Base Apache 2.0

🔬 Benchmark en Hardware Real (Intel Core i5-4308U Dual-Core @ 2.80GHz, 2014)

Evaluación comparativa procesando 1.200 textos técnicos reales (código fuente, consultas SQL, documentación y arquitectura):

Variante Archivo Tamaño en Disco / RAM Velocidad (CPU Dual-Core) Retención de Fidelidad
INT8 (Recomendado) model_int8.onnx 131.49 MB (-74.8%) 7.8 textos/seg (1.36x más rápido) 93.34% similitud coseno
FP32 (Original) model.onnx 522.25 MB 5.7 textos/seg 100% (Referencia base)

🚀 Proyección en Hardware Moderno: Si en un procesador dual-core de 2014 entrega 7.8 textos/segundo, en procesadores modernos (Intel Core Ultra, AMD Ryzen 7000/9000, Apple Silicon M-Series) el rendimiento supera los cientos de textos por segundo con latencias inferiores a 5 ms.


🛠️ Pipeline de Dependencias Efímeras: ¿Cómo se creó este modelo?

Para evitar arrastrar gigabytes de dependencias en entornos de producción:

  1. Entorno de Compilación Aislado: Se instalaron temporalmente optimum[exporters], torch y transformers.
  2. Exportación a Grafo ONNX: Se compiló el modelo base nomic-ai/nomic-embed-text-v1.5 a un grafo unificado optimizado.
  3. Cuantización Dinámica INT8: Se generó la versión compacta optimizada para instrucciones vectoriales.
  4. Purga Total de Dependencias: Inmediatamente tras la exportación, torch y todas las librerías pesadas fueron completamente eliminadas y desinstaladas, garantizando un paquete ultra-ligero y autónomo.

📥 Métodos de Instalación y Descarga

Opción A: Descarga Manual Rápida en Terminal

# Crear directorio de destino
mkdir -p ~/.dra/models/nomic-embed/

# Descargar desde Hugging Face
curl -L https://huggingface.co/jonasreyes/dra-nomic-embed/resolve/main/model_int8.onnx -o ~/.dra/models/nomic-embed/model_int8.onnx
curl -L https://huggingface.co/jonasreyes/dra-nomic-embed/resolve/main/tokenizer.json -o ~/.dra/models/nomic-embed/tokenizer.json
curl -L https://huggingface.co/jonasreyes/dra-nomic-embed/resolve/main/config.json -o ~/.dra/models/nomic-embed/config.json

# (Opcional) Descargar también la variante FP32 completa:
curl -L https://huggingface.co/jonasreyes/dra-nomic-embed/resolve/main/model.onnx -o ~/.dra/models/nomic-embed/model.onnx

Opción B: Uso Automático con DRA

# Instalación automática con DRA (descarga o compila según disponibilidad)
uv run dra setup

# Seleccionar modelo activo
uv run dra config set embed-model int8   # Versión ultra-rápida (131 MB)
uv run dra config set embed-model fp32   # Versión completa (522 MB)

💻 Uso en Python Puro (Sin PyTorch)

import numpy as np
from onnxruntime import InferenceSession, SessionOptions, GraphOptimizationLevel
from tokenizers import Tokenizer

# 1. Cargar tokenizador y sesión ONNX (INT8 o FP32)
tokenizer = Tokenizer.from_file("tokenizer.json")
opts = SessionOptions()
opts.graph_optimization_level = GraphOptimizationLevel.ORT_ENABLE_ALL
session = InferenceSession("model_int8.onnx", sess_options=opts, providers=["CPUExecutionProvider"])

# 2. Generar embeddings
texts = ["search_document: Arquitectura de agentes autónomos y soberanía en IA."]
enc = tokenizer.encode_batch(texts)
max_len = max(len(e.ids) for e in enc)

input_ids = np.array([e.ids + [0] * (max_len - len(e.ids)) for e in enc], dtype=np.int64)
attention_mask = np.array([e.attention_mask + [0] * (max_len - len(e.attention_mask)) for e in enc], dtype=np.int64)

outputs = session.run(None, {"input_ids": input_ids, "attention_mask": attention_mask})
embeddings = outputs[0][:, 0, :]  # Mean pooling / CLS representation

🔐 Checksums de Integridad (SHA-256)

Archivo Tamaño SHA-256
model_int8.onnx 131.49 MB 650fd2bde209bd85d0a842f52182f6cd347044a8fadba72b346840a4d5bfca63
model.onnx 522.25 MB 1c1005bf14c833d0bb52024b6175409efe745245d0c21795b4d0bec4f55d74e9
tokenizer.json 711.39 KB d241a60d5e8f04cc1b2b3e9ef7a4921b27bf526d9f6050ab90f9267a1f9e5c66

🌐 Antecedentes del Proyecto

  • DeepRoot: Proyecto fundacional desarrollado por Jonás Reyes que definió las bases de arquitectura de sistemas y soberanía digital.
  • DRA (DeepRoot Agent): Agente autónomo local-first, multi-proveedor y seguro, diseñado para competir sólidamente con las mejores herramientas de desarrollo asistido del estado del arte.

📄 Licencia

El modelo original nomic-embed-text-v1.5 está bajo licencia Apache 2.0. Este repositorio distribuye artefactos optimizados en formato ONNX; no modifica la arquitectura base del modelo.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support