一、AI框架的重要性
AI框架是人工智能的操作系統(tǒng),是基礎(chǔ)軟件,是算法和應(yīng)用的根基。AI江湖傳言:得框架者得天下,可見AI框架的重要性,它通過框架性思維整合了人工智能的三駕馬車(算法、算力、數(shù)據(jù)),如果想成為頭部AI企業(yè),AI框架就是其中一項核心競爭力,這樣才不會受制于人,才能體現(xiàn)AI基礎(chǔ)研究能力,這也是為什么AI公司爭相研發(fā)自己的AI框架。AI框架好比武林絕學(xué)中的上乘內(nèi)功,任何武功招式,沒有內(nèi)功加持,最終也只是花拳繡腿,高手最終的比拼就是內(nèi)功。
談AI框架,不得不提到一個國家,一座山,一個小鎮(zhèn)、一種酒、一個研究所,那就是瑞士、阿爾卑斯山、馬蒂尼、葡萄酒、戴爾莫爾感知人工智能研究所。正是在這樣一個環(huán)境優(yōu)美,生活愜意的地方,可能是做學(xué)術(shù)最好的環(huán)境,自由和靈感在這里悄無聲息地碰撞,這里的研究所是全球人工智能和認(rèn)知智能領(lǐng)域的領(lǐng)導(dǎo)者之一,最初的Torch框架就誕生于此,由此開啟了AI框架研究的熱潮。
我們正處于AI時代浪潮中,不能重走明清海禁和閉關(guān)鎖國之路,應(yīng)當(dāng)與世界同步,吸收和創(chuàng)新發(fā)展AI,這樣才不至于在科技競爭中落敗。網(wǎng)絡(luò)安全也離不開AI,不管是AI自身面臨的安全問題,還是利用AI去解決網(wǎng)絡(luò)安全問題,作為網(wǎng)絡(luò)安全從業(yè)者,都應(yīng)當(dāng)主動擁抱AI,思考AI和網(wǎng)絡(luò)安全的關(guān)系,如何解決矛和盾的問題。下面主要介紹AI框架的發(fā)展歷程、主流AI框架及AI框架的安全問題。
二、AI框架的發(fā)展歷程
道德經(jīng)中說:“道生一、一生二、二生三、三生萬物,”從零到一的過程是艱難的,那是思維的創(chuàng)新,是意識的萌芽,正如Torch的中文翻譯,是第一顆火種,開創(chuàng)了AI框架的先河,由此AI框架的發(fā)展一路風(fēng)風(fēng)火火,下面通過時間線來描述AI框架的發(fā)展歷程。
三、主流AI框架介紹
1.Torch
Torch是由Ronan Collobert、Clement Farabet等于2002年推出的科學(xué)計算框架,提供了強(qiáng)大的張量計算和深度學(xué)習(xí)支持。原始Torch是Lua語言的,而后續(xù)的Torch7版本則支持LuaJIT。Torch在深度學(xué)習(xí)領(lǐng)域廣受歡迎,為研究和實際應(yīng)用提供了靈活性和效率,尤其在神經(jīng)網(wǎng)絡(luò)的研究和開發(fā)中取得了成功。然而,后來由于競爭對手的興起,如PyTorch和TensorFlow,Torch逐漸被這些框架取代。
2.NumPy
NumPy是由Travis Olliphant于2005年發(fā)布的開源數(shù)值計算庫,用于Python編程語言。它提供了強(qiáng)大的多維數(shù)組對象和對這些數(shù)組執(zhí)行操作的工具,是科學(xué)計算、機(jī)器學(xué)習(xí)等領(lǐng)域的基礎(chǔ)。NumPy的設(shè)計目標(biāo)是提供高性能的數(shù)組操作,使得數(shù)據(jù)處理和分析更加高效。它的成功促成了許多其他科學(xué)計算和數(shù)據(jù)分析工具的發(fā)展,如SciPy、Pandas和Scikit-learn。NumPy從嚴(yán)格意義上來說,它不是一個AI框架,而是一個重要的科學(xué)計算庫,為后來者提供很多借鑒意義。
3.Theano
Theano是由蒙特利爾大學(xué)的MILA實驗室于2007年發(fā)布的開源數(shù)學(xué)庫,用于高效實現(xiàn)深度學(xué)習(xí)和科學(xué)計算,號稱深度學(xué)習(xí)研究和開發(fā)的行業(yè)標(biāo)準(zhǔn),是行業(yè)的祖師爺。主要作者包括Yoshua Bengio和Ian Goodfellow等。Theano支持符號數(shù)學(xué)表達(dá)式,自動優(yōu)化GPU加速,為構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)提供了強(qiáng)大的工具。然而,由于TensorFlow和其他深度學(xué)習(xí)框架的崛起,Theano在2017年之后停止了主要開發(fā)。
4.Caffe
Caffe是由伯克利視覺與學(xué)習(xí)中心(BVLC)于2014年發(fā)布的開源深度學(xué)習(xí)框架,主要作者為賈揚清(Yangqing Jia)。以速度和靈活性為特點,Caffe被廣泛用于計算機(jī)視覺任務(wù)。其模塊化架構(gòu)和易于配置的設(shè)計使其適用于各種深度學(xué)習(xí)應(yīng)用,包括圖像分類和目標(biāo)檢測。
5.Deeplearning4J
Deeplearning4J是由Skymind公司于2014年發(fā)布的開源深度學(xué)習(xí)框架,主要作者為Adam Gibson?;贘ava語言,支持分布式計算,提供強(qiáng)大的工具和算法用于圖像識別和自然語言處理。其注重性能和可擴(kuò)展性,成為大規(guī)模數(shù)據(jù)集上訓(xùn)練復(fù)雜神經(jīng)網(wǎng)絡(luò)的重要工具。
6.Keras
Keras是由François Chollet于2015年3月發(fā)布的高級深度學(xué)習(xí)框架,最初建立在Theano上,后來集成到TensorFlow中。設(shè)計簡單直觀,提供用戶友好的API,支持快速構(gòu)建、訓(xùn)練和部署神經(jīng)網(wǎng)絡(luò)模型。Keras成為TensorFlow的官方高級API,廣受歡迎,適用于各種深度學(xué)習(xí)任務(wù)。
7.TensorFlow
TensorFlow是由Google Brain團(tuán)隊開發(fā)的開源深度學(xué)習(xí)框架,于2015年11月發(fā)布。主要作者包括Jeff Dean、Rajat Monga等。TensorFlow提供強(qiáng)大的工具和庫,支持構(gòu)建和訓(xùn)練各種機(jī)器學(xué)習(xí)模型。其靈活性和可擴(kuò)展性使其成為學(xué)術(shù)界和工業(yè)界首選的深度學(xué)習(xí)框架,廣泛用于圖像識別、自然語言處理等領(lǐng)域。
8.MXNet
MXNet是由華盛頓大學(xué)的李沐(Mu Li)等于2015年發(fā)布的深度學(xué)習(xí)框架。作為Apache軟件基金會的項目,MXNet以高效性能和靈活性著稱,支持動態(tài)計算圖和多語言接口,廣泛應(yīng)用于云端和邊緣設(shè)備。其分布式訓(xùn)練能力使其在計算機(jī)視覺和自然語言處理等領(lǐng)域得到廣泛應(yīng)用。AWS對MXNet表現(xiàn)出濃厚興趣,并在其深度學(xué)習(xí)服務(wù)中廣泛采用MXNet。因此,MXNet在AWS上得到了大量支持和推廣,成為AWS深度學(xué)習(xí)服務(wù)的一部分。
9.Chainer
Chainer是由日本Preferred Networks公司于2015年發(fā)布的開源深度學(xué)習(xí)框架。主要作者為Seiya Tokui、Shunta Saito等。Chainer采用動態(tài)計算圖的方式,提供靈活性和直觀性,支持易于擴(kuò)展的開發(fā)。其設(shè)計理念注重用戶友好,適用于快速原型設(shè)計和實驗。Chainer在日本及全球深度學(xué)習(xí)社區(qū)中取得成功,為研究人員和開發(fā)者提供了強(qiáng)大的工具。
10.CNTK
CNTK(Microsoft Cognitive Toolkit)是由Microsoft開發(fā)的開源深度學(xué)習(xí)框架,于2016年發(fā)布。主要作者包括Xuedong Huang等。CNTK專注于高性能和可擴(kuò)展性,支持分布式訓(xùn)練和多種深度學(xué)習(xí)模型。其靈活性和優(yōu)化使其在語音識別、圖像處理等領(lǐng)域廣泛應(yīng)用。CNTK提供易用的Python接口,是微軟在深度學(xué)習(xí)研究和工程方面的重要貢獻(xiàn)。
11.PaddlePaddle(飛槳)
PaddlePaddle(飛槳)是由百度公司于2016年發(fā)布的開源深度學(xué)習(xí)框架。主要作者為百度深度學(xué)習(xí)研究院團(tuán)隊。PaddlePaddle注重產(chǎn)業(yè)應(yīng)用,提供靈活性和高性能,支持深度學(xué)習(xí)任務(wù),包括圖像識別和自然語言處理。其特點包括易用性、可擴(kuò)展性和豐富的模型庫,適用于從研究到生產(chǎn)環(huán)境的多個場景。
12.PyTorch
PyTorch是由Facebook于2016年發(fā)布的開源深度學(xué)習(xí)框架。主要作者包括Adam Paszke、Sam Gross等。PyTorch采用動態(tài)計算圖,強(qiáng)調(diào)易用性和靈活性,成為研究和實際應(yīng)用的首選工具。其優(yōu)雅的API和緊密集成的動態(tài)圖機(jī)制促使其被廣泛采用。PyTorch在自然語言處理、計算機(jī)視覺等領(lǐng)域取得成功,也是深度學(xué)習(xí)研究和開發(fā)中的重要框架。
13.Caffe2
Caffe2是由Facebook于2017年發(fā)布的開源深度學(xué)習(xí)框架。主要作者包括Yangqing Jia等。作為Caffe框架的進(jìn)化版本,Caffe2專注于性能和可擴(kuò)展性,支持多平臺和分布式訓(xùn)練。它在計算機(jī)視覺、自然語言處理等領(lǐng)域得到廣泛應(yīng)用,同時被集成到PyTorch中,為深度學(xué)習(xí)社區(qū)提供了靈活性和效率。
14.JAX
JAX是由Google于2018年發(fā)布的開源數(shù)值計算庫,旨在提供高性能的機(jī)器學(xué)習(xí)和科學(xué)計算。主要作者為研究員Matt Johnson和其他Google Brain團(tuán)隊成員。JAX支持自動微分、XLA編譯器,以及numpy風(fēng)格的API,使其成為構(gòu)建靈活而高效的機(jī)器學(xué)習(xí)模型的理想工具。其在強(qiáng)化學(xué)習(xí)、深度學(xué)習(xí)研究和實際應(yīng)用中得到廣泛應(yīng)用。
15.ONNX Runtime
ONNX Runtime是由微軟于2018年開源的深度學(xué)習(xí)推理引擎。主要作者為微軟的研究團(tuán)隊。ONNX Runtime支持ONNX(Open Neural Network Exchange)格式的模型,實現(xiàn)了高性能、跨平臺的推理。它與各種深度學(xué)習(xí)框架兼容,包括TensorFlow、PyTorch等,為模型在不同平臺上的部署提供了靈活性和效率。ONNX Runtime在機(jī)器學(xué)習(xí)社區(qū)中被廣泛應(yīng)用。
16.MindSpore( 昇思)
MindSpore是由華為于2019年發(fā)布的開源深度學(xué)習(xí)框架,旨在支持全場景的AI應(yīng)用。主要作者為首席架構(gòu)師金雪鋒等。MindSpore采用計算圖技術(shù),提供易用的Python API和高性能的推理和訓(xùn)練支持。其靈活性、安全性和跨硬件的特點,使其適用于多種設(shè)備和應(yīng)用場景,包括端側(cè)智能、云端大模型訓(xùn)練等。
17.MegEngine(天元)
MegEngine是由曠視科技于2019年發(fā)布的開源深度學(xué)習(xí)框架。主要作者包括曠視科技的研究團(tuán)隊。MegEngine注重性能、靈活性和易用性,支持靜態(tài)計算圖和動態(tài)計算圖,適用于多種深度學(xué)習(xí)任務(wù)。其設(shè)計優(yōu)化了內(nèi)存占用和計算效率,廣泛應(yīng)用于計算機(jī)視覺、自然語言處理等領(lǐng)域。
18.OneFlow(一流)
OneFlow是由北京一流科技有限公司開發(fā)的開源深度學(xué)習(xí)框架,由袁進(jìn)輝創(chuàng)立。該框架于2020年左右發(fā)布,以解決大數(shù)據(jù)、大模型和大計算環(huán)境下的分布式擴(kuò)展難題為核心目標(biāo),率先提出靜態(tài)調(diào)度與流式執(zhí)行概念,實現(xiàn)高性能并行計算。OneFlow兼容PyTorch接口,提供極致性能的分布式機(jī)器學(xué)習(xí)解決方案,并在AIGC等領(lǐng)域有顯著應(yīng)用表現(xiàn)。
19.Jittor(計圖)
Jittor是由清華大學(xué)計算機(jī)系圖形與媒體實驗室研發(fā)的開源動態(tài)圖深度學(xué)習(xí)框架,發(fā)布時間在2020年左右。該框架由清華大學(xué)科研團(tuán)隊設(shè)計與實現(xiàn),以即時編譯(Just-In-Time compilation)技術(shù)為核心,實現(xiàn)了靈活高效的模型構(gòu)建和高性能執(zhí)行。Jittor具備自動求導(dǎo)、元算子優(yōu)化等特性,為用戶提供了一個支持多種硬件平臺且高度可擴(kuò)展的深度學(xué)習(xí)開發(fā)環(huán)境,在深度學(xué)習(xí)研究領(lǐng)域展現(xiàn)出卓越性能與創(chuàng)新價值。
以上只列舉了部分AI框架,對于初學(xué)者,建議從NumPy開始學(xué)習(xí)基礎(chǔ)數(shù)學(xué)和數(shù)據(jù)處理,然后轉(zhuǎn)向PyTorch,了解深度學(xué)習(xí)框架,逐步學(xué)習(xí)整個AI訓(xùn)練步驟。NumPy提供了強(qiáng)大的數(shù)學(xué)和數(shù)組操作,而PyTorch是一個靈活且易于學(xué)習(xí)的深度學(xué)習(xí)框架,有助于理解模型構(gòu)建、訓(xùn)練和部署。這兩者是建立深度學(xué)習(xí)理解的良好起點。
四、AI框架面臨的安全問題
AI框架本身作為AI的操作系統(tǒng),也面臨一些安全問題,下面列舉了一部分:
對抗性攻擊:惡意用戶可能通過微小的、經(jīng)過精心設(shè)計的修改來欺騙AI模型,導(dǎo)致模型錯誤的分類或輸出。對抗性攻擊可能對圖像分類、語音識別等應(yīng)用造成潛在風(fēng)險。
數(shù)據(jù)隱私:AI模型的訓(xùn)練依賴于大量的數(shù)據(jù),包括敏感信息。不適當(dāng)?shù)臄?shù)據(jù)處理和存儲可能導(dǎo)致隱私泄露,特別是當(dāng)模型被攻擊者用于推斷原始訓(xùn)練數(shù)據(jù)時。
模型解釋性:對于一些領(lǐng)域,特別是涉及法規(guī)和倫理要求的情況,AI模型的解釋性至關(guān)重要。缺乏對模型決策的理解可能引發(fā)信任和合規(guī)性問題。
后門攻擊:惡意用戶可能試圖在訓(xùn)練過程中注入后門,使得模型在特定條件下產(chǎn)生錯誤的結(jié)果。這種問題可能出現(xiàn)在模型的訓(xùn)練數(shù)據(jù)或訓(xùn)練過程中。
模型盜竊:攻擊者可能嘗試盜取受保護(hù)的AI模型,從而減少開發(fā)人員的努力并繞過知識產(chǎn)權(quán)的保護(hù)。
不公平性和偏見:AI模型在訓(xùn)練中學(xué)到的偏見可能導(dǎo)致對某些群體的不公平對待。這可能引發(fā)社會和法規(guī)方面的問題。
模型更新和部署安全:安全地更新和部署模型是一個挑戰(zhàn),尤其是在生產(chǎn)環(huán)境中。不當(dāng)?shù)哪P透驴赡軐?dǎo)致性能下降或潛在的安全漏洞。
解決這些問題需要綜合考慮算法的魯棒性、數(shù)據(jù)隱私保護(hù)、模型解釋性、安全更新和合規(guī)性等方面。研究人員和開發(fā)者也正在不斷努力提出新的技術(shù)和方法來應(yīng)對這些挑戰(zhàn)。
五、總結(jié)
作為網(wǎng)絡(luò)安全從業(yè)人員,我們必須了解AI框架的基本原理和使用方法,這樣才能更好地了解AI安全問題和借助AI解決網(wǎng)絡(luò)安全問題。