人工智能原理概述 - ChatGPT 背后的故事

大家好,我是比特桃。如果说 2023 年最火的事情是什么,毫无疑问就是由 ChatGPT 所引领的AI浪潮。今年无论是平日的各种媒体、工作中接触到的项目还是生活中大家讨论的热点,都离不开AI。其实对于互联网行业来说,自从深度学习出来后就一直很火。但由于之前 AI 在可变现能力方面,最广泛的应用是推荐算法,导致普罗大众对 AI 这个词也有点乏味了。不过2022年11月 ChatGPT 横空出世,短短在两个月内迅速破圈,月活用户达到一亿成为全球的顶级产品。有人说这是 AI 技术的奇点,AI 很快就能代替更多的工作;也有人说它总会说套话,只是一个更聪明的聊天机器人罢了。无论如何不可否认的是,人工智能就是下个技术革命的开始。AI 并不会淘汰人类,AI 只会淘汰不会使用 AI 的人类。

目录

  • 一、人工智能历史
  • 二、机器学习
    • 2.1 预测函数
    • 2.2 代价函数
    • 2.3 梯度计算
  • 三、深度学习
    • 3.1 神经网络
    • 3.2 CNN
    • 3.3 模型 = 黑匣子
    • 3.4 显卡 = 算力
  • 四、ChatGPT 原理
    • 4.1 LLM
    • 4.2 生成过程
    • 4.3 训练过程
    • 4.4 Prompt
  • 五、总结

一、人工智能历史

虽然 AI 出现在大众视野中的时间并不长,但相关理论在上个世纪就已经有了雏形。

  • 1940年,控制论中阐述探索调节系统的跨学科研究,它用于研究控制系统的结构、局限和发展。这是关于人、动物和机器如何相互控制和通信的科学研究。
  • 1943年,美国神经科学家麦卡洛克、皮茨提出神经网络,并制作了一个模型叫 M-P 模型。
  • 1950年,随着计算机科学、神经科学、数学的发展,图灵发表了一个跨时代的论文,提出了一个很有哲理的The Imitation Game也称为图灵测试。大意是指:人与机器聊天的过程中,如果无法发现对方是机器,则称为通过图灵测试。
  • 1956年,马文明.斯基、约翰.麦卡锡、克劳德.香农(信息论奠基者)举行了一个会议:达特茅斯会议。其主要议题就是人们到底能否像人一样思考,并且出现了 AI 这个词。
  • 1966年,MIT 的聊天机器人Eliza, 之前的系统都是基于 PatternMatching 模式匹配,基于规则的。
  • 1997年,IBM 深蓝战胜了象棋冠军。多伦多大学的辛顿将反向传播算法BP引入到人工智能当中;纽约大学的杨立昆,著名贡献就是卷积神经网络CNN;蒙特利尔大学的本吉奥(神经概率语言模型、生成对抗性网络)。
  • 2010年,机器学习里面的一个领域 Artificial Neural Networks 人工人神经网络开始闪光。
    在这里插入图片描述

二、机器学习

机器学习的常见任务就是通过训练算法,自动发现数据背后的规律,不断改进模型,然后做出预测。机器学习中的算法众多,其中最经典的算法当属:梯度下降算法。它可以帮我们去处理分类、回归的问题。通过y=wx+b这种式子线性拟合,让结果趋近于正确值。

2.1 预测函数

假设我们有一组因果关系的样本点,分别代表一组有因果关系的变量。比如是房子的价格和面积,人的身高和步幅等等。常识告诉我们,他们的分布是正比例的。首先,梯度下降算法会确定一个小目标–预测函数,也就是一条过原点的直线 y = wx。我们的任务就是设计一个算法,让这个机器可以拟合这些数据,帮助我们算出直线的参数w。
在这里插入图片描述
一个简单的办法就是随机选一条过原点的直线,然后计算所有样本点和它的偏离程度。再根据误差大小来调整直线斜率 w
通过调整参数,让损失函数变的越小,说明预测的越精准。在这个例子中 y = wx 就是所谓的预测函数。
在这里插入图片描述

