Блог

Laya: открытая альтернатива Jev для быстрых решений

Редакция GoRouterОпубликовано
laya

Недавно мы рассказывали о Jev 1.13 от TypeSafe — модели, которая помогает приложениям классифицировать данные, выбирать варианты и выставлять оценки. У этого подхода есть и открытая реализация: Laya, которую можно запускать на собственной инфраструктуре и дообучать под свои задачи. Репозиторий проекта.

Принцип работы знакомый: приложение передаёт модели данные и вопросы к ним, а получает структурированные результаты. Например, можно отправить обращение клиента и определить, какому отделу его назначить, насколько оно срочное и просит ли человек вернуть деньги.

Laya поддерживает три типа вопросов:

  • Choice — выбрать вариант из заданного списка: категорию письма, тему обращения или подходящий отдел.

  • Score — оценить данные по описанной шкале, например степень срочности.

  • Noul — вернуть вероятность того, что условие выполняется: например, пользователь хочет отменить подписку.

Несколько вопросов можно объединить в один вызов. Модель обрабатывает их одним проходом и возвращает значения, которые программа может использовать в своей логике. Как устроена Laya.

Представим сообщение: «Заказ задерживается уже неделю. Если сегодня ничего не изменится, отменю покупку». Приложение может отдельно проверить тему обращения, срочность и намерение отказаться от заказа. По сочетанию этих результатов оно определит очередь обработки и необходимость участия сотрудника.

Такой подход подходит для повторяющихся операций внутри сервиса. В проекте уже предусмотрены наборы вопросов для разбора обращений, модерации, проверки промптов и выбора модели для дальнейшей обработки запроса. Примеры применения.

Главное преимущество Laya — возможность самостоятельно управлять моделью. Код и веса опубликованы под Apache 2.0. При локальном развёртывании обработку данных можно организовать внутри своей инфраструктуры, а модель — адаптировать к собственной предметной области. Расходы при таком подходе приходятся на вычислительные ресурсы и обслуживание. Код и лицензия, веса модели.

В семействе есть английская, мультиязычная и специализированная версия laya-typed-decisions. Для мультиязычной заявлена поддержка более 100 языков. Встроенный Router помогает выбирать подходящую модель для входных данных. Размер моделей составляет примерно 322–421 млн параметров в зависимости от версии. Описание семейства.

Проект интересен и скоростью. В измерениях разработчиков на NVIDIA Tesla T4 мультиязычная версия обрабатывала один вопрос примерно за 33 мс, английская — за 40 мс. Пакет из десяти вопросов занимал около 72 и 159 мс соответственно. Это результаты конкретного теста: загрузка модели, оборудование и устройство приложения влияют на итоговое время ответа. Данные о производительности.

Сравнение с Jev выглядит многообещающе, но требует внимательного прочтения. На наборе typed-decisions специализированная Laya получила 76,6% точности, тогда как приведённый в отчёте результат Jev 1.13.0 составляет 72,7%.

При этом Laya дообучали на обучающей части этого набора. Базовые версии показали здесь только около 34–36%. Кроме того, авторы не запускали Jev в собственном сравнительном эксперименте: его показатели взяты из сторонних публикаций. Поэтому эти цифры показывают потенциал специализации Laya, но не доказывают её общее превосходство над Jev. Методика и результаты.

Для русскоязычных приложений тоже есть полезный ориентир. В опубликованном тесте MASSIVE с выбором из 20 вариантов мультиязычная Laya получила 54% точности на русском. Этот показатель относится к конкретному тесту; качество на обращениях или документах своего сервиса нужно измерять отдельно. Результаты по языкам.

Отдельного внимания заслуживает уверенность модели. Разработчики признают, что готовые версии могут быть излишне уверены в ошибочных ответах, и рекомендуют калибровать вероятности на собственных данных. Структурированный результат упрощает интеграцию, но точность решения и пороги автоматических действий всё равно требуют проверки. Ограничения модели.

Laya стоит рассматривать для проектов, которым нужны локальная обработка и возможность дообучения. Практический первый шаг — выбрать одну узкую задачу, собрать реальные примеры и проверить, какую её часть модель выполняет с приемлемым качеством.

Познакомиться с интерфейсом можно в демо на Hugging Face, а инструкции по запуску и дообучению доступны в репозитории Laya.