首页 > 其他分享 >博客导航

博客导航

时间:2022-10-14 22:55:39浏览次数:78  
标签:训练 补充 导航 模型 博客 硬件 推理 有待

前言

这篇博客整理了机器学习系统相关的博客,一方面是为了方便自己和读者查阅文章,另一方面这个手动整理的目录是一个学习路线。如果您对机器学习系统感兴趣,那么希望我的这个导航可以给到您启发。

机器学习系统的上层是应用,贴近用户,直接创造了业务价值。本人大五、大六的方向是自然语言处理,比较遗憾的是没有科研经历,因此在大七即将面临毕业时,希望可以在毕业论文中做一点研究,最终选择的方向是机器翻译。

下层是硬件,贴近开发者。机器学习系统是跟“计算”紧密相关的,需要借助体系结构的知识,达到高性能的计算。上层应用的模型发展和创新,对下层硬件的浮点计算速度、内存带宽产生了越来越高的需求。CPU 的速度已然跟不上,通过 GPU、TPU 等加速硬件可以大规模并行计算加速训练和推理。

大量加速硬件的出现对编译器产生了需求。如果有 N 个应用,M 个硬件,每个应用去对接硬件,那么这将是一个 \(N \times M\) 的问题。借助编译器,可以将这个问题转化为一个 \(N + M\) 的问题。从应用层的表示转换到硬件层的可执行对象,在这中间可以加一层中间表示,将 \(N \times M\) 变成 \(N + M\)。

在上层应用和下层硬件的中间是机器学习系统。一般来说,上层应用提供的表示可以转化为计算图,中间经过“编译”生成一个运行期的计划,这个计划可以在 Runtime 中调度和执行,调度需要考虑为数据分配内存和调用算子。通过优化计算图、Runtime、算子,可以提高整体性能。

此外还要分成训练推理两个方向来讨论。以神经网络为核心的系统,训练时要同时考虑前向传播和后向传播,而推理时只需要考虑前向传播即可。

神经网络训练,需要理解 BP 算法和自动微分。大模型的出现导致了训练的时长大大增加,也可能一张卡的显存放不下一个模型,单机单卡已经没法满足需求。一般需要考虑如下几个问题:如何利用多机多卡进行分布式训练,数据传输通信的时间开销应该怎么建模,能否自动并行、自动切分模型进行训练?

模型训练后,需要部署上线,提供推理服务。模型训练的框架和部署推理用的框架不一样,需要将训练的模型结构转为推理用的模型结构,可以借助 ONNX 这个中间表示,来将模型进行倒腾转换。在推理框架拿到模型表示之后,推理框架自己想怎么搞就怎么搞。另一方面,推理要考虑到模型的大小,模型训练之前的设计阶段,需要考虑模型的量化怎么做,是在训练中量化还是在训练后量化呢?还可以借助知识蒸馏等技术,大模型训练小模型来进行压缩。拥有了模型推理能力,需要对外提供服务,Triton 在模型服务化方面做了不少工作,前身是 TensorRT 的服务器,可以帮助模型服务化,提供 HTTP/RPC 等服务。Triton 提供了给 kubernetes 使用的一组 API,提供稳定可靠的线上服务,自动拉起服务并监控服务。

应用

语言学知识

(有待补充)

机器翻译 基础

(有待补充)

机器翻译 学术前沿

(有待补充)

机器学习系统

计算图及其优化

(有待补充)

Runtime 的调度和执行

(有待补充)

算子实现和优化

(有待补充)

训练

原理

(有待补充)

分布式训练

(有待补充)

参考资料

机器学习系统的实现和设计:https://openmlsys.github.io/#

推理

模型转换

(有待补充)

模型压缩

(有待补充)

服务端部署

(有待补充)

编译器

TVM

(有待补充)

MLIR

(有待补充)

参考资料

TVM:https://mlc.ai/zh/

硬件

体系结构基础知识

(有待补充)

CUDA 编程

(有待补充)

CPU 编程优化

(有待补充)

语言

C++

(有待补充)

Python

(有待补充)

CMake

(有待补充)

Shell

(有待补充)

软件工程

设计模式

(有待补充)

标签:训练,补充,导航,模型,博客,硬件,推理,有待
From: https://www.cnblogs.com/zzk0/p/16787330.html

相关文章

  • 我的第一篇博客
    #我的第一篇博客##自我介绍自我介绍一下,我是某二本的一名研究生,算是交叉领域吧,本科学的是物联网工程,研究生方向初步为计算机视觉(cv)。一直想要把自己的学习路程和经验记......
  • 博客园xTypora的使用|快捷发布(免github)
    1.下载安装Typorahttps://pan.baidu.com/s/1ITC9OjBMrXkLtCKrKVpZrQ提取码:k7412.对Typora进行设置3.下载安装dotnet(1)下载安装.NETCoreSDK:https://www.mic......
  • 在vscode中使用博客园插件
    在vscode中使用博客园插件自动上传本地博客(1)前言好记性不如烂笔头。千古流传的经验之谈,绝不是浪得虚名。记忆是最最会骗人的东西,又是最容易被遗忘的东西。过河拆桥,......
  • 使用 HammerDB 对 Citus 和 Postgres 进行 Benchmark,每分钟200万新订单处理测试(官方
    在为​​Postgres​​运行性能基准测试时,主要建议是:“自动化!”如果您正在测量数据库性能,您可能不得不一遍又一遍地运行相同的基准测试。要么是因为你想要一个稍微不同的......
  • 博客索引
    由于这个\(css\)的某些缺陷,它吞我文章,所以就写了个这个题解CSP模拟18CSP模拟17CSP模拟14CSP模拟13CSP模拟12CSP模拟11CSP模拟10CSP模拟9CSP模拟8暑假集训1暑......
  • CSS——导航栏
    1.垂直导航栏常见导航栏<!DOCTYPEhtml><html><head><style>ul{list-style-type:none;margin:0;padding:0;width:200px;background-color:......
  • 博客园图片无法显示
    今天粉丝反馈博客图片无法显示,看了一下,图床是可以正常访问的,不知道什么原因,后来看了博客园后台编辑博文处有一个提取图片的功能,非常好用,可以将图床上的图片全部提取到博客......
  • CSS样式导航条模块
    导航条:是应用或网站中作为导航页头的响应式基础组件。它们在移动设备上可以折叠、可开可关,且在视口(viewport)宽度增加时逐渐变为水平展开模式。下面是我自己制作页面布局时......
  • 关于博客密码
    博客密码是我的生日!!!因为考虑到题面要保密,所以加了密码不知道密码可以看我题库用户名要是还不知道友尽吧......
  • Unity3D导航系统实例
    Unity3D导航实例使用脚本使胶囊体自动导航移动到目标位置,本次为demo实现过程搭建场景搭建场景设置对象设置场景中的对象设置可以行走的对象在Hierarchy视图中,选中......