NVIDIA Jetson AI Lab範例:text-generation-webui

前言

CAVEDU 已介紹了很多 Jetson 系列平台上的視覺辨識範例,本文將介紹 NVIDIA Jetson AI Lab 的文字生成範例,並執行於 Jetson AGX Orin (32 GB) 較高規格的邊緣運算電腦。

攝影/撰寫 郭俊廷 材料表

 

時間 1小時 (看網路速度決定 docker 要下載多久)
難度 2(滿分5)

本文

NVIDIA Jetson AI Lab

首先介紹一下 NVIDIA Jetson AI Lab,本網站整理了邊緣運算裝置上可執行的各種生成式 AI 範例,幫助您更快聚焦在所需的應用情境上。

針對自家 Jetson Orin 系列都可以使用,但部分範例會因為記憶體關係可能效能不家或無法執行。至於上一代的 Jetson Nano 系列…  由於只有 4G 記憶體,所以無法執行生成式 AI 範例喔!

原廠測試可用的裝置清單:

  • Jetson AGX Orin 64GB Developer Kit 64GB
  • Jetson AGX Orin Developer Kit 32GB
  • Jetson Orin Nano Developer Kit 8GB

相關Orin系列設備,如要購買請點我或來電洽詢 (0223062900)

Jetson Orin NX 經測試後也可以執行,但有可能會有套件安裝版本等問題。總之,不管是不是找我們買的,都可以詢問相關問題喔!

下圖是 NVIDIA Jetson AI Lab到目前(2024六月)可用的相關範例,有八大項,非常豐富!

系統安裝建置

NVIDIA Jetson AI Lab 皆使用 Docker 來執行,所以個範例的執行方式相當簡易。jetson-containers 的github 都有詳細說明。

安裝指令如下:

git clone https://github.com/dusty-nv/jetson-containers

bash jetson-containers/install.sh

如果要建置容器,則需要將 Docker 設定 default-runtimenvidia,以便 NVCC 編譯器和 GPU 在docker build操作期間可用。在嘗試建置容器之前,請在 /etc/docker/daemon.json 設定檔中新增 "default-runtime": "nvidia"

sudo nano /etc/docker/daemon.json

如以下內容

{

   "runtimes": {

      "nvidia": {

         "path": "nvidia-container-runtime",

         "runtimeArgs": []

      }

   },

      "default-runtime": "nvidia"

}

原本的內容與修改後的內容如下兩圖:

然後重新啟動 Docker 服務,或重新啟動系統,才能繼續使用:

sudo systemctl restart docker

可以透過查看以下內容來確認更改docker info,應可看到 Default Runtime: nvidia 訊息,如下圖:

sudo docker info | grep 'Default Runtime'

將使用者新增至 Docker 群組

由於 Ubuntu 用戶預設帳戶不在該docker群組中,因此他們需要執行 docker 命令sudo(建置工具會在需要時自動執行此操作)。因此,在建置過程中可能會定期要求您輸入 sudo 密碼。

相反,您可以將您的使用者新增至 docker 群組,如下所示:

sudo usermod -aG docker $USER

然後關閉/重新啟動您的終端機(登出或重開機),您應該能夠執行 docker 命令(如 docker info)就不需使用sudo。

Text generation web UI

本範例將在 Jetson AGX ORIN 上執行 Text generation web UI 範例,Text generation web UI 是一個適用於大型語言模型的 Gradio Web UI。例如最熱門的 chatGPT 等交談式 AI (或對話機器人) 也是提供網頁介面來與 LLM 互動。

以下為Text generation web UI 範例使用的 Jetson 裝置

  • Jetson AGX Orin (64GB)
  • Jetson AGX Orin (32GB)
  • Jetson Orin NX (16GB)
  • Jetson Orin Nano (8GB) ⚠️ (僅限於使用 7B 模型(4 位元量化))

必須運行以下版本的JetPack:JetPack 5 (L4T r35.x) JetPack 6 (L4T r36.x)

足夠的儲存空間(最好是使用NVMe SSD)。

  • 6.2GB:docker image
  • 模型:端看您所選用的模型,下載愈多當然愈占空間

本範例使用 NVIDIA JETSON AGX ORIN開發人員套件(32GB 記憶體)來操作,並且使用JetPack 5.1.2來安裝,但經測試 JetPack 6 正式版也可使用。

使用以下指令來開始執行Text generation web UI,第一次使用會先下載相關docker檔案。

jetson-containers run $(autotag text-generation-webui)

第一次使用會先下載相關docker檔案,請耐心等候

下載完畢再等一下就會執行起來,如看到以下訊息就可由本網址進入介面來操作:

http://0.0.0.0:7860。如果使用本機桌面端可以直接點選該網址

如果是使用遠端連線則需使用 http://<AGX ORIN IP>:7860

如果是第一次使用就直接問問題,會出現找不到模型無法使用 (No model is loaded! ) 等錯誤訊息。

如何下載模型

您可使用已啟動的 GUI 介面下載模型,在上方選單選擇Model (如下圖紅框所示位置)

上方欄位中找到這個模型名稱:TheBloke/Llama-2-7b-Chat-GGUF

下方檔案欄位複製以下檔案名稱:llama-2-7b-chat.Q4_K_M.gguf

這樣就能根據您的硬體及對話需求來更改下載的模型

 

模型名稱後的數字代表參數量,數字愈大效能愈好,但容量也會愈大!

下載成功會出現如下圖文字:Model successfully saved to ...

 

接著需要重新載入模型,點選左上方的重新整理(如下圖紅框處)

接著按下 Load 就能載入模型。

這款 llama-2-7b-chat.Q4_K_M.gguf模型可以讀取中文輸入,但只能回答英文。

 

成功了!之後各位可以嘗試著問問看各種問題,看看模型可以回答到甚麼程度的,之後會繼續介紹更多 NVIDIA Jetson AI Lab 相關範例與詳細操作說明。

最後,如果您使用 Jetson Orin Nano 或16G以下記憶體的裝置,請先按照以下連結來進行記憶體最佳化,因為執行NVIDIA Jetson AI Lab相關範例的時候需要用到大量記憶體。

https://www.jetson-ai-lab.com/tips_ram-optimization.html

參考資料

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *