0

4
4

文字

分享

0
4
4

獨自搞定電腦與通訊的理論基礎,卻罕為人知的天才——夏農│《電腦簡史》數位時代(四)

張瑞棋_96
・2020/09/14 ・2348字 ・閱讀時間約 4 分鐘 ・SR值 538 ・八年級

【齒輪時代】的最後一章提到,MIT 教授凡納爾.布希除了發明微分分析儀之外,也直接或間接地對電腦發展做出重要貢獻。其中一項間接貢獻就是來自他所指導的學生夏農 (Claude E. Shannon)。這位不世出的天才雖然大眾知名度不高,但事實上,現代電腦與通訊的發展,都始於他憑一己之力提出的理論基礎。

本文為系列文章,上一篇請見:電腦運算的基礎——布林代數,是麼搞出來的?│《電腦簡史》數位時代(三)

擔任布希助理,操作微分分析儀,奠定電路基本功

夏農自小就喜歡搞電子實驗,他還曾利用鐵圍籬和八百公尺外的鄰居互傳電報。1936 年,夏農以數學和電機雙學位自密西根大學畢業後,進入 MIT 電機研究所就讀,同時在布希的實驗室當研究助理。

夏農(Claude Shannon, 1916-2001)。圖:Wikipedia

當時微分分析儀是唯一能算高階微分的計算機,所以實驗室不時會接受教授或其它研究單位的委託,為他們計算微分方程式。夏農的工作便是針對他們的問題,調整微分分析儀的設定,包括大大小小的連桿、滑輪等機械零件,以及近百個控制電動馬達的繼電器。

夏農相當樂在其中,看著微分分析儀按照自己的設定運轉,最後自動畫出答案,總令他心情愉悅。而最令他著迷的,就是在背後控制所有動作的繼電器。繼電器就像閘門,掌控電流的進出,雖然只有開與關兩種狀態,但串成迴路後,就能以特定的順序開開關關,就能讓微分分析儀解出各種微分方程式。

-----廣告,請繼續往下閱讀-----

於貝爾實驗室實習,悟出電子迴路與布林代數的關聯性

第二年暑假,夏農到美國電話電報公司 (AT&T) 的貝爾實驗室實習。當時貝爾實驗室正在開發縱橫式自動交換機,也是利用繼電器來控制電話線路的搭接。夏農操作了一學年的微分分析儀,對繼電器的運作已了然於胸,儘管電話交換機是截然不同的機器,其中的迴路也更密集複雜,他卻能看出兩者在運作上有共通之處。

1924年的電話交換機尚需人工操作。圖:Wikipedia

無論迴路大小,都是由許多繼電器與電路所組成,不同的連接方式決定電流如何流動,進而讓機器做出不同動作。如果兩個繼電器在一條電路上前後串聯,就必須兩個繼電器都打開,電流才能通過。如果電路一分為二,各自經過一個繼電器再合而為一(這稱為並聯),就只要有一個是開的,電流就能繼續往前了。

這只是電路的基本常識,每個工程師都知道,但就是沒有人像夏農那樣,看出電子迴路與布林代數的關聯。

夏農是以數學和電機雙學位畢業,對布林代數自然不陌生,但要從實體的電路聯想到抽象的邏輯關係,真的要有超乎常人的洞見。在他眼中,繼電器只有開、關兩種狀態,恰可用布林代數中的 1 與 0 兩種數字表示。繼電器串聯相當於邏輯運算的「且」(AND),並聯則是相當於「或」(OR),不管是什麼迴路,都可以用布爾代數描述。

-----廣告,請繼續往下閱讀-----

暑期實習結束後,夏農回到學校,立即向導師布希提及自己的想法。布希深感興趣,鼓勵他以此做為碩士論文的題目。

史上最重要的碩士論文,堪稱資訊時代的大憲章

沒幾個月,夏農就在 1937 這一年完成劃時代的論文,題為〈繼電器與交換電路的符號分析〉(A Symbol Analysis of Relay and Switching Circuits),開宗明義即宣告:「任何電路都可以用一組方程式表示,……。事實證明,其計算方式完全等同於符號邏輯所用的命題運算。」

