作者Rosor (我就是城武 別再問了)
看板AC_In
標題[洽特] 有關如何自建本地AI聊天機器人
時間Tue Sep 24 14:01:44 2024
如果這篇文章不符合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://webptt.com/m.aspx?n=bbs/AC_In/M.1727157710.A.150.html
1F:推 Noxves: 推09/24 19:54
2F:推 xzero0911: 推 正好看到前一篇想自建玩玩看09/24 20:42
3F:推 uohZemllac: 推 09/24 20:58
4F:推 r98192: 讚喔 看樣子要買4070tis以上了…09/25 08:22
如果只是要入門且需要是全新的話我非常推薦用4060 Ti 16GB。
1. 有雙風扇版本,所以如果是要從舊電腦升級的話也比較容易。
2. 足以應付1080P的遊戲體驗。
3. 從跑AI的角度來看,這張卡是目前市場上最有性價比的卡了。($15000/16GB VRAM)
其他卡當然遊戲表現更好,但是要為了同樣的VRAM所要額外支出的太多。
4. 低功耗,不需要再額外升級電源,基本上450的電源就可以帶的動了。
5F:推 graypegasus: 推 09/25 10:36
6F:推 Porops: 推分享09/25 10:49
7F:推 tim860628: 推 09/25 12:27
8F:推 Remianal: Yodayo 變非18+了嗎?我剛剛去看以前的紀錄還在也還能 09/25 13:00
9F:→ Remianal: 繼續聊欸09/25 13:00
10F:→ Rosor: Yodayo 這兩個月的狀況急轉直下 8/12就禁止成人內容生成了09/25 13:05
11F:→ Rosor: (雖然說是這樣說 但他們的內容過濾器做得很糟 所以還是滿 09/25 13:05
12F:→ Rosor: 多人可以用到成人內容的) 現在的狀況是他們要重組平台然09/25 13:05
13F:→ Rosor: 後改名成Moescape 詳情可以去yodayo discord看09/25 13:05
14F:推 xzero0911: 自建大成功 產出一些很ㄎㄧㄤ的瑟瑟劇情笑到不行09/25 13:49
15F:→ xzero0911: 送個P幣紅包給你了w09/25 13:49
已收到,感謝。
16F:推 Noxves: 有推薦的模型或是能搭配使用的翻譯程式嗎? 之前玩網頁是09/25 22:17
17F:→ Noxves: 搭配翻譯外掛09/25 22:17
如果要用中文聊天的話可以試看看用QWEN為主模型訓練的模型,目前市面上應該是沒有任
何有內嵌翻譯的LLM前端程式。
※ 編輯: Rosor (36.227.70.113 臺灣), 09/25/2024 22:28:34
18F:推 Noxves: 謝謝大大09/25 22:52
:)
※ 編輯: Rosor (36.227.70.113 臺灣), 09/25/2024 23:59:40
19F:→ Ricin: 本地端沒有商用級大VRAM顯卡平行架構不用想了 8B是能有什麼09/26 05:44
20F:→ Ricin: 表達能力 頂多做做網頁摘要跟email助理09/26 05:45
https://imgur.com/lxvt5zq
21F:推 tim860628: SillyTavern的介面是用網頁開的 我自己試過翻譯外掛可09/26 08:35
22F:→ tim860628: 以正常運作 09/26 08:35
對耶,突然想到也可用沉浸式翻譯直接翻(雖然沒付費的話只能用bing translate)。
23F:推 kansanxiao: 自建成功+1 感謝推薦,也寄個紅包給你09/26 19:01
收到了,謝謝你。
※ 編輯: Rosor (114.24.22.207 臺灣), 09/26/2024 20:34:39
24F:推 kansanxiao: 話說Qwen在中文部分真的強 動作跟內容都細緻不少 但09/26 20:35
25F:→ kansanxiao: 剛剛下載了最新的Qwen2.5 怎麼感覺沒有軟體推薦的2.09/26 20:35
26F:→ kansanxiao: 0好用XDDD09/26 20:35
27F:→ Rosor: 因為QWEN2.5才出來一周左右 可能還沒有專門為角色扮演微調09/26 20:39
28F:→ Rosor: 過的版本出來09/26 20:39
29F:推 WindSucker: BACKYARD支援角色卡嗎?09/26 20:45
30F:→ Rosor: 可以喔 只要你的角色卡是用 {{char}}/{{user}}來寫的09/26 21:05
31F:→ Rosor: backyard都會自動轉譯成他們自己的格式{character}/{user} 09/26 21:06
32F:推 WindSucker: 讚 謝謝09/26 21:37
33F:推 Lukesky: 去抓其他人的角色卡 用qwen的模型原來會用中文回覆嗎09/27 07:45
不太確定,不過依照我之前的經驗來說,他不回你中文的話你可以修改他的開場白跟範例
訊息,通常這樣他就會回你中文了。
※ 編輯: Rosor (114.24.22.207 臺灣), 09/27/2024 09:56:33
34F:推 voldemort100: 這篇教的真的簡單,我照做一次半小時內搞定09/28 12:17
35F:→ voldemort100: 前幾天自己用SillyTavern+ollama搞了6小時才架起來09/28 12:17
36F:→ voldemort100: 我自己把flai的人物卡拿進來試了一下09/28 12:20
37F:→ voldemort100: 主要問題是回覆精度還是差很多09/28 12:20
38F:→ voldemort100: 一方面是我8g顯卡沒辦法跑太大的模型 09/28 12:20
39F:→ voldemort100: 一方面是中文跟rp專用模型的調整 09/28 12:20
40F:→ voldemort100: 好像只能期待更優化更小的模型09/28 12:20
41F:推 voldemort100: 有推薦中文最好的nsfw角色扮演llm嗎,8g能跑的09/28 19:49
可以試看看 QWEN Multilingual 7B
42F:推 Lukesky: chub ai上抓下來的角色卡 講沒幾句就想要色色09/30 07:59
可能跟角色卡的作者有關,另外在角色描述的時候如果放入太多跟色情內容有關的文字,
也很容易改變整個對話導向。
※ 編輯: Rosor (36.227.66.18 臺灣), 09/30/2024 11:59:29
43F:推 maoshan: 我推薦Qwen2-7B-Multilingual-RP.Q8_0 或Q6_K10/02 11:04
44F:→ maoshan: 現在我都是用Koboldcpp,選項用Remote Tunnel。10/02 11:07
45F:→ maoshan: 可以提供api,手機用Termux裝SillyTavern就變成手機聊天10/02 11:09
Backyard也有提供類似的功能 叫做tethering
是直接用帳號綁定不同裝置 這樣只要你的電腦有開著 手機就可以直接用電腦的算力來跑LL
M
46F:推 maoshan: 要讓AI專注扮演角色其實和文字補充預設有關10/02 11:17
47F:→ maoshan: 我推薦Hugging Face上由Virt-io提供的[Simple]Roleplay10/02 11:19
48F:→ maoshan: 這組設定玩起來鬼打牆的機率降低了,回答也多變10/02 11:20
我覺得跟system prompt也很有關 我自己是直接去問discord上的作者 他們給了我一個還挺
好用的 還沒遇過OOC跟人稱切換的問題
49F:推 voldemort100: 謝謝推薦,我遇到不是ooc或鬼打牆 10/02 14:49
50F:→ voldemort100: 而是整個中文通順度跟文筆畫面的問題 10/02 14:49
51F:→ voldemort100: 有翻譯腔或是詞彙單薄比較難達到nsfw初衷10/02 14:49
52F:→ voldemort100: 我覺得ai都有魅魔傾向,因為沒體力概念,很容易一10/02 14:51
53F:→ voldemort100: 次接一次,加體力條都沒用,最近已經開始嘗試加上10/02 14:51
54F:→ voldemort100: 矜持保守堅貞tag了10/02 14:51
LLM有時候對於很硬性的規定或特殊規則比較吃不消 另外詞彙單薄的話可以在system promp
t加上「生動且詳細的形容情境」之類的
※ 編輯: Rosor (42.76.137.139 臺灣), 10/06/2024 14:07:23
55F:推 promaster: 請問有甚麼推薦的模型可以用來翻譯漫畫用詞嗎? 10/08 09:43
56F:→ promaster: 需求剛好是跟一般倒反過來...繁中翻日文..有瑟瑟詞.. 10/08 09:45
57F:→ promaster: 前端用Jan..找過幾種translation專用的都不是很有效.. 10/08 09:49
58F:→ promaster: 感謝!10/08 09:50
建議直接找這種專門翻譯的軟體 如果特定用詞有特定翻譯的話 LLM反而沒那麼好用 畢竟LL
M是用機率驅動的東西
※ 編輯: Rosor (223.137.116.85 臺灣), 10/09/2024 01:05:04
59F:推 promaster: 所以BackyardAI適合色文中翻日嗎? 10/10 11:19