2.2 代价函数

找误差的这个过程就是计算代价函数。通过量化数据的偏离程度,也就是误差,最常见的就是均方误差(误差平方和的平均值)。比如误差值是 e ,因为找误差的系数是平方和的式子,所以 e 的函数图像如下图右侧所示。我们会发现当e的函数在最低点的时候,左侧图中的误差就会越小,也就是拟合的越精准。
在这里插入图片描述

2.3 梯度计算

机器学习的目标是拟合出最接近训练数据分布的直线,也就是找到使得误差代价最小的参数,对应在代价函数上就是最低点。这个寻找最低点的过程就称为梯度下降
在这里插入图片描述
利用梯度下降算法训练这个参数,非常类似于人的学习和认知过程。皮亚杰的认知发展理论,所谓的同化和顺应,吃一堑长一智,这就和机器学习的过程是一模一样的。

三、深度学习

关于 AI 算法是否要使用类人脑的运作方式去实现,早期是存在较大争议的。并且在深度学习出来之前,大部分的计算机科学家都投身到了,类似于模式匹配的研究方向。现在看来那种方法,当然是很难让机器变的和人一样智能。但我们不能以现在的眼光来看待当时的人们,当时关于数据和算力都很匮乏,所以自然就有一套理论反驳采用类人脑的思路去实现。
计算机的运行原理怎么可能和人脑一样呢?我们还是要采用传统算法去解决问题。这也间接导致了 AI 在当时一直停滞不前的局面。对于当年研究这个方向的博士来说,现实是残酷的。所以才有那句话:人的努力固然重要,但也要看方向
1943 年神经科学家探究了人脑的运行原理,人的大脑是超过 100 亿个神经元通过网状链接,来判断和传递信息。
在这里插入图片描述
每一个神经元都是一个多输入,单输出。可以通过多个神经元得到信号,得到信号进行综合处理,如果有必要则会向下游输出信号。这个输出只有两个信号,要么就是0要么就是1,和计算机非常类似。所以他们就提出一个模型叫M-P模型。
人工神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。深度学习是一种以人工神经网络为架构,对资料进行表征学习的算法。
在这里插入图片描述

3.1 神经网络

如下图所示,一个圆就是神经元,而这些圆组成的就是神经网络。给神经网络足够多的数据,告诉神经网络做得好还是不好,不断训练神经网络,它就可以做的越来越好,完成识别图像这样的复杂任务。
在这里插入图片描述
其实神经元的计算就是一堆加法和乘法,只是因为它足够的多,所以就变得非常复杂。一个神经元可能有多个输入,只会有一个输出,但可以激活多个神经元。比如下图就是其中一个 Sigmoid 激活函数,可以发现它的值域为(0,1)。
在这里插入图片描述
如果只判断是否是X那么一层就够了,但我们实际中要理解别人语音,图像识别。所以人们就研究了多层神经元。如图所示一个输入,然后输入端连接每一个第一个隐层的神经元,第一个隐层把这些数据输出出来后,选择向下游输出,输出到第二层隐层,第二隐层输出结果又进入第三隐层。这就是所谓的多层神经网络。每两层之间就有大量的参数,我们让大量的参数调节到最优,使得最后的误差函数最小。
在这里插入图片描述
虽然神经元做的操作并不复杂,但场景一旦复杂后,数量级将会非常庞大。比如一个5*5的图片,每一层有25个神经元,每一层的参数就有625个,三层就两千多个。如果是个彩色图片,识别起来就比较复杂了,算起来非常慢。这也是前几次人工智能陷入低估的原因,不管是算力还是算法都跟不上。后来出现BP算法,反向传播,可以先调最后一层。最后一层调完了往前调,这种算法复杂度比以前的要低。BP 算法主要解决了神经网络多层之间信息传递过程的误差损失和误差计算,引领了第三次人工智能浪潮。

3.2 CNN

