一文入门生成式AI(理解ChatGPT的原理)

一、什么是生成式AI?

以ChatGPT为代表的生成式AI,是对已有的数据和知识进行向量化的归纳,总结出数据的联合概率。从而在生成内容时,根据用户需求,结合关联字词的概率生成新的内容

可以这么联想,ChatGPT就是一个词语接龙的机器,他会根据你给出的关键词,自动生成关键词的下一个最有可能衔接的词语。比如你说,“世界上最高的山”,ChatGPT就会回答“喜马拉雅山”。

二、怎么得到一个大模型?

大模型需要:算力、数据/存力、算法这三大要素。

算力:即需要GPU、NPU这些硬件进行训练。

数据/存力:生成式AI需要处理和存储大量的数据。以GPT-3为例,光是训练参数就达到了1750亿个,训练数据达到45TB,每天会产生45亿字内容。

算法:生成式AI的主要算法是深度学习。从仿生学的角度,人类希望AI能够模仿人脑的运行机制,对知识进行思考推理——这就是通常所说的深度学习。

三、算法

为了实现深度学习,学者们提出了大量的神经网络架构:

先看三个经典的:

  • 深度神经网络(DNN)是最普遍的神经网络架构,但是随着数据对于网路架构的要求越来越复杂,这种方法逐渐有些吃力。
  • 卷积神经网络(CNN)是一种专门为处理图像数据而设计的神经网络架构,能够有效地处理图像数据,但是需要对输入数据进行复杂的预处理。
  • 循环神经网络(RNN)架构成为处理序列数据的常用方法。

(1)Transformer架构

由于RNN在处理长序列时容易遇到梯度消失和模型退化问题,著名的Transformer算法被提出。

Transformer架构:是目前文本生成领域的主流架构,GPT、llama等LLM(大语言模型)都是基于Transformer实现了卓越的性能。

Transformer架构:主要由输入部分(输入输出嵌入与位置编码)、多层编码器、多层解码器以及输出部分(输出线性层与Softmax)四大部分组成。

  • (1)输入部分:

  • 源文本嵌入层:将源文本中的词汇数字表示转换为向量表示,捕捉词汇间的关系。

  • 位置编码器:为输入序列的每个位置生成位置向量,以便模型能够理解序列中的位置信息。

  • 目标文本嵌入层(在解码器中使用):将目标文本中的词汇数字表示转换为向量表示。

  • (2)编码器部分:

  • 由N个编码器层堆叠而成。

  • 每个编码器层由两个子层连接结构组成:第一个子层是一个多头自注意力子层,第二个子层是一个前馈全连接子层。每个子层后都接有一个规范化层和一个残差连接。

  • (3)解码器部分:

  • 由N个解码器层堆叠而成。

  • 每个解码器层由三个子层连接结构组成:第一个子层是一个带掩码的多头自注意力子层,第二个子层是一个多头注意力子层(编码器到解码器),第三个子层是一个前馈全连接子层。每个子层后都接有一个规范化层和一个残差连接。

  • (4)输出部分:

  • 线性层:将解码器输出的向量转换为最终的输出维度。

  • Softmax层:将线性层的输出转换为概率分布,以便进行最终的预测。

(2)训练

目前有两种训练方式:预训练和SFT(有监督微调)

  • 预训练:是指将一个大型、通用的数据集作为知识喂给AI进行初步学习。经过预训练的模型叫作“基础模型”,它对每个领域都有所了解,但是无法成为某个领域的专家。
  • SFT(有监督微调):SFT是指在预训练之后,将一个特定任务的数据集喂给AI,进一步训练模型。例如,在已经预训练的语言模型基础上,用专门的医学文本来微调模型,使其更擅长处理医学相关的问答或文本生成任务。

四、Transformer里的编码解码到底是什么?

语义的最小单位,是TOKEN,可以翻译成“词元”,它是语言类模型中用数字来表示单词的最小语义单位。

