更多

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

    Mickey Chan
    Mickey Chan
    愛模擬飛行、希望終有一日回到單車上的宅,眼鏡娘控。座右銘: 1.膽固醇跟美味是成正比的; 2.所有人都可以騙,但絕對不能騙自己; 3.賣掉的貨才是錢,不賣的收藏品不值一文; 4.踩單車,是為了吃更多美食! 5.正義的話語,不一定出自正義之人的口;

    相信不少人都有在玩 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。

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

    自建步驟

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

    1. 安裝 64-bit 版本 Git

    Git 下載網址: 按此

    2. Text generation web UI

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

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

    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 即可開始安裝該模型。

    由於容量超過 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 差不多,也可以使用中文來交談。

    「input」框下方有三種模式:cai-chat、chat 和 instruct,其中 cai-chat 將會被淘汰,今後應用 chat 作預設聊天介面。但用作 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 山田千春,大家可以參考她來製作自己的角色。

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

    AI Character Editor 網站:按此

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

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

    在 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 更新】更新安裝模型方法。

    您會感興趣的內容

    相關文章