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

news2024/9/27 12:07:54

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.coloradmin.cn/o/1914488.html

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

相关文章

嘎嘎详细的三维变换详细讲解,包括视图变换、投影变换等,超级通俗易懂!

前置二维空间的各种变换笔记:二维变换 三维空间中的齐次坐标 从二维变换开始引申,可得到三维中的一个点的表达方式为 ( x , y , z , 1 ) ⊤ (\mathbf{x}, \mathbf{y}, \mathbf{z}, 1)^{\top} (x,y,z,1)⊤,也就是w1,而三维的向量…

插入排序算法(C语言版)

直接插入排序 插入排序(insert sort)是一种简单的排序算法,它的工作原理与手动整理一副牌的过程非常相似。 具体来说,我们在未排序区间选择一个基准元素,将该元素与其左侧已排序区间的元素逐一比较大小,并…

了解劳动准备差距:人力资源专业人员的战略

劳动准备差距是一个紧迫的问题,在全球人事部门回应,谈论未开发的潜力和错过的机会。想象一下,人才和需求之间的悬崖之间有一座桥,这促使雇主思考:我们是否为员工提供了足够的设备来应对未来的考验? 这种不…

认识R155法规(UN Regulation No. 155)-MUNIK

背景 Background 随着汽车新四化(电动化、智能化、网联化、共享化)政策的提出,大数据和人工智能等技术的发展,以及软件驱动汽车、舱驾一体、行泊一体等新型架构概念的提出,车内外智能传感器采集的大量数据&#xff08…

桌面悬浮备忘录哪个好?能在桌面悬浮使用的备忘app

备忘录是我们日常工作和生活中的常用工具,它帮助我们记录重要信息,提醒我们完成各项任务。而将备忘录悬浮在桌面上使用,无疑能进一步提高我们的工作效率。想象一下,在处理复杂的工作任务时,你能够随时在桌面上查看提醒…

求函数最小值-torch版

目标:torch实现下面链接中的梯度下降法 先计算 的导函数 ,然后计算导函数 在处的梯度 (导数) 让 沿着 梯度的负方向移动, 自变量 的更新过程如下 torch代码实现如下 import torchx torch.tensor([7.5],requires_gradTrue) # print(x.gr…

【xinference】(15):在compshare上,使用docker-compose运行xinference和chatgpt-web项目,配置成功!!!

视频演示 【xinference】(15):在compshare上,使用docker-compose运行xinference和chatgpt-web项目,配置成功!!! 1,安装docker方法: #!/bin/shdistribution$(…

【SVN-CornerStone客户端使用SVN-多人开发-解决冲突 Objective-C语言】

一、接下来,我们来说第三方的图形化界面啊, 1.Corner Stone:图形化界面,使用SVN, Corner Stone的界面,大概就是这样的, 1)左下角:是我们远程的一个仓库, 2)右上角:是我们本地的一些东西, 首先,在我的服务器上,再开一个仓库,叫做wechat, 我在这个里边,新建…

红队常用命令速查大全(非常详细)零基础入门到精通,收藏这一篇就够了

这里我整合并且整理成了一份【282G】的网络安全/红客技术从零基础入门到进阶资料包,需要的小伙伴文末免费领取哦,无偿分享!!! 对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以…

开放式耳机什么品牌好?四款音质好的开放式耳机推荐

长时间佩戴耳机,舒适度成为了不可忽视的因素。开放式耳机通常采用轻量化材料和透气耳垫,减轻耳朵的负担,即使长时间聆听,也能保持耳朵的舒适与干爽。 然而,众多品牌的开放式耳机琳琅满目,究竟哪个品牌的开…

从重庆元宇宙国风秀看未来元宇宙发展趋势

2024年2月24日,为纪念梅兰芳先生诞辰130周年,以“新国风东方美”为主题的【承华灵境】元宇宙国风秀在重庆市人民大礼堂发布。这场活动将中国经典艺术与数字化技术融合,呈现了一场新国风东方美学的跨越时空人文科技之旅,其中的重点…

【Linux】数据流重定向

数据流重定向(redirect)由字面上的意思来看,好像就是将【数据给它定向到其他地方去】的样子? 没错,数据流重定向就是将某个命令执行后应该要出现在屏幕上的数据,给它传输到其他的地方,例如文件或…

前端发布项目后,解决缓存的老版本文件问题

最近碰到如题目所说的问题,用了思路一的解决方法,结束之后又上网看技术大牛们的解决方法,总结得出下面的文章。 方式一:纯前端 每次打包发版时都使用webpack构建一个version.json文件,文件里的内容是一个随机的字符串…

递归(五)—— 初识暴力递归之“如何利用递归实现栈逆序”

题目:要求不使用额外的数据结构,仅利用递归函数实现栈的逆序。 题目分析: 利用实例来理解题意,栈内元素从栈底到栈顶一次是3,2,1 ,要求经过处理后,栈底到栈顶依次是1,2…

FastAPI 学习之路(三十五)项目结构优化

之前我们创建的文件都是在一个目录中,但是在我们的实际开发中,肯定不能这样设计,那么我们去创建一个目录,叫models,大致如下。 主要目录是: __init__.py 是一个空文件,说明models是一个package…

前端面试39(关于git)

针对前端开发者的Git面试题可以覆盖Git的基础概念、常用命令、工作流程、团队协作、以及解决冲突等方面。以下是一些具体的Git面试 Git基础知识 什么是Git? Git是一个分布式版本控制系统,用于跟踪计算机文件的更改,并协调多个人共同在一个项…

最简单详细的jwt用户登录校验教程(新手必看)

首先简单建张用户表。 DROP TABLE IF EXISTS user; CREATE TABLE user (id bigint NOT NULL AUTO_INCREMENT,name varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,username varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL…

C++ 编译体系入门指北

前言 之从入坑C之后,项目中的编译构建就经常跟CMake打交道,但对它缺乏系统的了解,遇到问题又陷入盲人摸象。对C的编译体系是如何发展的,为什么要用CMake,它的运作原理是如何的比较感兴趣,所以就想系统学习…

迁移至 AI-Ready 基础架构:日立内容平台至 MinIO

借助我们的 HCP-to-MinIO 工具,从 Hitachi Content Platform (HCP) 过渡到 MinIO 从未如此简单。该工具旨在支持客户不断变化的存储需求,可在 GitHub 上免费获得,大大简化了迁移过程。许多组织正在转型,以利…

台灯怎么选对眼睛好?六大重点教你台灯怎么选不踩雷

根据2024年国家卫健委最新公布的数据,我国儿童青少年总体近视率为52.7%,其中,小学生为42%,初中生为80.7%,高中生为85.7%。儿童的学习环境对学习效果和视力健康都有很大影响。面对日益严峻的近视形势,家长和…