NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

谷歌大脑小姐姐亲授:如何拿下 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


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

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

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

关注

评论 1 条评论

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

openGauss开源2周年,破解数据库生态痛点

openGauss

仅靠一文便火爆全网!开源阿里绝密Java面试笔记:霸榜GitHub

Geek_0c76c3

Java 数据库 开源 程序员 开发

软件测试 | 测试开发 | 测试开发基础 | Python 算法与数据结构面试题系列一(附答案)

测吧(北京)科技有限公司

测试

SpringCloud版本升级后bootstrap.yml配置不生效

共饮一杯无

Java SpringCloud spring-boot 10月月更

思特奇加入openGauss开源社区,共同推动数据库产业生态发展

openGauss

数据库 开源社区

大数据ELK(十六):Elasticsearch SQL(职位查询案例)

Lansonli

ES 10月月更

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

西柚子

一名在读研究生的自白:我为什么会沉迷于openGauss 社区?

openGauss

阿里P8爆款《SpringBoot+vue全栈开发实战项目》笔记太香了

Geek_0c76c3

Java 数据库 开源 架构 开发

观测云正式加入openGauss社区

openGauss

测试管理和领导力秘诀,12+ BAT 大厂测试经理的干货经验汇总

测吧(北京)科技有限公司

测试

预约直播 | 流批一体机器学习算法平台Alink介绍及应用

阿里云大数据AI技术

深度学习

LinkedList源码分析(一)

知识浅谈

linkedlist 10月月更

拿到字节跳动offer后,又收到了阿里的面试邀请,二面迎来了P9"盘问"

Geek_0c76c3

Java 开源 程序员 架构 开发

云和恩墨:让商业数据库时代的价值在openGauss生态上持续繁荣

openGauss

openGauss社区七月运作报告

openGauss

空间数据库开源路,超图+openGauss风起禹贡

openGauss

.NET现代化应用开发 - CQRS&类目管理代码剖析

MASA技术团队

.net CQRS MASA Framewrok MASA

Arduino ESP32-C3 入门初探

矜辰所致

Arduino ESP32-C3 10月月更 Ard

openGauss社区理事长江大勇:openGauss联合产业界创新,共建开源数据库根社区

openGauss

开源数据库

要求必须使用强密码

源字节1号

建木v2.5.6发布

Jianmu

DevOps 持续集成 jenkins CI/CD gitops

软件测试 | 测试开发 | Python 算法与数据结构面试题系列二(附答案)

测吧(北京)科技有限公司

测试

即时通讯技术周刊(第1期):懒人网络编程系列 [共14篇]

JackJiang

网络编程 即时通讯 IM

九鑫智能正式加入openGauss社区

openGauss

石原子科技正式加入openGauss社区

openGauss

软件测试 | 测试开发 | 测试面试 | 一道大厂算法面试真题,你能答上来吗?(附答案)

测吧(北京)科技有限公司

测试

面试官:说说你对事件循环的理解

CoderBin

JavaScript 前端 Promise Vue 3 10月月更

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

鳄鱼视界

C++学习---cstdio的源码学习分析07-重新打开文件流函数freopen

桑榆

源码刨析 10月月更 C++

UData查询引擎优化-如何让一条SQL性能提升数倍

京东科技开发者

sql 数据 查询引擎 数据服务 udata

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