《生成式 AI》课程 第7講:大型語言模型修練史 — 第二階段: 名師指點,發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)
资料来自李宏毅老师《生成式 AI》课程,如有侵权请通知下线
Introduction to Generative AI 2024 Springhttps://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.php
摘要
这一系列的作业是为 2024 年春季的《生成式 AI》课程设计的,共包含十个作业。每个作业都对应一个具体的主题,例如真假难辨的世界、AI 应用开发、AI催眠大师、LLM 微调等。
承接上一讲:
《生成式 AI》课程 第6講:大型語言模型修練史 — 第一階段: 自我學習,累積實力-CSDN博客这一系列的作业是为 2024 年春季的《生成式 AI》课程设计的,共包含十个作业。每个作业都对应一个具体的主题,例如真假难辨的世界、AI 应用开发、AI催眠大师、LLM 微调等。接续上一篇博文《生成式 AI》课程 第5講:訓練不了人工智慧?你可以訓練你自己 (下)-CSDN博客这一系列的作业是为 2024 年春季的《生成式 AI》课程设计的,共包含十个作业。每个作业都对应一个具体的主题,例如真假难辨的世界、AI 应用开发、AI催眠大师、LLM 微调等。https://blog.csdn.net/chenchihwen/article/details/144005688?spm=1001.2014.3001.5501PPT 资源
第二阶段 “名师指点,发挥潜力” https://download.csdn.net/download/chenchihwen/90031390
该文档主要讲述大型语言模型的训练过程,特别是第二阶段 “名师指点,发挥潜力” 的相关内容,包括督导式学习(Supervised Learning)和指令微调(Instruction Fine - tuning)等方法,以及不同训练路线(打造专才模型和通才模型)的特点与发展。具体如下:
幻灯片主要内容总结
摘要说明
- 督导式学习与指令微调
- 人类老师教导模型,通过提供问题和答案来训练,如 “台湾最高的山是哪座?”“玉山” 等,但人力成本高且难以收集大量资料。在这个过程中,输入包含 “USER” 和 “AI” 的对话格式,模型逐步预测下一个词,训练方式为督导式学习,同时涉及资料标注工作。
- 关键在于利用第一阶段的参数作为初始参数,这样可以避免与第一阶段参数差异过大,从而在预训练(Pre - train)基础上进行指令微调,如 GPT - 3、PaLM 等模型。还介绍了 Adapter(如 LoRA)等技术,可在少量资料情况下进行优化。
- 模型的 “举一反三” 能力
- 以在多种语言上预训练后的模型为例,如 Multi - BERT,在学习了英文阅读能力测试后,能自动应用于中文阅读能力测试,展示了模型强大的迁移学习能力。
- 训练路线分化
- 打造一堆专才模型(路线一)
- 针对不同任务训练专门的模型,如翻译专才、摘要专才、编修专才等,仅使用对应任务的训练资料。以 BERT 系列为例,介绍了其在不同常见任务(如单句子分类、成对标句子分类、问答任务等)中的应用及微调方式。
- 直接打造一个通才模型(路线二)
- 收集涵盖各种任务的大量标注资料进行预训练,使模型学会多种技能,如翻译、编修、摘要等,并能处理组合任务。例如 FLAN(Finetuned Language Net)、T0 等模型,在多个任务类型上进行训练和测试,展示了通才模型的性能表现。还提到了 Chain - of - thought finetuning、Multi - task instruction finetuning 等技术提升模型推理和泛化能力,以及 Instruct GPT 在指令微调中的数据使用情况。
- 打造一堆专才模型(路线一)
- 指令微调的重要性及相关实践
- 强调 Instruction Fine - tuning 的关键作用,如 Meta 在训练中发现高质量的 Instruction Fine - tuning 资料对提升结果有显著影响,适量的高质量标注数据(如数万条)就能达到较好效果。
- 介绍了 Self - Instruct 方法,即先让 ChatGPT 想任务,再根据任务生成输入和答案,用于生成 Instruction Fine - tuning 资料。同时指出以 ChatGPT 为逆向工程对象存在风险,如违反 OpenAI 使用条款中的相关规定(如禁止反向编译、利用服务输出开发竞争模型、非法提取数据等)。
- 模型开源与发展趋势
- Meta 开源了 LLaMA,引发了一系列基于其的模型开发,如 Alpaca、Vicuna 等,开启了人人可微调大型语言模型的时代,模型在不同领域(如中文、多模态、数学、金融、医学、法律、双语等)得到进一步发展和应用,如 Open - Chinese - LLaMA、MiniGPT - 4、ChatMed、LAWGPT 等。还提及了不同模型在数据集、训练代码、评估方式、训练成本等方面的差异。
幻灯片内容
幻灯片 1:模型学习阶段与问题引出
- 页面内容:回顾大型语言模型修炼的三个阶段,重点指出当前模型虽从网络资料学习了很多知识,但缺乏使用方法,如同有上乘内功却不会运用,从而引出人类老师教导的必要性。
- 摘要说明:承上启下,在总结前期模型学习情况的基础上,提出模型面临的新问题,为后续介绍人类指导下的训练方式做铺垫,强调从单纯数据学习向有指导学习的过渡。
幻灯片 2:督导式学习过程
- 页面内容:详细展示人类老师教导模型的示例,包括问题(如 “台湾最高的山是哪座?”“你是谁?”“教我骇入邻居家的 Wifi” 等)和相应答案,同时呈现模型在处理这些问题时的输入输出过程,如对 “台湾最高的山是哪座?” 逐步预测出 “玉”“山”“[END]” 等,解释了督导式学习中资料标注的情况,以及输入中 “USER” 和 “AI” 的作用。
- 摘要说明:通过具体实例深入剖析督导式学习的操作流程,让读者清晰了解模型如何在人类老师提供的样本下进行学习,以及这种学习方式的细节和特点,包括数据格式、预测顺序等。
幻灯片 3:督导式学习的局限性
- 页面内容:阐述督导式学习面临的人力成本高和资料收集量有限的问题,以 “如果输入出现「最」,就回答「玉山」” 为例,说明模型可能过度依赖简单规则,无法应对复杂情况,如 “世界最深的海沟在哪?”,强调仅靠人类老师教导难以实现全面有效的训练。
- 摘要说明:分析督导式学习方式在实际应用中的不足之处,从人力和模型表现两个方面进行探讨,突出需要新的训练策略来克服这些局限,为引入预训练和指令微调等方法提供背景。
幻灯片 4:预训练与指令微调的关键
- 页面内容:强调预训练阶段参数作为指令微调初始参数的重要性,说明使用第一阶段参数作为起点,能使模型在少量人类标注资料的情况下进行优化,不会与第一阶段参数差异过大,以 GPT - 3、PaLM 为例,介绍在这个过程中如何结合任何文字资料和人类标注资料进行训练,同时提及 Adapter(如 LoRA)技术在其中的作用。
- 摘要说明:详细解释预训练和指令微调相结合的训练机制,突出初始参数的关键作用,阐述如何在保证模型既有知识基础上,通过少量有针对性的标注数据进一步提升模型性能,使读者理解模型训练过程中不同阶段参数的利用和优化方式。
幻灯片 5:模型的迁移学习能力
- 页面内容:以 Multi - BERT 为例,展示在多种语言上预训练后的模型强大的迁移学习能力,如学习英文阅读能力测试后能自动应用于中文阅读能力测试,体现模型在不同语言和任务间举一反三的能力,通过实验数据(如不同模型在中英文问答任务中的 EM 和 F1 分数)进一步说明这种能力的效果。
- 摘要说明:通过具体模型和实验数据,生动呈现大型语言模型在多语言预训练后的迁移学习优势,让读者直观感受到模型的泛化能力及其在实际应用中的价值,拓展对模型学习能力的认识。
幻灯片 6:训练路线分化 - 专才模型
- 页面内容:介绍训练路线中的第一种,即打造一堆专才模型,针对不同任务(如翻译、编修、摘要等)使用仅包含对应任务的训练资料进行训练,以 BERT 系列为例,详细说明其在单句子分类、成对标句子分类、问答任务等常见任务中的微调方式和应用场景,展示不同任务下模型的训练和输出特点。
- 摘要说明:系统阐述专才模型的训练理念、方法和应用,以 BERT 系列为典型案例,深入剖析其在各类具体任务中的工作方式,使读者清晰了解针对特定任务打造专业模型的流程和优势。
幻灯片 7:训练路线分化 - 通才模型
- 页面内容:阐述直接打造通才模型的路线,收集涵盖各种任务的大量标注资料进行预训练,使模型学会多种技能(如翻译、编修、摘要等)并能处理组合任务,以 FLAN(Finetuned Language Net)、T0 等模型为例,展示其在多个任务类型(如自然语言推理、阅读理解、闭卷问答、翻译等)上的训练和性能表现,提及 Chain - of - thought finetuning、Multi - task instruction finetuning 等技术对通才模型推理和泛化能力的提升作用,以及 Instruct GPT 在指令微调中的数据来源和使用情况。
- 摘要说明:全面介绍通才模型的训练模式、技术手段和实际表现,通过多个模型实例和任务类型,深入分析通才模型如何在广泛的任务领域中实现能力的综合提升,使读者理解打造通用型模型的策略和效果。
幻灯片 8:指令微调的重要性与实践
- 页面内容:再次强调 Instruction Fine - tuning 在模型训练中的关键作用,以 Meta 的实践为例,说明高质量的 Instruction Fine - tuning 资料对提升模型结果的重要性,适量的高质量标注数据(数万条)就能达到较好效果,介绍 Self - Instruct 方法,即先让 ChatGPT 想任务,再根据任务生成输入和答案,用于生成 Instruction Fine - tuning 资料,同时指出以 ChatGPT 为逆向工程对象存在违反 OpenAI 使用条款的风险,如禁止反向编译、利用服务输出开发竞争模型、非法提取数据等。
- 摘要说明:深入探讨指令微调环节的重要意义、实践方法和潜在风险,从数据质量、生成方式到法律合规性等多方面进行分析,使读者认识到指令微调在模型优化中的核心地位以及在实施过程中需要注意的问题。
幻灯片 9:模型开源与发展趋势
- 页面内容:介绍 Meta 开源 LLaMA 引发的一系列模型开发,如 Alpaca、Vicuna 等,展示了基于 LLaMA 的模型在不同领域(如中文、多模态、数学、金融、医学、法律、双语等)的进一步发展和应用,列出不同模型在数据集、训练代码、评估方式、训练成本等方面的差异,呈现人人可微调大型语言模型时代的模型发展生态。
- 摘要说明:概述模型开源后的发展态势,通过列举多种基于开源模型的衍生模型及其特点,展示模型在不同领域的拓展和创新,使读者了解当前大型语言模型领域的多元化发展格局和开源带来的广泛影响。
https://arxiv.org/abs/2303.18223
大型语言模型综述 A Survey of Large Language Models_大语言模型文献综述有哪些-CSDN博客文章浏览阅读1.6k次,点赞45次,收藏21次。文章源自这是一篇关于大语言模型(LLMs)的综述论文,主要介绍了 LLMs 的发展历程、技术架构、训练方法、应用领域以及面临的挑战等方面,具体内容如下:摘要 —— 自从图灵测试在 20 世纪 50 年代被提出以来,人类已经探索了机器对语言智能的掌握。语言本质上是一个由语法规则支配的复杂、复杂的人类表达系统。它对开发有能力的人工智能(AI)算法来理解和掌握语言提出了重大挑战。作为一种主要方法,语言建模在过去的二十年里被广泛研究用于语言理解和生成,从统计语言模型发展到神经语言模型。_大语言模型文献综述有哪些https://blog.csdn.net/chenchihwen/article/details/143860043?spm=1001.2014.3001.5502
相关文章:
《生成式 AI》课程 第7講:大型語言模型修練史 — 第二階段: 名師指點,發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)
资料来自李宏毅老师《生成式 AI》课程,如有侵权请通知下线 Introduction to Generative AI 2024 Springhttps://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.php 摘要 这一系列的作业是为 2024 年春季的《生成式 AI》课程设计的,共包含十个作业。…...

