疯狂的2023年已过,聊聊我对大模型微调技术几点实践思考

大家好,今天聊聊我对大模型微调技术几点实践看法,喜欢记得收藏、关注、点赞。

更多技术交流,资料,文末加入我们技术群获取。

为什么要对大模型进行微调(Fine-tuning)

与其说对 LLM 大模型进行微调,不如说“能力增强”更体贴,由于 LLM 大模型的预训练的数据样本知识容量“相对有限”,造成 LLM 大模型有以下3个方面的缺陷:

第一、知识库更新不及时,比如:GPT 4 Turbo 的知识截止时间是 2023年04月,你问它 OpenAI 的宫斗大戏,它是不知道的。

第二、缺少企业级高质量垂直数据知识,比如:企业内部的项目数据、流程数据、业务数据、代码数据等,造成在行业垂直问答会出现一定的幻觉现象。

第三、数据安全和隐私问题是每个企业的生命线,企业需要牢牢掌握在自己手里,稳定性也是企业密切关注的,比如:最近的阿里云大事故、滴滴大事故、ChatGPT 崩溃事故等,让企业对数据安全和稳定性更加敬畏,如履薄冰。

解决 LLM 大模型的上述缺陷,就有了大模型能力增强技术,从广义来讲,LLM 能力增强技术有两条路线:微调(Fine-tuing)和 RAG(Retrieval Augmented Generation)。

这两种技术的比较对比如下:

图片

今天我们先分享下微调(Fine-tuning)能力增强技术。

大模型微调(Fine-tuning)技术落地

大模型微调有2种方式,全参数 Fine-tuning 和 小参数量 Fine-tuning。全参数 Fine-tuning 成本实在太高,比如:GPT-3 全参数微调一次要花费 140万美金,因此在企业实际实践中使用的是小参数量微调,又称为参数高效微调 PEFT(Parameter Efficient Fine Tuning)。

PEFT 在企业中常用的实践方法有以下几种:Prompt-tuning、Prefix tuning、Adapter、LLaMA-adapter、P-Tuning V2、LoRA 等。

这几种常用的微调方式准确性(Acc)和损失(Loss)实践对比如下:

图片

基于 LoRA 的微调实现有以下5个步骤

第一、数据工程,准备好需要微调的样本数据,按照大模型的微调数据格式整理好,比如:{“context”:“双12马上到了,应该给程序员同学推荐什么类型的学习课程?”,“target”:“AIGC 学习计划”}。

第二、选用参数高效微调框架,推荐 https://github.com/huggingface/peft

图片

第三、选用微调 LLM 大模型,推荐清华智谱 ChatGLM3。

图片

第四、配置 LLM 大模型微调参数,开始微调训练。

图片

第五、按照验证数据集,对微调后的 LLM 大模型进行数据验证。

图片

更详细的实践落地步骤和代码实现可以在我们技术群获取。

总之,掌握好 LLM 大模型微调技术架构和落地实现,对于 IT 人来说是一项非常重要的技能,它可以让您的 LLM 大模型业务研发更高效和创新。

技术交流

技术要学会分享、交流,不建议闭门造车。一个人走的很快、一堆人可以走的更远。

建立了大模型面试&技术交流群, 大模型学习资料、数据代码、技术交流提升, 均可加知识星球交流群获取,群友已超过2000人,添加时切记的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:机器学习社区,后台回复:技术交流
方式②、添加微信号:mlc2060,备注:技术交流

