[洽特] 有關如何自建本地AI聊天機器人
如果這篇文章不符合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
留言