【人工智能】Chatgpt的训练原理

news2024/11/18 0:26:53


前言

        前不久,在学习C语言的我写了一段三子棋的代码,但是与我对抗的电脑是没有任何思考的,你看了这段代码就理解为什么了:


void computerMove(char Board[ROW][COL], int row, int col)
{
	
	while (1)
	{
		unsigned int i = rand() % ROW, j = rand() % COL;
		if (Board[i][j] == ' ')
		{
			Board[i][j] = '#';
			break;
		}
	}
}

        电脑的走的棋子是随机产生的,于是我想赋予电脑一定的智能,给它写一些思考函数,但是,一种一种的if嵌套if的逻辑代码写下来不仅极易出错,而且后续想要Debug也十分困难。

        我们知道人工智能是可以下棋的,但是人工智能自主学习的源码是怎么实现的呢?

        于是,我想起了Chatgpt,虽然Chatgpt并非是严格通过代码来实现的,但是它的原理确实很有趣。

定位 “信息”

        人工智能的运作离不开信息; 

        信息这个词语,我们耳熟能详,但是信息到底在时间和空间上有什么地位呢?换句话说:它的位置是什么? 

如图: 

 在物质上,从地球出发,地球是最大的生态系统,生态系统的三个功能是:

        能量流动,物质循环,信息传递;

        在生态系统中,三大功能密不可分,相互作用和相互依存。

这幅图我们暂且搁置,作为铺垫。 


 纵观人类的历史的发展历程, 我们经历了这几个历史时期:

        

        每一个时期都是一个阶段,每一个阶段都是一次跨越,是量变以后的质变。 

         每一个时期由于相对于上一个时期,新时期的技术往往更加有优势,新时期的技术往往会淘汰旧时期的技术,所以人类历史是向前发展的。

 


小结 

在生态系统中,信息是动态的,它不断流动,传递,从而发挥作用;

        直到人类通信技术及计算机技术的飞速发展和广泛应用。标志着人类进入了信息化时代,直到这时,我们才真正注意起信息的作用。

        从信息的定位来看:

        1.信息的地位是很重要的

        2.计算机的出现使得几乎所有信息都可以用数据表现,信息可被计算机表现,意味着可被计算,计算机可 表示信息,搜索信息,甚至通过信息,预测将要出现的新的信息。

预测信息 

        预测信息可以做什么吗,可以做天气预报,可以预测股价,甚至可以实现人工智能! 

 

什么是人工智能

概念 

        人工智能,是指通过计算机技术模拟人类智能的理论、方法、技术和应用系统。AI能够让机器像人类一样思考、理解、判断、学习、推理、规划、决策等,从而能够完成各种智能任务。

发明

        1956年夏季,以麦卡赛、明斯基、罗切斯特和申农等为首的一批有远见卓识的年轻科学家在一起聚会,共同研究和探讨用机器模拟智能的一系列有关问题,并首次提出了“人工智能”这一术语,它标志着“人工智能”这门新兴学科的正式诞生。 

 为什么人工智能可行

        我们之所以称AI为AI,是因为我们想要了解智能的实质,想要通过计算机模拟实现智慧人的思考来认识什么是智能。 

实现人工智能的两种方法:

 工程学方法:

        即不考虑所用方法是否与人等智慧体所用的方法相同,只要能达到相应的效果就行。

模拟法:

        即不仅要看效果,还要求实现方法与人等智慧体所用方法一致。

怎么理解呢?

        e.g.1

        我们解一个一元二次方程,用到求根公式,但是计算机不知道有求根公式这个东西,它解这

个方程,用的是穷举法,将自变量的值一个一个代入尝试,最后输出最接近真实值的根。

        当然我们也可编写一个程序,与机器交流,告诉它有个求根公式,并且它可以使用。

        但是,这并不代表按照我们设定好的程序运行的机器有了智能;可以说这只是算法的优化,