这里我们还是拿一个在神经网络算法中比较经典的算法:CNN 卷积神经网络举例。其过程和动物的大脑识别也比较类似,图像映入大脑中也是由点到线再到物体最终识别出来它是什么。那计算机也一样,通过像素点-边缘方向-轮廓-细节-判断从而实现了图像识别。
在这里插入图片描述
比如我们想来识别一个图片是否是 X 这样一个字符,那一个图片对于计算机来说就是一个二维数组,比如黑色是1,白色是0。如下图所示:
在这里插入图片描述
给到计算机后,就可以通过一系列的训练过程,找到一大堆的参数以判断它是否是个X。找到一个损失最小的函数,那就是一次成功的训练。从此之后,我就能利用这一大堆参数判断一个图片是否是 X 了。
具体来说,我们可以通过提取图像中的特征,使用卷积核来进行卷积运算,比如卷积核就一个斜着的竖线(我们认为这是 X 图像的特征之一)。
在这里插入图片描述
通过卷积(一个斜着的竖线)核盖到这个图片上,进行运算,运算结果放到这个图片覆盖的中间。然后组合起来就是特征图。 算出来的特征,越大代表越能表达这个特征。
在这里插入图片描述
由于运算量太大,所以我们采用卷积核的东西,一个区域一个区域的扫描。将每个对应的数字相乘,再求和。就提取了区域数值特征。数据再经过池化,取区域内最大值,将特征数据量再浓缩,展平。输入全神经网络,因为涉及到卷积运算,所以又称卷积神经网络。卷积核的大小、步调、卷积层的数量等,都可以预先调节。机器输出的数值会和对目标结果预设的数值做比对。如果符合预期,即为成功。如果不符合预期,就会通过一系列运算,反向调节各个环节参数(BP),再算一次,不断重复,直到符合预期。这就是机器自主学习的原理。卷积 -> 池化 -> 激活。
在这里插入图片描述
通过卷积后的特征数据我们可以看到,数字越接近于1,说明这个地方越满足卷积核的特征。
在这里插入图片描述
卷积核最开始可能是人为设定的,但后面它会根据自己的数据去反向调节这个卷积核。类似训练的方法,去调节参数,训练的过程中会找到那个最合适的卷积核。有几个卷积核,就有几个特征图(三维的)这几个特征图挪到一块,就变成了一个三维立体的一个图形。
在这里插入图片描述
科学家的设计令人惊叹,几乎完美的模拟了人的思考过程。
我们把一大堆数据给到人工智能,然后人工智能通过一方法去调整自己的卷积核和参数,最终就可以分辨出来每一种不同物体是什么了。虽然我们并不知道它是如何设计卷积核以及这些参数的。

3.3 模型 = 黑匣子

我们现在知道了,通过神经网络不断地训练,我们可以让识别误差变小。从而实现一个智能的模型,用来做一些实际的工作。模型虽然是我们人训练出来的,但其实模型每一次具体识别的时候。我们并不知道它是怎么进行的,它对于我们还是黑匣子的存在。就如同牛顿并没有解释苹果为什么会落地,他是建立的引力的数学模型,只是用方法量化表达了出来,至于原因,还是很难用人话来表达。人工智能训练出来的模型也是一样,我们看到的特征其实和机器使用的特征并不一样,无论是特征数量还是特征内容。我们认为一个物体可能通过4个特征来判断,但计算机可能用了10个。内容也一样,我们人脑的内容和计算机的0和1也很难对等。要知道,神经网络是自主调节自主优化训练的,所以训练到最后你很难说他到底怎么做到的。就如同我们教会一个孩子识别猫和狗的区别,你通过带他见了大量的猫和狗,小孩终于会辨认了。但你能知道小孩子是怎么具体识别的嘛,其实很难阐述的。这也是为什么大家都说 AI 训练出的模型就是黑匣子了。

3.4 显卡 = 算力

