Skip to content
Neuronavt
Go back

Solvi: LLM под контролем проверяемого кода

Инструмент7/10

Коротко

Автор solvi представляет Python-библиотеку, где языковая модель предлагает факты и варианты ответов, а детерминированный код применяет правила и принимает решение. Библиотека проверяет цитаты и типы, умеет воздерживаться и сохраняет воспроизводимый аудит; это важно для процессов, где ответы нужно обосновывать и нельзя нарушать жёсткие правила.

Контекст

Автор описывает solvi как открытую библиотеку на Python с лицензией Apache-2.0; версия 0.5.0 вводит типизированные вопросы и ответы. Проект вырос из экспериментов автора с нейросетями и гиперкомплексными числами и из опасений по поводу моделей, которые напрямую принимают деловые решения: они могут не выполнить правило, выдумать цитату или число, а затем не дать проверяемого объяснения.

Главное

Как сделано

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

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

Каждый шаг и его происхождение записываются в аудит. При replay вычисления сверяются повторно, а отпечатки моделей помогают обнаружить замену модели после принятия решения. Автор также описывает обучаемые головы, точечную поправку system.teach и читаемые списки правил, которые дополняют, но не отменяют жёсткие проверки.

Результаты

В документных экспериментах solvi показала 97.8% на шести вопросах по 361 чеку SROIE против 92.6% у Laya, 98.5% на CORD против 96.0%, а на CUAD — 94.8% против 77.5%. На CORD доля ответов при точности не ниже 99% составила 99.7% у solvi и 14.2% у Laya. Автор также приводит ECE 0.008 / 0.011 / 0.027 и результаты проверок воспроизводимости следов. Скорость и качество зависят от задачи; часть цифр получена на демонстрационных или ограниченных наборах.

Ограничения

В бенчмарках использован один сид на конфигурацию; метки SROIE частично выводились правилами, что выгодно вычисляемым вопросам. На CUAD сравниваемая модель получала только первые 1024 токена, тогда как solvi читала весь документ. Для новых полей извлечение без примеров может быть слабым: автор рекомендует закладывать 25–100 размеченных документов. Уверенность решателя нельзя надёжно переносить между доменами: для настройки и калибровки автор советует 30–60 примеров. Дословная цитата не обязательно действительно подтверждает вывод; на ContractNLI поддерживающие ответ цитаты получены в 62% случаев у decide-large и 46% у decide-base. int8 на CPU снижал точность на 11–12 пунктов для ряда полей; fp16 точность сохранял. След, построенный заново на другом входе, сам по себе согласован, поэтому его хеш входа нужно сверять с внешней квитанцией. В статье также признаётся, что часть сравнений — демонстрации, а не полноценные бенчмарки.

Что взять себе

Читать оригинал, если…

Откройте оригинал, если хотите изучить API и примеры кода solvi, проверить таблицы экспериментов или попробовать браузерные песочницы и демонстрацию аудита.