您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[Alluxio]:大模型制胜宝典 - 发现报告

大模型制胜宝典

2024-01-30Alluxio测***
AI智能总结
查看更多
大模型制胜宝典

解密AI高效数据访问策略 机器学习工作流的架构和考量 该白皮书全面介绍了现代AI/ML平台中的数据访问模式,并探讨了机器学习流程各个阶段中数据访问的特征,以及在构建数据和AI平台时可选用的解决方案。 摘要 目前,人工智能(AI)技术的应用正在迅速发展,49%的企业首席信息官(CIO)表示正在使用或计划使用AI技术[1]。如今兴起的生成式AI进一步加速了AI应用,使得AI成为增加企业营收、提高客户满意度和企业生产效率的当务之急。 AI项目成功的关键在于数据访问,因此为应用程序迅速提供数据的能力至关重要。随着AI应用场景日趋复杂化,我们需要了解数据访问模式并采取合适的解决方案。 该白皮书全面介绍了现代AI/ML平台中的数据访问模式,并探讨了机器学习流程各个阶段中数据访问的特征,以及在构建数据和AI平台时可选用的解决方案。 目录 摘要1 1. 数据访问 – AI应用落地面临的障碍3 2.揭秘机器学习工作流中的数据访问模式6 2.1机器学习工作流的各个阶段7 2.2数据访问模式2.2.1什么是数据访问模式?2.2.2机器学习工作流中的数据访问模式2.2.3单云数据访问模式2.2.4多云/多区域数据访问模式2.3需考虑的因素889101112 3.优化AI/ML平台中的数据访问 - 架构和基准测试14 3.1架构概览3.2 由Alluxio赋能的模型训练的性能和GPU利用率基准测试3.2.1深度学习算法和数据集3.2.2部署和设置3.2.3基准测试结果1516161617 4.实际应用场景 4.1金融科技巨头-支付宝, 加速数十亿小文件上的大型计算机视觉训练4.2头部在线内容社区-知乎,通过优化GPU利用率达到90%加速模型训练和部署 5.总结22 关于作者24 第一章数据访问 – AI应用落地面临的障碍 一、数据访问 – AI应用落地面临的障碍 数据访问是AI应用落地中的一项重大挑战。Gartner研究发现,数据可访问性是AI应用落地的最大障碍[2]。 数据访问之所以影响AI项目成功,原因有以下几个方面: 高质量的AI模型需要访问大规模数据集 与传统的企业应用程序相比,AI任务需要的数据量要大的多。AI模型的质量和准确性在很大程度上取决于是否能够访问大量的训练数据。要高效应用AI,对数据的需求不仅仅在于数据量大小,还与数据多样性和复杂度有关。访问数据的能力会大大影响AI项目的整体结果。 无论是在混合云/多云还是单云环境中,数据访问速度均慢且成本高 对于企业而言,相关的数据集通常位于不同的云环境、数据中心或地理区域。AI应用需要能够访问任意位置的数据。跨分布式云环境访问数据可能会导致明显延迟,以及较高的云存储API成本和流量成本。即使在单一云环境/地理区域的情况下,由于大多数持久化存储是为低成本存放海量数据而设计的,因此也会面临数据访问性能低下的挑战。 一、数据访问 – AI应用落地面临的障碍 增加模型大小会降低应用性能 随着AI技术的发展,AI模型变得越来越大、越来越复杂。根据 OpenAI 的研究,最先进的AI模型规模平均每3-4个月就会增加1倍 [3]。此外,为了追求准确性,模型需要经常更新并重新部署上线。对于下游应用来说,对大模型文件进行高并发访问难度很大。 GPU 实例的可用性有限,需要进行远程数据传输 如今,GPU 已成为稀缺资源。例如,配备 A100 GPU 的 Amazon EC2 P4 实例可能仅在某些AWS 区域 [4] 可用,而训练数据则位于远端。因此将数据传输到 GPU 实例进行模型训练时,会导致模型训练缓慢且流量成本高昂。 GPU 等待数据获取,导致 GPU 利用率不足 GPU是AI任务的重要加速器。但是,GPU的单位时间算力成本高昂。最大限度地提高 GPU 利用率并减少数据访问导致的GPU空闲等待时间至关重要。这其中的挑战在于如何能持续向GPU提供数据从而避免计算闲置。因此,数据访问速度成为瓶颈。 要想应对数据访问中的挑战,需要充分了解 ML工作流各个阶段的数据访问特征。 第二章揭秘机器学习工作流中的数据访问模式 二、揭秘机器学习工作流中的数据访问模式 2.1机器学习工作流的各个阶段 机器学习工作流包括模型开发生命周期的以下阶段: 数据导入是将来自不同数据源的数据导入主数据工作流的步骤,可通过数据集成工具来完成,该工具可以从各种数据源提取、转换和加载数据。数据预处理是为模型训练准备数据的过程,包括清理数据、剔除异常值以及将数据转换为模型可以使用的格式。特征工程也是数据预处理的一部分,包含从现有数据创建新特征。模型训练是建立可基于数据进行预测的模型,通过使用机器学习算法识别数据模式来完成。处理后的训练数据和再训练数据将被用于执行 ML流程(例如 A/B 测试、模型调优和超参数调优)。模型部署是使模型可用于生产环境的过程,包括将模型打包并让需要使用它的应用程序可对其进行访问。模型推理是使用模型进行预测的过程,包括将新数据输入模型并通过模型进行预测。模型的推理结果,包括模型分数、输出数据流和数据分析结果,都会影响下游应用程序的运行。 机器学习工作流是包含反馈环路的不断迭代的过程。一旦模型部署完成,需要衡量其有效性,并且用最新的训练数据优化和升级模型,从而生成更好的模型训练结果。 二、揭秘机器学习工作流中的数据访问模式 2.2数据访问模式 2.2.1什么是数据访问模式? 数据访问模式是指从存储系统中访问数据的方式和特征。该模式提供了可用来优化数据处理工作流和存储系统的重要信息。数据访问模式主要包括: 访问类型:指的是在打开文件后执行的操作,例如读取和写入操作;以及访问的特征,例如只读、只写等。 访问模式:可以是随机读/写或顺序读/写。随机访问根据应用程序逻辑以任意次序对数据块进行读/写访问。顺序访问对数据块按照线性次序从头到尾进行读写访问。 文件大小:单个文件的大小,可分为以下类型: 1)小: <100KB2)中: 100KB~100MB3)大: 100MB~100GB 文件数量:访问的数据集中的总文件数。可分为以下类型: 1)小: < 1千2)中:1千~ 1 百万3)大量:1百万 ~1亿4)海量:1亿 ~1百亿或以上 文件格式:数据的格式包括结构化(如Parquet、ORC)和非结构化(如JPEG图像) 二、揭秘机器学习工作流中的数据访问模式 2.2.2机器学习工作流中的数据访问模式 机器学习工作流的每个阶段都具有不同的数据访问模式和相应的需求。数据导入和模型训练要求高吞吐,预处理要求处理混合读写,而推理则要求低延迟和高吞吐。 表1显示了机器学习工作流的不同阶段以及相应的数据访问模式: 数据导入任务通常采用顺序访问模式,访问各种类型和大小的文件。该任务通常对于延迟不敏感,除非是流数据处理场景。写入占到该任务输入/输出操作的90%。 数据预处理任务会同时使用随机和顺序访问。该类任务具有平衡的读写模式,会访问多种数据类型和数据源,并管理各种大小的文件。实时数据处理要求低延迟,而批量数据处理需要高吞吐。模型训练、部署和推理任务通常采用顺序访问模式,以处理同一种类型的小文件为主。该类任务要求低延迟和高吞吐,并且可通过 GPU 加速获得显著的性能提升。另一方面,数据分析算法在传统 CPU 上运行速度更快。 不同的访问模式需要对基础设施进行不同的优化。 数据导入要求高写入吞吐,训练要求高读吞吐和高GPU利用率,部署要求低延迟和高并发, 推理要求低延迟和高可用。 二、揭秘机器学习工作流中的数据访问模式 2.2.3单云数据访问模式 在单云或单个数据中心进行模型训练时,不同类型的训练数据集会要求不同的数据访问模式,而不同的数据访问模式会影响数据访问的性能。 使用非结构化数据集进行训练 当访问非结构化数据(例如 JPEG 或 GIF)时,数据访问模式大多是顺序读取整个文件。当读取包含超过1万个文件的生产环境ML数据集时,这种类型的读取模式会导致无论冷读还是热读(其中热读指命中本地 NVMe 存储上的本地缓存)都采用流式(顺序)读取而非随机读。 使用结构化数据集进行训练 当访问结构化数据(例如 Parquet 或 ORC)时,数据访问模式大多是小文件随机读。当我们对生产环境中的ML 数据集启用4个线程的读取操作时,该类型的读取模式导致在读取大型ML结构化数据集时,无论是热读取还是冷读取,随机读都优于流式读取。 二、揭秘机器学习工作流中的数据访问模式 2.2.4多云/多区域数据访问模式 在某些情况下,机器学习工作流的不同阶段可能跨地理区域或云环境。例如,可在一个区域中对导入的数据进行预处理,在另一区域中对模型进行再训练,然后在一个或多个其他区域中执行模型推理。 选择多区域、多云策略是出于成本、性能和服务能力的综合考虑。首先,企业通常希望能以成效比最高的方式利用云资源。其次,推理阶段通常需要在地理区域上更靠近终端用户,从而降低延迟。再者,一些云厂商可以提供其他云厂商无法提供的专有资源或服务。例如,Google Cloud 提供 TPU,AWS 提供 SageMaker。 二、揭秘机器学习工作流中的数据访问模式 2.3需考虑的因素 理解了数据访问模式和要求后,当我们为了优化数据访问而设计和搭建架构时,需要考虑解决方案的性能、可扩展性和可靠性,从而确保充分实现AI基础设施的投资价值。 数据访问解决方案应支持以下方面: ML任务的高性能和高吞吐数据集管理,包括从数据湖加载/卸载/更新数据云原生功能,例如多租户、可扩展性和弹性消除数据冗余,避免管理多个数据副本减少对专用网络硬件的依赖无论数据位于何处,都可以灵活地在任何位置部署计算对云厂商无感知,避免被厂商锁定具有前瞻性,能适应存储和计算技术的发展安全性,包括统一的身份验证和授权 Alluxio提供可满足上述所有要求的解决方案。Alluxio能将机器学习引擎与不同的存储系统连接起来,并跨区域和跨云将数据虚拟化,以统一的方式访问和管理来自不同数据源的数据。 Alluxio 提供针对按需数据访问进行优化的架构,能在恰当的时间访问正确的位置来获取数据。 Alluxio带来以下价值: 自动从现有数据湖加载/卸载/更新数据。基于数据访问模式更快地访问训练数据。提供高数据吞吐,确保最佳数据访问性能,从而让 GPU得到充分利用。加速模型部署,并为推理节点提供高并发模型服务。无需管理数据副本,从而提高数据工程团队的效率。降低云存储API和流量成本,例如S3 GET请求的成本、数据传输成本等。 二、揭秘机器学习工作流中的数据访问模式 第三章 优化AI/ML平台中的数据访问- 架构和基准测试 - 三、优化AI/ML平台中的数据访问 - 架构和基准测试 3.1架构概览 在本节中,我们将重点关注 ML工作流的模型训练和模型服务(部署)这些资源密集型阶段。以下是使用Alluxio 进行模型训练和模型服务的参考架构。 在此参考架构中,训练数据存储在中心化数据存储平台,例如AWS S3或GCS(GoogleCloud Storage)中。 部署Alluxio后能够帮助实现模型训练集群对训练数据的无缝访问。PyTorch、TensorFlow、scikit-learn 和 XGBoost等ML训练框架都在 CPU/GPU/TPU 集群上层执行。这些框架利用训练数据生成机器学习模型,模型生成后被存储在中心化模型库中。 在模型服务阶段,使用专用服务/推理集群,并采用 TorchServe、TensorFlow Serving、Triton 和 KFServing 等框架。这些服务集群通过 Alluxio 从模型存储库中获取模型。模型加载后,服务集群会处理输入的查询、执行必要的推理作业并返回计算结果。 训练和服务环境都基于 Kubernetes,有助于增强基础设施的可扩展性和可重复性。 三、优化AI/ML平台中的数据访问 - 架构和基准测试 3.