如同上文所说的一样,虽然神经网络的研究在上世纪60年代就有一定的基础了。但一直迟迟没有发展起来的原因就是,因为缺了两样东西:算力和数据。神经网络中的每一个神经元,虽然不用算的非常精细,但需要大量的同时计算。巧妇难为无米之炊。计算并不复杂,都是加法和乘法,但运算量特别复杂。比如一个图片 800 x 600(像素点) = 144000 像素点。如果用三层卷积核(因为RGB是3)去做卷积,大概需要1300万次乘法 + 1200万次加法。这对当时的 CPU 是难以胜任的,甚至现在的CPU也做不了。这就需要 GPU 来展现身手了,我们知道 GPU 是用来做图形计算的。比如播放一个 4k 的视频,小一千万个像素点,假设每秒30帧。CPU撑死了64核128核,GPU可以成千上万个核。虽然一个像素点的计算非常简单,但还是适合 GPU 这种大量并发运算的设备来实现。下图就是非常形象的例子,CPU 像一个高精度的喷枪,指哪打哪:
在这里插入图片描述
GPU 由于高并发,可以瞬间将整个图形渲染出来:
在这里插入图片描述
这也是为什么我们经常听到做 AI 必须买显卡的原因,因为我们在训练的过程中需要大量这种并发运算(包括挖矿)。
目前 AI 训练基本被英伟达显卡垄断,这是因为老黄布局的很早。早在2006年英伟达就推出了CUDA,成功的让GPU可以编程。这样一来,以前专门设计3D处理图形的显卡,要想拿去计算编程,本来是需要一大堆顶尖工程师,现在只需要基于CUDA library就可以做。英伟达就把自己显卡的边界从游戏和3D图像处理,扩大到了整个加速计算的领域。比如航天、生物制药、天气预报、能源勘探等等。那等12年深度学习非常成熟的时候,自然就使用了英伟达的这个平台。导致现在说到AI训练就等于买显卡,买显卡就是英伟达。

四、ChatGPT 原理

想必大家都直接或间接的用过 ChatGPT 了,它和我们平时使用的 Siri 、小爱同学截然不同。和前者聊天我们本身就会把它当做人工智障来使用,但和 ChatGPT 对话的过程中,我们是真的可以解决一些实际的问题。比如让它分析一下未知领域关键技术点,写算法题找bug等等。那 ChatGPT 为什么会变得如此聪明,它背后到底用到了什么技术,下面我们就来一起探究一下。

4.1 LLM

语言模型是一种基于统计学和机器学习方法的自然语言处理技术,它用于评估和预测一个给定序列的概率分布,通常是单词序列或字符序列。语言模型的主要应用是文本生成、机器翻译、语音识别等任务。近些年,神经网络架构的语言模型参数规模已经达到几千亿,为了表示与传统语言模型的区别,大家习惯称之为大语言模型(LLM)。

在机器学习中一般使用 Recurrent Neural Network 循环神经网络(RNN)来处理文字,需要一个词一个词的看,没办法同时大量处理。而且句子也不能太长,要不然学到后面前面都忘了。
直到2017年的时候Google出来了一篇论文,提出了一个新的学习框架叫做:Transformer。他可以让机器同时学习大量的文字,如同串联和并联的区别。现在很多NLP的模型都是建立在Transformer之上的。Google BERT里头的T,ChatGPT里的T都是指这个Transformer。
在这里插入图片描述
GPT团队基于Transformer,18年发表了一篇论文介绍了一个新的语言模型,Generative Pre-trained Transformer,也就是GPT。大型语言模型 (LLM) 可通过根据文本中先前使用的单词预测单词的可能性,来生成类似人类的文本。
之前的语言学习模型基本上都需要人监督或者人为给他设定一些标签。但GPT基本不怎么需要了,就把一堆数据放进去,一顿学就给学明白了。像这种大语言模型主要靠算法和参数量,同样的数据进去学的比谁都快比谁都好,参数量需要大量的计算,说白了就是砸钱。在GPT3之后加入了人工反馈的强化学习,他的每个词都是靠前文的相关性和上下文来计算出来的。

4.2 生成过程

