存储人视角:人工智能AI + 大模型

news2024/11/16 22:38:28

原文来自于知乎存储专栏:

存储人视角:人工智能AI + 大模型

前沿

我的角色

背景

AI 出场

效果

一个宠娃狂魔

娃喜爱并有奥特曼玩具

她的奥特曼玩具会跳舞了

娃对我的崇拜和爱又多了一分......amazing

杭州网商路艾弗森

球队需要制作LOGO

形象生动的LOGO生成了

......amazing

历史/地理爱好者

我想了解古代所有著名关隘

所有关隘名称,位置,典故都出来了

......amazing

人工智能AI & 大模型实在是太火了,并且太有用了,作为一个存储从业者,免不了和各类人工智能相关团队打交道。在这个过程中,接触到了一系列名词术语:AIGC,AGI,大模型(LLM),ChatGPT ,NLP,RGA等, --- 这些都是何物?他们之间有哪些微妙的联系?在阅读了海量相关资料后,我这个外行算是了解了一点点,所以这里希望可以理清一下(如有疏漏请指正)。

当然,因为数据是人工智的基石,所以作为一个存储人,最重要的还是希望弄清楚这些人工智能产物和我们存储有什么内在的关系。然后,也希望了解一下我们业界的存储系统都在这方面做了哪些有趣的事情。

人工智能简介

上图勾勒了AI的全貌,要是想了解更多细节,参考文献里面有很多很好的资料(对我这种非专业的人来说)。另外,为了避免文章台臃肿了,上图里的嵌套图会放在留言区里

存储和AI的关系

"数据集"是AI与存储之间的桥梁,AI & 大模型要做的事情就是利用海量数据进行训练,然后获得相应的知识。不同的数据集(文本,视频,图片)会有不同的总容量和单文件大小,自然对存储的需求也是不一样的。

数据集

  • 大模型的典型数据集
0
  • 机器学习数据集
0

AI 下的存储

这里先以使用kimi或者通义千问为例,简单来说可以分为两个部分:使用者 & AI 服务提供商(kimi),流程大概如下3步:

  • 使用者:使用者输入想了解的问题
  • 服务提供商(kimi):kimi的线上推理模型收到使用者的提问信息后,生成提问对应内容
  • 使用者:收到搜索结果

那么其实这里的关键就在上述的第2步:也即kimi的线上推理模型是什么?这个推理模型是怎么构建的?

推理模型的构建:收集海量数据(数据集),在此基础上进行训练,获得相关知识推理模型,然后把这个推理模型部署在线上。

大模型全流程可以划分为四个主要的环节:海量数据的存储和处理,模型开发,模型训练,模型推理。

大模型环节

描述

存储需求

海量数据存储&处理

数据采集导入、清洗、标注、归档

海量数据,不同类型的数据

模型开发

数据科学家进行模型开发

POSIX 兼容、可靠性和可共享

模型训练

GPU集群读取数据,进行训练,得到推理模型

-------

推理模型部署

把训练完的模型快速分发部署到线上,服务用户

过程高频、反复发生,既要求高并发、高吞吐,又要求整个流程尽量简单高效

这里重点说下模型训练对存储的需求:对于一个典型的训练来说,可能迭代多轮 epoch。在每个 epoch 内,首先需要对数据集进行随机打散,然后将打散后的数据划分为若干 batch,每读取一个 batch 的数据,进行一次训练迭代。同时会周期性保存 checkpoint 用于故障快速恢复:

1. shuffle阶段是纯元数据操作的过程,主要依赖大量文件的 LIST

2. 数据读取过程则元数据和数据操作都有

3. CheckPoint:大模型单个节点的 checkpoint 通常就能达到几十上百 GB。而多个训练节点同时写,需要恢复时又同时读,对存储提出了很高的吞吐要求。同时一个关键的问题是 checkpoint 期间整个训练是中断的

0

当前AI使用的存储分类

存储类型

代表性系统

本地文件

NVME SSD + 本地文件

分布式文件系统

CephFS,HDFS,GPFS,NFS,DAOS

对象存储

Minio,NVIDIA/aistore

文件网关+对象存储

Alluxio,JuiceFS,CurveFS

向量数据库

Milvus

商业存储

VAST DATA,WeakFS,焱融YRCloudFile百度沧海,阿里云文件存储 CPFS等

我的存储系统适合AI么

工作中参与了Ceph以及CurveFS,所以基于这两款产品简单聊聊。

Ceph

Ceph的rados其实还是比较适合AI训练的,因为基于rados集群的可扩展性以及BlueStore的io特性,其能够提供不错的带宽能力。

但是可惜的是Ceph的元数据在大规模小文件下可能会成为瓶颈,我个人理解可能主要有2点原因吧:

目录分区(扩展性不足)导致的竞争:虽然CephFS提供了静态子树分区以及动态子树分区,但是动态子树分区太复杂且尚未成熟,当前业界一般使用静态子树(PIN),但是这种方式又带来了运维的复杂性。

