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

AGI大模型(2):GPT:Generative Pre-trained Transformer

1 Generative Pre-trained Transformer

1.1 Generative生成式

GPT中的“生成式”指的是该模型能够根据输入自动生成文本内容,而不仅仅是从已有的文本库中检索答案。  

具体来说:  

  • 生成(Generative):GPT是一个生成式AI模型,能够根据给定的提示(Prompt)动态生成连贯、符合语境的文本,而不是简单地匹配已有内容。  
  • 与检索式(Retrieval-based)不同:检索式AI通常依赖于数据库或预设答案,而生成式AI可以创造新文本,适应不同的语境和需求。  
  • 基于概率预测:GPT基于深度学习和概率模型,每次生成文本时,都会根据训练数据预测下一个最可能出现的单词,从而形成流畅的表达。  

简单来说,“生成式”就是让AI像人一样创造内容,而不是单纯复制已有的内容。

1.2 Pre-trained(预训练)

Pre-trained(预训练)指的是在深度学习中,模型在一个大规模数据集上进行的初步训练,以便获得对语言或任务的基础理解。  

在GPT(Generative Pre-trained Transformer)中,预训练的过程如下:  

(1)大规模数据训练:  

  • 先在海量文本数据(如书籍、文章、网页)上进行训练,学习词汇、语法、句子结构、语义等知识。  
  •  这个阶段不针对特定任务,而是让模型掌握通用语言能力。  

(2)自回归语言建模:  

  • GPT使用自回归(Autoregressive)方法,根据上下文预测下一个单词,逐步生成文本。  
  • 例如输入“今天的天气”,模型可能预测出“很好”或“阴天”等合理的词。  

(3)微调(Fine-tuning,可选):  

  • 预训练完成后,可以在特定任务(如聊天、代码生成、医学诊断)上进行微调,让模型更适应具体应用。  

为什么要预训练?

  • 节省计算资源:不必从零训练,可以用预训练好的模型进行微调。  
  • 提高泛化能力:模型在大量数据上学到的语言知识,可以泛化到不同任务。  
  • 更快适应特定任务:预训练模型可以快速适应客服、写作、编程等应用。

简单理解:预训练就像让AI先“读万卷书”,然后再针对不同任务“精雕细琢”!

1.3 Transformer变换模型

Transformer 是一种深度学习架构,用于处理**自然语言处理(NLP)**任务,如机器翻译、文本生成和语义理解。它由 Google 在 2017 年提出,彻底改变了 NLP 领域。

Transformer 简单⼀些的解释

你可以简单理解为它是⼀个⿊盒⼦,当我们在做⽂本翻译任务是,我输⼊进去⼀个中⽂,经过这个⿊盒⼦之后,输出来翻译过后的英⽂。

Transformer 的核心概念

Transformer 主要由以下核心组件组成:

(1)自注意力机制(Self-Attention)

作用:让模型关注句子中所有单词之间的关系,而不仅仅是相邻的词。

优势:可以处理长距离依赖,即理解句子中相隔很远的单词之间的联系。

示例:

句子:"The cat, which was very fluffy, sat on the mat."

传统方法 可能只关注相邻的词,比如 "sat" 只和 "on" 相关。

Transformer 可以让 "cat" 和 "fluffy" 之间建立联系,即使它们相隔较远。

(2)多头注意力(Multi-Head Attention)

作用:增强模型的表达能力,让它同时关注不同层面的信息。

优势:可以关注不同的上下文,例如一个头关注主语,另一个关注动词。

(3)前馈神经网络(Feed-Forward Network, FFN)

作用:对每个单词进行非线性变换,提高模型的表示能力。

优势:增强模型的表达能力,使其更具泛化性。

(4)位置编码(Positional Encoding)

作用:因为 Transformer 没有循环结构(不像 RNN),所以需要额外加位置编码,让模型知道单词在句子中的顺序。

注意力机制的核心思想

(1)计算每个词的重要性

注意力机制的关键是计算输入序列中每个单词对当前目标的相关性。

例子:

句子:"The cat sat on the mat because it was warm."

"it" 可能指代 "mat"(垫子),模型需要重点关注 "mat" 而不是 "cat"。

(2)通过权重调整关注度

