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

Краткая информация

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

Более подробно о том, как работает Распознавание записей

Использование

  • Для этого инструмента требуются установленные системы глубокого изучения. Чтобы настроить компьютер на работу в среде глубокого обучения в ArcGIS Pro, см. раздел Установка сред глубокого обучения для ArcGIS.

  • Этот инструмент также можно использовать для тонкой настройки существующей обученной модели.

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

  • Входными данными может быть класс объектов или таблица с текстовым полем и именованными метками элементов, либо папка с обучающими данными в файлах .json или .csv.

  • Этот инструмент использует опорные модели на основе преобразователей для обучения моделей NER, а также поддерживает контекстное обучение с подсказками с использованием Mistral LLM. Чтобы установить Mistral backbone, см. ArcGIS Mistral Backbone.

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

Параметры

ПодписьОписаниеТип данных
Входная папка или таблица

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

  • Класс пространственных объектов или таблица, содержащая текстовое поле с входным текстом для модели и помеченные элементы, где выбранное текстовое поле будет использоваться в качестве входного текста для модели, а остальные поля будут рассматриваться как метки именованных элементов.
  • Папка содержит обучающие данные в виде стандартных наборов данных для задач 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 для текстовых фрагментов
Folder; Feature Layer; Table View; Feature Class
Выходная модель

Местоположение выходной папки, в которой будет храниться обученная модель.

Folder
Файл предварительно обученной модели
(Дополнительный)

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

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

File
Элемент адреса
(Дополнительный)

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

String
Максимальное число периодов времени
(Дополнительный)

Максимальное количество периодов времени, для которых будет обучаться модель. Максимальное значение эпохи, равное 1, означает, что набор данных будет передаваться через нейронную сеть один раз. Значение по умолчанию 5.

Long
Опорная модель
(Дополнительный)

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

  • bert-base-casedМодель будет обучена с использованием нейронной сети BERT. Модель BERT предварительно обучена с использованием маскированного языкового моделирования (MLM) и прогнозирования следующего предложения.
  • roberta-baseМодель будет обучена с использованием нейронной сети RoBERTa. RoBERTa изменяет ключевые гиперпараметры модели BERT, удаляя директивы предварительного обучения и обучая следующее предложение небольшими партиями с высокими скоростями обучения.
  • albert-base-v1Модель будет обучена с использованием нейронной сети ALBERT. АЛЬБЕРТ использует самоконтролируемый алгоритм, который фокусируется на моделировании согласованности между предложениями, и обеспечивает лучшую масштабируемость, чем у модели BERT.
  • xlnet-base-casedМодель будет обучена с использованием нейронной сети XLNet. Модель XLNet - генерализованный авторегрессивный метод предварительного обучения. Это обеспечивает двунаправленный обучающий контекст путем максимизации ожидаемой вероятности для всех перестановок порядка факторизации, что устраняет недостатки модели BERT.
  • xlm-roberta-baseМодель будет обучена с использованием нейронной сети XLM-RoBERTa. XLM-RoBERTa - мультиязыковая модель, обученная для 100 различных языков. В отличие от других мультиязыковых моделей XLM, она не требует языковых массивов для идентификации используемого языка, и определяет правильный язык по входным идентификаторам.
  • distilroberta-baseМодель будет обучена с использованием нейронной сети DistilRoBERTa. DistilRoBERTa — это модель английского языка, предварительно обученная под надзором нейронной сети roberta-base, основанной исключительно на OpenWebTextCorpus, воспроизведении набора данных WebText OpenAI.
  • distilbert-base-casedМодель будет обучена с использованием нейронной сети DistilBERT. DistilBERT - небольшая модель, представляющая язык общего назначения.
  • mistralМодель будет обучена с использованием большой языковой модели (LLM) Mistral. Mistral - это преобразование только декодирования, которое использует токенизаторы Sliding Window Attention, Grouped Query Attention и Byte-fallback BPE. Чтобы установить Mistral backbone, см. ArcGIS Mistral Backbone.
String
Размер пакета
(Дополнительный)

Количество обучающих выборок, которые будут обрабатываться за один раз. Значение по умолчанию – 2.

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

Double
Аргументы модели
(Дополнительный)

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

Value Table
Скорость обучения
(Дополнительный)

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

Double
Процент проверки
(Дополнительный)

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

Double
Завершить, когда модель перестанет улучшаться
(Дополнительный)

Определяет, остановится ли обучение модели, если модель больше не улучшается, или обучение продолжится до достижения значения параметра Максимальное число эпох.

  • Отмечено — обучение модели остановится, когда модель перестанет улучшаться, независимо от значения параметра Максимальное число эпох. Это значение по умолчанию
  • Не отмечено — обучение модели будет продолжено, пока не будет достигнуто значение Максимальное число эпох.
Boolean
Сделать опорную модель обучаемой
(Дополнительный)

Указывает, будут ли закреплены опорные слои в предварительно обученной модели, чтобы веса и смещения оставались такими, как они были изначально разработаны.

  • Отмечено — опорные слои не будут закреплены, а веса и смещения параметра Опорная модель могут быть изменены для соответствия обучающим выборкам. Это требует больше времени для обработки, но обычно дает лучшие результаты. Это значение по умолчанию
  • Не отмечено — опорные слои будут закреплены, а предопределенные веса и смещения в значении параметра Опорная модель не будут изменены в ходе обучения.

Boolean
Поле текста

Текстовое поле во входном классе объектов или таблице, содержащее текст, который будет использоваться моделью как входные данные. Этот параметр необходим, если значение параметра Входная папка или таблица - класс пространственных объектов или таблица.

Field
Запрос
(Дополнительный)

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

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

String

