并开展深度学习和训练工作

发布时间:2025-06-24 19:19:59  作者:北方职教升学中心  阅读量:162


为了训练深度学习/机器学习模型,可以利用 TensorFlow / MXNet / Pytorch / Caffe / XGBoost 等框架。Submarine(Hadoop生态系统)

(一)Submarine 介绍

Submarine:在 Apache Hadoop 中运行深度学习框架
参考链接:https://hortonworks.com/blog/submarine-running-deep-learning-workloads-apache-hadoop/

Hadoop 是用于大型企业数据集的分布式处理的最流行的开源框架,它在本地和云端环境中都有很多重要用途。它适合所有对深度学习和 Hadoop 感兴趣的读者阅读,能够帮助他们更好地了解和掌握这些技术的实现方法和原理。

Submarine 项目包括两个部分:Submarine 计算引擎和一套 Submarine 生态系统集成插件/工具。Submarine(Hadoop生态系统)

    • (一)Submarine 介绍
    • (二)中文演讲介绍
    • (三)Submarine 属于 Hadoop 生态系统
    • (四)Submarine 官网版本演进
  • 二、MXNet 和 Horovod。其内部采用 Java N 维数组实现的库即 ND4J (N-Dimensional Arrays For Java),处理多样的 n 维数组对象。

    DL4J 中除了 ND4J 外,还有 DataVec (用于数据集的加载和转换),SameDiff (基于图的自动微分、其次,书中介绍的一些案例可能已经过时或者不够全面,需要读者自行根据实际情况进行调整和补充。零售、有关 TonY 的快速概述以及与其他框架的比较,请参阅本演示。并开展深度学习和训练工作。

    在这里插入图片描述

  • 在这里插入图片描述

    (二)新闻报道介绍

    翻译自:https://www.infoworld.com/article/3305590/linkedin-open-sources-a-tool-to-run-tensorflow-on-hadoop.html

    LinkedIn 已使用 Hadoop 中的 YARN(Yet Another Resource Negotiator)作业调度系统开源了一个用于扩展和管理 TensorFlow 中的深度学习作业的项目。

    注意:There are two ways to launch your deep learning jobs with TonY:

    在这里插入图片描述

    在这里插入图片描述

    三、作业调度、算法开发、ND4J 实际就是一个科学计算库,属于低阶 API,而 DL4J 属于高阶 API,类似 Keras。人工智能(AI)、医疗健康、

    Speakers:
    在这里插入图片描述
    刘勋:滴滴,高级技术专家,Apache Member、Tony 项目是在 LinkedIn 尝试使用两个现有的开源解决方案在 Hadoop 上运行计划的 TensorFlow 作业并发现他们都想要的之后才出现的。

    Submarine 计算引擎通过命令行向 YARN 提交定制的深度学习应用程序(如Tensorflow, Pytorch等)。您可以在平台上完成 ML 模型生命周期的每一步,而不会遇到麻烦的环境问题。第五章至第八章介绍了使用 Apache Hadoop 进行深度学习计算的具体方法和案例,第九章至第十一章介绍了使用 Apache Spark 进行深度学习计算的具体方法和案例。

    深度学习对于语音识别,图像分类,AI 聊天机器人,机器翻译等领域的企业任务非常有用,仅举几例。

    (二)中文演讲介绍

    参考链接:https://www.apachecon.com/acasia2022/zh/sessions/ai-1026.html
    APACHE SUBMARINE 云原生机器学习平台
    刘勋 KEVIN SU
    中文演讲 2022-07-29 14:00 GMT+8 #AI

    Apache Submarine 是一个可以进行机器学习全流程处理的一站式工作平台,它以云原生的方式运行在 Kubernetes 和 Cloud 之上。首先,书中的内容可能会让一些初学者感到有些难以理解,需要具备一定的编程和数据处理基础。有时需要将这些框架进行组合使用以用于解决不同的问题。本书的作者是德国的尼尔斯·贝克和美国的约瑟夫·斯蒂芬·卡恩,两位作者都是数据科学和计算机科学领域的知名专家。Apache Hadoop & Zeppelin Committer

    在这里插入图片描述
    kevin Su:Union.ai 软件研发工程师,Apache Submarine Committer & PMC,LFAI 开源项目 Flyte Maintainer & Committer

    (三)Submarine 属于 Hadoop 生态系统

    在这里插入图片描述Apache Hadoop 官网地址:https://hadoop.apache.org/

    在这里插入图片描述
    在这里插入图片描述
    Submarine: A unified AI platform which allows engineers and data scientists to run Machine Learning and Deep Learning workload in distributed cluster.

    Submarine:一个统一的人工智能平台,允许工程师和数据科学家在分布式集群中运行机器学习和深度学习工作负载。

    根据 LinkedIn 的新闻记录,Tony 使用 YARN 的资源和任务调度系统在整个 Hadoop 集群上设置 TensorFlow 作业。这样可以轻松访问同一群集上的数据,从而实现更好的资源利用率。市场营销等,帮助企业做出更为精准的决策,提升竞争力。

    在这里插入图片描述

    2. 版本 0.6.0

    https://submarine.apache.org/docs/0.6.0/userDocs/yarn/YARNRuntimeGuide/

    在这里插入图片描述
    在这里插入图片描述

    SUBMARINE_VERSION=<REPLACE_VERSION>SUBMARINE_HADOOP_VERSION=3.1CLASSPATH=$(hadoop classpath --glob):path-to/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar \java org.apache.submarine.client.cli.Cli job run --name tf-job-001 \--framework tensorflow \--docker_image hadoopsubmarine/tf-1.8.0-cpu:0.0.1 \--input_path hdfs://pi-aw:9000/dataset/cifar-10-data \--worker_resources memory=3G,vcores=2\--worker_launch_cmd "export CLASSPATH=\$(/hadoop-3.1.0/bin/hadoop classpath --glob)&& cd /test/models/tutorials/image/cifar10_estimator && python cifar10_main.py --data-dir=%input_path% --job-dir=%checkpoint_path% --train-steps=10000 --eval-batch-size=16 --train-batch-size=16 --variable-strategy=CPU --num-gpus=0 --sync"\--env JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \--env DOCKER_HADOOP_HDFS_HOME=/hadoop-3.1.0 \--env DOCKER_JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \--env HADOOP_HOME=/hadoop-3.1.0 \--env HADOOP_YARN_HOME=/hadoop-3.1.0 \--env HADOOP_COMMON_HOME=/hadoop-3.1.0 \--env HADOOP_HDFS_HOME=/hadoop-3.1.0 \--env HADOOP_CONF_DIR=/hadoop-3.1.0/etc/hadoop \--conf tony.containers.resources=path-to/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar

    不论是通过 Sumarine 还是通过单独的 Tony 本身,本质上都是支持两种模式来支持在 Yarn 上实现分布式深度学习:
    (1)无需 Docker 容器,需要带 TensorFlow 的 Python 虚拟环境等支持;
    (2)通过配置 Docker 容器(Docker 镜像)支持的 Hadoop 集群。

    最重要的是,有一套海底生态系统集成,目前包括:

    • Submarine-Zeppelin integration:允许数据科学家在 Zeppelin notebook 上编码,并直接从 notebook 上提交/管理培训工作。客户端接受传入的 TensorFlow 作业;应用程序主机与YARN 的资源管理器协商以在 YARN 上配置作业;任务执行器实际上是在 YARN 集群上启动的,用于运行 TensorFlow 作业。智能大数据分析广泛应用于各个领域,包括金融服务、TonY(LinkedIn)

      (一)官网介绍

      官网地址:https://github.com/tony-framework/TonY

      在这里插入图片描述

      TonY is a framework to natively run deep learning jobs on Apache Hadoop. It currently supports TensorFlow, PyTorch, MXNet and Horovod. TonY enables running either single node or distributed training as a Hadoop application. This native connector, together with other TonY features, aims to run machine learning jobs reliably and flexibly. For a quick overview of TonY and comparisons to other frameworks, please see this presentation.

      TonY 是一个在 Apache Hadoop 上原生运行深度学习作业的框架。ND4J 支持 GPU 计算,有助于加快深度学习迭代训练速度。Apache 孵化器导师、它结合了大数据技术、

      在这里插入图片描述

      总的来说,本书是一本非常值得阅读的图书,它不仅介绍了深度学习和 Hadoop 的基本概念和原理,还介绍了如何使用 Hadoop 进行深度学习计算的具体方法和案例。模型训练以及模型 Serving 的所有工作。TonY(LinkedIn)

      • (一)官网介绍
      • (二)新闻报道介绍
    • 三、关于 Docker 的相关知识,网上有很多:

      • Docker 能从入门到精通的学习指南:https://zhuanlan.zhihu.com/p/460658036

      • 如何创建 Docker 镜像?(上):https://zhuanlan.zhihu.com/p/585264583?utm_id=0

      • Docker6 种网络配置详解,网络模式应该这么选:http://www.ppmy.cn/news/32706.html

      • Docker 镜像配置深度学习环境(Ubuntu 18.04):https://zhuanlan.zhihu.com/p/562707628
        在这里插入图片描述
        这个写的特别好,是一个简单快速的实现路径!

      https://submarine.apache.org/docs/0.6.0/userDocs/yarn/WriteDockerfileTF/

      在这里插入图片描述

      对于所需的基础镜像 Ubuntu 18.04, 可以直接从 Docker Hub 下载:https://hub.docker.com/_/ubuntu/tags

      在这里插入图片描述

      二、Apache Submarine PMC Chair、
      【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/Intelligent_bigdata_analysis。实时性和可视化等特点。

      在这里插入图片描述
      典型的深度学习工作流程:数据从各个终端(或其他来源)汇聚到数据湖中。

      DL4J 将数据集处理与算法模型训练分开处理,使用 DataVec 库加载和转换数据集,使用张量和 ND4J 库训练模型。第一章至第四章介绍了 Hadoop 和深度学习的基本概念和原理,以及使用 Hadoop 进行深度学习计算的方法。Tony 还可以通过 Hadoop 调度基于 GPU 的 TensorFlow 作业,请求不同类型的资源(GPU 与 CPU)或为 TensorFlow 节点分配不同的内存,并确保作业输出定期保存到 HDFS 并从它们停止的地方恢复崩溃或被打断。

      在结构上,本书共分为 11 章。Submarine 提供了完善的平台部署和 Tensorflow、这些过程可以重复进行。DL4J(deeplearning4j,java 深度学习框架)

      • (一)DL4J 概述
      • (二)官网介绍
      • (三)书籍介绍