人工智能建立在对象存储上的真正原因

tl;dr:

在这篇文章中,我们将探讨 AI 工作负载依赖高性能对象存储的四个技术原因。

1. 对非结构化数据没有限制

在当前的机器学习范式中,性能和能力与计算成比例,计算实际上是数据集大小和模型大小的代理(神经语言模型的缩放定律,Kaplan等人)。在过去的几年里,这给机器学习和数据基础设施的构建方式带来了彻底的变化——即:存储和计算的分离,构建充满非结构化数据的大规模云原生数据湖,以及可以快速进行矩阵乘法的专用硬件。

当训练数据集(甚至是数据集的单个分片)需要的空间超过系统内存和/或本地存储中的可用空间时,将存储与计算分离的重要性就变得非常明显。对驻留在 MinIO 对象存储中的数据进行训练时,训练数据大小没有限制。由于 MinIO 专注于简单性和 I/O 吞吐量,因此网络成为训练速度和 GPU 利用率的唯一限制因素。

除了提供任何对象存储的最佳性能外,MinIO 还与所有现代机器学习框架兼容。MinIO 对象存储还 100% 与 S3 API 兼容,因此您可以使用熟悉的数据集实用程序(如 S3-Connector for PyTorch (BSD-3-Clause) 或 TorchData S3 Datapipe)对本地或设备上的对象存储执行 ML 工作负载。如果您的消费应用程序需要类似文件系统的功能,您甚至可以将 MinIO 与对象存储文件接口(如 Mountpoint S3 或 S3FS)一起使用。在以后的博客文章中,我们将在一些常见的 PyTorch 和 FairSeq 接口的自定义实现中使用 MinIO Python SDK,以便为模型训练启用“无限制”的训练数据和高 GPU 利用率。

除了性能和与现代 ML 堆栈的兼容性之外,对象存储的设计选择,即 (1) 扁平命名空间,(2) 将整个对象(及其元数据)封装为最低逻辑实体,以及 (3) 简单的 HTTP 谓词 API,是导致对象存储成为大规模非结构化数据湖的事实标准的原因。纵观机器学习的近期历史,可以看出训练数据(从某种意义上说,模型架构本身)已经变得不那么结构化,更加通用。过去的情况是,模型主要在表格数据上进行训练。如今,范围更广,从纯文本段落到数小时的视频。随着模型架构和 ML 应用程序的发展,对象存储的无状态、无模式以及可扩展的性质只会变得更加重要。

2. 模型和数据集的丰富元数据

由于 MinIO 对象存储的设计选择,每个对象都可以包含丰富的无架构元数据,而不会牺牲性能或需要使用专用元数据服务器。当涉及到你想向对象添加什么样的元数据时,想象力确实是唯一的限制。但是,以下是一些可能对 ML 相关对象特别有用的想法:

对于模型检查点:损失函数值、训练所用时间、用于训练的数据集。

对于数据集:配对索引文件的名称(如果适用)、数据集类别(训练、验证、测试)、有关数据集格式的信息。

像这样描述性很强的元数据,当能够有效地索引和查询这些元数据时,可以特别强大,即使是在数十亿个对象中,MinIO 企业目录也能提供这种能力。例如,可以查询标记为“已测试”的模型检查点或已在特定数据集上训练的检查点。

3. 模型和数据集是可用的、可审计的和可版本的

随着机器学习模型及其数据集成为越来越重要的资产,以容错、可审计和可版本化的方式存储和管理这些资产也变得同样重要。

数据集和基于数据集进行训练的模型是宝贵的资产,是时间、工程努力和金钱的来之不易的产物。因此,应以不妨碍应用程序访问的方式保护它们。MinIO 的内联操作(如 bitrot 检查和纠删码)以及多站点、主动-主动复制等功能可确保这些对象的大规模弹性。

特别是对于生成式 AI,在调试幻觉和其他模型不当行为时,了解哪个数据集的哪个版本用于训练正在提供的特定模型很有帮助。如果模型检查点已正确版本控制,则可以更轻松地信任快速回滚到以前提供的检查点版本。借助 MinIO 对象存储,您可以开箱即用地获得这些对象优势。

4. 自有服务基础设施

从根本上说,MinIO 对象存储是您或您的组织控制的对象存储。无论用例是用于原型设计、安全、监管还是经济目的,控制都是共同点。因此,如果经过训练的模型检查点驻留在对象存储中,则可以更好地控制为推理或使用模型提供服务的任务。

