在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Kubeflo的應用與開發

ml8z_IV_Technol ? 來源:cg ? 2019-01-07 14:40 ? 次閱讀

本文將介紹以下三部分內容:第一:Kubeflow的應用;第二:基于 Kubeflow 的開發;第三:Momenta深度學習數據流。

ubeflow的應用

為什么要用 Kubeflow?

在一些 GPU 集群較小的機構(例如實驗室、科研機構等)中,他們一般只有幾臺多卡 GPU。實驗人員可能會將一臺機器或兩臺機器用于安裝各種環境以及 GPU 的驅動,同時使用 Caffe 或 TensorFlow 等工具做模型訓練。這種場景較為簡單,但會帶來一個問題,即人員需要花大量精力管理這幾臺機器的環境。

為了解決這個問題,降低用戶的部署成本,技術人員可以引入容器技術,用 nvidia-docker允許容器使用 GPU,將 TensorFlow、PyTorch 以及 Caffe 封裝到 Docker 鏡像中,用 nvidia-docker 在物理機上面運行訓練任務。

但是以上只是小規模 GPU 集群中的解決方法,一旦集群規模擴大,實驗人員就不得不需要解決這些問題:如何合理地分配 GPU 資源?如果讓每位用戶直接在每臺機器上獲取資源?技術人員如何進行資源管理、環境維護?2017 年年底發行的 Kubeflow 很好地解決了這些難題,它將訓練任務裝到容器中,利用 Kubernetes 對 CPU、GPU 等資源進行充分管理。

什么是 Kubeflow?

Kubeflow 可以看作是 Kubernetes + TensorFlow 的成果。它是一個基于 Kubernetes 的機器學習工具項目,支持眾多訓練框架,包括 TensorFlow、PyTorch、Caffe2、MxNet 等。

Kubeflow 社區在半年多的時間內收集了 4000 多個 stars,發展非常迅速。同時,眾多國內公司也助力了 Kubeflow 的發展,貢獻了很多項目。例如才云貢獻的 tf - operator 項目,Momenta 貢獻的 caffe2 - operator 項目。新浪、京東和拼多多也在嘗試使用 Kubeflow 解決問題。

在 Kubernetes里部署 Kubeflow的方法有很多,常規方法是用 ksonnet 或單獨用 kubectl 手動部署各個 Operator 以及相應的服務。個人用戶也可以很方便地體驗用 Kubeflow 輕松部署一套用于訓練模型的環境。

# CNN_JOB_NAME=mycnnjob # VERSION=v0.2-branch # ks registry add kubeflow-git github.com/kubeflow/kubeflow/tree/${VERSION}/kubeflow # ks pkg install kubeflow-git/examples # ks generate tf-job-simple ${CNN_JOB_NAME} --name=${CNN_JOB_NAME} # ks apply ${KF_ENV} -c ${CNN_JOB_NAME}

以上是直接從 Kubeflow 官網上獲取的一個示例。以往在部署環境時,實驗人員需要預裝很多東西用于模型訓練,但如果使用 Kubeflow,他們就可以很簡單地跑一個已知數、已知模型。如果在其中加入一些參數,程序就可以跑整個 Kubeflow 的任務(僅以 TensorFlow 為例)。

# arena submit tf --name=tf-git --gpus=1 --image=tensorflow/tensorflow:1.5.0-devel-gpu --syncMode=git --syncSource=https://github.com/cheyang/tensorflow-sample-code.git --env=GIT_SYNC_USERNAME=yourname --env=GIT_SYNC_PASSWORD=yourpwd "python code/tensorflow-sample-code/tfjob/docker/mnist/main.py” # arena list NAME STATUS TRAINER AGE NODE tf-git RUNNING tfjob 0s 192.168.1.120

在這個實例中,arena 是另外一套基于 Kubeflow 的封裝,相當于簡化版本的命令行。arena 能幫助算法研發人員減少對 kubectl 的使用,通過命令行指定各種算法參數以及要運行的腳本,直接運行 arena submit 來提交訓練任務。

基于 Kubeflow的開發

為了滿足不同場景需求,目前 Kubeflow 已經擁有許多解決方案,但它們大多比較簡單。如果訓練數據集較大,需求較復雜,開發任務將會涉及很多塊 GPU的使用(例如用 128 塊 GPU 訓練很多天)。

