Ⅰ 算法工程师应该具备哪些工程能力
作者 | 木东居士
来源 | Data_Engineering
最近看了 Milter 的《算法工程师究竟需要哪些工程能力》这篇文章,有所感想,因此也写一篇关于算法工程师的技术能力的问题,和大家分享一下居士关于算法工程师的技术能力的观点。
对于一名优秀的算法工程师,他(她)要具备的不仅仅是出色的技术能力,也要有很深的业务理解能力和对外沟通能力,总之,要求可以很高!
但是,从职责能力的划分上来讲,算法工程师首先是一名工程师,因此本文主要从工程能力要求上进行一些探讨。
开始之前先放一份思维导图,这将是这篇文章要分享的核心内容:
工程能力概览
算法工程师,从名字上我们就能看出,一名算法工程师首先应该具备算法能力和工程能力,我们可以认为这是基础的技术能力。由于现在开源技术的普及,Sklearn、Tensorflow 和 Spark ML 基本已经成为大部分算法工程师标配的工具库了,因此,熟练的调包能力也是决定了一名算法工程师能否快速实现需求。
其次,在真实的生产环境中,算法的落地会遇到各种各样的业务场景和数据环境,这也要求算法工程师需要具备Pipeline 构建能力,将整个生产环境中的数据流和模型打通。同时,在生产环境中,会出现各种“疑难杂症”等待你去解释,比如说为什么实验效果特别差?为什么模型效果不稳定?这就要要求算法工程师需要具备一定的数据分析能力。
很多时候,你会发现,你用在数据分析和Pipeline构建上的精力可能占据了你8成以上的工作内容。
当你具备了上面的能力时,你已经可以称自己是一名算法工程师了。此时,你可以去对着数据分析小得瑟一下:“你看,我能构建整个模型的Pipeline,你却只能拿到别人提供的数据后调调包吧。“或者,你也可以去找开发得瑟:”你看,我懂了很多算法哦,你就只会写代码吧。“
得瑟完之后,我们还是回归正题,算法工程师只具备这样能力是否已经够了?答案当然是不够的。由于不同公司的团队成熟度不同,工具化和流程的成熟度都不同,这就会对算法工程师有不同的要求,比如说模型发布能力和报表开发能力,当然也会有一些其它能力,虽然可能不是特别重要,但是当这些工作没人帮你做的时候,算法工程师可能依然要承担起这些工作内容,比如说灰度测试的能力、负载均衡的能力等等。
将上面的内容整理后,就是这样一份思维导图了(一张图多看几篇更能加深印象,因此我再贴出来一遍)
工程能力详解
一、基础能力
算法能力
算法能力就不多说了,算法工程师的基本能力要求,不懂算法对于一名算法工程师来讲是不太合理的。这里居士把统计学的内容也放进来了。
编程能力
编程能力主要分为两部分:
Python、C++、Java这类编程语言,这三种也是算法工程师需要了解的主流编程语言,一般掌握其一就够,看不同公司。 Sql就是很通用的能力了,Sql也是一门编程语言,而是是数据处理最常用的语言! 很好用。 大数据场景下,要了解Hive Sql。调包能力
大家虽然会调侃调包侠,但是说实话,能调包调的很溜的人,也是不多的,比如说现在让你自己用tensorflow构建一个复杂网络,不能google,你能写出来吗?能记清楚用法吗?
Sklearn Tensorflow Spark ML二、核心能力
Pipeline 构建能力
Pipeline构建能力,这里想表达的更多的是整个数据流的构建能力,数据从日志->特征->模型训练->反馈,这一个链条能否完成的能力,这里面会有很多难题需要克服。比如说:
实时和离线模型一致性问题? 离线和实时特征一致性问题? 实时特征构建的问题? 数据延迟的问题?很多时候,模型发布之类的工作是可以由其他同学支持完成,但是数据流这种问题更多的是需要算法工程师来解决的。
数据分析能力
这里的数据分析能力不是指商业分析或者业务分析,更多的是指特征分析、算法效果分析和各种异常问题定位分析的能力。
很多时候,两个算法工程师能力水平的强弱从数据分析能力上也能窥得一二。
三、辅助技术能力
辅助的技术能力是指,你会不会的影响不会特别大,但是也都是有用的能力,特别是不同公司的发展情况不同,很可能会出现一个算法工程师既要做数据接入、又要做数据清洗、还要做算法平台
也要搞前端、还要负责模型上线、系统运维。
这里就不再细讲了。
思考一
聊一下对技术能力、工程能力和数据分析的思考。
居士个人的理解,技术能力更多的是偏向于一个一个的技术点,而工程能力更多就是在一个团队中将项目做好的能力。很多算法出身的工程能力不行,那么他做的单纯的一个模型是无法应用到实际生产中的,而工程就是指把理论落地实际生产的过程。那么工程包含了什么?它包括了系统架构设计和模块设计、数据流搭建和平台搭建、调包或算法开发、分布式、上线以及各种落地的代码开发。报表和监控,其实本质也是做数据流,边缘性的可能要做些后台和前端的开发。
然后数据分析能力是什么?数据分析(不是纯粹的数据分析)除了分析方法论和套路外,是一个很综合性、相对偏软一点的能力,比如说你通过分析发现了我们的系统有哪些可以优化的点,通过分析发现了问题的原因是什么,这些都是分析能力。
思考二
针对前面的内容,和 Cathy 讨论后,对整个思路做了新的梳理,大家直接看图就好,居士也认为这样描述可能更为合理。
思考三
这里再补充一个模型复现的能力,比如你看了一篇论文,发现这个模型可能很适合自己的业务场景,那么你是否能力将论文里面的模型快速用公司现有的平台和工具来复现?
居士认为,这一个是一个非常重要的能力,但是没有想好具体该怎样划分。
Ⅱ 工程造价计算公式
没有固定的一个公式,工程预算是一个过程,计算的结果就是把预算中各个项目都计算出来,例如单项工程预算,工程建设其他费,预备费,建设期利息,铺底流动资金。
工程预算包括的项目很多如:建筑的地皮 设计 占地 工程前期投入,设备损耗,建筑材料 监理 施工耗时 还有一些不为人知的费用。
1、土地费用:土地取得费用、城市建设配套费、拆迁安置补偿费、登记办证费等。
2、前期工作费:总体规划设计费、可行性研究费、测量费、人防配套费、工程质量监督费、建设工程规划许可证费、施工许可证费等等。
3、房屋开发建设费:建安工程费(包含项较多)、公共配套设施建设费、基础设施建设费等。
4、项目管理费(包含项较多):排污费、治安费等等。
(2)工程算法扩展阅读
工程造价的具体特点:
1、大额性
要发挥工程项目的投资效用,其工程造价都非常昂贵,动辄数百万、数千万,特大的工程项目造价可达百亿人民币。
2、个别性、差异性
任何一项工程都有特定的用途、功能和规模。
3、动态性
任何一项工程从决策到竣工交付使用,都有一个较长的建设期间,在建设期内,往往由于不可控制因素的原因,造成许多影响工程造价的动态因素。
4、层次性
工程造价的层次性取决于工程的层次性。一个建设项目往往包含多项能够独立发挥生产能力和工程效益的单项工程。一个单项工程又由多个单位工程组成。
5、兼容性
工程造价构成的广泛性和复杂性,工程造价除建筑安装工程费用、设备及工器具购置费用外,征用土地费用、项目可行性研究费用、规划设计费用、与一定时期政府政策(产业和税收政策)相关的费用占有相当的份额。
Ⅲ JAVA,做算法和工程有什么区别
做算法,就是实现一个已知的算法,工程是实现一系列功能和特性,算法一般是来辅助功能和特性的有效的手段
Ⅳ 工程数量如何计算
工程数量的计算 工程数量的计算主要通过工程量计算规则计算得到。工程量计算规则是指对清单项目工程量的计算规定。除另有说明外,所有清单项目的工程量应以实体工程量为准,并以完成后的净值计算;投标人投标报价时,应在单价中考虑施工中的各种损耗和需要增加的工程量。 工程量的计算规则按主要专业划分。包括建筑工程、装饰装修工程、安装工程、市政工程和园林绿化工程五个专业部分。 ①建筑工程包括土石方工程,桩与地基基础工程,砌筑工程,混凝土及钢筋混凝土工程,厂库房大门、特种门、木结构工程,金属结构工程,屋面及防水工程,防腐、隔热、保温工程。 ②装饰装修工程包括楼地面工程,墙柱面工程,天棚工程,门窗工程,油漆、涂料、裱糊工程,其他装饰工程。 ③安装工程包括机械设备安装工程,电气设备安装工程,热力设备安装工程,炉窑砌筑工程,静置设备与工艺金属结构制作安装工程,工业管道工程,消防工程,给排水、采暖、燃气工程,通风空调工程,自动化控制仪表安装工程,通信设备及线路工程,建筑智能化系统设备安装工程,长距离输送管道工程。 ④市政工程包括土石方工程,道路工程,桥涵护岸工程,隧道工程,市政管网工程,地铁工程,钢筋工程,拆除工程,厂区、小区道路工程。
Ⅳ 工程比例怎么算法
35/500=1:500/35=1:100/7=1:14.3(这是一个不常用的比例)
Ⅵ 工程计算题
计算平均值=(258.741+258.752+258.763+258.749+258.755+258.770)/6=258.755 计算改正数分别为 -14、-3、8、-6、0、15 单位mm 根据算术平均值中误差公式M=±根号下[VV]/n(n-1)=±根号下[(-14)2+(-3)2+82+(-6)2+152]/(6*5)=4.2mm 相对中误差=4.2mm/258.755m=1/61608