Розробник взяв мовну модель із 350 мільйонами параметрів, донавчив її та розгорнув як повноцінного ШІ-асистента, що працює в будь-якому сучасному веббраузері — без звернень до сервера, без API-ключів і без витрат на хмарні сервіси.

Проєкт постачається разом із вагами моделі на статичній вебсторінці, що дозволяє агенту обирати інструменти, прив'язувати аргументи, розв'язувати посилання на кшталт «другий» і відмовлятися відповідати, якщо бракує інформації — і все це при тому, що ваші дані залишаються на вашому власному пристрої.

Як було створено браузерного агента

Відправною точкою стала сімейство моделей LFM2.5 від LiquidAI, зокрема варіанти з 230 млн та 350 млн параметрів.

Замість того, щоб набивати модель каталогами товарів або таблицями цін, тренер навчав її патернам взаємодії. Агент ніколи не знає конкретного SKU; він вчиться:

  • Обирати відповідний інструмент для конкретного запиту.
  • Прив'язувати правильні аргументи та ідентифікатори до цього інструмента.
  • Інтерпретувати неоднозначні посилання («дюжина», «другий»).
  • Підтягувати зовнішній текст і використовувати його для відповідей на запитання.
  • Відмовлятися, якщо необхідна інформація відсутня.
  • Тримати розмову в межах теми.

Набір інструментів навмисно є статичним: list_items, get_item, search_knowledge, add_to_cart, remove_from_cart, clear_cart, checkout та navigate. Фіксація списку запобігає запам'ятовуванню моделлю ID інструментів і дозволяє тримати обсяг даних для донавчання невеликим.

Три інженерні рішення роблять систему легкою:

  1. Фіксований список інструментів – модель бачить сталий перелік дій, тому їй не потрібен великий словник назв інструментів.
  2. RAG як інструмент – генерація з використанням пошуку (RAG) діє як будь-яка інша функція. Агент викликає search_knowledge, щоб отримати текст, а потім вставляє цей текст безпосередньо у свою відповідь, уникаючи окремого конвеєра пошуку, який би збільшив затримку та навантаження на пам'ять.
  3. Декодування з обмеженням граматикою – під час генерації декодер дотримується простої граматики, яка змушує вихідні дані відповідати правильній структурі виклику інструмента. Це обмеження усуває марну трату токенів і зменшує кількість некоректних команд.

Для навчання використовувалася дистиляція синтетичних даних. Автор визначив 18 рецептів взаємодії, кожен з яких описує типовий обмін між користувачем і асистентом. Більша модель-«вчитель» генерувала частину природною мовою, тоді як детермінований скрипт створював точний формат виклику інструмента. Процес донавчання споживав приблизно 30 мільйонів токенів і вмістився на одному GPU з 16 ГБ пам'яті.

Чому важливо працювати на пристрої

  • Приватність – усі запити користувача залишаються в пам'яті браузера. Жодна телеметрія не покидає пристрій, що важливо для конфіденційних запитів.
  • Автономність – оскільки модель кешується локально, асистент працює без підключення до інтернету, що відкриває можливості для польової роботи або подорожей.
  • Вартість – постачання статичних файлів моделі усуває необхідність у постійних серверах для інференсу на GPU або оплаті за кожен виклик API.
  • Доступність – голосове керування складними вебінтерфейсами стає можливим на пристроях із низькими характеристиками, що розширює охоплення вебдодатків для користувачів, які покладаються на допоміжні технології.

Ці переваги зміщують фокус обговорення з питання «Чи зможе гігантська модель відповісти на це?» на питання «Наскільки малою може бути модель, щоб все ще надавати корисну допомогу?».

Потенційні обмеження

Модель такого розміру не може утримувати енциклопедичні факти. Коли користувач запитує ціну конкретного товару або свіжий заголовок новин, асистент або отримує інформацію через search_knowledge, або ввічливо відмовляє. Такий підхід захищає приватність, але водночас прив'язує систему до якості та актуальності її зовнішнього джерела знань.

За чим стежити далі

Публічна демо-версія доступна за простою адресою GitHub Pages, а вихідний код є відкритим.

Підсумок: Навчаючи LLM помірного розміру суворій граматиці інструментів і розглядаючи пошук як звичайну функцію, розробники можуть створювати корисних ШІ-асистентів, які повністю живуть у браузері — забезпечуючи приватність, роботу офлайн і нульову вартість хмарних сервісів без втрати основних навичок ведення діалогу.