猛獁機器學習開發實踐

2021-08-20 10:12:01 字數 2008 閱讀 3685

整個系統基礎設施中包括了 gpu 和 cpu 的混合計算服務節點,伺服器之間通過 infiniband 構建高速的資料交換網路,資料儲存在 hdd 和 ssd 盤的 hdfs 檔案系統中

tensorflow 和 kubernetes 均是由 google 開源,tensorflow 可以原生態的支援 kubernetes 的排程和監控管理。kubernetes 是高度可配置和可擴充套件的系統,我們通過擴充套件 customresourcedefinition 實現 mxnet 等其他機器學習框架的接入

資料科學家在開發平台進行資料管理、特徵管理、視覺化演算法開發和計算流程圖設計,一鍵式服務發布

dolphin 具有字段級別的細粒度資料許可權控制能力,能夠對 impala、spark、hive 實現一致性的 sql 執行許可權校驗和對應的 hdfs 檔案訪問控制,保障了標籤資料、訓練資料和模型資料的資料安全

開發了基於佇列的任務排程系統,解決了 kubernetes 沒有佇列服務的問題

開發了計算節點的 gpu 監控服務,解決了 kubernetes 目前無法監控 gpu 的資源使用情況的問題

開發了 kubernetes 中訓練服務的引數服務的生命週期管理模組,解決了 tensorflow 的引數服務在訓練完畢無法自我關閉的問題

通過 heapster+influxdb+grafana 進行集群的監控,通過 fluentd+elasticsearch+kibana 進行日誌的收集

controller manager:作為集群內部的管理控制中心,負責集群內的 node、pod 副本、endpoint、namespace、服務賬號、資源定額的管理,當某個 node 意外宕機時,controller manager 會及時發現並執行自動化修復流程,確保集群始終處於預期的工作狀態

scheduler:收集和分析當前 kubernetes 集群中所有 minion 節點的資源(記憶體、cpu)負載情況,然後依此分發新建的 pod 到 kubernetes 集群中可用的節點

etcd:儲存了整個 kubernetes 集群的狀態

proxy:解決外部網路能夠訪問跨機器集群中容器提供的應用服務

calico:是使用了基於 bgp 路由方式的網路模型,資料通過 linux kernel 查詢路由表直接**到對方容器所在的宿主機,避免了 flannel 網路存在的資料從核心態到使用者態的 2 次處理,效率損耗最小,calico 部署十分的方便快捷,非常適合在私有化的環境中進行部署使用

ovs:在公有雲的部署直接使用網易雲的 ovs 網路

etcd,主要負責網路元資料一致性,確保calico網路狀態的準確性

bgpclient(bird),主要負責把 felix 寫入 kernel 的路由資訊分發到當前 calico 網路,確保 workload 間的通訊的有效性

bgproutereflector(bird),大規模部署時使用,摒棄所有節點互聯的 mesh 模式,通過乙個或者多個 bgproutereflector 來完成集中式的路由分發

calico 在每乙個計算節點利用 linux kernel 實現了乙個高效的 vrouter 來負責資料**,而每個 vrouter 通過 bgp 協議負責把自己上執行的 workload 的路由資訊向整個 calico 網路內傳播,小規模部署可以直接互聯,大規模下可通過指定的 bgproutereflector 來完成

kubernetes 提供租戶隔離,容器資源隔離和網路隔離等多種機制

kubernetes-v1.4 開始支援 gpu 排程

kubernetes 提供容器生命週期管理,程序和容器共生死

kubernetes 提供了較為完善的 monitoring 和 logging 功能

kubernetes 支援對接 cephfs,glusterfs 等 read 效能更好的分布式儲存系統

通過定製化開發 kubernetes 的 custom resource 和 operator 介面支援 mxnet 等其他機器學習框架

機器學習實踐 學習總結

1 knn k近鄰 vs 決策樹 分類演算法 k近鄰演算法可以完成很多分類任務,但是它最大的缺點就是無法給出資料的內在含義。它是通過計算點位間的距離來決定相似度的,其執行效率不高,儲存空間和計算時間比較長。決策樹的主要優勢就在於資料形式非常容易理解。相似例子 二十個問題遊戲,參與者在腦海裡想出一種事...

機器學習 K means實踐

這兩天跟著 機器學習實戰 那本書學習了一下聚類方法中的k means演算法。在本篇文章中主要介紹下實踐中遇到的問題以及演算法的主要思想。ok,here we go!k means演算法思想 我們在日常生活中經常會遇到將某些相似的事物進行聚類,而如何讓計算機幫助我們進行自動的分類呢?k means是經...

機器學習 EM實踐

import numpy as np from scipy.stats import multivariate normal from sklearn.mixture import gaussianmixture from mpl toolkits.mplot3d import axes3d fro...