我们知道了,ChatGPT的核心是LLM Large Language Model 大语言模型。大预言模型是一种基于神经网络的模型,它经过大量文本数据的训练来理解和生成人类语言。该模型使用训练数据来学习,语言中单词之间的统计模式和关系,然后利用这些知识来预测后续单词,一次一个单词进行。GPT 3.5最大模型拥有1750亿个参数,分布在神经网络的96层中,使其成为有史以来最大的深度学习模型之一。
在这里插入图片描述
ChatGPT 中模型的输入和输出按 Token 组织,Token 是单词的数字表示。更准确的说,是单词的一部分。其实就是根据每个单词所在句子中的上下文,来判断下个单词更适合输出什么来进行的。
在这里插入图片描述
使用数字而不是单词来表示标记,因为数字可以更有效地处理。GPT-3.5基于大量互联网数据进行训练,原数据集包含5000亿个 Token。也就是说该模型接受了数千亿个单词的训练。
在这里插入图片描述
该模型经过训练,可以在给定输入Token序列的情况下预测下一个Token。它能够生成语法正确且语义类似于其所训练的互联网数据的结构化文本。
在这里插入图片描述

4.3 训练过程

虽然经过上述过程,ChatGPT已经可以自主的组织句子回答了。但如果没有适当的指导,该模型也可能生成不真实或者负面的输出。
在这里插入图片描述
为了使模型更安全,并能够以聊天机器人的方式提问和回答。该模型经过进一步的微调后,成为目前 ChatGPT 中使用的版本。微调是将不太符合人类价值观的模型,转变为可控的 ChatGPT。微调模型的这个过程称为人类反馈强化训练(RLHF)。
在这里插入图片描述
OpenAI 解释了他们如何在模型上运行RLHF,使用 RLHF 微调 GPT 3.5 就像提高厨师的技能,使他们的菜肴更加美味。
最初,厨师接受了大量食谱和烹饪技术数据集的培训。然而,有时厨师不知道要根据客户定制要求制作那道菜。为了帮助解决这个问题,我们收集真实用户反馈来创建新的数据集。第一步是创建比较数据集,我们要求厨师根据给定要求准备多种菜肴,然后让人们根据口味和外观对菜肴进行排名。这有助于厨师了解顾客喜欢那些菜肴。
下一步是奖励建模,厨师利用这些反馈创建奖励模型,就像了解顾客偏好的指南。奖励越高,菜品越好。接下来,我们使用PPO(即临近策略优化)训练模型,在这个类比中,厨师在遵循奖励模型的同时练习制作菜肴。他们使用一种称为“近端策略优化”的技术来提高他们的技能。这就像厨师将他们当前的菜肴与略有不同的版本进行比较,并根据奖励模型了解那一个更好。
这个过程会重复几次,厨师会根据最新的客户反馈来完善他们的技能。通过每次迭代,厨师都会更好地准备满足顾客喜好的菜肴。从另一个角度看,GPT-3.5 通过收集人们的反馈、根据他们的偏好创建奖励模型,然后使用 PPO 迭代改进模型性能,对 RLHF 进行了微调。这使得GPT-3.5能够针对特定用户请求生成更好的响应。

4.4 Prompt

通过 GPT 训练员针对它的教导后,我们就可以使用 ChatGPT 了。但由于基于大语言模型的 GPT 参数过于繁杂,其实准确表达出我们需求也是非常关键的。也就是说,想要更好的和 AI 进行对话,就需要 Prompt “语言”。现在网上有很多教程教会大家,如何能更高效的使用 Prompt 和 AI 沟通。
在这里插入图片描述
下图就是 Prompt 的具体逻辑,其实就是描述的越准确,ChatGPT 就会给你的越精准。
在这里插入图片描述
从概念上说,Prompt 就像输入给ChatGPT模型并返回输出一样简单。事实上,情况要复杂一些。首先 ChatGPT 了解聊天对话上下文,这是通过每次输入新提示时 ChatGPT UI 向模型提供整个对话来完成的。
在这里插入图片描述
这称为会话 Prompt 注入,这就是ChatGPT具有上下文感知能力的方式。

