邊緣AI硬體的艱困取捨

Find AI Tools
No difficulty
No complicated process
Find ai tools

邊緣AI硬體的艱困取捨

The Edge AI Revolution: Challenges and Solutions

In recent years, deep learning AI models have made significant advancements, pushing the boundaries of what is possible. Tools such as GitHub COPILOT, GPT-3, and Dall-E 2 have proven their ability to generate stunning results. However, there is a vital question that needs to be addressed: how can we effectively utilize these powerful models where they are most needed, such as in the field with customers?

In this article, we will explore the challenges associated with running AI on the edge and discuss various solutions that enable AI to thrive in edge environments. From understanding the concept of the edge to exploring trade-offs and optimizations, we will delve into the world of edge AI and its potential impact.

目錄

  1. 了解邊緣運算 (The Edge)
  2. 折衷取捨 (Trade-offs)
  3. 薄客戶端 (Thin Client)
  4. 從基礎優化模型 (Optimizations: From the Ground Up)
  5. 後處理優化 (Optimizations: Post-Processing)
  6. 設備選擇: 處理器 (Device Options: CPUs)
  7. 設備選擇: 圖形處理器 (Device Options: GPUs)
  8. 設備選擇: 現場可程式化閘陣列 (Device Options: FPGAs)
  9. 設備選擇: 專用集成電路 (Device Options: ASICs)
  10. 廠商介紹 (Vendors)
  11. 硬體感知模型與共同設計 (Hardware Aware Model & Co-Design)
  12. 結論 (Conclusion)

了解邊緣運算 (The Edge)

邊緣設備與資料中心設備不同,雖然可以連接到互聯網,但距離實際用戶更近。邊緣運算是一個廣泛的術語,涵蓋了機器人、無人機、遙感衛星、家庭娛樂設備(例如 Amazon Echo)和可穿戴設備(例如手錶)。智能手機可能也被歸為邊緣設備的一部分,但筆記本電腦則不包括在內。這些設備都有不同的限制,包括功耗管理、處理速度和記憶體。不同的邊緣設備對於 AI 模型的需求有所不同,例如自駕車上的邊緣 AI 晶片可能更加關注延遲(即 AI 模型能夠快速得出結果的速度),而商用小型空中無人機則只有 20-30 分鐘的飛行時間,因此只能將整體電力預算的不到 5% 用於計算和數據處理。

折衷取捨 (Trade-offs)

邊緣 AI 設備通常處理的工作是計算機視覺或音頻處理任務,例如自然語言處理、人臉識別、交通預測等。隨著時間的推移,這些模型變得越來越大。2012 年,AlexNet 是最先進的計算機視覺模型,它有 6100 萬個權重。相比之下,2021 年的 ImageNet 冠軍模型 CoCa 現在有 21 億個權重。神經網絡相對於非深度學習方法消耗更多的能量,例如,對象檢測神經網絡模型所需的能量比基於直方圖的梯度的方法高出多達 13,500 倍。此外,我們還有記憶體限制。為了在合理的時間內執行推理,我們需要將多個值存儲到設備內存中,包括模型的權重、輸入等。這是芯片能夠執行的最消耗能量的操作之一,比一次標準乘積累加操作所使用的能量高達 200 倍。因此,在邊緣 AI 上部署模型需要取捨。模型必須變小並且需要更少的計算,這意味著性能較差。性能下降的程度取決於各種因素,但肯定比資料中心環境下的模型要差。

薄客戶端 (Thin Client)

早期的科技公司嘗試通過將所有工作都轉移到雲端來解決這些嚴峻的問題,就像 Siri 或 Amazon Echo 一樣。設備只是變成了一個薄客戶端,將信息在用戶和服務器之間進行中轉。這種方法有其優點,但也帶來了新的問題,例如數據傳輸延遲、連接穩定性和隱私問題。在某種程度上,還有一種中間混合方法,即邊緣和服務器共同承擔計算工作量,邊緣 AI 硬件對原始數據進行首次處理,然後將結果上傳到雲端進行最終確認。這種方法也行之有效,但我覺得這種混合方法同時具有薄客戶端和本地處理的缺點,需要在邊緣和服務器環境中都維護模型。

