SPYSEL
@SPYSEL
Хобби-программист. Изучаю этот многогранный мир!

Нейросеть для получения информации из документа?

Здравствуйте уважаемые товарищи программисты!
Возникла такая задача: Написать нейросеть, которая будет работать с документами(текстом) и доставать от туда ряд определенных значений(начиная от числового значения ИНН, заканчивая рядом пунктов договора) и выводить их. После достаточного времени с GPT - 4 и обычным поисковиком, после проб разных библиотек и использования разных нейронных сетей (RNN, LSTM, transformer) я не достиг результата. Может выборка маленькая(1000), может я что то не так делаю. Я бы хотел получить ответ на эти вопросы:
1. Какая библиотека должна использоваться?
2. С помощью какого метода и как правильно преобразовывать данные? (Понятный язык для нейросети)(Векторизация и токенизация))
3. Какой вид нейронной сети использовать? (RNN или LSTM например)
4. Есть ли смысл обучать нейросеть с 0 и не использовать готовые обученные модели? (BERT, ELECTRA, ALBERT)
  • Вопрос задан
  • 540 просмотров
Решения вопроса 1
@rPman
нейросеть распознающую смысл текста
на текущий момент этим занимаются Large Language Models, из открытых лучшие универсальные это opt и bloomz и они слабее даже llama но как основу их можно брать.

Языковые модели fine-tuning на примерах (буквально, размечаешь десятки-сотни пар данных: текст - ответ), и затем такую обученную сеть или комбаин (есть peft, который позволяет тюнить не веса модели а веса запроса, я слушал лекцию от яндекса, ребята там говорили что это очень выгодно по ресурсам и удобно, не трогать веса модели).

Если есть возможность и деньги, использовать chatgpt4, то она позволит простыми вопросами (почти такими же как к человеку, который решал бы твою задачу) решить задачу, еще не всем там доступен прямо ввод pdf документа но как я понял скоро будет доступен всем (кроме России само собой).

p.s. я пробовал на процессоре крутить llama и основанные на ней модели типа open assistent (не бери llm меньше 30B) для похожей задачи (объем документа ограничен 2к токенов, примерно 1.5к слов, можно многоуровневыми запросами сначала отвечать на вопросы по абзацам, а затем итоговую выжимку собирать и обрабатывать отдельным запросом), с ней работать очень сложно, ответы нужно предварительно чистить от мусора и разрабатывать условия окончания генерации (со стоп токенами там проблема) и работает на процессоре медленно (минуты на запрос) но это самое дешевое решение на текущий момент, доступное оффлайн в принципе, само собой без разрешения facebook пользоваться этим нелегально (как минимум не для исследования)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
Нейронная сети, актуальны для задач где присутствует ВАРИАТИВНОСТЬ. Вы имеете входные данные обозначим их Х вы имеете функцию которая сопоставляет эти данные с выходными данными (извлечь ИНН и другие пункты договора) обозначим их y. Так вот если вариативность отсутствует то данная задача f(X) = y, решается парсингом документа, а не нейронными сетями. Если задача имеет вид f(X) = y + E, где E это случайная ошибка, то нейронная сеть это один из возможных алгоритмов МИНИМИЗАЦИИ этой ошибки, но НЕ полного ее исключения. Так что надо иметь ввиду что 100 процентной точности не добиться. И ответить себе а допустимо ли это.

Что касается твоих вопросов, ну например пункт номер два это целый раздел в машинном обучении. Который содержит в себе несколько подпунктов. И дело это инженерное - а не вот какой то метод решит все мои проблемы. Пункт номер три обе могут быть использованы. Пункт четвертый, а потянешь с нуля. А готовые модели они решат частный кейс твоей проблемы? Откуда нам знать, с какой точностью готовые модели будут извлекать данные. Ну а первый вопрос, это всего лишь api для моделей и выбирать надо ту с которой имеешь опыт работы, какой то лучшей нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы