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

作者: Rosor (我就是城武 別再問了)   2024-09-24 14:01:44
如果這篇文章不符合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就可以開始聊天了,也謝謝各位可以看到這裡,另外如果要轉載
本篇文章至其他論壇或看板的話請先通知我,謝謝。
作者: Noxves (諾克威斯)   2024-09-24 19:54:00
作者: xzero0911 (Jh豆腐)   2024-09-24 20:42:00
推 正好看到前一篇想自建玩玩看
作者: uohZemllac (甘草精華雄沒醉)   2024-09-24 20:58:00
作者: r98192 (雅特)   2024-09-25 08:22:00
讚喔 看樣子要買4070tis以上了…
作者: graypegasus (此地無炸豆腐)   2024-09-25 10:36:00
作者: Porops (豬排)   2024-09-25 10:49:00
推分享
作者: tim860628 (Tim0628)   2024-09-25 12:27:00
作者: Remianal (Remianal)   2024-09-25 13:00:00
Yodayo 變非18+了嗎?我剛剛去看以前的紀錄還在也還能繼續聊欸
作者: Rosor (我就是城武 別再問了)   2024-09-25 13:05:00
Yodayo 這兩個月的狀況急轉直下 8/12就禁止成人內容生成了(雖然說是這樣說 但他們的內容過濾器做得很糟 所以還是滿多人可以用到成人內容的) 現在的狀況是他們要重組平台然後改名成Moescape 詳情可以去yodayo discord看
作者: xzero0911 (Jh豆腐)   2024-09-25 13:49:00
自建大成功 產出一些很ㄎㄧㄤ的瑟瑟劇情笑到不行送個P幣紅包給你了w
作者: Noxves (諾克威斯)   2024-09-25 22:17:00
有推薦的模型或是能搭配使用的翻譯程式嗎? 之前玩網頁是搭配翻譯外掛謝謝大大
作者: Ricin (喵)   2024-09-26 05:44:00
本地端沒有商用級大VRAM顯卡平行架構不用想了 8B是能有什麼表達能力 頂多做做網頁摘要跟email助理
作者: tim860628 (Tim0628)   2024-09-26 08:35:00
SillyTavern的介面是用網頁開的 我自己試過翻譯外掛可以正常運作
作者: kansanxiao (看三小)   2024-09-26 19:01:00
自建成功+1 感謝推薦,也寄個紅包給你
作者: Rosor (我就是城武 別再問了)   2024-09-26 20:39:00
因為QWEN2.5才出來一周左右 可能還沒有專門為角色扮演微調過的版本出來
作者: WindSucker (抽風者)   2024-09-26 20:45:00
BACKYARD支援角色卡嗎?
作者: Rosor (我就是城武 別再問了)   2024-09-26 21:05:00
可以喔 只要你的角色卡是用 {{char}}/{{user}}來寫的backyard都會自動轉譯成他們自己的格式{character}/{user}
作者: WindSucker (抽風者)   2024-09-26 21:37:00
讚 謝謝
作者: Lukesky   2024-09-27 07:45:00
去抓其他人的角色卡 用qwen的模型原來會用中文回覆嗎
作者: voldemort100 (vv)   2024-09-28 12:17:00
這篇教的真的簡單,我照做一次半小時內搞定前幾天自己用SillyTavern+ollama搞了6小時才架起來我自己把flai的人物卡拿進來試了一下主要問題是回覆精度還是差很多一方面是我8g顯卡沒辦法跑太大的模型一方面是中文跟rp專用模型的調整好像只能期待更優化更小的模型
作者: Lukesky   2024-09-30 07:59:00
chub ai上抓下來的角色卡 講沒幾句就想要色色
作者: maoshan (哞吼)   2024-10-02 11:04:00
我推薦Qwen2-7B-Multilingual-RP.Q8_0 或Q6_K現在我都是用Koboldcpp,選項用Remote Tunnel。可以提供api,手機用Termux裝SillyTavern就變成手機聊天要讓AI專注扮演角色其實和文字補充預設有關我推薦Hugging Face上由Virt-io提供的[Simple]Roleplay這組設定玩起來鬼打牆的機率降低了,回答也多變
作者: voldemort100 (vv)   2024-10-02 14:49:00
謝謝推薦,我遇到不是ooc或鬼打牆而是整個中文通順度跟文筆畫面的問題有翻譯腔或是詞彙單薄比較難達到nsfw初衷我覺得ai都有魅魔傾向,因為沒體力概念,很容易一次接一次,加體力條都沒用,最近已經開始嘗試加上矜持保守堅貞tag了

Links booklink

Contact Us: admin [ a t ] ucptt.com