ChatGPT原理详解+实操

ChatGPT已近火了快大半年了,从去年刚出来的时候小编就关注了一下,也具体的使用过,然后就惊为天人,再然后就没有然后了,因为小编那段时间沉迷于AIGC了。ChatGPT今年开年后更是火的一塌糊涂,无论是行业内还是行业外的人,都在对这个东西进行炒作。那么,玩也玩过了,是不是可以了解一下其内部原理呢?小编就在这班门弄斧试着用通俗的话术来解释一下ChatGPT背后的原理,虽然小编不做生成任务,但也试着了解了一下,望各位大佬勿喷!!!

InstructGPT模型结构

谈到ChatGPT肯定是绕不开instructGPT的,或者说ChatGPT的内核就是instructGPT。那么,想要了解ChatGPT,就是直接了解instructGPT,instructGPT分为如下三大步:

  • SFT:生成模型GPT的有监督精调 (supervised fine-tuning)
  • RM:奖励模型的训练(reward model training)
  • PPO:近端策略优化模型( reinforcement learning via proximal policy optimization)

下面根据这三大步分为三个Step进行讲解以及实操。

SFT(supervised fine-tuning)原理

其实这一步没啥好说的,主要的东西还是大量的Prompt数据,GPT模型通过有监督的Prompt数据进行精调,其实就是做next token prediction任务。然后用精调后的模型对每个输入的[文本+prompt]进行generate,生成4~9个输出,并且进行解码
操作。具体的模型流程如下图所示:



SFT流程图
 

这一步的原理比较简单,难的是数据问题,需要大量的有监督Prompt文本,这里使用一个文本进行展示。

SFT代码实操

  • 数据准备

这里以一条数据为例,数据如下所示:

Raw DataPromptLabel
我们去成都旅游,必须要去的地方是大熊猫繁殖基地。大熊猫是一种有黑白斑纹的动物。
我们去成都旅游,必须要去的地方是大熊猫繁殖基地。大熊猫是中国特有种,主要栖息地是中国四川、陕西和甘肃的山区。
我们去成都旅游,必须要去的地方是大熊猫繁殖基地。大熊猫是已在地球上生存了至少800万年,被誉为“活化石”和“中国国宝”即国兽,世界自然基金会的形象大使,是世界生物多样性保护的旗舰物种。
我们去成都旅游,必须要去的地方是大熊猫繁殖基地。大熊猫是属于熊科、大熊猫属的哺乳动物。仅有二个亚种。雄性个体稍大于雌性。体型肥硕似熊、丰腴富态,头圆尾短,头躯长1.2-1.8米,尾长10-12厘米。

首先将以上数据形成一个输入列表,如下所示:

raw_data = "我们去成都旅游,必须要去的地方是大熊猫繁殖基地。"
prompt = "大熊猫是"
labels = ["一种有黑白斑纹的动物。","中国特有种,主要栖息地是中国四川、陕西和甘肃的山区。",
"已在地球上生存了至少800万年,被誉为“活化石”和“中国国宝”即国兽,世界自然基金会的形象大使,是世界生物多样性保护的旗舰物种。",
"属于熊科、大熊猫属的哺乳动物。仅有二个亚种。雄性个体稍大于雌性。体型肥硕似熊、丰腴富态,头圆尾短,头躯长1.2-1.8米,尾长10-12厘米。"]
combine_data = [raw_data+prompt+label for label in labels]2.

  • 初始化模型,对输入数据进行编码,这里采用的是GPT2模型,如下所示:

from torch.utils.data import Dataset
from transformers import Trainer, TrainingArguments
from transformers import AutoTokenizer, AutoModelForCausalLM
# 模型加载
tokenizer = BloomTokenizerFast.from_pretrained('pre_train_model/gpt2')
model = BloomForCausalLM.from_pretrained('pre_train_model/gpt2')
# 自定义DataSet类
class Datasets(Dataset):
def __init__(self, sample):
super(Datasets, self).__init__()
self.sample = sample

def __getitem__(self, item):
res = {k: v[item] for k, v in self.sample.items()}
return res

