2.3.机器学习框架的基本组成原理

编程接口:高层次语言Python接口。为了优化运行性能,需要支持以低层次语言C/C++为主的系统实现-->实现操作系统(线程管理和网络通讯)和各类型硬件加速器的高效使用

计算图:利用不同编程接口实现的机器学习程序需要共享一个运行后端。实现后端的关键技术-计算图技术:定义了用户的机器学习程序,包含大量表达计算操作的算子节点Operator Node,以及表达算子之间计算依赖的Edge

编译器前段:AI编译器来构建计算图,将计算图转化为硬件可执行程序。编译器首先会利用一系列编译器的前段技术实现对程序的分析和优化。前端功能:实现中间表示,自动微分,类型推导和静态分析等。

编译器后端和运行时:完成计算图的分析和优化后,利用编译器后端和运行时实现不同底层硬件的优化。后端优化:分析硬件的L2/L3缓存大小和指令流水线长度,优化算子的选择或者调度顺序。

异构处理器:机器学习应用的执行由CPU和硬件加速器共同完成。非矩阵操作(复杂的数据预处理和计算图的调度执行)由中央处理器完成。矩阵操作和频繁使用的机器学习算子(Transformer算子和Convolution算子)由硬件加速器完成

数据处理:以数据为核心的操作由数据处理模块(如pytorch中的Dataloader)完成。

模型部署:完成模型训练后,即要模型部署。为确保模型在有限的硬件上执行,会使用模型转换、量化、蒸馏等模型压缩技术。同时,需要针对推理硬件平台(如英伟达Orin)的模型算子优化。最后,为了保护模型的安全(如拒绝未经授权的用户读取),还会对模型进行混淆设计

分布式训练:训练需要分布式的计算节点并行完成。常见的并行训练方法包括:数据并行、模型并行、混合并行和流水线并行。此类训练方法通常由远端程序调用(Remote Procedure Call,RPC)、集合通信(Collective Communication)或者参数服务器(Parameter Server)实现。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值