AutoLoader 可以快速找到对应的预训练模型和分词器,只需输入 task_name 和 model_name 即可。
以标题生成任务为例:
from flagai.auto_model.auto_loader import AutoLoader
auto_loader = AutoLoader(task_name="title-generation", ## The task name
model_name="RoBERTa-base-ch", ## The model name.
)
model = auto_loader.get_model()
tokenizer = auto_loader.get_tokenizer()
task_name
你要想做的任务名字, 除了 title-generation
, 你也可以选择其他的细分任务, 例如 semantic-matching
、ner
and so on.
target = ["O", "B-LOC", "I-LOC", "B-ORG", "I-ORG", "B-PER", "I-PER"]
from flagai.auto_model.auto_loader import AutoLoader
auto_loader = AutoLoader(task_name="ner",
model_name="RoBERTa-base-ch",
class_num=len(target))
model = auto_loader.get_model()
tokenizer = auto_loader.get_tokenizer()
在构建分类相关任务的模型时,还需要输入一个“class_num”参数来告诉模型要分类多少类。
然后 AutoLoader 将从模型中心下载 roberta 预训练模型、配置和词表。 并且下载的预训练模型、配置和词表将被放入“./state_dict/RoBERTa-base-ch”目录中。
另外,通过输入不同的model_name,也可以直接调用已经训练好的下游任务模型,如Roberta-base-ch-ner
、Roberta-base-ch-title-generation
等。
target = ["O", "B-LOC", "I-LOC", "B-ORG", "I-ORG", "B-PER", "I-PER"]
from flagai.auto_model.auto_loader import AutoLoader
auto_loader = AutoLoader(task_name="ner",
model_name="RoBERTa-base-ch-ner",
class_num=len(target))
model = auto_loader.get_model()
tokenizer = auto_loader.get_tokenizer()
查看 https://github.com/FlagAI-Open/FlagAI/blob/master/quickstart/ner_ch.py 了解更多.
- classification
- semantic-matching
- emotion-analysis (todo)
- text-classification (todo)
- ...
- seq2seq
- title-generation
- writing
- poetry-generation
- couplets-generation (todo)
- ...
- sequence-labeling
- ner
- ner-crf
- ner-gp
- part-speech-tagging (todo)
- chinese-word-segmentation (todo)
- ...
所有支持的模型都可以在 这里 中找到。 不同的模型适应不同的任务。
例如,model_name="GLM-large-ch" 或 "RoBERTa-base-ch" 这些模型支持上一节中提到的所有任务。
例如,model_name="GPT2-base-ch",模型支持“seq2seq”相关任务。
例如model_name="t5-base-ch",模型支持“seq2seq”相关任务。