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