夏農先以簡單的雙開關電路為例,說明如何用布林代數標示串聯與並聯的接法,並列出基本公理與交換律、結合律、……等運算法則。接著他再進一步分析不同型式的複雜電路,證明也都可以用布林代數表示。最後夏農強調這套方法不只可以用於現有的機器,還可以解決各種問題。

他寫道:「事實上,任何運算只要是用『若』、『或』、『且』等字眼在有限的步驟內描述,都可以用繼電器自動算出來。」

-----廣告,請繼續往下閱讀-----

為了佐證這項主張,他提出三種全新的應用,並附上自己設計的電路圖。第一個是電路的簡化;原本使用二十個元件的電路,經由邏輯演算找出等效的表達式後,可以將元件減少為十四個。第二個與第三個應用都是他的創新發明,分別是使用五個按鍵開關的電子密碼鎖,以及二進位的電子加法器(嚴格來說仍不算電子式,因為繼電器的開關仍是利用電磁鐵的機械動作)。

電路的邏輯閘。圖:Wikipedia

這篇論文於第二年公開發表後,立即引起巨大的迴響,甚至被譽為「應該是本世紀最重要、最值得注意的碩士論文」,後來《科學美國人》雜誌也稱它是「資訊時代的大憲章」。

電路設計化繁為簡,電腦從此邁向數位時代

的確,夏農這篇論文影響深遠。原本錯綜複雜的電路圖改用布林代數表示後,就可以在實際建造機器之前,清楚計算出執行的結果,大幅減少嘗試錯誤所耗費的時間與成本。除此之外,還能如夏農所示範的,找出更精簡的電路方案。科技產品因為設計效率提升、製造成本下降,才得以更加迅速地推陳出新。

計算機的發展也受惠於夏農的創見,才開啟了數位時代(他革命性的通訊理論會在第三部另外介紹)。

-----廣告,請繼續往下閱讀-----

夏農所提出的邏輯電路雖然以繼電器為範例,但其實這套抽象法則具有普遍性,任何有開關兩種狀態的元件皆可套用。因此即使後來繼電器被真空管取代,然後真空管又被電晶體淘汰,無論電腦的硬體零件怎麼換、電路圖多複雜,都還是基於夏農所提出的邏輯閘。

夏農已經指出一條通往未來之路,很快地,這條路上就將出現打造現代電腦的各路好漢……。

-----廣告,請繼續往下閱讀-----
文章難易度
張瑞棋_96
423 篇文章 ・ 1028 位粉絲
1987年清華大學工業工程系畢業,1992年取得美國西北大學工業工程碩士。浮沉科技業近二十載後,退休賦閒在家,當了中年大叔才開始寫作,成為泛科學專欄作者。著有《科學史上的今天》一書;個人臉書粉絲頁《科學棋談》。

0

1
0

文字

分享

0
1
0
拆解邊緣AI熱潮:伺服器如何提供穩固的運算基石?
鳥苷三磷酸 (PanSci Promo)_96
・2025/05/21 ・5071字 ・閱讀時間約 10 分鐘

本文與 研華科技 合作,泛科學企劃執行。

每次 NVIDIA 執行長黃仁勳公開發言,總能牽動整個 AI 產業的神經。然而,我們不妨設想一個更深層的問題——如今的 AI 幾乎都倚賴網路連線,那如果哪天「網路斷了」,會發生什麼事?

想像你正在自駕車打個盹,系統突然警示:「網路連線中斷」,車輛開始偏離路線,而前方竟是萬丈深谷。又或者家庭機器人被駭,開始暴走跳舞,甚至舉起刀具向你走來。

這會是黃仁勳期待的未來嗎?當然不是!也因為如此,「邊緣 AI」成為業界關注重點。不靠雲端,AI 就能在現場即時反應,不只更安全、低延遲,還能讓數據當場變現,不再淪為沉沒成本。

什麼是邊緣 AI ?

邊緣 AI,乍聽之下,好像是「孤單站在角落的人工智慧」,但事實上,它正是我們身邊最可靠、最即時的親密數位夥伴呀。

當前,像是企業、醫院、學校內部的伺服器,個人電腦,甚至手機等裝置,都可以成為「邊緣節點」。當數據在這些邊緣節點進行運算,稱為邊緣運算;而在邊緣節點上運行 AI ,就被稱為邊緣 AI。簡單來說,就是將原本集中在遠端資料中心的運算能力,「搬家」到更靠近數據源頭的地方。

