训练文本转换模型 (GeoAI)

摘要

训练文本转换模型以转换、翻译或汇总文本。

了解有关“文本转换”工作原理的详细信息

使用情况

  • 该工具要求安装深度学习框架。 要设置计算机以在 ArcGIS AllSource 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架

  • 该工具还可用于对现有经过训练的模型进行微调。

  • 要使用 GPU 运行此工具,请将处理器类型环境设置为 GPU。 如果您具有多个 GPU,还可以指定 GPU ID 环境。

  • 该工具的输入是包含训练数据的表或要素类,其中文本字段包含输入文本,标注字段包含转换的文本。

  • 有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题

参数

标注说明数据类型
输入表

要素类或表,其中包含带有模型输入文本的文本字段和包含目标转换文本的标注字段。

Feature Layer; Table View
文本字段

输入要素类或表中的文本字段,其中包含将按模型转换的输入文本。

Field
标注字段

输入要素类或表中的文本字段,其中包含用于训练模型的目标转换文本。

Field
输出模型

将存储经训练模型的输出文件夹位置。

Folder
预训练模型文件
(可选)

将用于微调新模型的预训练模型。 输入可以是 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。

可以对执行类似任务的预训练模型进行微调以适应训练数据。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。

File
最大轮数
(可选)

将用于训练模型的最大轮数。 最大轮数值为 1 意味着数据集将通过神经网络向前和向后传递一次。 默认值为 5。

Long
模型骨干
(可选)

指定要用作训练新模型的架构的、预先配置的神经网络。

  • t5-small该新模型将使用 T5 神经网络进行训练。 T5 是一个统一的框架,可以将每个语言问题转换为文本到文本格式。t5-small 是 T5 的小型变体。
  • t5-base该新模型将使用 T5 神经网络进行训练。 T5 是一个统一的框架,可以将每个语言问题转换为文本到文本格式。t5-base 是 T5 的中型变体。
  • t5-large该新模型将使用 T5 神经网络进行训练。 T5 是一个统一的框架,可以将每个语言问题转换为文本到文本格式。t5-large 是 T5 的大型变体。
String
批处理大小
(可选)

一次需要处理的训练样本数。 默认值为 2。

增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。 如果发生内存不足错误,请使用较小的批处理大小。

Double
模型参数
(可选)

用于初始化模型的其他参数(例如,用于训练数据的最大序列长度的 seq_len)将被考虑用于训练模型。

有关可以使用的受支持模型参数列表,请参阅 SequenceToSequence 文档中的关键字参数。

Value Table
学习率
(可选)

指示在训练过程中将调整多少模型权重的步长。 如果未指定值,将自动推断出最佳学习率。

Double
验证百分比
(可选)

将用于验证模型的训练样本的百分比。 默认值为 10。

Double
当模型停止改进时停止
(可选)

指定模型训练是在模型不再改进时停止还是直至达到最大轮数参数值时才停止。

  • 选中 - 当模型不再改进时,无论所指定的最大轮数参数值是什么,模型训练都将停止。 这是默认设置。
  • 未选中 - 模型训练将一直持续,直至达到最大轮数参数值为止。
Boolean
将模型骨干设置为可训练
(可选)

指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。

  • 选中 - 不会冻结骨干图层,模型骨干参数值的权重和偏差可能会进行更改以更好地适合您的训练样本。 这将需要花费更多的时间来处理,但通常会产生更好的结果。 这是默认设置。
  • 未选中 - 将冻结骨干图层,在训练过程中不会更改预定义的模型骨干参数值的权重和偏差。

Boolean
移除 HTML 标签
(可选)

指定是否将从输入文本中移除 HTML 标签。

  • 选中 - 输入文本中的 HTML 标签将被移除。 这是默认设置。
  • 未选中 - 输入文本中的 HTML 标签不会被移除。

Boolean
移除 URL
(可选)

指定是否将从输入文本中移除 URL。

  • 选中 - 输入文本中的 URL 将被移除。 这是默认设置。
  • 未选中 - 输入文本中的 URL 不会被移除。

Boolean

arcpy.geoai.TrainTextTransformationModel(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

输入要素类或表中的文本字段,其中包含用于训练模型的目标转换文本。

Field
out_model

将存储经训练模型的输出文件夹位置。

Folder
pretrained_model_file
(可选)

将用于微调新模型的预训练模型。 输入可以是 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。

可以对执行类似任务的预训练模型进行微调以适应训练数据。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。

File
max_epochs
(可选)

将用于训练模型的最大轮数。 最大轮数值为 1 意味着数据集将通过神经网络向前和向后传递一次。 默认值为 5。

Long
model_backbone
(可选)

指定要用作训练新模型的架构的、预先配置的神经网络。

  • t5-small该新模型将使用 T5 神经网络进行训练。 T5 是一个统一的框架,可以将每个语言问题转换为文本到文本格式。t5-small 是 T5 的小型变体。
  • t5-base该新模型将使用 T5 神经网络进行训练。 T5 是一个统一的框架,可以将每个语言问题转换为文本到文本格式。t5-base 是 T5 的中型变体。
  • t5-large该新模型将使用 T5 神经网络进行训练。 T5 是一个统一的框架,可以将每个语言问题转换为文本到文本格式。t5-large 是 T5 的大型变体。
String
batch_size
(可选)

一次需要处理的训练样本数。 默认值为 2。

增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。 如果发生内存不足错误,请使用较小的批处理大小。

Double
model_arguments
[model_arguments,...]
(可选)

用于初始化模型的其他参数(例如,用于训练数据的最大序列长度的 seq_len)将被考虑用于训练模型。

有关可以使用的受支持模型参数列表,请参阅 SequenceToSequence 文档中的关键字参数。

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

代码示例

TrainTextTransformationModel(Python 窗口)

以下 Python 窗口脚本演示了如何使用 TrainTextTransformationModel 函数。

# Name: TrainTextTransformation.py
# Description: Train a sequence-to-sequence model to translate text from English to German.  
#
# Requirements: ArcGIS Pro Advanced license

# Import system modules
import arcpy
import os

# Set local variables
in_table = "training_data.csv"
out_folder = "c\\texttransformer"

# Run Train Text Transformation Model
arcpy.geoai.TrainTextTransformationModel(in_table, out_folder, max_epochs=2,
         text_field="input", label_field="target", batch_size=16)