大模型微调实战笔记

大模型三要素

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.hqwc.cn/news/421350.html

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

相关文章

【项目日记(三)】内存池的整体框架设计

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:项目日记-高并发内存池⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你做项目   🔝🔝 开发环境: Visual Studio 2022 项目日…

(酒驾检测、人脸检测、疲劳检测、模拟口罩数据集制作、防酒驾)-常用的论文所用的python代码总结

汇总: 学习感悟:如果小白建议一行一行的Debug,看够一定量的代码,自己就自然顺手写代码了。汇总上传的东西用在自己电脑上一般都需要适当修改的。 20,水平翻转图片 19,颜色空间装换HSV对比演示 18,光照补…

永赢基金引入微签电子签章系统实现审批签章电子化

永赢基金管理有限公司采用微签电子签章系统,作为进一步推动办公自动化转型的解决方案。微签在审批签署方面的显著优势,帮助永赢基金有效解决了原有OA系统无法满足电子文件全程电子化、签章不落地的问题,实现办公效率翻倍。 公司概况 永赢基金…

PaddleOCR实现对表格的提取

1、背景 PaddleOCR: 基于飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测、文本识别的训练算法。对pdf/word里的表格中识别出有效信息具有重要意义,比如…

2. SpringBoot3 实战之用户模块接口开发

文章目录 开发模式和环境搭建开发模式环境搭建 1. 用户注册1.1 注册接口基本代码编写1.2 注册接口参数校验 2. 用户登录2.1 登录接口基本代码编写2.2 登录认证2.2.1 登录认证引入2.2.2 JWT 简介2.2.3 登录功能集成 JWT2.2.4 拦截器 3. 获取用户详细信息3.1 获取用户详细信息基本…

【QT+QGIS跨平台编译】之四:【libSSH2+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、libSSH2介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、libSSH2介绍 libSSH2是一个开源的C函数库,用来实现SSH2协议。 SSH(Secure SHell)到目前为止有两个不兼容的版本——SSH1和SSH2。 SSH2避免了RSA的专利问题,并修补了CRC…

matlab 计算相位角

目录 一、功能概述1、相位角2、主要函数二、代码实现1、复数的幅值和相位2、FFT 相位三、参考链接一、功能概述 1、相位角 angle 函数采用复数

可视化 | 【echarts】多组条形图堆叠条形图(toolbox应用)

文章目录 📚js🐇整体框架🐇整体框架🐇option🐇字体大小设置总结 【echarts】渐变条形折线复合图 【echarts】金字塔图 【echarts】中国地图热力图 【echarts】气泡图 html和css同 【echarts】渐变条形折线复合图…

蓝桥杯、编程考级、NOC、全国青少年信息素养大赛—scratch列表考点

1、小小情报员(202309scratch四级24题) 1.准备工作 (1)选择背景 Colorful City; (2)保留角色小猫,选择角色Ballerina。 2.功能实现 (1)角色小猫初始位置…

各分地域如果流量大的情况下 使用什么组网方式最好?V批N还是SDWAN或者其他?

环境: V批N SDWAN MPLS 问题描述: 各分地域如果流量大的情况下 使用什么组网方式最好?V批N还是sdwan或者其他? 解决方案: 当各地域之间的流量较大时,选择合适的组网方式可以提供更好的网络性能和可靠…

东方的博弈论与西方的博弈论

博弈论的本质是研究决策者在互相影响的环境中面临的策略选择问题。它涉及两个或多个决策者之间的冲突和合作,每个决策者根据对其他决策者的行为的预期和自身的利益来制定策略。博弈论的目标是找到最优的策略或解决方案,以实现决策者的最大利益。东方思维…

Linux系统安装Samba服务器

在实际开发中,我们经常会有跨系统之间文件传递的需求,Samba 便是能够在 Windows 和 Linux 之间传递文件的服务,功能也是非常强大和好用,本篇文章将介绍如何在 Linux 系统上安装 Samba 服务,以 CentOS7 系统为例。 一、…