对于每个输入词,模型计算一个注意力分数(权重)。

权重越高,说明这个词对当前任务越重要。

最终的输出是所有词的加权平均,但重要的词占更大比例。

2 ChatGPT 的技术原理

ChatGPT背后的GPT模型是在⼀个超⼤语料基础上预训练出的⼤语⾔模型,采⽤从左到右进⾏填字概率预测的⾃回归语⾔模型,并基于prompt来适应不同领域的任务。

再简单⼀些讲:GPT 模型使⽤ Google ⼏年前推出的 Transformer 架构 来预测下⼀个单词的概率分布,通过训练在⼤型⽂本语料库上学习到的 语⾔模式来⽣成⾃然语⾔⽂本

3 大模型训练

⼤模型的训练整体上分为三个阶段:预训练、SFT(监督微调)以及RLHF(基于⼈类反馈的强化学习)

(1)预训练(Pre-training)

预训练的过程类似于从婴⼉成⻓为中学⽣的阶段,在这个阶段我们会学习各种各样的知识,我们的语⾔习惯、知识体系等重要部分都会形成;对于⼤模型来说,在这个阶段它会学习各种不同种类的语料,学习到语⾔的统计规律和⼀般知识 ⼤模型的训练

(2)监督微调(SFT,Supervised Fine Tuning)

SFT的过程类似于从中学⽣成⻓为⼤学⽣的阶段,在这个阶段我们会学习到专业知识,⽐如⾦融、法律等领域,我们的头脑会更专注于特定领域。对于⼤模型来说,在这个阶段它可以学习各种⼈类的对话语料,甚⾄是⾮常专业的垂直领域知识,在监督微调过程之后,它可以按照⼈类的意图去回答专业领域的问题

(3)基于⼈类反馈的强化学习(RLHF,Reinforcement Learning from Human Feedback)

RLHF的过程类似于从⼤学⽣步⼊职场的阶段,在这个阶段我们会开始进⾏⼯作,但是我们的⼯作可能会受到领导和客户的表扬,也有可能会受到批评,我们会根据反馈调整⾃⼰的⼯作⽅法,争取在职场获得更多的正⾯反馈。对于⼤模型来说,在这个阶段它会针对同⼀问题进⾏多次回答,⼈类会对这些回答打分,⼤模型会在此阶段学习到如何输出分数最⾼的回答,使得回答更符合⼈类的偏好。

相关文章:

AGI大模型(2):GPT:Generative Pre-trained Transformer

1 Generative Pre-trained Transformer 1.1 Generative生成式 GPT中的“生成式”指的是该模型能够根据输入自动生成文本内容,而不仅仅是从已有的文本库中检索答案。 具体来说: 生成(Generative):GPT是一个生成…...

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_06带搜索功能的固定表头表格

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

MySQL再次基础 向初级工程师迈进

作者:在计算机行业找不到工作的大四失业者 Run run run ! ! ! 1、MySQL概述 1.1数据库相关概念 1.2MySQL数据库 2、SQL 2.1SQL通用语法 SQL语句可以单行或多行书写,以分号结尾。SQL语句可以使用空格/缩进来增强语句的可读性。MySQL数据库的SQL语句不区…...

使用 Doris 和 Hudi

作为一种全新的开放式的数据管理架构,湖仓一体(Data Lakehouse)融合了数据仓库的高性能、实时性以及数据湖的低成本、灵活性等优势,帮助用户更加便捷地满足各种数据处理分析的需求,在企业的大数据体系中已经得到越来越…...

Linux———迷你在线商城

一、项目简介 1、演示视频 商城项目演示视频 2、功能概述 用户认证管理:支持用户注册、登录和注销操作,通过SQLite数据库存储用户信息(如用户名和密码),确保用户数据的安全性和完整性。 商品展示:能够根据…...

城市林业的无声革命:人工智能与古老生态学如何重新设计城市

城市林业的无声革命:人工智能与古老生态学如何重新设计城市 在摩天大楼的阴影下,一场静悄悄的变革正在发生——它融合了硅芯片与古老根系,算法与原住民智慧。 作者:保罗桑杜 作者利用 PicLumen 创建的图像 城市森林不再只是城市…...

Linux第七讲:基础IO

