Fast.ai发布新的深度学习课程

2020-08-22 02:44:31

Ai是一个自筹资金的研究、软件开发和教学实验室,专注于让深度学习更容易获得。我们所有的软件、研究论文和课程都是免费提供的,没有广告。我们自掏腰包支付所有费用,不接受赠款或捐款,所以你可以确信我们是真正独立的。

今天是我们四年历史上最重要的一天。我们将发布:

Fastai v2:对Fastai的完全重写,它更快、更容易、更灵活,实现了深度学习框架设计的新方法,正如同行评审的Fastai学术论文中所讨论的那样。

Fast core、fast script和fast gpu:Fastai v2中使用的基础库,对许多程序员和数据科学家都很有用。

程序员实用深度学习(2020课程,第1部分):包括机器学习入门和深度学习,以及数据产品的生产和部署。

使用FAST AI和PyTorch的程序员的深度学习:没有博士学位的人工智能应用:O‘Reilly的一本书,内容与课程相同(包括课程第二部分计划的内容)。

另外,如果您错过了它,本周早些时候我们发布了实用数据伦理学课程,该课程侧重于既紧迫又实用的主题。

Fastai是一个深度学习库,它为从业者提供高级组件,这些组件可以快速、轻松地在标准深度学习领域提供最先进的结果,并为研究人员提供可以混合和匹配的低级组件,以建立新的方法。它的目标是在易用性、灵活性或性能方面不做实质性妥协的情况下完成这两件事。这要归功于精心分层的体系结构,该体系结构以分离的抽象方式表达了许多深度学习和数据处理技术的公共底层模式。通过利用底层Python语言的动态性和PyTorch库的灵活性,可以简洁而清晰地表达这些抽象。FAST AI包括:

一种新的Python类型调度系统和张量的语义类型层次结构。

一种优化器,它将现代优化器的常见功能重构为两个基本部分,允许在45行代码中实现优化算法。

一种新颖的双向回调系统,可以访问数据、模型或优化器的任何部分,并在培训期间随时更改它们。

FAST AI围绕两个主要设计目标进行组织:平易近人和快速高效,同时也是深度可破解和可配置的。它构建在提供可组合构建块的低级API层次结构之上。这样,想要重写高级API的一部分或添加特定行为以满足其需求的用户不必学习如何使用最低级别。

要了解Fastai的功能,请看Quick start,它展示了如何使用大约5行代码来构建图像分类器、图像分割模型、文本情感模型、推荐系统和表格模型。对于每个应用程序,代码基本相同。

通读教程,了解如何根据您自己的数据集训练您自己的模型。使用导航侧栏浏览FAST AI文档。这里记录了每个类、函数和方法。要了解图书馆的设计和动机,请阅读同行评议论文。

所有的ast.ai项目,包括Fastai,都是用nbdev构建的,nbdev是一个构建在Jupyter笔记本上的完全识字的编程环境。这意味着每一份文档都可以作为交互式Jupyter笔记本访问,每个文档页面都包括一个链接,可以直接在Google Colab上打开它,以便进行实验和定制。

从普通的PyTorch、Ignite或任何其他基于PyTorch的库迁移非常容易,甚至可以将Fastai与其他库结合使用。通常,您将能够使用所有现有的数据处理代码,但将能够减少培训所需的代码量,并更容易地利用现代最佳实践。下面是一些流行的库中的迁移指南,可以帮助您上路:Plain PyTorch;Ignite;Lightning;Catalyst。因为FAST框架很容易与您现有的代码和库结合并成为其一部分,所以您只需挑选您想要的部分即可。例如,您可以使用Fastai的GPU加速计算机视觉库,以及您自己的训练循环。

FastAI包括许多模块,它们通常通过回调添加功能。多亏了灵活的基础设施,所有这些都可以协同工作,因此您可以选择您需要的内容(并添加您自己的内容),包括:混合和裁剪增强、独特灵活的GAN训练框架、一系列调度器(其中许多在任何其他框架中都不可用),包括支持遵循ULMFiT中描述的方法的微调、混合精度、梯度累积、对Tensorboard等一系列记录框架的支持(这里演示了对权重和偏差的特别强大的支持)、医学成像,以及更多。其他功能通过FAST AI生态系统添加,例如对HuggingFace Transformers(也可以手动完成,如本教程中所示)、音频、加速推理等的支持。

社区已经为Fastaiv2提供了一些很好的学习材料,比如Zach Mueller的“Zero to Hero”系列:第1部分;第2部分。

之前的Fast.ai课程已经有来自世界各地、来自各行各业的数十万名学生学习。许多学生告诉我们,他们是如何成为国际机器学习比赛的多个金牌获得者,接受顶级公司的邀请,并发表研究论文的。例如,Isaac Dimitrovsky告诉我们,他“已经和ML玩了几年了,并没有真正理解它…。[然后]去年年底,我通过了Fast.ai第一部分课程,这对我来说很有意义。他继续在享有盛誉的国际RA2梦想挑战赛中获得第一名!他开发了一种多阶段深度学习方法,利用FAST AI库对类风湿性关节炎的放射手足关节损伤进行评分。

今年的课程更上一层楼。它将机器学习和深度学习合并到一门课程中,涵盖了随机森林、梯度提升、测试和验证集以及p值等主题,这些内容以前都在单独的机器学习课程中。此外,还包括生产和部署,包括为我们自己的深度学习驱动的应用程序开发基于Web的GUI的材料。唯一的先决条件是高中数学和一年的编程经验(最好是Python)。