但是机器距离真正的智能还有很大的差距。


         e.g.2 

        回顾刚开始的例子:

        如果我为电脑编写一套程序,告诉它,if(判断){怎么走}(当然这样对编写程序的我来说十分痛苦),这是也许实现人工智能的一种方法,但是电脑并没有真正的 ”思考“,因为他只是按照代码执行而已。

        这样(制定一套规则来指导计算机)是有很大缺陷的:

        1.人工编程繁琐,工作量大

        2.易出错

        3.一旦出错,需要 调试 ,修改源码 ,编译,运行 ,最终人工提供新的版本 

        如果为电脑编写一种方法,让他从下三子棋的对局中汲取教训,不断学习,最终达到依靠自己的数据库来达到自我决策的目的,这可能也是实现人工智能的一种方法。

        也就是说,我只要实现一个智能系统,虽然刚开始它什么也不懂,就像婴儿一样,但是他可以学习,它能够渐渐适应环境,以应对各种复杂情况。 


前期发展

首先,引入一种假设:

        马尔可夫假设:一个词语出现的概率,只和前面的词语有关,而与更早的词语或者往后的词语无关。

        假设与前(n-1)个词语有关(也就是N-gram模型),但是n需要有一个范围,需要满足,该出现高频的词语,在样本中出现高的频率;该出现低频的词语,在样本中出现低的频率。

        但是n的值是不易确定的:

        如果n值过大,那么需要记录的概率分布将呈指数级增长,于是n不能无限大,即不能有很长的上下文;同时,n过大,那么这个词语就很可能依靠很久以前的上下文,那么这个模型就显得很低效了。

        如果n值太小,那么结果的准确性很难保证。

        这也就是N-gram模型,后来的RNN(循环神经网络)虽然解决了N-gram的部分问题,但是RNN仍有自己的问题——梯度削减(因为有激活函数的存在,在反向传播的时候,出现了原来的占小部分的被忽略的情况,因为较小的部分对值的变化不敏感)

Transformer 模型

        直到后来,一个新的模型被Goggle提出《Attention Is All You Need》——GPT模型

(论文链接放在文章末尾) 

 

词语向量化

为什么要将词语向量化?

        计算机的底层是二进制,现实世界的信息若交给计算机处理,那么都会被转化为数字。

        一个富有语义的词语在计算机内部仅仅是一串0,1组成的数字串,计算机怎么理解它们呢?

我们是一个智慧体,可以将判断,处理信息;早期的计算机只是一个储物柜,他来帮我们储存信

息,就像我们在冰箱存储食物一样。冰箱不认得食物的种类,它的任务仅仅是储存,重要的是我们

认识食物的种类就行了。如何让冰箱认得食物的种类呢?

词语向量化就是解决这一问题的方法。

        词语向量化可以使得词汇之间的语义关系,在向量空间中得以体现,而向量是可以计算的这就为计算机理解词汇奠定基础。

我们想要达到什么效果呢?

        想象一下:

e.g.1

        king向量减去man向量加上woman向量正好是queen向量;

e.g.2

         如图,king和queen象征着王权,man和woman象征着性别,这样一来,我们大致可以认为王权在一个轴分量较多,性别在另一个轴分量较多;

       上述两个例子,都是让词汇向量化的例子。

        在一个合适的向量空间中,词语之间的空间关系反映了 它们现实之间的实际关系。

        如何达到这样的效果呢?

        由于向量是可以计算的,也就是正确结果与结果之间的差距可以计算,这两者的差距可以用函数关系表示,这个函数就是损失函数,而一旦转化为函数,那么训练的过程就是可计算的数学方法了,也就是损失函数要收敛。 

信息压缩与特征提取

        我们人类,可以通过大脑的注意力机制,忘记一些无关紧要的信息,保留一些重要的信息,我们可以通过对问题中的主要信息的处理来回答问题。

        但是计算机并没有大脑的这一功能,于是,我们想要找到提取语言特征的方法。

        但是在一般的模型如N-gram和RNN模型都有一定的局限性,比如:

        小明看了博主的文章,他很喜欢,伸手就给了博主一个______:

        A:三连        B:大嘴巴子

显然,我们作为智慧体,有大脑的重要信息提取的加持,很容易得到推断结果——三连;

(在这一过程中,我们的大脑通过提取 ”文章“  ”喜欢“ 等词语,推测结果,但是计算机没有这一功能)

但是如果仅靠N-gram和RNN模型,模型首要注意的是距离推测内容最近的词语,这样计算机就很有可能给博主的 就不是三连了。 (0_=_0)..