Linux第七讲:基础IO 1.什么是文件2.文件操作的复习2.1文件基本操作复习2.2将信息输出到显示器,你有哪种方法2.3stdin、stdout、stderror2.4细节问题讲解 3.系统文件IO3.1open函数使用3.1.1理解标志位3.1.2权限问题3.1.3write和read接口介绍3.1.4谈谈fd以…...

【GIT】重新初始化远程仓库

有的时候我们克隆远端仓库会出错: git clone --depth 1 git116.*.*.*:/srv/customs.git D:\dev\projects\kdy\customs11\customs Cloning into D:\dev\projects\kdy\customs11\customs... remote: Enumerating objects: 1494, done. remote: Counting objects: 100…...

力扣热题 100:多维动态规划专题经典题解析

系列文章目录 力扣热题 100:哈希专题三道题详细解析(JAVA) 力扣热题 100:双指针专题四道题详细解析(JAVA) 力扣热题 100:滑动窗口专题两道题详细解析(JAVA) 力扣热题 100:子串专题三道题详细解析(JAVA) 力…...

【Unity】在项目中使用VisualScripting

1. 在packagemanager添加插件 2. 在设置中进行初始化。 Edit > Project Settings > Visual Scripting Initialize Visual Scripting You must select Initialize Visual Scripting the first time you use Visual Scripting in a project. Initialize Visual Scripting …...

Pytest自动化测试框架pytest-xdist分布式测试插件

平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完; 当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间缩短一…...

文件解析漏洞靶场解析全集详解

lls解析漏洞 目录解析 在网站的下面将一个1.asp文件夹&#xff0c;在里面建一个2.txt文件在里面写入<% -now()%>这个显示时间的代码&#xff0c;再将文件名改为2.jpg。 发现2.jpg文件以asp形式执行 畸形文件解析 将2.jpg文件移到网站的下面与1.asp并列&#xff0c;将名…...

C语言数据结构:数组

1. 数组&#xff08;Array&#xff09; 1.1 定义 数组是一种线性数据结构&#xff0c;由相同类型的元素组成&#xff0c;这些元素在内存中按顺序存储。数组的大小在声明时确定&#xff0c;且不可动态改变。 1.2 类型细分 根据维度和用途&#xff0c;数组可以分为以下几种类型…...

LeetCode-移动零

