《机器学习系统:设计与实现》读书笔记一

最近几年一直在做算法工程的工作,对机器学习系统有所涉猎,也很感兴趣。近期发现一本开源书籍《机器学习系统:设计与实现》。去图书馆找了它的纸质版,发现内容不尽相同。在这里结合两者做一个读书笔记。本文是第一篇,主要涉及《第一章:导论》的内容。

机器学习分类

  • 按学习模式分
    • 监督学习
    • 无监督学习
    • 强化学习
  • 按应用领域分
    • 图像
    • 语言(nlp、语音等)
    • 智能决策

设计目标 (功能)

机器学习框架屏蔽了大量底层细节,可以帮助开发者高效、专心地开发算法应用。常见的机器学习框架包括PyTorch、TensorFlow、MXNet、PaddlePaddle、Caffe、MindSpore等。

机器学习框架应当包括以下功能:

  • 神经网络编程:支持开发不同的网络结构,并训练、部署
  • 自动微分:计算模型参数过程中需要通过梯度来逼近
  • 数据管理和处理:需要支持数据读取、存储、预处理
  • 模型训练和部署:支持SGD等模型训练加速方法,并支持把模型部署到推理设备
  • 硬件加速器:机器学习众多核心操作都可以被归纳为矩阵计算,框架需要支持调用支持矩阵加速的硬件
  • 分布式执行:为了应对单机无法承载的大模型,需要支持分布式计算

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

机器学习框架的基本架构如图:
机器学习框架基本架构
以下是每部分详细说明:

  1. 编程接口:需要提供高级语言编程接口(如Python),简化操作;需要支持低级语言编程接口(如C/C++),实现高效计算
  2. 计算图:不同编程接口需共享一个运行后端。后端会将计算过程描述为一张计算图,表示需要的算子及算子之间依赖关系
  3. 编译器前端:框架用AI编译器构建计算图,并将计算图转为硬件可以执行的程序。编译器会利用编译器前段技术对程序做分析和优化。功能主要包括实现中间表示、自动微分、类型推导、静态分析等
  4. 编译器后端和运行时:框架利用后端和运行时实现针对不同底层硬件的优化。常见优化技术包括分析硬件的L2/L3缓存大小和指令流水线长度,优化算子的选择或调度顺序
  5. 异构处理器:CPU、GPU、TPU等异构计算单元协作完成计算
  6. 数据处理:对不同数据做数据预处理,包括转为框架需要的格式、区分训练/验证/测试数据等
  7. 模型部署:在部署过程中受限于硬件资源,需支持模型压缩(主要方法包括模型转换、模型蒸馏、模型量化),并针对特定硬件平台进行算子优化。为了保证模型的安全,还需支持模型混淆。
  8. 分布式训练:分布式训练可以加速模型训练,也可以解决大模型在单一机器上无法训练的问题。常见的分布式训练方法包括:数据并行、模型并行、混合并行、流水线并行。多机写作方式包括:RPC、集合通信(Collective Communication)、参数服务器(Parameter Server)

机器学习系统生态

广义的机器学习系统生态包括实现和支持机器学习应用的各类型软硬件系统。常见系统包括:

  • 联邦学习
  • 推荐系统
  • 强化学习
  • 可解释AI
  • 机器人
  • 图学习
  • 科学计算
  • 机器学习集群调度
  • 量子计算

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/87526.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【RocketMQ入门-安装部署与Java API测试】

【RocketMQ入门-安装部署与Java API测试】 一、环境说明二、安装部署三、Java API 编写Producer和Consumer进行测试四、小结 一、环境说明 虚拟机VWMare:安装centos7.6操作系统源码包:rocketmq-all-5.1.3-source-release.zip单master部署,在…

冶金作业VR虚拟仿真厂家

对于高风险行业来说,开展安全教育培训是企业的重点工作,传统培训逐渐跟不上时代变化和工人需求,冶金安全VR模拟仿真培训系统作为一种新型的教育和培训工具,借助VR虚拟现实技术为冶金行业的工人提供一个安全、高效的培训环境。 冶金…

后端开发9.商品类型模块

概述 简介 商品类型我设计的复杂了点,设计了多级类型 效果图 数据库设计 创建表 DROP TABLE IF EXISTS &

c语言每日一练(6)

前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情…

ubuntu supervisor 部署 python 项目

ubuntu supervisor 查看系统是否可用 cuda 初环境与设备安装 supervisor 环境创建 Supervisor 配置文件启动 Supervisor 服务管理项目 本篇文章将介绍 ubuntu supervisor 部署 python 项目 Supervisor 是一个用于管理和监控进程的系统工具。它的主要功能是确保系统中的进程持续…

Kuebernetes资源控制管理

第四阶段 时 间:2023年8月11日 参加人:全班人员 内 容: Kuebernetes资源控制管理 目录 Kubectl命令工具 一、kubectl 命令行的语法 二、kubectl命令列表 三、使用 Kubectl 工具容器资源 (一)创建Pod &…