def __len__(self):
return len(self.sample['labels'])
# 数据转换
combine_data_token = tokenizer.batch_encode_plus(
initial_data_,
max_length=256,
padding='max_length',
truncation=True,
return_tensors='pt'
)
# 将标签标签加入
combine_data_token['labels'] = combine_data_token['input_ids']
combine_data_token['labels'] = torch.where(
combine_data_token['labels']==0,
-100,
combine_data_token['labels']
)
# 模型训练保存
trainer_args = TrainingArguments("./model/", learning_rate=2e-5, weight_decay=0.01, num_train_epochs=10, auto_find_batch_size=True)
trainer = Trainer(model=initial_model, args=trainer_args, train_dataset=Datasets(initial_token_info))
trainer.train()
trainer.save_model()

  • 模型加载/生成

# 加载模型
model = AutoModelForCausalLM.from_pretrained('./model')
# 处理输入数据
input_data = raw_input + prompt
input_datas = tokenizer.encode_plus(
input_data,
return_tensors='pt'
)
input_ids = input_datas['input_ids']
# 模型生成
result = model.generate(
input_ids=input_ids,
max_length=256,
do_sample=True, # 增加随机性
num_beams=5,
num_return_sequences=5, # 每个样本生成5个结果
no_repeat_ngram_size=3, # 防止重复的token
early_stopping=True # 提前停止
)

decode_tokens = tokenizer.batch_decode(
result,
skip_special_tokens=True
)

results = [i.replace(' ', '') for i in decode_tokens]

print("results",results)

结果如下所示:

我们去成都旅游,必须要去的地方是大熊猫繁殖基地。大熊猫是今世界上保存最完好的哺乳动物之一,也是世界自然保护联盟濒危物种红色名录的保护对象之一。在这里,你可以看到全世界最大的熊猫栖息地成都。成都是中国国家林业局直属的国家重点风景名胜区,是国家森林公园、国家湿地公园和国家地质公园的重要组成部分,是全国重点文物保护单位、全国生态文明建设示范区、中国红色旅游名城、国际生态旅游目的地和国际旅游岛建设先进区。地址:四川省成都市绵阳市成华区成都高新技术产业开发区成华大道1号乘车路线:成都绵阳都江堰雅
我们去成都旅游,必须要去的地方是大熊猫繁殖基地。大熊猫是我国唯一的国家二级保护动物,是世界上保存最完整的动物种群之一,也是我国第一个国家级自然保护区。我们是四川省的首批国家重点保护野生动物和珍稀动物基金会的成员,被誉为中国动物保护的摇篮和世界生物多样性保护基地,被中国科学院、中华人民共和国国家林业局授予全国生态文明建设示范区称号,被国务院批准为国家森林城市、国际生态旅游目的地。熊猫基地位于成都市双流区东南部,是国家aaaa级旅游景区,国家地理标志保护单位。熊猫栖息地为亚热带或热带的高山
我们去成都旅游,必须要去的地方是大熊猫繁殖基地。大熊猫是我国唯一的国家级自然保护区,也是世界上保存最完好的熊猫种群之一。它们栖息在亚热带或热带的高海拔草原上,生活
环境十分优越,是中国四大自然奇观之一,被誉为世界自然遗产和中国国家森林公园。熊猫栖息地主要分布在中国大陆的西藏、青海、甘肃、宁夏、新疆、内蒙古、山西、辽宁、吉林、黑龙江、江苏、河南、安徽、湖北、湖南、江西、广东、海南、四川、云南、贵州、陕西等地。中国熊猫研究中心主任、中国科学院院士、国家自然科学基金委员会委员、中华全国工商业联合会副主席
我们去成都旅游,必须要去的地方是大熊猫繁殖基地。大熊猫是我国唯一的国家级自然保护区,也是世界上保存最完整、规模最大的野生动物种类繁多的地区之一,是中国国家重点保护的珍稀濒危动物及其栖息地和世界自然遗产的重要组成部分,被誉为中国最美丽的城市和世界生物多样性保护基地,被国际旅游组织评为全球生态旅游目的地。成都熊猫国家公园位于四川省甘孜藏族自治州,是国家aaaa级旅游景区,被《世界遗产名录》列为全国重点文物保护单位。目前,我国已建成国家森林公园、国家湿地公园和国家地质公园,国家林业局、国务院扶贫
我们去成都旅游,必须要去的地方是大熊猫繁殖基地。大熊猫是现存最大、保存最完整的动物,属于国家二级保护动物。熊猫种类繁多,分布广泛,主要分布在四川、云南、陕西、甘肃、宁夏、内蒙古、新疆、青海、吉林、辽宁、黑龙江、山西、江苏、江西、河南、湖北、湖南、广东、广西、海南、重庆、贵州、西藏、四川等省区市。它们的栖息地主要为亚热带或热带的(低地)湿润低地林、亚高山草原、高山湖泊、高原湿润山区和高原沼泽地等,常栖息在高海拔地区。在中国大陆,熊猫分布于四川省甘孜藏族自治州和青海省西宁市等地。雄性熊猫体长约1.5米