在上一篇文章中,我们探讨了将模型文件存储在对象存储上的好处,以及如何使用 PyTorch 的 TorchServe 推理框架直接提供它们。然而,这是一个完全与模型和框架无关的策略。

但为什么这很重要呢?第三方模型存储库上的网络滞后或中断可能会使模型在推理时变慢,或者完全不可用。此外,在推理服务器正在扩展并需要定期拉取模型检查点的生产环境中,这个问题可能会加剧。在最安全和/或最关键的情况下,最好尽可能避免第三方对互联网的依赖。将 MinIO 作为私有云或混合云对象存储,可以完全避免这些问题。

结束语

这四个原因绝不是详尽无遗的清单。开发人员和组织出于各种原因将 MinIO 对象存储用于其 AI 工作负载,从易于开发到超轻占用空间。

在本文的开头,我们介绍了采用高性能 AI 对象存储背后的驱动力。无论扩展定律是否成立,可以肯定的是,组织及其 AI 工作负载将始终受益于可用的最佳 I/O 吞吐量能力。除此之外,我们可以相当有信心,开发人员永远不会要求更难使用的 API 和不“正常工作”的软件。在这些假设成立的任何未来,高性能对象存储都是出路。

对于任何阅读本文的架构师和工程决策者来说,这里提到的许多最佳实践都可以自动化,以确保以一种使您的 AI/ML 工作流程更简单、更具可扩展性的方式利用对象存储。这可以通过使用任何现代 MLOps 工具集来完成。AI/ML SME Keith Pijanowski 探索了其中的许多工具 - 在我们的博客网站上搜索 Kubeflow、MLflow 和 MLRun,了解有关 MLOps 工具的更多信息。但是,如果这些 MLOps 工具不适合您的组织,并且您需要快速上手,那么本文中显示的技术是开始使用 MinIO 管理 AI/ML 工作流的最佳方式。

对于开发人员(或任何好奇🙂的人),在以后的博客文章中,我们将进行端到端演练,以调整 ML 框架以利用对象存储,以实现“无限制”训练数据和适当的 GPU 利用率。

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

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

相关文章

C#开发:下载node.js指定版本

一、打开官网 二、找到指定版本 三、选择程序包msi下载 四、验证下载是否成功 cmd输入: node -v npm -v

请跳至打印机属性的“Adobe PDF设置”页面,取消选择“仅停靠系统字体;不使用文档字体”

场景: 当使用adobe pdf打印时,出现如下提示“请跳至打印机属性的“Adobe PDF设置”页面,取消选择“仅停靠系统字体;不使用文档字体””,该如何解决。 描述 □“仅停靠系统字体;不使用文档字体” 复选本框…

基坑安全:自动化监测系统的革新力量

在日新月异的基坑工程领域,基坑安全自动化监测系统犹如一位守护者,以其独特的优势,为工程的安全与质量保驾护航。该系统集先进的测量仪器、计算机技术与现代传感技术于一体,对基坑的围护结构及周边环境进行全方位、高精度的实时监…

从零开始学量化~Ptrade使用教程(四)——股票普通买卖与回购业务

股票普通买卖 股票买入 通过选择委托方向实现股票的买入与卖出,可根据输入的价格自动查询可买数量。 用鼠标点击【买入】,如图所示: 输入股票代码并选中后,选择委托类型,若为限价类型,输入委托价格&#xf…

【漏洞复现】锐捷校园网自助服务系统 任意文件读取

声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。 一、漏洞描述 锐捷校园网自助服务系统是用于学校网络管理的一个平台,login_judge.jsf接口存在任意文件读取…

中职网络安全B模块渗透测试server2380

使用nmap扫描添加参数-sV Flag:2.4.38 添加参数-A不然扫不全 (这两题可以直接加-sV -A) Flag: 4.3.11-Ubuntu 根据nmap扫描发现系统为ubuntu系统,ubuntu操作系统在某些版本中默认包含一个名为"ubuntu"的用户帐户。这是为了方…

重生奇迹mu自带四重箭加穿透的弓

1.烈风射手 烈风射手是自带四重箭加穿透的弓之一。该职业的技能树中有一个叫做“四箭连发”的技能,可以让玩家在一次攻击中发射四支箭矢,每支箭矢都带有穿透效果。 2.影魅猎人 影魅猎人也是自带四重箭加穿透的弓之一。该职业的技能树中有一个叫做“穿…

