[洽特] 有关如何自建本地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