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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat