迁移学习的魔法:任何人都将能使用深度学习

一年前,我和几个小伙伴一起开始在构建机器学习API的开源平台Cortex上工作。起初,我们假设所有用户,包括所有把机器学习(ML)运用于生产的公司,都是拥有成熟数据科学团队的大公司。

但我们大错特错了。

一年中,我们看见学生、独立工程师以及小型团队纷纷把模型投入生产。出乎意料,他们提供的通常都是最先进的大型深度学习模型,可用于日常应用程序。一个两人组成的团队最近建立了一个500个GPU推理集群,以支持其应用程序的1万个并发用户。

仅仅在不久之前,只有预算高、数据量大的公司才能做到这样的事情。现在,任何团队都可以做到。这种转变是多种因素共同作用的结果,但其中一个重要因素是迁移学习。

什么是迁移学习

广义上讲,迁移学习是指将经过一项任务训练的深度神经网络的知识“迁移”到训练相关任务的另一个网络的技术。例如,可以使用迁移学习来获取用于对象检测模型,然后使用少量数据对其进行“微调”来检测更具体的事物。

这些技术之所以能起作用是因为深度神经网络的体系结构。网络的低层负责更多的基础知识,而特定任务知识则通常在顶层:

迁移学习的魔法:任何人都将能使用深度学习
图源:Stanford

较低层训练完后,可以用少量数据微调较高的层。例如,对象检测模型(比如说YOLOv4)进行微调后可以识别具有很小数据集的特定事物(例如车牌)。

在网络之间迁移知识的技术各不相同,但不约而同的是,最近有许多新项目旨在简化这个过程。例如,gpt-2-simple库允许任何人微调GPT-2,还可以使用Python函数生成预测:https://gist.github.com/caleb-kaiser/dd40d16647b1e4cda7545837ea961272。

迁移学习是如何打通机器学习的

大部分团队不会因为缺乏某类知识而无法使用机器学习。如果要构建图像分类器,有许多知名的模型可以使用,使用现代化框架会让训练变得非常简单。对于大多数团队来说,机器学习因其成本因素所以从未被视为一个现实的选择。

让我们用OpenAI的(到目前为止)最佳语言模型GPT-2为例来说明。

如果使用公有云,单就估算GPT-2训练成本就已超过4万美元,除了这一费用,GPT-2还需要训练40GB的文本内容(保守估计超过2000万页),抓取和整理大量文本本身就是一个巨大的项目。这让大多数团队无法训练自己的GPT-2。

但如果只是对其进行微调呢?来看一个相关项目。

AI Dungeon是一款可自行选择的冒险游戏,其风格延续之前的命令游戏地牢爬行者。玩家通过输入指令进行游戏,游戏通过推进冒险作为回应。这款冒险游戏是由训练后的GPT-2模型编写的,你可以编写自己选择的冒险文本:

迁移学习的魔法:任何人都将能使用深度学习

AI Dungeon是由独立工程师尼克·沃顿开发的,他利用gpt-2-simple和从chooseyourstory.com网站上提取的文本微调GPT。沃尔顿表示微调GPT-2需要30MB的文本和12小时左右的时间来训练DGX-1——大约花费了374.62美元,但做出来的产品效果和AWS的p3dn.24xlarge差不多。

也许大部分团队只能对着4万美元的云服务费和40GB的文本提取量望洋兴叹,但是375美元和30MB即便对小团队来说也不成问题。

迁移学习的应用领域超越了语言模型。在药物发现中,通常没有足够的特定疾病数据来从零开始训练模型。DeepScreening是一个解决此类问题的免费平台,它允许用户上传自己的数据库和微调模型,然后利用该平台来筛选可能会发生反应的化合物库。

迁移学习的魔法:任何人都将能使用深度学习
图源:unsplash

从零开始训练一个这样的模型超出大多数研究人员的能力范围,但是由于有了迁移学习,突然间人人都可以做到。

新一代深度学习模型取决于迁移学习

必须强调的一点是,尽管笔者目前给出的例子都偏重经济效益,但迁移学习并不是小型团队用来凑数的一个工具,所有团队无论大小都在使用迁移学习来训练深度学习模型。事实上,一些新发布的模型都是专门针对迁移学习的。

还记得GPT-2首次发布时,因其原始内存而霸占各大头版头条,我们以前从未听说过有15亿参数的模型。然而和GPT-3相比则是小巫见大巫了,后者参数量达到1750亿。

除了OpenAI之外,几乎没有哪家公司能训练拥有1750亿个参数的语言模型。即便是部署这么大的模型也存在诸多问题。OpenAI打破了他们发布开源的传统,预训练新模型版本,将GPT-3作为API发行—用户可以使用自己的数据微调GPT-3。

换句话说,GPT-3的庞大让迁移学习不再是训练新任务的一个经济实惠的方法,而是唯一可行的方法。

迁移学习优先方法已经变得越来越普遍。Google刚刚发布的Big Transfer是一个先进计算机视觉模型开源存储库。尽管计算机视觉模型通常要比语言模型小,但它们已经开始追赶了——预训练过的ResNet-152x4接受了1400万张图像的训练,容量为4.1 GB。

顾名思义,Big Transfer旨在鼓励利用这些模型来使用转移学习。作为存储库的一部分,Google还提供了可以轻松微调每个模型的代码。正如下图所示,模型容量会随着时间不断增大(GPT-3会将图表的大小增加10倍):

迁移学习的魔法:任何人都将能使用深度学习
图源:Microsoft

如果这种趋势持续下去(没有迹象表明这种趋势不会持续),那么迁移学习将成为团队使用前沿深度学习的主要方式。

随着模型变得越来越大,迁移学习使得每个团队都能使用这些模型,投入生产的大型深度学习模型的数量猛增。训练这些模型是一个挑战——它们需要大量空间和内存来进行推理,而且通常无法一次处理多个请求。

迁移学习的魔法:任何人都将能使用深度学习
图源:unsplash