CEPH多Client的强一致性:比如你当前只有一个Client在写,其默认是可以写到Client的内存Buffer的么,但是如果这时候又有一个Client挂载过来了,那么MDS就会要求之前的老的Client把之前写的Buffer全部刷到osd数据池子里面去,那么这个过程有可能是比较的。

一些小小的优化:

  • 只读快照:如果所有针对训练数据的操作都是读取的,那么将数据集驻留在只读块设备的快照上可能会更好。例如,使用Ceph创建RBD卷,其中放入数据集,获取快照,然后将该快照映射为多个实例(这些实例都需要访问相同的图像集)上的只读快照
  • lazyio模型:如果对数据的可靠性和一致性没有那么高,可以考虑下CephFS的lazyio模型
  • 减少小文件操作:将数据预处理为类似TFRecords这样的格式是一个巨大的优化。
  • Ceph本身的性能优化:参考分布式存储性能优化的几点(Ceph篇)

CurveFS

简单说一些亮点吧:

  • 提供本地缓存以及分布式缓存集群。并提供了提前预热功能
  • 数据在BS块存储和对象存储之间的生命周期流转
  • 可线性扩展的元数据结构

一些先进的技术

比如GDS,NVIDIA BlueField DPU,RDMA等

因为自己是一个AI领域的外行,只是一个期望了解些许皮毛的爱好者,所以如上上述描述有误,烦请指正,感谢。。。

参考文献

LLMSurvey

中国人工智能白皮书

分布式存储性能优化的几点(Ceph篇)

AI训练存储基座之一:深度学习(AI)中的io模式及性能优化

什么是生成式人工智能?

GitHub - NVIDIA/aistore:AIStore:用于 AI 应用程序的可扩展存储

清华大学出版社

面向大模型的存储加速方案设计和实践

什么样的存储架构才是AI大模型时代的最佳选择?

火山引擎云原生存储加速实践

阿里云大模型数据存储解决方案,为 AI 创新提供推动力

【学习大模型】RAG基础-阿里云开发者社区 (aliyun.com)

大模型时代,为什么要懂向量数据库?-阿里云开发者社区 (aliyun.com)

Alluxio v.s. JuiceFS

大模型存储实践:性能、成本与多云

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习】对于加密接口、签名接口如何进行性能测试

随着科技的飞速发展,加密接口和签名接口在我们的日常生活中扮演着越来越重要的角色。从在线支付到信息安全,它们始终默默地守护着我们的数字世界。然而,随着应用场景的不断扩展,性能测试变得尤为重要。今天,让我们一起…

【6】mysql查询性能优化-关联子查询

【README】 0. 先说结论:一般用inner join来改写in和exist,用left join来改写not in,not exist;(本文会比较内连接,包含in子句的子查询,exist的性能 ) 1. 本文总结自高性能mysql 6…

PLC中连接外部现场设备和CPU的桥梁——输入/输出(I/O)模块

输入(Input)模块和输出(Output)模块简称为I/O模块,数字量(Digital,又称为开关量)输入模块和数字量输出模块简称为DI模块和DQ模块,模拟量(Analog)输…

求a+aa+aaa+……(C语言)

一、题目&#xff1b; 二、N-S流程图&#xff1b; 三、运行结果&#xff1b; 四、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int a 0;int n 0;int i 0;int result 0;int tn 0;//提示用户&am…

Linux学习第52天:Linux网络驱动实验(二):一往(网)情深

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 本节笔记的目录如下&#xff1a; 四、I.MX6ULL网络驱动简介 1.I.MX6ULL网络外设设备树 2.I.MX6ULL网络驱动源码简析 3.fec_netdev_ops操作集 4.Linux内核PHY子…

删除word中下划线的内容

当试卷的题目直接含答案&#xff0c;不利用我们刷题。这时如果能够把下划线的内容删掉&#xff0c;那么将有利于我们复习。 删除下划线内容的具体做法&#xff1a; ①按ctrl H ②点格式下面的字体 ③选择下划线线型中的_____ ④勾选使用通配符并在查找内容中输入"?&qu…

OSI网络七层协议 ——(随手笔记)

1.OSI OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互连。 一般都叫OSI参考模型&#xff0c;是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架&#xff08;物理层、数据链路层、网络层、传输层、会话层、表示层…

【论文阅读】Attention is all you need

摘要 主要的序列转换模型是基于复杂的循环或卷积神经网络&#xff0c;其中包括一个编码器和一个解码器。性能最好的模型还通过一种注意力机制将编码器和解码器连接起来。我们提出了一种新的简单的网络架构&#xff0c;Transformer&#xff0c;完全基于注意机制&#xff0c;完全…

数据结构-基于ArrayList的源码模拟

