训练实体识别模型 (GeoAI 工具)
汇总
用法
此工具还用于微调现有已训练模型。
要使用 GPU 运行此工具,将处理器类型 环境设置为 GPU。 如果您具有多个 GPU,则改为指定 GPU ID 环境。
输入可以是带有文本字段和命名实体标注的要素类或表,也可以是包含 .json 或 .csv 文件中的训练数据的文件夹。
此工具将使用基于转换器的骨干来训练 NER 模型,并且还支持使用 Mistral LLM 的提示进行上下文学习。 要安装 Mistral 骨干,请参阅 ArcGIS Mistral 骨干 。
有关运行此工具的要求以及您可能遇到的问题的详细信息,请参阅深度学习常见问题 。
参数
标注
说明
数据类型
输入文件夹或表
输入可以为以下任一项:
Folder; Feature Layer; Table View; Feature Class
输出模型
将存储训练模型的输出文件夹位置。
Folder
预训练模型文件
(可选)
将用于微调新模型的预训练模型。 输入可以为 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk)。
可以对具有相似实体的预训练模型进行微调以适应新模型。 预训练模型必须已使用将用于训练新模型的相同模型类型和骨干模型进行了训练。
File
地址实体
(可选)
地址实体将被视为一个位置。 在推断过程中,将使用指定的定位器对此类实体进行地理编码,并且将生成实体提取过程的结果要素类。 如果未提供定位器或训练模型未提取地址实体,则会生成包含提取实体的表。
String
最大轮数
(可选)
应用于将训练模型的最大轮数。 最大轮数值为 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 多语言模型不同,它不需要语言张量来了解使用的语言,并且可以从输入 ID 中识别正确的语言。
distilroberta-base —该模型将使用 DistilRoBERTa 神经网络进行训练。 DistilRoBERTa 是一种英语语言模型,仅在 OpenWebTextCorpus 上由 roberta-base 神经网络监督进行预训练(OpenWebTextCorpus 是 OpenAI 的 WebText 数据集的复制品)。
distilbert-base-cased —该模型将使用 DistilBERT 神经网络进行训练。 DistilBERT 通用语言表示模型更小。
mistral —该模型将使用 Mistral 大语言模型 (LLM) 进行训练。 Mistral 是一种仅限解码器的变换器模型,采用滑动窗口注意力、分组查询注意力和字节回退 BPE 分词器技术。 要安装 Mistral 骨干,请参阅 ArcGIS Mistral 骨干 。
String
批量大小
(可选)
一次需要处理的训练样本数。 默认值为 2。
增加批量大小可以提高工具性能;但是随着批量大小增加,所用内存也将随之增加。 如果出现内存不足错误,则降低批量大小。
Double
模型参数
(可选)
将用于初始化模型的附加参数。 受支持的模型参数为 Sequence Length,此参数用于设置训练数据的最大序列长度,将被考虑用于训练模型。
值表列:
Value Table
学习率
(可选)
步长用于指示在训练过程中调整模型权重的大小。 如果未指定值,将自动派生出最佳学习率。
Double
验证百分比
(可选)
将用于验证模型的训练样本的百分比。 对于基于转换器的模型骨干,默认值为 10;对于 Mistral 骨干,默认值为 50。
Double
当模型停止改进时停止
(可选)
指定模型训练是在模型不再改进时停止,还是继续直至达到最大轮数 参数值时才停止。
Boolean
创建可训练模型骨干
(可选)
指定是否冻结预训练模型中的骨干图层,以使权重和偏差保持原始设计。
Boolean
文本字段
输入要素类或表中的文本字段,其中包含将用作模型输入的文本。 当输入文件夹或表 参数值为要素类或表时,此参数为必需项。
Field
提示
(可选)
特定输入或指令用于指导大型语言模型 (LLM) 生成预期输出。
其默认设置是识别文本中指定类别的命名实体。 同时,避免标记其他类别的实体。
String
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
(可选)
指定要用作训练新模型的架构的预配置神经网络。
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 多语言模型不同,它不需要语言张量来了解使用的语言,并且可以从输入 ID 中识别正确的语言。
distilroberta-base —该模型将使用 DistilRoBERTa 神经网络进行训练。 DistilRoBERTa 是一种英语语言模型,仅在 OpenWebTextCorpus 上由 roberta-base 神经网络监督进行预训练(OpenWebTextCorpus 是 OpenAI 的 WebText 数据集的复制品)。
distilbert-base-cased —该模型将使用 DistilBERT 神经网络进行训练。 DistilBERT 通用语言表示模型更小。
mistral —该模型将使用 Mistral 大语言模型 (LLM) 进行训练。 Mistral 是一种仅限解码器的变换器模型,采用滑动窗口注意力、分组查询注意力和字节回退 BPE 分词器技术。 要安装 Mistral 骨干,请参阅 ArcGIS Mistral 骨干 。
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 示例(独立脚本)
以下示例演示了如何使用 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)
环境
处理器类型 , GPU ID
许可信息