当前位置: 首页 > 科技观察

迁移学习的魔力:任何人都可以使用深度学习

时间:2023-03-22 01:59:23 科技观察

一年前,我和几个朋友开始研究Cortex,这是一个用于构建机器学习API的开源平台。起初,我们假设所有用户,包括所有在生产中实施机器学习(ML)的公司,都是拥有成熟数据科学团队的大公司。但我们大错特错了。全年,我们看到学生、独立工程师和小团队将模型投入生产。令人惊讶的是,他们提供的通常是最先进的大规模深度学习模型,可用于日常应用。一个两人团队最近构建了一个500GPU推理集群,以支持其应用程序的10,000个并发用户。就在不久之前,只有拥有大量预算和大量数据的公司才能做这样的事情。现在,任何团队都可以做到。这种转变是多种因素共同作用的结果,其中一个重要因素是迁移学习。什么是迁移学习从广义上讲,迁移学习是指将在一个任务上训练的深度神经网络的知识“迁移”到另一个在相关任务上训练的网络的技术。例如,迁移学习可用于获取对象检测模型,然后用少量数据“微调”它以检测更具体的事物。这些技术之所以有效,是因为深度神经网络的架构。网络的较低层负责更多的基础知识,而特定于任务的知识通常位于顶部:来源:斯坦福大学训练较低层后,可以用少量数据对较高层进行微调。例如,可以微调对象检测模型(比如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。但是只是微调呢?考虑一个相关的项目。AIDungeon是一款选择你自己的冒险游戏,其风格与之前的命令和游戏地牢爬行者相同。玩家通过输入命令进行游戏,而游戏则通过推进冒险来做出响应。这个冒险游戏是由经过训练的GPT-2模型编写的,您可以编写您选择的冒险文本:AIDungeon由独立工程师NickWharton开发,他使用gpt-2-simple并从chooseyourstory.com上微调GPT从网站上提取的文本。Walton表示,微调GPT-2需要30MB的文本和大约12个小时来训练DGX-1——花费大约374.62美元,但产品效果与AWS的p3dn.24xlarge类似。或许大多数团队只能对40,000美元的云服务费和40GB的文本提取量发出感叹,但375美元和30MB即使对于小团队来说也不是问题。迁移学习的应用领域超越了语言模型。在药物发现中,通常没有足够的疾病特异性数据来从头开始训练模型。DeepScreening是一个解决此类问题的免费平台,允许用户上传自己的数据库和微调模型,然后使用该平台筛选可能发生反应的化合物库。来源:unsplash从头开始??训练这样一个模型超出了大多数研究人员的能力,但是由于迁移学习,突然之间每个人都可以做到。新一代的深度学习模型依赖于迁移学习。必须强调的是,虽然我目前给出的例子都是经济的,但迁移学习并不是小团队凑数的工具。所有团队,无论大小,都使用迁移学习来训练深度学习模型。事实上,一些新发布的模型是专门针对迁移学习的。还记得当GPT-2首次发布并因其原始内存而成为头条新闻时,我们之前从未听说过具有15亿个参数的模型。然而,与拥有1750亿个参数的GPT-3相比,它就相形见绌了。除了OpenAI之外,很少有公司能够训练出1750亿个参数的语言模型。即使部署这么大的模型也有很多问题。OpenAI打破了他们发布开源、预训练版本新模型的传统,将GPT-3作为API发布——用户可以使用自己的数据对GPT-3进行微调。换句话说,GPT-3的庞大规模使得迁移学习不是一种负担得起的新任务训练方式,而是唯一有效的方式。迁移学习优先的方法变得越来越普遍。谷歌刚刚发布了BigTransfer,这是一个高级计算机视觉模型的开源存储库。尽管计算机视觉模型通常比语言模型小,但它们开始迎头赶上——经过1400万张图像训练的预训练ResNet-152x4的容量为4.1GB。顾名思义,BigTransfer旨在鼓励在这些模型中使用迁移学习。作为存储库的一部分,Google还提供了代码,可以轻松微调每个模型。如下图所示,模型容量随时间增加(GPT-3会将图形的大小增加10倍):来源:Microsoft如果这种趋势继续下去(没有迹象表明这种趋势不会继续),那么迁移学习将成为团队使用尖端深度学习的主要方式。随着模型变得越来越大,迁移学习使每个团队都可以使用它们,生产中的大型深度学习模型的数量猛增。训练这些模型是一项挑战——它们需要大量空间和内存来进行推理,而且通常无法同时处理多个请求。来源:unsplash由于这些模型(GPU/ASIC推理、基于请求的弹性缩放、spot实例支持),我们向Cortex引入了几个主要功能,并且随着模型的扩展,我们将继续添加新功能。然而,与世界上每个工程师都可以使用最先进的深度学习解决问题的潜力相比,基础设施的挑战显得微不足道。每个人的深度学习触手可及。