当前位置: 首页 > news >正文

【生成式AI】ChatGPT 原理解析(2/3)- 预训练 Pre-train

Hung-yi Lee 课件整理


预训练得到的模型我们叫自监督学习模型(Self-supervised Learning),也叫基石模型(foundation modle)。

文章目录

      • 机器是怎么学习的
      • ChatGPT里面的监督学习
      • GPT-2
      • GPT-3和GPT-3.5
      • GPT
      • ChatGPT
      • 支持多语言
      • ChatGPT里面的自监督学习


G:generative
P:pre-train
T:transformer


机器是怎么学习的

请添加图片描述
有监督学习一般需要成对的语料来训练模型,比如机器翻译为例,需要中文和英文成对的语料来训练模型。


ChatGPT里面的监督学习

请添加图片描述
这里讲怎么把有监督学习套用到ChatGPT上,还是成对的语料,一问一答给到模型,机器自己寻找一个函数使得,当我们输入“台湾第一高峰是哪一座?”的时候输出“玉”的概率最大,当把“玉”再加到问句后面输入给模型的时候,输出“山”的概率最大。


请添加图片描述
但是这时候出现一个问题,假设机器真的是根据老师的教导来寻找函数,它的能力会非常有限,因为人类老师可以提供的成对资料十分有限。比如我们问它:世界第一高山是哪一座?它的学习语料里面没有喜马拉雅这个词,那么它就不会输出正确的结果。

实际上ChatGPT有一个机制可以无痛制造成对的语料。


请添加图片描述
网络上的每一段文字都可以教机器做文字接龙,比如“世界第一高峰是喜马拉雅山”,ChatGPT可以把前半段当作输入,后半段当作输出。
当输入“世界第一高峰是”的时候输出“喜”字的概率最大。
当输入“今天天气真好”的时候,输出“,”的概率最大。

ChatGPT的上一代模型GPT,它设计的目标就是这样一个文字接龙模型。


GPT-2

GPT模型在2018年就已经出现了,那时候模型比较小,只有117M的参数,使用的数据也只有1GB。
第二年(2019年)公开了GPT-2,模型大小到了1542M的参数,训练数据是40G。
这时候的GPT就可以瞎掰了,讲出来的东西就开始像模像样了。
GPT-2能做很多事情,比如回答“世界第一高峰”这个问题,给一段文字让它输出摘要。
请添加图片描述
对于GPT-2在回答问题上的表现有这样一个测试。
横轴表示模型的大小,纵轴表示F1(不知道的可以理解为准确率),我们看出它的能力和人类的回答还有很大的差距,但是比一些常见的模型好很多了。
就算只是做文字接龙,这时候的GPT就已经有能力回答问题了。


GPT-3和GPT-3.5

请添加图片描述

到了2020年,GPT-3的参数量是GPT-2的100倍了,有175B的参数,它的训练数据有570GB,这个数据量相当于阅读哈利波特30万遍,实际上OpenAI从网络上爬取了45T的数据,从中筛选了570GB数据出来训练模型。
那么什么是GPT-3.5呢,其实没有任何一篇文章明确说明它的含义,OpenAI官方的说法是只要是在GPT-3上做微调,再来做其他事情的模型都是GPT-3.5。


我们来看看GPT-3能做什么事情。
请添加图片描述
我们给GPT-3输入这样的语料,输入是程序代码的描述,输出是程序代码,这样它就可以写程序了,这不是很惊人的事情。


请添加图片描述
这里我们可以看到在42个NLP任务上做的测试,先不考虑细节,整体上可以看到随着模型越来越大准确率在提高,但是最大的也就是不到60%的准确率,难道GPT-3智能这么大点能耐吗?


GPT

其实GPT很多时候是不受控制的。
比如说你给它一段描述,让它剖析一下这段程序语言,问他这段代码里面的C的目的是什么,它给出的答案是这样的,出一个选择题给你让你选择。

这是因为它学习了网上很多试题,它的学习能力很强,但是给出的答案不一定是我们想要的,请添加图片描述


ChatGPT

怎么办呢,怎么才能强化它的能力呢。
再下一代就到ChatGPT了。需要介入人类老师了,在这之前是不需要人类老师的,从GPT到ChatGPT就需要人类老师的介入了,所以ChatGPT是GPT经过监督学习的模型。
人类老师告诉它,以后别人问你“台湾最高的山是什么山”你要告诉他是“玉山”。

这个有监督学习的过程也叫finetune,或者是继续学习,之前的GPT模型是预训练模型,也是自监督学习。