用通俗易懂的方式讲解系列

  • 用通俗易懂的方式讲解:不用再找了,这是大模型最全的面试题库

  • 用通俗易懂的方式讲解:这是我见过的最适合大模型小白的 PyTorch 中文课程

  • 用通俗易懂的方式讲解:一文讲透最热的大模型开发框架 LangChain

  • 用通俗易懂的方式讲解:超全总结!大模型算法岗面试指南来了!

  • 用通俗易懂的方式讲解:基于 LangChain + ChatGLM搭建知识本地库

  • 用通俗易懂的方式讲解:基于大模型的知识问答系统全面总结

  • 用通俗易懂的方式讲解:ChatGLM3 基础模型多轮对话微调)

  • 用通俗易懂的方式讲解:最火的大模型训练框架 DeepSpeed 详解来了

  • 用通俗易懂的方式讲解:这应该是最全的大模型训练与微调关键技术梳理

  • 用通俗易懂的方式讲解:Stable Diffusion 微调及推理优化实践指南

  • 用通俗易懂的方式讲解:大模型训练过程概述

  • 用通俗易懂的方式讲解:专补大模型短板的RAG

  • 用通俗易懂的方式讲解:大模型LLM Agent在 Text2SQL 应用上的实践

  • 用通俗易懂的方式讲解:大模型 LLM RAG在 Text2SQL 上的应用实践

  • 用通俗易懂的方式讲解:大模型微调方法总结

  • 用通俗易懂的方式讲解:涨知识了,这篇大模型 LangChain 框架与使用示例太棒了

  • 用通俗易懂的方式讲解:掌握大模型这些优化技术,优雅地进行大模型的训练和推理!

  • 用通俗易懂的方式讲解:这是大模型检索增强生成(RAG)最全综述!

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

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

相关文章

周期股是什么意思?包括哪些行业?

周期股是什么意思? 所谓的经济周期,又称商业周期或商业循环,是指经济运行中周期性出现的经济扩张与经济紧缩交替更迭,循环往复的一种现象。经济周期是由低迷、复苏、高潮、和衰落构成的,周而复始就形成了所谓的经济景…

HDFS架构 之 服务视图

1 、简介 为实现以上特性,HDFS包含的各个服务模块都是经过精心设计的,HDFS的服务视图如图。 HDFS的服务视图包含三大部分:核心服务、公共服务和拓展服务。 2、 核心服务 1)Namenode。HDFS系统采用中心化设计,即Master/Slave架构。这里的Namenode即是Master,主要作用是管…

影响2024年Web3赛道的三大事件

文章来源Techub News,搜Tehub News下载查看更多Web3资讯。 比特币ETF 2023年12月29日,路透社发布重要消息称,美国证券交易委员会(SEC)可能会在美国时间的1月2日或1月3日通知申请者他们是否获得了推出现货比特币ETF&a…

SouthLeetCode-打卡24年02月第1周

SouthLeetCode-打卡24年02月第1周 // Date : 2024/02/01 ~ 2024/02/04 034.合并两个有序链表 (1) 题目描述 034#LeetCode.21.#北岸计划2024/02/01 将两个升序链表合并为一个新的 升序 链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 (2) 题解代码 cla…

momentJs推导日历组件

实现效果: 代码: 引入momentjs然后封装两个函数构建出基本数据结构 import moment from moment;// 某月有多少天 export const getEndDay (m) > m.daysInMonth();/*** description 获取本月空值数据* param { Date } year { } 年度* param { Number } month …

vue3 之 组合式API—computed

computed计算属性函数 计算属性基本思想和Vue2的完全一致&#xff0c;组合式API下的计算属性只是修改了写法 核心步骤&#xff1a; 导入computed函数执行函数 在回调参数中return基于响应式数据做计算的值&#xff0c;用变量接收 vue <script setup> // 1.导入compute…

【db2】报错 sqlcode=-420 自动类型转换的问题

脚本执行出现未知错误:状志编码(SOLSTATE):xxx 状志字符串:xx 未知错误:DB2 SQL Error: SQLCODE-420, SQLSTATE22018, SQLERRMCDECFLOAT, DRIVER4.18.60 mysql会自动将空值转换成0&#xff0c;而db2不做任何操作。 db2 报错 sqlcode-420 自动类型转换的问题csdn db2 报错 sql…

java中String类常用API

前言&#xff1a;在学习java的String类的时候&#xff0c;有很多的API需要了解&#xff0c;下面我将举出其中在新手学习时使用频率较大的几个API。 先大体看一下有哪几个&#xff1a;&#xff08;如图&#xff09; 目录 1.equals&#xff08;&#xff09;和 equalsIgnoreCase&…

一步步建立一个C#项目(连续读取S7-1200PLC数据)

