庆云古诗词

庆云古诗词

3分钟讲清楚chatgpt的技术原理 一文读懂Chat GPT是什么

互联资讯 0

淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】

chato,chatrge,chchat,chats

AIGC简要介绍

AIGC是什么

AIGC?- AI Generated Content (AI生成内容),对应我们的过去的主要是 UGC(User Generated Content)和 PGC(Professional user Generated Content)。

AIGC就是说所有输出内容是通过AI机器人来生成产出相关内容,主要区别是过去主要是普通用户和某一领域专业用户(人)生产内容,AIGC主要是依赖于人工智能(非人类)生成内容,这个就是AIGC的核心意思。

(版权认定:UGC和PGC是有版权概念的,版权归属于负责生成内容的人,AIGC目前美国法规认为是没有版权概念的,就是内容不属于调用的人,也不属于这个AI机器,所以没有版权归属这件事。)

AIGC可以生成什么内容

目前AIGC主要可以生成文本内容和图片内容(目前视频生成有一些产品,但是没有文本和图片生成这么成熟),所以我们主要集中在文本和图片的AIGC的介绍。

AIGC在文本内容方面,主要可以通过 Q&A (提问回答)得形式进行互动,能够按照人类想要的“提问”生产输出符合人类预期的内容。

一般我们可以把AI当做一个全知全能的“高级人类”,以“文本AIGC”来抡,你可以向它提出问题(Prompt),然后它做出相应回答。所有提问和回答都可以涉及到方方面面,包括不限于? 百科知识/创意文案/小说剧本/代码编程/翻译转换/论文编写/教育教学/指导建议/聊天陪伴 等等等等场景不一而足,场景都需要你去想,可以理解它是一个拥有全地球知识的“百晓生”,什么都可以问它或者跟它交流。

比如我们用大名鼎鼎的 ChatGPT 来进行提问:

对于“图片AIGC”来说,你可能脑子里有无数创意,但是自己不会绘画,无法把脑子里的Idea变成实实在在的图片,那么,“图片AIGC”能够帮助你按照你脑子想要的东西,你告诉它,然后它能够帮助你通过图片绘画的形式给你画出来,让你一下子把自己的“创意”变成了图片现实。

比如我们用非常好用的“图片AIGC” 工具 Midjourney 来画画:

AIGC基本工作原理

AIGC底层主要依赖的是AI技术,AI技术本质主要是让机器拥有像人类一样的智能(Artificial Intelligence),所以就需要让机器能够像人类一些学习和思考,所以目前大部分实现AI的底层技术叫做“机器学习”(Machine Learnin)技术。

机器学习技术主要有很多应用场景,比如现在非常常用的包括 人脸识别(手机解锁/支付宝支付/门禁解锁等)、语音识别(小爱同学/小度/Siri)、美颜换脸(主播美颜/美颜相机)、地图导航、气象预测、搜索引擎、NLP(自然语言处理)、自动驾驶、机器人控制、AIGC 等等。

机器如何进行学习

机器学习可以简单理解为是模拟人类学习的过程,我们来看一下机器是如何模拟人类学习的。

我们再看看所谓的“机器学习”:

对于人类学习来说,我们看到的事物和遇到的事物就是我们的“资料”(语料),然后我们通过“学习总结归纳”(学习算法),最后变成了“知识经验智慧”(模型),然后遇到事情的时候我们就会调用这些“知识经验方法论”做出相应的反应决策动作(预测推理);

对于机器学习来说,给它输入大量的“语料”(看到遇到的事物),然后通过机器学习算法(总结归纳抽取相似点),最后形成了“模型”(知识经验方法论),然后再遇到一些需要判断决策的时候,我们就会把要判断决策的事物给“模型”,然后就会告诉我们输出结果(推理推测结果);

从抽象层来说,我们会发现,本质来说,“人类学习”和“机器学习”内在本质是比较像的。

我们来看一个计算机里概要的机器学习的过程:

