Обучение модели классификации текста (GeoAI)

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

Обучает модель классификации текста с одной или несколькими метками для назначения преднастроенных категорий или меток для неструктурированного текста.

Более подробно о том, как работает Классификация текста

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

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

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

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

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

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

Параметры

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

Класс объектов или таблица, который содержит текстовое поле с входным текстом для модели и поле меток с метками целевого класса.

Feature Layer; Table View
Поле текста

Текстовое поле во входном классе или таблице, содержащее текст, который будет классифицирован моделью.

Field
Поле меток

Текстовое поле во входном классе объектов или таблице, которое содержит метки целевого клсса для обучения модели. В случае классификации текста с несколькими метками укажите более одного текстового поля.

Field
Выходная модель

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

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

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

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

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

Максимальное количество периодов времени, для которых будет обучаться модель. Максимальное значение эпохи, равное 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, репродукции набора данных OpenAI's WebText.
  • distilbert-base-casedМодель будет обучена с использованием нейронной сети DistilBERT. DistilBERT - небольшая модель, представляющая язык общего назначения.
String
Размер пакета
(Дополнительный)

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

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

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

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

См. аргументы ключевых слоев в документации TextClassifier, чтобы посмотреть список поддерживаемых аргументов модели, которые могут быть использованы.

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

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

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

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

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

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

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

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

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

Boolean
Удалить теги HTML
(Дополнительный)

Определяет, будут ли теги HTML удалены из входного текста.

  • Отмечено — теги HTML будут удалены из входного текста. Это значение по умолчанию
  • Не отмечено — теги HTML не будут удалены из входного текста.

Boolean
Удалить URL
(Дополнительный)

Определяет, будут ли адреса URL удалены из входного текста.

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

Boolean

arcpy.geoai.TrainTextClassificationModel(in_table, text_field, label_field, out_model, {pretrained_model_file}, {max_epochs}, {model_backbone}, {batch_size}, {model_arguments}, {learning_rate}, {validation_percentage}, {stop_training}, {make_trainable}, {remove_html_tags}, {remove_urls})
ИмяОписаниеТип данных
in_table

Класс объектов или таблица, который содержит текстовое поле с входным текстом для модели и поле меток с метками целевого класса.

Feature Layer; Table View
text_field

Текстовое поле во входном классе или таблице, содержащее текст, который будет классифицирован моделью.

Field
label_field
[label_field,...]

Текстовое поле во входном классе объектов или таблице, которое содержит метки целевого клсса для обучения модели. В случае классификации текста с несколькими метками укажите более одного текстового поля.

Field
out_model

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

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

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

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

File
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, репродукции набора данных OpenAI's WebText.
  • distilbert-base-casedМодель будет обучена с использованием нейронной сети DistilBERT. DistilBERT - небольшая модель, представляющая язык общего назначения.
String
batch_size
(Дополнительный)

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

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

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

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

См. аргументы ключевых слоев в документации TextClassifier, чтобы посмотреть список поддерживаемых аргументов модели, которые могут быть использованы.

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

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

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

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

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
remove_html_tags
(Дополнительный)

Определяет, будут ли теги HTML удалены из входного текста.

  • REMOVE_HTML_TAGSТеги HTML будут удалены из входного текста. Это значение по умолчанию
  • DO_NOT_REMOVE_HTML_TAGSТеги HTML не будут удалены из входного текста.
Boolean
remove_urls
(Дополнительный)

Определяет, будут ли адреса URL удалены из входного текста.

  • REMOVE_URLSАдреса URL будут удалены из входного текста. Это значение по умолчанию
  • DO_NOT_REMOVE_URLSАдреса URL не будут удалены из входного текста.
Boolean

Пример кода

TrainTextClassificationModel (окно Python)

Пример скрипта в окне Python для использования функции TrainTextClassificationModel.

# Name: TrainTextClassification.py
# Description: Train a text classifier model to classify text in different classes.  
#
# Requirements: ArcGIS Pro Advanced license

# Import system modules
import arcpy
import os

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

# Set local variables
in_table = "training_data_textclassifier.csv"
out_folder = "c\\textclassifier"

# Run Train Text Classification Model
arcpy.geoai.TrainTextClassificationModel(in_table, out_folder, 
            max_epochs=2, text_field="Address", label_field="Country", batch_size=16)

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

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

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

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