比如下图中这句话“This is a input text.” 首先被 Tokenizer 转化成最小词元,其中[CLS][SEP]为一句话的起始与结束符号(CLS:classification 告知系统这是句子级别的分类的开始、SEP:separator 告知系统结束本句或分割下一句),然后再通过 Embedding 的方式转化为向量。

比如猴子和香蕉,这两个语义关系紧密。原子能和香蕉,差距就比较远。

Transformer中,编码器和解码器中的“码”指的是什么?

以下是ChatGPT-4o-mini给出的答案:

编码器中的“码”

  • 输入表示:编码器接收输入序列(如文本),并将其转换成一个高维的向量表示。这些向量捕捉了输入序列中单词之间的关系和上下文信息。
  • 特征提取:编码器通过多层自注意力机制和前馈神经网络提取特征,使得每个输入的表示包含了其在上下文中的重要性。

解码器中的“码”

  • 生成输出:解码器使用编码器生成的表示以及之前生成的单词,逐步生成目标序列(如翻译后的文本)。这里的“码”指的是解码器对已生成内容的处理和对未来内容的预测。
  • 上下文结合:解码器同样使用自注意力机制来考虑已生成的单词与当前生成位置的关系。

总结来说,“码”在这里代表了对输入和输出数据的数学表示方式,帮助模型理解和生成语言。

总的来说,编码器负责理解和处理输入,而解码器则负责生成输出,二者协同工作以实现有效的序列转换。

参考:

https://baijiahao.baidu.com/s?id=1801561545647449293&wfr=spider&for=pc

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

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

相关文章

el-table表格的展开行,初始化的时候展开哪一行+设置点击行可展开功能

效果: 表格展开行官网使用: 通过设置 type"expand" 和 Scoped slot 可以开启展开行功能,el-table-column 的模板会被渲染成为展开行的内容,展开行可访问的属性与使用自定义列模板时的 Scoped slot 相同。 但是这种方法…

解决:Vue 中 debugger 不生效

目录 1,问题2,解决2.1,修改 webpack 配置2.2,修改浏览器设置 1,问题 在 Vue 项目中,可以使用 debugger 在浏览器中开启调试。但有时却不生效。 2,解决 2.1,修改 webpack 配置 通…

【农信网-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

【ArcGIS Pro实操第七期】栅格数据合并、裁剪及统计:以全球不透水面积为例

【ArcGIS Pro实操第七期】批量裁剪:以全球不透水面积为例 准备:数据下载ArcGIS Pro批量裁剪数据集1 数据拼接2 数据裁剪3 数据统计:各栅格取值3.1 栅格计算器-精确提取-栅格数据特定值3.2 数据统计 4 不透水面积变化分析 参考 准备&#xff1…

基于springboot+vue+uniapp的驾校报名小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

OpenCV高阶操作

在图像处理与计算机视觉领域,OpenCV(Open Source Computer Vision Library)无疑是最为强大且广泛使用的工具之一。从基础的图像读取、 1.图片的上下,采样 下采样(Downsampling) 下采样通常用于减小图像的…

架构师备考的一些思考(四)

前言 对于数学,我们之前学的是对的,但不是真的,所以我们没有数学思维。 对于计算机,我们学校教的是对的,但不是真的,所以仅仅从学校学习知识的应届毕业生,不论985,211,本科&#xff…

回归预测|基于黑翅鸢优化LightGBM的数据回归预测Matlab程序 多特征输入单输出 含基础LightGBM

回归预测|基于黑翅鸢优化LightGBM的数据回归预测Matlab程序 多特征输入单输出 含基础LightGBM 文章目录 一、基本原理1. 数据准备2. LightGBM模型构建3. BKA优化4. 模型评估5. 结果分析总结 二、实验结果三、核心代码四、代码获取五、总结 回归预测|基于黑翅鸢优化LightGBM的数…

【SpringCloud】服务注册与发现 - Eureka

