Как работает Распознавание элементов

Распознавание элементов, также известное как распознавание именованных элементов (NER), представляет собой процесс извлечения информации из предложений, абзацев, текстовых отчетов или других форм неструктурированного текста. Группа инструментов Анализ текста в наборе инструментов GeoAI содержит инструменты, которые используют методы обработки естественного языка (NLP) для обучения моделей распознавания элементов и использования этих моделей для извлечения элементов из неструктурированного текста.

Инструмент Обучить модель распознавания элемента обучает модели NLP для извлечения предопределенного набора элементов (таких как организация, персона, дата или страна) указанного как часть обучающего набора данных. Обученные модели распознавания элементов можно использовать с инструментом Извлечь элементы при помощи глубокого обучения для извлечения этих элементов из необработанного текста в структурированный формат.

Возможное применение

Ниже приведены потенциальные варианты применения этого инструмента:

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

Модели распознавания элементов в ArcGIS основаны на архитектуре Transformer, которая работает на среде Embed, encode, attend, predict (встраивание, кодирование, отслеживание, прогнозирование).

  • Встраивание — в этом процессе входной текст преобразуется в плотные вектора представления слов. Эти вектора собирают семантическую информацию из входного текста, и модели намного проще работать с ними.
    Рабочий процесс Встраивание
  • Кодирование — в этом процессе контекст кодируется в вектор слова. Это делается с помощью сверточных нейронных сетей с остаточными триграммами (CNN).
    Рабочий процесс Кодирование
  • Отслеживание — выходные данные матрицы из предыдущего шага сводятся к одному вектору, который будет передан для прогнозирования в стандартную сеть с прямой связью. Этот шаг имеет тот же эффект, что и механизм внимания.
    Рабочий процесс Отслеживание
  • Прогнозирование — последний шаг в модели — это прогнозирование на основе входного текста. Здесь вектор из слоя внимания передается в многослойный персептрон для вывода идентификатора надписи объекта.
    Рабочий процесс Прогнозирование

Внутренний компонент на базе transformer использует архитектуру, предложенную Васвани и др. в статье ”Attention Is All You Need”. Она позволяет моделям быть более точными и распараллеливаемыми, но при этом для обучения требуются менее точно размеченные данные. Внутри ArcGIS модели распознавания элементов на основе transformer состоят из двух компонентов:

  • Кодировщик — кодировщик служит опорой модели и преобразует входной текст в представление объекта в виде векторов фиксированного размера. В модели используются известные кодировщики, такие как BERT, ALBERT и RoBERTa, основанные на архитектуре преобразования и предварительно обученные на больших объемах текста.
  • Классификатор на уровне токенов - Классификатор на уровне токенов служит головной частью модели и классифицирует представление объекта каждого токена по нескольким категориям, представляющим различные элементы. Классификатор часто представляет собой простой линейный слой в нейронной сети.
Компоненты модели распознавания элементов

Модели распознавания элементов в ArcGIS также поддерживают модель Mistral. Mistral — это большая языковая модель, основанная на архитектуре трансформера и работающая только как модель декодера. Ключевые компоненты архитектуры Mistral включают в себя следующее:

  • Sliding Window Attention — эффективно обрабатывает длинные тексты, обрабатывая их в виде более мелких, перекрывающихся сегментов, что снижает вычислительные затраты и использование памяти, сохраняя при этом важный контекст.
  • Grouped Query Attention — повышает эффективность за счет кластеризации похожих запросов, что минимизирует объем вычислений внимания и ускоряет обработку.
  • Токенизатор Byte-Fallback BPE (Byte Pair Encoding) — преобразует текст в токены для обработки моделью.
Примечание:

Модель NLP может быть мощным инструментом при автоматизации анализа огромных объемов неструктурированного текста. Как и в случае с моделями другого типа, убедитесь, что они применяются к соответствующим задачам с надлежащим уровнем человеческого контроля и прозрачности в отношении типа модели и обучающих наборов данных, используемых для обучения модели.

Используйте модели распознавания элементов

Вы можете использовать инструмент Извлечь элементы при помощи глубокого обучения, чтобы применить обученную модель распознавания элементов к неструктурированному тексту и извлечь из него полезную информацию в виде структурированных данных. Вы можете использовать предварительно обученные модели распознавания элементов из ArcGIS Living Atlas of the World или обучить свои собственные модели с помощью инструмента Обучение модели распознавания элементов.

Входными данными для инструмента Извлечь элементы при помощи глубокого обучения является папка, содержащая текстовые файлы или текстовый столбец в классе объектов или таблице, в которых будет выполняться распознавание именованных элементов. Входной моделью может быть файл определения модели Esri JSON (.emd) или пакет модели глубокого обучения (.dlpk). Модель содержит путь к файлу модели глубокого обучения (содержащему веса модели) и другие параметры модели. Некоторые модели могут иметь дополнительные аргументы модели.

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

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

Обучение моделей распознавания элементов

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

Входными данными могут быть следующие:

  • Класс пространственных объектов или таблица, содержащая текстовое поле с входным текстом для модели и помеченные элементы, где выбранное текстовое поле будет использоваться в качестве входного текста для модели, а остальные поля будут рассматриваться как метки именованных элементов.
  • Папка содержит обучающие данные в виде стандартных наборов данных для задач NER. Обучающие данные должны быть в виде файлов .json или .csv. Формат файлов определяет тип входного набора данных.
    • Если входными данными является папка, поддерживаются следующие типы наборов данных:
      • ner_json — папка с данными для обучения должна содержать файл .json с текстовыми записями и метками, отформатированными с использованием формата обучения spaCy JSON.
      • IOB - формат IOB (I - внутри, O - снаружи, B - открывающие теги), предложенный Ramshaw и Marcus в статье Text Chunking using Transformation-Based Learning.

        Папка с данными для обучения должна содержать два следующих файла .csv:

        • tokens.csv — содержит текст в виде входных фрагментов
        • tags.csv — содержит теги IOB для текстовых фрагментов
      • BILUO - расширение формата IOB, который дополнительно содержит теги L - последний и U - единица измерения.

        Папка с данными для обучения должна содержать два следующих файла .csv:

        • tokens.csv — содержит текст в виде входных фрагментов
        • tags.csv — содержит теги BILUO для текстовых фрагментов

