【LLM GPT】李宏毅大型语言模型课程

news2024/11/14 16:54:39

目录

  • 1 概述
    • 1.1 发展历程
    • 1.2 预训练+监督学习
      • 预训练的好处
    • 1.3 增强式学习
    • 1.4 对训练数据的记忆
    • 1.5 更新参数
    • 1.6 AI内容检测
    • 1.7 保护隐私
    • 1.8 gpt和bert
    • 穷人怎么用gpt
  • 2 生成式模型
    • 2.1 生成方式
      • 2.1.1 各个击破 Autoregressive
      • 2.1.2 一次到位 Non-autoregressive
      • 2.1.3 两者结合
    • 2.2 预训练和微调
    • 2.3 指示学习 instruction learning 和 上下文学习 in-context learning
      • 2.2.1 上下文学习 in-context learning
      • 2.2.2 指示学习 instruction learning
      • 2.2.3 chain of thought (CoT) prompting
      • 让模型自动生成prompt
    • 2.3 训练数据的预处理
    • 2.4 Human Teaching (强化学习)
    • KNN+LM
    • 2.5 信心越高,正确率越高
  • 让AI 解释AI
    • 如何判断解释的好不好?
    • 大致流程

1 概述

怎么学习?——给定输入和输出:
在这里插入图片描述
但是这样做不现实,因为这样输入-输出需要成对的资料,而chatgpt 成功解决了这一个难题。

chatgpt不需要成对的资料,只需要一段有用的资料,便可以自己学习内容,如下:
在这里插入图片描述

1.1 发展历程

初代和第二代gpt
在这里插入图片描述
第二代到第三代
在这里插入图片描述
gpt3还会写代码
在这里插入图片描述
其性能表现
在这里插入图片描述
但是gpt3也有缺点在这里插入图片描述

1.2 预训练+监督学习

想要实现chat的功能,就得经过一个监督式学习(问答),就要在预训练后,增加一个监督学习的流程,赋予模型问答能力
在这里插入图片描述

预训练的好处

在多种语言上做过多训练以后,某一语言的任务会帮助其他语言学会同样的任务。

在这里插入图片描述
在这里插入图片描述

实验数据如下:
在这里插入图片描述

1.3 增强式学习

chatgpt还引入了增强式学习,给好的回答更多奖赏回馈。
在这里插入图片描述

1.4 对训练数据的记忆

其能够记得训练数据的部分信息:
在这里插入图片描述

1.5 更新参数

可以通过对话改变其记忆:

在这里插入图片描述

1.6 AI内容检测

检测某一段文字是否为AI生成的,最简单的做法是这样:
在这里插入图片描述

1.7 保护隐私

有时候模型会泄漏训练数据,需要遗忘学习:
在这里插入图片描述

1.8 gpt和bert

一个是做文字接龙,一个是做文字填空:
在这里插入图片描述

穷人怎么用gpt

方法1 缩短输入


把多个问题一起丢进去:
在这里插入图片描述
方法2 自建模型

方法3 LLM cascade

2 生成式模型

主要分为以下三种,注意英文的token指的不是单个完整的单词,而是要把一个单词拆分成前缀后缀的形式,拆解成更小的单位:

在这里插入图片描述

2.1 生成方式

生成式有两种策略——各个击破一次到位,下面先介绍各个击破

2.1.1 各个击破 Autoregressive

每次生成一个(token),然后按照序列形式把全部完整的内容生成:
在这里插入图片描述
这种方式生成效果好,但是所需要的时间长。%

2.1.2 一次到位 Non-autoregressive

x需要先设定最大输出长度,由于不需要每次都保证输出的内容一样长,需要一个end标志符表示结束。
在这里插入图片描述
两者比较:
在这里插入图片描述

2.1.3 两者结合

在这里插入图片描述

2.2 预训练和微调

一般都是先训练一个通用模型,然后在某些任务上做微调(finetune)。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.3 指示学习 instruction learning 和 上下文学习 in-context learning

和chatgpt进行交互的时候,我们的promt可能包可以分为两种情况:指示学习 instruction learning 和 上下文学习 in-context learning。所以在模型训练阶段,我们需要制造一些成对的语料数据加强模型的这两种学习的能力。

前者是给模型一些指示,当模型进行学习和回答,后者是通过一些例子,让模型进行学习和回答。

2.2.1 上下文学习 in-context learning

即让机器在例子中进行学习。为got提供一些例子,比如情感分析中:
在这里插入图片描述
但是不同于传统的模型更新(梯度下降),这里gpt的学习,不会更改其模型参数。
通过例子,虽然不会提升多少情感分析的能力,而是为了唤醒gpt的情感分析能力,这个结果来自一篇文献的实验结论。
在这里插入图片描述

2.2.2 指示学习 instruction learning

