百度站长工具大全,中企动力宁波分公司,智慧团建注册志愿者入口,门户网站后台管理系统随着 AI 技术的迅速发展#xff0c;模型规模和复杂度以及待处理数据量都在急剧上升#xff0c;这些趋势使得高性能计算#xff08;HPC#xff09;变得越来越必要。HPC 通过集成强大的计算资源#xff0c;比如 GPU 和 CPU 集群#xff0c;提供了处理和分析大规模数据所需的…随着 AI 技术的迅速发展模型规模和复杂度以及待处理数据量都在急剧上升这些趋势使得高性能计算HPC变得越来越必要。HPC 通过集成强大的计算资源比如 GPU 和 CPU 集群提供了处理和分析大规模数据所需的算力。
然而这也带来了新的挑战尤其是在存储系统方面包括如何有效处理大量数据、确保数据访问的高效性以及如何控制成本和运维管理。分布式文件系统作为一种高成本效益高的解决方案正逐渐在 AI 和 HPC 场景中广泛应用。它们通过跨多个节点分布存储资源有效地处理和管理大数据集满足 HPC 对数据存取速度的高要求。
人民大学在人工智能和计算机科学领域进行了多项研究其高性能计算中心为科研提供了强有力的支持并在结合 HPC 与 AI 应用方面积累了一些的经验。本文将为大家介绍 HPC、大数据及 AI 应用的数据模式和特性人大对几款主流分布式文件系统 Lustre、Alluxio 以及 JuiceFS 也做了初步性能测评我们将分享这些测评结果并介绍常用的性能评测工具希望为选择 HPC 和 AI 存储解决方案的用户提供有价值的参考。
01 大规模数据应用场景HPC vs 大数据 vs AI
高性能计算 (HPC)
高性能计算HPC在科学研究和工程应用中发挥着关键作用诸如气候预测、蛋白质折叠以及计算流体力学等领域均依赖于其提供的计算能力。与机器学习和人工智能采用的方法不同HPC 常基于模拟和科学公式推演来解决复杂问题。
在 HPC 中任务可分为计算密集型和数据密集型。例如天气预测既需要大量计算资源模拟天气变化又需处理和分析庞大数据集。而如分子动力学模拟等计算密集型任务则更侧重于计算处理对数据依赖较少。 HPC 环境通常采用高带宽、低延迟的网络如 InfiniBand以支持快速数据传输。软件配置上多节点间的高效数据通信依赖于如消息传递接口MPI这样的标准。
此外GPU 的应用在 HPC 中也日益增多加速各类计算任务。HPC 集群与传统数据中心相比显著区别在于其网络配置和共享文件系统的使用这些特点使得 HPC 能够有效处理计算密集型任务。
大数据
区别于 HPC大数据应用在互联网公司的运用更为普遍主要是因为这些公司可以持续收集庞大的用户数据量如用户行为和上传内容等。这些通常是非结构化的数据比如图片、音频和视频。
在这些公司中大数据工程师常常负责 ETL 工作即提取、转换和加载数据到数据仓库在那里数据会被加工整理以供分析或机器学习使用。这与 HPC 的计算密集型任务不同大数据应用更侧重于数据的处理和分析。 成本是大数据应用的一个重要考量互联网公司倾向于使用性价比高的标准硬件和开源软件以控制成本。例如Hadoop 这样的开源软件因其强大的社区支持和成熟性而广受欢迎。互联网公司可以根据自身需求选择合适的软件解决方案无论是采用开源版本以利用其优势还是选择商业版本以获得更多支持。
AI
近年来人工智能AI领域的发展已经广为人知其工作负载主要包括训练和推理。特别是随着大型模型如 GPT 和 Bert 的出现AI 对高性能计算HPC的依赖日益加深这些复杂的模型迫切需要依靠强大的计算资源来缩短训练时间同时它们也带来了如何高效管理和分析海量数据的挑战。 在这个背景下文件系统面临特殊要求尤其是处理众多小型的图片或视频文件时这些文件通常只有几 KB 到几 MB 大小对 IOPS 提出了高要求。
此外在 AI 模型的训练过程中还有一个显著特点即同一份数据可能会被用于多种不同参数的调优。这意味着算法工程师会不断地对模型结构进行调整和优化包括尝试不同的参数设置、修改网络架构以及实验各种优化技巧。
因此AI 模型训练不仅是一个计算密集型的任务同时也是一个需要精细操作和细致调整的过程。这种对参数和模型结构不断调整的方法是实现高效、精准 AI 模型的关键。
正是基于这种背景数据预处理在 AI 模型训练中显得尤为关键。举一个实际的例子来自hugging face 子公司开发的大型模型展示了数据预处理的重要性。在处理大型模型的数据时他们设定了一个较长的处理流程。从最初收集的原始外部网页数据开始经过多次预处理如URL 过滤、去重等步骤原始数据量被大幅压缩。
通过下图可以看到每个步骤都在逐渐减少数据集的大小。经过一系列处理后最终只有不到10% 的数据量适合用于训练大型语言模型LLM。因此我们看到在大型模型的训练过程中数据预处理占据了大量工作包括清洗数据、提取 HTML 标签、过滤广告和文本识别等复杂任务。这些步骤虽然繁重但对于保证数据质量和优化训练结果至关重要。 02 AI 应用与分布式文件系统的演进
首先让我们一同简单回顾文件系统的演变历程其中每一个阶段的新兴需求都催生了新一代的文件系统。 Lustre 是最早期的文件系统之一专为高性能计算HPC设计由美国政府资助并由多个国家实验室共同开发以支持科学研究。 随后Hadoop S3 等文件系统的出现主要是为了应对互联网数据量的爆炸性增长与此同时也出现了Ceph 等面向大数据处理的文件系统。这些系统旨在支持大数据应用。Alluxio 提供了一个内存缓存层。 AlexNet 神经网络等技术的发展进一步推动了文件系统的多样化。 进入到 Kubernetes 时代云原生数据管理和应用逐渐成为焦点众多新兴的数据管理系统和应用如 JuiceFS 等都是为了适应这一环境而设计的。 文件系统作为数据存储和访问的基础设施对于 AI 模型的训练和推理过程有着直接的影响。将文件系统应用于 AI 场景时往往面临这两个关键挑战。 对 IOPS 的性能要求首要挑战是处理包含大量小文件的数据集如图片和视频这对文件系统的IOPS提出了高要求。当前带宽通常足够但文件系统的 IOPS 处理能力往往限制了性能。 对兼容性的要求AI 工作流程的复杂性和跨业务团队的协作要求文件系统必须具有高度的兼容性以支持各种数据处理和模型训练工具确保数据能够在团队间顺畅交换和处理。
为提高性能一些解决方案采用了 SSD 或 NVMe 等高性能存储介质并实施本地缓存策略。这里简单介绍一下学术界的一个常见概念Burst Buffer 主要指通过临时存储大量数据来缓解传统存储系统在处理高速数据流时的瓶颈。在这方面不同的文件系统提供了各自独特的解决方案会在下文逐一介绍。
同时在解决兼容性问题时提供 POSIX 接口确保了兼容性和可移植性也能解决用户的学习成本。POSIX 指的是 Linux 操作系统一系列文件接口可以支持 POSIX 的文件系统可以像操作本机一样操作分布式文件系统。但从开发的角度来看实现 POSIX 兼容性可能增加了额外的开发成本和复杂性。而 HDFS 和 S3 这类产品则未采用 POSIX 完全的兼容性简化了某些方面的实现但它们也要求开发人员或用户适应新的操作模式这可能涉及改变现有的使用习惯和学习新的工具。 接下来将分别介绍几款适用于 AI 场景的文件系统希望能够帮助用户更好地理解各个文件系统在 AI 应用的优势和局限。
Lustre
Lustre 在 HPC 场景中表现出色的原因在于它从设计之初就是为了满足超级计算机的需求特别是它对 POSIX 协议的支持以及使用 C 和 C 进行开发这些特性使得 Lustre 非常适合于处理大规模并行计算任务。 Lustre 的架构特别适用于典型的超算集群环境其中包括使用 InfiniBand 网络进行高速数据传输。集群中包含了多个计算节点Computation和存储节点Data Management用于处理元数据的 Metadata server而实际的数据则存储在对象存储object storage上。这种设计优化了对 MPI 应用的支持特别是 MPI-IO即多个进程同时对一个文件进行读写的能力这对于并行计算和科学研究应用尤为重要。
虽然在 AI 和机器学习应用中MPI-IO 的直接应用可能较少主要因为这些应用的文件操作主要写入 checkpoint而不涉及分布式进程的直接写入。然而对于需要并行处理和复杂数据交互的科学计算应用MPI-IO 这样的特点仍然极其重要。
在缓存方面Lustre 文件系统近期提供了一个功能叫做 PCCLustre Persistent Cache on Client。但实际操作中它需要运维人员进行大量的配置。
Alluxio
我们尝试部署了Alluxio 作为数据缓存层。Alluxio 的设计理念主要是作为底层存储系统例如 HDFS 或 S3 之上的缓存以此加速数据访问的速度Alluxio 特别适用于大数据场景如配合 Spark 等大数据处理系统使用。
在 AI 和机器学习应用场景下的测试表明性能未达到预期。在 AI 场景中特别是当首次请求包含大量小文件的数据集时这一过程极为缓慢。以 ImageNet 数据集为例我们注意到首次将数据加载到 Alluxio 可能需要几个小时这对性能造成了严重影响。据最新消息Alluxio 也针对这个问题做了优化提供了专门为 AI 设计的存储方案目前为商业版没有开源。 JuiceFS
我们对 JuiceFS 社区版进行了初步的 POC 测试尚未在在我们的生产系统中全面部署。
JuiceFS 是一款高性能的云原生分布式文件系统。它的设计目标是在云环境下提供高效的数据存储和访问能力。
在 JuiceFS 中数据被分块存储在如 S3 等对象存储中元数据则存储在如 Redis、MySQL 或 PostgreSQL 这样的数据库系统中。这种设计使得元数据管理既高效又灵活。客户端通过挂载 FUSEFilesystem in Userspace接口来访问 JuiceFS这使得它能够在多种操作系统上无缝运行。同时JuiceFS 还为用户提供了一个熟悉的文件系统接口 POSIX。另外JuiceFS 的缓存功能可以直接支持 burst buffer。 从成本角度来看JuiceFS 的运营成本远低于传统的磁盘阵列。这主要得益于其云原生的设计能够有效利用云存储资源减少物理硬件的依赖。
03 测评工具和 PoC 结果
在评估文件系统性能时iozone, mdtest 和 fio 等 benchmark 工具被广泛用于测试 IOPS 和带宽。然而标准的 benchmark 工具无法完整地反映真实业务场景下的需求和负载特性为了得到更接近实际工作负载的性能评估MLPerf 这样的工具被设计出来。
MLPerf 模拟了真实的 AI 工作负载进行评估提供了一系列的测试。在计算机视觉领域它可采用 ResNet 模型进行测试而在文本处理领域可能会使用 GPT-3 或 BERT 模型并在维基百科或 C4 数据集上进行测试。
下面这张图表概述了在不同领域中 AI 性能基准测试的标准包括视觉、语言处理和推荐系统等。它指定了每个测试所用的数据集旨在达到的性能目标如准确率、错误率等以及各个测试的参考模型如 ResNet、BERT、GPT-3等。这为评估和比较 AI 模型的性能提供了一套统一的框架。 PoC 结果
以下是我们的初步测试结果。我们使用 fio 进行了测试比较了 Lustre 、JuiceFS 和 XFS。 在 IOPS 和带宽读取性能上配置了全 NVMe 闪存的 Lustre 表现出了非常高的性能。 在 PyTorch 上运行 ImageNet 数据集的测试中所有文件系统完成任务的时间都相近JuiceFS S3 和 xfs local SSD 共享最低。 在进行大型语言模型LLM的 checkpoint 测试时Lustre all flash 只用了1分钟远快于 Lustre HDD 的 10 分钟。 04 小结
本文分享了 HPC、大数据和 AI 等需要处理大规模数据的场景及其数据特性。介绍了适用于 AI 场景的常见文件系统及其优缺点并展示了人大高性能计算中心的内部测试结果。
企业在选择文件系统时不仅要参考 benchmark 结果还需考虑实际业务需求和成本。对于运维能力有限的企业像 Lustre 这样有着完善支持的文件系统更加合适。而有运维能力的公司可能会倾向于成本效益更高的开源解决方案。最终的选择需要综合考虑成本、运维能力和其他因素。
希望这篇内容能够对你有一些帮助如果有其他疑问欢迎加入 JuiceFS 社区与大家共同交流。