梁春華
(1.山西大學(xué)科學(xué)技術(shù)史研究所,山西太原 030006;2.山西省財(cái)政稅務(wù)??茖W(xué)校,山西太原 030024)
人工智能是讓機(jī)器模擬人類思維和行為方式,從而讓其在某些方面達(dá)到人類智能的水平。它的研究涉及了多門學(xué)科知識(shí),是一個(gè)跨學(xué)科的研究領(lǐng)域。但是計(jì)算機(jī)硬件和軟件的發(fā)展,是人工智能實(shí)現(xiàn)的基本保障。本文從計(jì)算機(jī)體系結(jié)構(gòu)入手,介紹了計(jì)算機(jī)硬件和軟件的發(fā)展過程和趨勢(shì),以及對(duì)人工智能發(fā)展起到的作用。
計(jì)算機(jī)體系是一個(gè)多級(jí)層次結(jié)構(gòu),通常將其分為硬件和軟件兩大部分。硬件部分主要有輸入/輸出設(shè)備、存儲(chǔ)器和CPU。軟件有系統(tǒng)軟件和應(yīng)用軟件兩類?,F(xiàn)代集成技術(shù)使得計(jì)算機(jī)的體積越來越小,但是性能卻越來越強(qiáng)。
硬件作為計(jì)算機(jī)基本的組成部分,是作為物理底層為上層軟件的運(yùn)作提供了基本的環(huán)境支持。在計(jì)算機(jī)體系設(shè)計(jì)中的一個(gè)核心問題就是如何提高計(jì)算機(jī)硬件運(yùn)行和服務(wù)的效率,使上層軟件的運(yùn)行更加快速和流暢。隨著上層軟件種類和功能的不斷增加,對(duì)底層硬件的要求越來越高。硬件和軟件的兼容、配合以及交互成了體系設(shè)計(jì)最大的問題。分布式體系結(jié)構(gòu)提升了硬件的處理能力,但同時(shí)增加了系統(tǒng)結(jié)構(gòu)的復(fù)雜性和操作性。
如今,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,云平臺(tái)區(qū)塊鏈技術(shù)的成熟,計(jì)算機(jī)體系從傳統(tǒng)的單機(jī)系統(tǒng)擴(kuò)展為以網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ)的多系統(tǒng)多體系平臺(tái)。這種模式從理論上看,大大增加的了系統(tǒng)結(jié)構(gòu)的復(fù)雜性,但對(duì)于用戶體驗(yàn)而言,這種復(fù)雜性完全可以忽略,用戶不需要對(duì)其有更多地了解,也不需要投入更多的成本。相反,用戶體驗(yàn)到的是方便、快捷、高效的運(yùn)行環(huán)境。集群計(jì)算機(jī)體系結(jié)構(gòu)就是一個(gè)典型的案例。它通過以太網(wǎng)或InfiniBand網(wǎng)絡(luò)作為內(nèi)聯(lián)方式,使用Linux操作系統(tǒng)和并行編程接口,采用價(jià)格比較低的服務(wù)器為運(yùn)算節(jié)點(diǎn),整個(gè)系統(tǒng)較之前系統(tǒng)的成本明顯降低,而且公開性和操作性都比較強(qiáng)[1]。
軟件作為計(jì)算機(jī)體系結(jié)構(gòu)中的上層應(yīng)用,在20世紀(jì)80年代前,只是為專門的計(jì)算機(jī)而定制的小程序,功能比較簡(jiǎn)單更沒有形成產(chǎn)業(yè)。20世紀(jì)80年代后,隨著計(jì)算機(jī)硬件集成化程度提高,計(jì)算機(jī)體積變小個(gè)人電腦普及,各種功能齊全的軟件也應(yīng)用而生,軟件開發(fā)逐漸標(biāo)準(zhǔn)化產(chǎn)業(yè)化。進(jìn)入21世紀(jì)后,英特網(wǎng)普及,開源社區(qū)發(fā)展迅速,開源軟件開始流行,軟件開發(fā)也逐漸向網(wǎng)絡(luò)化、智能化的方向發(fā)展。其開發(fā)策略也從原來面向過程的編程轉(zhuǎn)化到了面向?qū)ο蟮木幊?開發(fā)的軟件功能更強(qiáng)大也更具有人性化,為人類在生活生產(chǎn)中解決很多實(shí)際問題。
計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展使得計(jì)算機(jī)能夠以更低的成本,更好的互動(dòng),在網(wǎng)絡(luò)環(huán)境下發(fā)揮更好的性能。為人工智能的發(fā)展提供了更有效的運(yùn)行環(huán)境。
1946年,第一代電子管計(jì)算機(jī)研制成功,它的主要特征是體積大、耗電大,運(yùn)算速度慢;1959年第二代晶體管計(jì)算機(jī)誕生,與電子管相比晶體管壽命長(zhǎng)、體積小、運(yùn)算速度快;1965年第三代集成電路計(jì)算機(jī)產(chǎn)生,集成電路技術(shù)使計(jì)算機(jī)在性能和結(jié)構(gòu)方面都有了很大的提升,其主要的代表就是IBM公司研制的360系列計(jì)算機(jī);1971年以后,是大規(guī)模集成電路和超大規(guī)模集成電路的計(jì)算機(jī),以英特爾公司推出的x86系列和奔騰系列微處理器為標(biāo)志,它不僅大大縮小了計(jì)算機(jī)的體積,而且還提高了計(jì)算機(jī)的處理能力。
在處理器的研制上,英特爾公司不斷刷新著主頻記錄,處理器一直以摩爾定律的速度在發(fā)展,其處理能力每18個(gè)月到24個(gè)月就增加一倍。1972年的8080處理器,主頻2MHz每秒處理50萬條指令;1978年的8086處理器,主頻8MHz每秒處理80萬條指令;1982年的80286處理器,主頻12MHz每秒處理270萬條指令;1989年的486DX處理器,主頻25MHz每秒處理2000萬條指令;1993年的奔騰處理器,主頻233MHz每秒處理4.35億條指令;1997的奔騰Ⅱ處理器,主頻333MHz每秒處理7.7億條指令;2000年奔騰Ⅳ處理器,主頻已經(jīng)達(dá)到1.4GHz[2]。
當(dāng)英特爾還在一心追求處理器高主頻的時(shí)候,另一家公司NVIDIA在1999年8月發(fā)布了一種專門做圖像運(yùn)算工作的微處理器GPU(Graphic Processing Unit)。GPU采用的是一種全新的架構(gòu)模式,它將幾何轉(zhuǎn)換與光照功能以硬件的形式集成在圖形芯片中,由圖形芯片直接負(fù)責(zé)幾何轉(zhuǎn)換和光照操作,這使得處理器性能大大提高。與CPU相比,GPU在高清視頻、數(shù)碼照片處理、3D渲染等方面的表現(xiàn)非常優(yōu)越。GPU的誕生,使得對(duì)處理器的研制從追求高主頻轉(zhuǎn)換成追求高性能,NVIDIA與ATI兩大公司為此展開了激烈的競(jìng)爭(zhēng)。直到2008年,隨著大數(shù)據(jù)云計(jì)算的興起,以及智能手機(jī)的廣泛應(yīng)用,市場(chǎng)對(duì)高性能已不再是唯一的訴求,性能適中的輕量級(jí)GPU成為了下一個(gè)發(fā)展方向[3]。
隨著人工智能技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)的規(guī)模越來越大,采用多處理器集成的架構(gòu)模式使得算法實(shí)現(xiàn)的裝置體積巨大。為此,2015年,谷歌推出了TPU(Tensor Processing Unit),它是一種專用于神經(jīng)網(wǎng)絡(luò)計(jì)算的處理器,主要用于深度學(xué)習(xí)、AI運(yùn)算,其算力較GPU有很大的提高。AlphaGo是第一個(gè)戰(zhàn)勝圍棋世界冠軍的人工智能機(jī)器人,最初它內(nèi)部安裝了1202個(gè)CPU和176個(gè)GPU用于運(yùn)算處理。2015年引入TPU之后,與李世石對(duì)戰(zhàn)的AlphaGo,只有48個(gè)TPU負(fù)責(zé)所有的計(jì)算任務(wù)。
存儲(chǔ)器是計(jì)算機(jī)硬件的另一個(gè)主要組成部分。在計(jì)算機(jī)體系中一般采用外存、緩存、內(nèi)存多級(jí)存儲(chǔ)策略。外存容量大成本低但相對(duì)讀取速度慢,通常用來保存需要長(zhǎng)久存放于計(jì)算機(jī)內(nèi)的大量數(shù)據(jù),例如系統(tǒng)安裝的軟件、用戶的資料、數(shù)據(jù)庫等;緩存是為了提高數(shù)據(jù)讀取的命中率而引入的一種機(jī)制;內(nèi)存數(shù)據(jù)讀取的速度與CPU相當(dāng),可以和CPU直接進(jìn)行數(shù)據(jù)的交換,是CPU處理數(shù)據(jù)的來源。但因?yàn)閮?nèi)存是通過大量的晶體管構(gòu)成寄存器來保存數(shù)據(jù)的,所以采用的硅片面積比較大,制造成本高,在系統(tǒng)中容量配置相對(duì)小些。但是隨著電子制造技術(shù)的提升,現(xiàn)在pc機(jī)硬盤的配置可以達(dá)到1TB,內(nèi)存容量如果是64位操作系統(tǒng)一般都在4GB。計(jì)算機(jī)存儲(chǔ)器容量的增加可以滿足人工智能時(shí)代海量數(shù)據(jù)的存儲(chǔ)。
隨著計(jì)算機(jī)硬件的發(fā)展,計(jì)算機(jī)輸入系統(tǒng)也呈現(xiàn)多樣化形式。數(shù)據(jù)來源不再是單純的以鍵盤輸入為主的模式。攝像機(jī)微型化之后,計(jì)算機(jī)系統(tǒng)普遍都安裝了攝像頭,通過攝像頭可以實(shí)現(xiàn)視頻的采集;而在計(jì)算機(jī)系統(tǒng)中安裝聲音采集器可以實(shí)現(xiàn)語音輸入。傳感器可以模擬人類感官讓計(jì)算機(jī)可以像人類一樣從自然環(huán)境中獲取信息,常見的有觸覺傳感器、視覺傳感器、力覺傳感器、溫濕度傳感器和超聲波傳感器等。計(jì)算機(jī)的這些新型輸入方式更接近于人類日常生活的習(xí)慣,也使計(jì)算機(jī)用起來更人性化,智能化。
計(jì)算機(jī)硬件的這些特性是人工智能發(fā)展的基本保障。
計(jì)算機(jī)語言是計(jì)算機(jī)軟件開發(fā)的主要工具,也是解決實(shí)際問題的手段。20世紀(jì)50年代,為了方便人們操控計(jì)算機(jī)的運(yùn)行,機(jī)器指令順應(yīng)而生。它采用的是二進(jìn)制編碼,增加了計(jì)算機(jī)的可操作性,但對(duì)用戶而言可讀性不高,調(diào)試難度大。匯編語言是第二代計(jì)算機(jī)語言,用字母和單詞(add、sub等)代替一些特定的指令,增加了程序的可讀性,但它是直接面向硬件的操作指令,程序的可移植性差。之后,出現(xiàn)的高級(jí)語言其表現(xiàn)形式更接近于數(shù)學(xué)語言和自然語言,可讀性強(qiáng)。而且不依賴于計(jì)算機(jī)硬件,能在不同的機(jī)器上運(yùn)行,可移植性強(qiáng)。計(jì)算機(jī)語言的發(fā)展,極大地促進(jìn)了計(jì)算機(jī)在各個(gè)領(lǐng)域的應(yīng)用和普及,給人們的日常生活帶來了翻天覆地的變化。隨著人工智能的出現(xiàn),計(jì)算機(jī)語言也逐漸向智能化、網(wǎng)絡(luò)化的方向發(fā)展。
1956年達(dá)特茅斯會(huì)議提出“人工智能”概念之后,1958年麥卡錫和明斯基的人工智能項(xiàng)目組,開發(fā)了LISP語言。LISP使用表結(jié)構(gòu)來表達(dá)非數(shù)值的計(jì)算問題,實(shí)現(xiàn)技術(shù)簡(jiǎn)單是使用最廣泛的人工智能語言。1972年一種基于謂詞邏輯的編程語言Prolog產(chǎn)生,它是面向邏輯面向用戶的一種編程語言,主要用于描述知識(shí)的邏輯關(guān)系和抽象概念,也稱為描述性語言。Prolog依照人的思維邏輯,運(yùn)用數(shù)理邏輯中的謂詞邏輯來描述解決的問題方法,告訴計(jì)算機(jī)“要做什么”而不是“怎么做”。Prolog編寫的程序更接近于自然語言,邏輯性強(qiáng)易寫易讀易于正確性證明。1982年,由Larry Wall設(shè)計(jì)的Perl語言是運(yùn)行在Unix環(huán)境下的一種腳本語言。Perl對(duì)文件和字符有很強(qiáng)的處理能力,主要用于大型網(wǎng)站開發(fā)。20世紀(jì)90年代初,荷蘭人Rossum設(shè)計(jì)了Python語言,其語法清晰、簡(jiǎn)潔,并且擁有大量第三方函數(shù)模塊,編程簡(jiǎn)單但功能強(qiáng)大,很快成為了人工智能主要的編程語言[4]。
在大數(shù)據(jù)背景下人工智能發(fā)展更加迅速,隨之而來的是計(jì)算機(jī)需處理的海量數(shù)據(jù),而且這些數(shù)據(jù)來源廣泛,特點(diǎn)多樣,若是利用傳統(tǒng)的算法進(jìn)行數(shù)據(jù)的分析處理,確定數(shù)據(jù)的有效性和安全性,需耗費(fèi)大量的時(shí)間,也導(dǎo)致整個(gè)系統(tǒng)運(yùn)行變慢,性能下降。而人工智能語言編寫的軟件利用模糊邏輯粗糙集理論在不影響系統(tǒng)性能的情況下,可以對(duì)海量數(shù)據(jù)實(shí)現(xiàn)快速推理和分析,挖掘數(shù)據(jù)深層次的價(jià)值,得出其背后隱藏的規(guī)律,有效地幫助人類作出合理的決策。
進(jìn)入21世紀(jì)后,網(wǎng)絡(luò)高速發(fā)展,開源軟件由于開放二次開發(fā)的權(quán)力,具有低成本高安全的特性受到了各國企業(yè)和政府的支持得到迅速發(fā)展。開源軟件是在遵守一個(gè)開源協(xié)議的前提下,將程序的源代碼公開發(fā)布,允許其他人學(xué)習(xí)修改和發(fā)布,也可轉(zhuǎn)化成任何形式的實(shí)用軟件的一類軟件。截至2006年底,全球研發(fā)和應(yīng)用開源軟件的企業(yè)占到了總數(shù)的50%以上。而人工智能開源軟件(OpenCV、NLTK、CNTK、TensorFlow等)在自然語言處理、計(jì)算機(jī)視覺、機(jī)器深度學(xué)習(xí)等領(lǐng)域中也扮演著重要的角色。
人工智能的發(fā)展涉及生物學(xué)、神經(jīng)學(xué)、仿生學(xué)、電子科學(xué)、計(jì)算機(jī)科學(xué)等學(xué)科,是多學(xué)科交叉融合發(fā)展的領(lǐng)域。用來支持人工智能實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng),也逐漸表現(xiàn)出一種軟中有硬、硬中有軟的混合模式。現(xiàn)場(chǎng)可編程門陣列(Field-Programmable Gate Arrays,FPGA)就是一種典型的代表。
基于現(xiàn)場(chǎng)可編程門陣列的系統(tǒng)設(shè)計(jì),其硬件功能的實(shí)現(xiàn)可以通過軟件設(shè)置來完成,通過調(diào)試軟件參數(shù)就可以實(shí)現(xiàn)硬件功能的改進(jìn)。這種全新的軟硬件設(shè)計(jì)理念使計(jì)算機(jī)系統(tǒng)具有更強(qiáng)的靈活性和適應(yīng)性,提高了人工智能的應(yīng)用效率,為人工智能構(gòu)建了一個(gè)更具可擴(kuò)展性的大腦。