AdaSeq目前使用配置文件来控制模型的组装、训练和评估,配置文件支持yaml
json
jsonline
格式。
以resume.yaml为例,一个配置文件通常包括下面几个域:
experiment: ...
task: ...
dataset: ...
preprocessor: ...
data_collator: ...
model: ...
train: ...
evaluation: ...
注:默认值为/
表示该参数为必填项。
参数 | 说明 | 参数类型 | 默认值 |
---|---|---|---|
exp_dir | 实验目录 | str | experiments |
exp_name | 实验名称,所有输出将会保存到./${exp_dir}/${exp_name}/${datetime}/ |
str | unknown |
seed | 随机数种子 | int | 42 |
task
无子参数,目前支持下列值(也可见metainfo):
- word-segmentation
- part-of-speech
- named-entity-recognition
- relation-extraction
- entity-typing
数据集参数组合较复杂,建议参考自定义数据集。
参数 | 说明 | 参数类型 | 默认值 |
---|---|---|---|
task | 任务类型 | str | None |
name | modelscope数据集名称,如damo/resume_ner |
str | None |
path | huggingface数据集名称,如conll2003 |
str | None |
data_file | 数据文件,可以是url、本地目录或本地压缩包,也可以是一个包含train valid test 的字典 |
str/dict | None |
data_type | 数据格式,用于指定数据读取方法 | str | None |
transform | 数据后处理,可包含name key scheme 等字段 |
dict | None |
labels | 标签集,可以直接传入标签列表labels: ['O', 'B-ORG', ...] ,或传入标签文件或urllabels: PATH_OR_URL ,或设置函数从数据集中统计 |
str/list/dict | None |
access_token | 用于访问modelscope或huggingface的私有数据仓库 | str | None |
参数 | 说明 | 参数类型 | 默认值 |
---|---|---|---|
type | preprocessor类型 | str | / |
model_dir | tokenizer名称或目录 | str | / |
is_word2vec | 是否使用Lookup Table | bool | False |
tokenizer_kwargs | tokenizer其他参数 | dict | None |
max_length | 最大句子长度(subtoken-level) | int | 512 |
data_collator
无子参数,目前支持下列值(也可见metainfo):
- DataCollatorWithPadding
- SequenceLabelingDataCollatorWithPadding
- SpanExtractionDataCollatorWithPadding
- MultiLabelSpanTypingDataCollatorWithPadding
- MultiLabelConcatTypingDataCollatorWithPadding
参数 | 子参数 | 说明 | 参数类型 | 默认值 |
---|---|---|---|---|
type | 模型类型 | str | / | |
embedder | 表征学习器,通常是一个预训练模型 | dict | None | |
└ | type | embedder类型,使用ms/hf时可不填 | str | None |
└ | model_name_or_path | 预训练模型名称或路径,支持ms&hf | str | / |
encoder | 对句子表征做进一步encode,如LSTM 等 |
dict | None | |
└ | type | encoder类型 | str | / |
decoder | 开发中 | dict | None |
参数 | 子参数 | 说明 | 参数类型 | 默认值 |
---|---|---|---|---|
trainer | 训练器类型 | str | None | |
max_epochs | 最大epoch数 | int | / | |
dataloader | 数据读取器 | dict | / | |
└ | batch_size_per_gpu | 每块gpu上的batch size | int | / |
└ | workers_per_gpu | 每块gpu上的数据读取进程数 | int | 0 |
optimizer | 优化器 | dict | None | |
└ | type | 优化器类型 | str | / |
└ | lr | 学习率 | float | / |
└ | options | 可指定优化器其他参数,如grad_clip: max_norm: 2.0 |
dict | None |
└ | param_groups | 模型参数组,支持正则表达式自定义学习率 | list | None |
└ | └ regex | 正则表达式,用于指定模型参数组 | str | / |
└ | └ lr | 特定模型参数组的学习率 | float | / |
lr_scheduler | 学习率规划器 | dict | None | |
└ | type | 学习率规划器类型,支持pytorch所有lr_scheduler(注意pytorch版本是否包含该lr_scheduler) | str | / |
└ | options | 学习率规划器其他参数 | dict | None |
hooks | 回调函数,详见ModelScope官方文档 | list | None |
参数 | 子参数 | 说明 | 参数类型 | 默认值 |
---|---|---|---|---|
dataloader | 数据读取器 | dict | / | |
└ | batch_size_per_gpu | 每块gpu上的batch size | int | / |
└ | workers_per_gpu | 每块gpu上的数据读取进程数 | int | 0 |
metrics | 评价指标 | list | None | |
└ | type | 评价指标类型 | str | / |