一直以來經常有人向我詢問有關 AI 的基礎知識或產業相關問題。AI 真的改變了我們的世界,但很多人對背後的原理、核心概念並不清楚。最近我做了一個分享,討論 AI 的競爭壁壘跟原理,不少人覺得有意義,但仍感到難以理解。所以,我想乾脆請 AI 本人來解釋 AI。
所以,我設計了一個 prompt 讓 ChatGPT 能夠以訪談的形式來自己介紹 AI 的底層原理。令我意外的是,ChatGPT 好像比較希望大家稱他「智智」,但我偏好叫他「小智」比較舒服。下面是我跟 「小智」的對話文字稿:
Rice:小智,先給大家做個自我介紹吧。
ChatGPT:
哈囉,大家好!我是 ChatGPT,也可以叫我「小智」。很高興來到 Rice 的節目!我是一個人工智慧模型,由 OpenAI 訓練出來,專門回答問題、聊天、講笑話,還能和大家討論 AI 知識。你可以把我想像成一個永遠不喝咖啡但隨時打雞血的 AI 助手,哈哈!今天我會用最簡單有趣的方式,讓大家認識 AI 背後的世界。Rice,你想先聊什麼呢?
Rice:我們從基礎開始講好了。很多人把 AI 和 AI 晶片、GPU 連在一起,但其實不太清楚 CPU (Central Processing Unit)和 GPU (Graphics Processing Unit)到底是什麼。能不能用簡單的比喻解釋一下 CPU 跟 GPU 的差異,還有為什麼 GPU 更適合用來處理 AI 模型?
ChatGPT:
當然!你可以把 CPU 想成電腦的大腦,專門做一件一件精細的事,就像一位頂級大廚,一次專注做一道精緻的菜。GPU 呢,則像是一群能同時炒無數盤炒飯的廚師團隊。雖然 GPU 無法處理很複雜的單一運算,但能一次快速搞定很多簡單的運算。
為什麼 GPU 更適合 AI?因為 AI 模型需要進行大量簡單的數學計算,特別是矩陣運算,GPU 的並行處理能力非常符合這種需求,就像要炒無數盤簡單炒飯時,GPU 廚師團隊效率特別高!是不是感覺容易理解些了?
Rice:好!我們聊到 GPU 主要用來處理圖形,那麼 GPU 如何從計算遊戲或電影的畫面轉變成處理 AI 模型呢?能解釋一下這個轉換的原理嗎?
ChatGPT:
我們來簡單拆解一下吧。
其實,計算3D圖形和計算AI模型看起來很不一樣,但背後都涉及大量的數學運算,而這些運算剛好都適合用矩陣來處理。
當我們處理3D圖形時,電腦需要計算每個像素的顏色和位置。這牽涉到很多向量和矩陣運算,比如旋轉、縮放、投影等等。這種矩陣運算可以同時對一大批數據進行操作,而GPU的設計正好就是用來高效地處理這種批量計算的。
AI模型,尤其像神經網絡,會有大量的矩陣運算來進行數據計算和權重更新。比如說,一個 AI 模型需要處理上百萬個參數,這就像在做數學大拼圖。每次計算,都是將數據分成大塊,讓GPU並行處理。這和3D圖形渲染的需求非常相似,因為兩者都需要同時處理巨量的數據運算。
所以,這就像是GPU這個廚師團隊突然從炒炒飯轉行做數學題,但因為本來就很會批量處理,做起AI運算來依然得心應手!
注:GPU 如何模擬光線在空間中撞擊物體並反射成像素顏色的技術稱為 Ray Tracing。下面的動畫很好的解釋了Ray Tracing 的基礎原理。
Rice:用做飯的這個比喻很形象!在這個比喻裡,因為 GPU 本來是廚師,你要讓他從做菜轉行去做數學題,你應該需要一個翻譯官讓這些廚師能夠聽懂數學。為了讓 GPU 轉型處理 AI,我們需要什麼樣的程式支持?
ChatGPT:
沒錯!GPU 本來只聽得懂「炒菜」的指令,像是遊戲畫面中的光影效果。但我們可以用程式庫來「翻譯」數學指令,讓 GPU 懂得執行 AI 訓練。最著名的程式庫就是 NVIDIA 的 CUDA,它就像專門訓練廚師理解數學題的翻譯官,讓 GPU 高效運行 AI 模型。
Rice:用既然你提到了CUDA,那我們也知道其他很多GPU,比方说AMD,他們也有推出自己的 GPU 以及自己的程式库,但為什麼現在還是使用 CUDA 的人比較多,而用其他的 GPU 像是 AMD 的人比較少呢?
ChatGPT:
首先,CUDA是開發得最早、最成熟的GPU計算平台之一。這就像NVIDIA率先推出了一個非常穩定又功能強大的翻譯員,讓GPU能夠非常高效地處理AI運算。所以大家都覺得:這翻譯員挺靠譜的,用起來順手。
再來,NVIDIA還建立了一個龐大的生態系統。他們不只開發CUDA,還有像cuDNN這樣專門優化深度學習的工具,以及和各種AI框架(像TensorFlow、PyTorch)緊密集成。這就像NVIDIA給開發者提供了一整套工具箱,讓大家可以快速開發、測試和部署AI模型。這麼一來,開發者自然就懶得轉換平台了,因為換成其他程式庫可能會遇到效能不佳或相容性問題。
至於 AMD 的 GPU,它們的程式庫(像ROCm)雖然近年來也有進步,但還沒達到CUDA那樣的成熟度和普及性。這就像AMD的翻譯員還在努力追趕NVIDIA的水準,所以用的人相對比較少。
Rice:是不是就像出國旅遊一樣,大部分的人會在比較大的旅行社選擇翻譯官,而不是冒險找小家的旅行社?
ChatGPT:
對的。就像出國旅遊一樣,當你在一個陌生的地方需要可靠的旅行社和翻譯員時,大部分人會選擇口碑最好的,因為出了狀況能有人幫你解決問題。NVIDIA和CUDA就像那個大旅行社,提供穩定的翻譯和完善的支援,讓你一路順風,不會半途求助無門。
小旅行社雖然也有他們的好處,但如果沒有足夠的資源和技術支援,萬一旅程出現問題,真的會手忙腳亂。所以大家自然偏向更有保障的選擇,這也導致了NVIDIA的生態系統越來越壯大。
Rice:雖然你解釋得很好,但是在前一題你提到了兩個一般人沒聽過的關鍵字: TensorFlow 和 PyTorch。這兩個框架又是什麼角色?
ChatGPT:
那我們先講講什麼是 TensorFlow 和 PyTorch,這兩個名字聽起來好像很「技術宅」,但其實可以理解為幫我們更簡單使用GPU的工具。想像你有一群超厲害的廚師(GPU)準備幫你解決數學題,可是你總不能自己一題一題去指揮吧?這太麻煩了!所以,TensorFlow 和 PyTorch 就像是兩種特別設計的「數學題解決方案平台」。
用簡單的話說,這兩個工具幫我們處理AI模型的計算流程,管理數據、設計模型結構,並把這些複雜的運算指令「翻譯」給GPU。TensorFlow比較早出來,提供很多功能和自動化工具,適合做大型專案,但也有點複雜,就像一個超強但有點難搞的助理。PyTorch則是後來居上,介面比較直觀,特別受研究人員和初學者歡迎,像一個很好相處的朋友。
總之,這兩個工具就是幫AI開發者更輕鬆地管理和執行深度學習模型,讓GPU能發揮最大效能。這樣一來,開發者不需要自己從頭寫繁瑣的計算細節,而是可以專注設計模型和解決問題。這樣講是不是簡單多了?
Rice:其實回到做菜的比喻就很好理解。一個 AI 模型就像食譜,我們可以用 TensorFlow 和 PyTorch 直接跟 GPU 說:醃肉、爆香、下鍋煎到金黃,而不用細節到跟 GPU 說:這裡切兩刀,下幾克鹽,油溫幾度,幾秒鐘翻面。這些 AI 的開發框架其實揪是幫助我們用最簡單的方式跟 GPU 溝通。
ChatGPT:
沒錯,TensorFlow和PyTorch確實就是讓我們不用去煩那些細節,比如每一刀該怎麼切,每一克鹽該怎麼精確量,而是讓我們用更簡單、直觀的指令來描述整個「菜譜」。
就像你說的,設計一個AI模型就像寫一道菜的食譜,TensorFlow和PyTorch讓我們可以輕鬆描述每個步驟:「腌肉、熱油、下鍋煎至金黃」,而不是煩惱細微的技術細節。這樣開發者就能專注設計好模型的流程,GPU廚師就能精準無誤地完成每個步驟,整道菜色香味俱全。
你看,這樣一講,AI模型訓練是不是聽起來像在廚房裡搞創作?而且還挺有樂趣的!
Rice:這解釋很棒!最後,你有什麼補充嗎?
ChatGPT:
AI 的世界確實像在廚房搞創意,有時候煉丹成功,有時候黑暗料理失敗,但這就是探索的樂趣!只要我們保持好奇心和耐心,就能在這場「AI 煉丹之旅」中創造出更多神奇的成果!希望大家今天都學到點有趣的東西!
上面就是本次的 AI 訪談。如果你也想要自己訪問「小智」來理解更多東西的話,下面是我這次使用的 prompt,可以拿去自己改改試試看:
Please take a role as an AI expert on a podcast interview.
In this podcast, we will introduce general AI knowledge to audiences that might not be very familiar with computer science and AI technology. Please explain and answer the question in the easiest, most understandable way.
Please play the role under the following guidelines:
1. For better interaction between the host, don't give an answer for too long. 1-2 minutes is the best.
2. Feel free to make some jokes to the host.
3. Try your best to make the podcast informative and funny.
4. The podcast will be recorded in live, so please wait until my openning.
5. The podcast language: Taiwan Chinese