里面核心步骤就是:“训练数据 ? 训练算法 ? 模型 ? 预测 ? 输出结果”,其中最终产出物是“模型”(Model,模型文件),然后主要是前置的“训练模型”和后置的“模型预测”,然后产生对应结果。

上面这个过程我们我们可以简单理解为:“模型”就是一只小狗,饲养员就是那个“训练算法”,饲养员在场下对那个小狗通过一些指令和奖惩措施进行反复训练(训练算法),小狗就会学会一些技能(模型),一旦学会了,小狗就可以出去表演,表演的过程就是预测。

所以我们会看到,里面如果“模型”中的特征(知识经验)越多,最终在“预测”阶段就越准确,如果模型越小,或者中间的特征数据越少,可能最终预测结果准确率会降低。(类似一个人遇到的事情越多,总结的经验就越多,俗话说的“人生没有白走的路没有白踩的坑” 大概就是这个逻辑)

机器学习的分类

机器学习(Machine Learnin)经过几十年的研究,在技术实现得种类非常多,可以从大类上面分为:基于学习策略、基于学习方法、基于学习方式、基于学习目标等进行分类。

基于学习策略的分类:主要有模拟人脑工作原理的“符号学习”和“神经网络学习”两个主要流派;另外一个学习策略的流派是基于数学统计分析得机器学习方法。

基于学习方法的分类:机器学习主要有,归纳学习、演绎学习、类比学习、分析学习,它是类似于人脑的“符号学习”得学习方法分类。

基于学习方式的分类:主要有,有监督学习(带老师指导)、无监督学习(自学)、强化学习(通过环境奖惩反馈进步)。

机器学习分类中,我们重点关注的是“学习策略”和“学习方式”为主的分类,学习策略是关注是基于“数学统计分析”的机器学习还是基于“神经网络”的机器学习。另外一个是学习方法,主要是关注 有监督学习、无监督学习和强化学习。

机器学习的发展

机器学习技术主要经历了从兴起到深度学习三个大技术时代,第一个是兴起时代,然后是传统的机器学习时代,最后是基于神经网络的深度学习时代,以下简单按照我个人理解做了一个发展阶段分类。

兴起阶段:1943年诞生了感知机模型(MCP),一位心理学家和一位数理逻辑学家 提出了人工神经网络的概念和人工神经元的数学模型,算开创了人工神经网络得研究时代。然后从60年代到80年代之间,有了机器学习概念和模式识别等,属于整个研究的兴起探索阶段,这个阶段各种方向的探索都在进行,百花齐放。

第一阶段:传统机器学习(Machine Learnin),从1980年召开第一届技术学习研讨会开始,虽然同步也有神经网络得研究,但是可以简单理解为大行其道的主要是基于数学和统计分析为主的方式得机器学习,特别是在1990年到2001年之间,从理论到实践都经过了很大的发展。这个时间段一直到2006年,在信息行业主要流行的传统机器学习包括 传统隐马尔可夫模型(HMM)、条件随机场(CRFs)、最大熵模型(MaxEnt)、Bboosting、支持向量机(SVM)、贝叶斯(Bayes)等等,具体实践中落地包括 线性回归、逻辑回归、SVM、决策树、随机森林、朴素贝叶斯 等等落地的算法。这些算法的因果逻辑和中间计算过程都是清晰明确的,基本是清晰可信的,不足就是最终效果有上限,可能最终“智能”效果有时候就不够。

第二阶段 V1:“深度学习”(Deep?Learnin),2006年机器学习教父级人物Hinton发表了深层神经网络的论文正式开启了基于神经网络得“深度学习”的阶段,可以简单认为“深度学习”是传统机器学习的另外一条路线,它主要区别是在“学习策略”方面的路线不同,传统机器学习主要是依赖于“数学统计分析”为主的方法,过程结果可推导;深度学习主要是也依赖于让计算机模拟人脑一样神经网络连接一样的方式进行运算。

