玄学调参实践篇 | 深度学习模型 + 预训练模型 + 大模型LLM

😍 这篇主要简单记录一些调参实践,无聊时会不定期更新~

在这里插入图片描述

文章目录

  • 0、学习率与batch_size判断
  • 1、Epoch数判断
  • 2、判断模型架构是否有问题
  • 3、大模型 - 计算量、模型、和数据大小的关系
  • 4、大模型调参相关论文经验总结
  • 5、训练时模型的保存

0、学习率与batch_size判断

  • batch_size: 这不用多说,一般按2的指数设置如:2、4、8、16…。设多大基本看你的显卡显存能不能hold得住咯。
  • 学习率: 常用的一些自适应学习率调整策略如:linear_with_warmup、cosine_with_warmup。现在像一些大模型如ChatGLM、LLaMA等的训练里基本都用的cosine。学习率基本就是:3e-5, 4e-5, 5e-5…这样调。
  • 学习率与batch_size的关系: 一般来说,batch_size的大小一般与学习率的大小成正比。batch_size越大一般意味着算法收敛方向的置信度越大,也可以选择较大的学习率来加快收敛速度。而小的batch_size规律性较差,需要小的学习率保证不出错。在显存允许的情况下,选择大的batch-size。

1、Epoch数判断

  • 1、观察训练集和验证集的损失函数(loss)和准确率(accuracy)的变化曲线,如果训练集的指标持续下降或上升,而验证集的指标开始出现反向变化或者停滞不动,那么可能就是过拟合或者欠拟合的现象,需要及时停止训练或者调整参数。【😄提一小点:有时候玄学在于过拟合不一定会导致模型效果变差, 有时反而相反。可以参考instructgpt论文,或者自己在数学、代码等任务试验一下,往往过拟合效果是更好的】
  • 2、使用预训练模型(pre-trained model),比如BERT,GPT等,在大规模的数据集上进行了长时间的训练,已经学习到了很多通用的特征和知识,所以在微调的时候只需要少量的epoch就可以达到很好的效果。
  • 3、Early Stopping,即在每个epoch结束后,用验证集评估模型的性能,如果性能没有提升或者下降了一定次数,就停止训练,并保存最佳的模型。

⭐似乎在一些预训练大模型上开始微调,基本就是wamup用5个左右的epoch;cosine schedule用10个左右的epoch尝试。咱也不知对不对,我以往是这样搞的。自己可以变大变小试试。

2、判断模型架构是否有问题

⭐ 我觉得可以用部分数据,训多几个epoch,看看模型会不会过拟合,如果会,那模型大概没啥问题。

3、大模型 - 计算量、模型、和数据大小的关系

在大模型的研发中,通常会有下面一些需求:

  • 计划训练一个10B的模型,想知道至少需要多大的数据?
  • 收集到了1T的数据,想知道能训练一个多大的模型?
  • 老板准备1个月后开发布会,给的资源是100张A100,应该用多少数据训多大的模型效果最好?
  • 老板对现在10B的模型不满意,想知道扩大到100B模型的效果能提升到多少?

以上这些问题都可以基于Scaling Law的理论进行回答。本文是阅读了一系列 Scaling Law的文章后的整理和思考,包括Scaling Law的概念和推导以及反Scaling Law的场景。
⭐ 解析大模型中的Scaling Law: https://zhuanlan.zhihu.com/p/667489780

4、大模型调参相关论文经验总结

下面是知乎清华老哥的总结:

  • 最近在做一些大模型微调的工作。开始的时候比较头疼怎么调超参数,毕竟不能像小模型那样疯狂跑实验,看结果积累经验了,一是计算量太大,二是大模型比较不好评估(毕竟让模型做选择题不能准确的评估性能,一些垂类领域也很难搞到相关测试集,大部分在微调的工程师都是在调垂类模型吧:)。
  • 其次,如果用GPT4评估又涉及到数据隐私问题,同时下边列举的一篇文章显示,GPT4更倾向于给句子长的、回答更多样性的答案更高的分数,有时候也是不准的。。。)。最后也只能多看看微调/训练相关的论文借鉴借鉴经验了。下边会列出一些最近看的文章,给出重要结论以及我的一些个人观点,如果有感兴趣就去精读一下,希望能帮助到一些微调er,本文章不定期更新。。。
  • ⭐ 文章链接:https://www.zhihu.com/question/607397171

