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

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

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

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

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

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

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

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

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

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

Параметры

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

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

Feature Layer; Table View
Текстовое поле

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

Field
Поле надписи

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

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

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

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

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

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

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

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

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

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

  • на основе bert-base-casedМодель будет обучена с использованием нейронной сети BERT. Предварительное обучение BERT проводится с использованием задачи моделирования языка по маске и предсказания следующего предложения.
  • на основе roberta-baseМодель будет обучена с использованием нейронной сети RoBERTa. RoBERTa изменяет ключевые гиперпараметры BERT, устраняя цель предварительного обучения и обучая следующему предложению небольшими пакетами и с более высокой скоростью обучения.
  • на основе albert-base-v1Модель будет обучена с использованием нейронной сети ALBERT. ALBERT использует самоконтролируемую потерю, которая фокусируется на моделировании связности между предложениями, что приводит к лучшей масштабируемости по сравнению с BERT.
  • на основе xlnet-base-casedМодель будет обучена с использованием нейронной сети XLNet. XLNet — это обобщенный метод предварительной тренировки с авторегрессией. Он позволяет изучать двунаправленные контексты, максимизируя ожидаемую вероятность для всех перестановок порядка факторизации, что устраняет недостатки модели BERT.
  • на основе xlm-roberta-baseМодель будет обучена с использованием нейронной сети XLM-RoBERTa. XLM-RoBERTa — это многоязычная модель, обученная на 100 различных языках. В отличие от некоторых многоязычных моделей XLM, она не требует языковых тензоров, чтобы понять, какой язык используется, и определяет правильный язык по входным идентификаторам.
  • на основе distilroberta-baseМодель будет обучена с использованием нейронной сети DistilRoBERTa. DistilRoBERTa — это англоязычная модель, предварительно обученная на основе roberta-base исключительно на Open Web Text Corpus, воспроизведении набора данных WebText от OpenAI.
  • на основе distilbert-base-casedМодель будет обучена с использованием нейронной сети DistilBERT. Distillery — это уменьшенная модель языкового представления общего назначения.
String
Размер пакета
(Дополнительный)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Указывает, будут ли HTML-теги удалены из входного текста.

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

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

Указывает, будут ли 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 проводится с использованием задачи моделирования языка по маске и предсказания следующего предложения.
  • roberta-baseМодель будет обучена с использованием нейронной сети RoBERTa. RoBERTa изменяет ключевые гиперпараметры BERT, устраняя цель предварительного обучения и обучая следующему предложению небольшими пакетами и с более высокой скоростью обучения.
  • albert-base-v1Модель будет обучена с использованием нейронной сети ALBERT. ALBERT использует самоконтролируемую потерю, которая фокусируется на моделировании связности между предложениями, что приводит к лучшей масштабируемости по сравнению с BERT.
  • xlnet-base-casedМодель будет обучена с использованием нейронной сети XLNet. XLNet — это обобщенный метод предварительной тренировки с авторегрессией. Он позволяет изучать двунаправленные контексты, максимизируя ожидаемую вероятность для всех перестановок порядка факторизации, что устраняет недостатки модели BERT.
  • xlm-roberta-baseМодель будет обучена с использованием нейронной сети XLM-RoBERTa. XLM-RoBERTa — это многоязычная модель, обученная на 100 различных языках. В отличие от некоторых многоязычных моделей XLM, она не требует языковых тензоров, чтобы понять, какой язык используется, и определяет правильный язык по входным идентификаторам.
  • distilroberta-baseМодель будет обучена с использованием нейронной сети DistilRoBERTa. DistilRoBERTa — это англоязычная модель, предварительно обученная на основе roberta-base исключительно на Open Web Text Corpus, воспроизведении набора данных WebText от OpenAI.
  • distilbert-base-casedМодель будет обучена с использованием нейронной сети DistilBERT. Distillery — это уменьшенная модель языкового представления общего назначения.
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_TAGSHTML-теги во входном тексте будут удалены. Используется по умолчанию.
  • DO_NOT_REMOVE_HTML_TAGSHTML-теги во входном тексте удалены не будут.
Boolean
remove_urls
(Дополнительный)

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

  • REMOVE_URLSURL-адреса во входном тексте будут удалены. Используется по умолчанию.
  • DO_NOT_REMOVE_URLSURL-адреса во входном тексте удалены не будут.
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)

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