- 機器學習系統(tǒng):設計和實現
- 麥絡 董豪編著
- 739字
- 2024-12-27 20:30:22
2.5 機器學習框架的編程范式
2.5.1 機器學習框架編程需求
機器學習模型的訓練是其任務中最為關鍵的一步,訓練依賴于優(yōu)化器算法描述。目前大部分機器學習任務都使用一階優(yōu)化器,因為一階優(yōu)化器的方法簡單易用。隨著機器學習的高速發(fā)展,軟硬件也隨之升級,越來越多的研究者開始探索收斂性能更好的高階優(yōu)化器。常見的二階優(yōu)化器,如牛頓法、擬牛頓法、AdaHessians均需要計算含有二階導數信息的Hessian矩陣。Hessian矩陣的計算帶來兩方面的問題:一方面是計算量巨大如何才能高效計算;另一方面是高階導數的編程表達。
同時,近年來,工業(yè)界發(fā)布了非常多的大模型,從2020年OpenAI GTP-3(175B參數)開始,到2021年盤古大模型(100B參數)、鵬程盤古-α(200B參數)、谷歌switch transformer(1.6T參數)、智源悟道(1.75T參數),再到2022年百度ERNIE3.0(280M參數)、Facebook NLLB-200(54B參數),越來越多的超大規(guī)模模型訓練需求使得單純的數據并行難以滿足,而模型并行需要靠人工來進行模型切分,耗時耗力,如何自動并行成為未來機器學習框架所面臨的挑戰(zhàn)。最后,構建的機器學習模型本質上是數學模型的表示,如何簡潔表示機器學習模型也成為機器學習框架編程范式的設計的重點。
為了解決機器學習框架在實際應用中的一些困難,研究人員發(fā)現函數式編程能很好地提供解決方案。在計算機科學中,函數式編程是一種編程范式,它將計算視為數學函數的求值,并避免狀態(tài)變化和數據可變,這是一種更接近于數學思維的編程模式。神經網絡由連接的節(jié)點組成,每個節(jié)點執(zhí)行簡單的數學運算。通過使用函數式編程語言,開發(fā)人員能夠用一種更接近運算本身的語言來描述這些數學運算,使得程序的讀取和維護更加容易。同時,函數式語言的函數都是相互隔離的,使得并發(fā)性和并行性更容易管理。
因此,機器學習框架使用函數式編程設計具有以下優(yōu)勢:
(1)支持高效的科學計算和機器學習場景。
(2)易于開發(fā)并行。
(3)簡潔的代碼表示能力。
- Mastering SVG
- Mastering RStudio:Develop,Communicate,and Collaborate with R
- 用戶體驗增長:數字化·智能化·綠色化
- C/C++數據結構與算法速學速用大辭典
- 基于SpringBoot實現:Java分布式中間件開發(fā)入門與實戰(zhàn)
- 區(qū)塊鏈架構之美:從比特幣、以太坊、超級賬本看區(qū)塊鏈架構設計
- Learning iOS Security
- Building Business Websites with Squarespace 7(Second Edition)
- Visual Basic.NET程序設計
- 狼書(卷2):Node.js Web應用開發(fā)
- 深入淺出Rust
- JavaScript實戰(zhàn)-JavaScript、jQuery、HTML5、Node.js實例大全(第2版)
- Python架構模式:精通基于Python的API設計、事件驅動架構和包管理
- Data Analysis with R
- QlikView for Finance