目前基于Hadoop集群、GPU集群的大数据与人工智能应用是市场主流;各公司存在各种部署方案,个性化改造方案;各种结构化数据挖掘与智能化、非结构化数据挖掘与智能应用、图片、视频的处理等,包括最近流行的大模型方案,都需要底层的软硬件支撑。各公司一般是取其中一部分进行开发部署运维,无彻底整合到一起的实践。根据个人经历与思考,完全基于开源软件(不包含GPU驱动),构造此完全整合方案。
一、主要硬件:
1、主机:Hadoop大存储主机、GPU主机、计算型/内存型vm宿主机(或直接云主机,基于OpenStack平台)。
2、额外云存储:COS存储、CFS存储
3、网络:万兆、十万兆网络、IB网络
二、主要软件:
1、Hadoop全家桶:
(1)数据采集:kafka
(2)离线计算:MPP、Hadoop
(3)流计算:Flink、Spark
(4)数据管理:HDFS、Hive、MPP、HBASE、elasticSearch、apache Kylin、ArangoDB
(5)资源调度:Hadoop yarn、kubernets、zookeeper
2、k8s全家桶+GPU驱动相关开源软件。
(1)Kubernets:
环境设置:设置节点名称,时区,安装依赖包,关闭swap、防火墙。
容器运行时:docker或者containerd,本人习惯用docker。
HA负载均衡:安装keepalived和haproxy
安装软件:Kubeadm
(2)GPU或其他边端设备、类GPU算力:
GPU驱动:Tesla系列NVIDIA显卡,需要安装官网驱动
k8s驱动插件:nvidia-docker、nvidia-device-plugin
(3)DevOps:jenkins、Git
3、各种人工智能相关训练与推理软件。
(1)开发训练平台:SmartIDE
包含go、python、java、C++等开发环境,结合cuda运算平台
交互环境:Jupyer
(2)推理平台:Seldoncore
(3)计算框架:TensorFlow、pyTorch
(4)标注工具:
语音标注工具:praat、Transcriber和label studio
NLP标注工具:brat、doccano
图片标注工具:labelme、LabelIMG、cvat
视频标注工具:handbrake,shotcut、FFmpeg
结构化数据标注工具:可添加新表或者备注方式
4、辅助软件
数据库:Redis、MySQL(MariaDB)、MongoDB、PostgreSQL
自动化安装运维工具:ansible
对象存储软件:minIO(主要用于DevOps)
文件系统软件:juiceFS(主要用于大模型训练)
私有化软件源:yum源、pip源、maven源、apt源
三、主要涉及应用与功能:
1、涉及集群:Hadoop存储计算集群、MPP存储计算集群、GPU存储计算/计算 集群。
Hadoop集群可划分为:主要作为存储、主要作为计算、兼顾存储与计算 三种集群。
配置可根据需求有不同倾向:(1)大容量低速存储:挂载大容量、多块机械硬盘;(2)主要用于快速计算:需要硬盘采用ssd、NVME、高速机械 ,大容量内存主机;(3)兼顾存储与计算:可考虑单一机型或者高性能主机与低性能主机混搭。
MPP存储计算集群:可考虑采用Hadoop底座,或专门MPP软件,推荐采用大容量内存、高速存储硬盘(预算与业务时效的平衡,速度与带宽来说:NVME硬盘>普通SSD>高速机械硬盘)。目前数据中心一般采用GPU+高性能CPU+大容量内存+sas机械硬盘,硬盘相对便宜,性能总体偏低。
GPU存储计算集群:主要场景是 存储计算可一体设计使用,或优先该方式的场景,如大模型训练,高速、高吞吐、高IOPS等要求,采用GPU物理主机上安装NVME硬盘组成分布式存储,存储计算一体化,会极大提高运行效率。
GPU计算集群:主要场景是 存储、计算分开管理,对大规模GPU协作无需求的场景,如10卡以内的模型训练。
2、涉及平台:Hadoop平台、DevOps平台、人工智能模型训练/推理平台、数据管理平台。
(1)Hadoop大数据平台,包含Hadoop、hive、spark等基本功能,按需安装hbase等功能。
(2)DevOps:k8s底座+minio存储+Jenkins,构成各种pipline,用于代码编译打包。
(3)人工智能训练/推理平台:基于k8s底座,训练任务采用用户启动预定义镜像或自定义开发镜像模式;推理采用准备好的程序与模型,通过k8s启动推理服务。
(4)数据管理涉及大数据集群的数据管理以及cfs、cos存储上的图片、文本、视频等数据管理。
3、数据:数据管理;数据采集(导入),数据清洗,ETL,数据入湖,数据清单管理,权限管理。
4、标注功能实现:可实现对文本文档、图片、视频、语音的标注、预标注。
5、模型:模型生成、模型存储与管理
6、推理:引入用户自定义代码+模型,提供ai服务
7、镜像:镜像生成、存储、管理。提供Hadoop集群镜像、容器自身镜像、GPU集群镜像、DevOps相关base镜像或用户自定义镜像。
8、代码:Git代码仓库管理、代码存储。
9、可拥有私有软件源:yum源、pip源、maven源、apt源,可设置按需更新、定时更新。
四、存在不足:
1、账号体系难统一,引入开源账号管理体系也不好用。
2、涉及软件多,开发运维成本高。
3、若引入硬件类型较多,运维成本增加。