arcpy.geoai.TrainEntityRecognitionModel(in_folder, out_model, {pretrained_model_file}, {address_entity}, {max_epochs}, {model_backbone}, {batch_size}, {model_arguments}, {learning_rate}, {validation_percentage}, {stop_training}, {make_trainable}, text_field, {prompt})
ИмяОписаниеТип данных
in_folder

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

  • Класс пространственных объектов или таблица, содержащая текстовое поле с входным текстом для модели и помеченные элементы, где выбранное текстовое поле будет использоваться в качестве входного текста для модели, а остальные поля будут рассматриваться как метки именованных элементов.
  • Папка содержит обучающие данные в виде стандартных наборов данных для задач 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 для текстовых фрагментов
Folder; Feature Layer; Table View; Feature Class
out_model

Местоположение выходной папки, в которой будет храниться обученная модель.

Folder
pretrained_model_file
(Дополнительный)

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

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

File
address_entity
(Дополнительный)

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

String
max_epochs
(Дополнительный)

Максимальное количество периодов времени, для которых будет обучаться модель. Максимальное значение эпохи, равное 1, означает, что набор данных будет передаваться через нейронную сеть один раз. Значение по умолчанию 5.

Long
model_backbone
(Дополнительный)

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

  • bert-base-casedМодель будет обучена с использованием нейронной сети BERT. Модель BERT предварительно обучена с использованием маскированного языкового моделирования (MLM) и прогнозирования следующего предложения.
  • roberta-baseМодель будет обучена с использованием нейронной сети RoBERTa. RoBERTa изменяет ключевые гиперпараметры модели BERT, удаляя директивы предварительного обучения и обучая следующее предложение небольшими партиями с высокими скоростями обучения.
  • albert-base-v1Модель будет обучена с использованием нейронной сети ALBERT. АЛЬБЕРТ использует самоконтролируемый алгоритм, который фокусируется на моделировании согласованности между предложениями, и обеспечивает лучшую масштабируемость, чем у модели BERT.
  • xlnet-base-casedМодель будет обучена с использованием нейронной сети XLNet. Модель XLNet - генерализованный авторегрессивный метод предварительного обучения. Это обеспечивает двунаправленный обучающий контекст путем максимизации ожидаемой вероятности для всех перестановок порядка факторизации, что устраняет недостатки модели BERT.
  • xlm-roberta-baseМодель будет обучена с использованием нейронной сети XLM-RoBERTa. XLM-RoBERTa - мультиязыковая модель, обученная для 100 различных языков. В отличие от других мультиязыковых моделей XLM, она не требует языковых массивов для идентификации используемого языка, и определяет правильный язык по входным идентификаторам.
  • distilroberta-baseМодель будет обучена с использованием нейронной сети DistilRoBERTa. DistilRoBERTa — это модель английского языка, предварительно обученная под надзором нейронной сети roberta-base, основанной исключительно на OpenWebTextCorpus, воспроизведении набора данных WebText OpenAI.
  • distilbert-base-casedМодель будет обучена с использованием нейронной сети DistilBERT. DistilBERT - небольшая модель, представляющая язык общего назначения.
  • mistralМодель будет обучена с использованием большой языковой модели (LLM) Mistral. Mistral - это преобразование только декодирования, которое использует токенизаторы Sliding Window Attention, Grouped Query Attention и Byte-fallback BPE. Чтобы установить Mistral backbone, см. ArcGIS Mistral Backbone.
String
batch_size
(Дополнительный)

Количество обучающих выборок, которые будут обрабатываться за один раз. Значение по умолчанию – 2.

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

Double
model_arguments
[model_arguments,...]
(Дополнительный)

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

Value Table
learning_rate
(Дополнительный)

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

Double
validation_percentage
(Дополнительный)

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

Double
stop_training
(Дополнительный)

Определяет, остановится ли обучение модели, если модель больше не улучшается, или обучение продолжится до достижения значения параметра max_epochs.

  • STOP_TRAININGОбучение модели остановится, когда модель перестанет улучшаться, независимо от значения параметра max_epochs. Это значение по умолчанию
  • CONTINUE_TRAININGОбучение модели будет продолжено, пока не будет достигнуто значение max_epochs.
Boolean
make_trainable
(Дополнительный)

Указывает, будут ли закреплены опорные слои в предварительно обученной модели, чтобы веса и смещения оставались такими, как они были изначально разработаны.

  • TRAIN_MODEL_BACKBONEОпорные слои не будут закреплены, а веса и смещения параметра model_backbone могут быть изменены для соответствия обучающим выборкам. Это требует больше времени для обработки, но обычно дает лучшие результаты. Это значение по умолчанию
  • FREEZE_MODEL_BACKBONEОпорные слои будут закреплены, а предопределенные веса и смещения в значении параметра model_backbone не будут изменены в ходе обучения.
Boolean
text_field

Текстовое поле во входном классе объектов или таблице, содержащее текст, который будет использоваться моделью как входные данные. Этот параметр необходим, если значение параметра in_folder - класс пространственных объектов или таблица.

Field
prompt
(Дополнительный)

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

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

String

Пример кода

TrainEntityRecognitionModel (автономный скрипт)

В следующем примере демонстрируется, как использовать функцию TrainEntityRecognitionModel.

# Name: TrainEntityRecognizer.py
# Description: Train an Entity Recognition model to extract useful entities such as "Address", "Date" from text.  

# Import system modules
import arcpy

arcpy.env.workspace = "C:/textanalysisexamples/data"

# Set local variables
in_folder = "train_data"
out_folder = "test_bio_format"

# Run Train Entity Recognition Model
arcpy.geoai.TrainEntityRecognitionModel(in_folder, out_folder)

Параметры среды

Информация о лицензиях

  • Basic: Нет
  • Standard: Нет
  • Advanced: Да

Связанные разделы