Коротко. Обзоров «ТОП-20 нейросетей для документов» в сети хватает. Этот текст про другое: что происходит, когда такую систему строишь сам под свои документы. Цифры из работающего сервиса: где точность проседает, сколько стоит владение и почему готовый сервис часто не подходит.
Когда хватает готового сервиса
Начну с честного: в половине случаев городить своё незачем.
Если нужно разобрать договор, вытащить суть из отчёта на сорок страниц или проверить текст, загрузите файл в любой знакомый чат с моделью. Это решается за минуту и стоит ноль.
Готовый сервис перестаёт подходить в трёх случаях:
- документов много и они ваши. Не один файл, а база из тысяч страниц: регламенты, инструкции, накопленная переписка. Загружать их в чат каждый раз никто не станет;
- ответ нужен со ссылкой на источник. Не «в целом так», а «пункт 4.2 вот этого регламента», чтобы можно было проверить;
- данные нельзя выносить наружу. Персональные данные, коммерческая тайна, требования 152-ФЗ.
Дальше про этот случай.
Как это устроено внутри
Модель не читает вашу базу целиком: в неё физически не влезет тысяча страниц, да и стоило бы это дорого при каждом вопросе.
Вместо этого документы заранее режут на куски, для каждого считают числовое представление смысла, и на вопрос сначала ищут подходящие куски, а потом отдают модели только их. Отсюда и ответ со ссылкой: система знает, из какого куска взяла.
Звучит просто. Ломается на каждом шаге.
Цифры из работающей системы
Дальше цифры с моего сервиса по законодательству, который сейчас работает публично. База: 34 697 фрагментов, 39 документов: кодексы и федеральные законы.
Первый замер качества поиска был неприятным. На контрольных вопросах, где заранее известно, какая статья должна найтись:
- нужная статья попадала в выдачу в 75% случаев;
- средняя позиция правильного ответа низкая, показатель 0,41.
Второе важнее первого, и вот почему. Модель читает первые несколько найденных кусков. Если правильный стоит восьмым, она его не увидит, даже когда поиск формально сработал.
Сменил модель, которая считает смысл фрагментов. Пересчёт всей базы: 7,7 млн токенов, 4,71 ₽, около двух часов.
| Что мерили | Было | Стало |
|---|---|---|
| Нужная статья попала в выдачу | 75% | 82% |
| Доля отвеченных вопросов | 77% | 85% |
| Позиция правильного ответа | 0,41 | 0,55 |
Последняя строка выросла на треть, и это важнее остальных: она про то, на каком месте стоит нужный фрагмент.
Ни один вопрос при этом не сломался: два стали находиться, ни один не перестал. Для смены поискового слоя это лучший исход: обычно что-то ломается.
Вывод, который стоит забрать: качество такой системы задаёт поиск, а не модель. Люди меняют модель на более дорогую и удивляются, что ответы не улучшились. Улучшать надо то, что модели подают на вход.
Где точность проседает на самом деле
Нарезка документов. Режете по абзацам, теряется контекст, кусок перестаёт быть понятным сам по себе. Режете крупно, и в один фрагмент попадает три темы: поиск находит его на любой вопрос. У меня статья длиннее лимита режется с перекрытием: хвост предыдущего куска попадает в следующий.
Одинаковые номера. Живой пример из моей базы: статья 330 есть в семи кодексах сразу. На вопрос про неустойку система может найти статью 330 из другого кодекса: формально совпало, по сути мимо. Это не лечится моделью, только правилами поиска.
Мусор в исходниках. Отсканированные документы, колонтитулы, номера страниц посреди текста, всё это попадает во фрагменты и сбивает поиск. Чистка документов даёт больше, чем смена модели.
Сколько стоит владение
Разработку в сторону, вот что уходит ежемесячно.
- Пересчёт базы — разово при загрузке и при смене модели. У меня 34 697 фрагментов обошлись в 4,71 ₽. Это не опечатка: считать смысл текста дёшево.
- Вопросы пользователей — основной расход, от копеек до нескольких рублей за вопрос в зависимости от модели.
- Сервер — от пары тысяч в месяц. Важная деталь: если считать представления текста на своём сервере, нужна память. Мой проект не влезал в машину на 4 ГБ, пока я не вынес этот расчёт наружу — освободилось 3 ГБ.
То есть система на своих документах — это не «заплатил один раз». Но и не подписка на 50 000 в месяц: при разумном потоке вопросов расход держится в тысячах рублей.
Про данные и 152-ФЗ
Частый вопрос: уходят ли документы в чужие руки.
Сама база лежит там, где вы её поставили — на своём сервере. Наружу уходит только то, что нужно для ответа: вопрос и найденные фрагменты.
Если в документах персональные данные, есть два пути: российский провайдер модели либо модель на своём железе. Мой сервис работает на российском — не из патриотизма, а потому что иначе пришлось бы объяснять, почему данные уезжают за границу. Попутно выяснилось, что провайдеры ведут себя по-разному: один спокойно принимает запрос, собранный из нескольких служебных блоков, другой отвечает ошибкой без объяснения. Такие вещи всплывают только на живом внедрении.
Что спросить, если заказываете такую систему
- Как измеряется качество поиска? Если ответ «на глаз» — измерений нет. Нужны контрольные вопросы с заранее известными ответами и цифра до и после.
- Что будет, если ответа нет в документах?Система должна сказать «не нашёл», а не сочинить. Проверяется вопросом, которого в базе заведомо нет.
- Даёт ли ответ ссылку на источник? Без неё проверить нельзя, и доверять тоже.
- Где лежат документы и куда уходят запросы?Конкретно: какой сервер, какой провайдер модели.
- Сколько будет стоить в месяц? Не разработка, а владение: вопросы, сервер, пересчёт при обновлении базы.
- Что с обновлением документов? Регламент поменялся — кто и как загружает новую версию.
Посмотреть, как это работает
Проще один раз попробовать, чем читать про метрики. Мой сервис по законодательству открыт: задаёте вопрос своими словами, получаете ответ со ссылкой на конкретную статью. База — 34 697 фрагментов из кодексов и федеральных законов.
Там же видно то, о чём я писал выше: где система отвечает точно, а где честно говорит, что нужен живой юрист.
Как этот сервис устроен внутри, со всеми замерами и ограничениями, разобрано отдельно. Там же остальные работы: мониторинг заявок, бот записи, открытый код.
Если нужна такая же на ваших документах — делаю под ключ: разбор базы, настройка поиска, замеры качества до и после, развёртывание на вашем сервере. Или разберём процесс целиком, если документы — только часть задачи.