大模型预训练与微调

一、基础知识

  1. 机器学习数学原理:梯度下降(gradient descent)在机器学习中应用十分的广泛,不论是在线性回归还是Logistic回归中,它的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。
  2. 深度学习
  • 神经网络:神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。详见地址:神经网络——最易懂最清晰的一篇文章-CSDN博客
  • 超参数
    • 学习率:每次迭代的步长,决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。学习率越高,步长越大。

    • batch:当训练数据过多时,无法一次将所有的数据送入计算,所以需要将数据分成几个部分(多个batch),逐一地送入计算训练。即每次输入网络进行训练的批次(batch number)

    • batch_size:每个batch里面样本的大小。即一次训练所选取的样本数。同时多张卡上训练的图片数量。

      • 一般GPU性能好的时候,batchsize越大,准确率越高

      • 通过并行化提高内存的利用率,提高训练速度
      • 单个epoch的迭代次数减少了,参数调整慢,若达到相同的识别精度,需更多的epoch
      • 适当batch size使梯度下降方向更明确
      • 当数据量较小时,1个batch的训练方式收敛效果较好
    • mini-batch size:每张卡上训练的图片数量。

    • epoch:表示将输入的数据进行前向和后向传播的一个过程。其设置的大小与数据集的多样化程度有关,多样化程度越强,epoch越大。

    • iterations:完成一次epoch所需要的batch个数。即batch number就是iterations。

【注】因为CPU和GPU内存架构是以2的幂进行组织的,所以经常选择批的大小为2的幂次。且batch size 越大,训练速度则越快,内存占用更大,但收敛变慢。

3.Token

Token是对输入文本进行分割和编码时的最小单位。它可以是单词、子词、字符或其他形式的文本片段。

4.Embeding嵌入

嵌套是一种相对低维的空间,可以将高维矢量映射到这种低维空间中。通过使用嵌套,可以让在大型输入(比如代表字词的稀疏矢量)上进行机器学习变得更加容易。
在理想情况下,嵌套可以将语义上相似的不同输入映射到嵌套空间里的邻近处,以此来捕获输入的语义。一个模型学习到的嵌套,也可以被其他模型重用。

二、大模型预训练

预训练(Pre-training)是语言模型学习的初始阶段。在预训练期间,模型会接触到大量未标记的文本数据,例如书籍、文章和网站。在大量未标记文本数据上训练语言模型。预训练目标是捕获文本语料库中存在的底层模式、结构和语义知识。

1.预训练的主要特点:

(1)无监督学习:预训练通常是一个无监督学习过程,模型在没有明确指导或标签的情况下从未标记的文本数据中学习。

(2)Masked Language Modeling:模型经过训练以预测句子中缺失或屏蔽的单词,学习上下文关系并捕获语言模式

(3)Transformer架构:预训练通常基于Transformer的架构,因为这种架构擅长捕获远程依赖关系和上下文信息

2.预训练的主要下游任务如下:

(1)文本生成:预训练模型可以生成联欢且有上下文相关的文本,使他们对聊天机器人、虚拟助手和内容生成等应用程序有价值

(2)情感分析:通过对带有情感标签的数据集的预训练模型进行微调,他们可用于对文本输入的情感进行分类,协助完成客户反馈分析和社交媒体监控等任务

(3)命名实体识别:可以对预训练模型进行微调,以从文本中识别和提取命名实体,从而促进新闻文章或法律文件中的实体识别等任务

三、大模型微调

微调(Fine-tuning)是指在预训练(Pre-training)阶段之后,使用特定任务的有标签数据对模型进行进一步的训练和调整参数,以使其在目标任务上获得更好的性能。

1.模型微调步骤

(1)冻结部分参数:为了保持与训练模型的初始表示能力,通常会冻结部分参数,特别是底层的参数,使其在微调过程中保持不变。

(2)更新顶层参数:针对目标任务的特定要求,通常会添加一个或多个新的层,这些层称为顶层(top layers)。这些顶层将与与训练模型链接,并更具目标任务的标签数据进行训练。在微调过程中,主要是更新这些顶层参数。

(3)调整参数:在微调过程中,通过反向传播算法和优化方法(如随机梯度下降),根据目标任务的损失函数来调整模型的参数。由于预训练模型已经通过大规模无监督学习进行了初始化,微调过程通常只需要较少的训练数据和较少的迭代次数。

2.大模型SFT(supervised fine tuning)

动作:Fine-tuning需要微调整个预训练整个预训练语言模型,且额外添加了新的参数,而Prompting则可以将整个预训练语言模型的参数保持固定,而只需要添加prompt来预测效果即可。

