第1章 可视化GPT原理

5 篇文章 1 订阅
订阅专栏

1 可视化GPT原理

BERT预训练模型采用了Transformer的Encoder部分,这节介绍的GPT(包括GPT-2、GPT-3)使用Transformer的Decoder部分。

1.1 GPT简介

GPT来自OpenAI的论文《Improving Language Understandingby Generative Pre-Training》,后来又在论文《Language Models areUnsupervised Multitask Learners》提出了 GPT-2 模型。GPT-2 与 GPT 的模型结构差别不大,但是采用了更大、更高质量的数据集进行实验。

GPT是在 Google BERT算法之前几个月提出的,与 BERT最大的区别在于,GPT和后来的一些模型,如TransformerXL和XLNet本质上是自回归(auto-regressive)模型,即使用单词的上文预测单词,而 BERT 不是,它采用使用MLM模型,同时利用单词左右来预测。因此,GPT 更擅长处理自然语言生成任务 (NLG),而 BERT更擅长处理自然语言理解任务 (NLU)。

1.2 GPT的整体架构

GPT预训练的方式和传统的语言模型一样,通过上文,预测下一个单词,GPT的整体架构如图1-11所示。

图1-11 GPT的整体架构图

其中Trm表示Decoder模块,在同一水平线上的Trm表示在同一个单元,

表示词嵌入,那些复杂的连线表示词与词之间的依赖关系,显然,GPT要预测的词只依赖前文。

GPT-2根据其规模大小的不同,大致有4个版本,如图1-12所示。

图1-12 GPT-2的4种模型

1.3 GPT模型结构

GPT、GPT-2使用 Transformer的Decoder结构,但对 Transformer Decoder 进行了一些改动,原本的 Decoder 包含了两个 Multi-Head Attention 结构,GPT 只保留了 Mask Multi-Head Attention,如图1-13所示。

图1-13 GPT的模型结构

1.4 GPT-2的Mult-Head与BERT的Mult-Head区别

BERT使用Muti-Head Attention ,可以同时从某词的左右两边进行关注。而GPT-2采用Masked Muti-Head Attention,只能关注词的右边,如图1-14所示。

图1-14 BERT与GPT-2的Multi-Head的异同

1.5 GPT-2的输入

GPT-2的输入涉及两个权重矩阵,一个是记录所有单词或标识符(Token)的嵌入矩阵(Token Embeddings),该矩阵形状为mode_vocabulary_size xEmbedding_size,另一个为表示单词在上下文位置的编码矩阵(Positional Encodings),该矩阵形状为:context_sizexEmbedding_size,其中Embedding_size根据GPT-2模型大小而定,SMALL模型为768,MEDIUM为1024,以此类推。输入GPT-2模型前,需要把标识嵌入加上对应的位置编码,如图1-15所示。

图1-15 GPT-2 的输入数据

在图1-15中,每个标识的位置编码在各层DECODER是不变的,它不是一个学习向量。

1.6 GPT-2 计算Masked Self-Attention的详细过程

假设输入语句为:"robot must obey orders",接下来must这个query对其它单词的关注度(即分数),主要步骤:

(1)对各输入向量,生成矩阵Q、K、V;

(2)计算每个query对其它各词的分数;

(3)对所得的应用Mask(实际上就是乘以一个下三角矩阵)

详细步骤如下:

1.创建矩阵Q、K 、V

对每个输入单词,分别与权重矩阵相乘,得到一个查询向量(query vector)、关键字向量(key vector)、数值向量(value vector),如图1-16所示。

图1-16 生成self-Attention中的K,Q,V

2.计算每个Q对Key的得分

对每个Q对Key的得分计算公式,如图1-17所示。

图1-17 Q对key得分的计算过程

3.对所得的分数应用Mask

对所得分再经过Attention Mask的映射,如图1-18所示。

图1-18得分经过Mask示意图

4.Mask之后的分数通过softmax函数

经过Mask后的分数通过softmax后的结果如图1-19所示。

图1-19 得分通过softmax后

5.单词must(即q2)对各单词的得分为:

q2对各单词的得分,如图1-20所示。

图1-20 q2对各词的得分

1.7 输出

在最后一层,对每个词的输出乘以Token Embedding矩阵(该矩阵的形状为mode_vocabulary_sizexEmbedding_size,其中Embedding_size的值根据GPT-2的型号而定,如果是SMALL型,就是768,如果是MEDIUM型,就是1024等),最后经过softmax函数,得到模型字典中所有单词的得分,通过取top取值方法就可得到预测的单词,整个过程如图1-21所示。

图1-21 GPT-2的输出

