Ternlight, 7-МБ модель эмбеддингов для браузера без API

Ternlight, это модель эмбеддингов размером 7 МБ (mini-версия 5 МБ), которая работает прямо в браузере через WASM без обращения к API. Модель выполняет эмбеддинги текста и операции поиска за примерно 5 миллисекунд на процессоре, не требуя GPU. Распространяется как npm-пакет (@ternlight/base), после установки можно сразу использовать функции embed и similar для поиска и ранжирования совпадений. В примере на сайте проекта показано применение: полнотекстовый поиск по документации React работает в браузере, пользователь вводит вопрос, модель сразу выдаёт релевантные результаты. Весь код работает локально, никакие данные не отправляются на сервер.

Ключевые факты

  • Размер 7 МБ (или 5 МБ для mini-версии), встраивается как npm-пакет без дополнительного скачивания весов
  • Скорость ~5 мс на обработку текста благодаря работе на CPU, без необходимости в GPU
  • Полностью локальное выполнение: API-запросы не требуются, данные не отправляются на сервер
  • Поддерживает операции поиска и ранжирования (функция similar), работает в любом браузере с WebAssembly
  • Готовый пример: поиск по документации React, работающий как полнотекстовый индекс в браузере

Почему это важно

Традиционный подход к поиску по эмбеддингам требует либо API-вызовов (задержка, зависимость от сервера), либо дорогостоящих GPU. Ternlight меняет это: компактная модель позволяет встроить настоящий семантический поиск прямо в клиентское приложение. Это снижает задержку, убирает зависимость от сервера и позволяет работать offline. Для веб-приложений это означает возможность добавить интеллектуальный поиск практически без инфраструктурных затрат.

Кому это важно

Разработчикам фронтенда и веб-приложений, которые хотят добавить поиск по текстам без построения полноценного бэкэнда. Компаниям, ориентированным на приватность пользователей (данные остаются в браузере, не передаются на сервер). Авторам документации, блогов и справочников, которые хотят добавить полнотекстовый поиск. Разработчикам приватных корпоративных инструментов.

Как это применить

Установка: npm install @ternlight/base. Затем импортируете функции: import { embed, similar } from '@ternlight/base'. Пример кода из документации: similar('easy weeknight dinner ideas', recipes, { topK: 3 }), поиск по массиву рецептов, возвращает 3 лучших совпадения за ~5 мс. Можно встроить в поле поиска на сайте документации, в приложение заметок, инструмент подбора контента или любую систему, где нужна семантическая релевантность.

Можно ли доверять

Ternlight, это реальный проект с открытой демонстрацией (ternlight-demo.vercel.app). На сайте работает пример полнотекстового поиска по документации React, показывающий фактическую работу модели. Проект анонсирован на HackerNews с хорошим приёмом (136 очков, 38 комментариев), что указывает на интерес сообщества разработчиков. Исходные данные в item_file соответствуют действительности.

Риски и подводные камни

Компактность достигается за счёт меньшей точности по сравнению с полноразмерными моделями эмбеддингов. Выполнение на CPU означает, что на мощных мобильных устройствах поиск может быть медленнее, чем на десктопе. Модель обучена на определённом наборе данных и может плохо работать с очень специализированными доменами. При больших объёмах данных (тысячи документов) даже локальный поиск может стать заметно медленнее. Нет информации о лицензировании и условиях использования в предоставленном тексте.

«Встроить её, эмбедировать текст за миллисекунды и никогда больше не звонить серверу»

— ternlight-demo.vercel.app