热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深度学习+大规模计算+大数据,谁才是未来的算力之王

深度学习+大规模计算+大数据,谁才是未来的算力之王-纵观时代演进的脉络,从农业革命到工业革命再到知识革命,从远古结绳计数到古代珠算与机械计算再到现在的电子计算,数学一直是人类文明进

纵观时代演进的脉络,从农业革命到工业革命再到知识革命,从远古结绳计数到古代珠算与机械计算再到现在的电子计算,数学一直是人类文明进步的主要力量。当今时代,算力作为新型生产力,数据作为新的生产要素,参与价值创造和分配,信息技术成为了驱动经济社会发展的基础动力。随着5G、人工智能、云计算、大数据、IoT等技术的推动,万物互联的时代即将到来,算力需求将越来越大,有望替代热力、电力,成为拉动数字经济向前发展的新动能、新引擎,并成为影响国家综合实力和国际话语权的关键要素,国与国的核心竞争力正在聚焦于以计算速度、计算方法、通信能力、存储能力为代表的算力,未来谁掌握先进的算力,谁就掌握了发展的主动权。人工智能与深度学习人工智能(Artificial Intelligence),是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它起源于20世纪五六十年代,经过半个多世纪的演变,经历了符号主义、连接主义和行为主体三次浪潮的相互交织发展,到如今,作为一项新兴的通用技术,正在推动着社会生活与各行各业的巨变。现阶段人们普遍认为,深度学习+大规模计算+大数据=人工智能。什么是深度学习?在人工智能领域,机器学习是其中的一个技术流派,通过从已知样本中提炼规律来获得判断未知样本的智能;深度学习则是机器学习的一种,它所学习出来的模型是深度神经网络。具体来说,机器学习可以理解为机器从已知的经验数据(样本)中,通过某种特定的方法(算法),自己去寻找提炼(训练/学习)出一些规律(模型);提炼出的规律就可以用来判断一些未知的事情(预测),自2006年以来,机器学习领域深度学习(Deep Learning)取得了突破性的进展。深度学习是一种特殊的机器学习,在语音和图像识别方面取得的效果,远远超过先前相关技术。它通过学习将世界表示为嵌套的概念层次结构来实现强大的功能和灵活性,每个概念都是根据更简单的概念进行定义的,而更抽象的表示则用不那么抽象的概念计算出来。深度学习算法分「训练」和「推理」两个过程。简单来讲,人工智能需要以大数据为基础,通过「训练」得到各种参数(也就是模型),然后把模型传递给「推理」部分,得到最终结果。神经网络分为前向计算(包括矩阵相乘、卷积、循环层)和后向更新(主要是梯度运算)两类,「训练」是两者兼而有之,「推理」主要是前向计算,都包含大量并行运算。一般来说,「训练+推理」在云端进行,终端人工智能硬件只负责「推理」。