第二阶段 V2:Transformer 模型(Transformer model),2015年提出了Attention机制,2017年Google发表了论文《Attention Is All You Need》在次基础之上提出了Transformer架构,它基于encoder-decoder架构,抛弃了传统的RNN、CNN模型,仅由Attention机制(注意力机制)实现,并且由于encoder端是并行计算的,训练时间大大缩短。Transformer模型广泛应用于NLP领域,机器翻译、文本摘要、问答系统等等,最近几年比较主流的Bert和GPT模型就是基于Transformer模型构建的。

我们看一下深度学习基本的发展历史:

传统机器学习和深度学习的区别

深度学习与传统机器学习不太一样,所以它主要是用来定义不同网络框架参数层的神经网络,所以主有很多神经网络结构,包括 无监督预训练网络(Unsuper【【微信】】orks)、卷积神经网络(Con【【微信】】orks)、循环神经网络(Recurrent Neural Networks)、递归神经网络 (Recursi【【微信】】)等等;

神经网络叫做“深度学习”主要是看里面所谓神经网络的层数,1-2层叫做浅层神经网络,超过5层叫做深层神经网络,又叫做深度学习”。

其中,应用比较多的主要 卷积网络(CNN - Con【【微信】】orks)、循环神经网络(RNN - Recurrent Neural Networks)+递归神经网络(RNN - Recursi【【微信】】)、长短期记忆RNN(LSTM - Long short-term memory) 和为了解决 LSTM/RNN 中的一些问题的解决办法加入Attention机制的Transformer框架。

深度学习在计算机视觉(CV、如图像识别)、自然语言处理(NLP)、自动驾驶、机器人控制 等方面比传统机器学习效果更好。

在训练数据规模比较小的情况下,传统机器学习型算法表现还可以,但是数据增加了,传统机器学习效果没有增加,会有一个临界点;但是对于深度学习来说,数据越多,效果越好。所以也是越来越逐步“深度学习”取代“传统机器学习”的过程了。

传统机器学习和深度学习的效果性能对比图:

传统机器学习和深度学习的处理过程区别:(传统机器学习特征是清晰的,深度学习内部特征是黑盒)

深度学习中使用的神经网络,大概的工作机制是模拟人类的脑子工作机制,比如我们通过眼睛看到一个物体的过程:

我们再看看基于神经网络得“深度学习” 进行学习的过程:

从上面神经网络工作过程我们可以看出,基于神经网络的“深度学习”整个过程基本跟传统机器学习是完全不同的。

还有一个区别就是传统机器学习在训练的时候,基本可以使用传统CPU运算就可以了,但是在深度学习方面,因为神经网络层数多,计算量大,一般都需要使用 GPU或AI计算芯片(AI卡)进行运算才行,这个也就是我们常说的“算力”。

深度学习在大规模数据计算方面算力消耗成本惊人,以ChatGPT为例,传闻大概运算花费了英伟达(NVIDIA)的A100型号GPU一万张,目前京东A100的卡销售价格大约为人民币10万元,ChatGPT大概训练算力成本粗略预估为10亿人民币左右,对于ChatGPT公布的数据来看,一次大模型的训练大约需要1200万美元,所以除了比拼算法,算力更是很重要的决定性因素。

(ChatGPT 训练使用的 N【【微信】】)

GPT的形成过程

上面我们概要介绍了传统机器学习和深度学习的基本知识,GPT可以理解为是深度学习的一种演化进步升级。

基于上面深度学习的逻辑,我们宏观看一下深度学习的神经网络包括哪些(偏专业内容,可以跳过):

深度学习我们可以理解为:分类方式主要是基于“机器学习策略”是“神经网络”的策略,“学习方式”主要是 监督学习、无监督学习(也可能包含强化学习)等不同场景结合产生的“机器学习”方式叫做“深度学习”。