從基礎優化模型 (Optimizations: From the Ground Up)

好消息是,在邊緣環境中運行現代 AI 模型的問題是可以著手解決的。神經網絡模型優化是一個熱門領域,它可以通過多種方法來實現。首先,可以從頭開始訓練一個緊湊的模型。舉例來說,SqueezeNet 或 MobileNet 就是這一類型的神經網絡模型,它們通常使用新的結構來取代傳統的神經網絡結構,以減少模型中的權重數量。權重越少,模型的整體大小和內存佔用越小。在一份論文中,Squeezenet 的作者聲稱,它以 50 倍較少的權重實現了 AlexNet 級別的準確性,並將模型壓縮到半兆字節。

後處理優化 (Optimizations: Post-Processing)

近期的一些研究表明,神經網絡模型的大小可能比實際需求還要大。這導致了第二種優化方法:後處理已經訓練好的模型。神經網絡本質上是矩陣乘法的練習,因此,如果能夠壓縮訓練好的模型中的矩陣,那麼它們將佔用更少的內存。這就是稱為權重量化的方法,通過改變在內存中存儲訓練好的模型的權重的方式來節省空間,比如將 32 位浮點數改為 8 位定點數。另一種方法是通過修剪來減少模型的複雜性,例如刪除冗餘的權重。一份論文聲稱,神經網絡的 95% 權重與少數關鍵權重高度相關,因此可以刪除這些權重,同時保留很大一部分準確性。不論您採取什麼方法,都不可能免費,準確性和記憶體/功耗之間存在著取捨。前面提到的將 32 位浮點數轉換為 8 位定點數的技巧,可能會導致超過 12% 的準確性損失。不幸的是,看起來多種優化方法在實際應用中的效果通常會讓人失望。很難預測一種優化方法對模型性能和資源使用的影響,對於一種方法可能符合規格,而另一種可能不符合。

設備選擇: 處理器 (Device Options: CPUs)

邊緣 AI 解決方案提供商需要找到適合其特定解決方案的合適硬體。有四種廣泛可用的硬體類型可作為邊緣 AI 設備:處理器(CPU)、圖形處理器(GPU)、現場可程式化閘陣列(FPGA)和專用集成電路(ASIC)。然而,并不存在完美的方案,它們各自都有自己的用途和缺點。首先是處理器(CPU),這個類別也包括微控制器(MCU)。CPU 是人們熟悉的,例如 Raspberry Pi,易於編程、多功能、低功耗,而且價格便宜。然而,處理器的最大缺點是並行性較差,即使是具有多個核心的現代處理器也是如此。而現代神經網絡模型需要進行大量的并行操作。儘管如此,如果模型的大小足夠小,能夠放入處理器的記憶體中,即使是只有 100 KB RAM 的微控制器也能運行它。值得一提的是一些有趣的項目,例如 TensorFlow Lite for Microcontrollers,它可以實現一些有趣的功能,比如為騎行者提供語音控制器。

設備選擇: 圖形處理器 (Device Options: GPUs)

第二個選擇是圖形處理器(GPU)。最初為了遊戲而設計的圖形處理器,在人工智能的訓練方面表現出色,由於廣泛使用的 CUDA 等編程平台的存在,它們具有強大的並行能力和易於編程的特點。然而,由於其并行性,圖形處理器通常非常耗能,這使得它們在邊緣 AI 推理工作中的適用性較差。對於邊緣 AI,例如 Nvidia Jetson 系列是一個例子。Jetson Nano 是一款小巧、相對便宜(99 美元)的嵌入式計算機,與 Raspberry Pi 有些相似。

設備選擇: 現場可程式化閘陣列 (Device Options: FPGAs)

