加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮南站长网 (https://www.0554zz.cn/)- 管理运维、图像技术、智能营销、专属主机、5G!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

枪支交换网站发生数据泄露

发布时间:2021-02-15 16:39:14 所属栏目:外闻 来源:互联网
导读:大规模算法运行 分布式训练 在很多项目中,数据量达到十亿级以上的情况下,单机训练会难以支撑。因此分布式训练也是实际工程落地中非常重要的一个主题。分布式训练涉及到多机的通讯协同方式,优化算法的改造,数据及模型的并行与聚合,以及框架的选择和运维
大规模算法运行
 
分布式训练
 
在很多项目中,数据量达到十亿级以上的情况下,单机训练会难以支撑。因此分布式训练也是实际工程落地中非常重要的一个主题。分布式训练涉及到多机的通讯协同方式,优化算法的改造,数据及模型的并行与聚合,以及框架的选择和运维等话题,具体可以参考《分布式机器学习》。另外对于分布式系统,也可以参阅《数据密集型应用系统设计》这本神作,了解其背后原理。
 

 

  • 自我考核:能够在多机上进行亿级数据的 GBDT 模型训练与预测。

 

 
高性能计算
 
在做大规模的数据训练与推理时,近些年涌现出许多高性能计算优化的方法,例如从硬件方面,有各种超线程技术,向量化指令集,GPGPU,TPU 的应用等,从软件方面,有针对数值计算场景的 OpenBLAS,有自动并行化的 OpenMP,有各种 codegen,JIT 技术下的运行时优化等。这方面可以学习的方向也很多,从基础的并行编程,编译原理及优化的知识开始,到 CUDA,OpenMP 的应用(例如 Nvidia 的 cuDNN,还有 LightGBM 中也用到了 OpenMP),Codegen,JIT 等技术在 Spark,TVM 等项目中的使用等,建议有深度性能优化需求时可以往这些方向做调研和学习。
 

 

  • 自我考核:能够通过 LLVM JIT 来优化实现 Spark window function 的执行性能。

 

 
模型加速领域
 
这个方向分两个部分,一块是模型训练方面,能够做到加速,例如使用大 batch size,迁移学习,持续的在线 / 增量学习等手段,另一块在模型预测方面,也有很多加速需求,比如模型参数量优化,模型压缩,混合精度,知识蒸馏等技术手段,都是为了做到更高性能,更低资源消耗的模型预测推理。这方面业界有各个方向的文章和技术实现可以参考,比如经典的《Training ImageNet in 1 Hour》,MobileNet,TensorRT,二值网络等。
 

 

  • 自我考核:在典型的销量预测场景中实现增量训练与预测。

 

 
MLOps
 
编排调度
 
包含各类 pipeline 的编排与调度能力的支持,包括数据 pipeline,训练 pipeline 和 serving pipeline 等。这方面比较常用的框架工具有 Airflow,DolphinScheduler,Cadence 等,需要掌握其基本的工作原理和使用方式,并能够应用于离线实验与线上运行。
 

 

  • 自我考核:使用 Airflow 完成一个标准的项目 pipeline 搭建与运行。

 

 
数据集成
 
相对于传统的 DevOps,机器学习项目最大的区别在于数据方面的依赖会更加显著与重要。这方面的话题包括数据血缘,数据质量保障,数据版本控制等,有各类工具可以借鉴使用,例如数据版本管理方面的 DVC,数据质量方面的 TFX Data Validation,Cerberus,Deequ 等。在方法论层面,《The ML Test Score》中给出了不少数据相关的具体测试方法,值得参考学习。
 

 

  • 自我考核:在项目中实现输入数据的分布测试,特征工程测试及特征重要性准入测试。

 

 
实验管理
 
这部分也是 ML 项目的独特之处,在开发过程中有大量的实验及相应的结果输出需要记录,以指导后续调整优化的方向,并选择最优结果来进行上线部署。这方面可以参考的项目有 MLflow,fitlog,wandb 等。当然对于单独的项目来说,可能 online Excel 就能满足需求了 :)
 

 

  • 自我考核:在实际项目中实行一套标准的实验记录手段,并能从中找出各类实验尝试带来的精度提升的 top 5 分别是哪些操作。

 

 
Serving
 
目前我们的 serving 大多数是离线 batch 预计算的形式,所以主要依赖的技术手段是各类离线 inference 的方法,例如直接使用 model predict 接口,使用 mmlspark 等做大规模并行 inference 等。如果涉及到在线 serving,情况会更加复杂,例如在线 pipeline 的运行,实时特征获取,low latency/high throughput 的 serving 服务等,可以参考 TF Serving,MLeap,H2O,PredictionIO,PMML/PFA/ONNX 等开发标准模型格式等。
 

 

  • 自我考核:部署一个实时预测服务,能够根据用户输入产生相应的预测结果。

 

 
CI/CD
 
软件工程中的持续集成,持续部署已经成为一种标准实践,在算法项目中,额外引入了数据这个维度的复杂性,带来了一些新的挑战。在这个方向上,几个主要话题包括自动化测试,pipeline 打包部署,持续监控运维等,可以参考 Martin Fowler 关于 CD4ML 的文章。工具系统层面,可以学习传统的 Jenkins,也有一些新选择例如 CircleCI,GoCD,VerCD(Uber)等。
 

 

  • 自我考核:通过 Jenkins 实现 pipeline 自动测试,打包,上线流程。


     

(编辑:淮南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读