ML:机器学习工程化之团队十大角色背景、职责、产出物划分之详细攻略
背景:在机器学习团队的组建过程中,我们需要具有系统的工程化思考方式与角色设定,以尽可能的避免“技术债务”与“软实力欠缺”引起的潜在的“技术灾难”与“交付灾难”。
机器学习团队十大角色背景、职责、产出物划分
Minimum Viable Product,MVP,最简化可实行产品。
1、Product Manager******/**产品经理—A1角色
背景
机器学习算法由一项“技术成果”→“可落地交付应用的“产品”,实现满足客户功能需求的同时,在可接受的指标范围(精度、速度等)内稳定交付运行这一商用目标。
职责
(1)、****紧跟行业动态,结合公司能力,探讨产品创新
(2)、提供产品解决方案:负责具体产品设计,竞品调研分析,结合运营数据提出优化方案并设计产品功能,提供产品/项目解决方案
(3)、对客宣讲交流、招投标文件编写:配合销售/解决方案架构师等前线角色,
(4)、产品/项目落地交付:达成业务收入
(5)、产品迭代管理,提升用户体验
主要工作产出物
(1)、PRD产品需求文档:包括流程图等
(2)、产品白皮书/售前文档、招投标文件
(3)、项目解决方案
优秀特质
(1)、****洞察力:没有比较科学的“先验知识”,大多只能通过产品结果去做后验。提高洞察力,没有捷径,只有对目标领域做深度认知,不断思考、深度思考,反复推演。
需求挖掘:如何发现“潜在”需求,很多时候“隐性需求”或更有价值。
需求判断:识别“伪需求”,寻找驱动需求产生的“本质”。
需求分析:需求背后的“动机”是什么,需求的“场景”是什么,需求的“因果链”是什么。
用户识别:是否找准了“真实”用户,“典型用户”需求是否具有“普适”性。
价值分析:需求实现对用户、产品的价值,产品实现后对用户的价值。
(2)、风险预知力:模型预测错误的后果是什么?
风险分析:需求实现的代价、周期及需求消退周期。
(3)、敏感力:对用户产品体验敏感
工作流程
(1)、需求调研/分析
(2)、产品设计/产品解决方案定义
(3)、项目解决方案定义
(4)、产品开发过程管理
2、Project Manager/项目经理—B1角色
公司在某些技术领域,比如“人脸识别”、“车辆识别”、“语音转文字”、“目标检测”等技术方向取得了比较好的精度,基本达到或者超过了 SOTA(State-of-the-art)水平,具有商业化落地应用的可能,也会有一些行业客户咨询相关技术的应用情况,更坚定了商业化信心。
背景
当我们完成产品开发,或者产品可能还是半成品或者仅仅是MVP,在向政企客户成功销售后,那么项目就需要正式启动了。
产品经理和项目经理分别作为产品和项目的“总经理”,是实现技术→产品→落地交付的最核心的中坚力量。既有各自独立完成的部分,又有共同协作完成的部分。
职责
项目经理需要完成管理、协调、控制、交付等项目生命周期内的工作。但是,事实上,在实际操作层面,大量存在“以项目养产品”的情况。
(1)、制定项目计划:充分理解目标,制定实施计划;
(2)、****按计划完成项目预定目标的交付:协调内外资源,跟进执行进度,控制风险,为端到端交付负责;
(3)、项目周会:组织项目各项评审会议及项目例会
(4)、协调和跟进落地:内外部合作事项落地
主要工作产出物
(1)、项目文档
(2)、项目解决方案
(3)、项目交付方案
优秀特质
(1)、产品感的洞察力:尤其是人工智能相关的项目,项目经理除了管理能力外,还需具备产品经理的“产品感”与“洞察力”。
工作流程
项目解决方案
项目实施计划、项目交付(实施)方案
需求调研
项目管理
平衡好项目管理“铁三角”
如何去快速实现商业化的产品?
那么,如何去实现商业化的产品?对于技术驱动的公司,大概率是没有相关完备产品与行业解决方案的知识储备,所以,需要在政企客户的市场小步快跑,走“捷径”,快速形成产品、解决方案与产品矩阵。基本过程如下:
(1)、借鉴同行解决方案作为本方案基础
按照客户需求,在行业对标中,寻找竞争对手现有产品与方案内容组成、产品架构、技术架构以及核心功能。
(2)、业务与技术团队定义解决方案
解决方案的路线,必须具有足够的竞争力。
(3)、业务与产品团队设计PPT方案
解决方案的PPT,必须具有高水准。
(4)、快速完成Demo和MVP的开发
基于公司技术积累、历史案例、现有产品,结合用户核心需求及其痛点,快速完成Demo和MVP的开发。
(5)、组建需求团队
经过投标拿下项目后,接着组建项目团队。
在项目团队中,会特别安排产品经理与解决方案团队的部分成员,组成“需求团队”。
(6)、总结产品需求
基于合同内容要求,结合现场用户需求调研,获取一手需求,同时分析行业竞争对手的产品功能。
项目经理带领“需求团队”,完成既能满足项目交付,又足够具有行业通用性的“产品需求”—这是比较理想的状态,实际操作中各中痛苦,冷暖自知。
(7)、确定架构和技术路线
需求团队与架构团队共同讨论确定三件大事:
产品基础/通用/支撑功能,
产品特性功能,
项目功能,
基于这种认识,开始设计架构层面与选择技术路线;强调一下,项目是有时间限制的,不能为了追求“理想”忽略了进度。
(8)、项目正式开发(分支/合并)
研发团队快速完成在 master(Dev)分支,完成第一部分基础和通用功能开发;
然后,分支出“pd-xx”进行项目所需的产品特性功能开发,测试合并入master后;分支出“pj-xx”进行项目功能的开发。
在项目开发未完成前,产品分支的开发依然是服务于项目的,以便快速合并。
(9)、完善和拓展需求
鉴于单一客户的需求必然有一定片面性与局限性,在做项目开发同时,需求团队需要进一步研究行业需求,快速对产品部分的需求做出更新与完善。
(10)、构建完整的项目版本和产品版本
理想状态下,项目交付后,在我们的版本控制系统里就有一个完整的项目版本和一个基本成熟的产品版本,这样就实现了以项目养产品,同时最大限度的降低了研发周期与成本。
3、Business Consultant******/**业务咨询顾问(配合PM)—角色概念—A2角色
背景
业务咨询顾问更多的是一种“角色”概念,并非所有公司都会设置专职岗位。一般情况下,业务咨询顾问角色由两类人员担任。
第一类,业务专家,在目标行业领域具有丰富工作经验,作为业务专家参与业务咨询工作;
第二类,社会新人,有志于成为业务咨询顾问,一般从熟悉模块功能、参与业务需求调研开始培养,视个人发展意愿,后期会向产品经理、项目经理或者销售方向转岗。
职责
(1)、沟通业务和市场需求
(2)、整理行业解决方案:对现有方案进行评审、反馈
(3)、****配合PM
设计需求文档:配合产品经理/项目经理完成产品/项目的需求调研,并形成对应的需求文档;
设计售前咨询方案****PPT:配合销售经理,完成项目的售前咨询与产品/方案介绍,并形成售前咨询方案/PPT;
出产品方向建议:行业/竞品分析,了解发展趋势与动态,给出产品方向性建议;
主要工作产出物
(1)、需求调研报告→PRD
(2)、解决方案
优秀特质
工作流程
需求调研
解决方案
业务分析
4. Data Scientist/数据科学家—C1角色
背景
数据科学家是进几年新兴的一个工作岗位,不同的公司、行业领域对于“Data Scientist”这个角色的定义可能不尽相同,但做为一个跨学科的职位,总体来说具有以下工作内容:
职责
(1)、****参与项目售前咨询
(2)、****数字化创新和解决方案制定和实施
****(3)、挖掘数据价值****:数字驱动给客户带来价值,创新性实现业务需求。数据处理与数据分析,商业价值分析与汇报。进行复杂的建模并从中发现数据的商业价值与意义。
****(4)****、指导建模:应用各类的统计建模、机器学习和深度学习方法解决实际问题。主要参与ML的工作,通过数据分析指导业务建模、模型训练。
主要工作产出物
(1)、数据分析报告
(2)、Models
优秀特质
(1)、数据敏感能力:
(2)、总结能力:能对发掘价值进行总结与宣讲。
(3)、****表达能力:有良好的书面、口头沟通、汇报能力
工作流程
5. ML Researcher/机器学习研究员—C2角色
背景
研究员的主要任务更偏向于前瞻性的探索与研究,跟踪行业技术趋势,解决新场景下的建模问题,进行算法的精度与性能调优以及思考、推动算法的应用与落地。
职责
(1)、技术追踪:前瞻性研究与跟踪技术趋势,提出创新性的idea;
(2)、可行性论证:算法落地应用可行性论证、项目可行性论证
(3)、架构设计:推理系统架构与设计
(4)、****模型训练、算法调优
主要工作产出物
(1)、Models
(2)、Paper
(3)、分析/评估报告
优秀特质
工作流程
6. Data Engineer/数据工程师—C3角色****
背景
数据工程师的主要任务是维护数据pipelines,完成 data management pipeline 的数据抽取、聚合、清洗、存储以及自动化流水线的监控工作,确保后续 ML工作的数据可用性。
职责
(1)、开发项目中数据存储设计、开发和性能优化工作
(2)、数据聚合/存储→数据”建模****”:此处的数据模型是指数据库中的table
(3)、取数→数据清洗→数据挖掘
(4)、数据****监控
主要工作产出物
(1)、数据库/数据仓库
(2)、sql取数相关代码
优秀特质
工作流程
7. ML Engineer/机器学习工程师—C4角色****
背景
机器学习工程师一般在数据科学家和研究员的工作基础上,进一步进行模型的训练与调优,以匹配项目/产品设定的技术指标,并完成推理系统与模型的部署以及与业务软件系统的集成。
职责
(1)、解决需求:利用数据挖掘/机器学习/深度学习等相关算法,解决核心业务需求
(2)、算法选型→工程实现→****优化创新:模型训练、算法调优
(3)、****推理系统部署:模型部署、推理系统接口开发
(4)、****软件系统集成:推理系统,与软件产品集成
(5)、构建机器学习工具和代码库
主要工作产出物
(1)、Models
(2)、推理系统
(3)、软件集成
优秀特质
(1)、编码能力:对于机器学习工程师来说,具备一定的代码实现能力以及掌握一种主流的后端开发语言(Java、C#、.NET Core、C++、Go 等)是有必要的。
工作流程
8. DevOps Engineer**/**DevOps工程师—C5角色
背景
DevOps 的理念已经得到了广泛的认同与实践,相关工具链从开源免费到闭源商用、从私有化部署到 SaaS 服务,极为丰富与完善,当选项太多后,如何选择与应用成了一个新问题。选择适当的工具实现过程自动化,DevOps 其中涉及的知识点与技能栈的要求相对较高,所以 DevOps 工程师诞生了。
职责
(1)、构建DevOps 流程:并分析、优化 DevOps 实践
(2)、搭建基础设施平台:DevOps pipeline工具链的选型,部署、维护与监控
(3)、建立持续的 CI/CD****环境:加速软件开发和部署过程,规避风险
主要工作产出物
(1)、DevOps 文化引导
(2)、DevOps 基础设施平台
(3)、用户私有化环境的产品部署
优秀特质
工作流程
9、Software Develop Engineer****/软件开发****工程师—D1角色****
如前述,本文主要探讨的是机器学习方法的任务,所以对于Traditional Software Engineering部分所涉及的不同角色,比如:架构师、UI、UE、前端、后端、移动端及功能测试、自动化测试等,全部合并为“Software Develop Engineer(SDE)”统一指代。
背景
对于软件开发工程师,实际上,做为一个产品或者项目交付的系统来说,机器学习/深度学习的model部分的时间占比重并不高,更多的是偏向于传统软件工程的架构、工具、数据、代码等内容,而这部分内容是 SDE 团队更加擅长和熟悉的。
职责
(1)、****架构设计
(2)、接口设计:APIs、MQ、JSON 等规约内容提前约定、设计;
(3)、****软件(前/后端)开发、测试
主要工作产出物
(1)、与DL推理系统集成
(2)、软件产品
优秀特质
工作流程
对于 SDE 部分的工作内容,不做过多介绍,大家都非常清楚分工、工作内容与交付物。对于涉及到深度学习的部分,有如下建议:
(1)、对于 CV 类的项目有可能 Web 页面需要展示实时视频流与标注框,提前约定好:
A:传坐标前端绘制;
B:推理平台OpenCV绘制标注框,以及是否需要转码为视频流;
(2)、还需评估抽帧后的前端展示效果,是否满足需求;
(5)、业务端对 DL Servin端的调用需求、任务等接口设计;
10. Delivery Engineer/交付工程师—D2角色****
背景
在传统的软件交付领域有这种“共识”——三分软件,七分实施。
交付环节对于软件项目来说,是非常、非常、非常重要的,千万不可轻视。这项工作,绝非安排一个项目经理,带上几个刚毕业愿意出差、能吃苦的小孩就可以顺利完成的。
再考虑到深度学习部分带来的项目技术概念复杂性、结果不可预测性、不可解释性,会使得项目交付工作更加艰难,更需要有专业化的团队去完成交付工作。
职责
机器学习项目的落地交付环节,是在项目经理的带领下,由一批具有各种不同技能与能力的交付工程师组成团队,完成项目交付与实施工作。
(1)、****项目需求调研
(2)、****现场测试、实施
(3)、完成项目交付、验收
(4)、完成软件系统的客户培训、技术支持:解决客户遇到的问题
主要工作产出物
(1)、项目需求调研报告
(2)、项目计划、实施方案
(3)、项目过程文档
(4)、产品开发交付文档
优秀特质
(1)、情商:沟通、协调与项目管理的能力、需求沟通与需求判断能力,
(2)、知识储备:行业理解、流程认知与行业专属名词熟知程度
(3)、文案功底:公文写作与汇报能力
(4)、技术能力:系统架构评估与代码实现评估能力,机、网络、存储等系统集成的工程与技术能力
(5)、综合能力:开会能力、风险管理能力,问题定位与排查能力;抗压能力与心里素质;综合布线、施工管理及与工人沟通能力;变通能力与处事灵活性
工作流程
(1)、项目需求调研
(2)、制订项目交付计划、策略
(3)、系统部署与现场测试
(4)、培训用户使用
(5)、上线后监控
参考文章
AI 项目落地应用指南--3.机器学习项目团队组成 - 知乎
版权归原作者 一个处女座的程序猿 所有, 如有侵权,请联系我们删除。