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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat