EdgeBERT: Construí mi motor de inferencia en Rust

EdgeBERT es un motor de embeddings en Rust para búsqueda semántica sin dependencias de Python. Despliegue ligero, compatible con WASM y ejecutable en edge y navegadores.

12 sept 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

EdgeBERT: Construí mi motor de inferencia en Rust y lo hice pensando en aplicaciones a medida y en entornos donde el tamaño y la dependencia de Python son un problema.

Necesitaba búsqueda semántica en una aplicación Rust para que un usuario que buscara doctor encontrara documentos que mencionaran physician o medical practitioner. La idea es convertir texto en vectores que capturen significado: palabras similares generan vectores similares y palabras distintas vectores distintos, de modo que doctor y physician estén muy cerca en el espacio vectorial mientras que banana quede lejos.

El dolor de las soluciones existentes era real: para generar embeddings con Python la solución estándar inflaba un entorno virtual hasta 6.8 GB por PyTorch, tokenizers y pesos del modelo. Intenté usar ONNX Runtime desde Rust pero acabó trayendo 80+ crates, un binario de release de 350 MB y dependencias al sistema como libstdc++, libpthread y OpenSSL con incompatibilidades que rompían distribuciones como RHEL. Esto convirtió un proyecto de RAG ligero y offline en una pesadilla de compatibilidad.

Lo que realmente quería era una API simple tipo model = SentenceTransformer all-MiniLM-L6-v2 y embeddings = model.encode texts sin todo el ruido. La solución fue implementar mi propio motor de inferencia en Rust: EdgeBERT. Un ejemplo de uso sencillo permite cargar el modelo MiniLML6V2 y obtener embeddings en una llamada, con un binario de 5MB y uso de RAM alrededor de 200MB, sin el infierno de dependencias y con una correlación de 0.9997 respecto a los embeddings generados por sentence-transformers en Python.

Rendimiento: tras optimizar multiplicaciones de matrices EdgeBERT ofrece ventajas claras en escenarios de un solo hilo. En CPU EdgeBERT puede ser hasta 3 veces más rápido en single-threaded en modelos MiniLM cuya dimensión de matrices es relativamente pequeña. En multi hilo y en lotes muy grandes la implementación de sentence-transformers en Python puede recuperar ventaja, pero para dispositivos edge, navegadores y aplicaciones donde la latencia por petición importa, EdgeBERT muestra su mejor cara.

Uso en WebAssembly: al ser Rust puro con dependencias mínimas se compila a WASM y puede ejecutarse en navegadores. El binario WASM pesa ~429KB y los pesos del modelo unos 30MB. Para lograr esto tuve que implementar un tokenizador WordPiece en Rust porque la crate tokenizers trae dependencias en C que no compilan a WASM.

Cómo funciona a grandes rasgos: tokenización WordPiece a ids, embeddings de 384 dimensiones que suman word, posición y segmento, múltiples capas de self attention y feed forward con GELU, y finalmente pooling por promedio para obtener el embedding de la frase. MiniLM usa 6 capas y la implementación principal ocupa unas 500 líneas en Rust, sin magia, solo el algoritmo transformer reescrito con foco en eficiencia y portabilidad.

Precisión: las diferencias numéricas entre implementaciones flotantes son mínimas. Un vector de ejemplo de EdgeBERT y su equivalente en Python tienen una similitud coseno de 0.9997, lo que significa que el resultado es esencialmente el mismo para tareas de búsqueda semántica, recomendaciones, detección de duplicados y moderación de contenido.

Ventajas prácticas: esta solución permite búsqueda semántica que entiende intención y sinónimos, recomendaciones basadas en significado, detección de duplicados con distinto wording, y alimentar sistemas RAG para proporcionar a los LLM el contexto correcto sin depender de coincidencias por palabras clave. Todo ello apto para despliegues en el edge, navegadores, o servidores con limitaciones de memoria.

Cuándo usar EdgeBERT: cuando necesitas embeddings sin Python, el tamaño del despliegue es crítico, la aplicación corre en edge o navegador, la memoria es limitada o la latencia single-threaded importa. Usa sentence-transformers cuando necesites aceleración por GPU, múltiples arquitecturas de modelo o estés ya inmerso en el ecosistema Python y Hugging Face.

Instalación y despliegue: EdgeBERT se publica como crate y soporta una feature opcional para BLAS como openblas para un mejor rendimiento en CPU. Para compilar a WASM no se requiere ninguna dependencia C externa. Si quieres integrar esta tecnología en una solución empresarial a medida contacta con nuestro equipo en Q2BSTUDIO, especialistas en desarrollo de software a medida, inteligencia artificial y servicios cloud.

En Q2BSTUDIO ofrecemos desarrollo de aplicaciones a medida y servicios de inteligencia artificial para empresas, incluyendo agentes IA y soluciones de inteligencia de negocio y power bi. Si tu proyecto necesita integración de embeddings para búsqueda semántica o funciones RAG podemos ayudarte a diseñar una solución escalable y segura. Conoce nuestros servicios de inteligencia artificial en Q2BSTUDIO Inteligencia Artificial y descubre cómo desarrollamos aplicaciones a medida en Desarrollo de aplicaciones y software a medida.

También ofrecemos ciberseguridad y pentesting, servicios cloud aws y azure, y soluciones de business intelligence con Power BI para convertir datos en decisiones. Si quieres reducir el tamaño del despliegue, mejorar la latencia o llevar modelos de NLP al edge, nuestro equipo puede implementar EdgeBERT o adaptar soluciones similares en proyectos de software a medida, servicios cloud y automatización.

Roadmap y futuro: planes para soporte GPU con wgpu, más arquitecturas eficientes, y cuantización para reducir aún más tamaño y mejorar rendimiento en microcontroladores. El código está disponible en GitHub y aceptamos contribuciones; la implementación es compacta y pensada para integrarse en pipelines de producción donde la eficiencia y la seguridad son prioritarias.

Contacta con Q2BSTUDIO para una evaluación personalizada de tu caso de uso en IA para empresas, agentes IA, seguridad y despliegues cloud AWS y Azure. Podemos asesorar en integración, despliegue y mantenimiento de soluciones basadas en embeddings, RAG y modelos transformadores, adaptadas a las necesidades de tu negocio.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat