- 機器學習系統:設計和實現
- 麥絡 董豪編著
- 12字
- 2024-12-27 20:30:22
2.5 機器學習框架的編程范式
2.5.1 機器學習框架編程需求
機器學習模型的訓練是其任務中最為關鍵的一步,訓練依賴于優化器算法描述。目前大部分機器學習任務都使用一階優化器,因為一階優化器的方法簡單易用。隨著機器學習的高速發展,軟硬件也隨之升級,越來越多的研究者開始探索收斂性能更好的高階優化器。常見的二階優化器,如牛頓法、擬牛頓法、AdaHessians均需要計算含有二階導數信息的Hessian矩陣。Hessian矩陣的計算帶來兩方面的問題:一方面是計算量巨大如何才能高效計算;另一方面是高階導數的編程表達。
同時,近年來,工業界發布了非常多的大模型,從2020年OpenAI GTP-3(175B參數)開始,到2021年盤古大模型(100B參數)、鵬程盤古-α(200B參數)、谷歌switch transformer(1.6T參數)、智源悟道(1.75T參數),再到2022年百度ERNIE3.0(280M參數)、Facebook NLLB-200(54B參數),越來越多的超大規模模型訓練需求使得單純的數據并行難以滿足,而模型并行需要靠人工來進行模型切分,耗時耗力,如何自動并行成為未來機器學習框架所面臨的挑戰。最后,構建的機器學習模型本質上是數學模型的表示,如何簡潔表示機器學習模型也成為機器學習框架編程范式的設計的重點。
為了解決機器學習框架在實際應用中的一些困難,研究人員發現函數式編程能很好地提供解決方案。在計算機科學中,函數式編程是一種編程范式,它將計算視為數學函數的求值,并避免狀態變化和數據可變,這是一種更接近于數學思維的編程模式。神經網絡由連接的節點組成,每個節點執行簡單的數學運算。通過使用函數式編程語言,開發人員能夠用一種更接近運算本身的語言來描述這些數學運算,使得程序的讀取和維護更加容易。同時,函數式語言的函數都是相互隔離的,使得并發性和并行性更容易管理。
因此,機器學習框架使用函數式編程設計具有以下優勢:
(1)支持高效的科學計算和機器學習場景。
(2)易于開發并行。
(3)簡潔的代碼表示能力。
- JavaScript語言精髓與編程實踐(第3版)
- 編寫整潔的Python代碼(第2版)
- HTML5+CSS3網站設計教程
- Quarkus實踐指南:構建新一代的Kubernetes原生Java微服務
- Troubleshooting PostgreSQL
- Unity UI Cookbook
- Active Directory with PowerShell
- ElasticSearch Cookbook(Second Edition)
- 軟件供應鏈安全:源代碼缺陷實例剖析
- MyBatis 3源碼深度解析
- Yii2 By Example
- C語言程序設計
- Python深度學習:基于PyTorch
- Mastering Python for Data Science
- HTML 5與CSS 3權威指南(第4版·下冊)