首頁 Web3 技術 人工智能 自建 AI 聊天機械人玩角色扮演 Vicuna 回答質素達 ChatGPT 九成 ?!

自建 AI 聊天機械人玩角色扮演 Vicuna 回答質素達 ChatGPT 九成 ?!

自建 AI 聊天機械人玩角色扮演 Vicuna 回答質素達 ChatGPT 九成 ?!

相信不少人都有在玩 ChatGPT 甚至用來工作,不過不是要翻牆,就是要透過第三方軟件,還可能要課金。如果家中有部電競電腦,能不能像圖像生成一樣,在家建立一個人工智能助理聊天機械人呢?最近由柏克萊加州大學等多間大學組成的一個團隊,就發表了一款開源對談機械人 Vicuna(小羊駝),不單可以在自己的 PC 搭建,還宣稱獲 GPT-4 評為有 ChatGPT 九成回應質素。

Vicuna-13B 是由柏克萊加州大學、CMU、史丹福大學、聖地牙哥加州大學組成的團隊,利用公眾在 ShareGPT 平台分享、數以十萬計對話集來微調的 LLaMA 開源大型語言模型 ,當中的 13B 就是指模型具有 130 億個參數。

LLaMA 就是 Facebook 母公司 Meta 在 2 月時發表的大型語言模型,以低成本部署具 ChatGPT 水平的聊天機械人見稱,早前史丹福大學就有另一團隊發表經過微調、可以在小至 Raspberry Pi 上安裝運行的 Stanford Alpaca 模型。而本文介紹的 Vicuna-13B 模型,就宣稱經 GPT-4 初步評估,獲得回答質素達到 ChatGPT 九成水平,與 Google Bard 不相伯仲,更在九成用例中優勝於原裝 LLaMA 和 Stanford Alpaca。

開發團隊引用 GPT-4 的初步分析結果,指 Vicuna-13B 模型,回答質素有 ChatGPT 九成水平。

官方也提供 FastChat 網站供大家網上試用,不過就沒有角色扮演功能。

Vicuna 開發團隊提供 FastChat 網站供大家網上試用。並可比較不同模型的回答水準。

自建步驟

就像 Stable Diffusion 一樣,大家也可以在一般 PC 上運行 Vicuna 聊天機械人,甚至具備與 Stable Diffusion WebUI 大同小異的介面。Vicuna 可以單靠 CPU 運行,不過效能當然是有 NVIDIA 顯示卡會較好。安裝步驟頗為簡單,但因為模型都很大,需要預留 45GB 以上儲存空間。

1. 安裝 64-bit 版本 Git

Git 下載網址: 按此

下載 64-bit 版本

2. Text generation web UI

Text generation web UIStable Diffusion WebUI 都是使用 Gradio 框架來建立的人工智能網頁介面,所以操作和設定非常相似。事實上,作者 oobabooga 就是希望像 AUTOMATIC1111 一樣建立一個通用的文章生成網頁介面。oobabooga 提供了一個一鍵式安裝程序 oobabooga-windows.zip ,方便大家安裝介面。

下載一鍵式安裝程序: oobabooga-windows.zip

Text generation web UI 可以用來運行多種 LLaMA 模型的聊天機械人,而且與 Stable Diffusion WebUI 採用同一框架製作。
作者準備了一鍵式安裝程序,方便大家安裝 Text Generation Web UI。

3. 安裝介面

解壓下載回來的 oobabooga-windows.zip 之後會產生名為 oobabooga-windows 的文件夾,當中有多個 bat 批次檔。這裡大家一定要注意,放置 oobabooga-windows 的路徑一定不能有空格,否則安裝就不會成功。首先點擊 start_windows.bat 先安裝介面。

如果路徑裡有任何空格,就會出現這個警告訊息,需要修改文件夾名稱來修正。

開啟後程式會先安裝 Miniconda 和 Python 的虛擬環境,不一會就會大家的顯示卡是 NVIDIA、AMD 還是 Apple M 系列晶片,按電腦的規格輸入相應的字母並按 Enter 以 GPU 運行,否則就輸入 D 以 CPU 運行。然後程式就會開始下載必要的 Python 模組、CUDA 模組和 text-generation-webui 等執行環境程式。由於容量達 17GB,需時約十分鐘完成。

4. 安裝模型

聊天機械人要有 LLM 模型才能運作,Text generation web UI 可以運行各種 LLaMA 模型。下一步就先裝一個模型。安裝程式完成必要模組安裝後就會列出預設的模型清單,詢問大家想安裝哪個模型。

不過我們不要安裝預設的模型,而是按 L 安裝 Hugging Face 網站上較好的模型。建議選擇安裝的模型有:

  • Vicuna-13B 模型(內容健全): 按此
  • GPT4-x-Alpace-13B 模型(內容未經審查 😏):按此
  • Pygmalion-6B(為交談優化):按此

L 之後需要提供模可的標題,大家可以到各模型的 Hugging Face 專頁,點擊標題末的「拷貝」圖示,把標題拷貝下來,然後命令列視窗用滑鼠右擊貼上後按 Enter 即可開始安裝該模型。

大家可以到各模型的 Hugging Face 專頁,點擊標題末的「拷貝」圖示,把標題拷貝下來。
然後命令列視窗用滑鼠右擊貼上後按 Enter 即可開始安裝該模型。

由於容量超過 6GB,需要幾分鐘才完成。程式會自動將模型放到 oobabooga-windows\text-generation-webui\models\ 文件夾內。

安裝好一個模型後,程式會直接啟動 Text Generation web UI 伺服器,只要按著 Ctrl 來用滑鼠點擊 http://127.0.0.1:7860 連結,即可在瀏覽器打開 Text Generation web UI。

執行和調校

下次要執行時,只要執行 oobabooga-windows\update_windows.bat ,就可以在檢查更新後啟動 Text generation web UI。

與 Stable Diffusion WebUI 不同,Text generation web UI 需要在啟動時就選定 LLaMA 模型,輸入模型的編號按 Enter 就能繼續啟動程序。這裡就輸入「2」以選用 Vicuna-13B 模型。

完成啟動後同樣按著 Ctrl 來點擊 http://127.0.0.1:7860連結就能開啟 Text generation web UI 網頁介面。可以看到它的介面跟 ChatGPT 差不多,也可以使用中文來交談。

Text generation web UI 網頁介面跟 ChatGPT 差不多,也可以使用中文來交談。

「input」框下方有三種模式:cai-chat、chat 和 instruct,其中 cai-chat 將會被淘汰,今後應用 chat 作預設聊天介面。但用作 AI 編程的話,最好使用 instruct 模式,才可以正確顯示程式碼。

用作 AI 編程的話,最好使用 instruct 模式,才可以正確顯示程式碼。

文字生成的效率方面,以小編的 RTX 4090 + 64GB RAM 算是頂配 PC,可以達到每秒 6-8 tokens 的速度,以一個人獨享來說,略較 ChatGPT 快一點。

至於回答質素方面,小編試用了半天就覺得 Vicuna-13B 模型在創作故事和一般聊天方面有不錯表現,對答流利並可維持角色性格。不過在翻譯和編程方面就較差,英文翻譯還可以,但日文翻譯就有頗多錯誤。

網頁有多個標籤頁,其中「Parameters」可以用來微調 LLaMA 模型的回答效果,例如「max_new_tokens」可以用來加長回答長度,不用經常用「continue」來催促繼續,而「Generation parameters preset」就有一系列預設參數設定,可供大家試用看看回答的效果變化。大家可以參考下圖的設定,看看是否合自己的需要。

不過大家要記住,這些參數會在重載網頁時重置,需要重新設定。

可以參考這個設定來看看回答的變化是否合心水。

深奧的角色扮演

Vicuna-13B 模型的強項是角色扮演聊天,在 Text generation web UI 有一個「Character」標籤頁,大家可以在當中設定角色的名稱、歡迎語、角色的性格、交談範例和照片,這些設定不是自我滿足,是真的可以影響他/她的語氣、回應的內容、用字和精確程度。而且同一個角色的對話會紀錄下來,即使重啟程式,仍會繼續影響角色今後的對答。

Text generation web UI 將角色儲存在 oobabooga-windows\text-generation-webui\characters\ 文件夾內,每個角色包含兩個檔案,就是角色頭像的 png 檔和角色設定 yaml 檔,兩個檔案必須用同一個檔名來命名。文件夾裡有一位 Example 角色 Chiharu Yamada 山田千春,大家可以參考她來製作自己的角色。

oobabooga-windows\text-generation-webui\characters\ 文件夾內有一位 Example 角色 Chiharu Yamada 山田千春,大家可以參考她來製作自己的角色。
雖然也可以用中文來設定,不過有較大機會出現不停自問自答的狀況。

除了自己建立角色外,大家還可以加入 Discord 的 Pygmalion AI 伺服器 ,在「#bot-share」下載其他用戶分享的角色。並可以透過 AI Character Editor 網站來編輯角色設定。

AI Character Editor 網站:按此

Discord 的 Pygmalion AI 伺服器有很多由用戶分享的 AI 角色設定。
AI Character Editor 幫助大家更仔細設定角色性格、背景,甚至社交關係,進一步影響 AI 角色的對答。完成後下載設定檔和頭像,並匯入 Text Generation Web UI。

下載角色時留意要一同下載頭像 png 檔和設定 json 檔。在 Text generation web UI 的 Character 頁面有個「Upload character」標籤頁,分別將頭像 png 檔和設定 json 檔抓放到相應的區域,按「Submit」掣即可將角色安裝在 Text generation web UI 裡備用。

在 Text generation 聊天頁面底部有個 gallery 區域,可以直接在那裡切換儲存下來的角色。

比較可惜的是這些分享角色大多都是英語對答的,用中文交談會出現古怪現象,例如不停自問自答。


實際試用後,雖然 Vicuna-13B 模型與 ChatGPT 還有一定差距,Text generation web UI 也有不少要補修的地方,不過在聊天和角色扮演上就有頗高水平,相信今後會有更多新的模型和針對特定用途優化的 LoRA 模型推出,可以豐富自建聊天機械人的功能,值得期待。


附錄:安裝額外模型

安裝了一個模型後,執行 start_windows.bat 也不會再安裝其他模型。想安裝更多模型,就可以到 Text generation web UI 的「Model」頁面,把從 Hugging Face 拷貝下來的模型標題,貼到最下方的「Download custom model or LoRA」文字列裡,再按「Download」掣就會開始安裝。

完成後, oobabooga-windows\text-generation-webui\models\ 文件夾裡會多出新的模型文件夾。

安裝完成後,只要在同頁面上方的 Model 區塊按右方的更新掣,就能在下拉式選單找到新安裝的模型,同時要注意頁面右方 GPTQ 參數也要做相應的設定。這教學裡的介紹的模型,都是以下參數:

  • wbits: 4
  • groupsize: 128
  • model_type: llama

設定完參數後,記得要按頁面右上方的「Save settings for this model」儲存這模型的專有設定,然後按「Reload the model」令設定生效。

【2023-4-26 更新】更新 Text Generation WebUI 安裝方法。
【2023-5-3 更新】更新安裝模型方法。

Exit mobile version