大模型学习笔记九:模型微调

文章目录

    • 一、什么时候需要Fine-Tuning
    • 二、用Hugging Face根据电影评论输出来对电影进行情感分类
      • 1)安装依赖
      • 2)操作流程
      • 3)名字解释
      • 4)代码导入库和加载模型、加载数据库、加载tokenlizer
      • 5)其他相关公共变量赋值(随机种子、标签集评价、标签转token_Id)
      • 6)处理数据集:转成模型接受的输入格式
      • 7)定义数据规整器:训练时自动将数据拆分成Batch
      • 8)定义训练超参:比如学习率
      • 9)定义训练器
      • 10)# 开始训练
      • 11)加载训练后的模型进行推理(参考)
    • 三、训练集和验证集的关系
      • 1)查看训练成果
      • 2)什么是checkpoint?
      • 3)加载训练后的模型进行推理(输入文本,输出neg还是pos)
      • 4)加载checkpoint并继续训练
    • 四、激活函数和模型训练讲解
      • 1)激活函数
      • 2)模型训练
      • 3)调整学习率到合适值
      • 4)如果所有数据都求梯度,计算量太大了
      • 5)求解器

一、什么时候需要Fine-Tuning

1、有私有模型部署的需求
2、开源模型原生的能力不满足业务需求(不微调可操作性就比较大)

二、用Hugging Face根据电影评论输出来对电影进行情感分类

  • Hugging Face介绍
    相当于面向NLP模型的Github,尤其基于transformer的开源模型非常全,封装了模型、训练集、训练器等,让模型下载、使用、训练都非常方便
  • 需求:情感分类
    在这里插入图片描述

1)安装依赖

#pip安装
pip install tarnsformers #安装最新版本
pip install transformers == 4.30 #安装指定版本#conda安装
conda install -c huggingface transformers #只4.0以后的版本

2)操作流程

①加载数据集
②数据预处理(数据按照特定格式拼接输入输出、Tokenizer把文本转Token IDs)
③数据规整器(数据批次Batch)
④加载模型,定义训练超参(针对每个批次训练)
在这里插入图片描述

3)名字解释

1)超参
①模型超参:网络层数、参数维度,Attention Head数,激活函数类型
②训练超参:学习率、批次大小,求解器类型、参数,学习率调节方式、参数,Dropout概率

4)代码导入库和加载模型、加载数据库、加载tokenlizer

  • 导入库
import datasets
from datasets import load_dataset
from transformers import AutoTokenizer, AutoModel
from transformers import AutoModelForCausalLM
from transformers import TrainingArguments, Seq2SeqTrainingArguments
from transformers import Trainer, Seq2SeqTrainer
import transformers
from transformers import DataCollatorWithPadding
from transformers import TextGenerationPipeline
import torch
import numpy as np
import os, re
from tqdm import tqdm
import torch.nn as nn
  • 加载数据集
    通过 HuggingFace,可以指定数据集名称,运行时自动下载
# 数据集名称
DATASET_NAME = "rotten_tomatoes"# 加载数据集
raw_datasets = load_dataset(DATASET_NAME)# 训练集
raw_train_dataset = raw_datasets["train"]# 验证集
raw_valid_dataset = raw_datasets["validation"]
  • 加载模型
    通过 HuggingFace,可以指定模型名称,运行时自动下载
# 模型名称
MODEL_NAME = "gpt2"# 加载模型
model = AutoModelForCausalLM.from_pretrained(MODEL_NAME,trust_remote_code=True)
  • 加载 Tokenizer
    通过 HuggingFace,可以指定模型名称,运行时自动下载对应 Tokenizer
# 加载tokenizer
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/13095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Altium Designer封装库和元器件符号库下载与导入教程(SnapEDA 、Ultra Librarian、Alldatasheetcn)

1.AD封装库和元器件符号库下载网址 以下是一些全球热门的Altium Designer封装库和元器件符号库下载网址推荐: Altium Content Vault (现称为Altium Manufacturer Part Search):这是Altium官方提供的元器件库,可以直接在Altium Designer中使用…

免费体验GPT-4o这5大功能,非常好用!

这几天,OpenAI发布了新的GPT版本,GPT-4o,比GPT4更加智能也更快。 据说,GPT-4o在文本、推理和编码智能方面实现了GPT-4 Turbo级别的性能,在多语言、文本、音频和视觉功能方面甚至超过了市面上所有同类产品。 有几个亮点…

数据结构复习指导之图的存储及基本操作

文章目录 图的存储及基本操作 考纲内容 复习提示 1.邻接矩阵法 2.邻接表法 3.十字链表 4.邻接多重表 5.图的基本操作 图的存储及基本操作 图的存储必须要完整、准确地反映顶点集和边集的信息。根据不同图的结构和算法,采用不同的存储方式将对程序的效率产生…

Python进度条工具——tqdm

原文链接:http://www.juzicode.com/python-note-tqdm 在安装Python库文件的时候我们经常可以看到这种进度条: 其实Python库中就自带了现成的工具库——tqdm。 tqdm读起来比较拗口,它是从“进程”的阿拉伯语taqaddum简化而来。 安装tqdm 使用…