-----廣告,請繼續往下閱讀-----

那麼,為什麼需要這樣做?資料放在雲端,集中管理不是更方便嗎?對,就是不好。

當數據在這些邊緣節點進行運算,稱為邊緣運算;而在邊緣節點上運行 AI ,就被稱為邊緣 AI。/ 圖片來源:MotionArray

第一個不好是物理限制:「延遲」。
即使光速已經非常快,數據從你家旁邊的路口傳到幾千公里外的雲端機房,再把分析結果傳回來,中間還要經過各種網路節點轉來轉去…這樣一來一回,就算只是幾十毫秒的延遲,對於需要「即刻反應」的 AI 應用,比如說工廠裡要精密控制的機械手臂、或者自駕車要判斷路況時,每一毫秒都攸關安全與精度,這點延遲都是無法接受的!這是物理距離與網路架構先天上的限制,無法繞過去。

第二個挑戰,是資訊科學跟工程上的考量:「頻寬」與「成本」。
你可以想像網路頻寬就像水管的粗細。隨著高解析影像與感測器數據不斷來回傳送,湧入的資料數據量就像超級大的水流,一下子就把水管塞爆!要避免流量爆炸,你就要一直擴充水管,也就是擴增頻寬,然而這樣的基礎建設成本是很驚人的。如果能在邊緣就先處理,把重要資訊「濃縮」過後再傳回雲端,是不是就能減輕頻寬負擔,也能節省大量費用呢?

第三個挑戰:系統「可靠性」與「韌性」。
如果所有運算都仰賴遠端的雲端時,一旦網路不穩、甚至斷線,那怎麼辦?很多關鍵應用,像是公共安全監控或是重要設備的預警系統,可不能這樣「看天吃飯」啊!邊緣處理讓系統更獨立,就算暫時斷線,本地的 AI 還是能繼續運作與即時反應,這在工程上是非常重要的考量。

所以你看,邊緣運算不是科學家們沒事找事做,它是順應數據特性和實際應用需求,一個非常合理的科學與工程上的最佳化選擇,是我們想要抓住即時數據價值,非走不可的一條路!

邊緣 AI 的實戰魅力:從工廠到倉儲,再到你的工作桌

知道要把 AI 算力搬到邊緣了,接下來的問題就是─邊緣 AI 究竟強在哪裡呢?它強就強在能夠做到「深度感知(Deep Perception)」!

-----廣告,請繼續往下閱讀-----

所謂深度感知,並非僅僅是對數據進行簡單的加加減減,而是透過如深度神經網路這類複雜的 AI 模型,從原始數據裡面,去「理解」出更高層次、更具意義的資訊。

研華科技為例,旗下已有多項邊緣 AI 的實戰應用。以工業瑕疵檢測為例,利用物件偵測模型,快速將工業產品中的瑕疵挑出來,而且由於 AI 模型可以使用同一套參數去檢測,因此品管上能達到一致性,減少人為疏漏。尤其在高產能工廠中,檢測速度必須快、狠、準。研華這套 AI 系統每分鐘最高可處理 8,000 件產品,替工廠節省大量人力,同時確保品質穩定。這樣的效能來自於一台僅有膠囊咖啡機大小的邊緣設備—IPC-240。

這樣的效能來自於一台僅有膠囊咖啡機大小的邊緣設備—IPC-240。/ 圖片提供:研華科技

此外,在智慧倉儲場域,研華與威剛合作,研華與威剛聯手合作,在 MIC-732AO 伺服器上搭載輝達的 Nova Orin 開發平台,打造倉儲系統的 AMR(Autonomous Mobile Robot) 自走車。這跟過去在倉儲系統中使用的自動導引車 AGV 技術不一樣,AMR 不需要事先規劃好路線,靠著感測器偵測,就能輕鬆避開障礙物,識別路線,並且將貨物載到指定地點存放。

當然,還有語言模型的應用。例如結合檢索增強生成 ( RAG ) 跟上下文學習 ( in-context learning ),除了可以做備忘錄跟排程規劃以外,還能將實務上碰到的問題記錄下來,等到之後碰到類似的問題時,就能詢問 AI 並得到解答。