这里用于有监督学习的语料不是人类整理的,是用一些方法无痛生成的,这种方式就叫做自监督学习,也叫基石模型。请添加图片描述


支持多语言

它是怎么做到支持多语言的呢?
ChatGPT不是在单一的预训练模型上做的finetune,里面可能就包含Muti-Bert这样的语言模型。
Muti-Bert支持104种语言,当我们给它只做了英文的阅读理解后,它自动的其他语言也都学会了。
所以ChatGPT不需要单独做翻译这件事情,它自己就学会了翻译。
请添加图片描述


来看看真正的实验数据。
最下面一行显示人类的表现是93%的准确率。

  • 在AQNet模型的Pre-train里面没有中文语料,用中文语料做finetune,然后再在中文上做测试,准确率只有78.1;
  • 在Bert模型的Pre-train里面只有中文语料,用中文语料做finetune,然后再在中文上做测试,准确率是89.1,提升了不少;
  • 神奇的是,在Bert模型的Pre-train里面有104中语言,用英文语料做finetune,然后再在中文上做测试,准确率也能达到78.8,这说明了我们教它英文,它自己学会了中文。

怎么理解呢,在机器学完很多种语言后,对它来说所有的语言都是一种语言了,没有差别。

请添加图片描述


ChatGPT里面的自监督学习

我们知道,ChatGPT除了自监督学习,有监督学习还做了强化学习。
在强化学习里面人不是告诉机器答案是什么,而是告诉机器现在的答案是好还是不好。
增强学习有什么好处呢,监督学习的老师是比较辛苦的,需要知道正确的答案,强化学习的老师就可以偷懒,只需要点个赞或者点个倒赞就可以。
增强学习还有一个优势是适合用在人类自己都不知道答案的时候,比如“请帮我写诗赞美AI”,这样的问题,人类不需要给答案,只要给反馈就可以了。

那么ChatGPT就是这样三个过程,先做预训练,然后做有监督学习,最后做强化学习。

请添加图片描述

至于增强学习其他的细节,我们下一篇博客再细讲。

相关文章:

【生成式AI】ChatGPT 原理解析(2/3)- 预训练 Pre-train

Hung-yi Lee 课件整理 预训练得到的模型我们叫自监督学习模型(Self-supervised Learning),也叫基石模型(foundation modle)。 文章目录 机器是怎么学习的ChatGPT里面的监督学习GPT-2GPT-3和GPT-3.5GPTChatGPT支持多语言…...

Day03:Web架构OSS存储负载均衡CDN加速反向代理WAF防护

目录 WAF CDN OSS 反向代理 负载均衡 思维导图 章节知识点: 应用架构:Web/APP/云应用/三方服务/负载均衡等 安全产品:CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令:文件上传下载/端口服务/Shell反弹等 抓包技术&#xff1a…...

C++多线程同步(上)

多线程同步 引言总述详情互斥锁示例运行结果分析条件变量示例一实现分析优化运行结果示例二实现代码运行结果示例三实现代码运行结果读写锁示例实现代码注意分析运行结果附言实现运行结果运行结果个人心得引言 项目中使用多线程,会遇到两种问题,一种是对共享资源的访问时需要…...

猜猜心里数字(个人学习笔记黑马学习)