接下來,我們嘗試搭設一個深度學習實驗平臺。這里需要注意的是,我們定義的是 “實驗平臺”,因為 Momenta 的算法研究人員在調參、看論文時需要測試各種各樣的網絡。對他們而言,深度學習實驗平臺非常重要,而且要滿足多種需求。

第一:實驗平臺需要多機多卡調度。比如研發人員有調度 128 塊卡的需求,如果卡不足,就需要等待調度;

第二:多租戶。在多用戶的環境下共用相同的系統或程序組件,且仍可確保各用戶間數據的隔離性;

第三:多訓練框架支持。比如 Caffe、TensorFlow、PyTorch 等;其他的還有日志收集、監控信息收集(如 GPU 的使用率)等。

考慮到以上需求,我們設計了一個訓練平臺架構,如上圖所示。我們在 Kubernetes 前面加了一個帶狀態的 apigateway,它包含用戶信息、狀態管理、后期審計等功能。架構還包括 caffe2 - operator、mpi - operator和TensorFlow 的 Operator,主要是為了能夠統一管理訓練任務的生命周期。此外,該架構還支持運用 kube - batch 實現多機多卡的調度期。圖中的假設比較簡單,每個 Pod都是一個單獨的機器。

如何實現多臺機器間的通訊也是框架的重點。該設計分為兩套環境:

線下的環境使用 Infiniband,借助高速的 RDMA 網絡就能很好地解決延遲問題,并提供非常高的帶寬;

線上的環境使用 25Gb/s 的以太網,其相對于 Infiniband 延遲過高,所以在多機通訊的過程中,需要包一個聚合再下發,才能解決延遲問題。

底層的數據存儲也需要使用分布式數據存儲以及圖像緩存,基于 Momenta 的數據的特征(不需要對圖片進行修改),用戶可以在客戶端加上一些緩存。比如在客戶端安裝高速 SSD,使用開源的 fscache 把數據緩存到 SSD 上,保證整個訓練過程中數據的高速傳輸。用相對比較便宜的 SSD確保昂貴的 GPU的充分使用,這是 Momenta 整套訓練平臺的架構的最大優勢之一。

對具有一定操作經驗的用戶而言,他們更喜歡以命令行的方式操作,習慣用 HPC 領域的 slurm 作為操作工具。為了兼容 slurm 的命令行,Momenta 形成了一套類似 slurm 管理命令行的操作方式。同時,平臺也提供 Web 端的操作方式。

上圖是一個任務提交的案例,包括以下幾點:

定義了幾個節點;

每個節點需要幾個 GPU;

基于哪些的框架(如 TensorFlow、PyTorch 及 Caffe2 等);

當前的工作任務。

我們之所以做出這樣的設計,一個原因是為了兼容舊的使用習慣,讓老用戶能夠無縫遷移。另一個原因是重新設計一套交互方式的時間成本太高,基礎架構開發人員需要花很長時間才能了解平臺用戶在進行深度學習研發的操作行為和操作意圖。

Momenta深度學習數據流

在實現自動駕駛的過程中,深度學習算法在訓練模型時需要大量圖像數據作為支撐。Momenta 平臺可以處理自動駕駛領域的數據流。

數據篩選

上圖是車輛識別的(電動車)的一個典型。目前,Momenta在電動車識別上準確率較高。在人工智能數據流中,數據篩選有以下作用:

降低成本:無需重復標注即可識別素材,降低標注成本。

提高模型訓練效率:去除無效素材,提取包含識別目標的素材,提高訓練效率;

提高模型訓練邊際效用:通過對極端情況(corner case)的數據進行針對性訓練,有效地提高模型性能。

數據標注

經過一輪篩選后,部分圖片會需要人工標注。Momenta 開發的在線遠程眾包數據標注系統允許可視化操作,即便不懂代碼的眾包人員也能遠程完成各類標注任務。數據標注的作用主要是提供更多帶標注的圖像數據,提供包含更多識別目標的素材,最終提高模型訓練精度。

模型訓練

上圖是模型訓練的流程圖:

數據導入:支持多種數據類型,支持多批次數據合并,支持多種組合規則;

模型訓練:多機多卡并發訓練,共享式集群、支持多人多任務同時進行,支持多種主流訓練框架,所有任務由 Kubernetes 自動調度完成;

模型驗證:訓練所得模型自動在驗證集上進行驗證,通過驗證的模型將進入模型倉庫供后續流程使用;