通常情況下,處理器和圖形處理器不被視為邊緣 AI 解決方案的可接受硬體選擇。這就留下了另外兩個選項 - 現場可程式化閘陣列(FPGA)和專用集成電路(ASIC),這兩個選項更加有趣。現場可程式化閘陣列(FPGA)具有很大的潛力。這些集成電路由可編程邏輯塊和路由互連組成,與圖形處理器一樣,它們具有並行性。使用硬體描述語言(例如 VHDL 和 Verilog),可以使這些邏輯塊模擬某些邏輯操作,因此可以根據需要配置和重配置它們。它們的靈活性在某些人工智能領域非常有用,例如自動駕駛汽車行業,規則和算法可以相對快速地變化。現場可程式化閘陣列(FPGA)的另一個優勢與能源效率相關。正如我之前所說,在推理中,神經網絡模型在訪問芯片外部記憶體時消耗最多的能量。大多數現代 FPGA 都擁有一些稱為 Block RAM 的內置內存塊,以減少延遲和功耗。可以放入這些內存塊中的模型可以節省更多能量。但是,FPGA 的一大缺點是其可用內存、帶寬和計算資源較少。具體取決於設備,有些情況下,只有 10 MB 的片上內存。此外,使用 FPGA 需要相當的設計專業知識。CUDA 在像 C 和 C++ 這樣的流行編程語言上工作,而並不是所有人都熟悉 VHDL 和 Verilog。

設備選擇: 專用集成電路 (Device Options: ASICs)

最後一個選擇是專用集成電路(ASIC)。這些是針對具體任務而設計的定制處理器。例如,AI 芯片(AI Chips)或 AI 加速器(AI Accelerators)是 ASICs 的一類。設計並生產芯片需要投入大量的前期財務和人力資源,設計和生產半導體芯片需要耗資數百萬美元。此外,不能像 FPGA 那樣在繁殖後更改某些架構。大多數 ASIC 制造商都會通過為更通用的功能而構建來繞過這個問題。

廠商介紹 (Vendors)

不多的公司將考慮從頭開始設計自己的邊緣 AI 芯片。幸運的是,有大量有趣的邊緣 AI 加速器產品可從供應商那裡獲得。在科技巨頭方面,Intel 的 Movidius Myriad X VPU 是一個值得一提的選擇。它可以用於無人機、機器人、智能相機等設備。Movidius 是一家爱尔兰的新創公司,在 2016 年被 Intel 收購,專注於邊緣視覺處理。谷歌擁有自己的 Edge TPU,它被稱為專為邊緣推理而設計。該產品的各個版本(USB 隨身碟和開發板)都通過 Coral 這個計劃出售。此外,Nvidia 也有 Tegra,這是一系列系統單片機(SoCs)。它可能不應該被稱為邊緣 AI 加速器,但它應用於移動設備。大科技公司與一些中小型公司一起,提供了大量有趣的產品。這裡只列舉了一些引起我注意的公司,如果要一一介紹,將耗費過多時間。

硬體感知模型與共同設計 (Hardware Aware Model & Co-Design)

交付邊緣 AI 解決方案的一個重大挑戰是在硬體和模型之間取得平衡。它們密切相關,調整其中一個將影響另一個,這大大降低了迭代速度和進展速度。我們需要在這方面取得更快的進展,那麼為什麼不使用神經網絡來幫助解決呢?最近,一些有趣的研究對一種被稱為硬體感知神經架構搜尋的技術進行了探索。這種方法是將某些硬體變量包含在神經網絡模型本身中,以便能夠在具體的硬體(通常是 GPU 或 FPGA)上運行。對於 ASIC,這種搜索效果不太好,因為硬體本身可以通過定制實現。但 ASIC 打開了一個有趣的可能性,即同時共同設計硬體和算法,這有助於改善邊緣 AI 硬體空間的潛力。這有點像是設計技術與共同優化,即用對芯片的工藝節點和芯片設計進行共同考慮,以期取得共同的成功。對於邊緣 AI 硬體領域來說,這也具有很大的潛力。

結論

龐大的模型比以往任何時候都更強大,我們可以看到它們可能具有的能力。然而,邊緣 AI 硬體製造商面臨著具有挑戰性的經濟和可能的物理限制,以適應這些模型。在 20 世紀下半葉,計算機在工業和商業領域帶來了空前的好處。人工智能有可能實現相同的影響。但如果邊緣硬體永遠無法達到令人滿意的水平,我擔心人工智能的全部潛力都將被鎖定在虛幻的雲端中。我希望這個行業能繼續發展並不斷進步。

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.