1.8 GPT与GPT-2的异同

在GPT的基础上,后面又开发出GPT-2,两者架构上没有大的变化,只是对规模、数据量等有些不同,它们之间的异同如下:

1.结构基本相同,都采用LM模型,使用Transformer的DECODER。

2.不同点:

(1)GPT-2结构的规模更大,层数更大。

(2)GPT-2数据量更大、数据类型更多,这些有利于增强模型的通用性,并对数据做了更多质量过滤和控制。

(3)GPT对不同的下游任务,修改输入格式,并添加一个全连接层,采用有监督学习方式,如图1-22所示。而GPT-2对下游采用无监督学习方式,对不同下游任务不改变参数及模型(即所谓的zero-shot setting)。

图1-22(左)Transforer的架构和训练目标,(右)对不同任务进行微调时对输入的改造。

GPT如何改造下游任务?微调时,针对不同的下游任务,主要改动GPT的输入格式,先将不同任务通过数据组合,代入Transformer模型,然后在模型输出的数据后加全连接层(Linear)以适配标注数据的格式,具体情况大致如下:

1.分类问题,改动很少,只要加上一个起始和终结符号即可;

2.句子关系判断问题,比如Entailment,两个句子中间再加个分隔符即可;

3.文本相似性判断问题,把两个句子顺序颠倒下做出两个输入即可,这是为了告诉模型句子顺序不重要;

4.多项选择问题,则多路输入,每一路把文章和答案选项拼接作为一个输入即可。

从图1-22可看出,这种改造还是很方便的,不同任务只需要在输入部分改造即可,所以GPT-2、GPT-3 对不同下游任务基本不改过参数和模型方式。