一、题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums […...

PDF Reader

Acrobat Reader...

孔夫子根剧关键字获取在售商品 API

要使用孔夫子旧书网根据关键字获取在售商品的 API&#xff0c;需要以下步骤1&#xff1a; 注册与认证&#xff1a;在孔夫子旧书网的开发者平台注册一个账号&#xff0c;登录后创建一个新的应用&#xff0c;以获取 API 密钥&#xff08;key&#xff09;和调用密钥&#xff08;s…...

Qt的QToolButton设置弹出QMenu下拉菜单

在Qt中&#xff0c;使用QToolButton显示下拉菜单可以通过以下步骤实现&#xff1a; 基本实现步骤 创建QToolButton&#xff1a;实例化一个QToolButton对象。创建QMenu&#xff1a;实例化一个QMenu作为下拉菜单。添加菜单项&#xff1a;通过QMenu::addAction方法添加动作&…...

【一次成功】Win10本地化单机部署k8s v1.31.2版本及可视化看板

【一次成功】Win10本地化单机部署k8s v1.31.2版本及可视化看板 零、安装清单一、安装Docker Desktop软件1.1 安装前<启用或关闭Windows功能> 中的描红的三项1.2 查看软件版本1.3 配置Docker镜像 二、更新装Docker Desktop三、安装 k8s3.1 点击启动安装3.2 查看状态3.3 查…...

Elasticsearch Java High Level Client [7.17] 使用

es 的 HighLevelClient存在es源代码的引用&#xff0c;结合springboot使用时&#xff0c;会存在es版本的冲突&#xff0c;这里记录下解决冲突和使用方式&#xff08;es已经不建议使用这个了&#xff09;。 注意es服务端的版本需要与client的版本对齐&#xff0c;否则返回数据可…...

Vue项目搜索引擎优化(SEO)终极指南:从原理到实战

文章目录 1. SEO基础与Vue项目的挑战1.1 为什么Vue项目需要特殊SEO处理&#xff1f;1.2 搜索引擎爬虫工作原理 2. 服务端渲染&#xff08;SSR&#xff09;解决方案2.1 Nuxt.js框架实战原理代码实现流程图 2.2 自定义SSR实现 3. 静态站点生成&#xff08;SSG&#xff09;技术3.1…...

LeetCode:93. 复原 IP 地址(DFS Java)

目录 93. 复原 IP 地址 题目描述&#xff1a; 实现代码与解析&#xff1a; DFS 原理思路&#xff1a; 93. 复原 IP 地址 题目描述&#xff1a; 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xf…...

Spring Boot 中实现全局 Token 验证的两种方式

文章目录 学习文章&#xff1a;Spring Boot 中实现全局 Token 验证的两种方式 一、为什么需要全局 Token 验证&#xff1f;二、使用拦截器实现全局 Token 验证1. 创建 Token 验证拦截器2. 注册拦截器3. 测试拦截器 三、使用过滤器实现全局 Token 验证1. 创建 Token 验证过滤器2…...

【性能测试】Jmeter下载安装、环境配置-小白使用手册(1)

本篇文章主要包含Jmeter的下载安装、环境配置 添加线程组、结果树、HTTP请求、请求头设置。JSON提取器的使用&#xff0c;用户自定义变量 目录 一&#xff1a;引入 1&#xff1a;软件介绍 2&#xff1a;工作原理 3&#xff1a;安装Jmeter 4&#xff1a;启动方式 &#xf…...

【Matlab仿真】如何解决三相交流信号源输出波形失真问题?

问题描述 如标题所示&#xff0c;在搭建simulink模型过程中&#xff0c;明明模型搭建的没有问题&#xff0c;但是输出的波形却不是理想的正弦波&#xff0c;影响问题分析。 问题分析 以三相交流信号源输出波形为例&#xff0c;输出信号理应为三相正弦量&#xff0c;但是仿真…...

Fiora聊天系统本地化部署:Docker搭建与远程在线聊天的实践指南

文章目录 前言1.关于Fiora2.安装Docker3.本地部署Fiora4.使用Fiora5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 这个通讯软件泛滥的时代&#xff0c;每天都在刷着同样的朋友圈、看着千篇一律的表情包&#xff0c;是不是觉得有点腻了&#…...

metersphere接口测试(1)使用MeterSphere进行接口测试

文章目录 前言接口文档单接口测试环境配置梳理接口测试场景测试接口 接口自动化怎么写复用性高的自动化测试用例 总结 前言 大汉堡工作第203天&#xff0c;本篇记录我第一次接触接口测试任务&#xff0c;最近有些懈怠啊~ 接口文档 首先就是接口地址&#xff0c;接口测试时用…...

【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.2成本优化与冷热数据分离

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 8.2.2AWS OpenSearch Serverless 成本优化与冷热数据分离深度实践1. 成本构成分析与优化机会识别1.1 Serverless模式成本分布1.2 冷热数据特征分析数据特征矩阵 2. 冷热数据…...

MTK Android12 安装app添加密码锁限制

提示&#xff1a;通过安装前输入密码的需求&#xff0c;来熟悉了解PMS 基本的安装流程 文章目录 一、需求实现需求原因提醒 二、UML图-类图三、参考资料四、实现效果五、需求修改点修改文件及路径具体修改内容 六、源码流程分析PMS的复杂性代码量实现aidl 接口PackageManagerSe…...

Redis 集合(Set)

Redis 集合(Set) Redis 是一款高性能的键值数据库,以其高性能、易用性以及丰富的数据结构而广受欢迎。在 Redis 中,集合(Set)是一种重要的数据结构,它支持多种操作,如添加、删除、查找元素,以及集合间的运算。本文将详细介绍 Redis 集合的特点、操作和应用场景。 Redi…...

[数据结构]堆详解

目录 一、堆的概念及结构 二、堆的实现 1.堆的定义 2堆的初始化 3堆的插入 ​编辑 4.堆的删除 5堆的其他操作 6代码合集 三、堆的应用 &#xff08;一&#xff09;堆排序&#xff08;重点&#xff09; &#xff08;二&#xff09;TOP-K问题 一、堆的概念及结构 堆的…...