paint-brush
为人工智能基础设施构建现代数据湖时要牢记的原则经过@minio
12,626 讀數
12,626 讀數

为人工智能基础设施构建现代数据湖时要牢记的原则

经过 MinIO5m2024/02/06
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

人工智能游戏关乎大规模性能,这需要正确的基础。以下是如何明智地构建现代数据湖并奠定正确的基础。

People Mentioned

Mention Thumbnail
featured image - 为人工智能基础设施构建现代数据湖时要牢记的原则
MinIO HackerNoon profile picture
0-item


在采用人工智能的热潮中,有一个至关重要且经常被忽视的事实:任何人工智能计划的成功本质上都与底层数据基础设施的质量、可靠性和性能相关。如果您没有适当的基础,您可以构建的内容和实现的目标就会受到限制。


您的数据基础设施是构建整个人工智能基础设施的基石。这是收集、存储、处理和转换数据的地方。使用监督学习、无监督学习和强化学习的训练模型需要能够处理结构化数据的存储解决方案(例如数据仓库)。另一方面,如果您正在训练大型语言模型 (LLM),则必须管理非结构化数据 - 原始和处理后形式的文档。


现代数据湖(或 Lakehouse)是这两种不同风格的人工智能的基础。现代数据湖是一半数据仓库和一半数据湖,并且所有内容都使用对象存储。最近,我们看到开放表格式的兴起。 Apache Iceberg、Apache Hudi 和 Delta Lake 等开放表格式 (OTF) 使对象存储可以在数据仓库中无缝使用。


数据湖


本文的其余部分将研究如何利用现代 Datalake 的特性,将其与专有数据仓库和设备等传统解决方案区分开来。要为 AI 基础设施奠定基础,您需要满足以下条件:


  • 计算和存储的分解
  • 横向扩展(而非向上)
  • 软件定义
  • 云原生
  • 商品硬件


如果我们同意上述观点,就会出现一系列关注两个性能领域的最佳实践。如果合并,现代 Datalake 将既快速又可扩展。这些最佳实践包括:


  • 优化驱动器价格和性能
  • 整合高速网络

分解计算和存储

在数据基础设施中分解计算和存储意味着计算和存储使用单独的资源。这与传统的存储解决方案形成鲜明对比,在传统的存储解决方案中,所有内容都打包在单个服务器中,或者更糟糕的是,打包在一个设备中。然而,现代数据湖将分解提升到了另一个层次。如果数据湖和数据仓库具有完全不同的存储要求,我们可以使用对象存储的两个单独的实例,如下所示。


Minio Datalake


此外,如果数据仓库需要支持需要冲突配置的工作负载,那么您可以使用多个处理引擎。如下所示。


支持工作负载


可组合的基础架构允许您独立扩展计算和存储资源。这意味着您可以将更多资源分配给基础设施中最需要的部分,而不是同时升级计算和存储。由于您只需投资所需的资源,因此可以实现经济高效的扩展。

横向扩展而不是向上扩展

AI 工作负载是数据密集型,通常分布在多个 CPU 或 GPU 上,使用大量计算能力进行训练,并且需要实时推理。横向扩展(而不是纵向扩展)有助于优化性能并适应高速网络。


横向扩展和纵向扩展是提高数据基础设施容量和性能的两种不同方法。然而,随着 Kubernetes 等集群平台的进步以及越来越多的解决方案努力实现云原生,横向扩展被证明是更可行的方法。在分散的基础设施中横向扩展可以提供:


高可用性和容错性- 如果一个节点繁忙,另一个节点可以接受新请求,从而减少等待时间并提高吞吐量。如果一个节点发生故障,工作负载可以转移到其他节点,从而减少停机时间并确保连续性。


性能和灵活性- 横向扩展可以通过在多个节点或服务器之间分配工作负载来处理更大量的数据和更多并发请求,从而提供更好的性能。横向扩展也更加灵活,因为您可以根据需要添加或删除节点,从而更容易调整以适应波动的工作负载或适应季节性变化。


运营效率和资源效率- 横向扩展时,维护和升级得到简化。您可以在单个存储或计算节点上执行维护,而无需中断整个基础设施,而无需使关键系统离线进行升级。

云原生+软件定义

利用现代数据湖为人工智能奠定坚实基础的最后一个组成部分是采用云原生、软件定义的方法。


Docker 等容器和 Kubernetes 等容器编排工具使云原生架构成为可能。现代 Datalake 的所有组件都在 Kubernetes 中运行的容器中运行。因此,现代 Datalake 是云原生的。


“软件定义”是指软件通常在计算机系统和网络环境中控制和管理硬件组件的配置、功能和行为的方法。这是作为代码移动的基础设施的构建块,其重点是智能软件和快速硬件。软件定义存储通过软件对存储资源进行抽象和管理,使得跨不同设备和存储介质的存储容量分配和管理变得更加容易。

专为速度而打造:NVMe 和 100GbE

为了充分利用您的商用硬件和软件定义架构 - 您还需要两个关键部分。第一个是 NVMe 驱动器。现代、以性能为导向的工作负载、读/写的随机性、小对象的兴起以及 SSD 价格的下降都对以 NVMe 为中心的架构。算一下,预付款可能会更高,TCO 会更低。


第二个组件是 100GbE 网络。在软件定义的世界中,即使在 100GbE 的情况下,网络也成为许多设置的瓶颈。以下是其中一些场景:


数据密集型- AI 工作负载通常处理大量数据集,例如图像、视频、自然语言文本和传感器数据。高速网络可以在存储和处理单元之间快速传输这些大型数据集,减少数据传输瓶颈。


分布式计算——许多人工智能任务涉及跨多个 CPU 或 GPU 的分布式计算。高速网络实现了这些设备之间的高效通信和数据交换,确保计算集群有效地并行工作。


模型训练- 训练深度学习模型,尤其是像 Transformer 或卷积神经网络这样的法学硕士,需要大量的数据和计算能力。高速网络可实现分布式 GPU 之间更快的数据加载和同步,从而显着加快训练时间。


实时推理- 低延迟和高吞吐量网络对于包含人工智能的响应式应用程序至关重要。高速网络可确保用户请求和模型响应之间的延迟最小。

基本概念

通过遵循以下原则:计算和存储的分解、横向扩展而不是向上扩展、愚蠢、快速的硬件和智能云本机软件,企业可以构建一个现代数据湖,该数据湖具有满足这些要求并推动人工智能计划的正确基础向前。


你不可能在一个糟糕的地基上建造一座建筑物,只要问问古埃及人就知道了。人工智能游戏关乎大规模性能,这需要正确的基础。在基础上吝啬就会积累技术债务,几分钟后就会推翻你的叠叠乐塔。智慧构建,打好基础。