从语言、模型和规模三个维度,打造下一代AI
编者按:人工智能的发展不断改变着人类的生产和生活方式,而 AI 所迈出的每一步都来自于人类智慧的持续输出。协作将可以让我们不断扩大 AI 的边界,突破人机交互的局限。我们也将共同构建越来越强大的模型,让 AI 更好地理解世界,激发人类的创造力。新春伊始,我们梳理了计算机从初始语言学习开始,到模型,再到 AI 规模化的漫长之路。本文编译自微软博客文章 “The Next Generation AI”。
你知道计算机是如何了解我们周围的世界,并由此拓展人们的能力、激发人类创造力的么?
事实上,计算机非常擅长从大量数据中学习,通过高效地组织和检索信息,并对其进行快速处理,从而得出解决方案。而人类,则更善于解决需要借助判断力、同理心和创造力的问题。
为了丰富人们的想象力并激发大家的创新能力,计算机需要将原始数据转化为对人类经验的更深刻理解。通过微软与全球 AI 领域的共同努力,人们与未来世界的距离已经比想象中更近了一步。
为了更好地实现下一代 AI 体验的美好愿景,微软是如何训练计算机,使之成为人们的左膀右臂,以实现更多成就的呢?我们从教计算机学习人类语言开始。
语言是一门复杂的学问。人类花了上百年时间研究单词间的关系和语境的重要性。同时,随着新词的涌现、不同文化的碰撞,语言自身也在不断演进。因此,人们必须不断地学习。
微软通过不断建立关联来掌握语言。
正如人们通过了解各种观点来丰富自己对世界的理解一样,使用庞大和多样化的数据训练 AI 模型,同样可以丰富计算机对语言的深入理解。为了能够在各种语言、多个领域和不同语言习惯之间进行清晰沟通,语言模型要足够庞大且复杂,以便理解底层语言、语法、概念和语境。所以,微软开始着手创建一个人们可以想象的最庞大、最强大的语言模型。
近年来,互联网数据爆炸性增长,再加上云计算技术带来的大规模高性能计算,大大加速了深度学习的进步。作为机器学习的一个细分领域,深度学习通过运用人工神经网络来训练计算机执行各项任务。
我们可以将这些人工神经网络看作一层层相互连接的神经元。神经网络通过复杂的优化过程,并借助示例数据进行训练,从而了解神经元之间每个连接的强度(人们通常将两个神经元之间的连接强度称为突触权重)。通过这个过程,网络不断衡量其自身预测的准确性,并进行自我更新,最终可以获得连接神经元的鲁棒性 AI 模型。每个唯一连接形成一个参数。
微软 AI 媲美人类水平的突破时间表
2016年
6000万个参数的
ResNet
2017年
2018年
2亿至20亿个参数的
Transformer集成
2019年
2020年
170亿个参数,并在不断增长
用于自然语言生成的微软图灵(Turing)模型
训练如此大规模的 AI 模型需要庞大的基础架构。微软已在 Azure AI 平台上构建出了这种大规模基础架构,该平台由数千个用于 AI 加速的图形处理单元(GPU)组成,并在每个服务器内部以及各个服务器之间,通过最新的高带宽网络实现互连。
但是,仅有基础架构还不够。无论基础架构多么强大,训练一个超大的 AI 模型都要将其划分为很多层,并把这些层分布在多个 GPU 上。此外,还必须将大量训练数据分成多个批次,同时在整个集群中展开并行训练以生成最终模型。为了最终扩展到数万亿个参数,我们需要突破一些基本的硬件和软件限制。
实现速度、规模和可用性的指数型增长
微软 DeepSpeed 深度学习优化库和 PyTorch 机器学习库解锁了使用数万亿参数训练 AI 模型的能力。
微软开源的 DeepSpeed 深度学习优化库,通过改善规模、速度、成本和可用性,显著提升了大型模型训练的水平。它通过轻量级、无缝兼容的 API,提供了最前沿的训练技术,例如分布式训练、混合精度和检查点等。只要对现有 AI 模型的几行代码加以改动,就可以借助 DeepSpeed 的能力来应对潜在的性能挑战,同时提高训练速度和规模。DeepSpeed 深度学习优化库也是 PyTorch 机器学习库的一部分。
作为 DeepSpeed 库中的重要组件之一,ZeRO(Zero Redundancy Optimizer,零冗余优化器)是一种全新的并行化优化器,可大大压缩模型和数据并行化所需的资源。ZeRO 可以在当前一代的 GPU 集群上训练具有1000亿个参数的深度学习模型,其数据吞吐量是目前最优系统的三到五倍。
访问以下链接,了解更多 ZeRO 信息:
https://www.microsoft.com/en-us/research/blog/zero-deepspeed-new-system-optimizations-enable-training-models-with-over-100-billion-parameters/
ZeRO 通过跨数据并行进程划分模型状态(参数、梯度和优化器状态),而不是单纯地复制它们,从而消除了跨数据并行进程的内存冗余。在训练过程中,ZeRO 使用动态通信时间表,在分布式设备之间共享必要的状态,以保持数据并行中的计算粒度和通信量。由 ZeRO 驱动的数据并行性使集群中内存容量的完全聚合成为可能,从而大大增加了可训练的参数数量。
微软开源的 ONNX Runtime 是针对机器学习模型的跨平台高性能训练和推理运行时长的工具。它的设计重点是性能和可扩展能力,以支持大规模生产场景中的工作负载。为了实现这一目标,ONNX Runtime 采用了 ONNX 表示图的形式进行深度学习执行,并通过转换器对该图加以优化。在转换过程中,它可以融合操作并分割执行,以实现并行性。它还具备一些基本的数学运算功能,(如矩阵乘法、转置、线性代数运算等)以提供高效的实现方法,这些运算都是训练深度学习模型的基本构建模块。此外,ONNX Runtime 还利用了 DeepSpeed 中包括 ZeRO 在内的优化功能,并具有可扩展性选项,用于支持新硬件、自定义运算符和图形转换。
DeepSpeed、ZeRO 和 ONNX Runtime 的创新代表了深度学习系统技术的重大飞跃。通过处理效率的提升和可扩展 Azure AI 基础架构的改进,微软已经建立了一条用于训练具有数万亿个参数的 AI 模型的可行性路径。
访问以下链接,了解更多:
https://innovation.microsoft.com/en-us/exploring-ai-at-scale
使基本 AI 语言模型演进成,在特定领域或任务中表现出专业知识和流利程度的语言模型,需要特殊的模型调试层级。
从核心模型到微调:
训练了少量非常大的 AI 模型,便于在微软公司范围内重复使用。
使用了大量未标记的数据来训练这些模型,其中的数据是来自于网络的公开数据(由必应提供)。
这提供了来自真实世界不断增长、高质量和多主题的数据流,以迭代的方式训练同一个大型模型学会多种人类语言的丰富语义表示。
首先让模型通过自监督学习掌握所有基本语法和语境技能,而后通过“迁移学习”,提升它对具体、特定领域和任务的理解。
随着语言模型从领域数据中不断学习,它还可以在每个组织机构中以符合隐私保护政策的方式继续进行学习。
最终,每个人都可以得到个性化语言模型所提供的服务,这些模型可以由用户以私密和安全的方式进行微调,从而满足他们的具体需求。
通过将“迁移学习”与在处理效率方面的创新相结合,微软将不断提高AI语言模型的智能,从而让所有人都能实现更远大的目标。
驱动 AI 创新
微软正在将这些经过微调、针对特定领域的模型运用到微软的更多产品中,包括消费类产品和企业级产品。这种集中而高度协作的方法也代表了微软工作方式的转变——将研究和工程专业知识相结合构建大型模型。
通过创建每个团队都可以使用的通用 AI 模型,微软可以高效、大规模地提供高价值、以 AI 为驱动的用户体验,并结合隐私权益及负责任的人工智能统筹进行考虑。
AI 规模化赋能每一人
微软正在做的每件事以及所达到的每个里程碑,都是建立在全球协作的基础之上。通过贡献而非竞争才使微软能够突破人机交互的局限。除了在语言理解领域,目前,新一代更大规模的模型正在以更通用的方式,展开跨文本、图像和视频的学习和应用。
通过企业内部以及与全球 AI 社区之间的不断合作,微软将持续把创新的 AI 功能引入到自身的产品和平台中,并提供给客户、合作伙伴以及支持微软“予力全球”使命的计划和举措。
这些人工智能领域的集体努力所带来的突破,注定将帮助世界应对一些艰巨的挑战。我们将共同构建越来越强大的模型,让人工智能更好地理解世界,激发人类自身的创造力。
读者你好!我们成立微信学习交流群,欢迎对AI感兴趣的朋友进群!
你可以加我的微信,邀请你进群!微商广告勿扰!