本文由來自SNCF和Olexya的客座做者聯合撰寫。segmentfault
本文將介紹法國國有鐵路公司Société Nationale des Chemins de fer Français(SNCF)如何在技術合做夥伴Olexya的幫助下,運用AWS提供的ML服務,研究、開發與部署創新的計算機視覺解決方案。安全
SNCF成立於1938年,目前擁有超過27萬名員工。SNCF Réseau爲SNCF旗下子公司,負責鐵路網絡基礎設施的管理與運營工做。SNCF Réseau及其技術合做夥伴Olexya部署了一整套創的解決方案,但願以協助基礎設施運營的同時,對基礎設施安全性與質量保持高水平。現場團隊使用計算機視覺檢測基礎設施中出現的異常。網絡
SNCF Réseau的研究人員擁有豐富的ML經驗,有一個團隊已使用Caffe2深度學習框架開發出本地計算機視覺檢測模型。接着,科學家們聯繫到SNCF Réseau的技術合做夥伴Olexya,他們幫助申請配置GPU資源來支持迭代模型。爲了繼續保持較低的運營開銷與較高的生產效率,同時保持科學代碼的全面靈活性,Olexya決定使用Amazon SageMaker編排Caffe2模型的訓練與推理。併發
整個流程涉及如下步驟:框架
該團隊建立一個Docker鏡像,其中打包有符合Amazon SageMaker Docker規範的原始Caffe2代碼。Amazon SageMaker可以容納多個數據源,並且與Amazon S3進行了高級集成。存儲在Amazon S3中的數據集可以被自動提取至運行在Amazon SageMaker上的訓練容器當中。工具
爲了順暢處理Amazon S3中的可用訓練數據,Olexya須要指定訓練代碼從關聯的本地路徑opt/ml/input/data/_<channel name>_處執行讀取。類似的,模型寫入位置必須設定爲opt/ml/model。使用這種方式,在訓練做業完成以後,Amazon SageMaker就能自動將訓練完成的模型工件壓縮併發送至Amazon S3。學習
原始Caffe2訓練代碼經過詳盡且靈活的YAML配置文件實現參數調整,因此研究人員可以直接更改模型設置,而無需更改科學代碼。外部文件很容易被保留在外部並在訓練時使用數據通道讀取到容器中。這裏所說的數據通道,是指在訓練過程當中傳遞至Amazon SageMaker SDK的Amazon S3 ARN,其會在訓練開始時被添加至Amazon SageMaker容器當中。Olexya將數據通道配置爲經過副本讀取的形式(即副本模式),這也是Amazon SageMaker中的默認配置。咱們也能夠根據需求經過Unix管道(即Pipe模式)實現數據的流式傳輸。測試
該團隊採用ml.p3.2xlarge GPU加速計算實例配置了訓練基礎設施。Amazon SageMaker ml.p3.2xlarge計算實例特別適用於深度學習計算機視覺類工做負載,其配備了一塊有5120個核心的英偉達V100 GPU與16GB高帶寬內存(HBM),可以快速訓練大型模型。優化
此外,Amazon SageMaker訓練API被設置激活使用託管Spot實例,與Amazon SageMaker按需實例價格相比,Spot實例被報告節省了71%成本。Amazon SageMaker Managed Spot Training是Amazon SageMaker提供的功能選項,可以使用Amazon Elastic Compute Cloud (Amazon EC2) Spot實例資源進行訓練。Amazon EC2 Spot實例將處於閒置狀態的冗餘Amazon EC2計算容量以高折扣方式出售給客戶。在Amazon SageMaker當中,Spot實例的實際使用由服務自己全面託管,用戶能夠設置兩項訓練SDK參數隨時加以調用:spa
在本次研究計劃中,最終用戶能夠接受推理中斷與實例化延遲。所以,爲了進一步優化成本,團隊使用Amazon SageMaker訓練API運行推理代碼,在託管的Amazon SageMaker Spot實例之上一樣能夠用來推理。除了成本優點以外,使用訓練API還可以下降學習曲線,由於在模型訓練與推理週期以內使用相同的API。
經過以上四個步驟,Olexya成功將本地Caffe2深度計算機視覺檢測模型移植到Amazon SageMaker當中,實現訓練與推理。更使人印象深入的是,該團隊在約三週以內完成了工具學習,並將模型的訓練週期由三天縮減至十個小時!該團隊還進一步估計,與原有的本地可用GPU集羣相比,Amazon SageMaker得以將整體擁有成本(TCO)下降71%。除此以外,其餘優化技術可以進一步下降成本,例如使用Amazon SageMaker自動模型調優進行超參數智能搜索,並使用與之匹配的深度學習框架進行混合精度訓練等。
除SNCF Réseau以外,很多來自運輸與物流行業的AWS客戶也都在ML技術的幫助下,切實改善了自身業務運營與創新能力。具體案例包括:
Amazon SageMaker支持從數據註釋、到生產部署、再到運營監控的整個ML開發週期。正如Olexya與SNCF Réseau的工做所示,Amazon SageMaker具備良好的框架中立性,可以容納各種深度學習工做負載及框架。除了預先爲Sklearn、TensorFlow、PyTorch、MXNet、XGBoost以及Chainer建立配套Docker鏡像與SDK對象之外,用戶也能夠使用自定義Docker容器,幾乎任何框架,如PeddlePaddle、Catboost、R以及Caffe2。對於ML從業者,不要猶豫,請開始測試AWS SageMaker服務,並分享在構建中總結出的經驗與心得!