文章目录 继承关系 :1. 构造方法的模拟2. 扩容机制的分析3. 查找方法的模拟4. 获取,修改元素的方法模拟5. 添加元素的模拟6. 删除元素的模拟7. removeAll与retainAll的模拟总结: 边缘方法以及总代码 继承关系 : 1. 构造方法的模拟 源码中我们的ArrayList的构造方法给出了三种实…

【Java基础】19.继承(面向对象的三大特征:封装、继承、多态)

文章目录 前言一、继承的概念二、继承的步骤1.类的继承格式2.继承的实例3.继承类型 三、继承的特性四、继承的关键字1.extends关键字2.implements关键字3.super 与 this 关键字4.final 关键字 五、构造器 前言 一、继承的概念 继承是java面向对象编程技术的一块基石&#xff…

Git - 在PyCharm/Idea中集成使用Git

文章目录 Git - 在PyCharm/Idea中集成使用Git1.新建GitHub仓库2.将仓库与项目绑定3.在PyCharm中使用Git4.新建Gitee仓库5.将仓库与项目绑定6.在IDEA中使用Git Git - 在PyCharm/Idea中集成使用Git 本文详细讲解了如何在 PyCharm 或 Idea 中配置 Gitee 或 GitHub 仓库&#xff0…

【算法】深度优先遍历(DFS)算法详解与实现

文章目录 1.算法原理2. 常见的深度优先遍历方式3. 代码实现总结 深度优先遍历&#xff08;DFS&#xff09;是一种常用的树或图的遍历算法&#xff0c;它通过尽可能深地搜索树或图的分支&#xff0c;直到路径上的所有节点都被访问完毕&#xff0c;然后再回溯到上一层&#xff0c…

win10 系统怎么开启 guest 账户?

win10 系统怎么开启 guest 账户&#xff1f; 段子手168 前言&#xff1a; guest 账户即所谓的来宾账户&#xff0c;我们可以通过该账户访问计算机&#xff0c;如打印机共享等&#xff0c;但会在一定程度上受到限制。下面分享 WIN10 系统开启 guest 来宾账户的几种方法。 方法…

袁庭新ES系列15节|Elasticsearch客户端基础操作

前言 上一章节我们介绍了搭建Elasticsearch集群相关的知识。那么又该如何来操作Elasticsearch集群呢&#xff1f;在ES官网中提供了各种语言的客户端&#xff0c;我们在项目开发过程中有多种Elasticsearch版本和连接客户端可以选择&#xff0c;那么他们有什么区别&#xff1f;这…

Clion 2023.1.5 最新详细破解安装教程

CLion 最大的优点是跨平台&#xff0c;在Linux、Mac、Windows 上都可以运行。CLion 还同时支持 GCC、Clang、MSVC 这 3 种编译器&#xff0c;使用 CLion 编写程序&#xff0c;程序员可以根据需要随意切换使用的编译器。 第一步: 下载最新的 Clion 2023.1.5 版本安装包 我们先…

(2022级)成都工业学院数据库原理及应用实验五: SQL复杂查询

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、成品仅提供参考 3、如果成品不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 Navicat Premium 16 Mysql 8.0.36 实验要求 在实验三的基础上完成下列查询&#xff1a; 1、查询医生…

项目管理-项目开发计划介绍

目录 一、内容总览 二、项目开发计划概述 2.1 概述 2.2 项自开发计划的目的和作用 2.3 项目开发计划的内容 2.3.1 工作计划 2.3.2 人员组织计划 2.3.3 设备采购和资源供应计划 2.3.4 配置管理计划 2.3.5 进度安排计划 2.3.6 成本投资计划 2.3.7 质量保证计划 2.3.8…

Unity Editor编辑器扩展之创建脚本

前言 既然你看到这篇文章了&#xff0c;你是否也有需要使用代码创建脚本的需求&#xff1f;使用编辑器扩展工具根据不同的表格或者新增的内容去创建你想要的脚本。如果不使用工具&#xff0c;那么你只能不断去修改某个脚本&#xff0c;这项工作既繁琐也浪费时间。这个时候作为程…

Electron+Vue3整合 - 开发时状态整合

说明 本文介绍一下 Electron Vue3 的整合的基本操作。实现的效果是 &#xff1a; 1、一个正常的Vue3项目&#xff1b; 2、整合加入 Electron 框架 &#xff1a;开发时 Electron 加载的是开发的vue项目&#xff1b;步骤一&#xff1a;创建vue3项目 常规操作&#xff0c;不再赘…

盲人购物指南:智能化辅助引领超市购物新体验

作为一名资深记者&#xff0c;我有幸见证了一位盲人朋友借助一款名为蝙蝠避障的高科技辅助应用&#xff0c;独立完成超市购物之旅&#xff0c;这一过程充分展示了盲人购物指南新时代的到来。 在前往超市的路上&#xff0c;这款应用犹如一位贴心的“电子向导”&#xff0c;实时为…