目录 服务注册/服务发现-Eureka背景问题描述解决思路什么是注册中心CAP 理论常见的注册中心 Eureka 介绍搭建Eureka Server创建Eureka-server 子模块引入eureka-server依赖项目构建插件完善启动类编写配置文件启动服务 服务注册引入eureka-client依赖完善配置文件启动服务 服务…

Linux基础---10进程管理

一.查看和关闭进程 1.查看进程 基础指令: ps -efPID 进程编号,PPID 父进程编号, CMD命令名称 进阶指令–查看进程的树形结构: yum install psmisc -y #首先安装psmisc后可直接使用pstreepstree2.关闭进程 要想关闭某个或多个进程需要知道…

解码 OpenAI 的 o1 系列大型语言模型

OpenAI 表示,其 Strawberry 项目已升级为新的大型语言模型 (LLM) 系列,公司将其命名为 OpenAI o1。 该公司表示,新系列模型还包括一个 o1-mini 版本,以提高成本效益,可根据其推理能力与最新的GPT-4o 模型进行区分。 …

【QGC】把QGroundControl地面站添加到Ubuntu侧边菜单栏启动

把QGroundControl地面站添加到Ubuntu侧边菜单栏启动 简介准备工作步骤 1: 创建 Desktop Entry 文件步骤 2: 编辑 Desktop Entry 文件步骤 3: 刷新应用程序菜单步骤 4: 将 QGroundControl 固定到侧边栏 环境: Ubuntu :20.04 LTS 简介 QGroundControl 是…

电信创维光猫DT741超级密码

正常的D740系是创维系列光猫如:SK-D740 之类的超密获取办法-光猫/adsl/cable无线一体机-恩山无线论坛 但是我这个固件是DT741v1.0 我只能说很S -B,这个版本如果是1.02那就可以很轻松的去用通用办法解决,但是呢!还有办法就是用最传…

Unity2D游戏入门

1.导入资源 在Assets下新建文件夹 Res,将相关素材拖入其中(本文中的素材仅为学习使用)。 2.菜单 设置页面大小 选择素材,查看素材大小。 设置游戏视图大小。 调整工作布局方便查看 记得给场景改名为MenuScene,与其他…

食品包装识别系统源码分享

食品包装识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

Typora安装,使用,图片加载全流程!!!

文章目录 前言:安装:破解:使用typora:关于CSDN加载不出图片:创建OSS:设置PicGo: 前言: ​ Typora是一款非常流行的Markdown编辑器,简单来说就是可以方便我们写博客。拿我…

踩坑记:Poco库,MySql,解析大文本的bug

这两天在调试一个小功能&#xff0c;使用c,读取MySql。使用的是Poco库。按照官网的写法&#xff1a; std::cout << "read normal data by poco recordset "<<std::endl;Poco::Data::MySQL::Connector::registerConnector();Poco::Data::Session session(…

Rust表达一下中秋祝福,群发问候!

一、Rust表达一下中秋祝福 在Rust中&#xff0c;表达中秋佳节的祝福可以通过定义一个包含祝福语的字符串变量&#xff0c;并使用标准输出函数来打印这个字符串。以下是一个简单的Rust程序示例&#xff0c;用于展示如何用Rust编写并打印中秋佳节的祝福语&#xff1a; fn main()…

Altium Designer常用操作备忘笔记

Altium Designer常用操作备忘笔记 Chapter1 Altium Designer常用操作备忘笔记Chapter2 Altium Designer 22.1.2使用总结&#xff08;常更&#xff09;一、原理图1.1 绘制元器件原理图1.2 绘制元器件封装1.3 修改原理图网格1.4 修改原理图库后更新当前原理图1.5 旋转和翻转1.6 悬…

一款rust语言AI神器cursor在ubuntu环境下的安装启动教程

虽然cursor目前只支持英文但是它强大的代码联想能力以及问答能力&#xff0c;可以高效的提高编码效率。 如下步骤所有的前提是你的ubuntu上面已经安装了vscode以及其必须的extensions。 1 下载 到官网https://www.cursor.com下载指定版本的软件。 下载到本地以后会生成如下软…