大模型微调实战笔记

大模型三要素

1.算法:模型结构,训练方法

2.数据:数据和模型效果之间的关系,token分词方法

3.算力:英伟达GPU,模型量化

基于大模型对话的系统架构

基于Lora的模型训练最好用,成本低好上手

提示学习:提示工程的支撑

写提示词,让模型完成各种任务。

使用提示(Prompt)工程来提高 LLMs 在各种常见和复杂任务(如问答和算术推理)上的能力。

优点:简单,易上手

缺点:上限有限,模型适配;投资人嫌薄;技术人嫌浅

基础prompt提示

高级prompt提示

大模型的内核:Transformer

主流大模型基于Transformer在这四个地方进行排列组合:

结构、位置编码、激活函数、layer norm

大模型的架构

Encoder-Decoder架构用的少了,因为要达到同样的效果,参数量翻倍。

主要是第二种和第三种在竞争。

为什么大模型很少直接微调?

1.参数多,内存不容易放下。

2.参数多,需要对应更大数据。

3.参数多,不容易收敛。

4.参数多,调参时间过长。

参数高效微调方法(Parameter-Efficient Fine-Tuning,PEFT)

Prefix-Tuning / Prompt-Tuning:在模型的输入或隐层添加 k 个额外可训练的 前缀 tokens(这些前缀是连续的伪 tokens,不对应真实的 tokens),只训练 这些前缀参数;提示词不是单词了,而是向量,直接去调向量。

Adapter-Tuning:将较小的神经网络层或模块插入预训练模型的每一层,这 些新插入的神经模块称为 adapter(适配器),下游任务微调时也只训练这 些适配器参数;在Transformer结果中加了Pk和Pv两个外挂,只学这两个小外挂,需要学习的参数变得很少。

LoRA:通过学习小参数的低秩矩阵来近似模型权重矩阵 W的参数更新,训 练时只优化低秩矩阵参数。Adapter-Tuning是以串联的形式加外挂,LoRA是以并联的形式加外挂。(效果好易上手收敛快)

大数据类型

数据的分类:

• 网页数据(web data):量大。

• 专有数据(curated high-quality corpora):质高。

模型需要数据:

基座模型:GLM,GPT具备语言理解能力,但是不具备对话能力

使用数据:非结构化纯文本数据

对话模型:

ChatGLM,ChatGPT在基座模型的基础上,进行对话的专项训练

使用数据:结构化QA数据

PALM大模型数据来源

BLOOM大模型数据语言

常用数据集

常见英文数据集

常见中文数据集

幂律

Scaling Laws简单介绍就是:随着模型大小、数据集大小和训练强度,模型的性能 会提高。并且为了获得最佳性能,所有三个因素必须同时放大。当不受其他两个因 素的制约时,模型性能与每个单独的因素都有幂律关系

参数量和数据量之间的关系

当同时增加数据量和模型参数量时,模型表现会一直变好。当其中一个因素受限时,模型表现随另外一个因素增加变好,但是会逐渐衰减。

Test Loss:测试集损失函数越小说明模型效果越好。

数据、算力、参数量之间的关系

大模型的分词(token)

分词粒度:

1.单词分词法:英文(空格分词),中文(jieba分词 or 分字)。

2.单字分词法:英文(字母),中文(分字)。

3.子词分词法:BPE,WordPiece,Unigram。(大模型常用)

成对出现的当成一个子词,比如:葡和萄

常见大模型的词表

算法并行

模型压缩和加速

深度学习领域提出了一系列的模型压缩与加速方法:

•剪枝(Parameter pruning)

•低秩分解(Low-rank factorization)

•知识蒸馏(Knowledge distillation)

•量化(quantization):大模型时代常用

数据量化

用低精度数表示高精度数,整数表示浮点数。

精度损失对推理影响不大,对训练有影响。

量化的常见三种方法

方式一:对训好的模型进行量化,只量化权重,不能量化激活函数输出的值。

方式二:跑测试数据,能量化激活函数输出的值。

方式三:训练模型时直接量化,将量化嵌入到学习中。成本高,效果好。

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

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

相关文章

CentOS 7安装全解析:适合初学者的指导

目录 前言 一.centos安装 1.下载镜像文件 2.安装 二.远程连接,换源 1.下载并且使用MobaXtermMobaXterm free Xserver and tabbed SSH client for Windows (mobatek.net)https://mobaxterm.mobatek.net/ 远程连接 2.换源 前言 在当今的信息化时代&#xff0c…

【Leetcode 965.】判断单值二叉树