案例分享:Qt modbusTcp调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.0.0)

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/140313789 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片…

Backend - C# 操作PostgreSQL DB

目录 一、安装 Npgsql 插件 (一)作用 (二)操作 (三)注意 二、操作类 (一)操作类 1.NpgsqlConnection类 (1)作用 (2)引入 &a…

[高频SQL50题(基础版)]第五百八十四题,寻找用户推荐人

题目: 表: Customer ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | | referee_id | int | ---------------------- 在 SQL 中,id 是该表的主键列。 该表的每一…

儿童房灯具什么牌子好?几款儿童房灯具款式墙裂分享

随着科技的不断发展和生活方式的改变,儿童青少年近视率的增长趋势引起了人们的关注。近视不仅对孩子们的视力健康构成威胁,还可能对他们的学习和日常生活带来不便。因此,如何有效地预防和改善儿童青少年的视力问题成为了一个亟待解决的课题。…

2024学生党蓝牙耳机什么牌子好?品牌高性价比蓝牙耳机推荐

2024年,对于追求性价比和品质的学生党来说,选择一款合适的蓝牙耳机是提升学习和生活品质的重要一环。面对市场上琳琅满目的蓝牙耳机产品,2024学生党蓝牙耳机什么牌子好?如何找到既满足音质需求又具备高性价比的款式呢?…

高考后的IT专业启航:暑期预习指南与学习路线图

文章目录 每日一句正能量前言:启航IT世界,高考后的暑期学习之旅基础课程预习指南基础课程预习指南:构建你的IT知识大厦引言一、计算机科学导论二、编程语言入门三、操作系统基础四、数据结构与算法五、网络基础六、数据库原理结语 技术学习路…

02STM32软件安装新建工程

STM32软件安装&新建工程 1.软件安装:1.1Keil5 MDK安装1.2安装器件支持包离线安装支持包在线安装支持包 1.3软件注册:1.4安装驱动STLINK驱动JLink驱动在此文件夹下USB转串口 2.新建工程2.1STM32开发方式:1.寄存器2.标准库3.HAL库 固件库压…

Nginx访问日志按天拆分

使用 logrotate 来实现 如果系统没有安装logrotate 可以使用 sudo yum install logrotate -y 进行安装 配置 logrotate 接下来我们就来配置 nginx 切割的配置文件,我的 nginx 日志路径在/var/log/nginx 我们在 /etc/logrotate.d/ 目录下新建一个 nginx 的文件…

C++ Primer 总结索引 | 第十六章:模板与泛型编程

1、面向对象编程(OOP)和泛型编程 都能处理在编写程序时 不知道类型的情况。不同之处在于:OOP 能处理类型 在程序运行之前都未知的情况;而在泛型编程中,在编译时就能获知类型了 2、容器、迭代器 和 算法 都是泛型编程的…

【热梗案例】知识点阶段性综合汇总

文章目录 渲染对象、实现统计功能实现删除功能设置发布按钮实现发布按钮的提交功能 直接用CSS的模板&#xff0c;模板代码如下&#xff1a; <template><view class"title">近期热梗</view><view class"out"> <view class&qu…

全面解析BPMN、CMMN、DMN与XML

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 全面解析BPMN、CMMN、DMN与XML 前言BPMN&#xff08;业务流程模型与标记法&#xff09;定义与用途…

[数据结构] 基于插入的排序 插入排序希尔排序

标题&#xff1a;[数据结构] 排序#插入排序&希尔排序 水墨不写bug 目录 &#xff08;一&#xff09;插入排序 实现思路&#xff1a; 插入排序实现&#xff1a; &#xff08;二&#xff09;希尔排序 希尔排序的基本思想&#xff1a; 希尔排序的实现&#xff1a; 正…

MybatisPlus 多数据源 @DS 选择深入源码理解原理

文章目录 MybatisPlus 多数据源 DS 选择深入源码理解原理 MybatisPlus 多数据源 DS 选择深入源码理解原理 数据源的选择&#xff0c;拦截器为DynamicDataSourceAnnotationInterceptor 这里利用了一个MethodInterceptor接口&#xff0c;我们看看&#xff0c;我们可以看到这个包…