iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
Software Development

數位 IC 設計起手式系列 第 29

Day 29: AI 加速晶片概論

  • 分享至 

  • xImage
  •  

AI 人工智慧是一個很龐大的領域,在這篇中,我們的重點會放在「類神經網路」。

類神經網路

  1. 模型建立
    類神經網路 (Neural Networks) 是達到人工智慧的眾多方法之一,透過多層的神經元以及資料的特殊處理 (如:降維處理、歸一化處理),我們可以得到一個類神經網路的模型。

  2. 訓練模型
    有了模型,我們要接著訓練 (training) 類神經網路。訓練其實就是將模型內部的參數都找齊,包含眾多的權重 weights、偏移量 biases,由於訓練要耗費許多計算資源,因此這個步驟通常會使用雲端計算,透過租借高算力的機器來完成訓練。

    訓練的方式與細節,在這裡提供幾個關鍵字給大家自行搜尋:
    loss function, gradient descent, backpropagation

  3. 推理
    推理 (inference) 就是將接收到的輸入,放進模型運算,但是由於類神經網路的參數非常多,因此計算出真正的結果不是那麼容易的。通常我們會修剪網路,降低計算量,並做成可放置在邊緣裝置的晶片,用來加速運算。

上述的步驟可以用數學來比喻,模型就像是一個函數 f(x) = ax^2 + bx + c 根據我們的需求而來的。訓練就是找齊所有參數 a, b, c 。最後的使用函數在類神經網路的專有名詞是「推理」。

AI 晶片

現今對於類神經網路的主流處理是「雲端訓練,邊緣推理」。而我們要探討的 AI 晶片就是屬於邊緣裝置的靈魂!

我們可以透過兩個面向來降低 AI 晶片計算的複雜度:

  1. 減少精度
    精度在許多時候都是很重要的,但是對於類神經網路來說,他不見得是必要的。精度過高除了會增加計算量,也要增加硬體的儲存空間,對於晶片計算來說,是很沈重的負擔。
    另一種,減少精度的原因是將計算所需的參數微調成 2 的冪,例如,有一個參數是 1022 ,也許我們可以將它改為 1024 ,即 2 的 10 次方。因為我們可以透過位元運算很快速的達到運算結果,更近一步地說,位元運算其實是可以透過更改線路順序來達到,並非真的在做乘法!因此速度加快許多。

  2. 減少計算量
    訓練出來的參數會被用在神經網路的推理,但是仔細觀察可以發現,部分參數未必可以有效的影響結果,因此這部分的參數就可以被移除,這件事情叫做「網路修剪」。另一種使在模型建立時就要決定的「激活函數的選擇」,以 ReLU 這個函數來說,他會將負數都改為 0 ,這個行為的好處是可以減少許多計算量,以矩陣的觀點來看,權重矩陣可以視為一個稀疏矩陣。


上一篇
Day 28: FPGA & ASIC
下一篇
Day 30: Ending
系列文
數位 IC 設計起手式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言