5、训练时模型的保存

  • 一般来说我们会搞个验证集,设置一个评估指标,训练到多少个step或是1个epoch时,测一遍验证集,每次保存在验证集上最优指标对应的模型。
  • 现在的一些大模型训练,基本在训练时不搞验证集,而是看train loss来保存最优模型。最常见的是每隔多少个step,保存一次模型checkpoint。最后训练结束后,再根据loss或是各个checkpoint在验证集的表现来挑个最优模型。

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

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

相关文章

Spring不再支持Java8了

在今天新建模块的时候发现了没有java8的选项了,结果一查发现在11月24日,Spring不再支持8了,这可怎么办呢?我们可以设置来源为阿里云https://start.aliyun.com/ 。 java8没了 设置URL为阿里云的地址

c++——string字符串____迭代器.范围for.修改遍历容量操作

在成为大人的路上喘口气. 目录 🎓标准库类型string 🎓定义和初始化string对象 💻string类对象的常见构造 💻string类对象的不常见构造 💻读写string对象 🎓 string类对象的修改操作 &#x1f4…

爬虫http代理有什么用处?怎么高效使用HTTP代理?

在进行网络爬虫工作时,我们有时会遇到一些限制,比如访问频率限制、IP被封等问题。这时,使用HTTP代理可以有效地解决这些问题,提高爬虫的工作效率。本文将介绍爬虫HTTP代理的用处以及如何高效地使用HTTP代理。 一、爬虫HTTP代理的用…

【数据结构】单链表---C语言版

【数据结构】单链表---C语言版 一、顺序表的缺陷二、链表的概念和结构1.概念: 三、链表的分类四、链表的实现1.头文件:SList.h2.链表函数:SList.c3.测试函数:test.c 五、链表应用OJ题1.移除链表元素(1)题目…

京东数据产品推荐-京东数据挖掘-京东平台2023年10月滑雪装备销售数据分析

如今,滑雪正成为新一代年轻人的新兴娱乐方式,借助北京冬奥会带来的发展机遇,我国冰雪经济已逐渐实现从小众竞技运动到大众时尚生活方式的升级。由此也带动滑雪相关生意的增长,从滑雪服靴到周边设备,样样都需要消费者掏…

微信小程序 scrollview 滚动到指定位置

在微信小程序中,实现 ScrollView 滚动到指定位置有多种方法,下面将介绍三种主要的实现方式。 一、使用scroll-top属性实现滚动 通过设置 scroll-view 组件的 scroll-top 属性,我们可以实现滚动到指定位置。以下是具体实现方式: …

基于STM32单片机的智能家居系统设计(论文+源码)

