了解配置文件

January 11, 2023 · View on GitHub

AdaSeq目前使用配置文件来控制模型的组装、训练和评估,配置文件支持yaml json jsonline格式。

1. 配置文件结构

resume.yaml为例,一个配置文件通常包括下面几个域:

experiment: ...
task: ...
dataset: ...
preprocessor: ...
data_collator: ...
model: ...
train: ...
evaluation: ...

2. 全局参数介绍

注:默认值为/表示该参数为必填项。

2.1 experiment

参数说明参数类型默认值
exp_dir实验目录strexperiments
exp_name实验名称,所有输出将会保存到./${exp_dir}/${exp_name}/${datetime}/strunknown
seed随机数种子int42

2.2 task

task无子参数,目前支持下列值(也可见metainfo):

  • word-segmentation
  • part-of-speech
  • named-entity-recognition
  • relation-extraction
  • entity-typing

2.3 dataset

数据集参数组合较复杂,建议参考自定义数据集

参数说明参数类型默认值
task任务类型strNone
namemodelscope数据集名称,如damo/resume_nerstrNone
pathhuggingface数据集名称,如conll2003strNone
data_file数据文件,可以是url、本地目录或本地压缩包,也可以是一个包含train valid test的字典str/dictNone
data_type数据格式,用于指定数据读取方法strNone
transform数据后处理,可包含name key scheme等字段dictNone
labels标签集,可以直接传入标签列表labels: ['O', 'B-ORG', ...],或传入标签文件或urllabels: PATH_OR_URL,或设置函数从数据集中统计str/list/dictNone
access_token用于访问modelscope或huggingface的私有数据仓库strNone

2.4 preprocessor

参数说明参数类型默认值
typepreprocessor类型str/
model_dirtokenizer名称或目录str/
is_word2vec是否使用Lookup TableboolFalse
tokenizer_kwargstokenizer其他参数dictNone
max_length最大句子长度(subtoken-level)int512

2.5 data_collator

data_collator无子参数,目前支持下列值(也可见metainfo):

  • DataCollatorWithPadding
  • SequenceLabelingDataCollatorWithPadding
  • SpanExtractionDataCollatorWithPadding
  • MultiLabelSpanTypingDataCollatorWithPadding
  • MultiLabelConcatTypingDataCollatorWithPadding

2.6 model

参数子参数说明参数类型默认值
type模型类型str/
embedder表征学习器,通常是一个预训练模型dictNone
typeembedder类型,使用ms/hf时可不填strNone
model_name_or_path预训练模型名称或路径,支持ms&hfstr/
encoder对句子表征做进一步encode,如LSTMdictNone
typeencoder类型str/
decoder开发中dictNone

2.7 train

参数子参数说明参数类型默认值
trainer训练器类型strNone
max_epochs最大epoch数int/
dataloader数据读取器dict/
batch_size_per_gpu每块gpu上的batch sizeint/
workers_per_gpu每块gpu上的数据读取进程数int0
optimizer优化器dictNone
type优化器类型str/
lr学习率float/
options可指定优化器其他参数,如grad_clip: max_norm: 2.0dictNone
param_groups模型参数组,支持正则表达式自定义学习率listNone
└ regex正则表达式,用于指定模型参数组str/
└ lr特定模型参数组的学习率float/
lr_scheduler学习率规划器dictNone
type学习率规划器类型,支持pytorch所有lr_scheduler(注意pytorch版本是否包含该lr_scheduler)str/
options学习率规划器其他参数dictNone
hooks回调函数,详见ModelScope官方文档listNone

2.8 evaluation

参数子参数说明参数类型默认值
dataloader数据读取器dict/
batch_size_per_gpu每块gpu上的batch sizeint/
workers_per_gpu每块gpu上的数据读取进程数int0
metrics评价指标listNone
type评价指标类型str/