CS194 Full Stack Deep Learning(4) Machine Learning Teams
其他
2021-03-18 18:44:59
阅读次数: 0
0. 前言
相关资料
B站视频 (字幕是自动生成的,但也差不多够用)
组建一支机器学习团队非常困难
一方面,组建任何技术团队都很困难。需要雇佣、管理员工,并提供上升通道,确保团队长期输出以及技术选择以及取舍,对领导层做好期望管理。
另一方面,机器学习团队又有一些其他复杂工作,比如顶尖人才少且很贵,团队指责非常多,项目有很多不确定性、时间不好把握,技术发展太快、难以把握,管理层往往不了解技术本身。
主要内容包括:
机器学习相关的岗位和需要具备的技能?
一个机器学习团队的人员构成是怎样的?不同级别的团队做的工作有什么不同呢?
怎样管理一个机器学习团队?
如何招聘机器学习工程师?怎样成功拿到offer?
1. Roles
指责
工作内容
工作产出
常用工具
产品经理
连接用户、业务以及算法团队,推进项目的进程
设计文档,工作计划,绘制架构图
Jira
开发测试工程师
开发、部署产品
部署产品
AWS
大数据工程师
构建、管理数据,如构建数据流水线、存储、监控等
分布式系统
Hadoop/Kafka/Airflow
算法工程师
训练、部署模型
实际业务场景(产品)中的预测系统
Tensorflow/Docker
算法研究员
训练模型(一般与不是产品级的模型)
预测模型以及研究报告
Tensorflow/PyTorch/Jupyter
数据科学家
上述职位的总称
预测模型以及报告
SQL/Excel/Jupyter/Pandas/SKLearn
每个岗位需要的技能
横坐标是机器学习要求,纵坐标是工程能力要求,圈的大小代表沟通/文档能力
2. Orgs
上面提到了一个机器学习团队中有很多角色,本节的内容就是:整个团队如何协调工作。
机器学习团队原型
类型
什么样
举例
优势
劣势
Nascent
没有机器学习相关职位,就算有也是临时性的工作,没有太多经验
大多数中小型公司,以及一些不是技术导向的大公司
一些简单的ML应用就能有较好的回报
对ML支持不够,很难招人、留人
ML R&D
机器学习主要在研发部分,一般招人根据内部数据写材料,作为内部参考或发论文
大型石油、制造业、电信企业
喜欢招有经验的研究人员,可以做一些长期研究
大多数这样的部分都失败了,主要原因是数据很难获取,投资少,很难获得很好的商业价值
产品/业务中的ML
ML是某几个业务线内的,ML工程师直接向工程团队主管汇报
软件公司、金融企业
算法提升能够直接业务价值,有很好、很快的反馈
很难招顶级人才,也很难提高算法能力,算法项目周期与软件项目周期很难匹配,从长期看很难真正体现、证明ML的价值
有独立的ML单元
ML部分直接向管理层汇报,ML产品经理与ML工程师一起工作,有长期研究计划
大型金融服务公司
容易雇佣、培养人才,容易获取数据以及计算资源,可以花时间研究ML相关工具、实践等
模型切换到商用比较困难,可能需要让模型用户进行一些培训,反馈可能比较慢
ML-First Organizations
管理层认可自身是AI公司,ML部分研究有挑战性、长期的项目,在所有业务线都有ML相关
顶级科技公司,以及一些AI初创公司
数据获取方便,ML团队在研究最有挑战性的问题,最容易将成果转换
功能很难实现,很难招到人,很贵,也很难创造这样一种环境(所有人都有 ML Thinking)
机器学习团队上有很多定位上的问题
需要投入多少精力到软件研发
数据由谁收集、清洗、管理等
模型由谁部署、维护
3. Managing
管理机器学习团队非常困难
很难判断一个任务的难度:本周有很大进展,不代表下周也能有类似的提升
机器学习项目不是线性的:
很有可能几周都没有任何进展(尝试了一些东西,都没用)
很难制定计划、确定时间线,因为也不知道哪些有用哪些没用
算法工程师与软件开发工程师之间有一些区别
管理层不了解机器学习
如何更好的管理机器学习团队
设置机器学习项目时,按照概率来设置目标。
对一个问题需要尝试多种方法
根据输入来判断进展,而不是结果。
比如有很多种方法,要看看你尝试了多少种方法,每种方法的效果怎么样
让算法工程师和软件工程师一起工作
实现端到端系统,来看看效果如何
对管理层进行一些良好沟通,告诉他们机器学习工作进展是不确定的
如何设置概率来设置项目目标
下图中第二个子图,为了完成任务D,需要实现任务A,但A不一定能成功(50%概率成功),所以还要研究替代方案B和C
对不了解机器学习的管理者来说,有什么比较好的学习资料
4. Hiring
正确的招人方法(算法工程师)
先要求软件技能,再要求机器学习能力,要求热爱学习。然后再培养
找新人,有ML经验的CS本科生。
对需求更加具体一些,不是所有算法工程师都需要研发技能。
正确的招人方法(算法研究员)
有价值的论文
不知道该怎么翻译,Look for researchers with an eye for working on important problems (many researchers focus on trendy problems without considering why they matter)
招有工业经验的
考虑招其他专业的优秀人才
如何招人
有优点,其他方面满足基本要求即可
要面试什么内容
满足职位的基本要求
其他方面满足基本要求,如软件工程师的ML能力,研究员的代码能力
找工作
转载自 blog.csdn.net/irving512/article/details/114797827