Как работает распознавание элементов
Распознавание элементов, также называемое Распознаванием именованных элементов (NER) - процесс извлечения информации из последовательностей, параграфов, текстовых отчетов и других форм неструктурированного текста. Группа инструментов Анализ текста в наборе инструментов GeoAI содержит инструменты, которые используют методы обработки естественного языка (NLP) для обучения моделей распознавания элементов и использование этих моделей для извлечения элементов из неструктурированного текста.
Инструмент Обучить модель распознавания элемента обучает модели NLP для извлечения предопределенного набора элементов (таких как организация, персона, дата или страна) указанного как часть обучающего набора данных. Обученные модели распознавания элементов можно использовать вместе с инструментом Извлечь элементы при помощи глубокого обучения для извлечения этих элементов из необработанного текста в структурированный формат.
Возможное применение
Ниже приведены потенциальные варианты применения этого инструмента:
Извлечение таких данных, как местоположение, сотрудник, сообщивший о преступлении, или использованное оружие, из отчетов о преступлениях. Это может помочь выявить тенденции и спланировать действия по улучшению ситуации.
Такую информацию, как местоположение или необходимость в помощи, можно извлечь из твитов или сообщений в социальных сетях. Это может помочь определить области, где требуется немедленная помощь во время стихийного бедствия.

Модели распознавания элементов в ArcGIS основаны на архитектуре Transformer, которая работает на среде Embed, encode, attend, predict (встраивание, кодирование, отслеживание, прогнозирование).
Embed — в этом процессе входной текст преобразуется в уплотненные вставки слов. Эти вставки захватывают семантическую информацию из входного текста, и с ними гораздо проще работать в модели.

Encode — в этом процессе контекст кодируется векторами слов. Это делается с помощью сверточных нейронных сетей остаточной триграммы (CNN).

Attend — выходная матрица из предыдущего шага редуцируется до одиночного вектора, который передается для процесса прогнозирования по стандартной сети прямого распространения. Этот шаг имеет тот же эффект, что и механизм внимания.

Predict — последний шаг в модели - выполнение прогнозирования на основании входного текста. Это вектор слоя attention, прошедший через многослойный персептрон и возвращающий ID надписи элемента.

Бэкэнд на базе трансформаторов использует архитектуру, предложенную Васвани и др. в статье " Attention Is All You Need." Это позволяет моделям быть более точными и распараллеливаемыми, при этом требуя меньше размеченных данных для обучения. Внутренне модели распознавания элементов на основе преобразователей в ArcGIS состоят из двух компонентов:
Encoder — кодировщик служит основой модели и преобразует входной текст в представление объектов в виде векторов фиксированного размера. Эти модели используют известные схемы кодирования BERT, ALBERT и RoBERTa, которые основываются на архитектуре преобразователя и предварительно обучают большие объемы текста.
Классификатор уровня токена — классификатор уровня токена служит головным элементом модели и классифицирует представление объектов каждого токена по нескольким категориям, представляющим различные элементы. Классификатор часто представляет собой простой линейный слой в нейронной сети.