P-tuning:将Prompt转换为可以学习的Embedding层,并用MLP+LSTM的方式来对Prompt Embedding进行一层处理

P-tuning V2:每一层都加入可训练的prompts,只对prompt部分的参数进行训练,而语言模型的参数固定不变

3.提示工程-prompt

prompt engineering:通过开发和优化提示词,帮助语言模型用于各种应用场景和研究领域。

1.one shot、few shot。

2.思维链(CoT):是一种改进的提示策略,用于提高LLM在复杂推理任务中的性能,如算术推理、常识推理和符号推理。

3.Freeze微调:通过用于计算机视觉领域,不同于文本微调方法,这种方法的核心思想是冻结部分模型层,以保留模型在预训练任务中学到的特征。

4.指令微调(IT):增强模型的能力和可控性。IT使用(INSTRUCTION,OUTPUT)对进一步训练LLM,其中INSTRUCTION表示模型的人工指令,OUTPUT表示遵循INSTRUCTION的期望输出。

5.基于强化学习的进阶微调方法RLHF

(1)监督微调(SFT):使用精选的人类回答来微调预训练的语言模型以应对各种查询

(2)奖励模型微调:使用一个包含人类对同一查询的多个答案打分的数据集来训练一个独立的,通常比SFT小的奖励模型RW

(3)RLHF训练:利用PPO算法,根据RW模型的奖励反馈进一步微调SFT模型

RLHF是实现难度最大的微调方法。

6.LoRA

(1)在原始预训练语言模型(PLM)旁增加一个旁路,做一个先降维再升维的操作,以此模拟内在秩

(2)训练的时候固定PLM的参数不变,只训练降维矩阵和升维矩阵,即优化器只优化右路的参数

(3)模型的输入、输出维度不变,两边共同模型的输入,输出时将与plm的参数叠加

(4)用随机高斯分布初始化,用全0矩阵初始化

(5)矩阵全零初始化,右路结果会接近于0,使得模型优化的初始点就和原本的大模型保持一致

和其他大部分高效微调方法一样,固定预训练语言模型的参数,额外增加新的参数来学习,不同的是新增的模块是一个低秩的模块,即增加低秩分解的矩阵来适配下游任务

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

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

相关文章

IO复用技术(1)——select/poll/epoll原理介绍及使用案例

文章目录 1.Select1.1 工作流程1.2 fd_set函数1.3 select函数1.4 例程 2.poll2.1 poll函数2.2 例程 3.epoll3.1 工作流程3.2 相关函数3.3 epoll的两种工作模式3.4 示例代码 4.总结 原理:使用一个线程来检查多个文件描述符,委托内核进行检查,如…

Mac OS系统如何更新

用了好几年的Mac Book安装软件经常提示需要更高的系统版本,因此要升级系统版本,但是开始在系统设置里面找了一下没有找到升级的按钮,找了资料后才知道如何升级。有以下两种入口 一、App Store搜索MacOs,在出现的搜索结果中选择下载…

微服务----nacos配置及简单使用

目录 什么是nacos 项目在nacos上进行注册 注入nacos依赖 配置application.yml文件 nacos写入配置文件 首先,还是需要导入依赖 然后在nacos中编写配置文件 prod是我自定义的一个命名空间,在这里面进行配置文件编写~ 启动类上加上注解 编写Patt…

SpringBoot+Vue项目企业客户管理系统

一、前言介绍 本文主要论述了如何使用JAVA语言开发一个企业客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述企业客户管理系统的当前背景以及系统开…

Qt之信号与槽

槽的本质:对信号响应的函数。 信号函数和槽函数通常位于某个类中,和普通的成员函数相⽐,它们的特别之处在于: 信号函数⽤ signals 关键字修饰,槽函数⽤ public slots、protected slots 或者 private slots 修饰。sign…

数据结构---单链表

题目&#xff1a;构造一个单链表。 使用的软件&#xff1a;VS2022使用的语言&#xff1a;C语言使用的项目&#xff1a;test.c Setlist.h Setlish.c 项目实践&#xff1a; Setlist.h的代码为&#xff1a; #pragma once#include<stdio.h> #include<stdlib.h> #incl…

【算法小白周赛2】A.朋友遍天下(easy)C++代码和题解

题目链接&#xff1a;https://www.starrycoding.com/problem/165 题目描述 本题与hard版本有一定区别&#xff0c;仅“拜访时间安排表”的规则相同&#xff0c;hard版本需要进行一定修改才能通过easy版本。 醋酸锌有许多的好友&#xff0c;为了能好好拜访他的每一个好友&…

Java | Leetcode Java题解之第67题二进制求和