C++二叉搜索树搜索二叉树二叉排序树

C二叉搜索树 1. 二叉搜索树的概念 二叉搜索树(BST,Binary Search Tree),也称为二叉排序树或二叉查找树。它与一般二叉树的区别在于:每个结点必须满足“左孩子大于自己,右孩子小于自己”的规则。在这种规则的约束下,二…

ADS Momentum 仿真设置

1、选择Momenttum Microwave。 2、Layout不需要操作。 3、Partitioning 不需要操作。 4、没有叠层的话需要新建叠层,过孔可以在叠层中右键添加。 5、注意确认端口的Gnd Layer。 6、设置仿真频率。 7、Output Plan。 8、Option。 最后运行仿真,等待结果即…

算法学习(7)-树

目录 开启“树”之旅 二叉树 堆--优先队列 并查集 开启“树”之旅 是不是很像一棵倒挂的树?也就是说它是根朝上, 而叶子朝下的。不像?哈哈,来看看下面的图你就会觉得像啦。 你可能会间: 树和图有什么区别&#xff…

代码生成工具1 ——项目简介和基础开发

1 项目简介 需要提前在数据库建好表,然后执行代码生成工具,会生成简单的Java文件,避免重复编写增删改查代码。类似的工具网上有很多,本人开发这个工具属于自娱自乐。这个专栏会记录开发的过程。 2 项目搭建 数据库使用MySQL &…

APP没有上架就开通了APP支付,微信商户的这个操作绝了

在当今的移动支付时代,APP支付已成为商家与消费者之间的重要桥梁。然而,对于一些尚未上架的应用来说,如何快速开通APP支付功能一直是个难题。最近,微信商户平台的一项新操作,为这类商家带来了福音---APP没有上架&#…

财富增长新途径:副业赚钱方法全攻略

探寻财富之路:多元化赚钱途径解析 在追求财富的道路上,每个人都在以自己的方式前行。然而,正如古人所云:“君子爱财,取之有道。”今天,我将为您揭示一些新颖且实用的赚钱途径,希望能为您的财富…

Blender雕刻建模_衰减

衰减 从中心点向外的强度衰减。 其中 中心点:即笔刷选中的顶点 半径:即笔刷的半径 衰减范围 从中心点向外的一个球形空间(不仅是看见的2D球,而是一个3D球形的空间) 为了避免误操作有如下几种方法: -Al…

Unity射击游戏开发教程:(13)如何在Unity中播放音效

在本文中,我将向大家展示一些为游戏添加声音的不同方法。 我们为游戏添加声音的第一种方法是播放背景音乐。在此,我们将创建游戏对象(“音频管理器”)并创建一个子游戏对象(“背景音乐”)。该子游戏对象将是播放音乐的对象,因此需要向其添加音频源组件。如果没有音频源组…

【LInux】<基础IO> 文件操作 | 文件描述符 | 重定向

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章对…

springboot004网页时装购物系统

springboot004网页时装购物系统 亲测完美运行带论文:获取源码,私信评论或者v:niliuapp 运行视频 包含的文件列表(含论文) 数据库脚本:db.sql其他文件:ppt.pptx论文/文档:开题报告.docx论文&…

独立服务器和云服务器哪个好?

在当今数字时代,网站托管是任何在线业务成功的关键要素之一。但是,当谈到选择正确的托管解决方案时,很容易陷入独立服务器与云服务器之间的抉择。两者都有各自的优势和限制,因此在决定哪种类型的托管适合您的业务之前,…

【线性系统理论】笔记二

状态转移矩阵-性质 特殊的矩阵指数函数 A求矩阵指数函数计算 方法1:特征值互异 方法2:特征值重根 方法3:反拉氏变换 方法4: 凯莱-哈密顿求e 特征值互异: 特征值相同 状态转移矩阵e求A 零输入响应 零状态响应 状态…

第189题|幂级数的展开的常规方法(二)|武忠祥老师每日一题

解题思路:将函数展开成幂级数有两种方法:一种是直接法(这种一般比较麻烦),一种是拆解成现有展开式展开(这种的特征一般是能因式分解)。 第一步: 这里看到 ln(1-x-2x^2) 将里面的式…

AI大模型日报#0515:Google I/O大会、 Ilya官宣离职、腾讯混元文生图大模型开源

导读:欢迎阅读《AI大模型日报》,内容基于Python爬虫和LLM自动生成。目前采用“文心一言”(ERNIE 4.0)、“零一万物”(Yi-34B)生成了今日要点以及每条资讯的摘要。 《AI大模型日报》今日要点:谷歌…

高考志愿系统-模拟填报模块分析

1.获取所有志愿列表 接口: http://localhost:81/dev-api/college_entrance/aspiration/list 默认传参pageNum1&pageSize10, 请求方法: GET 接口内方法同样首先设置分页信息,然后修改查询出的所有志愿信息列表中的学生id属性 2.详细志愿查看 接口…

指针在函数的应用(C++)

一、传递地址 实参传递进函数体内后,生成的是实参的副本,在函数内改变副本的值并不影响实参。指针传递参数时,指针变量产生了副本,但副本与原变量指向的内存区域是同一个。改变指针副本指向的变量,就是改变原指针变量指…