其次,ChatGPT包括隐含的 Prompt 内容,这些是在用户提示之前和之后注入的指令,用于指导模型使用对话语气。这些提示对于用户来说是不可见的。比如,它会事先分析你的输入是什么语气的,什么语言等等。
在这里插入图片描述
第三,Prompt 会传递到审核API以警告或阻止某些类型的不安全内容。Prompt会传递到审核API以警告或阻止某些类型的不安全内容。注:如果你的 Prompt 足够强悍,其实是可以让它输出一些特殊内容呦。
在这里插入图片描述
生成的结果也可能会在返回给用户之前传递给审核API
在这里插入图片描述
创建ChatGPT使用的模型需要进行大量工程设计,其背后的技术不断发展,为新的可能性打开了大门,并重塑了我们的沟通方式。ChatGPT 正在彻底改变软件开发人员的工作方式,展示它如何增强我们的日常任务并提高效率。为了不落后,我们应当了解,如何利用ChatGPT的强大功能,并在这个快速发展的软件开发世界中保持领先地位。

五、总结

在历史上发生了几次工业革命,每一次工业革命都是以科学的突破和根技术的发展为基础的。例如第一次工业革命,18世纪牛顿经典力学和热力学出现了突破。瓦特改良了蒸汽机,带领人类走进了蒸汽时代,他让英国成为日不落帝国。19世纪末20世纪初,法拉第发现了电磁感应现象,麦克斯韦阐述了电磁波原理。人类发明了发电机,电动机和无线电通讯。这就是第二次工业革命,他让美国成为了世界第一强国。20世纪中叶,因为电子技术计算机技术发展,人类迅速进入了电子时代,这就是第三次工业革命。日本抓住了这个机会,迅速从战争的阴影中走了出来,成为世界最发达国家俱乐的一员。前三次工业革命中国都没赶上,而现在世界正处于无线互联网、人工智能、新能源和生物科技为代表的第四次工业革命当中。这一次中国人没有缺席,无论是5G还是人工智能,亦或是新能源或者生物科技。中国的科学家和工程师用了二十多年实现了追赶,在很多新科学和新技术方面,走在了世界的前列。

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

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

相关文章

进入现代云技术的世界-APIGateway、ServiceMesh、OpenStack、异步化框架、云原生框架、命令式API与声明式API

目录 APIGateway Service Mesh OpenStack 异步化框架 云原生框架 命令式API与声明式API APIGateway API网关(API Gateway)是一个服务器——充当了客户端和内部服务之间的中间层。API网关负责处理API请求,将客户端的请求路由到相应的后端…

StringJoiner

1、为什么要学习StringJoiner? 2、StringJoiner概述 StringJoiner跟StringBuilder一样,也可以看成一个容器,创建之后里面的内容是可变的。 2.1、作用 提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有…

银行家算法

1.设计目的与要求 1.1设计目的 了解银行家算法中使用的数据结构和求安全序列算法,并进一步加深对避免死锁算法及其实现过程的理解。 1.2设计要求 通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法&a…

2023.8.7论文阅读

文章目录 CMUNeXt: An Efficient Medical Image Segmentation Network based on Large Kernel and Skip Fusion摘要本文方法实验结果 Boundary Difference Over Union Loss For Medical Image Segmentation(损失函数)摘要本文方法实验结果 CMUNeXt: An E…

回归预测 | MATLAB实现基于PSO-LSSVM-Adaboost粒子群算法优化最小二乘支持向量机结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于PSO-LSSVM-Adaboost粒子群算法优化最小二乘支持向量机结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于PSO-LSSVM-Adaboost粒子群算法优化最小二乘支持向量机结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考…

【基础操作】Linux打开terminal,Anaconda默认进入的虚拟环境(python版本)设置(自行指定)

为了免除每次打开terminal都要输入 conda activate … 的麻烦,可以这么设置。 1. 打开terminal,然后输入命令 vim ~/.bashrc2. 然后在文件末尾添加 conda activate your_envs # your_envs是你的虚拟环境名称3. 保存退出,重新打开就成功啦…

navicat连接postgresql报错

navicat连接postgresql报错 navicat连接postgresql报错 现象 有小伙伴告诉我 安装了新的postgresql 使用navicat连接,报错 ERROR: column "datlastsysoid" does not existLINE 1: SELECT DISTINCT datlastsysoid FROM pg database column “datlastsy…