1.系统设计 基于STM32单片机的智能家居系统设计与实现的具体任务: (1)可以实现风扇、窗帘、空调、灯光的开关控制; (2)具有语音识别功能,可以通过语音控制家电; (3&a…

Win中Redis部署与配置

1.下载msi版本 下载传送门 2.双击next-->next安装安装 3.密码配置以及开机自启 在配置文件中配置相应配置进行配置密码以及端口和ip port 6379指定 Redis 监听端口,默认端口为 6379,作者在自己的一篇博文中解释了为什么选用 6379 作为默认端口&…

计算机网络 一到二章 PPT 复习

啥币老师要隔段时间测试,我只能说坐胡狗吧旁边 第一章 这nm真的会考,我是绷不住的 这nm有五种,我一直以为只有三种 广播帧在后面的学习中经常遇到 虽然老师在上课的过程中并没有太过强调TCP/IP的连接和断开,但我必须强调一下&…

全新付费进群系统源码 完整版教程

首先准备域名和服务器 安装环境:Nginx1.18 MySQL 5.6 php7.2 安装扩展sg11 伪静态thikphp 后台域名/admin账号admin密码123456 代理域名/daili账号admin密码123456 一、环境配置 二、建站上传源代码解压 上传数据库配置数据库信息 三、登入管理后台 后台域名/ad…

基于yolov2深度学习网络的打电话行为检测系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、YOLOv2网络原理 4.2、基于YOLOv2的打电话行为检测 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .................................…

人工智能-优化算法之动量法

对于嘈杂的梯度,我们在选择学习率需要格外谨慎。 如果衰减速度太快,收敛就会停滞。 相反,如果太宽松,我们可能无法收敛到最优解。 泄漏平均值 小批量随机梯度下降作为加速计算的手段。 它也有很好的副作用,即平均梯度…

Java---抽象类讲解

文章目录 1. 抽象类概述2. 抽象类特点3. 抽象类的成员特点4. 抽象类猫狗应用 1. 抽象类概述 在Java中,一个没有方法体的方法应该定义为抽象方法;而类中如果有抽象方法,该类必须定义为抽象类。 2. 抽象类特点 1. 抽象类和抽象方法必须使用abst…

C语言进阶指南(14)(部分字符串库函数及其模拟实现)

欢迎来到博主的专栏——C语言进阶指南 博主id:reverie_ly 文章目录 1、strlen()——字符串长度计算函数自定义strlen函数的实现 2、strcpy——字符串拷贝函数strcpy的模拟实现 3.strcat——字符串追加函数strcat的模拟实现 4、strcmp——字符…

【计算机毕业设计】nodejs+vue音乐播放器系统 微信小程序83g3s

本系统的设计与实现共包含12个表:分别是配置文件信息表,音乐列表评论表信息表,音乐论坛信息表,歌手介绍信息表,音乐资讯信息表,收藏表信息表,token表信息表,用户表信息表,音乐类型信…

selenium使用记录

本文记录python环境下使用selenium的一些步骤 Step1:安装并配置驱动 pip install selenium # 使用pip在对应python中安装selenium包为了让selenium能调用指定的浏览器,需要下载对应浏览器的驱动程序(这里以edge为例子) #Firefo…

DockerCompose修改某个服务的配置(添加或编辑端口号映射)后如何重启单个服务使其生效

场景 docker-compose入门以及部署SpringBootVueRedisMysql(前后端分离项目)以若依前后端分离版为例: docker-compose入门以及部署SpringBootVueRedisMysql(前后端分离项目)以若依前后端分离版为例_docker-compose部署java mysql redis-CSDN博客 上面讲了docker c…

centos7-docker安装与使用

文章目录 一、docker简介1.1docker应用场景1.2docker的优点1.2.1快速,一致地交付应用程序1.2.2响应式部署和扩展1.2.3在同一硬件上运行更多工作负载 1.2docker的架构 二、docker的安装2.1新系统的环境搭建2.1.1更换yum源 2.2安装docker与卸载2.2.1yum安装docker2.2.…

SpringBoot——Swagger2 接口规范

优质博文:IT-BLOG-CN 如今,REST和微服务已经有了很大的发展势头。但是,REST规范中并没有提供一种规范来编写我们的对外REST接口API文档。每个人都在用自己的方式记录api文档,因此没有一种标准规范能够让我们很容易的理解和使用该…

【数据结构】八大排序 (三)

目录 前言: 快速排序 快速排序非递归实现 快速排序特性总结 归并排序 归并排序的代码实现 归并排序的特性总结 计数排序 计数排序的代码实现 计数排序的特性总结 前言: 前文快速排序采用了递归实现,而递归会开辟函数栈帧&#xff0…