算力:人工智能的核心要素近年来,随着深度学习的推进,AI领域对算力的要求每年增加10倍左右。为了达到这个目标,我们需要处理大量的数据。因此,人工智能三大要素:算法、算力和大数据,缺一不可,都是人工智能能够实现大规模应用的必备条件。1、数据。人类要获取一定的技能都必须经过不断的训练,才能熟能生巧,AI也是如此。人工智能的根基是训练,只有经过大量的训练,神经网络才能总结出规律,应用到新的样本上。只有拥有大量数据,且能覆盖各种可能的场景,才能得到一个表现良好的智能模型。2、算力。有了数据之后,需要进行不断地重复的训练。深度学习中有三个概念叫Epoch(“一代训练”),Batch(“一批数据”),Iteration(“一次训练”)。仅仅将训练集从头到尾训练一遍是不够的,需要把训练集翻来覆去训练很多轮。训练和推理都需要强大算力的支撑。3、算法。神经网络算法和深度学习是目前最主流的人工智能算法。算力是人工智能的三大要素之一,需要芯片的支撑,这是人工智能进一步发展并实现产业化的关键。芯片:人工智能竞争的制高点AI芯片提供算力,承载算法,是实现人工智能的物理载体,因此是人工智能领域竞争的制高点。什么是AI芯片?从广义上GPU与GPGPU的定义说,所有面向AI应用的芯片都可以称为AI芯片,但目前人们普遍认为,AI芯片是针对AI算法做了特殊加速设计的芯片。AI深度学习需要很高的并行计算、浮点计算以及矩阵运算能力,基于CPU的传统计算架构无法充分满足人工智能高性能并行计算(HPC)的需求,因此需要发展适合AI架构的专属芯片。对于人工智能计算架构来说,CPU配合加速芯片的模式是典型的AI部署方案:CPU提供算力,加速芯片提升算力并助推算法的产生。常见的AI加速芯片按照技术路线可以分为GPU、FPGA、ASIC三类。其中,应用于图形、图像处理领域的GPU 可以并行处理大量数据,非常适合深度学习的高并行、高本地化数据场景,是目前主流的人工智能计算架构。1、GPU用于大量重复计算,由数以千计的更小、更高效的核心组成大规模并行计算架构,配备GPU的服务器可取代数百台通用CPU服务器来处理高性能计算和AI业务。2、FPGA是一种半定制芯片,灵活性强集成度高,但运算量小,量产成本高,适用于算法更新频繁或市场规模小的专用领域。3、ASIC专用性强,适合市场需求量大的专用领域,但开发周期较长且难度极高。GPU:最适合AI深度学习的异构芯片GPU与GPGPU的定义GPU(Graphics Processing Unit,图形处理器)是进行图像图形相关运算工作的微处理器,最初用途是将计算机系统需要显示的信息进行转换驱动,从而控制显示器的正确显示。GPGPU(General-Purpose Computing on Graphics Processing Units,通用计算图形处理器)用专门处理图形任务的处理器,运行图形渲染之外的通用计算任务,这些通用计算常常与图形处理没有任何关系。GPU的特点是并行处理能力强、计算能效比高,并且有很大的存储带宽。某些应用,例如人工智能(机器学习)模型训练与推理、高性能计算等,往往是大数据流应用,这时,用GPGPU解决这类问题,就比CPU效率更高,它对于用传统语言编写的、软件形式的计算有较好的支持,具有高度的灵活性。目前GPGPU广泛应用于高性能计算、行业AI应用、安防与政府项目、互联网及云数据中心等。其主要应用场景:一是人工智能模型训练与推理;二是高性能计算机。GPU的结构由于CPU在图像渲染方面能力不足,GPU被发明出来分担这部分工作,在屏幕上进行多边形图像渲染,其本质就是并行处理简单任务:每个像素点的色彩可以独立计算,不需要考虑其它像素点。有了这样上千个简单的核心,再配合合适的代码,就能处理超大规模的数学运算,实现逼真的游戏体验。由于CPU有通用性的需求,其单个核心往往会设计得大而全;加上CPU计算的特性,核心中有很大一部分面积用来构建缓存(包含L1和L2两级缓存)和控制单元(解码器与分支预测等前端单元),实际用来运算的单元面积可能仅占整个核心的一半甚至不到。GPU的设计理念就不同,图形计算本身就是一项简单而暴力的“粗活”,复杂度远不如CPU要负责的各种不同类型的工作,想要提高图形计算速度最简单的办法就是扩大处理器中含有的单元数量。所以GPU对于特定的计算任务,因为拥有更大的计算单元,就很容易达到比CPU更高的计算速度,表现出来就是GPU在浮点运算吞吐量上远超CPU。GPU是基于数据的并行计算GPU的关键性能在于可以同时运算一些更简单的问题,然后并行处理,适用于高性能计算领域所涉及的诸如气象、宇宙模型和DNA序列等问题,以及数据库查询、密码学领域的暴力搜索、机器学习/深度学习、地理可视化等企业应用。GPU 并行编程的核心在于线程,一个线程就是程序中的一个单一指令流,无数个线程组合在一起就构成了并行计算网格,成为并行程序,下图展示了多核 CPU 与 GPU 的计算网格:并行计算有两种类型:一是基于任务的并行处理,这种模式将计算任务拆分成若干个小的但不同的任务,如有的运算单元负责取数,有的运算单元负责计算,等等,这样一个大的任务可以组成一道流水线。二是基于数据的并行处理,这种并行模式将数据分解为多个部分,让多个运算单元分别去计算这些小块的数据,最后再将其汇总起来。一般来说,CPU的多线程编程偏向于第一种并行模式,GPU并行编程模式则偏向于第二种,其对于数据的计算能力更加强大。

人工智能的研究者选择了GPU最初,并不是GPU选择了人工智能,而是人工智能的研究者选择了GPU,进而成就了GPU:2012年Alex Krizhevsky(前谷歌计算机科学家)利用深度学习+GPU的方案,一举赢得Image Net LSVRC-2010 图像识别大赛,并奇迹般地将识别成功率从74%提升到85%。NVIDIA敏锐地洞察到了这一趋势,于是耗费巨大的人力物力优化基于自家GPU的CUDA深度学习生态系统,在三年时间里将GPU性能提升了65倍,并提供基于其GPU的从后端模型训练到前端推理应用的全套深度学习解决方案,使得一般的开发人员都可以非常容易地使用GPU进行深度学习开发或高性能运算,从而奠定了其目前的王者之位。可以说,是人工智能和GPU互相成就了对方:人工智能算法促进GPU的发展,而GPU也让算法更加简单。综上所述,GPU是AI时代的算力核心,但AI算力的构成不仅仅只是GPU加速芯片,还需要构建包括网络互联、操作系统、深度学习框架及相应 SDK、算法与应用程序等,形成一个完整的计算生态系统。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文详细介绍了商汤科技面试中涉及的CV算法面经内容,包括CornerNet的介绍与CornerPooling的解决方案、Mimic知识蒸馏的实现方式、MobileNet的特点、普通卷积和DW PW卷积的计算量推导、Residual结构的来源等。同时还讨论了在人脸关键点和检测中的mimic实现方式、pose对人脸关键点的提升作用、目标检测中可能遇到的问题以及处理检测类别冲突的方法。此外,还涉及了对机器学习的了解程度和相似度分析的问题。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
author-avatar
lucky燕子加加加
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有