随着人工智能技术的发展和普及,训练一个常规的AI模型,似乎变成了当代大学生除了word和PPT外必备的生存技能。从入门到放弃的过程中,你大概会遇到环境配置和计算资源不足的天坑。别人用 8 卡训练,用 100 G 内存去存数据集。而你把他的baseline下载下来,吭哧吭哧改了半天,才能在你的电脑上跑。此时,一个简单易用的AI训练平台就显得尤为重要。
国内常用的平台有华为的 ModelArts 百度的 AI Stdio 还有阿里的天池实验室等。作为一名研究僧,笔者这些当然是都用过的了,他们能帮我们跳过环境配置和计算资源的问题。个人认为,华为的 ModelArts 功能最全,用起来最顺手。除了基础的数据管理、算法管理和训练管理功能。还支持自动标注,自动学习等。
对于学生而言,白嫖一些计算资源,用用这些平台还是蛮划算的。但是对公司而言,一小时 28 块钱的基础 GPU,钱还没赚到,就全都交了电费了。更何况公司自己也有计算资源。所以,涉及到数据处理的公司都想搭建自己的AI训练平台。那么这事到底可不可行呢?
先来看看国外是怎么做的。国外有亚马逊的 AWS 和 Floyd 的 Floydhub 等为公众开放的 AI 训练平台,其计算资源调度是通过 Kubernetes + Docker 的方式实现的。谷歌内部的 Deepmind,微软的 aether、philly 和
等训练平台,其实现原理也是以容器为核心,使用 Kubernetes 进行调度。国内的商汤科技、旷视科技,其内部使用的 AI 训练平台原理也大抵如此。[1]
看来做一个AI训练平台技术路线还是挺清晰的。
那么从0到1搭建一个人工智能训练平台要多久呢?
答案是 1个专业团队 和 一年时间。
以下内容来自 b 站 UP 主 komlei 的分享:AI训练平台TZ全盘详细总结_哔哩哔哩_bilibili
本人按照视频脉络做出如下笔记。
AI训练平台TZ全盘详细总结
平台用途:服务于公司内部感知,决策团队,用于深度学习模型训练。内部研发平台。
1 平台落地回顾
1.1 前瞻期望
1.1 前瞻期望
本页介绍了常规的数据采集、处理、模型开发及训练流程,并且介绍了 AI 训练平台的内部结构。(看样子 UP 主应该是自动驾驶行业的)
内部结构基于云原生。使用交互式开发方式,可以在线加载数据集和训练。平台支持 Pytorch、TensorFlow 和 Caffe 等多种深度学习框架,支持单机单卡、单机多卡、多机多卡训练。
1.2 流程复盘
训练平台实施的完整流程1. 首先进行需求定调,明确平台定位。是采用自研方式,还是基于 Kubeflow 等已有平台进行二次开发。
2. 进行深一步的需求收集。为了考察需求方没有考虑到的内容,调研现有云计算平台如华为云ModelArts、百度和阿里等厂商平台作为参考。
3. 功能细化以及可行性分析
4. 落地推进
5. 开发落地。各模块分别开发以及整体串联。
项目计划节点梳理这张涉及到的是各个模块的开发时间规划,可以看到整个项目是由 10 个人 来完成的。
开发周期从 2020 年底开始延续到2021年底。其中主要功能模块使用7个月的时间进行开发,
剩下的时间进行功能测试及优化。
1.3 实施编排
更为细化的时间节点和任务要求。2 平台功能层面
2.1 功能框架
模块关联示意
模块详细展开整体功能模块包括数据管理、算法管理、训练管理和模型管理四大部分。
数据管理:支持数据上传、数据浏览、标注等功能。
算法管理:使用算法依赖和用户代码构建算法镜像。
训练管理:支持多框架训练和硬件资源调度。
模型管理:模型托管、模型压缩/转换、推理评估。
2.2 功能详述&演示
2.2 功能详述&演示工作空间
类似于网盘功能。用于管理数据集和代码等。
网盘交互编码
用于创建和管理支持多种训练框架的 notebook 环境。提供 notebook 代码编写页面入口。
交互编码
notebook算法管理
算法打包成镜像。
算法管理新增算法。
新增算法镜像管理
官方基础镜像。
平台构建镜像:算法管理构建出的镜像。
用户自定义镜像:用户本地构建的镜像。
镜像管理训练管理
训练管理模型管理
模型管理资源看板
GPU、内存、CPU资源查看。
用户作业队列查看。
资源看板系统配置
系统配置3 平台技术实现
3.1 整体架构
整体架构资源调度层面采用 K8S
日志采集通过 filebeat 采集到 Kafka
指标监控采用 Prometheus
将数据汇存到 TIDB
存储涉及 SFS 和 OBS (对象存储)
Harbor 镜像仓库
上层服务治理采用 istio
借鉴 kubeflow 组件
3.2 库 & 表结构
公司内部的库表结构就不说了。
库表结构3.3 服务部署
逻辑隔离,分为四块。
training-zoo:业务服务。
training-job:用户提交上来的 job。
training-task:提交到后台的页面服务:tensorboard、notebook 和模型可视化服务。
training-Common:公共组件。如 grafana、prometheus。
服务部署展望未来next





参考资料:
[1]刘宇博. 基于云计算的人工智能训练平台的研究与设计[D].北京邮电大学,2019.
[2]komlei. AI训练平台TZ全盘详细总结 AI训练平台TZ全盘详细总结_哔哩哔哩_bilibili
标签: