Linux版Text Generation WebUI ~ 大型語言模型網頁前端安裝教學

這篇文章Ivon將解說Text Generation WebUI的安裝及使用方法。

oobabooga開發的「Text Generation WebUI」是支援多種大型語言模型(LLM)的開源軟體,可以在本機與AI對話,等同離線版的小型ChatGPT。

Text Generation WebUI目前支援的大型語言模型有GPT-J-6B、LLaMA、Alpaca、Pygmalion、GTP4All等。還提供自訂角色、對話翻譯的擴充功能。

開發者想仿效AUTOMATIC1111,製作大型語言模型版本的Stable Diffusion WebUI。這款軟體也確實能讓大型語言模型指揮Stable Diffusion繪圖。

0. 硬體需求

本文使用Ubuntu 22.04 LTS作為測試系統。

  • GPU VRAM至少6GB
  • RAM至少16GB
  • 30GB以上硬碟空間

除本機安裝外,開發者也有維護Google Colab筆記本供線上試玩。

1. 安裝前置依賴套件

  1. Nvidia顯示卡安裝Nvidia專有驅動以及CUDA;AMD安裝ROCm

  2. 安裝Anaconda,建立Python 3.10.9虛擬環境

1
2
conda create -n textgen python=3.10.9
conda activate textgen
  1. 安裝PyTorch
1
2
3
4
# Nvidia
pip3 install torch torchvision torchaudio
# AMD
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2
  1. 安裝Text Generation WebUI與依賴套件
1
2
3
git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
pip install -r requirements.txt

2. 下載大型語言模型

Text Generation WebUI支援多種語言模型

英語模型有GPT-J-6BPygmalion 6B、GPT-4chan。

2023年以後發布,性能更強的模型有LLaMAStanford AlpacaGPT4 x AlpacaOpenAssistant

中文模型有Chinese-LLaMA-AlpacaChatGLM 6B

我使用Pygmalion 6B作示範,這是小型的語言模型,基於開源GPT-J-6B訓練而來,檔案約16GB。

進入Text Generation WeBUI的根目錄資料夾,開啟終端機,使用指令下載Pygmalio的模型和設定檔:

1
python download-model.py PygmalionAI/pygmalion-6b

下載的模型會放到根目錄資料夾下的models目錄。

3. 啟動Text Generation WebUI

完整引數請參考開發者的Github

啟動引數可以設定全用CPU跑(--cpu),或是自動分配任務給CPU和GPU(--auto-devices)。語言模型即使全用CPU跑,產生對話的速度還是可以接受的,只是講話會像中風一樣的緩慢。

  1. 於Text Generation WeBUI的資料夾開啟終端機。

  2. 用以下指令啟動WebUI。用--auto-devices引數自動分配計算任務給CPU和GPU,gpu-memory設定最多分配2GB VRAM(防止OOM,數值視顯卡VRAM而定),--model指定要載入的模型。--chat以聊天模式啟動。

1
python server.py --auto-devices --gpu-memory 2 --model PygmalionAI_pygmalion-6b --chat
  1. 啟動後,用瀏覽器開啟WebUI的網址:http://127.0.0.1:7860,保持終端機開啟。

要關閉此程式,於終端機按Ctrl+C終止。


另外,“DeepSpeed"這個技術可以加速大型語言模型的效能,只支援Linux。

1
2
conda activate textgen
pip install deepspeed

接著將啟動引數修改如下:

1
deepspeed --num_gpus=1 server.py --auto-devices --gpu-memory 2 --deepspeed --model PygmalionAI_pygmalion-6b --chat

4. WebUI使用方式

如何下指令依使用的語言模型而定。

以Pygmalion這個模型來說,可以先從簡單的事實回答開始問起

並嘗試讓AI翻譯文本,或者要求寫個小故事。

跟ChatGPT的用法類似,要求AI執行特定任務前,要先下確切的提示詞(prompt)告訴AI要扮演什麼角色,這樣它會更明白要做什麼。

5. 擴充功能

參見Text Generation WebUI擴充功能用法

參考資料


感謝您的閱讀。歡迎分享Ivon的部落格(ivonblog.com)的文章,引用或轉載請註明文章網址,並遵守創用CC-姓名標示-非商業性-禁止改作 4.0 國際授權條款。如需商業使用請來信告之。

written by human, not by AI

如果本網站文章對您有幫助,歡迎請我喝杯珍珠奶茶。

留言板

點選按鈕,選擇您覺得方便的留言系統。

這是Giscus留言板,需要登入Github帳號才能留言。方便您張貼程式碼,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。