Проверка юридических документов с помощью визуальных помощников может оказаться важной задачей. Если человек способен хранить в голове одновременно в зоне его мозговых вычислений 6-8 параметров, ну может и больше, если гений... А остальные держать в блокноте. То ИИ учитывает больше параметров, те же модели LLM доступны с количеством 70 миллиардов параметров для скачивания, LLM от OpenAI или Microsoft предлагает уже как минимум 500 миллиардов входных параметров. То есть мы-то тоже ежедневно принимаем решения на основе большого количества входных параметров: купить ли сегодня эту вещь, поехать ли отдыхать на море, бросив все, доехать на такси или на автобусе. Но учитываем не все сразу, хотя что-то учитывается на подсознательном уровне. Эдакое дело вкуса, когда просто чувствуешь, что так правильнее, и в итоге не прогадал.

Правда люди еще не научились влиять на решения сети. У нейросетей особенные вкусы. Если GAN-сеть создает нам девушку, у которой 2 руки, то для каких-нибудь художников эпохи Сюрреализма это могло бы показаться гениальным. Двумя руками обнимает парня, словно вцепилась в него всей душой и влюбилась всем сердцем... К сожалению или к счастью, в задачах создания юридических документов мало необходимости творить что-либо на уровне латентного вектора в цепочке между кодировщиком и декодировщиком. Но работа с юридическими документами – тот самый скоп задач, где важно найти судебную практику, предшествующие документы и просто оформить все примерно также.

Таким образом, работа с юридическими документами – лакомый кусочек уже лет так 5, особенно на зарубежном рынке, где задача автоматизации рутинной деятельности сводится именно к тому, чтобы из исторически предшествующих документов собрать что-то стоящее, применимое к текущему документу. Известны возможности использования сети Mistral под эти цели или задействования Giga Legal, которые стали зарождаться на Российском рынке примерно в 2023-2024 годах. Наше первоначальное решение исторически появилось как раз таки в 2022 году, в рамках кейса на хакатоне Цифровой прорыв. По семантическому окрасу и истории работы с документом можно понимать, что именно перед тобой: проигрышная трактовка, выигрышная трактовка, доводы, играющие в пользу истца или аргументы, помогающие ответчику, если дело идет о судебных исках.

Проблемы автоматизации поднимались, кстати, на Хабре и ранее:

Программа для анализа судебной и арбитражной практики

https://habr.com/ru/articles/651201/

Как систематизировать работу с входящими документами

https://habr.com/ru/companies/lanit/articles/781990/

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

Стоит так же ознакомиться с Giga Legal: https://vc.ru/legal/1076473-giga-legal-testiruem-neiroset-dlya-yuristov

Мы нашли интересный кейс на хакатоне Цифровой Прорыв еще в 2022 году и решили подойти к вопросу проверки юридических документов на примере именно Нормативно-правовых актов, так как это предложил кейсодержатель.

Практическая значимость результатов состоит в создании Российского решения по дополнительной визуализации текстовых данных. Продукт, ориентированный на автоматизированное создание стильно оформленных визуально должностных инструкций, может быть использован для генерации аналогичных документов: описаний работы программ и приложений, отчетов, инструкций по созданию чего-либо, цифровых двойников каких-либо физических объектов, например, квартир, выставленных на продажу, и так далее. Частная задача в продукте – качественная проверка на грамотность (в том числе и юридическую) текстовых документов.

Решаемая задача – разработка веб-сервиса, позволяющего в автоматическом режиме проверять нормативно-правовые акты при помощи выявления соответствия определенных текстовых абзацев классам, полученным за счет машинного обучения. Выбор подходящего алгоритма нужен для того, чтобы с высокой точностью (более 60%, желательно более 90%) определять корректность составления текста в документе. 

Существуют такие методы, как мешок слов, TF-IDF, Word2Vec (Skip-Gram, CBOW), GloVe [1].

В инструментарии NLP характерны такие методы, как формирование n-грамм, векторизация, создание словаря [9]. Словарь можно использовать на базе уже существующих решений, а можно формировать исключительно под предоставленные входные данные.

