1、人工智慧訓練出來的模型是一個 類似 .h .exe 文件?或者什麼?

2、模型如何使用?

3、使用模型需要什麼軟體條件,重點需要什麼硬體條件(其實我想知道單片機上可以跑這個模型嗎?不能的話至少需要什麼硬體級別可以跑)?


預測房價

讓我們用一個簡單的例子來引入幾個概念。假設你要解決一個預測北京房價的問題,你發現房價和房屋面積,那麼你可以設計出一個這樣的公式:

[公式]

然後你從網路上收集了一些房屋成交數據,通過 Excel 回歸得到了 a 和 b 的擬合值。

之後再有一套新的房子出現在你面前,你只需要將房屋積和環數代入上面的公式,即可算出預測的房價。

在上面一整套手工房價預測的過程中,設計的公式就是模型結構,a 和 b 就是模型的權值,我們進行回歸,就相當於在訓練一個神經網路模型。代入一套新房子的數據,計算預估的房價,就是使用模型的方法。使用模型只需要能夠進行數學計算,就能使用,但是為了效率,我們會使用一些成熟的模型推斷框架用於加速推斷過程

1. 人工智慧訓練出來的模型是一個 類似 .h .exe 文件?或者什麼?

.h 文件是 c 語言的頭文件,.exe 文件是 Windows 上的可執行文件,它們都不是模型文件。

模型文件是一系列權值,通常是大量(上百萬)個浮點數(如 float32,如果進行了模型量化,也可以是整數。

以 PyTorch 存下來的模型為例:

模型就是 weight 和 bias。

2. 模型如何使用?

可以使用對應的框架直接進行預測,也可以自己手寫相應的計算過程,通常來說只有計算效率上的差別。如:

我們既可以使用 linear(input_tensor) 得到結果,也可以直接使用乘法和加法來計算結果,兩者是完全等價的。

3、使用模型需要什麼軟體條件,重點需要什麼硬體條件(其實我想知道單片機上可以跑這個模型嗎?不能的話至少需要什麼硬體級別可以跑)?

軟體條件可以複雜也可以簡單,你可以在具有完整操作系統的 Linux 伺服器上直接使用 Python 進行模型推斷,也可以手寫 C++或者 CUDA 來進行模型推斷。

硬體條件完全取決於需求,如果在該硬體條件下,推斷一次結果所需的時間滿足你的需要,那麼它就可以進行模型推斷。我們通常會使用英偉達的顯卡進行模型推斷,如 Tesla T4。

其實我想知道單片機上可以跑這個模型嗎?

按照圖中模型有 200 億個參數,如果按 float32 算,模型有 74GB,即使在顯卡上進行計算,目前也沒有這麼大顯存的顯卡,所以這個模型部署在單片機上應該是非常困難的。

我知道的顯存最大的卡是 NVIDIA QUADRO RTX 8000,它有48GB 顯存,算力是 16.3TFLOPS,相當於每秒可以進行 16.3 萬億次計算,價格大概是 6 萬。

但是圖中有很多模塊其實是可以獨立運行的,比如圖像識別、NLP、語音識別都是幾個獨立的任務,所以 200 億個神經參數可能只是簡單的加起來了,使用多塊顯卡,每塊顯卡跑單獨的任務是沒問題的。


關於模型的訓練、使用:推薦閱讀機器學習入門書籍、瀏覽相關問題……

關於硬體條件:單片機太勉強了。手機可以勉強運行壓縮過的神經網路模型。通常,模型部署於高性能伺服器(有專用加速硬體如GPU、TPU等)。


模型包含三個東西:

  1. Operator: 要對數據進行哪些操作
  2. Topology: 這些操作的先後關係是什麼
  3. Parameter: 有些Operator是有參數的,訓練出來的參數是什麼


pytorch:

.model

load(model)

predict=model(variable(x))

decode(predict)

print predict


1 訓練出來的模型是一個文件,文件中包含了模型的連接情況和參數

2 載入模型後輸入模型輸入的數據即可

3 具體的需要根據模型結構和大小來確定


推薦閱讀:
相关文章