如何使用MindStudio輕鬆搞定大模型全流程開發
大模型的規模和能力在迅猛發展,更大的引數、更長的序列及更多的模態是未來大模型技術的發展趨勢。更大的規模的模型意味著更大規模的算力平臺,算力裝置的部件與任務之間的複雜關係導致除錯調優的複雜度增加,需要系統的管理和收集訓練過程中各維度資料,才能快速鎖定模型精度及效能瓶頸,加速大模型訓練。
MindStudio全流程開發工具鏈是華為面向昇騰AI開發者提供的一站式開發環境和工具集。針對大模型分散式訓練複雜場景,MindStudio提供了從大模型遷移到精度除錯到效能調優的統一工具能力,幫助開發者輕鬆get大模型開發密碼。
由於不同硬體體系之間處理器架構、模型指令碼存在差異性,基於GPU硬體體系原生開發的開源大模型,要想在昇騰處理器上執行,首先需要進行模型的遷移。
那麼模型遷移主要遷哪些東西呢?
模型指令碼的基本組成元素主要為“運算元、API、三方庫”,通常在框架層會透過這幾個核心元素來搭建模型指令碼,所以模型遷移的實質也是對“運算元、API、三方庫”的遷移。
以同框架下遷移場景為例,MindStudio遷移工具會自動掃描並完成“運算元、API、三方庫”相容性分析,同時完成指令碼程式碼替換,並在遷移完成後生成評估報告,報告中會詳細說明替換資訊以及是否存在無法直接替換的元素,譬如使用者自定義的運算元。整個遷移過程僅需要幾分鐘。
精度決定了大模型預測的準確性,因此精度除錯是大模型訓練的關鍵步驟之一。
為了幫助開發人員快速解決運算元精度問題,MindStudio透過溢位檢測、精度比對等核心工具,提供了自有實現的運算元運算結果與業界標準運算元運算結果之間進行多維度的精度差異對比的能力,提升訓練精度調測效率,單機和叢集的精度問題定位時間縮短至周級。
精度預檢:預檢避免了常見精度工具在規模叢集下的困境、對資料dump的依賴以及對整網累計誤差的感知。在預檢過程中,可以透過輕量化的流程提取單API統計量資訊,同時,根據統計資訊隨機生成資料輸入在NPU上執行,最大程度還原真實訓練場景。最終根據相對誤差、絕對誤差等指標綜合判定API精度是否達標,並提供真值比對選項,輸出評估報告。以上預檢流程可以在小時級的時間內完成,在訓前就解決80%以上的運算元及API精度問題。
溢位檢測:應對大模型開發過程中產生大量溢位以及溢位導致引數不斷更新等複雜問題。透過溢位問題性質自動分類、典型溢位問題自動分析等能力,輸出問題運算元報告並提供專家處理建議。
大模型領域效能是一個非常受到關注的指標,一個大模型的訓練可能需要成百上千張卡,耗時數個月才能完成,效能上的最佳化能直接且顯著地降低訓練成本。
同時,大模型領域的效能調優存在很多挑戰,譬如:採集資料量大、解析耗時長、TimeLine資料量限制、缺少自動拆解比對工具、卡間同步、慢卡慢鏈路等。
MindStudio提供了系統級的叢集效能調優能力,透過效能問題拆解、多維視覺化Profiling及叢集資料多介面視覺化能力,幫助開發者迅速鎖定效能瓶頸。
效能拆解:將訓練資料拆解為“通訊、運算元、排程、記憶體”四個維度,透過對訓練耗時和記憶體佔用的比對分析,定位到具體劣化的運算元,良好地解決效能資料timeline資訊量巨大使用者難以入手、運算元詳細資訊及搬運記憶體資訊多等問題,使用者可直接確認效能的主要瓶頸。
多維視覺化Profiling:針對PyTorch框架開發的效能資料採集和解析,提供Ascend PyTorch Profiler效能採集介面。使用者透過在PyTorch訓練指令碼中插入Ascend PyTorch Profiler介面,執行訓練的同時採集效能資料,完成訓練後直接輸出視覺化的效能資料檔案,支援單次載入多組資料並可靈活比對,記憶體級Profiling展示效能遠超原社群水平。同時,工具中提供了Tensorboard視覺化、運算元級記憶體Profiling兩個功能,支援呼叫棧、運算元資訊關聯,幫助開發者在程式碼層級細粒度鎖定效能瓶頸。
叢集資料多介面視覺化:提供叢集視覺化調優工具Ascend Insight來提升大模型叢集效能調優效率。透過Ascend Insight提供Timeline流水檢視、Memory檢視、Operator檢視、Summary檢視等多維檢視分析幫助使用者快速發現異常點,識別效能瓶頸:
1)Timeline流水檢視:支援多卡匯聚、按層過濾、資料對比、單卡時間校準、運算元搜尋以及統計資訊
2)Memory檢視:支援記憶體佔用折線圖,含程式級預留、運算元級預留以及運算元級佔用。使用者可以根據折線圖找到峰值的記憶體佔用點,並獲取到對應的運算元明細。
3)Operator檢視:支援透過分析運算元耗時統計及詳情資訊,快速找到計算效能瓶頸點。
4)Summary檢視:支援通訊/計算耗時分析以及PP場景耗時分析,基於拓撲和並行策略,結合可視分析鏈路進行排程分析,定位通訊慢、計算慢等效能問題。
結語
以上完整地介紹了MindStudio全流程開發工具鏈如何透過大模型遷移、精度除錯、效能調優三大步驟,支援使用者以低成本快速提升百億千億大模型訓練效能,提高開發效率。欲瞭解更多詳情,請參閱: MindStudio-昇騰社群 (hiascend.com)
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/31545819/viewspace-3004383/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 輕鬆搞定專案流程自動化
- 【AI應用開發全流程】使用AscendCL開發板完成模型推理AI模型
- ImageKnife元件,讓小白也能輕鬆搞定圖片開發元件
- 辦公室革命,教你輕鬆搞定輕鬆玩轉ExcelExcel
- 輕鬆搞定實時分析及監控大屏
- 3D 穿梭效果?使用 CSS 輕鬆搞定3DCSS
- 實用且簡單的Git教程,輕鬆搞定多人開發Git
- 六大絕招輕鬆搞定系統更新(轉)
- 使用 Meteor 輕鬆開發實時網站網站
- 使用 Eloquent 輕鬆搜尋多個模型模型
- Word流程圖怎麼畫?如何輕鬆繪製流程圖流程圖
- 如何排查DNS解析出錯?這四步輕鬆搞定DNS
- 一張圖輕鬆掌握 Flink on YARN 應用啟動全流程(上)Yarn
- Android輕鬆搞定Dialog提示動畫效果Android動畫
- 12步輕鬆搞定python裝飾器Python
- ChatGPT:讓程式開發更輕鬆ChatGPT
- 如何偽裝自己的IP地址?兔子軟體IP代理輕鬆搞定
- JAVA架構-使用redis叢集輕鬆應對大併發Java架構Redis
- 在 Google Cloud 上輕鬆部署開放大語言模型GoCloud模型
- 輕鬆搞定專案管理軟體、分配任務專案管理
- 一份配置,輕鬆搞定Vue表單渲染Vue
- 上億條資料,OurwayBI也能輕鬆搞定
- MySQL8.0輕鬆搞定GTID組複製MySql
- Jenkins部署安裝,輕鬆三步搞定Jenkins
- 輕鬆搞定面試中的連結串列題目面試
- 輕鬆搞定Windows惡意程式碼攻擊(轉)Windows
- 一文輕鬆搞定 tarjan 演算法(二)演算法
- 輕鬆籌-Golang開發工程師Golang工程師
- 輕鬆開發多語言程式 (轉)
- 批量給視訊銳化的方法,使用這個軟體輕鬆搞定
- 輕鬆理解JVM的分代模型JVM模型
- 不寫程式碼不用 Excel, 如何輕鬆搞定各種圖形化展現Excel
- 如何輕鬆搞定資料科學麵試:Python&R語言篇資料科學PythonR語言
- 輕鬆搞定分組報表中的各種排序排序
- MySQL8.0輕鬆搞定GTID主從複製MySql
- MySQL8.0輕鬆搞定GTID主主複製MySql
- 輕鬆搞定面試中的二叉樹題目面試二叉樹
- 京東API介面技術大揭秘:讓你輕鬆駕馭電商開發API