При обучении модели распознавания элементов вы можете обучить модель с нуля, дополнительно настроить уже обученную модель или использовать контекстное обучение.

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

Предварительно обученная модель может быть файлом определения модели Esri (.emd) или файлом пакета глубокого обучения (.dlpk). Выходная модель также сохраняется в этих форматах в указанной папке Выходная модель.

Модели распознавания элементов в ArcGIS обрабатывают элементы адреса иначе, чем другие элементы. Если элемент должен рассматриваться как местоположение, он должен быть указан как элемент адреса в параметрах инструмента. Во время логического вывода эти элементы геокодируются с использованием указанного локатора, и в результате процесса извлечения элементов создается класс пространственных объектов. Если локатор не указан, либо обучающая модель не извлекла элементы адресов, то вместо этого будет создана таблица с извлеченными элементами.

Обучение моделей глубокого обучения представляет собой итеративный процесс, в котором входные обучающие данные несколько раз пропускаются через нейронную сеть. Каждый обучающий проход по всем обучающим данным известен как эпоха. Параметр Максимальное число эпох указывает максимальное количество раз, когда обучающие данные просматриваются моделью во время ее обучения. Это зависит от обучаемой модели, сложности задачи и количества обучающих выборок. Если у вас много обучающих выборок, вы можете использовать небольшое значение. В общем, рекомендуется продолжать обучение в течение нескольких эпох снова и снова, пока потери при проверке продолжают снижаться.

Параметр Опорная модель указывает предварительно сконфигурированную нейронную сеть, которая служит кодировщиком для модели и извлекает представления объектов входного текста. Этот параметр поддерживает кодировщики на основе BERT, ALBERT и RoBERTa, основанные на архитектуре преобразования и предварительно обученные на больших объемах текста полуконтролируемым образом. Параметр опорной модели также поддерживает большую языковую модель Mistral (LLM). Mistral — это преобразователь, работающий только с декодером, который использует Sliding Window Attention для эффективной обработки длинных текстов, Grouped Query Attention для оптимизации вычислений и Byte-Fallback BPE Tokenizer для обработки разнообразных текстовых входных данных.

Обучение модели происходит пакетами, а параметр размера пакета указывает количество обучающих выборок, которые обрабатываются для обучения одновременно. Увеличение размера пакета может улучшить производительность инструмента, но при этом увеличение размера пакета приводит к расходованию большего объема памяти. Если во время обучения модели возникает ошибка нехватки памяти, используйте меньший размер пакета.

Параметр Скорость обучения — один из самых важных гиперпараметров. Это скорость, с которой вес модели корректируется во время обучения. Если вы укажете низкую скорость обучения, модель будет улучшаться медленно, и обучение может занять много времени, что приведет к излишней трате времени и ресурсов. Высокая скорость обучения может быть контрпродуктивной, и модель может плохо обучаться. При высоких скоростях обучения веса модели могут резко измениться, что приведет к ошибочным результатам. Часто лучше не указывать значение параметра Скорость обучения, так как инструмент использует автоматический определитель скорости обучения, основанный на статье Лесли Н. Смит "Циклические скорости обучения для обучения нейронных сетей".

Инструмент использует часть обучающих данных в качестве проверочного набора. Параметр Процент для проверки позволяет настроить количество обучающих данных, которые будут использоваться для проверки. Для модели Mistral не менее 50 процентов данных необходимо зарезервировать для проверки, поскольку Mistral требует меньшего обучающего набора и полагается на больший проверочный набор для оценки производительности модели.

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

Вы также можете указать, будут ли закреплены опорные слои в предварительно обученной модели, чтобы веса и смещения оставались такими, как они были изначально разработаны. По умолчанию слои опорной модели не закрепляются, а веса и смещения значения Опорная модель могут изменяться, чтобы соответствовать обучающим выборкам. Это требует больше времени для обработки, но обычно дает лучшие результаты.

Ресурсы

Дополнительную информацию см. здесь:

"Attention Is All You Need", Ашиш Васвани, Ноам Шазир, Ники Пармар, Якоб Ушкорейт, Ллайон Джонс, Эйдан Н. Гомес, Лукаш Кайзер и Илья Полосухин на arXivLabs в Корнельском университете

Хоннибал, Мэтью. "Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models." https://explosion.ai/blog/deep-learning-formula-nlp.

Девлин, Джейкоб, Мин-Вей Чанг, Кентон Ли и Кристина Тутанова. "Fully Understanding the Hashing Trick." Май 22, 2018. https://arxiv.org/pdf/1805.08539.pdf.

Девлин, Джейкоб, Мин-Вей Чанг, Кентон Ли и Кристина Тутанова. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." Май 24, 2019. https://arxiv.org/pdf/1810.04805.pdf.

Смит, Лесли Н. "Cyclical Learning Rates for Training Neural Networks." 4 апреля, 2017. https://doi.org/10.48550/arxiv.1506.01186.

Рэмшоу, Лэнс и Митч Маркус. "Text Chunking using Transformation-Based Learning." 1995. 3-й семинар Very Large Corpora.

"Mistral." https://docs.mistral.ai/getting-started/open_weight_models/.