作者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/cn.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