已解决
在PyTorch里面利用transformers的Trainer微调预训练大模型
来自网友在路上 155855提问 提问时间:2023-09-21 11:27:15阅读次数: 55
最佳答案 问答题库558位专家为你答疑解惑
背景
transformers提供了非常便捷的api来进行大模型的微调,下面就讲一讲利用Trainer来微调大模型的步骤
第一步:加载预训练的大模型
from transformers import AutoModelForSequenceClassificationmodel = AutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased")
第二步:设置训练超参
from transformers import TrainingArgumentstraining_args = TrainingArguments(output_dir="path/to/save/folder/",learning_rate=2e-5,per_device_train_batch_size=8,per_device_eval_batch_size=8,num_train_epochs=2,
)
比如这个里面设置了epoch等于2
第三步:获取分词器tokenizer
from transformers import AutoTokenizertokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")
第四步:加载数据集
from datasets import load_datasetdataset = load_dataset("rotten_tomatoes") # doctest: +IGNORE_RESULT
第五步:创建一个分词函数,指定数据集需要进行分词的字段:
def tokenize_dataset(dataset):return tokenizer(dataset["text"])
第六步:调用map()来将该分词函数应用于整个数据集
dataset = dataset.map(tokenize_dataset, batched=True)
第七步:使用DataCollatorWithPadding来批量填充数据,加速填充过程:
from transformers import DataCollatorWithPaddingdata_collator = DataCollatorWithPadding(tokenizer=tokenizer)
第八步:初始化Trainer
from transformers import Trainertrainer = Trainer(model=model,args=training_args,train_dataset=dataset["train"],eval_dataset=dataset["test"],tokenizer=tokenizer,data_collator=data_collator,
) # doctest: +SKIP
第九步:开始训练
trainer.train()
总结:
利用Trainer提供的api,只需要简简单单的九步,十几行代码就能进行大模型的微调,你要不要动手试一试?
查看全文
99%的人还看了
相似问题
- 图数据库Neo4J 中文分词查询及全文检索(建立全文索引)
- 基于 NGram 分词,优化 Es 搜索逻辑,并深入理解了 matchPhraseQuery 与 termQuery
- Docker安装部署[8.x]版本Elasticsearch+Kibana+IK分词器
- Elasticsearch下载安装,IK分词器、Kibana下载安装使用,elasticsearch使用演示
- Docker安装部署Elasticsearch+Kibana+IK分词器
- 快速入门Elasticsearch:安装、基本概念、分词器和文档基本操作详解
- Python中文分词、词频统计并制作词云图
- 从入门到进阶 之 ElasticSearch 文档、分词器 进阶篇
- IK分词器如何修改支持跨版本ES
- docker安装es分词插件ik详情步骤
猜你感兴趣
版权申明
本文"在PyTorch里面利用transformers的Trainer微调预训练大模型":http://eshow365.cn/6-10649-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: React中的Hooks--useReducer()
- 下一篇: LCP 22.黑白方格画