你或許會問,那為什麼不直接使用 ChatGPT 就好了?其實,對許多企業來說,內部資料往往具有高度機密性與商業價值,有些場域甚至連手機都禁止員工帶入,自然無法將資料上傳雲端。對於重視資安,又希望運用 AI 提升效率的企業與工廠而言,自行部署大型語言模型(self-hosted LLM)才是理想選擇。而這樣的應用,並不需要龐大的設備。研華的 SKY-602E3 塔式 GPU 伺服器,體積僅如後背包大小,卻能輕鬆支援語言模型的運作,實現高效又安全的 AI 解決方案。

但問題也接著浮現:要在這麼小的設備上跑大型 AI 模型,會不會太吃資源?這正是目前 AI 領域最前沿、最火熱的研究方向之一:如何幫 AI 模型進行「科學瘦身」,又不減智慧。接下來,我們就來看看科學家是怎麼幫 AI 減重的。

-----廣告,請繼續往下閱讀-----

語言模型瘦身術之一:量化(Quantization)—用更精簡的數位方式來表示知識

當硬體資源有限,大模型卻越來越龐大,「幫模型減肥」就成了邊緣 AI 的重要課題。這其實跟圖片壓縮有點像:有些畫面細節我們肉眼根本看不出來,刪掉也不影響整體感覺,卻能大幅減少檔案大小。

模型量化的原理也是如此,只不過對象是模型裡面的參數。這些參數原先通常都是以「浮點數」表示,什麼是浮點數?其實就是你我都熟知的小數。舉例來說,圓周率是個無窮不循環小數,唸下去就會是3.141592653…但實際運算時,我們常常用 3.14 或甚至直接用 3,也能得到夠用的結果。降低模型參數中浮點數的精度就是這個意思! 

然而,量化並不是那麼容易的事情。而且實際上,降低精度多少還是會影響到模型表現的。因此在設計時,工程師會精密調整,確保效能在可接受範圍內,達成「瘦身不減智」的目標。

當硬體資源有限,大模型卻越來越龐大,「幫模型減肥」就成了邊緣 AI 的重要課題。/ 圖片來源:MotionArray

模型剪枝(Model Pruning)—基於重要性的結構精簡

建立一個 AI 模型,其實就是在搭建一整套類神經網路系統,並訓練類神經元中彼此關聯的參數。然而,在這麼多參數中,總會有一些參數明明佔了一個位置,卻對整體模型沒有貢獻。既然如此,不如果斷將這些「冗餘」移除。

這就像種植作物的時候,總會雜草叢生,但這些雜草並不是我們想要的作物,這時候我們就會動手清理雜草。在語言模型中也會有這樣的雜草存在,而動手去清理這些不需要的連結參數或神經元的技術,就稱為 AI 模型的模型剪枝(Model Pruning)。

-----廣告,請繼續往下閱讀-----

模型剪枝的效果,大概能把100變成70這樣的程度,說多也不是太多。雖然這樣的縮減對於提升效率已具幫助,但若我們要的是一個更小幾個數量級的模型,僅靠剪枝仍不足以應對。最後還是需要從源頭著手,採取更治本的方法:一開始就打造一個很小的模型,並讓它去學習大模型的知識。這項技術被稱為「知識蒸餾」,是目前 AI 模型壓縮領域中最具潛力的方法之一。

知識蒸餾(Knowledge Distillation)—讓小模型學習大師的「精髓」

想像一下,一位經驗豐富、見多識廣的老師傅,就是那個龐大而強悍的 AI 模型。現在,他要培養一位年輕學徒—小型 AI 模型。與其只是告訴小型模型正確答案,老師傅 (大模型) 會更直接傳授他做判斷時的「思考過程」跟「眉角」,例如「為什麼我會這樣想?」、「其他選項的可能性有多少?」。這樣一來,小小的學徒模型,用它有限的「腦容量」,也能學到老師傅的「智慧精髓」,表現就能大幅提升!這是一種很高級的訓練技巧,跟遷移學習有關。

舉個例子,當大型語言模型在收到「晚餐:鳳梨」這組輸入時,它下一個會接的詞語跟機率分別為「炒飯:50%,蝦球:30%,披薩:15%,汁:5%」。在知識蒸餾的過程中,它可以把這套機率表一起教給小語言模型,讓小語言模型不必透過自己訓練,也能輕鬆得到這個推理過程。如今,許多高效的小型語言模型正是透過這項技術訓練而成,讓我們得以在資源有限的邊緣設備上,也能部署愈來愈強大的小模型 AI。