总结

至此,就完成了GPT2模型的有监督精调训练。可能有的读者会说,你这和instructGPT的SFT过程不一样,是有点不一样,但思路原理是一样的,而且笔者自己没有好的硬件设备,只能在小模型上试试水,而且笔者也没有大规模的高质量有监督数据

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT原理剖析:InstructGPT详解

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

ChatGPT原理简介

承接上文GPT前2代版本简介 GPT3的基本思想 GPT2没有引起多大轰动,真正改变NLP格局的是第三代版本。 GPT3训练的数据包罗万象,上通天文下知地理,所以它会胡说八道,会说的贼离谱,比如让你穿越到唐代跟李白对诗,不在一…

ChatGPT 原理解析:对ChatGPT的常见误解

本文目录: ChatGPT 原理解析:对ChatGPT 的常见误解 ChatGPT 原理解析:对ChatGPT 的常见误解 本文是台大李宏毅教授的深度学习课程的视频笔记。李宏毅教授的机器学习课程内行的都知道,大概是全世界最好、最完整的 Deep Learning 中…

ChatGPT原理简明笔记

学习笔记,以李宏毅的视频讲解为主,chatGPT的官方博客作为补充。 自己在上古时期接触过人工智能相关技术,现在作为一个乐子来玩,错漏之处在所难免。 若有错误,欢迎各位神仙批评指正。 chatGPT的训练分为四个阶段&#x…

ChatGPT原理解读

目录 GPT痛点基于人类反馈的强化学习机制(ChatGPT)step1:Fine-tune SFT模型step2:训练Reward模型step3:强化学习训练PPO模型 一些技术问题猜想ChatGPT的多轮对话能力ChatGPT的交互修正能力 GPT痛点 GPT作为一个通用大…

ChatGPT 基地

大家好,我是贺同学。 一直以来密切关注 ChatGPT 的趋势,最近相关的话题可谓是热度不减,并且相关的付费社群已经有雨后春笋般冒出来很多,但我最近发现一个比较独特的星球。 在这个星球里面,大家不搞噱头,而是…

关于安卓以及微软用户chatgpt上一篇文章如今第五点无法正常进入更新解决方法以及附加本地部署

目录 一、问题出现: 1、问题: 原因: 二、解决办法(本地部署chatgpt) 1、解决(国内网络使用真的chatgpt并非镜像)一次部署终生使用 第一步: ​编辑第二步: 三、实现结…

chatgpt赋能python:Python手机App开发:打包你的Python代码并在Android或iOS上运行

Python 手机App开发:打包你的Python代码并在Android或iOS上运行 Python是当今最受欢迎的编程语言之一,经过了十多年的发展,其用户群体已经非常庞大,和诸多行业广泛应用。从网站开发到机器学习和Data Science,Python都…

ChatGPT:如何使用正在改变一切的 AI 聊天机器人