腾讯云CVM服务器2核2g1m带宽支持多少人访问?

腾讯云2核2g1m的服务器支持多少人同时访问?2核2g1m云服务器短板是在1M公网带宽上,腾讯云服务器网以网站应用为例,当大规模用户同时访问网站时,很大概率会卡在公网带宽上,所以压根就谈不上2核2G的CPU内存计算性能是否够…

MATLAB算法实战应用案例精讲-【图像处理】图像分类模型Swin TrasnformerViT

目录 Swin Trasnformer 1. 模型介绍 2. 模型结构 3. 模型实现 4. 模型特点 5. 模型效果 ViT( Vision Transformer) 模型介绍 模型结构与实现 1. 图像分块嵌入 2. 多头注意力 3. 多层感知机(MLP) 4. DropPath 5. 基础模块 6. 定义ViT网络 …

分布式 - 消息队列Kafka:Kafka消费者分区再均衡(Rebalance)

文章目录 01. Kafka 消费者分区再均衡是什么?02. Kafka 消费者分区再均衡的触发条件?03. Kafka 消费者分区再均衡的过程?04. Kafka 如何判定消费者已经死亡?05. Kafka 如何避免消费者的分区再均衡?06. Kafka 消费者分区再均衡有什…

MATLAB从文件得出数据并计算吸收光谱

这一系列就是科研用的真实程序了,也是对自己的一个备忘录 真的收购每次都重写了 但真的文件太多了找不到啊!!! 好吧是我废物 废话不多说,这就开始 基础的清理: clear clc close all 读取文件中的数据…

SpringBoot案例-部门管理-修改

目录 前言 查看页面原型,明确需求 页面原型 需求 阅读接口文件 思路分析 功能接口开发 控制层(Controller类) 业务层(Service类) 业务类 业务实现类 持久层(Mapper类) 接口测试 前…

LNMP环境介绍和搭建

一.LNMP简介 1.含义 2.工作原理 二.部署LNMP环境 1.Nginx环境 (1)上传nginx包,下载编译安装工具并解包到指定目录(tar 参数 tar包 - C 目录路径) (2) 开始编译安装,每次编译后…

HTTP代理编程:Python实用技巧与代码实例

今天我要与大家分享一些关于HTTP代理编程的实用技巧和Python代码实例。作为一名HTTP代理产品供应商,希望通过这篇文章,帮助你们掌握一些高效且实用的编程技巧,提高开发和使用HTTP代理产品的能力。 一、使用Python的requests库发送HTTP请求&a…

25. K 个一组翻转链表

25. K 个一组翻转链表 题目-困难难度示例1. 链表转列表 -> 计算 -> 列表转链表2. 反转合并 题目-困难难度 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果…

mac harbor的安装

harbor的安装 为什么要整这个呢,因为我在学习k8s,但是需要一个自己的镜像仓库。于是,最开始想到的就是在本地直接部署一个,还比较安全、快速。 直接下载了官方的项目,运行脚本发现出了异常,这种异常我已经…

Ajax 笔记(一)—— Ajax 入门

笔记目录 1. Ajax 入门1.1 Ajax 概念1.2 axios 使用1.2.1 URL1.2.2 URL 查询参数1.2.3 小案例-查询地区列表1.2.4 常用请求方法和数据提交1.2.5 错误处理 1.3 HTTP 协议1.3.1 请求报文1.3.2 响应报文 1.4 接口文档1.5 案例1.5.1 用户登录(主要业务)1.5.2…

SpringBoot3集成Quartz

标签:Quartz.Job.Scheduler; 一、简介 Quartz由Java编写的功能丰富的开源作业调度框架,可以集成到几乎任何Java应用程序中,并且能够创建多个作业调度; 在实际的业务中,有很多场景依赖定时任务&#xff0c…

Java SpringBoot 加载 yml 配置文件中字典项

实际项目中,如果将该类信息放配置文件中的话,一般会结合Nocas一起使用 将字典数据,配置在 yml 文件中,通过加载yml将数据加载到 Map中 Spring Boot 中 yml 配置、引用其它 yml 中的配置。# 在配置文件目录(如&#xff…

Ajax-概念、Http协议、Ajax请求及其常见问题

Ajax Ajax概念Ajax优缺点HTTP协议请求报文响应报文 Ajax案例准备工作express基本使用创建一个服务器 发送AJAX请求GET请求POST请求JSON响应 Ajax请求出现的问题IE缓存问题Ajax请求超时与网络异常处理Ajax手动取消请求Ajax重复发送请求问题 Ajax概念 AJAX 全称为Asynchronous J…

Maven从入门到好难

参考文献 永远最好的官网 超赞maven系列文章 1. 为啥要有maven 想当初,刚毕业刚工作,之前学的C,java不懂,部门用的Spring,于是开始学习SSM,妈的,jar包好难整,还要一个个下载好放到…