最近,迪士尼影片串流網站推出了一部關於人工智慧(A.I. Artificial Intelligence)的電影【A.I.創世者】(The Creator),描繪未來機器人被設計來對付人類的故事。
雖然影片劇情還可以,但不能說很有創意,但佈景和視覺設計卻相當吸引人,由片名世者,聯想到創世紀,創世紀是西方聖經的主題,亦即萬物的起源。在天文學的領域指的是宇宙大爆炸{大霹靂),這是由愛因斯坦的廣義相對論反推而得到的推論,今天我們地球人所處的太陽系所在的宇宙是很多很多億年以前的一瑒大爆炸開始的。但科學還是無法充分解釋為什麼會有這場大爆炸,大爆炸之前又是什麼一個情形?以及大爆炸的發生點何在?於是給了神學家一個空間,用上帝創世紀來合理化大爆炸的理論。
這篇文章的重點不在討論科學或神學的創世紀,這有很多專家能夠引經據典說出長篇大論,我只是引用的創世紀這個名詞來描繪這兩年來爆炸式發展的人工智慧(AI)的現象,而引發這場AI大爆炸的是Google Brain Team發展的Tensorflow,以及OpenAI發展的ChatGPT。
另一部【聯邦兇殺案】(Class of '09)影集,則描繪了以人工智慧來主導刑案的偵辦,有點【疑犯追踪】(Person Of Interest)的影子,但著眼點卻是在批判AI的濫用。以及人類對AI審判的質疑,懷疑AI審判的合法性。
其實,AI發展的最大障礙,還是在人類。人類一方面想發展出能替代人類的工具,一方面又擔心人類被替代。這也就是人性。
AI發展到今天,大致上,我們可以瞭解深度學習、機器學習是學習與養成AI必要的手段,AI能夠自我學習前必須要學會如何學習以及應用學習到的知識。這也就仰賴AI的演算法則,基本上,Google發展的TensorFlow及Linux基金會的PyTorch,都賦予了今日發展AI最主要的機器學習和演算法則的根本,也就是說,對想學習AI或應用AI的個人或企業,由學習TensorFlow或Pytorch開始,是很好的選擇,而TensorFlow與PyTorch都是開源的軟體庫,可以由網上下載需要的軟體庫來學翨AI,兩者差別在於TensorFlow的中文支持比較好,有中文官網,對英文閱讀能力稍弱的朋友比較友善一些。
此外,學習TensorFlow及PyTorch,基本上,都要會使用Python語言,Python語言是操控TensorFlow及PyTorch的高階語言,你學習TensorFlow或PyTorch,然後想運用AI在某個領域,例如擔任銀行的客服工作,就要編寫Python程式控制TensorFlow或PyTorch使用由機器學習得到的知識來支援客服,應對客戶的問題。有些銀行使用Line Bot來充當客服機器人,結果效果很不好,因為Line Bot的應對方式是很基礎的,由是,機器智商將是AI的下一步評量動作。Line Bot的機器智商不高,基本上,反應了Line Bot擔任客服機器人會很失敗情況,因為Line Bot的機器學習是由程式設計師賦予的,不像TensorFlow與PyTorch是由一個完整的AI軟體庫賦予的。
也就是說,我們利用Python語言,以及TensorFlow或PyTorch的軟體庫,編寫Python程式,建立起AI的演算法則,也因此構成AI的專業能力,例如成為醫生,TensorFlow或PyTorch的機器學習學習了成為醫生所需要的基本知識,但如何運用這些知識,就要透過Python語言編寫的程式碼來執行知識力量。特斯拉的自動駕駛,是以PyTorch為智能核心,學習駕駛汽車需要的知識,但特斯接車輛的駕駛技能是由Python程式設計師編寫的程式來賦予的。既然是人類完成的程式,就一定會有Bug、欠缺的功能。所以,或許有人會問訓練AI買玩股票能不能賺錢?我只能說,祝好運,還是那句老話,富貴簿上有沒有你的名字。
除了Python程式語言外,如果你想學習的是TensorFlow或PyTorch的底層運作,那麼你還要學習C++語言和瞭解NVIDIA的CUDA架構,因為TensorFlow或PyTorch都運用了CUDA架構來進行機器學習和AI演算法則需要的大量運算工作,如何編寫C++程式良好的控制CUDA架構來完成運算,是學習AI底層技術的基本需求。
我們可以這麼說,Python語言讓AI能夠從事職業,C++及CUDA讓AI能夠快速的學習基本知識及技能。就如同每種職業都有高手及普羅大眾一樣,AI也是一樣,端看訓練師及Python程式設計師的功力了。
因此,並不是有了AI,就有了美好明天,還要看AI是否聰明。特斯拉的自動駕駛功能,不就明明白白告訴我們AI自動駕駛的安全度沒有想像的那麼高。影片中那些有如天神般的AI,看看就好,現實生活中還沒有這樣功能強大的AI出現,但未來如何,還未定論,或許有天某個團隊發展出天網的AI也說不定,但我們可以確定的是,這絕對是經過不斷的迭代發展才達到的境界,不會是像張無忌這般在金庸武俠小說中撗空出世的高手。
TensorFlow或PyTorch的出現,為AI創世紀打下的基礎,但AI之後如何發展,需要後繼者不斷的研究開發,從失敗中學習改善而有一天能夠達到實用境地。我認為,這一天的來臨在於AI能否有能力自我編寫Python程式,彌補自己系統中欠缼的機能。除了能自我學習,還能自我發展,才是終極AI的完成。
對於計劃學習AI的朋友們,我的建議是由TensorFlow或PyTorch中選擇一條路線,沒有比較好的路線,可以到官網上瀏覽相關技術,選擇比較適合自己習慣的AI軟體庫來安裝。由於TensorFlow或PyTorch都是使用張量運算,因此AI PC的架構對建構AI服務,在效能上會有比較好的表現,但是否對學習AI有比較好的幫助,個人以為是不一定的,選擇效能心較高的CPU,例如i7、i9的桌機,也是很好的選擇。不必為了一個現在還不確的未來投入過多,直到你真的掌握了TensorFlow或PyTorch不再是門外漢或半吊子(像我一樣)再考慮引用AI PC就可以了。早買早享受,但你也要知道享受的是什麼,除了用來發展AI技能,其他領域是沒有多少助益的,還不如去升級更高階的CPU來得有感。
確定了走TensorFlow或PyTorch路線後,可以下載軟體庫來建構AI機器學習的基本環境,這個軟體庫,可以在Linux、MacOS、Windows環境下安裝使用,因為是開源,只要在非商業的個人研究範圍內,你可以任意使用。同時你也要開始學習Python語言,使用Python語言來控制TensorFlow或PyTorch的軟體庫來做更多事情,例如決策制定,流程導向等等的處理。以及要開始訓練TensorFlow或PyTorch學習知識,最好是你比較擅長的領域的知識,這樣才不會你也要學習新的知識。有知識、有流程、有決策,AI就能夠做些事情了。如果再賦予像是肢體等等實體機制,像特斯拉Optimus機器人或波士頓動力的機器狗,就成形了。
至於Python語言的直譯環境,可以到Python官網下載安裝使用,同樣的,你可以在Linux、MacOS、Windows環境下安裝及使用Python語言直譯環境。程式語言編寫完成後的執行方式,有Compiler及Interpreter兩種,Python是Interpreter的執行方式,所以就不用Compile就能執行了。
有了Python環境及TensorFlow或PyTorch環境,就能夠開始你的AI探尋之旅。這個旅程能走多遠,端看你對TensorFlow或PyTorch的領悟及對Python語言的掌握程度,當然,還有你想如何運用AI的概念。所以,AI能走到何種境界,和它的創造者的智能,有很直接的關係,智商高又有高度超技術的人所發展出來的AI,是很有可塑性的。在短期的未來,或許是現在,我們就能看到AI在微電商的領域裏的運用。由客戶以往的訂購歷史,向客戶推銷量身訂做的商品。
例如,由客戶開始採購孕婦用品或嬰兒用品來推測客戶家中有小寶寶出生來到,而開始收集建議客戶購買婦嬰用品,客戶不用再一一搜尋。又或是客戶開始大量搜尋汽車相關的耗材或用品,推測客戶己購置車輛需要車輛保養方面的商品而提供相關商品訊息。臉書就開始了這方面的應用,在Google搜尋了某些商品,就會在你的瀏覽器的Cookie內留下註記,下次瀏覽網頁時,內頁的廣告欄位就會跳出之前搜尋過的商品的相關廣告,Momo、PCHome、蝦皮就會運用這種技術來輔助推銷,但這不是AI的運用,只是Cookie的技巧而己。
AI的運用應該是在PChome、Momo、蝦皮網站中,網站後台根據你的購買和搜尋商品的記錄來分析你的行為,然後量身訂做出商品推銷策略及計劃,其至連包裝銷售優惠也都能打包出台給客戶,以爭取成交率,當然這也是根據客戶的購買行為來分析訂做的優惠措施。現在很多客服都使用AI後台來支援客戶服務工作,客戶詢問事項有不少是可以用客服機器人來應對的,例如處理密碼忘記的事情,可以用客服機器人來支援,將真人客服用在處理機器客服不能處理的事情上,例如處理掛失等更需要人工介入判斷的服務上。雖然,目前機器客服還不能完全取代人工客服,但假以時日,機器深度學習的程度到達某種程度,以及對應的邏輯程式完備程度達到一定比率,機器客服完仼取代人工客服指日可待,到了這一天,人工客服並不是被取代,而是轉為訓練機器客服。
所以,AI或許會取代人類的工作,但同時也創造新的人類工作,人類是否能進化擔任新的人類工作,還是無法進化被淘汰,這個歷程,每個新世代都有,並不是AI世代才有的現象。例如,人類是不斷進化的靈長類,而猴子則是停止進化的靈長類,這麼說,對AI的進化,是可以期待的,只是會進化成什麼樣子,就不是我們今天能預想的了,畢竟,AI進化了會不會自行再進化,脫離了人類的控制,這個問題一直被探討與並在各式影片中呈現著。
那麼,為什麼TensorFlow和PyTorch不約而同的都選用了Python語言做為建構AI的階稆式語言呢?相較於其他程式語言,Python有什麼優勢能被Google和Meta(Facebook母公司)青睞?Python語言的優勢在於資料蒐集分析能力優於其他程式語言,現今AI的發展趨勢是以機器學習和深度學習來主導,最需要的就是資料蒐集分析的能力,其他程式語言例如Basic,要寫數百行才能完成的事情,Python可能三五行內完成,而執行效能當然是程式碼越短的越好了。
但是除了資料蒐集分析外,AI還有兩個重大領域:神網網路及知覺感應模擬,嚴格來說,AI這兩個領域還在發展初期,硬體發展遲緩是取主要原因,舉例而言,機器視覺的發展也很久了,但到今天還是沒有符合成本的解決方案出現。神經網路的發展比較有進展,隨著量子電腦及張量處理單元的出現,神網網路己經是具體可行的技術了。
也因此,有些大師就認為專注在資料蒐集分析的Python語言可能落伍了,需要更為配合的程式語言來支持AI的發展,例如Julia語言,以及Apple的Swift語言,你沒看錯,一些AI大師認為Swift比Python更適合作為配合AI發展的高階語言。
但個人以為,與其追逐技術的不斷更迭,不如先把Python學好,畢竟現在浪頭上的是TensorFlow、PyTorch、Python。先專注在這些技術的學習,先入門了有了較深厚的技術基礎,再看看發展潮流才能有實力跟得上。
本文就寫到這裏,接下來我會開始就各方面的技術做個比較實務性的操作說明,不再是散文代的科技報導文了。