[洽特] 有關如何自建本地AI聊天機器人

裏洽

19150

如果這篇文章不符合AC_In所規範的文章內容的話,再麻煩版主協助刪除,謝謝。

前面一篇有關AI聊天的文章底下,似乎有些版友對於在本機自己架設聊天機器人也滿有
興趣的,所以我就想藉這一篇文章來讓大家比較好入門。

畢竟現在市面上的雲端AI聊天真的都太貴了(或者該說不值那個錢),且內容有可能因為
該平台當地的法規遭到限縮或是過濾,況且你也很難保證該平台可以永續經營,例如之前
的yodayo就是因為戀童癖問題被第三方支付商拒絕服務,結果整個公司只好重新整合成非
18+的AI聊天平台。

但如果是本機運行的話就不用擔心這些,而且資料都是存在你自己的硬碟裡,比較有保障


以下正文:

現在免費、本地運行而且比較知名的LLM前端程式(即使用者介面)大概有四個:
SillyTavern、LM Studio、Ollama、BackyardAI

LM Studio和Ollama比較偏向生產力,本身不直接支援角色卡的格式,所以今天先跳過。

SillyTavern的介面目前還太粗糙,而且整體的架設比較複雜,所以我也不太推薦,於是目
前我認為最適合入門的就是BackyardAI。

在開始之前,請先確定你的顯示卡是NVIDIA的,且有8GB以上的VRAM。顯卡的VRAM大小會
直接影響你能夠跑多大的模型。如果太小的話就會讓模型溢出到你的記憶體裡面,生成
文字的速度會非常慢,但這並不意味著不能跑,只是真的非常非常慢(記憶多的時候可以
慢到約1-2個字/秒)。

當然如果你的顯卡VRAM遠超8GB那是最好,如果你不確定你的顯卡規格或是想升級的話可
以打開工作管理員的效能頁面,然後點選GPU來看你的專屬GPU記憶體有多少,或是去
Techpowerup直接搜尋你的GPU型號:https://www.techpowerup.com/gpu-specs/

確定好設備達到門檻後之後就可以開始了。

1. 請直接搜尋Backyard AI Desktop App然後下載。

https://imgur.com/qoB21gF


2. 下載完畢後打開BackyardAI的應用程式,打開Settings - Advanced/GPU,看一下你的G
PU有沒正常顯示出來,如果沒有的話請記得去載NVIDIA CUDA Toolkit。

接下來要微調一下幾個設定:

MLock - Enabled

GPU VRAM - Manual, 90%(留一點點顯卡性能給其他應用程式就好,平常瀏覽網頁的時候
也不太會用到GPU)

Max Context - 這部分就是俗稱的AI聊天機器人的記憶,其中包含了機器人的人格敘述
(Persona)、模型指令(Model Instruction)、情景(Scenario)、
範例對話(Example Dialogue)等等。這就是要看你自己的顯卡VRAM大小跟選用的模型能夠
讀取多少記憶了。可以去huggingface的LLM容量計算機算一下你的顯卡可以支援到多少。
https://huggingface.co/spaces/NyxKrage/LLM-Model-VRAM-Calculator

舉個例子,如果我今天用的是4060 Ti 16GB,而且想要用Hermes LLaMa 3.1 8B 這個模型
,另外我希望能夠有32000 Token的記憶,我就可以把我的裝置跟想用的模型直接打上去:

https://imgur.com/o1lUfTn


我選用的模型的大小佔了4.53GB、32K的記憶佔了6.04GB,這樣加起來共10.58GB,在我的
16GB的VRAM裡面可以輕鬆容納下,於是我就可以預期即使在我的對話內容很多的時候,文
字的生成速度還是可以很快。

https://imgur.com/MJvQOxY

這是我之前某一段聊天的紀錄,即使是在來回一百多則訊息之後,每秒產生文字的速度
(Token/Sec)還是可以來到35個字左右。

3. 調整完畢後,接下來就是下載模型了:點選Manage Models - Avaliable Models,
裡面會出現BackyardAI推薦使用的模型。在這邊我隨便選一個:
https://imgur.com/OEXyENJ

Llama 3代表他是從META的開源模型Llama 3微調過來的版本。Sthenos是這個模型的名字、
8B代表著他有八十億的參數、Q4_K_M是代表他的量化程度(因為不透過量化的話很難塞進
使用者的桌機裡,簡而言之就是用一點點的性能換取大幅縮小的體積,目前主流仍然是
採用Q4_K_M,同時兼顧體積和表現)。

4.點擊Download,開始下載你想要的模型。對英文不熟悉的板友可以下載以QWEN作為主
模型的版本。

5.下載完成後,就可以開始創造角色了。
https://imgur.com/FnzoIwB


Character Images - 角色圖片,記得目前只支持PNG所以要記得轉檔。

Display Name - 角色卡的名稱

Real Name - 角色的實際名字

Character's Persona - 角色的人格,這邊我還是推薦用英文寫,因為中文佔用
Token(AI看待文字的基本單位)的速度非常快(一個中文=2個Token,幾乎是英文的兩倍),
很容易沒寫甚麼就滿了。可以把你寫完角色人格丟進ChatGPT裡面讓他直接翻譯,記得有寫
到比較露骨的地方時要刪減一下,否則ChatGPT會說你的內容違反了他們的用戶協議。
英文比較OK的板友可以去Reddit看一下我前陣子寫的入門角色卡撰寫攻略:
https://tinyurl.com/yc35w68e