Attention Is All You Need

 

        简单来说,让句子中的词语分别和句子中的所有词做向量点乘,对得出的结果再次进行训练,最终训练得到的结果会让电脑根据一个词语与句子中其他词语的点乘结果来推测这个词语后面出现其他词语的可能性,根据可能性来输出下一个词语。

        在合适的特征提取训练下,计算机学会了如何把话说得漂亮;ChatCPT本身就是一个语言模型,它被发明出来的目的并不是解决实际问题,而是怎样把话说得漂亮,之所以我们认为ChatGPT说得很有道理,是它阅读了大量语料库,经过大量训练的结果。

        ChatGPT根据上文的内容去推测下一个词是什么,然后把这个词加进去,继续推测。


ChatGPT能取代人类吗?

         ChatGPT只是一个语言模型,它能够为我们解决问题提供一定的参考,但是并不能真正的解决问题。它确实可以取代一些人,令人们失业,但是如果这些人能够利用好GPT的优势,让它成为自己的力量,而不是排斥它,贬斥它,那么,GPT的出现并不应引起我们的焦虑,而是应引起我们的思考。

 


Attention Is All You Needicon-default.png?t=N7T8http://Attention Is All You Need:https://arxiv.org/pdf/1706.03762.pdf


 完~

未经作者同意禁止转载

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于 STM32 的温度测量与控制系统设计

本文介绍了如何基于 STM32 微控制器设计一款温度测量与控制系统。首先,我们将简要介绍 STM32 微控制器的特点和能力。接下来,我们将详细讨论温度传感器的选择与接口。然后,我们将介绍如何使用 STM32 提供的开发工具和相关库来进行温度测量和控…

nrm安装及使用

一、介绍 nrm 是一个 Node.js 的 registry 管理工具,它允许你快速地在不同的 npm registry 之间进行切换。通过使用 nrm,你可以方便地将 npm 的 registry 切换为淘宝镜像、npm 官方镜像或者其他定制的镜像,以加快包的下载速度。nrm仓库请点击…

MyBatisPlus入门介绍

目录 一、MyBatisPlus介绍 润物无声 效率至上 丰富功能 二、Spring集成MyBatisPlus 三、SpringBoot集成MyBatisPlus 一、MyBatisPlus介绍 MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变&#xff0c…

单调栈 模板

