日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

解锁云原生 AI 技能|在 Kubernetes 上构建机器学习系统

發布時間:2025/3/20 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解锁云原生 AI 技能|在 Kubernetes 上构建机器学习系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本系列將利用阿里云容器服務,幫助您上手 Kubeflow Pipelines.

介紹

機器學習的工程復雜度,除了來自于常見的軟件開發問題外,還和機器學習數據驅動的特點相關。而這就帶來了其工作流程鏈路更長,數據版本失控,實驗難以跟蹤、結果難以重現,模型迭代成本巨大等一系列問題。為了解決這些機器學習固有的問題,很多企業構建了內部機器學習平臺來管理機器學習生命周期,其中最有名的是 Google 的 Tensorflow Extended, Facebook 的 FBLearner Flow, Uber 的 Michelangelo,遺憾的是這些平臺都需要綁定在公司內部的基礎設施之上,無法徹底開源。而這些機器學習平臺的骨架就是機器學習工作流系統,它可以讓數據科學家靈活定義自己的機器學習流水線,重用已有的數據處理和模型訓練能力,進而更好的管理機器學習生命周期。

談到機器學習工作流平臺,Google 的工程經驗非常豐富,它的 TensorFlow Extended 機器學習平臺支撐了 Google 的搜索,翻譯,視頻等核心業務;更重要的是其對機器學習領域工程效率問題的理解深刻,Google 的 Kubeflow 團隊于 2018 年底開源了 Kubeflow Pipelines(KFP), KFP 的設計與 Google 內部機器學習平臺 TensorFlow Extended 一脈相承,唯一的區別是 KFP 運行在 Kubernetes 的平臺上,TFX 是運行在 Borg 之上的。

什么是 Kubeflow Pipelines

Kubeflow Pipelines 平臺包括:

  • 能夠運行和追蹤實驗的管理控制臺
  • 能夠執行多個機器學習步驟的工作流引擎 (Argo)
  • 用來自定義工作流的 SDK,目前只支持 Python

而 Kubeflow Pipelines 的目標在于:

  • 端到端的任務編排: 支持編排和組織復雜的機器學習工作流,該工作流可以被直接觸發,定時觸發,也可以由事件觸發,甚至可以實現由數據的變化觸發;
  • 簡單的實驗管理: 幫助數據科學家嘗試眾多的想法和框架,以及管理各種試驗。并實現從實驗到生產的輕松過渡;
  • 通過組件化方便重用: 通過重用 Pipelines 和組件快速創建端到端解決方案,無需每次從 0 開始的重新構建。

在阿里云上運行 Kubeflow Pipelines

