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

目录

  • 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

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

大致流程

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ虚拟主机无法启动的原因和解决方案

RabbitMQ虚拟主机无法启动的原因和解决方案 摘要: RabbitMQ是一个广泛使用的开源消息代理系统,但在使用过程中可能会遇到虚拟主机无法启动的问题。本文将探讨可能导致该问题的原因,并提供相应的解决方案,以帮助读者解决RabbitMQ虚…

第五章 模型篇: 模型保存与加载

参考教程: https://pytorch.org/tutorials/beginner/basics/saveloadrun_tutorial.html 文章目录 pytorch中的保存与加载torch.save()torch.load()代码示例 模型的保存与加载保存 state_dict()nn.Module().load_state_dict()加载模型参数保存模型本身加载模型本身 c…

K8s 中 port, targetPort, NodePort的区别

看1个例子: 我们用下面命令去创建1个pod2, 里面运行的是1个nginx kubectl create deployment pod2 --imagenginx当这个POD被创建后, 其实并不能被外部访问, 因为端口映射并没有完成. 我们用下面这个命令去创建1个svc &#xff…

chatgpt赋能python:Python怎样让画笔变粗

Python怎样让画笔变粗 Python是一门强大的编程语言,不仅适用于数据分析和机器学习等领域,也可以用来进行图像处理。在Python中,我们可以使用Pillow库来进行图像操作。在本篇文章中,我们将介绍如何使用Python和Pillow来让画笔变粗…

vue2_markdown的内容目录生成

文章目录 ⭐前言⭐引入vue-markdown💖 全局配置💖 渲染选项💖 取出markdown的标题层级 ⭐结束 ⭐前言 大家好!我是yma16,本文分享在vue2的markdown文本内容渲染和目录生成 背景: 优化个人博客功能&#xf…

delphi的ARM架构支持与System.Win.WinRT库

delphi的ARM架构支持与System.Win.WinRT库 目录 delphi的ARM架构支持与System.Win.WinRT库 一、WinRT 二、delphi的System.Win.WinRT库 2.1、支持ARM芯片指令 2.2、基于WinRT技术的特点 2.3、所以使用默认库而未经转化的服务端应用并不支持ARM架构服务器 2.4、对默认库…

【Linux】初步认识Linux系统

Linux 操作系统 主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用。 作为中间人,连接硬件和软件 常见操作系统 桌面操作系统 WindowsmacOsLinux 服务器操作系统 LinuxWindows Server 嵌入式操作系统 Linux …

深度学习图像分类、目标检测、图像分割源码小项目

​demo仓库和视频演示: 银色子弹zg的个人空间-银色子弹zg个人主页-哔哩哔哩视频 卷积网路CNN分类的模型一般使用包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResNet、ResNeXt、ShuffleNet、VGG、EfficientNet和Swin transformer等10多种模型 目标检测包括…

Java关键词synchronized

目录 一、通过卖票系统观察多线程的安全隐患 二、synchronized的基本知识 1.使用synchronized的原因 2.synchronized的作用 3.synchronized的基本格式 a.synchronized加在方法名前 b.synchronized用在方法中 4. Java锁机制 5.synchronized注意事项 三、使用synchronize…

Java Logback日志框架概述及logback.xml详解

日志技术具备的优势 可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。 可以随时以开关的形式控制是否记录日志,无需修改源代码。 日志体系结构 Logback日志框架 Logback是由log4j创始人设计的另一个开源日志组件&#xff0…

MATLAB读取OpenFOAM的二进制文件

OpenFOAM的文件格式 上面是OpenFOAM二进制文件的格式,我们可以看出,前面21行都是无关的说明文件,22开始时除了一个括号之外,其它的都是数据。 读取数据 读取数据的思路非常简单,忽略不需要的,读取需要的。…

Autoware 跑 Demo(踩坑指南)

Autoware 跑 Demo(踩坑指南) 网上的博客和官方的教程,几乎都是一样的,但实际上跑不起来 Autoware 1.12学习整理–01–运行rosbag示例 Autoware入门学习(三)——Autoware软件功能使用介绍(1/3&a…

【Unity3D】激光雷达特效

1 由深度纹理重构世界坐标 屏幕深度和法线纹理简介中对深度和法线纹理的来源、使用及推导过程进行了讲解,本文将介绍使用深度纹理重构世界坐标的方法,并使用重构后的世界坐标模拟激光雷达特效。 本文完整资源见→Unity3D激光雷达特效。 1)重构…

基于51单片机的智能火灾报警系统温度烟雾光

wx供重浩:创享日记 对话框发送:火灾报警 获取完整源码源文件电路图仿真文件论文报告等 功能简介 51单片机MQ-2烟雾传感ADC0832模数转换芯片DS18B20温度传感器数码管显示按键模块声光报警模块 具体功能: 1、实时监测及显示温度值和烟雾浓度…

管理类联考——英语二——技巧篇——写作——B节——议论文——必备替换句型

议论文必备替换句型 (一)表示很明显/众所周知的句型 It is obvious thatIt is clear thatIt is apparent thatIt is evident thatlt is self-evident thatIt is manifest thatIt is well-knownIt is known to all thatIt is widely-accepted thatIt is crystal-cl…

蓝牙客户端QBluetoothSocket的使用——Qt For Android

了解蓝牙 经典蓝牙和低功耗蓝牙差异 经典蓝牙(Bluetooth Classic):分为基本速率/增强数据速率(BR/EDR), 79个信道,在2.4GHz的(ISM)频段。支持点对点设备通信,主要用于实现无线音频流传输,已成…

Ceph:关于Ceph 集群管理的一些笔记

写在前面 准备考试,整理ceph 相关笔记博文内容涉及,Ceph 管理工具 cephadm,ceph 编排器,Ceph CLI 和 Dashboard GUI 介绍理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守…

大数据分析平台释疑专用帖第二弹

不管是想要快速了解BI大数据分析平台,还是想要了解BI和自己的需求匹配度,都可关注我们的释疑专用贴。 1、可以分析直播数据吗? 严格来说,只要能够提供数据,就可以做数据可视化分析,直播数据也同理。 如果…

solr快速上手:整合SolrJ实现客户端操作(九)

0. 引言 我们前面学习了solr的服务端基础操作,实际项目中我们还需要在客户端调用solr,就像调用数据库一样,我们可以基于solrJ来实现对solr的客户端操作 1. SolrJ简介 SolrJ 是 Solr官方提供的 Java 客户端库,主要用于与 Solr 服…

Python 请求分页

文章目录 什么是 Python 中的分页带有下一个按钮的 Python 分页没有下一个按钮的 Python 分页无限滚动的 Python 分页带有加载更多按钮的分页 在本文中,我们将了解分页以及如何克服 Python 中与分页相关的问题。 读完本文后,我们将能够了解 Python 分页以…