Un desarrollador tomó un modelo de lenguaje de 350 millones de parámetros, lo ajustó y lo implementó como un asistente de IA totalmente funcional que se ejecuta dentro de cualquier navegador web moderno: sin llamadas al servidor, sin claves de API y sin facturas de la nube.

El proyecto incluye los pesos del modelo junto con una página web estática, lo que permite al agente elegir herramientas, vincular argumentos, resolver referencias como "el segundo" y negarse a responder cuando carece de información, todo esto mientras sus datos permanecen en su propio dispositivo.

Cómo se construyó el agente basado en el navegador

El punto de partida fue la familia LFM2.5 de LiquidAI, específicamente las variantes de 230 M y 350 M de parámetros.

En lugar de saturar el modelo con catálogos de productos o tablas de precios, el entrenador le enseñó patrones de interacción. El agente nunca conoce un SKU específico; aprende cómo:

  • Elegir la herramienta adecuada para una solicitud determinada.
  • Vincular los argumentos e identificadores correctos a esa herramienta.
  • Interpretar referencias ambiguas ("una docena", "el segundo").
  • Extraer texto externo y utilizarlo para responder preguntas.
  • Rechazar la solicitud cuando falta la información requerida.
  • Mantener la conversación en el tema.

El conjunto de herramientas es deliberadamente estático: list_items, get_item, search_knowledge, add_to_cart, remove_from_cart, clear_cart, checkout y navigate. Congelar la lista evita que el modelo memorice los IDs de las herramientas y mantiene pequeños los datos de ajuste fino.

Tres decisiones de ingeniería mantienen el sistema ligero:

  1. Lista de herramientas congelada – El modelo ve una lista fija de acciones, por lo que no necesita un vocabulario amplio de nombres de herramientas.
  2. RAG como una herramienta – La generación aumentada por recuperación (RAG) actúa como cualquier otra función. El agente llama a search_knowledge para obtener texto y luego inserta ese texto directamente en su respuesta, evitando un proceso de recuperación separado que añadiría latencia y sobrecarga de memoria.
  3. Decodificación con restricciones gramaticales – Durante la generación, el decodificador sigue una gramática sencilla que obliga a que la salida tenga una estructura de llamada a herramienta válida. La restricción elimina el desperdicio de tokens y reduce los comandos mal formados.

El entrenamiento utilizó destilación de datos sintéticos. El autor definió 18 recetas de interacción, cada una de las cuales describe un intercambio típico entre usuario y asistente. Un modelo "maestro" más grande generó la parte del lenguaje natural, mientras que un script determinista produjo el formato exacto de llamada a la herramienta. La ejecución del ajuste fino consumió aproximadamente 30 millones de tokens y cupo en una sola GPU con 16 GB de memoria.

Por qué es importante el procesamiento en el dispositivo

  • Privacidad – Todos los prompts del usuario permanecen en la memoria del navegador. No sale telemetría del dispositivo, lo cual es crucial para consultas sensibles.
  • Capacidad offline – Debido a que el modelo se almacena en caché localmente, el asistente funciona sin conexión a Internet, lo que abre posibilidades para el trabajo de campo o viajes.
  • Costo – El envío de archivos de modelo estáticos elimina los servidores de inferencia recurrentes impulsados por GPU o las tarifas de API por llamada.
  • Accesibilidad – La navegación mediante voz de interfaces web complejas se vuelve factible en dispositivos de baja especificación, ampliando el alcance de las aplicaciones web a usuarios que dependen de tecnologías de asistencia.

Estas ventajas cambian la conversación de "¿Puede un modelo gigante responder a esto?" a "¿Qué tan pequeño puede ser un modelo y seguir ofreciendo una asistencia útil?".

Limitaciones potenciales

Un modelo de este tamaño no puede retener hechos enciclopédicos. Cuando un usuario pregunta por el precio de un producto específico o un titular de noticias reciente, el asistente recupera la información a través de search_knowledge o se niega cortésmente. Ese diseño protege la privacidad, pero también vincula el sistema a la calidad y actualidad de su fuente de conocimiento externa.

Qué observar a continuación

La demo pública se encuentra en una URL sencilla de GitHub Pages y el código fuente está disponible abiertamente.

Conclusión: Al enseñar a un LLM de tamaño modesto a seguir una gramática de herramientas estricta y al tratar la recuperación como una función más, los desarrolladores pueden lanzar un asistente de IA útil que viva enteramente en el navegador, ofreciendo privacidad, uso sin conexión y costo de nube cero sin sacrificar las capacidades conversacionales principales.