大模型微调实战笔记

news2024/11/24 20:05:27

大模型三要素

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.coloradmin.cn/o/1400524.html

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

相关文章

Mysql流程控制函数

1概述 Mysql中的流程控制函数非常重要,可以根据不同的条件,执行不同的流程转换,可以在SQL语句中实现不同的条件选择。MySQL中的流程处理函数主要包括IF()、IFNULL()和CASE()函数。 1.1 IF函数 SELECT IF(1 > 0, 正确, 错误);1.2 IFNULL…

ROS第 12 课 Launch 启动文件的使用方法

文章目录 第 12 课 Launch 启动文件的使用方法1.本节前言2.Lanuch 文件基本语法2.2 参数设置2.3 重映射嵌套 3.实操练习 第 12 课 Launch 启动文件的使用方法 1.本节前言 我们在前面的教程里面通过命令行来尝试运行新的节点。但随着创建越来越复杂的机器人系统中,打…

idea运行卡顿优化方案

文章目录 前言一、调整配置1. idea.properties2. idea.vmoptions3.heap size4.Plugins5.Inspections 总结 前言 本人电脑16G内存,处理器i7 10代,磁盘空间也够用,整体配置够用,但运行idea会很卡,记录优化过程&#xff…

【JavaEE】文件操作与IO

作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…

vue3+vite:封装Svg组件

前言 在项目开发过程中,以svg图片引入时,会遇到当hover态时图片颜色修改的场景,我们可能需要去引入另一张不同颜色的svg图片,或者用css方式修改,为了方便这种情况,需要封装svg组件来自定义宽高和颜色&…

IaC基础设施即代码:Terraform 进行 lifecycle 生命周期管理

目录 一、实验 1.环境 2.Terraform 创建网络资源 3.Terraform 进行 create_before_destroy(销毁前创建新资源) 4.Terraform 进行 prevent_destroy(防止资源被销毁) 5.Terraform 进行 ignore_changes(忽略资源的差…

记录汇川:H5U与Factory IO测试15

主程序: 子程序: IO映射 子程序: 出料程序 子程序: 视觉判断 子程序: 自动程序 Factory IO配置: 实际动作如下: Factory IO测试15

【本科生机器学习】【北京航空航天大学】课题报告:支持向量机(Support Vector Machine, SVM)初步研究【上、原理部分】

说明: (1)、仅供个人学习使用; (2)、本科生学术水平有限,故不能保证全无科学性错误,本文仅作为该领域的学习参考。 一、课程总结 1、机器学习(Machine Learning, ML&am…

【Docker】安装 Nacos容器并根据Nginx实现负载均衡

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 &…

Go使用记忆化搜索的套路【以20240121力扣每日一题为例】

题目 分析 这道题很明显记忆化搜索,用py很容易写出来 Python class Solution:def splitArray(self, nums: List[int], k: int) -> int:n len(nums)# 寻找分割子数组中和的最小的最大值s [0]for num in nums:s.append(s[-1] num)#print(s)cachedef dfs(cur,…

跟着pink老师前端入门教程-day07

去掉li前面的项目符号(小圆点) 语法:list-style: none; 十五、圆角边框 在CSS3中,新增了圆角边框样式,这样盒子就可以变成圆角 border-radius属性用于设置元素的外边框圆角 语法:border-radius:length…

1.11马原

同一性是事物存在和发展的前提,一方的发展以另一方的发展为条件 同一性使矛盾双方相互吸收有利于自身的因素,在相互作用中各自得到发展 是事物发展根本规律,唯物辩证法的实质和核心 揭示了事物普遍联系的根本内容和变化发展的内在动力 是贯…

Vue3 在 history 模式下通过 vite 打包部署白屏

Vue3 在 history 模式下通过 vite 打包部署后白屏; 起因 hash 模式 url 后面跟个 # 强迫症犯了改成了 history,就此一波拉锯战开始了 ... 期间 nigix 和 router 各种反复排查尝试最终一波三折后可算是成功了 ... Vue官方文档 具体配置可供参考如下: 先简要介绍下,当前项目打包…

SpringBoot整合Dubbo和Zookeeper分布式服务框架使用的入门项目实例

文章目录 SpringBoot整合Dubbo和Zookeeper分布式服务框架使用的入门项目实例Dubbo定义其核心部分包含: 工作原理为什么要用dubbo各个节点角色说明:调用关系说明: dubbo为什么需要和zookeeper结合使用,zookeeper在dubbo体系中起到什么作用&…

0基础开发EtherNet/IP:协议格式,JAVA、C#、C++处理

经过一阵倒腾,把CIP、Ethernet/ip协议搞到手 协议的概念和理论就不提及了,上网随便一搜索EtherNet/IP遍地都是。 直接将协议关键点列举出来吧。 更多协议资料 www.jngbus.com 通讯软件群 30806722 这里讲解的是TCP和UDP协议的格式,EtherN…

【标准IO】fseek函数、ftell函数、fflush函数、getline函数

目录 fseekftellrewindfflushgetline 橙色 当你在文件中写入了10个字符后,又想把这10个字符读出来,该怎么做呢?因为有文件操作符指针的存在,此时该指针已经指在了这10个字符末尾,所以需要把该指针重定向,这…

RT-Thread Studio学习(十七)虚拟串口

RT-Thread Studio学习(十七)虚拟串口 一、简介二、新建RT-Thread项目并使用外部时钟三、启用USB设备功能四、测试 一、简介 本文将基于STM32F407VET芯片介绍如何在RT-Thread Studio开发环境下实现USB虚拟串口。 硬件及开发环境如下: OS WI…

油管公式(全)

原文:The Youtube Formula 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 每个人都应该有一个 YouTube 频道。真的每个人,尤其是品牌。当我看到没有在 YouTube 上存在的品牌时,我觉得他们疯了。任何人都不利用这个机会是难以想…

python-基础篇-变量

文章目录 变量的基本使用目标01. 变量定义1) 变量演练1 —— iPython2) 变量演练 2 —— PyCharm3) 变量演练 3 —— 超市买苹果思考题 02. 变量的类型2.1 变量类型的演练 —— 个人信息2.2 变量的类型2.3 不同类型变量之间的计算1) **数字型变量** 之间可以直接计算2) **字符串…

从零开始:直播电商APP开发全流程解析

本篇文章,小编将从零开始,全面解析直播电商APP的开发流程,涵盖了关键的技术要点和开发阶段的关键步骤。 第一阶段:需求分析与规划 此阶段的关键任务包括: 1.用户需求调研 2.功能规划 3.技术选型 第二阶段&#xf…