转载自ChatGPT: How to use the AI tool thats changing everything | Digital Trends DownLoad 个人中心 ChatGPT 继续通过AI 生成的内容让互联网眼花缭乱,从一个新颖的聊天机器人转变为一项推动下一个创新时代的技术。不过,并不是每个人都参与其中&…

谷歌或被抛弃!ChatGPT 引爆手机市场新一轮洗牌:Android 手机销冠三星30亿美元大单欲改投 Bing...

点击上方“AI遇见机器学习”,选择“星标”公众号 第一时间获取价值内容 整理 | 褚杏娟 核子可乐 今年三月,谷歌员工突遭意外打击:韩国消费电子巨头三星正考虑用微软 Bing 取代谷歌搜索,作为其设备上的默认搜索引擎。 以 New Bing …

利用ChatGPT进行表格的数据分析!

第一步:既然是分析表格数据,我们就先让GPT来生成一组表格数据,提问问题如下,你也可以自己发挥 请给我生成10组表格数据,姓名,年龄,基本工资,全勤奖励,绩效奖金&#xff0…

chatgpt帮你制作excel表格

场景: 让chatgpt帮你制作工作表格方法 输入你的需求,让chatgpt帮你解答逐步添加需求

ChatGPT辅助处理excel表格数据

选择使用方法 找现成的工具。试了两个,有各种问题。比如比如北大团队出品的ChatExcel等。我的表格列比较多,上传文件后需要砍掉一部分。输入几个命令以后就识别不了了。即使识别到了,输出也受限制,还不如手工处理。另外&#xff…

让ChatGPT来制作Excel表格,ChatGPT实现文本和表格的相互转换

Office 三套件可以说是现代办公族必备的办公工具。其中,Excel 因为内置的计算函数、VBA 宏等高级功能又成为了非专业人士最头疼的 Office 组件。非财务专业人士,估计平常会用的 Excel 函数仅限于 SUM(), AVERAGE() 等,甚至这些都是通过界面点…

使用ChatGPT处理Excel表格-终极指南

ChatGPT是由OpenAI开发的人工智能聊天机器人,可用于各种Excel任务,以提高您的办公效率,无论您是会计师、金融分析师、经理、管理员还是其他企业专业人士。 我们将讨论ChatGPT在Excel中可以帮助您的顶级方法。您会惊叹于使用ChatGPT将办公室在…

这么方便吗?用ChatGPT生成Excel(详解步骤)

文章目录 前言使用过 ChatGPT 的人都知道,提示占据非常重要的位置。而 Word,Excel、PPT 这办公三大件中,当属 Excel 最难搞,想要熟练掌握它,需要记住很多公式。但是使用提示就简单多了,和 ChatGPT 聊聊天就…

ChatGPT使用技巧—如何快速制作表格?

一、背景: 在学习或工作中,时常会需要做一些表格进行数据统计、分析,通常我们会用word或者excel做出表格,然后把数据一个个复制进去,非常慢,用了ChatGPT之后,你会发现工作会变得如此简单…

使用ChatGPT做简单Excel表格及数据分析

解锁 ChatGPT 表格能力 如果我们想用ChatGPT做一些简单的表格 或者想让他具备编辑分析能力 只需要在提问的时候告诉 ChatGPT:请以表格的形式展示回复的内容 这么说... 可能有点抽象 下面我们就用一个完整的例子展开学习一下 举例 假如我们拿到了下面这组数据 希望…

Chatgpt使用技巧(一):Chatgpt处理python+excel+tableau的技巧。

#分享一个使用chatgpt处理pythonexceltableau的技巧。 首先需要一个chatgpt的账号,如果没有的话可以在csdn中使用。 其次(图一)中是我建的excel样本。 我通过询问(图二)chatgpt获取python跑取excel的代码。 然后绘制…

chatGPT是什么?最新需要了解的都在这

ChatGPT是什么? ChatGPT是一种基于人工智能的聊天机器人。它能够使用自然语言处理技术,与人类进行交互,并回答各种问题或提供帮助。ChatGPT的目的是为了让用户更容易地获取所需信息,并进行沟通。 ChatGPT是一款基于人工智能技术的…