泛AI架構設計:理解AI云原生 原創
泛AI架構設計這個專欄主要關注圍繞著AI運用于實際的業務場景所需的系統架構設計,包括業務數據治理、模型訓練與管理、模型部署與調度。整體基于云原生技術,旨在通過開源領域的LLMOps或者MLOps技術,充分運用低代碼平臺構建高性能、高效率和敏捷響應的AI中臺。
1.AI架構挑戰
上面幾節從GPU的知識點入手,清晰的介紹了GPU原理、構造以及運算模型。有了初步的認知之后,回到最原始的AI需求,來看看其對于基礎架構的要求。AI最早于1956年提出,數十年沉沉浮浮,最后還是被廣泛的運用于語音識別、機器學習、翻譯、圖像處理。深度學習的創新推出,使得近期人工智能有了突破性的增長。AI分為Discriminative AI和Generative AI兩類,前者用于預測與分類,后者用于學習知識生成。下面的表格列出兩種AI對于各項基礎設施的需求:
需求 | 生成式AI | 預測式AI |
計算資源 | 極其高 需要專業化的硬件 | 中到高 一般用途硬件 |
數據容量 | 大量且多樣化格式 | 專業化的歷史數據 |
訓練與微調 | 復雜 多輪的專業化計算 | 中等強度的訓練 |
擴展與彈性 | 高度的可擴展和彈性的基礎設施(應對可變和密集計算) | 可擴展性 彈性要求較低,支持流批一體處理 |
存儲與吞吐 | 高性能高吞吐低延時 支持多樣化的數據類型 | 中等吞吐量 注重數據分析,大部分為架構化 |
網絡帶寬 | 高帶寬低延時,支持模型分布式訓練 | 數據訪問需要一致性和可靠 |
從上面各種AI對于基層基礎設施的需求,有經驗的工程師一般都能浮現一個關鍵的名詞:云原生。
云原生技術使組織能夠在公共云、私有云和混合云等現代化的動態環境中構建和運行可擴展的應用程序。容器、服務網格、微服務、基礎設施和聲明式 API 就是其中的典型案例。這些技術使低耦合的系統具有彈性、可管理和可監測。通過和Devops結合,工程師能夠以低成本實現高頻且可預測的系統迭代。
2.為什么要基于云原生
下圖則直觀的將AI所需要的關系圖勾勒出來,黑色為某種能力,紅色為兩者的關系,箭頭代表著誰服務于誰。例如編排(Orchestration)需要解決數據科學的可擴展性,而模型服務則為數據科學提供部署能力,自動化建模為數據科學提供自動化。希望讀者還是花點時間仔細推敲下這幅圖。
因此可以看到編排設計很重要的,它貫穿所有環節,其次對于每個能力對象的技術選型也十分關鍵。
那么AI為什么要基于云原生,因為云原生給AI帶來很多的益處。按照CNAI的定義基于云原生的AI架構解決了人工智能應用科學家、開發人員和部署人員在云基礎設施上開發、部署、運行、擴展和監控人工智能工作負載時面臨的挑戰。通過利用底層云基礎設施的能力(例如CPU、GPU、網絡和存儲),提供隔離和受控共享機制,加速AI應用程序性能并降低成本。其實很大頂尖的公司都是將AI搭建在云原生的基礎上,尤其是Kubernetes。
這里需要先科普下Kubernetes,它是一個編排平臺,可用于部署和管理容器。容器是輕量級、可移植、獨立的軟件單元。AI模型可以打包到容器,然后部署到K8s集群。容器化對于AI部署尤其重要,因為不同模型依賴于不同版本的底層類庫,經常會發生沖突。采用容器技術,可以解決依賴關系沖突的問題,且在模型部署中能夠提供巨大的靈活性。
舉個栗子:在一個服務器上面將A和B的應用打包到兩個容器,一個容器里面裝了Ubuntu系統,另一個容器里面裝了Linux系統。兩個容器可以看成是小的世界,都可以跑在服務器的操作系統上面。兩個應用各自所需要的環境互不打擾。而且容器可以隨時銷毀,隨時啟動。
在存儲方面,高質量的數據用于訓練和測試人工智能模型,云原生基礎設施可以通過多種方式訪問數據,例如數據湖和數據倉庫。無論是私有還是公有的云技術都能夠支持塊、對象和文件存儲系統,非常適合提供低成本、可擴展的存儲。
例如,模型的大小可以達到千兆字節。在訓練階段,每次拉取模型的檢查點都會對網絡和存儲帶寬造成嚴重負載。 對模型采用容器化設計,且在注冊表中完成托管和緩存則能有效解決,同時還有利于模型的加簽、驗證、證明和數據來源管控。
3.AI云原生架構
下圖為CNAI提出來的AI云原生架構,它將整個架構設計分為五層,從下往上分別是硬件層,基礎設施層,云原生平臺層,AIOps/MLOps/LLMOps層,最頂層則為模型應用層。這個專欄還是關注在上三層,除此之外也會覆蓋到新的計算資源GPU,以及其調度策略。
本文轉載自魯班模錘,作者:龐德公