看到 Kubeflow Piplines 的能力,大家是不是都摩拳擦掌,想一睹為快?但是目前國內想使用 Kubeflow Pipeline 有兩個挑戰:

  • Pipelines 需要通過 Kubeflow 部署;而 Kubeflow 默認組件過多,同時通過 Ksonnet 部署 Kubeflow 也是很復雜的事情;
  • Pipelines 本身和谷歌云平臺有深度耦合,無法運行在其他云平臺上或者裸金屬服務器的環境。
  • 為了方便國內的用戶安裝 Kubeflow Pipelines,阿里云容器服務團隊提供了基于 Kustomize 的 Kubeflow Pipelines 部署方案。和普通的 Kubeflow 基礎服務不同,Kubeflow Pipelines 需要依賴于 mysql 和 minio 這些有狀態服務,也就需要考慮如何持久化和備份數據。在本例子中,我們借助阿里云 SSD 云盤作為數據持久化的方案,分別自動的為 mysql 和 minio 創建 SSD 云盤。
    您可以在阿里云上嘗試一下單獨部署最新版本 Kubeflow Pipelines。

    前提條件

    • 您需要安裝 kustomize

    在 Linux 和 Mac OS 環境,可以執行

    opsys=linux # or darwin, or windows curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases/latest |\grep browser_download |\grep $opsys |\cut -d '"' -f 4 |\xargs curl -O -L mv kustomize_*_${opsys}_amd64 /usr/bin/kustomize chmod u+x /usr/bin/kustomize

    在 Windows 環境,可以下載 kustomize_2.0.3_windows_amd64.exe

    • 在阿里云容器服務創建 Kubernetes 集群, 可以參考 文檔

    部署過程

  • 通過 ssh 訪問 Kubernetes 集群,具體方式可以參考文檔
  • 下載源代碼
  • yum install -y git git clone --recursive https://github.com/aliyunContainerService/kubeflow-aliyun
  • 安全配置
  • 3.1 配置 TLS 證書。如果沒有 TLS 證書,可以通過下列命令生成

    yum install -y openssl domain="pipelines.kubeflow.org" openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout kubeflow-aliyun/overlays/ack-auto-clouddisk/tls.key -out kubeflow-aliyun/overlays/ack-auto-clouddisk/tls.crt -subj "/CN=$domain/O=$domain"

    如果您有TLS證書,請分別將私鑰和證書保存到kubeflow-aliyun/overlays/ack-auto-clouddisk/tls.key和kubeflow-aliyun/overlays/ack-auto-clouddisk/tls.crt下

    3.2 配置 admin 的登錄密碼

    yum install -y httpd-tools htpasswd -c kubeflow-aliyun/overlays/ack-auto-clouddisk/auth admin New password: Re-type new password: Adding password for user admin
  • 首先利用 kustomize 生成部署 yaml
  • cd kubeflow-aliyun/ kustomize build overlays/ack-auto-clouddisk > /tmp/ack-auto-clouddisk.yaml
  • 查看所在的 Kubernetes 集群節點所在的地域和可用區,并且根據其所在節點替換可用區,假設您的集群所在可用區為 cn-hangzhou-g, 可以執行下列命令
  • sed -i.bak 's/regionid: cn-beijing/regionid: cn-hangzhou/g' \/tmp/ack-auto-clouddisk.yaml sed -i.bak 's/zoneid: cn-beijing-e/zoneid: cn-hangzhou-g/g' \/tmp/ack-auto-clouddisk.yaml

    建議您檢查一下 /tmp/ack-auto-clouddisk.yaml 修改是否已經設置

  • 將容器鏡像地址由 gcr.io 替換為 registry.aliyuncs.com
  • sed -i.bak 's/gcr.io/registry.aliyuncs.com/g' \/tmp/ack-auto-clouddisk.yaml

    建議您檢查一下 /tmp/ack-auto-clouddisk.yaml 修改是否已經設置

  • 調整使用磁盤空間大小, 比如需要調整磁盤空間為 200G
  • sed -i.bak 's/storage: 100Gi/storage: 200Gi/g' \/tmp/ack-auto-clouddisk.yaml
  • 驗證 pipelines 的 yaml 文件
  • kubectl create --validate=true --dry-run=true -f /tmp/ack-auto-clouddisk.yaml
  • 利用 kubectl 部署 pipelines
  • kubectl create -f /tmp/ack-auto-clouddisk.yaml
  • 查看訪問 pipelines 的方式,我們通過 ingress 暴露 pipelines 服務,在本例子中,訪問 IP 是 112.124.193.271。而 Pipelines 管理控制臺的鏈接是: https://112.124.193.271/pipeline/
  • kubectl get ing -n kubeflow NAME HOSTS ADDRESS PORTS AGE ml-pipeline-ui * 112.124.193.271 80, 443 11m
  • 訪問 pipelines 管理控制臺
  • 如果使用自簽發證書,會提示此鏈接非私人鏈接,請點擊顯示詳細信息, 并點擊訪問此網站。

    請輸入步驟 2.2 中的用戶名 admin 和設定的密碼。

    這時就可以使用 pipelines 管理和運行訓練任務了。

    Q&A

  • 為什么這里要使用阿里云的 SSD 云盤?
  • 這是由于阿里云的 SSD 云盤可以設置定期的自動備份,保證 pipelines 中的元數據不會丟失。

  • 如何進行云盤備份?
  • 如果您想備份云盤的內容,可以為云盤 手動創建快照 或者 為硬盤設置自動快照策略 按時自動創建快照。

  • 如何清理 Kubeflow Piplines 部署?
  • 這里的清理工作分為兩個部分:

    • 刪除 Kubeflow Pipelines 的組件
    kubectl delete -f /tmp/ack-auto-clouddisk.yaml
    • 通過釋放云盤分別釋放 mysql 和 minio 存儲對應的兩個云盤
  • 如何使用現有云盤作為數據庫存儲,而避免自動創建云盤?
  • 請參考文檔

    總結

    本文為您初步介紹了 Kubeflow Pipelines 的背景和其所要解決的問題,以及如何在阿里云上通過 Kustomize 快速構建一套服務于機器學習的 Kubeflow Pipelines, 后續我們會分享如何利用 Kubeflow Pipelines 開發一個完整的機器學習流程。

    總結

    以上是生活随笔為你收集整理的解锁云原生 AI 技能|在 Kubernetes 上构建机器学习系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。