В зарубежной среде известны такие модели и решения, как Darrow AI, Ferret, Humata AI. Однако данные возможности ориентированны на оценку рисков и возможностей по тем или иным юридическим процессам. Стоит отметить, что стоимость решений проявляется в районе 8-10 тыс. рублей, в то время как анализ руссоязычных материалов пока ограничен доступными данным решениям входными данными. Стало интересно, можно ли небольшими усилиями создать решение, которое будет быстро и качественно проверять однотипные юридические документы на грамотность их составления.

Исходные данные

Постановления правительства Российской Федерации, такие как, например, от 18 февраля 2022 г. N 208, от 19 февраля 2022 г. N 221, от 24 марта 2022 г. N 453, всего это – 165 таких НПА. Классы указаны в [2], их 39 штук. В документы заранее внесены метки, по которым разбит текст на абзацы. Каждый абзац соответствует определенному классу. Примеры этих классов ниже.

  1. Понятия, используемые для целей правового акта (при необходимости).

  2. Цель предоставления субсидии.

  3. Наименование органа государственной власти (государственного органа).

Решение

Разработка модели проведена на языке Python. Использован микросервисный подход, при этом на Backend развернута в Docker-контейнере система с REST-API, где задействованы нейросетевая модель и база данных Mongo DB. C Backend-частью орнанизована связь через POST-запросы. Документ передается с фронта и анализируется на беке, затем выдается результат анализа в JSON-формате и визуализируется.

При первоначальном анализе классов [2] выявлено, что они не сбалансированы. Проведена токенизация с использованием библиотеки nltk. Использованы полносвязные слои. Проба сверхточных показала, что они не подходят. 

Использована самоличная модель нейросети, при этом делалось и на готовом решении на базе Spacy, которое также дало менее привлекательный результат. Таким образом, в системе задействован трансформер RoBERTa, для векторизации больше всего подошел метод TF-IDF.

Итого получился такой сервис. Пользователь может попробовать анализ на уже имеющихся документах. Логично, что точность будет высокая. Надо загрузить файл и подождать секунд 15.

При загрузке документов они попадают в нашу базу, но недоступны для свободного скачивания (доступ к ресурсам сервера CHMOD не 777). В системе можно смотреть уже имеющиеся документы и переходить к результатам их анализа. Для того, чтобы не загружалось что попало, требуется предварительный контроль, соответствует ли загружаемый документ текущему классу самих документов. Например, если пользователь загрузит решение суда или исковое заявление, то такие документы не должны будут принимать участие при анализе нормативных правовых актов.

Здесь и предполагается возможность сбора документов и накопления данных, результаты заносятся в Mongo DB и также могут использоваться далее. В систему для анализа можно загружать другие данные и систематически переобучать нейросеть с учетом большего числа входных параметров.

Если документ составлен в схожей стилистике с актами, на которых происходило обучение, проценты по каждому классу будут на уровне 100% (близки к этому показателю). Если документ совсем отличается от типового, то будут выданы низкие показатели по классам и сравнительно небольшой суммарный показатель.

Точность работы решения на незнакомых документах колебалась в пределах от 60% до 90%, но это хороший результат с учетом количества входного датасета. Таким образом можно говорить о том, что подход адекватный. Вариант реализации на BERT и решение на Spacy дало нам менее адекватные результаты.

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

Полученное решение позволяет оценивать качество составления нормативно-правовых актов. Модель, если рассказывать на пальцах, запоминает стилистику составления нормативно-правовых актов по 39 классам. Когда системе предлагается на ознакомление новый документ, она дает качественный анализ, насколько текст составлен близко к тому, который уже выверен и содержится в исходных данных, на которых обучена нейросетевая модель.

Комментарии (3)


  1. Mr_IlyaBlogger
    10.06.2024 05:37

    А у вашей нейросети предполагается возможность генерации нужного тебе документа с нужными тебе параметрами (условно иск на алименты в конкретной жизненной ситуации)? Так как иногда бывает трудно найти шаблон иска в интернете именно под твой случай


    1. Genervis Автор
      10.06.2024 05:37

      Это уже вопросы к базе данных и входному датасету. Именно в статье исходный датасет описан. Документы, которые предлагаются, подгружаются на сервер и обрабатываются, поэтому если много чего загружать и затем отфильтровать среди мусора что-то полезное – получается, что такой функционал планируется.


  1. sommerr
    10.06.2024 05:37

    Очень интересно, спасибо. Не могли бы еще каких нибудь LLM для работы в юр сфере порекомендовать?