class Solution { public: //从后往前的方法 vector<int> dailyTemperatures(vector<int>& temperatures) {int n temperatures.size();vector<int> ans(n);//创建一个大小为n的数组stack<int> st;//这个时候栈中没有任何元素for(int i n-1;i &g…

存算一体还是存算分离?谈谈数据库基础设施的架构选择

从一则用户案例说起 某金融用户问&#xff0c;数据库用服务器本地盘性能好还是外置存储好&#xff1f;直觉上&#xff0c;本地盘路径短性能应该更好。然而测试结果却出乎意料&#xff1a;同等中等并发压力&#xff0c;混合随机读写模型&#xff0c;服务器本地SSD盘合计4万 IOPS…

Spring Boot配置文件 Spring日志文件相关的知识

在上文中&#xff0c;小编带领大家创建了一个Spring Boot项目&#xff0c;并且成功的执行了第一个SPring Boot项目&#xff08;在网页上运行hello world&#xff09; 那么&#xff0c;本文的主要作用便是带领大家走进&#xff1a;Spring Boot配置文件 && Spring日志文件…

图书管理系统源码,图书管理系统开发,图书借阅系统源码三框架设计原理和说明

TuShuManger项目简介和创建 这里一共设计了6个项目,主要是借助三层架构思想分别设计了主要的三层,包括model实体层,Dal数据库操作层,Bll业务调用层,其他有公共使用项目common层,DButitly提取出来的数据库访问层,下面我们分别创建每个项目和开始搭建整个过程 TuShuManger…

STK Components 基础篇

1.开发包 STK Components 访问AGI官网&#xff0c;注册并登录后&#xff0c;从官网下载开发包&#xff1a;https://support.agi.com/downloads/&#xff0c;下载成功后可以申请许可证&#xff0c;AGI会向你注册的邮箱地址发送有效期半年的使用授权许可文件&#xff08;lic文件…

ubuntu+Teslav100 环境配置

系统基本信息 nvidia-smi’ nvidia-smi 470.182.03 driver version:470.182.03 cuda version: 11.4 产看系统体系结构 uname -aUTC 2023 x86_64 x86_64 x86_64 GNU/Linux 下载miniconda https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/?CM&OA https://mi…

Co-DETR:DETRs与协同混合分配训练代码学习笔记

关于论文的学习笔记&#xff1a;Co-DETR:DETRs与协同混合分配训练论文学习笔记-CSDN博客 作者提出了一种新的协同混合任务训练方案&#xff0c;即Co-DETR&#xff0c;以从多种标签分配方式中学习更高效的基于detr的检测器。这种新的训练方案通过训练ATSS和Faster RCNN等一对多标…

机器学习实战第2天:幸存者预测任务

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 ​ 文章目录 一.任务描述 二.数据集描述 三.主要代码 &#xff08;1&#xff09;主要代码库的说明与导入方法 &#xff08;2&#xff09;数据预处…

4面试题--数据库(mysql)

执⾏⼀条 select / update 语句&#xff0c;在 MySQL 中发⽣了什么&#xff1f; Server 层负责建⽴连接、分析和执⾏ SQL。MySQL ⼤多数的核⼼功能模块都在这实现&#xff0c;主要包括 连接器&#xff0c;查询缓存&#xff08;8.0版本去除&#xff0c;因为每次更新将会清空该…

macos安装小软件 cmake

一&#xff0c;cmake下载主页 Download CMake 二&#xff0c;下载&#xff0c;解压&#xff0c;配置&#xff0c;编译&#xff0c;安装 0. 假设macos中已经存在了 clang和make工具 1. 通过网页下载最新的稳定版 cmake***.tar.gz 源代码 2. tar zxf cmake***.tar 3. cd cmake***…

最详细手把手教你安装 Git + TortoiseGit 及使用

软件下载 从 Git 官网 下载 Git 安装程序&#xff0c;点击 Download for Windows&#xff1a; 点击下载 64-bit Git for Windows Setup: Git for Windows Setup 为安装版本&#xff0c;建议选择此版本Git for Windows Portable 为绿色免安装版本 从 TortoiseGit 官网 下载 T…

Echarts 创建饼状图-入门实例

安装 npm install echartsmain.js 引入 import *as echarts from echarts Vue.prototype.$echarts echarts定义容器 <div ref"myChart" style"width: 500px; height: 500px;"></div>option 为配置项 成品 <script>export default {na…

论文阅读——MCAN(cvpr2019)

补充一下MCAN-VQA&#xff1a; 对图片的处理&#xff1a;首先输入图片到Faster R-CNN&#xff0c;会先设定一个判断是否检测到物体的阈值&#xff0c;这样动态的生成m∈[10,100]个目标&#xff0c;然后从检测到的对应的区域通过平均池化提取特征。第i个物体特征表示为&#xff…

Transformer——decoder

上一篇文章&#xff0c;我们介绍了encoder&#xff0c;这篇文章我们将要介绍decoder Transformer-encoder decoder结构&#xff1a; 如果看过上一篇文章的同学&#xff0c;肯定对decoder的结构不陌生&#xff0c;从上面框中可以明显的看出&#xff1a; 每个Decoder Block有两个…

84基于matlab的数字图像处理

基于matlab的数字图像处理&#xff0c;数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 84matlab数字图像处理图像增强 (xiaohongshu.com)https://www.xiaohongshu.com/explore/656219d80000000032034dea

微机原理_4

一、单项选择题&#xff08;本大题共 15 小题&#xff0c;每小题 3 分&#xff0c;共 45 分。在每小题给出的四个备选项中&#xff0c;选出一个正确的答案&#xff0c;请将选定的答案填涂在答题纸的相应位置上。) 1在产品研制的过程中,通常采用( )类型的存储芯片来存放待调试的…

发布鸿蒙的第一个java应用

1.下载和安装华为自己的app开发软件DevEco Studio HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 2.打开IDE新建工程&#xff08;当前用的IDEA 3.1.1 Release&#xff09; 选择第一个&#xff0c;其他的默认只能用(API9)版本&#xff0c;搞了半天才发现8&#xff…