写点什么

谷歌大脑小姐姐亲授:如何拿下 AI 工程师岗位

  • 2018-12-16
  • 本文字数:3591 字

    阅读完需:约 12 分钟

谷歌大脑小姐姐亲授:如何拿下AI工程师岗位

AI 前线导读: 技术人工智能安全是一个有多方面内容的研究领域,在诸如[奖励学习、鲁棒性和可解释性等方面有许多子问题。为了确保随着系统变得越来越强大,人工智能的发展能够继续造福人类,这些子问题都需要得到解决。但并非所有这些问题都可以通过抽象的数学研究来解决。有些问题可以通过具体的编码实验和机器学习原型来处理。因此,一些 AI 安全研究小组正在招聘越来越多的软件工程师和机器学习研究工程师。此外,一些研究小组可能并不是直接负责“人工智能安全”问题,但他们致力于研究相关问题,例如验证神经网络或从用户反馈中学习,他们也需要招聘工程师。


更多干货内容请关注微信公众号“AI 前线”(ID:ai-front)

这些职位的必备要求是什么?

软件工程:AI 安全团队中的一些工程师岗位并不要求机器学习经验。如果你具备以下条件,可能就申请这些职位了:


  • 计算机科学或其他技术领域的理科学士或工科学士学位(或类似的经验)

  • 丰富的软件工程知识(可以通过谷歌软件工程的面试)

  • 对人工智能安全领域的工作感兴趣

  • (通常要求)愿意搬到伦敦或旧金山湾区


如果你是一个对这些岗位感兴趣的软件工程师,那么可能不需要任何额外的准备,可以直接申请这些职位。


机器学习工程和研究工程:一些岗位要求候选人具备实现和调试机器学习算法的经验。如果你还没有机器学习经验,只要你愿意花几个月时间学习,就可以快速掌握必要的技能。在决定这样做之前,你应该确认自己符合以下条件:


  • 计算机科学或其他技术领域的理科学士或工科学士学位(或类似的经验)

  • 丰富的软件工程知识(可以通过谷歌软件工程的面试)

  • 对人工智能安全领域的工作感兴趣

  • (通常要求)愿意搬到伦敦或旧金山湾区

没有经验,如何学习 ML 工程技术?

初步调研

机器学习算法的实现和调试不同于传统的软件工程。以下文章可以帮助你了解自己是否喜欢这种重复性的工作:


机器学习基础

如果你完全没有机器学习方面的经验,那就从熟悉基础知识开始吧。如果你已经有了一些经验,但最近又没有完成实际的机器学习项目,那么熟悉最新的工具(TensorFlow、配备 GPU 的虚拟机,等等)可能会是个好主意。


如果你已经有全职工作或者其他事情在做,那么确实很难找到时间自学,但这并非不可能。这里有几个建议:


可以考虑每周花上几个小时上网课。我们推荐这两门网络课程:



如果你从事全职软件工程工作,那么完全可以在工作的同时学习机器学习基础知识:


  • 如果你在一家大型科技公司工作,可以利用内部培训,包括全职的机器学习轮岗计划。

  • 问问你的经理是否可以把机器学习融入你目前的工作:例如,花 20%的时间学习机器学习,看看它是否可以改进你所在的项目。


对于简单的机器学习问题,笔记本电脑上的 CPU 就足够用了。但对于较复杂的问题,就有必要购买 GPU 或租用一些云 GPU。你可以通过免费试用教育用途 或者通过初创公司的朋友获得一些云计算设备的使用机会。

了解机器学习的实现和调试,并与你想加入的团队的人聊天

在了解了机器学习的基础知识后,接下来要学习的是如何实现和调试机器学习算法。(从其他人的经验来看,我们估计至少需要 200 个小时的全身心投入。如果你基础更差,可能需要更多的时间。)


经验的广度在这里并不重要:你不需要阅读所有的最新论文,或者读完阅读清单提到的所有东西。你也不需要做新研究或者想出新算法。在这个阶段,你也不需要关注安全问题。实际上,只关注那些比较重要的成熟机器学习算法对你的学习来说会更有好处。


你需要做的是实践,亲自实现和调试机器学习算法,为工作面试提供有力的证据,证明你在这方面有丰富的经验。


我强烈建议你在这个阶段与你感兴趣的团队人多互动。给他们发电子邮件,详细说明你打算花多少时间去学习些什么,让他们给你反馈。团队的管理者或许会建议你应该使用哪些资源,帮你避免在与应聘岗位不相干的技能上浪费时间。


获得这种经验最直接的方法是选择一个你感兴趣的机器学习子领域。然后阅读该领域的关键论文,并重新实现这些论文提及的或引用最多的一些基本算法。潜在的子领域以下:


  • 深度强化学习

  • 防御对抗样本

  • 神经网络的验证和鲁棒性证明

  • 可解释性和可视化


如果不清楚该如何开始——例如,如果你没有获取 GPU 的渠道,或者不知道该如何编写 TensorFlow——上面的基础部分中提到的许多资源都可以给你提供有用的提示。


如果你在这个阶段需要辞掉工作才能腾出时间学习,但又没有足够的经济基础来自给自足,那么当EA奖学金再次开放申请的时候去申请吧——他们愿意为这种职业过渡提供资助。

案例研究:Daniel Ziegler 的机器学习自学经验

2018 年 1 月,Daniel 已经具备了牢固的软件工程基础,但只掌握了基本的机器学习知识。他想以研究工程师的身份加入 AI 安全团队,因此他与 Dario Amodei(OpenAI 安全团队负责人)进行了交谈。根据 Dario 的建议,Daniel 和室友一起花了大约六个星期的时间投入深度强化学习。他还花了一点时间复习基础的机器学习知识,并尝试图像和文本的监督学习。在随后的面试中,Daniel 成功加入了安全团队,成为一名机器学习工程师。


Daniel 和他的室友以 Josh Achiam 的深度强化学习关键论文列表作为指导。他们读完了清单中提到的约 20 至 30 篇论文,花 1 个半小时独立阅读,然后用半个小时讨论论文内容。


更重要的是,他们使用 TensorFlow 实现了大量关键算法:


  • Q-learning:DQN 及其扩展,包括 Prioritized Replay 网络和 DDQN

  • 策略梯度:A2C、PPO、DDPG


他们借助OpenAI Gym尝试应用这些算法,从简单的“Cartpole-v0”到 Atari 游戏(如“Breakout-v4”)。


他们在每个算法上花费 2 到 10 天时间(同时运行实验),具体取决于他们想要的深度。对于一些算法,他们只想得到一个可运行的实现。而对于 PPO 算法,他们尝试修复 bug,并且通过调整一些东西,能够接近 OpenAI 给出的基准实现。


对于每个算法,他们先在非常简单的环境下测试,然后移到更难的环境中。注意,有些环境对于一种算法来说可能是简单的,但对于另一种算法来说并不简单:例如,尽管 Cartpole 的环境非常简单,但它的时间线很长,这对于某些算法来说很具挑战性。


在算法某些部分能够运行之后,他们可以通过仔细检查代码并收集测量结果(如平均策略熵)来找出 bug,从而获得更高的性能,而不仅仅是调整超参数。最后,当他们希望算法能够达到 Baseline 的性能时,他们会仔细查看 Baseline 的实现,来了解更小的重要细节,例如如何准确地预处理和正规化观察。


六周后,Daniel 能够流利地谈论强化学习中的关键思想以及不同算法之间的利弊。最重要的是,他能够实现和调试机器学习算法,从读懂论文中的数学到亲手运行代码。回想起来,Daniel 希望他当初能在机器学习概念和数学基础上再多花点时间,但其实整个过程已经让 Daniel 为面试和应聘工作做好了准备。

现在开始申请工作

下面是 AI 安全研究团队的软件工程师岗位的招聘示例,这些岗位不需要机器学习经验:


  • OpenAI 的安全团队目前正在招聘一名软件工程师, 工作内容包括设计人机混合的 AI 训练界面以及为更大的语言模型收集数据。

  • MIRI 正在招聘软件工程师

  • Ought 正在招聘研究工程师, 重点关注对函数式编程、编译器、程序分析和相关主题感兴趣的候选人。


下面的招聘岗位需要具备机器学习经验:


  • DeepMind 正在为其技术 AGI 安全团队、安全和鲁棒人工智能团队(致力于神经网络验证和鲁棒性)以及潜在的其他岗位招聘研究工程师

  • 谷歌 AI 正在全球范围内招聘研究软件工程师。 虽然谷歌 AI 没有“AI 安全”团队,但主要研究方向为鲁棒性、安全性、可解释性,以及从用户反馈中学习。

  • OpenAI 的安全团队正在招聘机器学习工程师来研究价值对齐和可解释性。

  • 伯克利大学 Human Compatible AI 中心正在招聘机器学习研究工程师, 为期 1 到 2 年的访问学者职位,工作内容为在深度强化学习系统上测试价值对齐想法。


当你向一个有多个研究领域的大型企业提出申请时,在你的申请中需要指出你最感兴趣的是哪个领域。要提前调查公司的研究领域,以确保你列出的领域是公司所研究的领域。例如,如果一个公司没有研究人员在进行“价值对齐”研究,那么就不要在申请中写“价值对齐”。


如果你现在无法得到一个安全研究领域的工作,可以先找一份能让你获得相关经验的工作,然后过渡到安全研究的职位。


其他企业AI实验室也提供与安全无关的研究工程职位,尽管这些职位可能比 AGI 安全团队的角色更有竞争力。


最后,你可以考虑申请谷歌OpenAIFacebookUber微软的 1 年奖学金项目。


查看英文原文:


https://80000hours.org/articles/ml-engineering-career-transition-guide/

会议推荐:

AICon


2018-12-16 07:002588
用户头像

发布了 52 篇内容, 共 32.3 次阅读, 收获喜欢 73 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

python版本管理工具DVC

AIWeker

人工智能 版本管理 11月月更 dvc

《2022开源大数据热力报告》发布,Flink 摘得「流处理」领域热力值 TOP1

Apache Flink

大数据 flink 实时计算

Flink Forward Asia 2022 主论坛概览

Apache Flink

大数据 flink 实时计算

AI简报-重参数化RepVGG

AIWeker

深度学习 AI简报 11月月更

华为云桌面Workspace,让云上工作更高效!

路过的憨憨

细说值传递、引用传递和地址传递

闫同学

编程语言 计算机基础 11月月更

深度学习-浅谈keras的扩展性

AIWeker

深度学习 keras 11月月更

【React技术】JSX在企业级项目的运用and一个元素渲染demo

恒山其若陋兮

前端 11月月更

支持向量机-ROC曲线中的概率和阈值

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

制造业要用龙头带动整条产业链发展,阿里云智能制造加速器首次集结

B Impact

一文了解 Go 标准库 strings 常用函数和方法

陈明勇

Go golang 字符串 11月月更 strings

2022-11-29:查找重复的电子邮箱。以下数据中a@b.com是重复的,请写出sql语句。 DROP TABLE IF EXISTS person; CREATE TABLE person (

福大大架构师每日一题

数据库 福大大

【web 开发基础】PHP中的数组 (41)

迷彩

php 数据结构 11月月更 关联数组 索引数组

Flink CDC 2.3 发布,持续优化性能,更多连接器支持增量快照,新增 Db2 支持

Apache Flink

大数据 flink 实时计算

支持向量机-SVC的模型评估指标

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

华为云大数据平台,助力企业数字化转型成效明显

路过的憨憨

Python 操作Excel(xlrd和XlsxWrite)

度假的小鱼

11月月更 Python xlrd读取Excel Python xlrd

读《程序是怎样跑起来的》体会

听风go

读书笔记 后端 计算机 计算机原理 读书总结

Python 操作Mysql

度假的小鱼

pymysql 11月月更 Python操作Mysql

【web 开发基础】PHP 中数组的定义 (42)

迷彩

数据结构 数组 11月月更 数组的定义

【React技术】开发过程中遇到State和生命周期方法在类里面的运用

恒山其若陋兮

前端 11月月更

【web 开发基础】PHP中多维数组的声明 (44)

迷彩

数据结构 一维数组 二维数组 11月月更 多维数组

「Go易错集锦」正确使用defer避免代码重复

Go学堂

golang 程序员 个人成长 defer 11月月更

基于 Apache Flink Table Store 的全增量一体实时入湖

Apache Flink

大数据 flink 实时计算

“后 Hadoop 时代”,大数据从业者如何应对新技术趋势带来的挑战?

Apache Flink

大数据 flink 实时计算

【web 开发基础】PHP中使用array()语言结构新建数组(43)

迷彩

数据结构 array 11月月更 array() 新建数组

python小知识-内置方法和属性应用:反射和单例

AIWeker

Python python小知识 11月月更

【web 开发基础】PHP中数组的遍历(45)

迷彩

数据结构 数组 foreach 11月月更 数组遍历

Python 操作mongodb库

度假的小鱼

mongodb 11月月更 Python 操作mongodb库

投入上百人、经历多次双 11,Flink 已经足够强大了吗?

Apache Flink

大数据 flink 实时计算

【web 开发基础】PHP中的预定义数组(46)

迷彩

php web开发基础 11月月更 预定义 超全局数组变量

谷歌大脑小姐姐亲授:如何拿下AI工程师岗位
_AI&大模型_Catherine Olsson_InfoQ精选文章