與傳統方式相比,Momenta 采用的共享集群調度讓用戶(內部的算法研發人員)可以編寫任務描述和訓練腳本,而管理員通過網頁界面進行集群管理和工作調度。極大地節省人工成本,提高資源利用率,實現集中性管理,提高安全性。

結語

Kubeflow基于Kubernetes 和 TensorFlow ,提供了一個數據科學工具箱和部署平臺。它具有很多優點,如 DevOps 和 CICD 的支持、多核心支持等。但它的缺點也很明顯,就是組件較多,協調較差。

如何利用 Kubeflow 更好地做二次開發?這是當下的一個熱點問題,也是 Momenta致力于解決的一大問題,是我們圍繞不同級別自動駕駛方案和一級供應商展開合作時首先要解決的一個必要問題。為了見證自動駕駛汽車的落地,為了共同打造更好的人工智能自動駕駛產品,歡迎有想法的小伙伴與我共同探討基于 Kubeflow 的深度學習。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 無人駕駛
    +關注

    關注

    98

    文章

    4083

    瀏覽量

    120729
  • 深度學習
    +關注

    關注

    73

    文章

    5511

    瀏覽量

    121356

原文標題:無人駕駛場景下 Kubeflow 的應用與開發

文章出處:【微信號:IV_Technology,微信公眾號:智車科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AI開發平臺如何賦能開發

    當下,AI開發平臺通過提供豐富的工具集、優化的開發環境以及高效的部署能力,極大地降低了AI應用的開發門檻,加速了創新步伐。那么,AI開發平臺如何賦能
    的頭像 發表于 01-17 14:47 ?19次閱讀

    基于英特爾開發開發ROS應用

    隨著智能機器人技術的快速發展,越來越多的研究者和開發者開始涉足這一充滿挑戰和機遇的領域。哪吒開發板,作為一款高性能的機器人開發平臺,憑借其強大的計算能力和豐富的接口,為機器人愛好者和專業人士提供了一個理想的實驗和
    的頭像 發表于 12-20 10:54 ?1221次閱讀
    基于英特爾<b class='flag-5'>開發</b>板<b class='flag-5'>開發</b>ROS應用

    云端ai開發環境怎么樣

    隨著云計算技術的成熟與普及,云端AI開發環境應運而生,為AI開發者提供了一個高效、靈活、可擴展的開發與部署平臺。下面,一起探討云端ai開發環境怎么樣。
    的頭像 發表于 10-24 09:37 ?215次閱讀

    linux開發板和單片機開發的區別

    硬件架構 Linux開發板和單片機開發在硬件架構上有很大的區別。Linux開發板通常基于ARM、x86或其他處理器架構,具有較高的處理能力和內存容量。而單片機開發則基于微控制器,如80
    的頭像 發表于 08-30 15:30 ?1081次閱讀

    Linux 驅動開發與應用開發,你知道多少?

    一、Linux驅動開發與應用開發的區別開發層次不同:Linux驅動開發主要是針對硬件設備進行編程,處于操作系統內核層,直接與硬件交互,為上層應用提供設備訪問的接口。Linux應用
    的頭像 發表于 08-30 12:16 ?876次閱讀
    Linux 驅動<b class='flag-5'>開發</b>與應用<b class='flag-5'>開發</b>,你知道多少?

    鴻蒙OS開發:典型頁面場景【一次開發,多端部署】(功能開發

    應用開發至少包含兩部分工作: UI頁面開發和底層功能開發(部分需要聯網的應用還會涉及服務端開發)。前面章節介紹了如何解決頁面適配的問題,本章節主要介紹應用如何解決設備系統能力差異的兼容
    的頭像 發表于 05-28 17:32 ?630次閱讀
    鴻蒙OS<b class='flag-5'>開發</b>:典型頁面場景【一次<b class='flag-5'>開發</b>,多端部署】(功能<b class='flag-5'>開發</b>)

    鴻蒙OS開發:【一次開發,多端部署】(視頻應用)

    隨著智能設備類型的不斷豐富,用戶可以在不同的設備上享受同樣的服務,但由于設備形態不盡相同,開發者往往需要針對具體設備修改或重構代碼,以實現功能完整性和界面美觀性的統一。OpenHarmony為開發
    的頭像 發表于 05-25 16:29 ?4576次閱讀
    鴻蒙OS<b class='flag-5'>開發</b>:【一次<b class='flag-5'>開發</b>,多端部署】(視頻應用)

    鴻蒙OS開發:【一次開發,多端部署】(天氣應用)案例

    本章通過一個天氣應用,介紹一多應用的整體開發過程,包括UX設計、工程管理及調試、頁面開發等。
    的頭像 發表于 05-15 15:42 ?1098次閱讀
    鴻蒙OS<b class='flag-5'>開發</b>:【一次<b class='flag-5'>開發</b>,多端部署】(天氣應用)案例

    HarmonyOS開發案例:【一次開發,多端部署(視頻應用)】

    隨著智能設備類型的不斷豐富,用戶可以在不同的設備上享受同樣的服務,但由于設備形態不盡相同,開發者往往需要針對具體設備修改或重構代碼,以實現功能完整性和界面美觀性的統一。OpenHarmony為開發
    的頭像 發表于 05-11 15:41 ?1531次閱讀
    HarmonyOS<b class='flag-5'>開發</b>案例:【一次<b class='flag-5'>開發</b>,多端部署(視頻應用)】

    HarmonyOS開發:【基于命令行(開發環境)】

    在嵌入式開發中,很多開發者習慣于使用Windows進行代碼的編輯,比如使用Windows的Visual Studio Code進行OpenHarmony代碼的開發。但當前階段,大部分的開發
    的頭像 發表于 04-25 17:54 ?1280次閱讀
    HarmonyOS<b class='flag-5'>開發</b>:【基于命令行(<b class='flag-5'>開發</b>環境)】

    鴻蒙開發實戰:基于【Markwon】移植和開發

    本項目是基于開源項目**Markwon**進行適用harmonyos的移植和開發的。
    的頭像 發表于 03-25 16:27 ?852次閱讀
    鴻蒙<b class='flag-5'>開發</b>實戰:基于【Markwon】移植和<b class='flag-5'>開發</b>

    鴻蒙開發用什么語言?

    兩種開發方向 我們常說鴻蒙開發,但是其實鴻蒙開發分為兩個方向: 一個是系統級別的開發,比如驅動,內核和框架層的開發,這種
    的頭像 發表于 01-30 16:12 ?1603次閱讀
    鴻蒙<b class='flag-5'>開發</b>用什么語言?

    鴻蒙開發【應用開發基礎知識】

    通過OpenHarmony提供的Stage模型和ArkUI的eTS聲明式開發規范,結合簡單的Demo,分享學習OpenHarmony/docs/application-dev
    的頭像 發表于 01-29 18:46 ?1393次閱讀
    鴻蒙<b class='flag-5'>開發</b>【應用<b class='flag-5'>開發</b>基礎知識】

    鴻蒙開發【設備開發基礎知識】

    鴻蒙開發基礎知識講解
    的頭像 發表于 01-29 18:44 ?1067次閱讀
    鴻蒙<b class='flag-5'>開發</b>【設備<b class='flag-5'>開發</b>基礎知識】

    鴻蒙next開發-OpenHarmony的NDK開發

    Native API是OpenHarmony SDK上提供的一組native開發接口與工具集合(也稱為NDK),方便開發者使用C或者C++語言實現應用的關鍵功能。
    的頭像 發表于 01-20 11:35 ?1846次閱讀
    鴻蒙next<b class='flag-5'>開發</b>-OpenHarmony的NDK<b class='flag-5'>開發</b>
    主站蜘蛛池模板: 福利视频入口| ggg成人| 免费视频一区二区| 免费午夜网站| 天天摸夜夜摸成人免费视频 | 九九碰| 在线播放免费人成毛片乱码| 天天摸天天插| 奇米奇米| 国产欧美精品午夜在线播放| 插插插天天| 亚洲一区二区三区高清视频 | 欧美黄色免费| 奇米影视四色首页手机在线| 欧美午夜视频一区二区三区| 加勒比精品视频| xxx黄色片| 这里只有精品在线| 色五月视频| 色综合久久综精品| 人人做天天爱夜夜爽中字| 久久艹综合| 国产色爽免费视频| 夜夜嗷| 国产伦精一区二区三区| japanese 69hdxxxx日本| 男女免费观看视频| 天堂影院在线| 五月婷婷六月婷婷| 日本三级人妇| 欧美一级片网址| 欧美色图色就是色| 女人张腿让男桶免费视频观看| 日韩毛片免费在线观看| 久久国产伦三级理电影| 亚洲免费mv| 2019天天操天天干天天透| 男操女免费视频| 一区二区三区四区无限乱码在线观看| 中文字幕在线观看一区二区| 99久久综合国产精品免费|