Использование лингвистических моделей в юридической практике
Юриспруденция предполагает работу с огромным объемом документации, которая сегодня может быть представлена в различных форматах, к примеру: pdf, doc, txt и другие.
Документы в этих форматах приходится сортировать по разным множествам, критерии которых необходимо гибко задавать, чтобы отделить:
- - договоры от приложений;
- - договоры поставки от договоров услуг;
- - срочные договоры от бессрочных.
А также искать документы с отсутствующими положениями, отслеживать вносимые в договоры изменения и т. д.
Мы рассмотрели несколько вариантов решения использования лингвистических моделей в юридической практике, но сначала поговорим о том, что такое модель с архитектурой «трансформер».
Архитектура глубоких нейронных сетей «трансформер»
Если говорить упрощенно, то «трансформер» — это модель, в которой используется механизм внимания (self-attention layer), позволяющий учитывать предыдущие состояния обрабатываемых данных: слова, предложения и даже «эмодзи». Механизм подобен тому, как в рекуррентных сетях используется скрытое состояние (hidden state), позволяющее учитывать контекст ранее обработанных слов.
При этом классический механизм «внимания» используется в качестве одного из слоев в архитектуре типа «энкодер-декодер». Использование этой архитектуры расширяет возможности модели в «понимании», точнее в атрибутировании текста. Другими словами, применение архитектуры позволяет модели правильно определять, к примеру, порядок слов в предложении и вероятность появления того или иного слова/предложения. Данный инструмент впервые был описан в статье Attention is All You Need. В настоящее время его высшим проявлением (по нашему мнению) является модель GPT-3 от OpenAI, которая не только построена на основе архитектуры «трансформер», но еще и является авторегрессионной (где значения обрабатываемого токена линейно зависят от предыдущих значений), а также генеративной (построенной на комбинации из двух нейронных сетей, одна из которых генерирует образцы, а вторая — старается отличить правильные образцы от неправильных) языковой моделью.
На юридическом корпусе документов мы пробовали обучать предыдущую модель GPT2, однако для решения практических задач она подходит только при использовании большого числа костылей.
Варианты решения задачи
Для поставленной задачи мы пробовали использовать три разных решения:
- Использование предобученных лингвистических моделей (GPT2, Roberta и Bert). GPT-3 не пробовали, так как на тот момент ее еще не представили.
- Дообучение предобученных моделей на своем датасете.
- Обучение своих моделей исключительно на юридическом датасете.
Про применение предобученных лингвистических моделей мы уже сказали — нужны костыли. Вариант с дообучением моделей был хорошо реализован в решении от SberDevice, поэтому мы сконцентрировались на своем пути и проверили гипотезу возможности решения задачи уникального домена (области знания) с помощью обученных с нуля моделей только на юридических текстах.
При этом корпус юридических текстов обладает уникальными особенностями:
- - предельно сложная грамматика, включая особенности построения предложений;
- - упрощенная лексика;
- - низкое лексическое разнообразие в части юридических документов;
- - высокое лексическое разнообразие в части приложений к документам.
Все эти факторы вызваны особенностями российских юридических текстов, проще говоря, они очень тяжело воспринимаются. О чем, кстати, говорится в исследовании ВШЭ о российских юридических текстах.
Проверка гипотез и обучение моделей
До использования сложных инструментов мы проверили «регулярки», однако с точки зрения программирования задача оказалась невероятно сложной, несмотря на простоту самого инструмента. Сложность вызвана в первую очередь многочисленными ошибками в тексте, а также большим количеством исключений из правил.
Для рабочего решения проверено несколько гипотез. Использовали TFIDF как Байзлайн (Baseline), работали также с FasText и т.д., но на этом мы не будем останавливаться подробно, так как необходимость использования сложных инструментов — это тема отдельного исследования.
Использовали существующие ml-модели:
- - Muse;
- - Laser;
- - Bert от DeepPavlov.
Обучили три модели:
- - Electra;
- - Longformer;
- - Bert.
Обработка датасета
Юридический датасет идеально подходит для задач классификации — большинство документов обладают четкой, повторяющейся структурой:
- - судебные решения — вводная часть, описание применимых норм права, выводы, решение;
- - договоры — предмет, сроки, цена, ответственность сторон.
При этом все примеры предполагают использование естественной речи, но с определенным жаргоном.
Мы нормализовали тексты, убрали уникальные слова, анонимизировали его и проверили результаты вручную. После нескольких итераций получили необходимый датасет.
Было решено сделать сразу два датасета:
- - последовательный (вообще со всеми текстами);
- - параллельный (положения о сроках из договоров, положения о предмете договора из всех документов).
Для этого сначала пришлось использовать существующие модели.
Все используемые данные были взяты из открытых источников парсером, включая: договоры, решения, соглашения, технические задания, проверенные и очищенные, но не структурированные.
Тренировка моделей
Весь процесс тренировки упрощенно выглядел следующим образом:
- - подготовка документов;
- - обучение выбранных ИНС-моделей на подготовленном корпусе;
- - получение с использованием моделей embeddings (векторных представлений слов, предложений и параграфов документов);
- - использование embeddings для кластеризации и классификации (sklearn);
- - использование полученных моделей для решения заявленных задач (классификация текста и семантическая близость в реальных документах (PyTorch и Tensorflow)).
После этого для сравнения получаем embedding c помощью предобученных моделей.
Процесс обучения
Для обучения всех моделей мы использовали библиотеку Hugginface Transformers. Сначала создавали токенайзер, подходящий для конкретной модели, потом использовали стандартные гипер-параметры и фиксированный размер словаря.
Модели обучали на AWS в SageMaker и на нашей рабочей машине c GeForce RTX 2070.
В среднем обучение одной модели занимало около 24 часов.
Результаты обучения
В итоге нами были получены 3 модели для language modelling , обученные для того, чтобы предсказывать «замаскированное» (masked) слово.
Первая кластеризация проводилась с использованием алгоритма TFIDF и ее мы решили использовать в качестве базовой для сравнения.
Мы использовали обученные и существующие модели для кластеризации данных «без учителя» — документы были распределены по нескольким кластерам.
Нам не удалось добиться «четкого» разделения на кластеры, в максимальном приближении можно сказать, что кластеры образовались по типу и сложности документов:
- - договоры;
- - договоры с приложениями;
- - договоры поставки;
- - и т.д.
В итоге, без соответствующего дообучения для наших и существующих моделей все юридические документы «одинаковы», то есть, не имеют выраженных отстоящих кластеров.
Однако, обучив модели для классификации, мы обнаружили устойчивые положительные результаты — система по тексту абзаца может определить, к какому «разделу договора» он относится или должен относиться.
Перевод с юридического на русский
В работе мы также попробовали решить еще одну «странную» задачу — научить модели переводить документы с юридического на русский.
Для этого мы использовали нашу обученную модель для поиска семантической близости предложений из условно «юридического корпуса» в «общей лексике» русского языка.
Как оказалось, используемые модели показали близкие по метрикам результаты, но лучше всего проявила себя модель с архитектурой Electra — максимальная скорость и качество.