让gpt能够看懂指令:
在这里插入图片描述
一个指示学习的例子:判断这句话的情感:给女朋友买了这个项链,她很喜欢。选项:A=好;B=一般;C=差。

训练阶段和测试阶段,可以是不同的任务的指示。
在这里插入图片描述
用人类的语言训练:
在这里插入图片描述

2.2.3 chain of thought (CoT) prompting

让模型给出推理过程,这样能够让模型做出更正确的答案。
在这里插入图片描述
让模型具备这个能力,就得在模型训练阶段给出这样的“带有推理过程”的语料。
在这里插入图片描述

让模型自动生成prompt

这里的promt也可以理解为指令。
1。 使用 soft prompt
之前我们讲的都是hard prompt,但其实还有soft prompt,给一堆向量而不是人类语言。
在这里插入图片描述
2. 使用强化学习。
在这里插入图片描述
3. 让模型自己寻找,下一些特殊指令:
在这里插入图片描述
最佳指令可以极大的提升模型的性能:
在这里插入图片描述

2.3 训练数据的预处理

数据的收集和处理需要用到以下内容:
在这里插入图片描述
去掉重复资料的重要性:假设一段话在训练数据中出现了6w多次,会发现模型很容易说出这些话,因此应该避免这种情况。

在固定运算资源的情况下,如何选择模型规模和数据集规模?有人做了相关实验,一条线表示固定的运算资源情况下的结果,纵轴的越小越好:
在这里插入图片描述
所以要找到每个U型曲线的最低点,把这些最低点串起来可以得到如下的图:
在这里插入图片描述
模型规模和资料最佳适配比:
在这里插入图片描述
除此以外,指示学习(instruction-tuning)也可以大大提升模型的性能。
在这里插入图片描述
在这里插入图片描述

2.4 Human Teaching (强化学习)

这也是一种辅助模型训练的技术(强化学习),可以有效提高模型的性能,让小模型吊打大模型的性能。
在这里插入图片描述

在这里插入图片描述

KNN+LM

一般的LM是这样的运作方式:
在这里插入图片描述
而KNN+LM是这样的,寻找embedding的相似度
在这里插入图片描述
这样做会带来什么神奇的效果?
d
但是这种语言模型非常的慢

2.5 信心越高,正确率越高

在这里插入图片描述

让AI 解释AI

来解读一下这篇文章:
在这里插入图片描述
解释什么?——知道每一个神经元的作用、和哪些词关联度最大:
在这里插入图片描述
有工作发现了某一个神经元遇到以下词时输出会很大,通过观察发现,下一个会出现“an”:
在这里插入图片描述
在这里插入图片描述
如何操作?输入以下promt:
在这里插入图片描述
能得到以下结果:
在这里插入图片描述
其他结果:
在这里插入图片描述

如何判断解释的好不好?

在这里插入图片描述
然后去gpt2模型找到那个神经元检查一下:
在这里插入图片描述

完整的prompt

在这里插入图片描述
纵轴表示可解释性的分数,分数越高,可解释性越好,结论是小模型更容易解释、越底层的神经元越容易解释。
在这里插入图片描述

大致流程

在这里插入图片描述
让模型扮演一个神经元:
在这里插入图片描述
寻找神经元在什么时候激活值较大:
在这里插入图片描述

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

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

相关文章

js包管理yarn与npm,yarn安装,yarn 不是内部或外部命令

目录 yarn与npm 优势 用法区别 安装yarn 报错 yarn 不是内部或外部命令 运行代码(yarn dev) yarn与npm yarn由Facebook为解决npm的一些问题而创建的 优势 快速 本地缓存并行下载 - Yarn并行下载,还可以直接从硬盘缓存中读取包&…

python3 爬虫相关学习8:python 的常见报错内容汇总(持续收集ing)

目录 1 低级错误(比如拼写错误等) 1.1 NameError: 1.2 属性错误 AttributeError: 属性拼写错误 2 应用错误(类型应用,属性使用的错误) 2.1 类型错误 TypeError: 如字符串连接错误 2.2 属性应用错误 Attribu…

【枚举区间思想+DP】子串的子序列

F-子串的子序列_牛客小白月赛62 (nowcoder.com) 题意: 思路: 复盘一下应该有的思路: 首先n^2枚举肯定超时,我们枚举的是一个区间 枚举区间有一些trick: 1.枚举其中一个右(左)端点&#xff…

基于simulink车辆动力学可视化仿真(附源码)

一、前言 车辆动力学是研究汽车在行驶过程中的运动学和力学特性的学科。它研究车辆在不同路面条件、不同驾驶情况下的加速、制动、转向等运动状态,并通过建立数学模型来分析和优化车辆的性能和安全性。车辆动力学是汽车工程、机械工程和物理学等学科的交叉领域&…

【C语言11】文件操作(fgtec,fputc,fgets,fputs,fscanf,fprintf)

1.什么是文件 磁盘上的文件是文件。 但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。 程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后…

