迁移学习案例_中文文本分类案例

1. 通过微调方式进行迁移学习的两种类型

类型一:直接加载预训练模型进行输入文本的特征表示,后接自定义网络进行微调输出结果;

类型二:使用指定任务类型的微调脚本微调预圳练模型,后接带有输出头的预定义网络输出结果,说明:所有类型的实战演示,都将针对中文文本进行;

2. 迁移学习-中文分类

即中文句子分类。

任务介绍 :直接加载预训练模型进行输入文本的特征表示,后接自定义网络进行微调输出结果;

数据介绍:数据文件有三个train.csv,test.csv,validation.csv,数据样式都是一样的。(都只有2列数据:标签、文本);

通过huggingface的datasets工具,加载信息文件;使用datasets中的load_dataset()方法来读取数据,如:csv文件;之前是 先构建数据源对象DataSet,再构建数据加载器DataLoader;此方法好处是:在这里datasets这个第三方库的load_dataset方法读取文件,直接得到一个DataSet对象,即此第三方库可帮忙完成第三方库的构建;load_dataset("csv", data_files=my_files, split="train")第一个参数是当前要读取的文件类型,后面data_files文件路径跟的是什么样的文件类型、这里就指明什么样的文件:如果后面是csv则此处是csv、如果是txt则是txt、如果是json则是json;

2.1 数据预处理

2.2 自定义下游任务网络模型

自定义单层的全连接网络作为微调网络。根据实际经验,自定义的微调网络参数总数应大于0.5倍的训练数据量,小于10倍的训练数据量,这样有助于模型在合理的时间范围内收敛。

定义下游任务模型:定义一个类继承 nn.Module,init方法、forward方法;init方法:直接实例化一个linear层:输入特征768(因为BertModel只是一个特征提取器,不具备任何任务输出特征头,所以bert后的结果还是867维的向量)、输出特征2(因为整个文本做二分类,所以输出特征是2)。forwar方法:input_ids, attention_mask, token_type_ids三个参数即前面处理过的3个输入,这3个输入不是直接给上面的 nn.Linear的,而是先经过预训练模型(前面加载的预训练模型bert_model),得到bert模型编码后的结果 ;因为预训练模型不参与训练,所以需要将参数冻结,使用with torch.no_grad():进行冻结 ,只对其代码范围内的bert模型这块起作用(即未对齐这行),全连接层没有在代码范围内,所以对其不起作用 (pooler_output = bert_output.pooler_output这行不要写进去,bert_output"pooler_output" 代表每个样本的CLS - -token对应的隐藏层输出结果,代表整个句子的语意)但是上面的全连接层要进行模型的训练**;(为了不让预训练模型的参数进行更新,这里需要使用 with torch.no_grad():得到预训练后的结果,再送给全连接层,得到预测的结果)。

2.3 模型训练

2.4 模型评估

模型训练:

模型评估:

相关推荐
飞猫的边缘AI13 小时前
边缘AI芯片的规则变了:从跑CNN到跑LLM和VLM
人工智能·语言模型·cnn·transformer·边缘ai
DevOps老兵14 小时前
Transformer拆解06:Self-Attention,一句话里的词怎样互相看见
大模型·transformer·自注意力·self-attention·注意力矩阵
秋秋小事2 天前
transformer基础 RNN + LSTM
rnn·lstm·transformer
Eloudy2 天前
全文 - LLaMA v2 - Llama 2: Open Foundation and Fine-Tuned Chat Models
llm·transformer·gpu
明天会有多晴朗2 天前
从零手写 Transformer!一个 Python 文件跑通英译中(PyTorch 附完整源码)
人工智能·pytorch·python·深度学习·transformer
高洁012 天前
端侧大模型的应用场景与工程实践
人工智能·深度学习·机器学习·transformer·tornado
AI-Frontiers2 天前
Attention 演进路线:5 大阶段,11 篇奠基论文
transformer
zx_741484812 天前
BERT自然语言处理框架深度解析:从Transformer到双向预训练模型
自然语言处理·bert·transformer
布吉岛的石头3 天前
Java 程序员第 50 阶段13:对齐税 alignment tax 是什么
人工智能·深度学习·transformer
米饭是菜qy3 天前
深度学习Transformer详细介绍
人工智能·深度学习·transformer