学习C#中的反射
在C#编程中,反射(Reflection)是一项强大且灵活的技术,它允许程序在运行时动态地获取类型信息、创建对象实例、调用方法、访问字段和属性等。这种机制极大地增强了程序的动态性和可扩展性,使得开发者能够在编译时未知的…...
学习使用jquery实现在指定div前面增加内容
学习使用jquery实现在指定div前面增加内容 设计思路代码示例 设计思路 选择要添加内容的指定元素: 使用jQuery选择器来选择你希望在其前添加内容的元素。例如,如果你有一个 元素,其ID为qipa250,你可以使用$(‘#qipa250’)来选择…...
react项目初始化配置步骤
1.npx create-react-app 项目名称 vue项目同理 2.去编辑器市场安装所需插件,例如ESlint以及Prettier-Code formatter formatiing-toggle 3.在项目中安装 ESLint 和 Prettier 及相关插件: 3.1: npm install --save-dev eslint prettier 3.2…...

vue使用百度富文本编辑器
1、安装 npm add vue-ueditor-wrap 或者 pnpm add vue-ueditor-wrap 进行安装 2、下载UEditor 官网:ueditor:rich text 富文本编辑器 - GitCode 整理好的:vue-ueditor: 百度编辑器JSP版 因为官方的我没用来,所以我自己找的另外的包 …...
异常处理(6)自定义异常
异常处理(6)自定义异常类 1、自定义异常要求: (1)要继承一个异常类型 自定义一个编译时异常类型:自定义类继承java.lang.Exception。 自定义一个运行时异常类型:自定义类继承java.lang.Runtim…...

微软正在测试 Windows 11 对第三方密钥的支持
微软目前正在测试 WebAuthn API 更新,该更新增加了对使用第三方密钥提供商进行 Windows 11 无密码身份验证的支持。 密钥使用生物特征认证,例如指纹和面部识别,提供比传统密码更安全、更方便的替代方案,从而显著降低数据泄露风险…...

时间的礼物:如何珍视每一刻
《时间的礼物:如何珍视每一刻》 夫时间者,宇宙之精髓,生命之经纬,悄无声息而流转不息,如织锦之细线,串联古今,贯穿万物。 人生短暂,犹如白驹过隙,倏忽而逝,…...
初级 Python 数据脱敏技术及应用
文章目录 引言:为什么需要数据脱敏?常见的数据脱敏技术字符替换加密脱敏数据伪造组合策略 数据脱敏的合规性和伦理脱敏方案选择脱敏操作的性能优化结论 引言:为什么需要数据脱敏? 随着数据隐私问题越来越受到重视,数据…...
1063 Set Similarity (25)
Given two sets of integers, the similarity of the sets is defined to be Nc/Nt100%, where Nc is the number of distinct common numbers shared by the two sets, and Nt is the total number of distinct numbers in the two sets. Your job is to calculate th…...

Web登录页面设计
记录第一个前端界面,暑假期间写的,用了Lottie动画和canvas标签做动画,登录和注册也连接了数据库。 图片是从网上找的,如有侵权私信我删除,谢谢啦~...
【大数据学习 | Spark】Spark on hive与 hive on Spark的区别
1. Spark on hive Spark on hive指的是使用Hive的元数据(Metastore)和SQL解析器(HiveQL)。这种方式下,spark可以读取和写入hive表,利用hive的元数据信息来进行表结构的定义和管理。 具体特点为: 1.1 元数据共享 sp…...
软件测试丨Pytest 第三方插件与 Hook 函数
Pytest不仅是一个用于编写简单和复杂测试的框架,还有大量的第三方插件以及灵活的Hook函数供我们使用,这些功能大大增强了其在软件测试中的应用。通过使用Pytest,测试开发变得简便、安全、高效,同时也能帮助我们更快地修复Bug&…...

Python学习35天
# 定义父类 class Computer: CPUNone MemoryNone diskNone def __init__(self,CPU,Memory,disk): self.disk disk self.Memory Memory self.CPU CPU def get_details(self): return f"CPU:{self.CPU}\tdisk:{self.disk}\t…...

IO基础(字符集与字符流)
在字节流中,文件中的中文显示的是乱码。 在计算机存储体系中,以字节为最小存储单位,一个英文占一字节。 字符集类型 ASCII字符集,又叫编码表,编码表中有128个数据,其中大小写字母、符号、数字等。GB2312…...

LLM应用-prompt提示:RAG query重写、相似query生成 加强检索准确率
参考: https://zhuanlan.zhihu.com/p/719510286 1、query重写 你是一名AI助手,负责在RAG(知识库)系统中通过重构用户查询来提高检索效果。根据原始查询,将其重写得更具体、详细,以便更有可能检索到相关信…...
[python脚本处理文件入门]-17.Python如何操作Excel文件的读写
哈喽,大家好,我是木头左! 在Python中,处理Excel文件最常用的库之一是xlrd,它用于读取Excel文件。而当需要创建或写入Excel文件时,xlwt库则是一个不错的选择。这两个库虽然功能强大,但使用起来也非常简单直观。 安装与导入 确保你已经安装了这两个库。如果没有安装,可以…...

深度理解进程的概念(Linux)
目录 一、冯诺依曼体系 二、操作系统(OS) 设计操作系统的目的 核心功能 系统调用 三、进程的概念与基本操作 简介 查看进程 通过系统调用获取进程标识符 通过系统调用创建进程——fork() 四、进程的状态 操作系统中的运行、阻塞和挂起 理解linux内核链表 Linux的进…...

【C++】STL容器中的比较函数对象
目录 set、map容器 priority_queue容器 在STL中涉及到以某种规则排序的容器都需要比较函数对象,比如:set、map、priority_queue这些容器内部都是依赖比较函数对象以某种规则存储数据的。STL容器中的比较函数对象可以是:函数指针、仿函数(函…...
深度学习基础02_损失函数BP算法(上)
目录 一、损失函数 1、线性回归损失函数 1.MAE损失 2.MSE损失 3.SmoothL1Loss 2、多分类损失函数--CrossEntropyLoss 3、二分类损失函数--BCELoss 4、总结 二、BP算法 1、前向传播 1.输入层(Input Layer)到隐藏层(Hidden Layer) 2.隐藏层(Hidden Layer)到输出层(Ou…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...