欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

来自顶尖AI研究员的忠告:这四个坑千万别踩!

程序员文章站 2022-05-23 19:41:36
机器学习实在太受欢迎,以至于它都被当做了AI本身,热度更高的深度学习更是如此。令人高兴的是,你的创业团队已经获得了资金,或者你的团队预算刚刚获得了通过,现在你即将开始进入深度学习领域。之前,你已经从K...

机器学习实在太受欢迎,以至于它都被当做了AI本身,热度更高的深度学习更是如此。令人高兴的是,你的创业团队已经获得了资金,或者你的团队预算刚刚获得了通过,现在你即将开始进入深度学习领域。

之前,你已经从Keras, Imagenet等人工智能技术中感受到了快乐,这很令人兴奋!可是,当你真的要在商业上开始实践人工智能的时候,那么有几件事是你必须要考虑的。

来自顶尖AI研究员的忠告:这四个坑千万别踩!

接下来,我会结合几个例子来阐述我的建议,这些例子都是我去年早些时候和George Hotz一起在comma.ai研究自动驾驶时发生的。

来自顶尖AI研究员的忠告:这四个坑千万别踩!

救命,AI!我该往哪走?

1、别让数据和工程师脱节

深度学习是一项数据先行的科学。你的团队或者创业存在的全部意义就是为了让这些数据变得有意义。想想看,你只有将文字变得有意义,你才能研发你的人工智能比特币聊天机器人!你只有理解图像、视频等内容,你才能打造下一个Snapchat Stories式的自动化多媒体拼贴。

你应该把数据处理当做你工作的一个核心。一定要在这方面做好它。例如,如果你觉得“只需要15分钟”来准备和加载数据集,那么每次当你发现了更好的模型架构或者在你的Tensorflow代码中发现了漏洞的时候,都必须要白白等待这15分钟的时间。

规则很简单。版本化你的数据集,并且预处理一次,之后反复使用。一些类似Celery、Luigi这样的工具会是你的好帮手。

如果你是在一个大型的团队工作,团队中的所有任务都需要提交到一个集群,这时应该考虑一个数据解决方案,向模型训练的员工批量提供数据。千万千万不要让团队中的成员在已经知道模型有漏洞的情况下,还必须等到整个数据集都加载完毕才能修改。

小故事:comma.ai可能拥有世界上第二或第三大的驾驶数据集。在comma.ai的早期岁月,为了训练驾驶模型,需要加载时长数小时的视频到拥有700多Gb内存的大型机器上。每当George需要更多数据来训练的时候,他都会立刻增加100gb的内存。我加入的主要工作就是要为这个模型开发一个更好的版本,不过我并不想等15分钟来加载数据。相反,我从一个简单的ZMQ服务开源项目中获得了一些内容。从此,再也没有任何数据让我们干着急了,我们可以扩展我们的训练规模,并且使用更便宜的机器。现在对模型训练的限制,只剩下GPU和它的研发者了。

2、从你能可视化的东西开始

对深度学习而言,我们很幸运有Tensorboard、最近推出的Visdom、以及其他的一些工具来帮我们可视化结果。我相信数据科学一般来说是最适合可视化驱动开发的,因为可视化让你在研发的每一步都能正确处理你所遇到的问题。你没有必要非得学习d3.js来获得有用的可视化,除非你是JavaScript的*爱好者。

小故事:在我的离职谈话中,我咨询George的意见,希望获得一些提升工程师效率的建议(相信我,他是我见过的人当中最有效率的,我会抓住每一个机会向他学习)。他的建议是先构建一些东西出来,让这些东西能够可视化我在做的事情。George本人曾经就是这么做的。此外,George 所有的IPython笔记本都有一个滑动小部件,可以在原型设计中迅速显示参数如何影响结果。

3、尽早明确你的验证/疑难案例数据集

我把充满乐趣的可视化内容放在第二位,是为了让你被“准备数据”吓到之后,能稍作休息。可是,如果你想避免成为一只打字机上的猴子,只会随机往神经网络上添加更多的层,你必须要学会如何衡量进度。

问问自己哪些指标与优秀的可交付成果的相关性更好,以及你应该跟踪哪些数据。

这或许超过了简单的“随机验证10%的剩余数据”。验证的数据库最好与产品拥有相同的统计属性。同样的产品也能被用于追踪疑难、边缘甚至失败的案例,以制作未来的验证集。因此,你的验证集或许会不断发展,而且应该像训练集一样进行版本化。

小故事:我了解到,对于自动驾驶而言,那些在驾驶过程中你必须对车辆进行人为控制的时刻,就是疑难案例和验证集。但是,最好的验证测试是让一名经验丰富的控制工程师上路,以精确地判断自动驾驶系统的质量。如果你在这个行业之中,最好去特斯拉挖工程师过来(开个玩笑)。

4、过早的扩张是早期创业公司倒闭的主要原因

听到这个建议,你也许会说“别试着教我这些,我听过的创业故事肯定比你多!”诚然,但这里要告诉你的新事物是:你应该把GPU和硬件训练当成和员工同样的因素来考虑。一旦你雇佣/购买了超过你所需要的,你将花费很多的精力来安排多出来的资源。管理集群会很困难,而且深度学习的大规模HPC本身就是一个研究课题。

我在这里的建议是:在你想买一个新的GPU之前,你应该保证你所有的GPU都被充分利用。你当然可以像Google一样大手大脚,前提是你的生产力和盈利能力能像Google一样。

如果你的团队和公司已经足够大,要严肃认真地招聘那些在基础设施上工作的员工。如果你雇佣了10倍于硬件员工人数的研究人员,却让他们*等待,那么最好的情况是他们自己建立适合自己的基础设施,最坏的情况则是他们干脆直接退出。这肯定不是你想见到的状况。

小故事:当我有一次离开办公室却没有让我所有的GPU运转的时候,Niel(comma的手机APP副总裁)给了我一个非常失望的神情,这甚至都让我有了“空闲GPU恐惧症”。在今天,这已经成为了一个非常普遍的问题。

没错!在人工智能领域工作既富挑战性,又充满了乐趣。确保你对如何处理资源和可视化有一定的思考,那么你会没事的。