unittest教程__expectedFailure预期用例失败(5)

在断言用例执行结果时,会出现预期结果与实际结果不一致的情况,此时我们明确知道用例执行结果为FAIL,不想看到打印错误信息怎么办? 使用装饰器unittest.expectedFailure标记该用例。 import unittestclass Demo(unittest.TestCas…

Tcl常用命令备忘录-format与scan

format 语法:format formatString arg arg ... 参数介绍: formatString:格式化字符串,使用各种标识符和修饰符进行格式化。arg:被格式化的变量或字符串。 Tcl语言中的format命令可以用来格式化字符串输出&#xff…

Autosar代码解析-Source Insight的使用

文章目录 一、Source Insight简介二、Autosar代码查看三、解决办法一、Source Insight简介 Source insight是一款简洁、强大的轻量级代码浏览编辑器,启动快、使用便捷,很多程序员应该都使用过!它几乎支持所有的语言,比如C、C++、ASMA汇编、HTML等,能创建并维护其高性能的符…

【软件测试】性能测试服务端—排查指标问题(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 软件性能测试的目…

【数据类型】C#和Sql Server、Mysql、Oracle等常见数据库的数据类型对应关系

🏆🏆这是小5写的第二篇城市领跑者文章,一起为所在城市领跑助力吧! 🏆🏆在实际项目中,不管是用C#后端编程语言也好,还是Java后端编程语言,都可能会用到不同端的数据类型转…

JAVA-MAVEN初学者教程(配置、pom.xml、依赖管理等)

目录 认识MAVEN安装&配置MAVENwindows安装MAVENMAVEN的配置本地仓库 localRepository镜像 mirrors代理仓库 respositories代理 proxies IDEA配置MAVEN(一个module) MAVEN生命周期install下载包 模块的pom.xml坐标gav打包方式 package属性值 properti…

2023最全Java面试八股(涵盖所有Java核心面试知识点),立刻收藏

2022已成为过去式,不论这一年好与坏,我们都需要抓住新一年的机会,跳槽涨薪,还是学习提升!先给自己定一个小目标,然后再朝着目标去努力就完事儿了! 为了帮大家节约时间,给大家搞来了2…

9.反射和Lambda表达式

目录 一、反射 1.反射是什么 2.反射操作的四个核心类(都处在java.lang.reflect) 3.在java中获取一个类的class对象一共有三种途径: 4.想通过反射来操作类或者对象,第一步就是要获得该类的class对象。 5.Constructor应用 6.Met…

LabVIEW开发光线追踪可视化分段反射器测试台

LabVIEW开发光线追踪可视化分段反射器测试台 为了满足美国国家航空航天局(NASA)对未来望远镜的要求,新的红外空间天文台将在哈勃太空望远镜使用寿命结束后取代其。作为HST的继任者,詹姆斯韦伯太空望远镜(JWST&#xf…

零基础小白如何快速入门网络安全/Web安全?

前言 网络安全现在是朝阳行业,缺口是很大。不过网络安全行业就是需要技术很多的人达不到企业要求才导致人才缺口大 初级的现在有很多的运维人员转网络安全,初级也会慢慢的卷起来,但是岗位多不用怕,以后各大厂也都会要网络安全人…

scratch lenet(6): feature_map可视化的C语言实现

scratch lenet(6): feature_map可视化的C语言实现 文章目录 scratch lenet(6): feature_map可视化的C语言实现1. 目的2. FeatureMap 的归一化2.1 公式2.2 代码实现2.3 代码调用 3. 可视化结果4. References 1. 目的 将卷积层(Convolution)、下采样层(SubSampling&a…

Linux系统之安装Ward服务器监控工具

Linux系统之安装Ward服务器监控工具 一、Ward介绍1.1 Ward简介1.2 Ward特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、部署java环境3.1 jdk下载地址3.2 解压jdk安装包3.3 复制二进制文件3.4 配置环境编辑3.5 查看java版本 四、下载ward的jar包4.1 下载软件包4.2 …

阿里巴巴内部10w+字总结的Java面试题,全是面试官必问技术

献上熬夜整理最新“10w字总结的Java面试题(附答案)”够你刷! 春招升级打怪拿offer,10w字总结的Java面试题(附答案)够你刷 其包含的内容模块有:基础、JVM、多线程与高并发、Spring、MyBatis、Spr…

APP自动化测试高级定位技巧,我敢打赌你一定不知道

目录 高阶定位-Xpath 包含-contains() XPath 轴 XPath 运算符 AND OR 高阶定位-CSS css selector 定位介绍 css selector 用法 示例 iOS css selector 定位 Toast 识别 Toast 是什么 Toast 定位 Toast 定位 显示等待 使用lambda表达式 总结三种等待方法 高阶定…

Ansible自动化运维工具之playbook剧本编写含lnmp

1.playbook的相关知识 1.1 playbook 的简介 playbook是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部…