1.定义一个变量,数字类型,内容随意 2.基于input语句输入猜想的数字,通过if和多次elif的组合,判断猜想数字是否和心里数字一致 num5if int(input("请输入第一次猜想的数字:"))5:print("猜对了&#xff0…...

实用Pycharm插件

Pycharm的离线安装:https://plugins.jetbrains.com/ 需要根据对应的Pycharm/Goland版本选取所需的 对于实用的插件如下: 实时查看每一行的git blame信息: Gittoolbox 转换IDE的英文为中文:Chinese IDE侧格式化json字符串&#…...

数据结构试题练习

(1). 假如队列未满,现有变量data需要入队,请写出表达式; if( (tail1)%SEQLEN ! head ) {seqn[tail] data;tail (tail1)%SEQLEN; } (2). 假如队列未空,现在需要从队列取一个元素并赋值给变量data,请写出表达式; if( head ! tail ) {data se…...

s-table和columns初始化不完整,造成table文件的filter报错

问题 顺藤摸瓜找errorHandler.js文件 发现文件并没有什么问题 顺藤摸瓜找index.vue文件 首先找到报错的filter,发现与columnsSetting相关 找到columnsSetting发现等于columns 返回自己使用S-table组件的地方,发现columns初始化时仅初始化为ref()未表明…...

SLA 是什么?如何实现 SLA 管理

随着业务的不断壮大,为了满足日益增长的客户需求,网络必须保持与这些需求同步。同时,为了提高最终用户的体验,运维人员/网络管理员在监控企业级网络时遇到了不少瓶颈,必须不断审查网络,以确保提供的服务质量…...

火灾安全护航:火灾监测报警摄像机助力建筑安全

火灾是建筑安全中最常见也最具破坏力的灾难之一,为了及时发现火灾、减少火灾造成的损失,火灾监测报警摄像机应运而生,成为建筑防火安全的重要技术装备。 火灾监测报警摄像机采用高清晰度摄像头和智能识别系统,能够全天候监测建筑内…...

JavaScript 基础学习笔记(五):函数、作用域、匿名函数

目录 一、函数 1.1 声明和调用 1.2 形参和实参 1.3 返回值 二、作用域 2.1 全局作用域 2.2 局部作用域 三、匿名函数 3.1 函数表达式 3.2 立即执行函数 一、函数 理解函数的封装特性,掌握函数的语法规则 1.1 声明和调用 函数可以把具有相同或相似逻辑的代…...

Qt环境配置VTK

Qt与VTK的结合为开发者提供了强大的跨平台图形界面开发能力和三维可视化处理能力。本教程旨在详细介绍如何配置Qt环境以使用VTK库,从而为开发者打造高效、强大的三维可视化应用。 一、准备工作 在开始之前,确保您的开发环境中已经安装了Qt和CMake。Qt提…...

腾讯云最新活动_腾讯云促销优惠_代金券-腾讯云官网入口

腾讯云服务器多少钱一年?62元一年起,2核2G3M配置,腾讯云2核4G5M轻量应用服务器218元一年、756元3年,4核16G12M服务器32元1个月、312元一年,8核32G22M服务器115元1个月、345元3个月,腾讯云服务器网txyfwq.co…...

如何创建自己的Spring Boot Starter并为其编写单元测试

当我们想要封装一些自定义功能给别人使用的时候,创建Spring Boot Starter的形式是最好的实现方式。如果您还不会构建自己的Spring Boot Starter的话,本文将带你一起创建一个自己的Spring Boot Starter。 快速入门 创建一个新的 Maven 项目。第三方封装的…...

数据分析---常见处理逻辑

目录 数据清洗数据转换数据聚合数据筛选增删改查(以查为例)数据清洗 去除重复值:使用DISTINCT关键字去除重复行。//这将返回一个包含所有不重复城市的结果集 SELECT DISTINCT city FROM students;处理缺失值:使用IS NULL或IS NOT NULL判断是否为空值,并使用COALESCE或CASE…...

2024-02-26(金融AI行业概览与大数据生态圈)

1.最开始的风控是怎么做的? 人审 吃业务经验 不能大批量处理,效率低下 不适用于移动互联网的金融场景 2.建模的概念 建模就是构造一个数学公式,能将我们手上有的数据输入进去,通过计算得到一些预测结果。 比如初高中学习的…...

git忽略某些文件(夹)更改说明

概述 在项目中,常有需要忽略的文件、文件夹提交到代码仓库中,在此做个笔录。 一、在项目根目录内新建文本文件,并重命名为.gitignore,该文件语法如下 # 以#开始的行,被视为注释. # 忽略掉所有文件名是 a.txt的文件. a.txt # 忽略所有生成的 java文件, *.java # a.j…...

python爬虫实战:获取电子邮件和联系人信息

引言 在数字时代,电子邮件和联系人信息成为了许多企业和个人重要的资源,在本文中,我们将探讨如何使用Python爬虫从网页中提取电子邮件和联系人信息,并附上示例代码。 目录 引言 二、准备工作 你可以使用以下命令来安装这些库&a…...

post请求同时上传文件并传递其他参数的前后端写法

最近有一需求,post请求从前端上传一个文件同时传递一个参数,多次实验后记录下两种写法: 方法一: 前端:重点是设置请求头代码如下: getfile(event) {//input框输入文件let file event.target.files[0];l…...

【数仓】基本概念、知识普及、核心技术

一、数仓基本概念 数仓的定义: 数据仓库(Data Warehouse,简称DW或DWH)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。简言之,它是一个大型存储库,用于存储来…...

ky10-server docker 离线安装包、离线安装

离线安装脚本 # ---------------离线安装docker------------------- rpm -Uvh --force --nodeps *.rpm# 修改docker拉取源为国内 rm -rf /etc/docker mkdir -p /etc/docker touch /etc/docker/daemon.json cat >/etc/docker/daemon.json<<EOF{"registry-mirro…...

Claude Code 官方安装指南(智谱AI配置)

Claude Code 官方安装指南&#xff08;智谱AI配置&#xff09; 概述 本文档介绍如何安装官方Claude Code CLI工具&#xff0c;并配置为使用智谱AI的GLM模型API。 前置要求 Node.js 18 (建议使用nvm管理)智谱AI API Key 安装步骤 1. 获取智谱AI API Key 访问 智谱AI开放平…...

从MOD13A3到省级应用:中国2000-2021年逐月1km NDVI栅格数据高效处理与获取指南

1. MOD13A3数据基础与获取 对于需要研究中国植被覆盖变化的科研人员来说&#xff0c;MOD13A3数据集是个绕不开的话题。这个由NASA提供的月度植被指数产品&#xff0c;自2000年2月开始持续更新&#xff0c;已经成为全球植被监测的重要数据源。我处理这个数据集已经有五年多时间&…...

SITS2026圆桌闭门纪要首度公开(含未删减技术分歧与路线图投票原始数据)

第一章&#xff1a;SITS2026圆桌&#xff1a;智能代码生成未来 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026圆桌论坛中&#xff0c;来自GitHub Copilot、Tabnine、CodeWhisperer及开源社区代表的工程师与AI语言模型研究者共同探讨了智能代码生成从“辅助补全”迈…...

保姆级教程:用SuperPoint官方PyTorch预训练模型快速实现图片特征点匹配(附完整代码)

SuperPoint实战&#xff1a;5分钟快速实现高精度图像特征匹配&#xff08;附完整代码解析&#xff09; 在计算机视觉领域&#xff0c;特征点检测与匹配一直是基础而关键的环节。无论是三维重建、视觉定位还是图像拼接&#xff0c;都离不开稳定可靠的特征匹配技术。今天我们要介…...

Pixel Language Portal 代码生成效果展示:复杂业务逻辑一键实现

Pixel Language Portal 代码生成效果展示&#xff1a;复杂业务逻辑一键实现 1. 开篇&#xff1a;当自然语言遇见代码生成 "能不能用几句话就生成一个完整的电商购物车功能&#xff1f;"这在过去听起来像是天方夜谭&#xff0c;但Pixel Language Portal让这成为了现…...

告别玄学调参!基于STM32G4的PID与PFC算法调试实录:我是如何用示波器和串口把效率做到95%+的

STM32G4实战&#xff1a;从波形捕获到参数优化&#xff0c;我的95%效率电源调参手记 实验室的示波器屏幕上&#xff0c;PWM波形正在不规则地抖动&#xff0c;电源模块发出轻微的啸叫声——这熟悉的一幕让我意识到&#xff0c;又一次PID参数调试马拉松开始了。作为嵌入式工程师&…...

从源码到实战:手把手教你编译与定制化iperf网络性能测试工具

1. iperf工具简介与适用场景 iperf是一款经典的开源网络性能测试工具&#xff0c;它通过测量TCP/UDP带宽来评估网络质量。我第一次接触这个工具是在调试嵌入式设备的网络吞吐量时&#xff0c;当时需要验证百兆网口的实际传输速率是否达标。相比简单的ping命令&#xff0c;iperf…...

终极指南:如何用Bioicons免费开源图标库彻底改变科研可视化

终极指南&#xff1a;如何用Bioicons免费开源图标库彻底改变科研可视化 【免费下载链接】bioicons A library of free open source icons for science illustrations in biology and chemistry 项目地址: https://gitcode.com/gh_mirrors/bi/bioicons Bioicons是一个专为…...

Go 中嵌入类型字段在派生结构体字面量中的初始化规则详解

Go 语言中&#xff0c;嵌入类型&#xff08;embedded type&#xff09;的字段虽可被派生结构体直接访问&#xff0c;但不能作为字段名出现在结构体字面量中&#xff1b;必须通过显式初始化嵌入类型本身&#xff0c;或先创建实例再赋值。 go 语言中&#xff0c;嵌入类型&am…...

从VGG到RepVGG:一个‘结构等效’的trick,如何让老牌CNN在CVPR2021再次翻红?

从VGG到RepVGG&#xff1a;重参数化如何重塑经典CNN的现代竞争力 在深度学习领域&#xff0c;架构创新往往伴随着复杂度的提升——从Inception的多分支结构到ResNet的跳跃连接&#xff0c;模型性能的提升似乎总是以结构复杂化为代价。然而&#xff0c;2021年CVPR最佳论文RepVGG…...