单值二叉树: 示例一: 示例二: 代码: bool isUnivalTree(struct TreeNode* root) {if(rootNULL)return true;if(root->left&&root->left->val!root->val)return false;if(root->right&&root-&…

【LeetCode-135】分发糖果(贪心)

LeetCode135.分发糖果 题目描述 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。…

Neos的渗透测试靶机练习——DarkHole-2

DarkHole-2 一、实验环境二、开始渗透1. 搜集信息2. git文件泄露3. SQL注入4. 提权 三、总结 一、实验环境 虚拟机软件:VirtualBox 攻击机:kali linux(网卡初始为仅主机模式,要有安全意识) 靶机:DarkHole-…

vue3+Element plus实现登录功能

一、想要实现的效果 二、搭建登录静态 1、实现左边背景和右边登录栏的总体布局布局&#xff1a; <el-row class"content"><!--el-col 列&#xff1a; --><el-col :span"16" :xs"0" class"content-left"></el-c…

仓储管理系统——软件工程报告(可行性研究报告及分析)①

可行性研究报告及分析 一、问题定义 1.1项目背景 随着社会的发展以及企业规模的扩大和业务的复杂化&#xff0c;仓库管理变得愈发重要。传统的手工管理方式已经导致了一系列问题&#xff0c;包括库存准确性低、订单处理效率慢等。为了提高仓库运作效率、降低成本并优化库存管…

unity 单例模式(实例详解)

文章目录 在Unity中&#xff0c;单例模式是一种常用的编程设计模式&#xff0c;用于确保在整个应用程序生命周期中&#xff0c;只有一个类的实例存在。这样可以保证数据的全局唯一性和共享性&#xff0c;例如游戏场景中的资源管理器、游戏控制器、事件管理器等。 以下是一个简单…

如何用 500 行 SQL 实现 GPT2学习

目录 理论背景实现过程GenerationTokenizerEmbeddingsAttention为什么我们需要有因果掩码&#xff1f;为什么矩阵是 Q&#xff0c;K 和 V&#xff1f; BlocksTokens为什么要使用 softmax 转换概率&#xff1f;Inference 俄罗斯有个大佬每年都会用 SQL 来实现一个挑战庆祝新年&a…

Android:JNI实战,理论详解、Java与Jni数据调用

一.概述 上一篇博文讲解了如何搭建一个可以加载和链接第三方库、编译C/C文件的Jni Demo App。 这篇博文在这个Jni Demo App的基础上&#xff0c;从实战出发详细讲解 Jni 开发语法。 接下来&#xff0c;先用一小节将Jni开发比较重要的理论知识点过一下&#xff0c;然后进行代…

matlab appdesigner系列-常用17-编辑字段(数值、文本)

编辑字段&#xff08;数值、文本&#xff09;可直接键入数值、文本&#xff0c;其他组件直接调用其值。也可以利用把其他组件回调的值&#xff0c;返回到编辑字段&#xff08;数值、文本&#xff09;进行显示。 示例&#xff1a;利用按钮组件改变编辑字段&#xff08;数值&…

详解APQC流程分级分类框架PCF13个高阶分类和5级业务流程

一&#xff1a;什么是APQC 美国生产力与质量中心(American Productivity and Quality Center&#xff0c;简称为APQC)&#xff0c;创立于1977年是一个会员制的非营利机构&#xff0c;使命是“发现有效的改进方法&#xff0c;广泛地传播其发现成果&#xff0c;实现个人之间及其…

etcd基本介绍

etcd基本介绍 ETCD是SoreOs公司发布的一个分布式的、高可用的、key-value存储的数据库。基于Go语言实现&#xff0c;k8s中也使用了ETCD作为数据库。主要用于共享配置和服务发现。相对于zookeeper采用的Paxos&#xff0c;ETCD采用的是Raft算法&#xff0c;该算法具备的性能更佳…

Centos7 安装redis 详细步骤访问不了github和windows系统下载

windows系统下载 https://hellowindows.cn/ VMware虚拟机安装Windows Server 2016 VL https://blog.csdn.net/qq_37545849/article/details/134828341 VMware全屏时不显示上方命令栏的边缘 此时如果要返回&#xff0c;可以把鼠标移动至屏幕上方边缘短暂停留以呼出命令栏。或使…

第二篇【传奇开心果短博文系列】Python的OpenCV库技术点案例示例:图像处理

传奇开心果短博文系列 系列短博文目录Python的OpenCV库技术点案例示例短博文系列 博文目录一、项目目标二、第一个示例代码三、第二个示例代码四、第三个示例代码五、第四个示例代码六、第五个示例代码七、知识点归纳总结 系列短博文目录 Python的OpenCV库技术点案例示例短博文…

OPENGL光线追踪

纪念一下运行出了光线追踪代码,用了glfw和glad。 光线的数学表达式 一条光线实际上只是一个起点和一个传播方向&#xff0c;因此光线表达式为&#xff1a; p(t) e t (s-e) 光线与球相交 已知球体的隐式方程为&#xff1a; 把光线 p(t) e t d 代入上述方程&#xff0c;得…

基于SpringBoot Vue医院门诊管理系统

大家好✌&#xff01;我是Dwzun。很高兴你能来阅读我&#xff0c;我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结&#xff0c;还为大家分享优质的实战项目&#xff0c;本人在Java项目开发领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#x…

RPC和HTTP,它们之间到底啥关系

既然有 HTTP 请求&#xff0c;为什么还要用 RPC 调用&#xff1f; gPRC 为什么使用 HTTP/2 Spring Cloud 默认是微服务通过Restful API来进行互相调用各自微服务的方法&#xff0c;同时也支持集成第三方RPC框架&#xff08;这里的说的RPC是特指在一个应用中调用另一个应用的接…

Git--基本操作介绍(2)

Git 常用的是以下 6 个命令&#xff1a;git clone、git push、git add 、git commit、git checkout、git pull. 说明&#xff1a; workspace&#xff1a;工作区staging area&#xff1a;暂存区/缓存区local repository&#xff1a;版本库或本地仓库remote repository&#xf…

Linux 一键部署grafana

grafana 前言 Grafana 是一款开源的数据可视化和监控仪表盘工具。它提供了丰富的数据查询、可视化和报警功能,可用于实时监控、数据分析和故障排除等领域。 通过 Grafana,您可以连接到各种不同的数据源,包括时序数据库(如 Prometheus、InfluxDB)和关系型数据库(如 MySQ…

2008年苏州大学837复试机试C/C++

2008年苏州大学复试机试 题目 编写程序充成以下功能: 一、从键盘上输入随机变量x的 10个取样点。X0&#xff0c;X1—X9 的值; 1、计算样本平均值 2、判定x是否为等差数列 3、用以下公式计算z的值(t0.63) 注。请对程序中必要地方进行注释 补充&#xff1a;个人觉得这个题目回忆…