Is NSFW? - 當然是Yes。

Lorebook - 這部分是關於你有沒有一些關鍵字想讓你每次對AI提到的時候,他都能想起
相對應的東西。比方說你可以寫「last summer」,然後在底下的說明欄寫下「We go to
Miami.」這樣你在跟你的機器人聊天的時候只要提到去年夏天,他就會自動回憶起你們去
邁阿密的時候。


接下來點選在Character旁邊的Chat,這邊主要控制的是你的角色之外的事情 - 情景、
範例對話、開頭訊息等等。
https://imgur.com/9anD144


Scenario - 情景,這邊主要是幫你的角色搭建背景,另外在這部分也可以加一些規則玩法
,這部分是我認為影響整個對話體驗最重要的部分。

Example Dialogue - 讓你的機器人可以根據這部分的格式或是行文風格來調整他的回應
,在這邊打的某些概念或東西也會稍微滲透你的整個聊天體驗。

First Message - 開場白,最好是把人事時地物都交代清楚,才不會讓AI一頭霧水。

Prune Example Dialogue - 看情況選擇,不過我通常都選擇False,這樣我有些在一開始
打的背景才不會流失掉。

再下面的東西主要都是調整模型的輸出了。
https://imgur.com/SdeWMZ3


如果你不太清楚以下這些事幹嘛的話,我建議可以選好你下載的模型後就可以不管他了。

最下面還有一個prompt template,根據你的模型是選什麼樣的主模型來選擇。如果是用
Llama當主模型就選Llama、Mistral就選Mistral、如果沒有列在上面的話就選Model
Default就好。

最後按下Start Chat就可以開始聊天了,也謝謝各位可以看到這裡,另外如果要轉載
本篇文章至其他論壇或看板的話請先通知我,謝謝。

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.70.113 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AC_In/M.1727157710.A.150.html
Noxves1樓 09/24 19:54
xzero09112樓推 正好看到前一篇想自建玩玩看 09/24 20:42
uohZemllac3樓 09/24 20:58
r981924樓讚喔 看樣子要買4070tis以上了… 09/25 08:22
如果只是要入門且需要是全新的話我非常推薦用4060 Ti 16GB。 1. 有雙風扇版本,所以如果是要從舊電腦升級的話也比較容易。 2. 足以應付1080P的遊戲體驗。 3. 從跑AI的角度來看,這張卡是目前市場上最有性價比的卡了。($15000/16GB VRAM) 其他卡當然遊戲表現更好,但是要為了同樣的VRAM所要額外支出的太多。 4. 低功耗,不需要再額外升級電源,基本上450的電源就可以帶的動了。
graypegasus5樓 09/25 10:36
Porops6樓推分享 09/25 10:49
tim8606287樓 09/25 12:27
Remianal8樓Yodayo 變非18+了嗎?我剛剛去看以前的紀錄還在也還能 09/25 13:00
Remianal9樓繼續聊欸 09/25 13:00
本人10樓Yodayo 這兩個月的狀況急轉直下 8/12就禁止成人內容生成了 09/25 13:05
本人11樓(雖然說是這樣說 但他們的內容過濾器做得很糟 所以還是滿 09/25 13:05
本人12樓多人可以用到成人內容的) 現在的狀況是他們要重組平台然 09/25 13:05
本人13樓後改名成Moescape 詳情可以去yodayo discord看 09/25 13:05
xzero091114樓自建大成功 產出一些很ㄎㄧㄤ的瑟瑟劇情笑到不行 09/25 13:49
xzero091115樓送個P幣紅包給你了w 09/25 13:49
已收到,感謝。
Noxves16樓有推薦的模型或是能搭配使用的翻譯程式嗎? 之前玩網頁是 09/25 22:17
Noxves17樓搭配翻譯外掛 09/25 22:17
如果要用中文聊天的話可以試看看用QWEN為主模型訓練的模型,目前市面上應該是沒有任 何有內嵌翻譯的LLM前端程式。
Noxves18樓謝謝大大 09/25 22:52
:)
Ricin19樓本地端沒有商用級大VRAM顯卡平行架構不用想了 8B是能有什麼 09/26 05:44
Ricin20樓表達能力 頂多做做網頁摘要跟email助理 09/26 05:45
tim86062821樓SillyTavern的介面是用網頁開的 我自己試過翻譯外掛可 09/26 08:35
tim86062822樓以正常運作 09/26 08:35
對耶,突然想到也可用沉浸式翻譯直接翻(雖然沒付費的話只能用bing translate)。
kansanxiao23樓自建成功+1 感謝推薦,也寄個紅包給你 09/26 19:01
收到了,謝謝你。
kansanxiao24樓話說Qwen在中文部分真的強 動作跟內容都細緻不少 但 09/26 20:35
kansanxiao25樓剛剛下載了最新的Qwen2.5 怎麼感覺沒有軟體推薦的2. 09/26 20:35
kansanxiao26樓0好用XDDD 09/26 20:35
本人27樓因為QWEN2.5才出來一周左右 可能還沒有專門為角色扮演微調 09/26 20:39
本人28樓過的版本出來 09/26 20:39
WindSucker29樓BACKYARD支援角色卡嗎? 09/26 20:45
本人30樓可以喔 只要你的角色卡是用 {{char}}/{{user}}來寫的 09/26 21:05