GPT属于神经网络模型(深度学习领域)的一个迭代升级版本,任何科技的发展进步都不是一撮而就得,而是站在巨人的肩膀上的结果一点点更新迭代,从GPT的发展诞生过程我们能够大概了解变化和关联性:

(神经网络开始到GPT迭代的时间轴)

[ 神经网络模型(1943年提出)? ? RNN(Recurrent Neural Networks 循环神经网络, 1986年提出) ? LSTM((Long short-term memory 长短期记忆网络, 1997年提出)? DL(Deep Learning 深度学习概念 2006年提出) ? Attention(注意力机制, 2015年提出) ? Transformer (2018年提出) ? GPT (Generati【【微信】】rmer 生成型预训练变换模型, 2018年设计)? GPT-1~4(模型迭代升级, 2018~2023年)]

我们再看看GPT本身迭代的进展时间点:

从上面发展节奏来看,对于GPT来说,其中对它影响最大的主要是 Transformer 模型的诞生,加上全球巨大的语料和强悍算力,才具备了让GPT超越时代的特殊能力。

Transformer 框架的优点,transformer架构完全依赖于Attention机制(注意力机制),解决了输入输出的长依赖问题,并且拥有并行计算的能力(Multi-head),大大减少了计算时间。self-attention模块,让源序列和目标序列首先“自关联”起来,这样的话,源序列和目标序列自身的Embedding(单词嵌入)表示所蕴含的信息更加丰富,而且后续的FFN(前馈网络)层也增强了模型的表达能力。Muti-Head Attention模块使得Encoder端拥有并行计算的能力。简单说就是相关性高,还能并行计算,所以是一个非常优秀的神经网络模型。

Transformer 框架基本工作结构图 :

(Encoder-Decoder 结构)

(Encoder-Decoder 内部实现)

GPT是什么意思

GPT的全称是?Generati【【微信】】rmer(生成型预训练变换模型),它是基于大量语料数据上训练,以生成类似于人类自然语言的文本。其名称中的“预训练”指的是在大型文本语料库上进行的初始训练过程,其中模型学习预测文章中下一个单词,它可以完成各种自然语言处理任务,例如文本生成、代码生成、视频生成、文本问答、图像生成、论文写作、影视创作、科学实验设计等等。

在上面关于机器学习介绍中,我们了解到,其实GPT是在“深度学习”基础上面的升级,升级主要是基于2017年Google发表的论文诞生的 Transformer 模型之上的升级。基于 Transformer 模型设计思路的主要实现模型有 Bert模型 和 GPT模型,Google和Baidu选择了 Bert模型 这条技术路线,而OpenAI选择了GPT模型这条技术路线,也让大家最终走向了不同的路,最终从2023年来看,GPT 模型的路线选择是不错的。

我们上面讲到机器学习中的“模型”会决定最终“预测”结果是否接近于准确,那我们是否可以简单理解为,如果我“模型”越大(知识经验越丰富),意味着我们“预测”的准确率就会越高(判断事物越准确),那么这种机器学习生成的“大模型”一般叫做?LLM(Large Language Model,大语言模型,简称为“大模型”)。

我们看一下为什么ChatGPT会如此惊艳,一下让各个大企业和全世界人民震惊,我们看看它的模型参数量:

GPT版本

参数数量

训练数据

GPT-1

1.2亿

2018年6月 - BookCorpus 是一个包含7000本未出版书籍的语料库,总大小为4.5 GB。这些书籍涵盖了各种不同的文学流派和主题。

GPT-2

15亿

2019年2月 - WebText 是一个包含八百万个文档的语料库,总大小为40 GB。这些文本是从Reddit上投票最高的4,500万个网页中收集的,包括各种主题和来源,例如新闻、论坛、博客、维基百科和社交媒体等。

GPT-3

1750亿

2020年5月 - 一个总大小为570 GB的大规模文本语料库,其中包含约四千亿个标记。这些数据主要来自于CommonCrawl、WebText、英文维基百科和两个书籍语料库(Books1和Books2)。(注:另有说法为预训练数据为45TB,供参考)

GPT-3.5

1750亿

2022年11月 - 基于GPT3的微调升级GPT3.5发布,并且同步发布了 Chat for GPT-3.5的对话聊天机器人,引爆全世界。语料基于GPT-3的语料,语料采集截止时间为2020年5月。


如何让chatgpt帮忙预测双色球 ChatGPT实现原理 通俗

如何让chatGPT帮忙写代码,如何让chatGPT帮忙找别人的照片

ChatGPT是一种基于自然语言处理技术的聊天机器人,它可以模拟人类的对话方式,与用户进行交互。在上一篇文章中,我们介绍了ChatGPT的基本概念和应用场景。本文将深入探讨ChatGPT的工作原理,包括其核心算法和代码实现。一、ChatGPT的核心算法ChatGPT的核心算法是基于GPT(Generati【【微信】】rmer)模型的。GPT是一种基于Transformer架构的预训练语言模型,由OpenAI团队开发。它可以通过大规模的文本数据进行预训练,然后在特定任务上进行微调,以实现更好的性能。GPT模型的核心思想是使用Transformer架构来处理文本数据。Transformer是一种基于自注意力机制的神经网络架构,它可以在不使用循环神经网络(RNN)的情况下处理序列数据。在GPT模型中,Transformer被用来处理文本数据,以生成下一个单词或句子。GPT模型的训练过程可以分为两个阶段:预训练和微调。在预训练阶段,GPT模型使用大规模的文本数据进行训练,以学习语言的基本规律和模式。在微调阶段,GPT模型使用特定任务的数据进行微调,以适应该任务的需求。ChatGPT是基于GPT模型的聊天机器人,它的核心算法是使用GPT模型来生成下一个回复。具体来说,ChatGPT将用户的输入作为上下文,然后使用GPT模型来生成下一个回复。生成的回复可以是一个单词、一个短语或一个完整的句子,具体取决于模型的输出。二、ChatGPT的代码实现ChatGPT的代码实现可以分为三个部分:数据预处理、模型训练和模型推理。下面我们将分别介绍这三个部分的代码实现。1. 数据预处理数据预处理是ChatGPT的第一步,它的目的是将原始数据转换为模型可以处理的格式。在ChatGPT中,我们使用了Cornell Mo【【微信】】数据集作为训练数据。该数据集包含了电影对话的文本数据,可以用于训练聊天机器人。数据预处理的代码如下所示:

  import os  import re  import json  import random  import numpy as np  import tensorflow as tf  from tensorflow.keras.preprocessing.text import Tokenizer  from tensorflow.keras.preprocessing.se【【微信】】ences    def 【【微信】】th):            加载数据集            【【微信】】(data_path r encoding=utf-8) as f:          data=f.read().split(  )      return data    def 【【微信】】):            数据预处理            # 将数据转换为问答对的形式      pairs=[]      for i in range(0 len(data) 2):          if i + 1 < len(data):              pairs.append((data[i] data[i+1]))      # 清洗数据      clean_pairs=[]      for pair in pairs:          clean_pair=[]          for sentence in pair:              # 去除标点符号和多余的空格              【【微信】】.sub(r[^a-zA-Z0-9s]  sentence)              【【微信】】.sub(rs+   sentence)              clean_pair.append(sentence)          clean_pairs.append(clean_pair)      return clean_pairs    def tokenize_data(data):            将数据转换为数字序列            # 创建分词器      tokenizer=Tokenizer(filters=)      # 将数据转换为单个字符串      texts=[]      for pair in data:          texts.append(pair[0])          texts.append(pair[1])      # 训练分词器      tokenizer.fit_on_texts(texts)      # 将数据转换为数字序列      sequences=[]      for pair in data:          sequence=[]          for sentence in pair:              sequence.append(tokenizer.texts_to_sequence【【微信】】])[0])          sequences.append(sequence)      return se【【微信】】    def pad_data(se【【微信】】):            对数据进行填充            padded_sequences=[]      for sequence in sequences:          padded_sequence=[]          for sentence in sequence:              padded_sentence=pad_sequence【【微信】】] maxlen=max_length padding=post)[0]              padded_sequence.append(padded_sentence)          padded_sequences.append(padded_sequence)      return padded_sequences    def create_dataset(data_path max_length):            创建数据集            # 加载数据集      data=【【微信】】th)      # 数据预处理      pairs=【【微信】】)      # 将数据转换为数字序列      se【【微信】】=tokenize_data(pairs)      # 对数据进行填充      padded_sequences=pad_data(se【【微信】】)      # 创建输入和输出数据      encoder_input_data=np.array([pair[0] for pair in padded_sequences])      decoder_input_data=np.array([pair[1][:-1] for pair in padded_sequences])      decoder_output_data=np.array([pair[1][1:] for pair in padded_sequences])      return encoder_input_data decoder_input_data decoder_output_data tokenizer  
