《生成式 AI》课程 第7講:大型語言模型修練史 — 第二階段: 名師指點,發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)
资料来自李宏毅老师《生成式 AI》课程,如有侵权请通知下线
Introduction to Generative AI 2024 Spring
https://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…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