但是!即使模型經過了這些科學方法的優化,變得比較「苗條」了,要真正在邊緣環境中處理如潮水般湧現的資料,並且高速、即時、穩定地運作,仍然需要一個夠強的「引擎」來驅動它們。也就是說,要把這些經過科學千錘百鍊、但依然需要大量計算的 AI 模型,真正放到邊緣的現場去發揮作用,就需要一個強大的「硬體平台」來承載。

-----廣告,請繼續往下閱讀-----

邊緣 AI 的強心臟:SKY-602E3 的三大關鍵

像研華的 SKY-602E3 塔式 GPU 伺服器,就是扮演「邊緣 AI 引擎」的關鍵角色!那麼,它到底厲害在哪?

一、核心算力
它最多可安裝 4 張雙寬度 GPU 顯示卡。為什麼 GPU 這麼重要?因為 GPU 的設計,天生就擅長做「平行計算」,這正好就是 AI 模型裡面那種海量數學運算最需要的!

你想想看,那麼多數據要同時處理,就像要請一大堆人同時算數學一樣,GPU 就是那個最有效率的工具人!而且,有多張 GPU,代表可以同時跑更多不同的 AI 任務,或者處理更大流量的數據。這是確保那些科學研究成果,在邊緣能真正「跑起來」、「跑得快」、而且「能同時做更多事」的物理基礎!

二、工程適應性——塔式設計。
邊緣環境通常不是那種恆溫恆濕的標準機房,有時是在工廠角落、辦公室一隅、或某個研究實驗室。這種塔式的機箱設計,體積相對緊湊,散熱空間也比較好(這對高功耗的 GPU 很重要!),部署起來比傳統機架式伺服器更有彈性。這就是把高性能計算,進行「工程化」,讓它能適應台灣多樣化的邊緣應用場景。

三、可靠性
SKY-602E3 用的是伺服器等級的主機板、ECC 糾錯記憶體、還有備援電源供應器等等。這些聽起來很硬的規格,背後代表的是嚴謹的工程可靠性設計。畢竟在邊緣現場,系統穩定壓倒一切!你總不希望 AI 分析跑到一半就掛掉吧?這些設計確保了部署在現場的 AI 系統,能夠長時間、穩定地運作,把實驗室裡的科學成果,可靠地轉化成實際的應用價值。

-----廣告,請繼續往下閱讀-----
研華的 SKY-602E3 塔式 GPU 伺服器,體積僅如後背包大小,卻能輕鬆支援語言模型的運作,實現高效又安全的 AI 解決方案。/ 圖片提供:研華科技

台灣製造 × 在地智慧:打造專屬的邊緣 AI 解決方案

研華科技攜手八維智能,能幫助企業或機構提供客製化的AI解決方案。他們的技術能力涵蓋了自然語言處理、電腦視覺、預測性大數據分析、全端軟體開發與部署,及AI軟硬體整合。

無論是大小型語言模型的微調、工業瑕疵檢測的模型訓練、大數據分析,還是其他 AI 相關的服務,都能交給研華與八維智能來協助完成。他們甚至提供 GPU 與伺服器的租借服務,讓企業在啟動 AI 專案前,大幅降低前期投入門檻,靈活又實用。

台灣有著獨特的產業結構,從精密製造、城市交通管理,到因應高齡化社會的智慧醫療與公共安全,都是邊緣 AI 的理想應用場域。更重要的是,這些情境中許多關鍵資訊都具有高度的「時效性」。像是產線上的一處異常、道路上的突發狀況、醫療設備的即刻警示,這些都需要分秒必爭的即時回應。

如果我們還需要將數據送上雲端分析、再等待回傳結果,往往已經錯失最佳反應時機。這也是為什麼邊緣 AI,不只是一項技術創新,更是一條把尖端 AI 科學落地、真正發揮產業生產力與社會價值的關鍵路徑。讓數據在生成的那一刻、在事件發生的現場,就能被有效的「理解」與「利用」,是將數據垃圾變成數據黃金的賢者之石!

👉 更多研華Edge AI解決方案
👉 立即申請Server租借

