询问ChatGPT来了解什么是边缘计算,有哪些特点,有哪些关键技术,和云计算的关系是什么?
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
云计算是一种计算架构,它使用互联网作为基础设施,允许用户通过网络访问共享的计算资源,而不需要拥有专门的本地计算机硬件和软件。云计算提供了计算能力、存储空间、应用程序和服务等,并使用计费模型收取使用费用。
云计算的优势包括资源共享、灵活性、可扩展性、高可用性和成本效益等。云计算的基础设施包括云服务器、云存储、云网络和云平台。云计算的应用领域涵盖了各种行业,包括数据分析、企业应用、互联网服务等。
边缘计算是一种计算架构,它将计算和存储资源移动到数据的源头或接近数据的源头,而不是将数据传输到远程的云服务器进行处理。这样做的优势在于减少了数据的传输量,提高了数据处理的效率,降低了延迟。
边缘计算的应用领域包括物联网、自动驾驶、智能网路、智能城市等,其中需要处理大量实时数据,并且对延迟要求较低的场景。边缘计算的基础设施包括边缘计算节点、边缘计算网络和边缘计算平台。
边缘计算工程师是一种专门负责开发和维护边缘计算系统的工程师。边缘计算是一种新兴的计算架构,旨在将计算从传统的云计算中心转移到较近的地方,如物联网设备、移动设备或者工业控制系统。边缘计算架构的目的是提供更快的响应时间,更低的延迟和更高的可靠性。
边缘计算工程师需要具备广泛的技能,包括软件工程、网络工程、电子工程、数据科学和计算机科学。他们负责设计、实施和维护边缘计算系统,并且要能够协调各种技术来实现这一目标。边缘计算工程师还需要能够理解客户的业务需求,并且能够根据这些需求设计最佳的边缘计算方案。
边缘计算涉及到许多不同的技术,包括:
- 网络技术:边缘计算系统需要能够快速和可靠地连接到云计算中心,因此需要使用各种网络技术,如软件定义网络(SDN)和网络功能虚拟化(NFV)。
- 边缘计算平台:边缘计算平台是为边缘计算系统提供基础设施和服务的硬件和软件。常见的边缘计算平台包括Kubernetes、Apache Edgent和Apache Mynewt。
- 边缘计算设备:边缘计算设备是指用于执行边缘计算任务的硬件。这些设备可能包括服务器、网络设备、工业控制系统、智能手机和物联网设备。
- 数据科学和机器学习:边缘计算系统需要能够处理海量的数据,因此需要使用数据科学和机器学习技术来分析和理解这些数据。
- 软件工程:边缘计算系统需要大量的软件开发,因此需要使用软件工程技术来设计、实现和维护这些软件。
- 边缘计算系统通常需要使用电子设备,因此需要使用电子工程技术来设计、实现和维护这些设备。
- 系统管理:边缘计算系统包含许多不同的组件,因此需要使用系统管理技术来协调这些组件的工作。
- 安全:边缘计算系统需要保护数据和系统免受攻击,因此需要使用安全技术来保护系统。
总之,边缘计算工程师需要具备广泛的技能,能够熟练使用各种技术来设计、实现和维护边缘计算系统。
如果你想要成为边缘计算工程师,可以从以下几个方面入手:
-
学习计算机科学基础知识:边缘计算工程师需要具备计算机科学的基础知识,如算法、数据结构、编程语言等。你可以通过读书、参加在线课程或者参加培训班来学习这些知识。
-
了解边缘计算架构:了解边缘计算架构的概念和原理是很重要的。你可以通过阅读相关书籍、参加在线课程或者参加培训班来学习这些知识。
-
实践:学习理论知识是很重要的,但实践也是很重要的。你可以在自己的计算机上搭建边缘计算系统,或者参加相关的项目,从而练习边缘计算技术。
-
专业认证:参加专业认证考试可以帮助你检验自己的技能水平,并且能够向雇主证明你的专业能力。
-
不断学习:边缘计算领域是一个快速发展的领域,因此你需要不断学习新的技术和方法,才能保持自己的技能水平。参加在
-
在线课程、参加培训班、阅读专业书籍和参加行业会议等方式都是很好的学习方式。
总之,掌握边缘计算技术需要综合运用多种方式,包括学习基础知识、了解边缘计算架构、实践、参加专业认证考试和不断学习新的技术。坚持不懈,逐步提升自己的技能,你就能成为一名出色的边缘计算工程师。
边缘计算具有实时性、可扩展性、可移植性、高效性和安全性等特点。实时性:边缘计算能够实现实时的数据处理和分析,可以提高应用的响应速度。可扩展性:边缘计算可以根据需要通过增加计算节点来扩展,可以满足大规模的数据处理需求。可移植性:边缘计算可以在不同的硬件平台上运行,比如智能手机、智能家居设备、智能汽车等。高效性:边缘计算可以减少网络带宽的需求,并且能够有效利用硬件计算资源,提高计算效率。安全性:边缘计算可以通过本地计算和数据存储来保障数据安全,并且可以支持数据加密和授权机制。
边缘计算是指在计算机的边缘进行的计算,它是一种新型的计算模型,它将云端计算的传统模型中的数据中心转移到了源头数据产生的地方。
边缘计算具有实时性、可扩展性、可移植性、高效性和安全性等特点。它能够实现实时的数据处理和分析,可以提高应用的响应速度。此外,边缘计算可以根据需要通过增加计算节点来扩展,可以满足大规模的数据处理需求。边缘计算还可以在不同的硬件平台上运行,比如智能手机、智能家居设备、智能汽车等。
边缘计算可以减少网络带宽的需求,并且能够有效利用硬件计算资源,提高计算效率。此外,边缘计算可以通过本地计算和数据存储来保障数据安全,并且可以支持数据加密和授权机制。
具体的例子有很多,举几个典型的例子:
在智能手机中,通过边缘计算实现实时的图像处理和语音识别。这种方式可以减少网络带宽的需求,并且可以提高应用的响应速度。例如,通过边缘计算,手机上的人脸识别应用可以实时识别人脸,并进行人脸比对,而不需要将数据传输到云端。
在智能家居领域,通过边缘计算实现实时的人脸识别和安防监控。智能家居设备可以通过边缘计算实现实时的人脸识别,以便于自动开门或者报警。例如,智能门锁可以通过边缘计算实现实时的人脸识别,只有当识别到授权用户的人脸时才会开门。
在智能交通系统中,通过边缘计算实现实时的路况分析和路线规划。智能汽车可以通过边缘计算实现实时的路况分析,并且能够根据实时的路况自动规划路线。例如,智能汽车可以通过边缘计算实现实时的交通流量分析,并根据分析结果自动规划最优路线。
在医疗健康领域,通过边缘计算实现实时的病人监测。可穿戴式医疗设备可以通过边缘计算实现实时的监测,医生可以根据实时的数据及时采取措施。例如,可穿戴式心电监测器可以通过边缘计算实现实时的心电监测,医生可以根据实时的心电数据及时判断患者的健康状况,并及时采取措施。
边缘计算和云计算之间的关系非常密切,因为它们都是分布式计算技术,都旨在更好地处理数据和进行计算。但它们有一些重要的区别。边缘计算指的是将计算和数据处理推向网络的边缘,例如在网络设备或物联网设备上,而云计算则是指将这些计算和数据处理放在远程服务器上,通过网络进行访问。
简单来说,边缘计算和云计算都是分布式计算技术,但边缘计算更关注于将计算和数据处理移动到网络的边缘,以提高响应速度和降低延迟,而云计算则更关注于将计算和数据处理放在远程服务器上,以便更多的人可以通过网络访问。
是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。
云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒种)完成对数以万计的数据的处理,从而达到强大的网络服务。
指的是在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。边缘计算处于物理实体和工业连接之间,或处于物理实体的顶端。而云端计算,仍然可以访问边缘计算的历史数据。
综合不同标准组织和产业联盟对边缘计算的定义,我们把它的技术特征总结为以下几个方面:
邻近性:由于边缘计算的部署非常靠近信息源,因此边缘计算特别适用于捕获和分析大数据中的关键信息,此外边缘计算还可以直接访问设备,因此容易直接衍生特定的商业应用。
低时延:由于移动边缘技术服务靠近终端设备或者直接在终端设备上运行,因此大大降低了延迟。这使得反馈更加迅速,同时也改善了用户体验,大大降低了网络在其他部分中可能发生的拥塞。
高带宽:由于边缘计算靠近信息源,可以在本地进行简单地数据处理,不必将所有数据或信息都上传至云端,这将使得网络传输压力下降,减少网络堵塞,网络速率也因此大大增加。
位置认知:当网络边缘是无线网络的一部分时,无论是WIFI还是蜂窝,本地服务都可以利用相对较少的信息来确定每个连接设备的具体位置。
分布性:边缘计算实际部署天然具备分布式特征。这要求边缘计算支持分布式计算与存储、实现分布式资源的动态调度与统一管理、支撑分布式智能、具备分布式安全等能力。
数据入口:边缘计算作为物理世界到数字世界的桥梁,是数据的第一入口,拥有大量、实时、完整的数据,可基于数据全生命周期进行管理与价值创造,将更好的支撑预测性维护、资产效率与管理等创新应用;同时,作为数据第一入口,边缘计算也面临数据实时性、确定性、多样性等挑战。
边缘计算和云计算互相协同,它们是彼此优化补充的存在,共同使能行业数字化转型。
云计算是一个统筹者,它负责长周期数据的大数据分析,能够在周期性维护、业务决策等领域运行。
边缘计算着眼于实时、短周期数据的分析,更好地支撑本地业务及时处理执行。边缘计算靠近设备端,也为云端数据采集做出贡献,支撑云端应用的大数据分析,云计算也通过大数据分析输出业务规则下发到边缘处,以便执行和优化处理。
所以不管是云计算还是边缘计算,不存在一方完全取代一方的状况,只是各个擅长的领域各司其职,在最合适的场景里用最合适的运算,或者双向出击!
所谓万物互联,以时间为横坐标延伸,最大的网络就是物联网。那么边缘计算就是靠近物联网边缘的计算、处理、优化和存储。搭载物联网的发展,边缘计算的应用也十分广泛,智慧城市、智慧家居、智慧医院、在线直播,到智能泊车、自动驾驶、无人机、智能制造等各方面都有它的身影,制霸物联网的时刻指日可待。
边缘计算在电信运营商和行业领域都有极大的市场应用,边缘计算是5G的重要组成部分,也是推动行业数字化转型的重要技术。一些典型的应用场景包括:
例如针对运营商领域的移动视频QoS优化:目前LTE蜂窝网络所承载的视频内容和管道之间缺乏交互,用户体验很难达到最佳。一方面,由于无线侧信道和空口资源变化较快,难以动态调整应用层(HTTP/DASH)参数以适配无线信道的变化。同样,传统的TCP拥塞控制策略是针对有线环境设计的,也不能准确适应无线信道的变化。另一方面,eNB对应用层内容不可知,无法为不同类型的业务动态进行无线资源的调度,也不能为同一类型业务的不同用户提供差异化的QoS。
边缘计算平台可以通过北向接口获取OTT视频业务的应用层及TCP层信息,也可以通过南向接口获取RAN侧无线信道等信息(RNIS、Location Service等),进一步通过双向跨层优化来提升用户的感知体验,从而实现运营商管道的智能化。
在行业应用市场包括:
预测性维护:通过本地的边缘计算融合网关可以提供数据分析能力,第一时间发现设备潜在故障。同时提供本地存活,一旦与云端联接故障,数据可以本地保存,联接恢复后,本地收敛数据自动同步到云端,确保云端可以对每部电梯形成完整视图。
智能制造:边缘计算在工业系统中的具体表现形式是工业CPS系统,该系统在底层通过工业服务适配器,将现场设备封装成web服务;在基础设施层,通过工业无线和工业SDN网络将现场设备以扁平互联的方式联接到工业数据平台中;在数据平台中,根据产线的工艺和工序模型,通过服务组合对现场设备进行动态管理和组合,并与MES等系统对接。整个工业CPS系统能够支撑快速部署、设备替换和计划调整等应用的快速开发和上线。
此外,边缘计算的应用还包括车联网/自动驾驶、AR/VR、视频监控与智能分析、智慧水务等等领域。
边缘云计算旨在提高云计算的效率和可用性,通过将云计算的计算能力和存储空间更近地带到用户的设备周围,从而减少网络延迟和带宽流量。这样可以使得应用程序可以更快地响应用户的请求,并更好地适应离线操作。此外,边缘云计算还可以减少对中心云的依赖,从而提高云计算的容错能力和可扩展性。
边缘云计算的目的是通过将云计算的计算能力和存储空间更近地带到用户的设备周围,从而实现以下几个主要功能:
- 减少网络延迟和带宽流量:通过将云计算的计算能力和存储空间放置在用户的设备附近,可以大大减少网络延迟,提高应用程序的响应速度。同时,还可以减少对中心云的依赖,减少网络带宽流量,降低云计算的运营成本。
- 提高应用程序的可用性和可扩展性:边缘云计算可以提高应
chatgpt真的无所不能么 谈谈chatgpt背后的核心技术
chatgpt,chatgpt是什么意思,chatgpt怎么下载,chatgpt中文输入几个简单的关键词,AI能帮你生成一篇短篇小说甚至是专业论文。最近大火的ChatGPT在邮件撰写、文本翻译、代码编写等任务上强大表现,让埃隆・马斯克都声称感受到了AI的“危险”。ChatGPT的计算逻辑来自于一个名为transformer的算法,它来源于2017年的一篇科研论文《Attention is all your need》。原本这篇论文是聚焦在自然语言处理领域,但由于其出色的解释性和计算性能开始广泛地使用在AI各个领域,成为最近几年最流行的AI算法模型,无论是这篇论文还是transformer模型,都是当今AI科技发展的一个缩影。以此为前提,本文分析了这篇论文的核心要点和主要创新初衷。
缘起 从Transformer提出到“大规模与训练模型” GPT(Generative Pre-Training)的诞生,再到GPT2的迭代标志Open AI成为营利性公司,以及GPT3和ChatGPT的“出圈”;再看产业界,多个重要领域比如生物医疗,智能制造纷纷有以transformer落地的技术产生。在这个浪潮下,我的思考是:
一是,未来很长一段时间在智能化领域,我们都将经历“科研、算力、基础架构、工程、数据、解决方案”这个循环的快速迭代;流动性、创新性短期不会稳定下来,而是会越来越强。我们很难等到科技封装好,把这些知识全部屏蔽掉,再去打磨产品。未来在竞争中获胜的,将是很好地“解决了产品化和科研及工程创新之间平衡”的团队。我们一般理解的研发实际上是工程,但AI的实践科学属性需要团队更好的接纳这种“流动性”。因此对所有从业者或者感兴趣智能化的小伙伴了解全栈知识成了一个刚需。
二是,通过对这篇论文的探讨,可以更直观地理解:在科研端发生了什么,以什么样的速度和节奏发生;哪些是里程碑?是科学界的梅西横空出世,带我们发现真理;哪些是微创新?可能方向明确了,但还有很多空间可以拓展;哪些更像炼金术?仍然在摸索,尚需要很长一段时间,或者一直会保持这个状态。
三是,在AI领域,由于技术原因,更多的论文是开源代码的,一方面,促进了更多人参与进来改进迭代;另一方面,科研跟工程实现无缝连接,一篇论文可以拉动从核心代码到平台,到具体应用很大范围的价值扩散。一篇论文很可能就是一个领域,一条赛道,甚至直接驱动业务价值和客户价值的大幅提升。
四是, AI技术发展有很多领域(感知,认知,感知又分图像、语音、文字等,认知也可以分出很多层次)之前这些领域的算法逻辑存在很大差别,transformer的出现有一定程度上推动各个领域汇聚的迹象,介绍清楚这篇论文,对把握整体可能有些作用。另外ChatGPT属于现象级应用,大家更有直观感受,未来这类应用的体验提升和更新速度只会更快,理解了其背后的逻辑,更有助于我们把握这个趋势。
论文介绍
下面步入正题,开始介绍这篇论文,会涉及一些技术细节及公式,可能还需要仔细看一下(先收藏,留出15-20分钟比较好),相信一旦看进去,你会对AI的理解加深很多。
总体把握
这篇论文的结构非常精炼,提出问题,分析问题,解决问题,给出测试数据。顶刊文章讲究言简意赅,有描述,有代码,有结果;其中最核心的是以下这张图,作者团队提出transformer的核心算法结构: 整篇文章就是围绕这张图来进行解释的,由于篇幅所限,我们聚焦在一条主线上:1.文章想解决主要问题是什么 2.如何解决的 3.从文章提出的解决方案作为一个案例来引发整体思考,因此我们将内容简化,主要关注核心部分。 这张图表达的内容如果理解了,那基本上你掌握了这篇论文85%的内容,也是最关键的部分。
《Attention is all your need》在编写时主要是为了考虑NLP任务,是由几个Google的科研人员一起完成的,其中一个背景是Google也在推广自己的并行计算芯片以及AI TensorFlow开发平台。平台主要功能特点是并行计算,这篇文章的算法也是在最大限度的实现并行计算。我们就以一个简单的例子来把这个算法串一遍。
核心内容
需求是我们需要训练一个模型,进行中文到英文翻译。
背景知识:这个需求要把“翻译:我爱你 to I love you”转置成一个y=f(x)问题,x代表中文,y是英文,我们要通过训练得到f(),一旦训练成功f(),就可以实现翻译。大家拼的就是谁的训练方法更准确,更高效,谁的f()更好用。
之前自然语言处理主要的算法叫RNN(循环神经网络),它主要的实现逻辑是每个“字”计算之后将结果继承给第二个字。算法的弊病是需要大量的串行计算,效率低。而且当遇到比较长的句子时,前面信息很有可能会被稀释掉,造成模型不准确,也就是对于长句子效果会衰减。这是这篇文章致力于要解决的问题,也就是说这篇文章有训练处更好的f()的方法。联想一下ChatGPT可以做论文,感受一下。
在Transformer里,作者提出了将每个字与句子中所有单词进行计算,算出这个词与每个单词的相关度,从而确定这个词在这个句子里的更准确意义。
在此处,要开始进入一些技术细节,在开始之前,我们有必要再熟悉一下机器学习领域最核心的一个概念――“向量”。在数字化时代,数学运算最小单位往往是自然数字。但在AI时代,这个最小单元变成了向量。这是数字化时代计算和智能化时代最重要的差别之一。
举个例子,比如,在银行,判断一个人的信用额度,我们用一个向量来表示 向量是一组数据的集合,也可以想象成在一个超高维度空间里的一个点。一个具体的信用额度向量,就是在8个特征组成的高维空间的一个点。数据在高维空间将展现更多的数学性质比如线性可分,容易让我们抓住更多隐藏的规律。
向量的加减乘除是计算机在进行样本训练是最主要的计算逻辑。<
chatgpt写的代码真能用吗 chatgpt会取代程序员吗
chatgpt,chatgpt怎么下载,chatgpt哪里下载,chatgpt入口缘起
输入几个简单的关键词,AI能帮你生成一篇短篇小说甚至是专业论文。作为上知天文下知地理对话语言模型,最近大火的ChatGPT在邮件撰写、视频脚本、文本翻译、代码编写等任务上强大表现,让埃隆・马斯克都声称感受到了AI的“危险”。最近大火的ChatGPT的计算逻辑来自于一个算法名字叫transformer。它来源于2017年的一篇科研论文《Attention is all your need》。本来这篇论文是聚焦在自然语言处理领域,但由于其出色的解释性和计算性能开始广泛地使用在AI各个领域,成为最近几年最流行的AI算法模型,无论是这篇论文还是transformer模型,都是当今AI科技发展的一个缩影。
这也是我想在这里给大家分析这篇文章的核心要点和主要创新的初衷。
但我非AI(数学,计算机)专业,只是梳理并分享自己学习的体会和思考,与大家一起讨论,欢迎各位多提宝贵意见;所述并不专业,各位大牛可以绕行。
为什么选择分析一篇本该在科研圈里流传的科研论文,作为公众号的首篇呢?
从Transformer提出到“大规模与训练模型”GPT(Generative Pre-Training)的诞生,再到GPT2的迭代标志Open AI成为营利性公司,以及GPT3和ChatGPT的“出圈”;再看产业界,第四范式涉及到多个重要领域比如生物医疗,智能制造纷纷有以transformer落地的技术产生。在这个浪潮下,我的思考是:
一是,未来很长一段时间在智能化领域,我们都将经历“科研、算力、基础架构、工程、数据、解决方案”这个循环的快速迭代;流动性、创新性短期不会稳定下来,而是会越来越强。我们很难等到科技封装好,把这些知识全部屏蔽掉,再去打磨产品。未来在竞争中获胜的,将是很好地“解决了产品化和科研及工程创新之间平衡”的团队。我们一般理解的研发实际上是工程,但AI的实践科学属性需要团队更好的接纳这种“流动性”。因此对所有从业者或者感兴趣智能化的小伙伴了解全栈知识成了一个刚需。
二是,通过对这篇论文的探讨,可以更直观地理解:在科研端发生了什么,以什么样的速度和节奏发生;哪些是里程碑?是科学界的梅西横空出世,带我们发现真理;哪些是微创新?可能方向明确了,但还有很多空间可以拓展;哪些更像炼金术?仍然在摸索,尚需要很长一段时间,或者一直会保持这个状态。
三是,在AI领域,由于技术原因,更多的论文是开源代码的,一方面,促进了更多人参与进来改进迭代;另一方面,科研跟工程实现无缝连接,一篇论文可以拉动从核心代码到平台,到具体应用很大范围的价值扩散。一篇论文很可能就是一个领域,一条赛道,甚至直接驱动业务价值和客户价值的大幅提升。
四是, AI技术发展有很多领域(感知,认知,感知又分图像、语音、文字等,认知也可以分出很多层次)之前这些领域的算法逻辑存在很大差别,transformer的出现有一定程度上推动各个领域汇聚的迹象,介绍清楚这篇文章,对把握整体,可能有些作用。另外ChatGPT属于现象级应用,大家更有直观感受,未来这类应用的体验提升和更新速度只会更快,理解了其背后的逻辑,更有助于我们把握这个趋势。
现今,知识迭代速度很快,需要打下坚实的基础。我的私心是希望通过公众号分享文章,激励自己更好地理解、梳理相关知识,以做尝试;如果大家比较接受,后面我会逐步把在工程、方案、产品和企业智能化的思考逐渐沉淀并分享在这个公众号里面。
论文介绍
下面步入正题,开始介绍这篇论文,会涉及一些技术细节及公式,可能还需要仔细看一下(先收藏,留出15-20分钟比家好),相信一旦看进去,你会对AI的理解加深很多。
总体把握
这篇论文的结构非常精炼,提出问题,分析问题,解决问题,给出测试数据。顶刊文章讲究言简意赅,有描述,有代码,有结果;其中最核心的是以下这张图,作者团队提出transformer的核心算法结构:
整篇文章就是围绕这张图来进行解释的,由于篇幅所限,我们聚焦在一条主线上:1.文章想解决主要问题是什么 2.如何解决的 3.从文章提出的解决方案作为一个案例来引发整体思考,因此我们将内容简化,主要关注核心部分。
这张图表达的内容如果理解了,那基本上你掌握了这篇论文85%的内容,也是最关键的部分。
《Attention is all your need》在编写时主要是为了考虑NLP任务,是由几个Google的科研人员一起完成的,其中一个背景是Google也在推广自己的并行计算芯片以及AI TensorFlow开发平台。平台主要功能特点是并行计算,这篇文章的算法也是在最大限度的实现并行计算。我们就以一个简单的例子来把这个算法串一遍。
核心内容
需求是我们需要训练一个模型,进行中文到英文翻译。
背景知识:这个需求要把“翻译:我爱你 to I love you”转置成一个y=f(x)问题,x代表中文,y是英文,我们要通过训练得到f(),一旦训练成功f(),就可以实现翻译。大家拼的就是谁的训练方法更准确,更高效,谁的f()更好用。
之前自然语言处理主要的算法叫RNN(循环神经网络),它主要的实现逻辑是每个“字”计算之后将结果继承给第二个字。算法的弊病是需要大量的串行计算,效率低。而且当遇到比较长的句子时,前面信息很有可能会被稀释掉,造成模型不准确,也就是对于长句子效果会衰减。这是这篇文章致力于要解决的问题,也就是说这篇文章有训练处更好的f()的方法。联想一下ChatGPT可以做论文,感受一下。
在Transformer里,作者提出了将每个字与句子中所有单词进行计算,算出这个词与每个单词的相关度,从而确定这个词在这个句子里的更准确意义。(这句话要是理解了,后面其实可以不看了)
在此处,要开始进入一些技术细节,在开始之前,我们有必要再熟悉一下机器学习领域最核心的一个概念――“向量”。在数字化时代,数学运算最小单位往往是自然数字。但在AI时代,这个最小单元变成了向量。这是数字化时代计算和智能化时代最重要的差别之一。
举个例子,比如,在银行,判断一个人的信用额度,我们用一个向量来表示
向量是一组数据的集合,也可以想象成在一个超高维度空间里的一个点。一个具体的信用额度向量,就是在8个特征组成的高维空间的一个点。数据在高维空间将展现更多的数学性质比如线性可分,容易让我们抓住更多隐藏的规律。
向量的加减乘除是计算机在进行样本训练是最主要的计算逻辑。第四范式一直强调的高维,实时,自学习,其中高维就是把企业信息拉升到一个非常高维的空间,变成向量。
Transformer模型的主要意义就是找到了一个算法,分成三步把一个词逐步定位到了一个高维空间,在这个过程中赋予这个单词比其它算法更优的信息。很多情况下这个高维空间有着不同的意义,一旦这个向量赋予的信息更准确更接近真实情况,后面的机器学习工作就很容易展开。还拿刚才信用额度向量举例子
这两个向量存在于两个不同的向量空间,主要的区别就是前者多了一个向量特征:“年薪”。可以思考一下如果判断一个人的信用额度,“年薪”是不是一个很重要的影响因子?
以上例子还是很简单的,只是增加了一个特征值,在transformer里就复杂很多,它是要把多个向量信息通过矩阵加减乘除综合计算,从而赋予一个向量新的含义。
好,理解了向量的重要性,我们看回transformer的三步走,这三步走分别是:1.编码(Embedding)2. 定位 (Positional encoding)3. 自注意力机制(Self-Attention)这个真的大名鼎鼎!
举个例子,比如,翻译句子Smart John is singing到中文。
首先,要对句子每个词进行向量化。
我们先看“John”这个词,需要先把“John”这个字母排列的表达转换成一个512维度的向量john 这样计算机可以开始认识它。说明John是在这个512维空间的一个点;这是第一步:编码(Embedding)
再次,第二步 定位(Positional encoding):利用以下公式(这是这篇文章的创新)
微调一个新的高维空间,生成一个新的向量
我们不用太担心这个公式,它核心意义是:1.在这个新的向量里面每一位由原来的0和1表示,分别取代成由sin和cos表示,这个目的是可以通过sin和cos的定律,让这个新向量不仅表示John这个单词的意义,还可以表示John在Smart John is singing这个句子的位置信息。如果不理解,可以直接忽略,只要记住第二步是用来在“表达John这个词的向量”中,加入了John在句子中的位置信息。John已经不是一个孤立的词,而是一个具体句子中的一个词,虽然还不知道句子中其他词是什么含义。
如果第一步计算机理解了什么是John,第二步计算机理解了“* John**”。
最后,第三步,自注意力机制(Self-Attention),通过一个Attention(Q,K,V)算法,再次把John放到一个新的空间信息里,我们设为
在这个新向量里,不仅包含了John的含义,John在句子中位置信息,更包含了John和句子中每个单子含义之间的关系和价值信息。我们可以理解,John作为一个词是一个泛指,但Smart John就具体了很多,singing的Smart John就又近了一步。而且Attention (Q,K,V)算法,不是对一个单词周围做计算,是让这个单词跟句子里所有单词做计算。通过计算调整这个单词在空间里的位置。
这种方法,可以在一个超长句子中发挥优势,而且最关键的是一举突破了时序序列的屏障,以前对于图像和NLP算法的划分,很大程度上是由于NLP有很明显的时序特征,即每个单词和下一个以及在下一个有比较明显的时序关系。但Transformer这种算法打破了这种束缚,它更在意一个单词跟句子中每个单词的价值权重。这是Transformer可以用到everywhere的主要原因。
计算过程
(如果不感兴趣,可以跳过这一部分介绍,直接进入启发收获部分,如需一些基础知识,可以参考“智能化学习与思考”公众号的基础知识文章)
具体的计算过程,用翻译句子“我爱你”到“I love you”举例(这句更简单一些)。首先进行向量化并吸收句子位置信息,得到一个句子的初始向量组。
(由于样本每个句子长短不同,所以每个句子都会是一个512*512的矩阵,如果长度不够就用0来代替。这样在训练时,无论多长的句子,都可以用一个同样规模的矩阵来表示。当然512是超参,可以在训练前调整大小。)
接着,用每个字的初始向量分别乘以三个随机初始的矩阵WQ,Wk,Wv 分别得到三个量Qx,Kx,Vx。下图以“我”举例。
然后,计算每个单词的attention数值,比如“我”字的attention值就是用“我”字的Q我分别乘以句子中其他单词的K值,两个矩阵相乘的数学含义就是衡量两个矩阵的相似度。然后通过一个SoftMax转换(大家不用担心如何计算),计算出它跟每个单词的权重,这个权重比例所有加在一起要等于1。再用每个权重乘以相对应的V值。所有乘积相加得到这个Attention值。
这个attention数值就是除了“我”字自有信息和位置信息以外,成功的得到了这个句子中每个单词的相关度信息。
大家可以发现,在所有注意力系数的计算逻辑中其实只有每个字的初始矩阵WQ,Wk,Wv是未知数(这三个矩阵是所有文字共享的)。那么我们可以把这个transformer简化成一个关于输入,输出和这个W矩阵的方程:其中X是输入文字信息,Y是翻译信息。
这里有必要再介绍一下机器学习的基础知识:Transformer算法本质上是一个前馈神经网络模型,它的计算基础逻辑,不去管复杂的隐藏层,就是假设Y=f(x)=wx,(目标还是要算出一个f())然后随机设置一个w0,开始计算这个y=w0x的成本函数,然后再把w0变成w1,计算y=w1x的成本函数,以此类推计算出无数w(不是无数哈,也会收敛的),然后比较哪个w的成本函数最小,就是我们训练出来的f()。那么在transformer里,这三个初始矩阵就是那个w0。
再回到transformer,在计算Attention之后,每个单词根据语义关系被打入了新的高维空间这就是Self-attention(自注意力机制)。
但在transformer里,并不是代入了一个空间,而是代入了多个高维空间,叫做多头注意力机制,
文章中没有给出更清晰的理论支持,为什么是多头。
主要原因是在训练时效果很好。这也是AI科研论文的一个特点,常常凭借非常高的科研素养和敏感性,发现一些方向,并且通过测试确实有效,但不一定可以给出很完美的理论支撑。这往往也给后续研究者一些可以进一步完善的空间。
事实证明,如何提升Attention(Q,K,V)效率是transformer领域迭代最快的部分。之后的Bert算法提出预训练机制成为了主流,后面会做进一步介绍。
当然,事后我们可以理解是把这个句子中的逻辑关系放到不同的高维空间去训练,目的就是希望抓取更多的信息,这一部分可以更加深刻理解科研人员对空间的应用。
除了以上内容,还有一些技术点比如Mask机制、layer norm、神经网络激函数饱和区控制等,由于篇幅关系以及属于技术细节就不一一介绍了。
如果大家理解了多头自注意力机制,基本已经85%掌握了这篇论文的重要内容,也对还在快速扩展影响力的transformer模型有了一个比较直观的认识。
启发收获
- 从理论科研进步的角度看
- 1. Transformer打破了时序计算的逻辑,开始快速出圈,多个AI原本比较独立的领域开始在技术上融合。再往里看,Transformer能打破时序很重要一点是并行计算的算力模式给更复杂的计算带来了性价比上的可能性。算力的进一步提高,必将在AI各细分领域带来融合,更基础设施级别的模型,算法仍将不断推出。AI领域在图像,NLP;感知认知领域的专业分工也会慢慢变模糊。
- 2. AI科研确实具有一些实验性质。除了核心思想,确实还有很多技术点的解决方向已经明确,但还有很大的提升空间,可以预见围绕transformer周边的微创新会持续加速繁荣。
- 3. 《Attention is all your need》在业内大名鼎鼎,但你要是细看,会发现很多内容也是拿来主义,比如最重要的Attention(Q,K,V)中Query,Key,Value是互联网推荐系统的标配方法论;整个Transformer算法也是一个大的神经网络,算法是在前人基础上一步一步迭代发展,只是这个迭代速度明显在加快。
- 从理论、算法、架构、工程的角度看
- 4. AI算法科研领域正经历算法、开源代码、工程、算力的增长飞轮。
下图是顶级刊物上的学术论文中,开放源代码的论文比例,这个数据在这几年以更快的速度在增长。科研过程与工程过程产生越来越大的交集。开源社区和开源文化本身也在推动算法和工程的快速发展。
更多人参与,更多领域的人参与进来,进入门槛随着算力成本、AI基础架构和代码、知识分享的开源逐渐降低,科研与工程的边界也变得模糊,这个就像足球运动的规律,除了足球人口增多,天才球员梅西出现的概率也会增大。
- 从数据和后续方案发展的角度看
- 5. ChatGPT的成功同大量的数据训练功不可没,但除了简单对话互动或者翻译,大篇幅回答甚至论文级别的答案还是极其缺乏样本数据(算法训练需要的样本数据需要清晰度X和Y)。而且Transformer的算法相比其他算法需要更大的数据量,原因在于它需要起始阶段随机产生三个矩阵,一步一步进行优化。除了Transformer以外,另一个技术Bert也是技术发展非常重要的现象级算法。其核心是一个简化的Transformer,Bert不去做从A翻译到B,它随机遮住X里面的一些单词或句子让算法优化对遮住部分的预测。这种思路使得Bert成为了Transformer预训练最好的搭档。
如果通过Bert进行预训练,相当于给矩阵加入了先验知识(之前训练逻辑没有给机器任何提示,规则后者基础知识),提高了正式训练时初始矩阵的准确度,极大地提升了之后transformer的计算效率和对数据量的要求。在现实中,举例来说,如果我想训练国家图书馆图书,之前需要每本书的信息和对这本书的解释,或者中文书对应的英文书。但现在我们可以大量只是训练内容,不需要打标签,之后只需要通过transformer对样本数据进行微调。这就给ChatGPT很大的进步空间,而且可以预见,更多这类大模型会雨后春笋一般快速出现。
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。