编者按:本文来自微信公众号“新智元”(ID:AI_era),编辑:LQ、yaxin,36氪经授权发布。
【导读】2017年,PyTorch诞生,成为当下最流行的深度学习框架。近日,Facebook宣布让PyTorch成为构建AI和机器学习模型的默认框架,为工程师们提供更好的开发体验。
PyTorch自2017年推出以来,就迅速占领GitHub热度榜榜首,一度有赶超Tensorflow的趋势。
这是一个开源的Python机器学习库,基于Torch,底层由C++实现。
近日,Facebook宣布要将所有的人工智能系统迁移到PyTorch。
Facebook的AI模型每天为使用自家技术的数十亿人执行数万亿次推理操作。
为了满足这种不断增长的需求,Facebook 需要不断发展自身的 AI 框架。
考虑到Python在计算科学领域的领先地位,以及其生态完整性和接口易用性,几乎任何框架都不可避免地要提供Python接口。
因此,在2016年,Facebook 的一组人工智能研究人员开始与人工智能研究团体合作,迎接这些挑战。
为了更好地理解什么是可用的,什么是需要的,他们试验了机器学习(ML)框架,如 Theano 和 Torch,以及 Lua Torch、 Chainer 和 HIPS Autograd 的先进概念。
经过几个月的开发,PyTorch 诞生了。
PyTorch不是简单地封装Lua Torch提供Python接口,而是对Tensor之上的所有模块进行了重构,并新增了最先进的自动求导系统,成为当下最流行的动态图框架。
PyTorch 最初版本在开源社区GitHub中引起了轰动,并且很快成为人工智能研究人员首选的深度学习库。
PyTorch 提供了一个无约束的环境,在这个环境中,程序员们可以真正地表达自己的想法。
一经推出就立刻引起了广泛关注,并迅速在研究领域流行起来。
PyTorch自发布起关注度就在不断上升,截至2017年10月18日,PyTorch的热度已然超越了其他三个框架(Caffe、MXNet和Theano),并且其热度还在持续上升中。
2018年初,PyTorch 1.0的发布开启了将 PyTorch 的研究和生产能力统一到一个框架中工作。
上面提到的众多好处已经在 Facebook 上得到了验证。从 Instagram的个性化功能到AR和VR的新兴应用程序,在众多应用中PyTorch都起到了增强技术和服务的作用。同时,也精简了工作流程,减少了改进系统所需的时间。
Instagram个性化技术
Instagram个性化团队的任务是不断改进和完善推荐引擎。
国外用户可以通过多渠道接收、发现Ins消息推送,比如Feeds, Stories, Reels,用户通过这些渠道找到与自己有关且感兴趣的内容,这一功能都要归功于内后的机器学习算法.
有了 PyTorch,Ins团队可以更快地让Instagram成为探索你感兴趣的内容并与家人和朋友分享的最佳平台之一。
如今,不断改进对Instagram用户的推荐意味着训练模型,最大可达10TB。
在 PyTorch 之前,训练和调试这些大规模模型可能需要数月时间,现在有了PyTorch,只需要几周,甚至几天时间。
在 PyTorch中实现新的训练技术,可以让不同团队数百名工程师快速采用和实验这些技术。它还简化了跨团队标准的创建,使部署和改进这些模型变得更加容易。
该团队还对其编写和训练基础设施进行了改进,允许模型自动分片(分成更小的块) ,以便在主机上训练更大的模型。
他们还采用了如流水线和分层培训(将一个学习任务分解成一系列子问题或任务)等培训范式,允许模型在不降低质量的情况下使用更多数据。
人物分割模型
AR和VR正逐渐成为Facebook的重要组成部分。
举例来说,一个内容创作者或普通用户——只是和朋友一起玩短视频的人,他们拍的视频用了个性化、计算机生成的图形和背景。
现在,想象一下他们在自己的移动设备上完成这些,不需要使用专业的绘图软件或者视频制作设备。
这就是AR的应用前景,PyTorch 通过显著加快训练过程并缩小这些模型的规模,使其成为可能。
例如,研究AR体验的研究人员创建了人物分割模型,这种模型仅使用手机的摄像头就可以跟踪人们在视频中的动作(包括识别他们的手和头发)。
当软件捕获一个人在物理空间中的位置时,它就会在人物周围放置增强现实图形,以及这些图形应该如何与人物交互。
△ 人物分割可以让人们直接在移动设备上为视频创建AR效果
最初开发这些模型时,它们的大小和复杂性意味着为特定效果部署一个模型可能需要长达三天的时间,这还不包括调试模型修复任何错误的时间。
然后还有跨设备的功能问题。有时模型在某些设备或操作系统上运行速度不如其他设备或操作系统快,导致用户体验不一致。
现在,使用 PyTorch 开发的相同模型,可以在几分钟内(如果不是几秒钟的话)跨多个设备和操作系统进行部署。
模型使用 Detectron2Go (D2Go)进行训练,这是一个新的、最先进的 PyTorch 扩展。
D2Go是同类工具中的第一个,它允许开发者将他们的机器学习模型从训练阶段一直带到移动设备上的部署阶段。
自从今年4月完成模型迁移到PyTorch 以来,推断时间提高了14% ,模型加载速度提高了24% ,这使得团队可以在延迟相同的情况下,在移动设备上部署更复杂、更精确的模型。
PyTorch加入网络有害内容对抗
Facebook AI的一个核心重点是部署尖端的机器学习技术,保护人们免受仇恨言论和错误信息等有害内容的伤害。
我们的目标是为每一种内容形式,为世界各地的每一种语言和社区,快速准确地识别这些违反政策的内容。
在大规模对抗不断规避我们系统的敌人时,这项任务难度系数越来越高。
这些挑战复杂、微妙、变化还很快。我们将继续探索人工智能如何成为检测有害内容更有效的工具,为了做到这一点,Facebook AI的工程师们正在利用 PyTorch 来帮助他们更快地开发新的、更强大的模型,并改进当前的模型。
利用PyTorch,Facebook的工程师们开发了 Facebook AI Multimodal (FAIM) ,这是一个内部库和 SDK,允许开发者快速创建、优化和部署定制的多模式模型,以适应特定的有害问题(例如,错误信息和仇恨言论) ,这意味着他们可以通过图像、文本、评论和其他元素全面识别内容。
FAIM 模型并不依赖于一系列不同的模型,而是专注于自己的内容类型或模式,它能够分析所有类型的内容(图片、视频等)。
一个模型是Whole Post Integrity Embeddings(WPIE) ,这是一个经过训练可以识别不同形式有害内容的服务。因此,WPIE 对内容有了更深入的了解,能够在各种情况下识别有害内容,并随着有害内容的新形式的出现迅速改进。
这样做的好处是更快、更有效、更全面地分析内容。例如,看起来无伤大雅的句子或图像,当组合在一起时,可能会呈现出完全不同的上下文。
今天,超过85% 的面向用户的多模式产品模型使用PyTorch和FAIM. 使用 FAIM 创建的模型,如 WPIE,可以理解视觉和文本概念的深层交互,这意味着它们可以更准确和彻底地检测有害内容。
虽然像FAIM这样的人工智能工具并不是我们解决有问题内容的唯一方法,但它们确实帮助我们更加适应如何大规模应对这些挑战。
文本到语音
随着语音助手和类似技术变得越来越普遍,无论是易用性还是可用性,我们的工程师正在努力使语音互动变得像人类交谈一样自然。
这些系统的行为和声音越像人类,我们与他们的互动就越无缝。
如今,Facebook 的工程师团队正在使用 PyTorch 创建一些语音应用程序的模型,这些程序包括 Facebook 的「你的名字如何发音」功能、 Portal 上的语音交互,以及文本到语音(text-to-speech,TTS)功能。
Facebook 的 TTS 团队最近构建并部署了一个具有最先进音频质量的系统,该系统部署在 CPU 服务器上,没有任何专门的硬件。
新的 TTS 系统具有很高的灵活性,将在 Facebook 产品中创建新的语音应用程序方面发挥作用,这些语音应用程序听起来更加真实和自然,其中还包括 VR 语音功能和阅读辅助功能。
PyTorch简化了 TTS 团队的整个开发流水线,使新模型的开发、试验和训练变得更容易。
在模型训练端,PyTorch 具有方便、灵活和易于使用的界面、 python 编码、高度优化的操作员内核的综合套件以及高效的multi-GPU原语,使模型既易于调试又能快速进行大规模训练。
在模型推理和部署方面,PyTorch 有一个强大的、基于TorchScript的模型优化管道,可以将计算图转换为部署环境中最有效的形式。
PyTorch 的轻量级和高性能移动运行时(runtime)为团队提供了低计算和内存占用的高性能模型推理服务。
在未来,部分归功于PyTorch,语音系统不仅能够理解越来越多的语言,而且还能够根据语境线索做出相应的反应,比如某人声音的音调或音量,甚至是背景噪音的大小。
光学字符识别
众所周知,互联网是图片汇集地。
△ 图片交易公司gettyimages官网截图
理解图片中出现的文本,无论是个人照片还是商业照片,包含信息的图像,如地图或菜单,甚至只是一个有趣的meme,会变得越来越重要。
照片搜索,视障人士的屏幕阅读器,以及识别和删除有害内容都依赖于机器学习系统,该系统可以从图像和视频中分析文本。
其中一个系统是 Facebook AI 开发的光学字符识别(OCR)系统。
OCR 可以从图像和视频中定位和提取多种语言文本,用于从完整性到搜索的各种案例。通过将OCR的框架切换到PyTorch,团队已经能够使系统更加强健,更容易。
OCR 有两个主要模型: 一个用于文本检测,另一个用于文本识别。
文本检测模型是使用 Detectron 2训练的,这是一个基于PyTorch的目标检测模型库。部署和调试。
考虑到训练这些模型所需的数据量和模型本身的大小,延迟通常是开发人员所关心的问题。
但是转移到 PyTorch 就会变得更加流畅,这将允许他们在模型的体系结构上进行快速的实验和迭代,并且更加有效地调试和部署模型。
该团队目前正在开发一个新的端到端模型,它可以在一个统一的设计中处理文本检测和文本识别,这个设计从训练到部署将完全基于 PyTorch.
PyTorch 迁移的目标是为工程师和开发人员创建一个更顺畅的端到端开发人员体验。
平均每天有4000多个模型在 PyTorch 上运行。
Facebook 的开发人员在他们的模型完全迁移到 PyTorch 之前经历了多个阶段,包括关键的离线和在线测试、训练(通常还有再训练)、推断和发布。
还进行了多个测试,以检查 Caffe2和 PyTorch 之间的性能和正确性差异,这可能需要工程师长达数周的时间才能完成。
有了 PyTorch 作为支持 Facebook 所有人工智能工作负载的底层平台,工程师可以在几分钟内而不是几周内部署新的人工智能模型,建立更强大、更高效的系统,为新的体验提供动力等等。
以 PyTorch 作为常用的人工智能框架优势:
1、人工智能模型更容易构建、编程、测试和调试
2、研究和生产环境变得更加紧密
3、在设备上部署加快
目前有超过1800个实体为 PyTorch 社区做出贡献,包括加州理工学院等机构和 OpenAI 等推动人工智能研究的公司。
论坛拥有超过4万的活跃用户,在GitHub上有超过7万的下游项目使用 PyTorch。
在学术方面,仅从2019年6月到2020年6月,PyTorch 在 ArXiv 上的引用数量就比去年同期增长了127% .
根据谷歌学术搜索,PyTorch 论文的原始版本被引用了4400多次。
参考资料:
https://ai.facebook.com/blog/pytorch-builds-the-future-of-ai-and-machine-learning-at-facebook/