GPT自我揭秘GPT-3.5模型原理
04-25
ChatGPT是一个基于GPT-3.5架构的大型语言模型。GPT-3是一个由OpenAI开发的自然语言处理模型,使用了神经网络技术来生成自然语言文本。ChatGPT的设计初衷是作为一个智能对话系统,可以进行人机对话,提供服务和娱乐。...
通俗易懂的GPT原理简介
qq_41771998的博客
03-31 1万+
综上所述,GPT是自然语言处理领域中最强大的模型之一,它的出色表现已经使得它在各种应用场景中得到了广泛的应用。
GPT原理介绍
linchuhai的博客
07-25 2万+
1.引言 前面我们介绍了ELMo算法的思想,通过在大量的语料上预训练语言模型,然后再将预训练好的模型迁移到具体的下游NLP任务,从而提高模型的能力。但是ELMo预训练的语言模型结构和下游的NLP任务的模型经常会不一致,因此,做迁移学习时经常没法将两者的模型直接进行融合,因此,本文将介绍OpenAI在2018年提出来的一个方法——GPT,该模型在预训练语言模型的基础上,只需要做一些微改即可直接迁移到...
神经网络算法 - 一文搞懂GPT(Generative Pre-trained Transformer)
最新发布
2401_85328934的博客
08-22 869
本文将从GPT的本质、GPT原理GPT架构改进三个方面,带您一文搞懂Generative Pre-trained Transformer | GPT
【NLP】GPT原理
小马日记
10-20 8102
一、GPT简介 1、含义 GPT是“Generative Pre-Training”的简称,是指的生成式的预训练。GPT采用两阶段过程,第一个阶段是利用语言模型进行预训练,第二阶段通过Fine-tuning的模式解决下游任务。下图展示了GPT的预训练过程。 2、GPT与ELMO区别与联系 (1)相同点:GPT和ELMO是类似的都是两阶段模型。 (2)不同点:首先,特征抽取器不是用的RNN,而是用的...
介绍一下gpt模型的原理
02-07 1437
介绍一下gpt模型的原理
如何使用GPTK(Game Porting Toolkit)运行EA游戏
2301_78087256的博客
01-18 2527
使用GPTK(Game Porting Toolkit)来运行EA游戏
【大数据可视化大屏源码】市突发预警平台实时监控.zip
05-19
大数据可视化大屏前端源码大数据可视化大屏前端源码大数据可视化大屏前端源码大数据可视化大屏前端源码大数据可视化大屏前端源码大数据可视化大屏前端源码大数据可视化大屏前端源码大数据可视化大屏前端源码大数据...
idea es插件可视化,支持gpt
07-21
标题“idea es插件可视化,支持gpt”暗示了我们正在讨论一个针对IntelliJ IDEA开发的Elasticsearch(简称ES)插件,该插件具有可视化功能,并且能够与GPT(可能是Generative Pre-trained Transformer,一种人工智能...
GPT 模型背后的原理!!!
04-28
按照第一性原理,在开始实战演练之前,我认为有必要先了解一下 GPT 模型背后的原理,这样才能避免盲目地崇拜它,也能避免无知地轻视它,而以更加理性的态度来应用它,并且做到举一反三,让它更好地为我所用。...
GPT的特点和基本原理
04-22
GPT (Generative Pre-trained Transformer) 是一种基于 Transformer 模型的预训练语言模型,由 OpenAI 发布。它通过大规模的自监督学习来学习语言的统计规律,能够在各种自然语言处理任务上取得优异表现。下面我们来...
五分钟了解GPT 模型背后的原理是什么?为什么 GPT 模型能生成有意义的文本?为什么 GPT 模型不会做简单的数学题?为什么有人担心 GPT 模型可能会危害人类?
一个写湿的程序猿
04-11 4741
1945 年,美国研制成功之后,在日本投下了 2 颗原子弹,造成超过 20 万人死亡,爆炸后释放了大量的核辐射,对人类产生长期的负面影响,导致癌症等健康问题,对生态环境造成巨大的损失,对人类安全造成严重的威胁。下面结合沃尔夫勒姆的文、谷歌团队的论文、ChatGPT 的回答、以及万维钢的 AI 前沿课等内容,抛开一些技术的细节,结合自己的理解,尽量用比较通俗的语言,来解读 GPT 模型背后的原理。据说在 2021 年,美国有一个叫约书亚的人,他的爱人杰西卡因病去世,因此他感到伤心欲绝。
GPTK(Game Porting Toolkit)使用过程中的疑难及其解决办法
2301_78087256的博客
01-18 1836
GPTK(Game Porting Toolkit)使用过程中的疑难及其解决办法: 中文字体缺失、游戏画面分辨率低、游戏无法正常运行等
漫话GPT原理
tong_xin2010的专栏
02-01 3665
预训练语言模型是什么?能对NLP的任务起到什么作用?是如何训练出来的? 这篇文将给出答案
Game Porting Toolkit 安装指南
湖中剑
08-23 7185
游戏移植工具包于2023年6月6日在WWDC大会上发布,将Wine与苹果自家的D3DMetal技术相结合,实现对DirectX11和12的支持。与CrossOver或Parallels这类结束相比,虽然通过GPTK安装Windows游戏对用户有使用门槛,但它却有解锁支持更多DirectX游戏的能力。虽说很多游戏都可以通过GPTK运行,但是那些包含了反作弊或DRMs,以及使用A1VXAVX 2指令集的游戏不在可玩范围之内。
2. Transformer相关的原理(2.4. 图解GPT
qq_36744449的博客
08-20 1644
参考 除了BERT以外,另一个预训练模型GPT也给NLP领域带来了不少轰动,本节也对GPT做一个详细的讲解,感兴趣的读者可以选择性阅读。 图: 结构总览 前言 这篇文翻译自http://jalammar.github.io/illustrated-gpt2/。多图详细解释当今最为强大的人工智能 GPT-2(截至 2019 年 8 月 12 日)。 今年,我们看到了机器学习在许多场景的广泛应用。OpenAI GPT-2(https://openai.com/blog/better-language-mod
GPT从入门到精通之 GPT 模型入门及原理介绍
Debug_Snail的专栏
06-08 4216
敏捷开发,在国内逐步兴起,不管什么公司都追求开发模型的更新跟进。敏捷开发从传统零售,到银行,药企都掀起了一波浪潮。 那面对不同行业,不同公司的不同风格,敏捷开发出现了本地化的适配。不过最终的目标是一致的,追求快速迭代,小步快跑,适应市场需求。 针对敏捷开放,需要提高效率,所以来记录下高效实战经验。关于测试部分,敏捷开放是怎样的流程呢? 第一步:定制效率工具的流程 第二部:跟进US边界User case 第三步:提交测试计划 第四步:进行测试,所有问题直接提交给负责人来处理修复 第五步:未完成修
GPT原理
u010451780的专栏
07-27 1498
https://blog.csdn.net/sinat_24330297/article/details/102501549 OpenAI-GPT原理详解 本文参考 一、前言 二、基础知识 三、OpenAI GPT 3.1 OpenAI GPT 原理 3.2 OpenAI GPT模型结构 3.2.1 非监督预训练 3.2.2 监督微调fine-tuning ...
GPT模型总结【模型结构及计算过程_详细说明】
热门推荐
weixin_45577864的博客
08-12 4万+
GPT模型 GPT模型:生成式预训练模型(Generative Pre-Training) 总体结构: 无监督的预训练 有监督的下游任务精调 核心结构:中间部分主要由12个Transformer Decoder的block堆叠而成 下面这张图更直观地反映了模型的整体结构: 模型描述 GPT 使用 Transformer的 Decoder 结构,并对 Transformer Decoder 进行了一些改动,原本的 Decoder 包含了两个 Multi-Head Attention 结构,GPT 只保
Python gpt可视化图片代码
06-09
如果您正在使用Python的OpenAI GPT库,可以使用以下代码将生成的文本转换为可视化图片: ```python import openai from PIL import Image, ImageDraw, ImageFont # 设置OpenAI API密钥 openai.api_key = "YOUR_API_KEY" # 生成GPT输出文本 prompt = "Once upon a time" model = "text-davinci-002" response = openai.Completion.create( engine=model, prompt=prompt, max_tokens=1024, n=1, stop=None, temperature=0.5 ) text = response.choices[0].text.strip() # 将文本转换为图像 img_width = 800 img_height = 600 bg_color = "white" text_color = "black" font_path = "/path/to/font.ttf" font_size = 32 img = Image.new("RGB", (img_width, img_height), bg_color) draw = ImageDraw.Draw(img) font = ImageFont.truetype(font_path, font_size) text_lines = text.split("\n") y = 0 for line in text_lines: line_width, line_height = font.getsize(line) draw.text(((img_width - line_width) / 2, y), line, fill=text_color, font=font) y += line_height img.show() ``` 在上面的代码中,您需要将`YOUR_API_KEY`替换为您的OpenAI API密钥,`prompt`设置为您想要生成的文本,`model`设置为您想要使用的GPT模型。`max_tokens`和`temperature`参数可以控制GPT生成的文本长度和多样性。`bg_color`和`text_color`可以自定义背景和文本颜色。`font_path`和`font_size`可以设置使用的字体和字号。 当您运行这段代码时,它将生成一张包含GPT生成文本的图片,并在您的计算机上显示。您可以根据需要调整图像大小、颜色和字体等参数。希望这个例子对您有所帮助。
写文章

热门文章

  • 第3章 ChatGPT简介 7492
  • 第2章 GPT-3简介 4627
  • 用BERT实现中文语句分类 3532
  • 使用transformer实现图像分类 1934
  • 第4章 用GPT-2生成文本 1467

分类专栏

  • AIGC 1篇
  • LLM 3篇
  • GPT 5篇

最新评论

  • 4.扩散模型DDPM的发展脉络

    CSDN-Ada助手: Python入门 技能树或许可以帮到你:https://edu.csdn.net/skill/python?utm_source=AI_act_python

  • 第5章 微调GPT-2生成戏剧文本

    御风而行_652: 5.5的select_top_k()函数在第四章定义了,大家参考的时候记得在循环之前加上函数的定义。 [code=python] import random def select_top_k(predictions, k=10): predicted_index = random.choice( predictions[0, -1, :].sort(descending=True)[1][:10]).item() return predicted_index [/code]

  • 第5章 微调GPT-2生成戏剧文本

    御风而行_652: 5.4训练模型 中间那行 loss, logits, _ = model(data, labels=target) 是不是该是 loss = model(data, labels=target)[0] 啊?

  • 第5章 微调GPT-2生成戏剧文本

    御风而行_652: 这一章的5.4训练模型的代码会报错耶,我用的Jupyter Lab,“loss.item()”和后面的“loss.backward()”会报错:AttributeError: 'str' object has no attribute 'item'。 尝试了redis降级安装也不行,求求大佬指导下。

  • 使用transformer实现图像分类

    葡萄糖o: 老哥能网盘分享一下整个文件吗

最新文章

  • 5.有关AIGC的三个问题
  • 4.扩散模型DDPM的发展脉络
  • 3.如何破解强化学习难入门问题?
2024年3篇
2023年7篇
2022年12篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王如何优化网站首肯易速达德兴网站整站优化网站优化怎么做的二七区营销网站搭建优化洛阳网站优化厦门网站排名优化费用建安区口碑好网站优化哪家强莆田市网站优化推广滨州网站seo优化购物网站优化的建议网站推广需要优化吗潍坊网站seo优化推广荆门市网站关键词优化效果海门市网站优化选哪家南充网站优化要怎么做网络推广和网站优化中山佛山网站优化方案延庆网站推广和优化四川网站怎么优化深圳公明网站优化外包商丘优化网站排名哪里好深圳软件网站优化经验电子网站优化怎么推禹州市网站优化的服务模式什么是网站外部优化新手网站如何优化东莞校园网站优化热线邯郸放心的网站设计优化合肥市网站排名优化华富小企业网站优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化