如何训练模型以实现最先进的结果:计算机视觉,包含图像分类(例如,按品种对宠物照片进行分类),以及图像定位和检测(例如,查找图像中动物的位置)。

表格数据(例如,销售预测),包括分类数据、连续数据和混合数据,包括时间序列。

为什么以及如何使用深度学习模型,以及如何使用这些知识来提高模型的准确性、速度和可靠性。

如何思考你的工作的伦理影响,以帮助确保你正在让世界变得更美好,并确保你的工作不会被滥用于伤害

我们非常关心教学,使用的是一种完整的游戏方法。在本课程中,我们首先展示如何使用一个完整的、工作的、非常有用的、最先进的深度学习网络来解决现实世界中的问题,使用简单、富有表现力的工具。然后我们逐渐深入了解这些工具是如何制造的,以及制造这些工具的工具是如何制造的,等等。我们总是以身作则进行教学。我们确保有一个您可以直观理解的上下文和目的,而不是从代数符号操作开始。我们还将深入研究细节,向您展示如何从头开始构建深度学习模型的所有组件,包括讨论性能和优化细节。

整个课程可以免费完成,不需要任何安装,只需利用Colab和Gradient平台的指南,这两个平台提供免费的GPU驱动的笔记本电脑。

要了解这本新书是关于什么的,它是写给谁的,让我们看看其他人是怎么说的…。PyTorch的联合创建者Soumith Chintala在为使用Fastai和PyTorch的程序员进行深度学习的序言中说:

但与我不同的是,杰里米和西尔万无私地投入了大量精力,以确保其他人不必走他们走过的痛苦道路。他们创建了一门很棒的课程,名为fast.ai,让懂基本编程的人都能接触到尖端的深度学习技术。它已经使数十万渴望学习的人毕业,他们已经成为伟大的实践者。

在这本又一部孜孜不倦的作品中,杰里米和西尔万通过深度学习构建了一段神奇的旅程。他们用简单的词语介绍每一个概念。它们为您带来了尖端的深度学习和最先进的研究,但又让您非常容易接近。

在长达500页的愉快旅程中,您将了解计算机视觉的最新进展,深入自然语言处理,并学习一些基础数学知识。而且,这段旅程并不止步于娱乐,因为他们会带你完成将你的想法转化为产品的过程。您可以将拥有数千名在线从业者的fast.ai社区视为您的大家庭,在这里,像您这样的个人可以畅所欲言,构思大大小小的解决方案,无论问题是什么。

谷歌研究总监彼得·诺维格(也是人工智能权威文本的作者)说:

“深度学习是给每个人的”,我们在本书的第一章第一节看到,虽然其他书可能会提出类似的主张,但这本书阐述了这一主张。作者对该领域有广泛的知识,但能够以一种非常适合有编程经验但不是机器学习经验的读者的方式来描述它。这本书首先展示例子,只在具体例子的上下文中涵盖理论。对大多数人来说,这是最好的学习方式。这本书令人印象深刻地涵盖了深度学习在计算机视觉、自然语言处理和表格数据处理中的关键应用,但也涵盖了其他一些书所缺少的数据伦理等关键主题。总之,这是程序员精通深度学习的最佳来源之一。

斯坦福大学医学和成像人工智能中心主任柯蒂斯·朗洛茨说:

Gugger和Howard为任何曾经做过一点点编码的人创建了一个理想的资源。这本书,以及随之而来的Fast.ai课程,简单而实用地揭开了深度学习的神秘面纱,它使用了一种动手的方法,带有预先编写的代码,您可以探索和重复使用。不再费力地研究关于抽象概念的定理和证明。在第一章中,您将构建您的第一个深度学习模型,在本书结束时,您将知道如何阅读和理解任何深度学习论文的方法部分。

Python是一种强大的、动态的语言。它不是将所有东西都放入语言中,而是让程序员对其进行自定义,使其适用于他们。FastCore利用这种灵活性向Python特性添加了受我们喜爱的其他语言启发的特性,比如来自Julia的多分派、来自Ruby的Mixin以及来自Haskell的currying、绑定等。它还添加了一些“缺失的特性”,并清理了Python标准库中的一些粗糙边缘,比如简化并行处理,并将NumPy中的想法转化为Python的List类型。

FastCore包含许多功能。有关所有详细信息,请参阅文档,其中包括提供的模块:

有时,您希望为自己或他人创建一个快速脚本。但是在Python中,这涉及到大量的样板和仪式,特别是当您想要支持命令行参数、提供帮助和其他细节时。您可以使用Python附带的argparse来实现此目的,但是它非常复杂和冗长。快速脚本使生活变得更轻松。实际上,这是一个完整的、可工作的命令行应用程序(不需要任何常见的Python样板要求,如if__name__==';main';):

From fast script import*@call_parse def main(msg:param(";the message";,str),up:param(";转换为大写?";,bool_arg)=false):print(msg.。UPPER()(如果UPERSE消息)。

$python示例/test_fast script.pyuse:test_fast script.py[-h][--UPPER UPPER]msgtest_fast script.py:错误:需要以下参数:msg。

FastgPU提供单个命令fast gpu_poll,该命令轮询目录以检查要运行的脚本,然后在第一个可用的GPU上运行它们。如果没有可用的GPU,它会等到有一个GPU可用。如果有多个GPU可用,则多个脚本并行运行,每个GPU一个。这是我们发现的最简单的运行消融研究的方法,它利用您所有的GPU,不会产生并行处理开销,也不需要人工干预。