标注 | 说明 | 数据类型 |
输入表 | 要素类或表,其中包含带有模型输入文本的文本字段和包含目标转换文本的标注字段。 | Feature Layer; Table View |
文本字段 | 输入要素类或表中的文本字段,其中包含将按模型转换的输入文本。 | Field |
标注字段 | 输入要素类或表中的文本字段,其中包含用于训练模型的目标转换文本。 | Field |
输出模型 | 将存储训练模型的输出文件夹位置。 | Folder |
预训练模型文件 (可选) | 将用于微调新模型的预训练模型。 输入可以是 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。 可以对执行类似任务的预训练模型进行微调以适应训练数据。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。 | File |
最大轮数 (可选) | 将用于训练模型的最大轮数。 最大轮数值为 1 意味着数据集将通过神经网络传递一次。 默认值为 5。 | Long |
模型骨干 (可选) | 指定要用作训练新模型的架构的、预先配置的神经网络。
| String |
批处理大小 (可选) | 一次需要处理的训练样本数。 默认值为 2。 增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。 如果发生内存不足错误,请使用较小的批处理大小。 | Double |
模型参数 (可选) | 将用于初始化模型的附加参数。 受支持的模型参数为 sequence_length,此参数用于设置训练数据的最大序列长度,将被考虑用于训练模型。 | Value Table |
学习率 (可选) | 指示在训练过程中将调整多少模型权重的步长。 如果未指定值,将自动派生出最佳学习率。 | Double |
验证百分比 (可选) | 将用于验证模型的训练样本的百分比。 对于基于转换器的模型骨干,默认值为 10;对于 Mistral 骨干,默认值为 50。 | Double |
当模型停止改进时停止 (可选) | 指定模型训练是在模型不再改进或继续时停止还是直至达到最大轮数参数值时才停止。
| Boolean |
将模型骨干设置为可训练 (可选) | 指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。
| Boolean |
移除 HTML 标签 (可选) | 指定是否将从输入文本中移除 HTML 标签。
| Boolean |
移除 URL (可选) | 指定是否将从输入文本中移除 URL。
| Boolean |
提示 (可选) | 特定输入或指令用于指导大型语言模型 (LLM) 生成预期输出。 默认设置是将文本字段中的输入文本转换为标注字段中的转换文本。 | String |
使用情况
该工具要求安装深度学习框架。 要设置计算机以在 ArcGIS Pro 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架。
该工具还可用于对现有经过训练的模型进行微调。
要使用 GPU 运行此工具,请将处理器类型环境设置为 GPU。 如果您具有多个 GPU,还可以指定 GPU ID 环境。
该工具的输入是包含训练数据的表或要素类,其中文本字段包含输入文本,标注字段包含转换的文本。
此工具将使用基于转换器的骨干来训练文本转换模型,并且还支持使用 Mistral LLM 的提示进行上下文学习。 要安装 Mistral 骨干,请参阅 ArcGIS Mistral 骨干。
有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题。
参数
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}, {prompt})
名称 | 说明 | 数据类型 |
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 (可选) | 指定要用作训练新模型的架构的、预先配置的神经网络。
| String |
batch_size (可选) | 一次需要处理的训练样本数。 默认值为 2。 增加批处理大小可以提高工具性能;但是,随着批处理大小的增加,会占用更多内存。 如果发生内存不足错误,请使用较小的批处理大小。 | Double |
model_arguments [model_arguments,...] (可选) | 将用于初始化模型的附加参数。 受支持的模型参数为 sequence_length,此参数用于设置训练数据的最大序列长度,将被考虑用于训练模型。 | Value Table |
learning_rate (可选) | 指示在训练过程中将调整多少模型权重的步长。 如果未指定值,将自动派生出最佳学习率。 | Double |
validation_percentage (可选) | 将用于验证模型的训练样本的百分比。 对于基于转换器的模型骨干,默认值为 10;对于 Mistral 骨干,默认值为 50。 | Double |
stop_training (可选) | 指定模型训练是在模型不再改进或继续时停止还是直至达到 max_epochs 参数值时才停止。
| Boolean |
make_trainable (可选) | 指定是否冻结预训练模型中的骨干层,以使权重和偏差保持原始设计。
| Boolean |
remove_html_tags (可选) | 指定是否将从输入文本中移除 HTML 标签。
| Boolean |
remove_urls (可选) | 指定是否将从输入文本中移除 URL。
| Boolean |
prompt (可选) | 特定输入或指令用于指导大型语言模型 (LLM) 生成预期输出。 默认设置是将文本字段中的输入文本转换为标注字段中的转换文本。 | String |
代码示例
以下 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)
许可信息
- Basic: 否
- Standard: 否
- Advanced: 是