这篇博客作为C#的基础系列,和大家分享如何一步步建立一个C#项目完成对S7-1200PLC数据的连续读取。首先创建一个窗体应用。 1、窗体应用 2、配置存储位置 3、选择框架 拖拽一个Button,可以选择视图菜单---工具箱 4、工具箱 拖拽Lable控件和TextBook控件 5、拖拽控件 接下来…

RAPTOR:树组织检索的递归抽象处理

RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL Title&#xff1a;树组织检索的递归抽象处理 https://arxiv.org/pdf/2401.18059.pdf 摘要 检索增强语言模型可以更好的融入长尾问题&#xff0c;但是现有的方法只检索短的连续块&#xff0c;限制了整…

国密SM2算法进行数据的加密、签名和验签、解密

一、背景介绍 数据的加解密有很多种方式&#xff0c;几种常用的加密算法如下&#xff1a; DES&#xff08;Data Encryption Standard&#xff09;&#xff1a;对称算法&#xff0c;数据加密标准&#xff0c;速度较快&#xff0c;适用于加密大量数据的场合&#xff1b; 3DES&…

【C++】类和对象(3)

继续学习类和对象的最后一部分知识&#xff0c;主要有初始化列表、static成员、友元、内部类、匿名对象等。 目录 再谈构造函数 构造函数体赋值 初始化列表 explicit关键字 static成员 概念 特性 友元 友元函数 友元类 内部类 匿名对象 拷贝对象时的一些编译器优化…

Android Studio从零基础到APP上线(3)

第3章 简单控件 本章介绍App开发常见的几类简单控件的用法,主要包括:显示文字的文本视图,容纳视图的常用布局,响应点击的按钮控件,显示图片的图像视图等。然后结合本章所学的知识,演示一个实战项目“简单计算器”的设计与实现。 3.1 文本显示 本节介绍如何在文本视图Tex…

『运维备忘录』之 HTTP 响应状态码速查

运维人员不仅要熟悉操作系统、服务器、网络等只是&#xff0c;甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作&#xff0c;持续给大家更新运维工作所需要接触到的知识点&#xff0c;希望大…

java 基础 (1)简介-程序基础-流程控制-数组操作

学习教程 java入门 JavaEE JavaSe JavaMe 简单来说&#xff0c;Java SE就是标准版&#xff0c;包含标准的JVM和标准库&#xff0c;而Java EE是企业版&#xff0c;它只是在Java SE的基础上加上了大量的API和库&#xff0c;以便方便开发Web应用、数据库、消息服务等&#xff0c;…

Day 39 | 动态规划 62.不同路径 、 63. 不同路径 II

62.不同路径 题目 文章讲解 视频讲解 思路&#xff1a;确定dp[i][j]含义&#xff1a;到达[i,j]有多少条路径&#xff1b;递推公式&#xff1a;dp[i][j]dp[i][j-1]dp[i-1][j] class Solution {public int uniquePaths(int m, int n) {int[][] dpnew int[m][n];for(int i0;i&l…

前端基础复习(后端人员看前端知识)

企业级前端项目开发中&#xff0c;需要将前端开发所需要的工具、技术、流程、经验进行规范化和标准化&#xff0c;而不是零散的html、js、css文件堆叠在一起。 首先我们需配置前端的开发基础环境NodeJS&#xff0c;相当于后端人员java开发的JDK。然后搭建前端工程脚手架Vue-cl…

降噪和音频修复 iZotope RX 7 Advanced

iZotope RX 7 Advanced 是一款功能强大的音频修复和增强软件&#xff0c;它能够帮助用户轻松应对各种音频问题&#xff0c;提供全面的工具和技术来优化和改善音频质量。 首先&#xff0c;iZotope RX 7 Advanced 具有出色的降噪功能。无论是背景噪音、杂音还是其他干扰因素&…

【VTKExamples::PolyData】第二十二期 ImplicitSelectionLoop

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例ImplicitSelectionLoop,并解析接口vtkImplicitSelectionLoop,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO…

JVM jstat工具

jstat工具说明 用以判断JVM是否存在内存问题&#xff0c;判断JVM垃圾回收是否正常 jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ] 参数解释&#xff1a; *Options -选项&#xff0c;我们一般使用-gcutil查看GC情况 vmid -VM的进程号&#xf…