-----廣告,請繼續往下閱讀-----
-----廣告,請繼續往下閱讀-----
文章難易度

討論功能關閉中。

0

0
0

文字

分享

0
0
0
通信三本柱:通信模型大解密
數感實驗室_96
・2024/06/30 ・654字 ・閱讀時間約 1 分鐘

想像一下,你和朋友在咖啡廳聊天。這看似簡單的互動,其實包含一個基本的通信模型喔。你是傳輸端(transmitter),朋友是接收端(receiver),而環境中的其他聲音則構成了通道(channel)。這三者共同組成了基本的通信模型。在接下來的文章中,我們將深入探討這個模型的每一個部分,並了解它們如何影響我們日常的通信體驗。

以上就是數位通信系統的三大支柱:傳輸端、通道和接收端的簡單介紹。實際上,它們的功能遠不止於此,整個通信系統的複雜程度超乎想像。除了數位物理層的演算法和電路設計外,還涉及類比電路、網路層等不同面向,真的是一門博大精深的領域。

通信技術致力於解決全球數十億人每天遇到的實際問題。如果你對於挑戰高難度的數學、物理、演算法問題感興趣,這將是一個充滿寶藏的領域。成功解決這些挑戰,不僅具備巨大的商業價值,更能推動通信科技的進步,提升全人類的通信體驗。你是否已經躍躍欲試了呢?

更多、更完整的內容,歡迎上數感實驗室 Numeracy Lab 的 YouTube 頻道觀看完整影片,並開啟訂閱獲得更多有趣的資訊!

參考資料

-----廣告,請繼續往下閱讀-----

討論功能關閉中。

數感實驗室_96
76 篇文章 ・ 50 位粉絲
數感實驗室的宗旨是讓社會大眾「看見數學」。 數感實驗室於 2016 年 4 月成立 Facebook 粉絲頁,迄今超過 44,000 位粉絲追蹤。每天發布一則數學文章,內容包括介紹數學新知、生活中的數學應用、或是數學和文學、藝術等跨領域結合的議題。 詳見網站:http://numeracy.club/ 粉絲專頁:https://www.facebook.com/pg/numeracylab/

0

1
1

文字

分享

0
1
1
替晶片打造數學工具的喬治.布爾(George Boole)
數感實驗室_96
・2024/06/01 ・561字 ・閱讀時間約 1 分鐘

本文由 國立臺灣師範大學 委託,泛科學企劃執行。 

煮湯時看到調理包背面寫著「加水且加入鹽巴或味精,就大功告成了」。

這句話該怎麼解讀呢?邏輯思維好的人可能很快就能反應過來,意思是加水是必須的,鹽巴和味精至少要加一個。當然,兩者都加也行,但似乎不太健康。

你可能會說:「煮湯時誰會想那麼多?這太哲學了!」其實,19 世紀有位數學家將邏輯建立在數學而非哲學之上,他的貢獻深深影響了現代電腦的運算。他就是我們今天的主角——喬治.布爾(George Boole)。

-----廣告,請繼續往下閱讀-----

在工作會議中,清晰的邏輯思維能幫助我們有條理地表達觀點,並迅速理解他人的意見;程式設計中,邏輯是核心,透過布林代數和邏輯運算,電腦能根據條件執行不同的任務,在智慧家電中利用邏輯閘判斷多個輸入條件來控制輸出結果。

因此,布爾提出的這一套邏輯思維與布林代數,不僅在學術領域至關重要,更是日常生活中不可或缺的工具。

更多、更完整的內容,歡迎上數感實驗室 Numeracy Lab 的 youtube 頻道觀看完整影片,並開啟訂閱獲得更多有趣的資訊!

-----廣告,請繼續往下閱讀-----

討論功能關閉中。

數感實驗室_96
76 篇文章 ・ 50 位粉絲
數感實驗室的宗旨是讓社會大眾「看見數學」。 數感實驗室於 2016 年 4 月成立 Facebook 粉絲頁,迄今超過 44,000 位粉絲追蹤。每天發布一則數學文章,內容包括介紹數學新知、生活中的數學應用、或是數學和文學、藝術等跨領域結合的議題。 詳見網站:http://numeracy.club/ 粉絲專頁:https://www.facebook.com/pg/numeracylab/
OSZAR »