Модели распознавания элементов в ArcGIS также поддерживают модель Mistral. Mistral — это большая языковая модель, основанная на архитектуре трансформера и работающая только как модель декодера. Ключевые компоненты архитектуры Mistral включают в себя следующее:
Sliding Window Attention — эффективно обрабатывает длинные тексты, обрабатывая их в виде более мелких, перекрывающихся сегментов, что снижает вычислительные затраты и использование памяти, сохраняя при этом важный контекст.
Grouped Query Attention — повышает эффективность за счет кластеризации похожих запросов, что минимизирует объем вычислений внимания и ускоряет обработку.
Токенизатор Byte-Fallback BPE (Byte Pair Encoding) — преобразует текст в токены для обработки моделью.
Примечание:
Модели НЛП могут быть мощными инструментами при автоматизации анализа огромных объемов неструктурированного текста. Как и в случае с другими типами моделей, следует позаботиться о том, чтобы они применялись к соответствующим задачам, с необходимым уровнем контроля со стороны человека и прозрачностью в отношении типа модели и обучающих наборов данных, используемых для обучения модели.
Использование модели распознавания элементов
Вы можете использовать инструмент Извлечь элементы при помощи глубокого обучения, чтобы применить обученную модель распознавания элементов к неструктурированному тексту и извлечь полезную информацию в форме структурированных данных. Вы можете использовать предварительно обученные модели распознавания из ArcGIS Living Atlas of the World или обучить свои собственные модели, используя инструмент Обучение модели распознавания элемента.
Входными данными для инструмента Извлечь элементы при помощи глубокого обучения является папка, содержащая текстовые файлы или текстовый столбец в классе объектов или таблице, в которых будет выполняться распознавание именованных элементов. Входной моделью может быть JSON-файл определения модели Esri (.emd) или пакет модели глубокого обучения (.dlpk). Модель содержит путь к файлу модели глубокого обучения (содержащему веса модели) и другим параметрам модели. Некоторые модели могут иметь дополнительные аргументы модели:
Инструмент создает таблицу, содержащую извлеченные элементы из каждого текста. Если указан локатор и модель извлечет адреса, класс пространственных объектов будет создан путем геокодирования извлеченных адресов. Если текстовый файл содержит несколько адресов, объект будет создан путем геокодирования каждого адреса и репликации других элементов для этого текстового файла.
Хотя инструмент может работать на ЦПУ, для обработки рекомендуется использовать графический процессор, так как глубокое обучение требует больших вычислительных затрат. Чтобы запустить этот инструмент с использованием графического процессора, установите для параметра среды Тип процессора значение GPU. Если у вас более одного графического процессора, вместо этого задайте для параметра среды значение GPU ID.
Обучение модели распознавания элементов
Вы можете использовать инструмент Обучить модель распознавания элемента для обучения моделей NLP для распознавания именованных элементов. Этот инструмент использует подход машинного обучения и обучает модель, предоставляя ей обучающие выборки, состоящие из пар входного текста и маркированных объектов в этом тексте. Благодаря опорной модели Mistral, он использует контекстное обучение, направляя понимание модели и ее ответы с помощью входных подсказок и предоставляя модели конкретные примеры, которые помогают делать выводы о желаемом результате. Обучение моделей NLP требует больших вычислительных затрат, рекомендуется использовать графический процессор (GPU).
Входными данными могут быть следующие:
Класс пространственных объектов или таблица, содержащая текстовое поле с входным текстом для модели и помеченные элементы, где выбранное текстовое поле будет использоваться в качестве входного текста для модели, а остальные поля будут рассматриваться как метки именованных элементов.
Папка, содержащая обучающие данные в формате стандартных наборов данных для задач NER. Обучающие данные должны быть в файле
.jsonили.csv. Формат файла определяет тип набора данных входных данных.Если входными данными является папка, поддерживаются следующие типы наборов данных:
ner_json — папка с обучающими данными должна содержать файл
.jsonс текстовыми записями и метками, отформатированными с использованием формата обучения spaCy JSON.IOB — формат IOB (теги I - inside, O - outside, B - beginning), предлагаемый Ramshaw и Marcus в статье Text Chunking using Transformation-Based Learning.
Папка обучающих данных должна содержать следующие два файла
.csv:tokens.csv— содержит текст в виде входных фрагментовtags.csv— содержит теги IOB для текстовых фрагментов
BILUO — расширение формата IOB, которое дополнительно содержит теги L - last и U - unit.
Папка обучающих данных должна содержать следующие два файла
.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 для обработки разнообразных текстовых входных данных.
Обучение модели происходит пакетами, а параметр размера пакета указывает количество обучающих выборок, которые обрабатываются для обучения одновременно. Увеличение размера пакета может повысить производительность инструмента, но по мере его увеличения используется все больше памяти. При появлении ошибки переполнения памяти в процессе обучения модели используйте меньший размер пакета.
Параметр Скорость обучения является одним из наиболее важных гиперпараметров. Он представляет собой скорость, с которой веса модели будут скорректированы в процессе тренировки. Если вы укажете низкую скорость обучения, модель будет улучшаться постепенно, и обучение может занять много времени, что приведет к потерям времени и ресурсов. Высокая скорость обучения может оказаться контрпродуктивной, и модель будет плохо обучаться. При высоких скоростях обучения веса модели могут быть резко скорректированы, что приведет к получению ошибочных результатов. Часто рекомендуется не указывать значение для параметра Скорость обучения, чтобы инструмент подобрал ее автоматически, как описано в статье Cyclical Learning Rates for Training Neural Networks, Leslie N. Smith.
Инструмент использует часть обучающих данных в качестве проверочного набора. Параметр Процент проверки позволяет настроить количество обучающих данных, используемых для проверки. Для модели Mistral не менее 50 процентов данных необходимо зарезервировать для проверки, поскольку Mistral требует меньшего обучающего набора и полагается на больший проверочный набор для оценки производительности модели.
По умолчанию инструмент использует метод ранней остановки, который вызывает остановку обучения модели, если модель не улучшается в последующие периоды обучения. Вы можете изменить это поведение, сняв отметку Завершить, когда модель перестанет улучшаться.
Вы можете также указать, будут ли закреплены опорные слои в предварительно обученной модели, чтобы веса и смещения оставались такими, как они были изначально задуманы. По умолчанию слои опорной модели не закреплены, а веса и смещения параметра Опорная модель можно изменить, чтобы они соответствовали обучающим выборкам. Это требует больше времени для обработки, но обычно дает лучшие результаты.
Ресурсы
Дополнительную информацию см. здесь:
"Attention Is All You Need" by Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia Polosukhin on arXivLabs at Cornell University
Honnibal, Matthew. "Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models." https://explosion.ai/blog/deep-learning-formula-nlp.
Devlin, Jacob, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. "Fully Understanding the Hashing Trick." May 22, 2018. https://arxiv.org/pdf/1805.08539.pdf.
Devlin, Jacob, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." May 24, 2019. https://arxiv.org/pdf/1810.04805.pdf.
Smith, Leslie N. "Cyclical Learning Rates for Training Neural Networks." April 4, 2017. https://doi.org/10.48550/arxiv.1506.01186.
Ramshaw, Lance, and Mitch Marcus. "Text Chunking using Transformation-Based Learning." 1995. In Third Workshop on Very Large Corpora.
"Mistral." https://docs.mistral.ai/getting-started/open_weight_models/.