题目&#xff1a; 题解&#xff1a; class Solution {public String addBinary(String a, String b) {StringBuffer ans new StringBuffer();int n Math.max(a.length(), b.length()), carry 0;for (int i 0; i < n; i) {carry i < a.length() ? (a.charAt(a.leng…

单调栈|496.下一个更大元素I

力扣题目链接 class Solution { public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {stack<int> st;vector<int> result(nums1.size(), -1);if (nums1.size() 0) return result;unordered_map<int, …

连接和使用vCenter Server嵌入式vPostgres数据库

vCenter Server 早期支持内嵌(embedded)和外部(external)数据库,内嵌数据库就是vPostgres,基于VMware Postgres数据库(PostgreSQL数据库),外部数据库用的多的是Oracle数据库和SQL Server数据库。因为早期使用内嵌的PostgreSQL数据库只能用于小型环境,比如仅支持几十台…

SpringBoot对接前端传递的base64编码的图片信息,转成图片以Get请求进行浏览器文件下载,不下载到本地。

一、问题描述 1.1需求描述。 前端将浏览器展示的图片以base64编码的形式传递给后端&#xff0c;以此实现文件下载的功能&#xff0c;在浏览器弹出文件下载框。效果如下 1.2实现思路 将前端传递的base64进行解码&#xff0c;设置响应头返回响应体&#xff0c;代码如下。 pu…

ubuntu22.04 cmake 配置mysql

报错信息&#xff1a; CMake Error at CMakeLists.txt:33 (find_package): By not providing “FindMySQL.cmake” in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by “MySQL”, but CMake did not find one. Could not…

【02358单片机原理及应用】第三、四、五章考试复习自考复习

第3章 80C51单片机指令系统 考试知识点&#xff1a; 1、寻址方式 &#xff08;1&#xff09;立即寻址&#xff08;#data&#xff0c;#data16&#xff09;例&#xff1a;MOV A&#xff0c;#00H &#xff08;2&#xff09;直接寻址&#xff08;direct&#xff09;内部RAM…

古典密码学简介

目录 C. D. Shannon: 一、置换密码 二、单表代替密码 ① 加法密码 ② 乘法密码 ③密钥词组代替密码 三、多表代替密码 代数密码 四、古典密码的穷举分析 1、单表代替密码分析 五、古典密码的统计分析 1、密钥词组单表代替密码的统计分析 2、英语的统计规…

电商核心技术揭秘四十七:社会化营销中的社区建设

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘相关系列文章合集&#xff08;3&#xff09; 电商技术揭秘四十一&#xff1a;电商平台的营销系统浅析 电商技术揭秘四十二&#…

【业务场景】京东实际场景,频繁GC引起的CPU飙高问题的解决

目录 1.业务介绍 2.判断任务类型 3.CPU飙高的原因 1.业务介绍 本文的业务场景是京东零售线公开的一篇文章&#xff0c;文章内容详细介绍了京东零售线如何将广告相关的定时任务从半小时优化到秒级的&#xff0c;原文链接&#xff1a; 半小时到秒级&#xff0c;京东零售定时…

登封授牌,花落郑州

近日&#xff0c;“大禹故里故都”授牌仪式在河南省登封市隆重举行&#xff0c;河南省社科院有关单位将匾牌授予登封市。报道称&#xff1a;至此&#xff0c;千百年来备受争议的大禹故里、故都问题&#xff0c;终于尘埃落定&#xff0c;华夏立国始祖大禹终于魂归故里。 略有微词…

QT+串口调试助手+基本版

一、创建串口调试助手UI界面 1、首先生成串口连接必要参数界面&#xff0c;删除关闭串口控件 2、给参数下拉框添加常见的选项&#xff0c;删除关闭串口控件 3、将串口调试助手参数界面布局整齐&#xff0c;删除关闭串口控件 4、更改控件名字&#xff0c;方便后续编程&#xff…

OpenHarmony实战开发-动画曲线、如何实现动画衔接

UI界面除了运行动画之外&#xff0c;还承载着与用户进行实时交互的功能。当用户行为根据意图变化发生改变时&#xff0c;UI界面应做到即时响应。例如用户在应用启动过程中&#xff0c;上滑退出&#xff0c;那么启动动画应该立即过渡到退出动画&#xff0c;而不应该等启动动画完…

特斯拉FSD落地分析

再续前缘 媒体的神经从马斯克的湾流私人飞机起飞那一刻开始,就开始被牵动着。28/4 号的突然访华,在大多数人看来其实已经早已是计划之中,从摆在台面上的消息来看,主要目的是为了在大陆推广FSD的落地,也为8月份FSD 的正式版本做预热,和中国上海的第一次联姻造就了特斯拉m…