.netcore grpc客户端流方法详解

一、客户端流式处理概述 客户端流式处理方法在该方法没有接收消息的情况下启动。 requestStream 参数用于从客户端读取消息。 返回响应消息时,客户端流式处理调用完成。客户端可以发送多个消息流到服务端,当所有客户端消息流发送结束,调用请…

SpringBoot案例-部门管理-修改

目录 前言 查看页面原型,明确需求 页面原型 需求 阅读接口文件 思路分析 功能接口开发 控制层(Controller类) 业务层(Service类) 业务类 业务实现类 持久层(Mapper类) 接口测试 前…

ROS2 学习(一)介绍,环境搭建,以及个人安装的一些建议

ROS2 学习 学习自b站课程:https://www.bilibili.com/video/BV16B4y1Q7jQ?p1 (up主:古月居GYH) ROS 介绍 Robot OS,为机器人开发提供了相对完善的 middleware,工具,软件等。 ROS1 对嵌入式设…

计算机网络(7) --- UDP协议和TCP协议

计算机网络(6) --- https协议_哈里沃克的博客-CSDN博客https协议https://blog.csdn.net/m0_63488627/article/details/132112683?spm1001.2014.3001.5501 目录 1.补充知识 1.PORT端口号 2.端口号范围划分 3.知名端口号 2.UDP协议 1.UDP报头 2.U…

BGP小综合

实验题目如下: 实验拓扑如下: 实验要求如下: 【1】R2-7每台路由器均存在一个环回接口用于建立邻居,同时还存在一个环回来代表连接用户的 接口;最终这些连接用户的接口网络需要可以和R1/8的环回通讯 【2】AS2网段地址1…

基于smardaten无代码开发智能巡检系统,让无人机飞得更准

目录 引言需求背景搭建思路开发过程(1)无人机设备数据接入(2)无人机巡检任务管理(3)无人机三维防控监视(4)运防一体化大屏设计(5)异常告警管理(6&…

面试总结-webpack/git

说说你对webpack的理解 webpack 是一个静态模块打包器,整个打包过程就像是一条生产线,把资源从入口放进去,经过一系列的加工(loader),最终转换成我们想要的结果,整个加工过程还会有监控&#x…

redis基础(三十六)

安装redis、配置redis 目录 一、 概述 (一)NoSQL 1、类型 2、应用场景 (二)Redis 二、安装 (一)编译安装 (二)RPM安装 三、目录结构 四、命令解析 五、redis登录更改 1、…

2023国赛数学建模C题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

中睿天下入选河南省网信系统2023年度网络安全技术支撑单位

近日,河南省委网信办发布了“河南省网信系统2023年度网络安全技术支撑单位名单”,中睿天下凭借出色的网络安全技术能力和优势成功入选。 本次遴选由河南省委网信办会同国家计算机网络与信息安全管理中心河南分中心(以下简称安全中心河南分中心…

Zebec Protocol 将进军尼泊尔市场,通过 Zebec Card 推动地区金融平等

流支付正在成为一种全新的支付形态,Zebec Protocol 作为流支付的主要推崇者,正在积极的推动该支付方案向更广泛的应用场景拓展。目前,Zebec Protocol 成功的将流支付应用在薪酬支付领域,并通过收购 WageLink 将其纳入旗下&#xf…

Pytest测试框架3

目录: pytest结合数据驱动-yamlpytest结合数据驱动-excelpytest结合数据驱动-csvpytest结合数据驱动-jsonpytest测试用例生命周期管理(一)pytest测试用例生命周期管理(二)pytest测试用例生命周期管理(三&a…

UG NX二次开发(C#)-CAM-获取刀具类型

文章目录 1、前言2、UG NX中的刀具类型3、获取刀具类型3.1 刀具类型帮助文档1、前言 在UG NX的加工模块,加工刀具是一个必要的因素,其包括了多种类型的类型,有铣刀、钻刀、车刀、磨刀、成型刀等等,而且每种刀具所包含的信息也各不相同。想获取刀具的信息,那就要知道刀具的…