上述代码中,【【微信】】函数用于加载数据集,【【微信】】函数用于清洗数据,tokenize_data函数用于将数据转换为数字序列,pad_data函数用于对数据进行填充,create_dataset函数用于创建输入和输出数据。2. 模型训练模型训练是ChatGPT的第二步,它的目的是使用GPT模型来训练聊天机器人。在ChatGPT中,我们使用了TensorFlow 2.0框架来实现GPT模型的训练。模型训练的代码如下所示:
  import os  import json  import random  import numpy as np  import tensorflow as tf  from tensorflow.keras.layers import Input Embedding Dense LSTM TimeDistributed  from tensorflow.keras.models import Model  from tensorflow.keras.optimizers import Adam  from tensorflow.keras.callbacks import ModelCheckpoint    def create_model(【【微信】】):            创建模型            # 定义输入层      encoder_inputs=Input(shape=(max_length) name=encoder_inputs)      decoder_inputs=Input(shape=(max_length-1) name=decoder_inputs)      # 定义嵌入层      embedding_layer=Embedding(input_dim=【【微信】】=256 name=embedding_layer)      encoder_embedding=embedding_layer(encoder_inputs)      decoder_embedding=embedding_layer(decoder_inputs)      # 定义编码器      encoder_lstm=LSTM(units=256 return_sequences=True return_state=True name=encoder_lstm)      encoder_outputs state_h state_c=encoder_lstm(encoder_embedding)      encoder_states=[state_h state_c]      # 定*码器      decoder_lstm=LSTM(units=256 return_sequences=True return_state=True name=decoder_lstm)      decoder_outputs _ _=decoder_lstm(decoder_embedding initial_state=encoder_states)      # 定义输出层      output_layer=TimeDistributed(Dense(units=【【微信】】=softmax) name=output_layer)      decoder_outputs=output_layer(decoder_outputs)      # 定义模型      model=Model(inputs=[encoder_inputs decoder_inputs] outputs=decoder_outputs)      # 编译模型      optimizer=Adam(lr=0.001)      model.compile(optimizer=optimizer loss=sparse_categorical_crossentropy metrics=[accuracy])      return model    def train_model(model encoder_input_data decoder_input_data decoder_output_data batch_size epochs model_path):            训练模型            # 定义回调函数      checkpoint=ModelCheckpoint(model_path sa【【微信】】=True)      # 训练模型      model.fit(x=[encoder_input_data decoder_input_data] y=decoder_output_data batch_size=batch_size epochs=epochs 【【微信】】=0.2 callbacks=[checkpoint])  
上述代码中,

上一条:TypeScript-基础类型 下一条:车辆热管理测试方案

关于本站

Copyright © 2023 欢迎来到我的小站 备案号:粤ICP备2020117555号 |淘宝互助 |隋唐演义 | 名诗名词 | 淘宝优惠

联系我们

合作或咨询可通过如下方式:

QQ:

邮箱:

关注我们

庆云古诗词