Alluxio
ProductsLanguageHome
  • Alluxio概览
  • 用户指南
    • 快速上手指南
    • 架构
    • FAQ
    • 作业服务器
    • 应用场景
  • 核心功能
    • 缓存
    • 统一命名空间
  • 部署 Alluxio
    • 在Kubernetes上部署Alluxio
    • 本地运行Alluxio
    • 在集群上独立运行Alluxio
    • 在Docker上运行Alluxio
    • 在具有HA的群集上部署Alluxio
    • 使用Docker部署AlluxioFuse加速深度学习训练(试验)
    • 基本要求
  • 云源生
    • Tencent EMR
  • 计算应用
    • Apache Spark
    • Presto
    • Spark on Kubernetes
    • Apache Flink
    • Apache Hadoop MapReduce
    • Presto on Iceberg (Experimental)
    • Trino
    • Apache Hive
    • 深度学习框架
    • Tensorflow
  • 底层存储系统
    • Alluxio集成Amazon AWS S3作为底层存储
    • Alluxio集成GCS作为底层存储
    • Alluxio集成Azure Blob Store作为底层存储
    • Azure Data Lake Storage Gen2
    • Azure 数据湖存储
    • Alluxio集成HDFS作为底层存储
    • Alluxio集成COS作为底层存储
    • Alluxio集成COSN作为底层存储
    • Alluxio集成Ceph Object Storage作为底层存储
    • Alluxio集成NFS作为底层存储
    • Alluxio集成Kodo作为底层存储
    • Alluxio集成Swift作为底层存储
    • Alluxio集成WEB作为底层存储
    • Alluxio集成Minio作为底层存储
    • 阿里云对象存储服务
    • Alluxio集成Ozone作为底层存储
    • Alluxio集成CephFS作为底层存储
  • 安全设置
    • 安全性
  • 运维指南
    • 配置项设置
    • 命令行接口
    • 管理员命令行接口
    • Web界面
    • 日志
    • 度量指标系统
    • 远程记录日志
  • 管理
    • 升级
    • 异常诊断与调试
  • APIs
    • Filesystem API
    • S3 Client
    • POSIX API
    • REST API
    • Python Client
    • 兼容Hadoop的Java
    • Go 客户端
  • 开发者资源
    • 编译Alluxio源代码
    • 开发指南
    • 代码规范
    • 如何开发单元测试
    • 文档规范
  • 参考
    • 配置项列表
    • List of Metrics
  • REST API
    • Master REST API
    • Worker REST API
    • Proxy REST API
    • Job REST API
  • Javadoc
Powered by GitBook
On this page
  • 深度学习的数据挑战
  • Alluxio 如何帮助解决深度学习的存储问题
  • 在 Alluxio FUSE上 使用 Tensorflow
  1. 计算应用

深度学习框架

Last updated 6 months ago

随着数据集的增长和计算能力的增强,深度学习已经成为人工智能领域的流行技术。深度学习模型在各个方面的性能都在不断提高,可访问的数据量越来越大,并具备训练规模更大的神经网络的处理能力。深度学习的兴起推动了人工智能最新技术的发展,但也暴露了数据访问和存储系统中存在的一些难题。在此页面中,我们将进一步介绍深度学习工作负载面临的存储挑战,并介绍 Alluxio 如何帮助应对这些挑战。

深度学习的数据挑战

深度学习在机器学习中之所以流行是因为有大量可用数据,而更大的数据量通常会带来更好的性能。当然,不是所有的训练数据都能用于深度学习框架(Tensorflow、Caffe、torch)。例如,深度学习框架已经与一些现有的存​​储系统集成,但并非所有集成的存储都可用。数据的子集可能无法用于训练,从而导致训练性能和效果下降。

计算资源与存储资源逐步分离的趋势使得远程存储系统成为必然。在云计算中使用远程存储系统很常见,可以实现按需资源分配,继而提高资源利用率、灵活性和弹性,并降低成本。当深度学习训练使用远程存储系统中的数据时,数据必须通过网络传输,由此增加深度学习的训练时间。额外的网络 I/O 也将增加成本和数据处理的时间。

Alluxio 如何帮助解决深度学习的存储问题

深度学习中存在一些与数据管理相关的问题,而 Alluxio 可以帮助应对数据访问的挑战。简单来说, Alluxio 是一个虚拟文件系统,它透明地连接到现有的存储系统,并将它们作为一个统一的系统呈现给用户。Alluxio通过,可以将许多存储技术,包括 S3、Azure 和 GCS 等云存储挂载到 Alluxio 中。由于 Alluxio 已经实现与存储系统的集成,深度学习框架只需要与 Alluxio 交互就能够访问任何连接到 Alluxio 的存储中的数据。这样一来,来自任何数据源的数据都可以用于训练,因此可提升模型训练的性能。

Alluxio 还包含一个 FUSE 接口,给用户带来便捷和熟悉的使用体验。Alluxio 实例可以通过 挂载到本地文件系统,因此与 Alluxio 交互就像与本地文件和目录交互一样简单。这使得用户能够继续使用熟悉的工具和范例来与其数据进行交互。由于 Alluxio 可以连接到多个不同的存储,因此用户可以像访问本地文件或目录一样访问任何存储中的数据。

在 Alluxio FUSE上 使用 Tensorflow

在将Alluxio一次性挂载到底层存储后,各类底层存储中的数据都可以通过Alluxio立即访问,并且基准测试也可以在不对Tensorflow或基准测试脚本进行修改的情况下透明地访问数据。这极大地简化了应用程序开发,否则应用程序开发将需要集成每个特定的存储系统并对访问凭证进行配置。

Alluxio还带来了性能上的优势。基准测试以图像/秒(images/sec.)为单位,根据输入训练图像评估训练模型的吞吐量。训练涉及各类资源利用的三个阶段:

  • 数据读取 (I/O):从数据源中选择和读取图像文件。

  • 图像处理 (CPU):将图像记录解码为图像、预处理并将其分成小批次。

  • 模型训练 (GPU):计算和更新多个卷积层中的参数

通过将 Alluxio worker 与深度学习框架并置部署,Alluxio 可将远程数据缓存到本地供将来访问,从而实现数据本地化。如果没有Alluxio,缓慢的远程存储访问可能会导致 I/O 瓶颈并致使 GPU 资源无法得到充分利用。例如,在基准测试模型中,我们发现 AlexNet 的架构相对简单,因此当存储访问变慢时更容易导致 I/O 瓶颈。 Alluxio 在 EC2 p2.8xlarge 机器上可实现近 2 倍的性能提升。

Alluxio 还可以为常用数据提供。这一功能在数据离计算较远时尤其有用。由于 Alluxio 可以将数据缓存在本地,访问数据时不会产生网络I/O,因此可以让深度学习训练更经济高效,并且减少训练所需时间。

本页中我们以 Tensorflow 深度学习框架为例,来介绍Alluxio如何帮助进行数据访问和管理。我们将按照 文档的说明在 Alluxio Fuse 上运行 Tensorflow 基准测试。

本地缓存
Alluxio Tensorflow
统一命名空间
Alluxio FUSE