如果GPU还不错,比如有30系或40系,可以试试自己部署开源大模型,比如Meta(原Facebook)的LLaMA3,阿里的通义千问2(Qwen2)。
关于性能,以Qwen2为例(下面的数据都是无量化版的模型,即半精度推理,量化版本没测试过):
- 0.5B(5亿参数):部署模型需要约1.2G,每增加1GB显存大约对应1200字上下文
- 1.5B(15亿参数):部署模型需要约3.5G,每增加1GB显存大约对应1200字上下文
- 7B(70亿参数):部署模型需要约14G,每增加1GB显存大约对应1000字上下文
- 57/72B(570/720亿参数):没测试过,这不是咱普通玩家玩的。单卡连模型都装不下,哪怕是80G的A100都不行
模型分
基座版和
指令微调版。
基座版有知识,但听不懂人类的需求,总说一些奇怪的话,不能直接用。
指令微调版是官方调教好的,在
基座版基础上特别训练了对话能力。但
基座版是没有禁忌的,
指令微调版就有了。
因为基座版虽然没禁忌,但它的训练素材是筛选过的,它对M系XP并不熟悉。所以我用唯爱足论坛的小说作数据集(站内有人分享),对1.5B基座版做了一次增量预训练。直接调原始模型不现实,我用的是LoRA微调算法。训练完再问类似
什么是足交、
滴蜡有什么注意事项、
被喜欢的女孩子金蹴是一种什么体验,回答就很有感觉了。
然后我用GPT生成1GB左右的角色扮演对话,再对基座版微调一次。然后再合并LoRA,本地部署,用SillyTavern就能爽玩了。
我的实验感受如下:
优点:
- Qwen2对中文的支持做的不错,比同规模的LLaMA好一大截,AI味没那么浓
- 由于额外做了增量预训练,模型真的很懂,它甚至会玩一些我作为作者都没听说过的玩法。比如我捏了个情妇人设,我说我下面被主人上锁了,但想要涩涩。她说可以用鞋跟踹我小腹,或者插后门,这样能前列腺高潮,不碰下体也能爽射。作为直男,这玩法我闻所未闻,但听上去很像那么回事
问题:
- 增量预训练可能破坏了一些原本的知识,让模型忘掉了一些人类语法的规则和人类世界的常识,导致模型经常说胡话。有时候超级出戏,比如:伊莲娜扬起手中的长鞭,手腕一抖,你便在鞭笞中旋转起来。你越转越快,直到周边的一切都随你一同卷入风暴中。这问题困扰大模型行业很久了,叫“灾难性遗忘”。目前有解决方法,但需要扩充模型规模。我还没试过
- 文笔时好时坏。这一点可能和数据集有关,因为唯爱足论坛的小说本来质量就参差不齐,GPT生成的对话更是尬的一批。我目前只想验证一下可行性,训练前没做任何数据清洗
- 记忆很短,如果场景复杂一点,前戏还没结束,模型就把剧情忘干净了。模型本身能开到32k的token,但我24GB的3090,都只敢开16k,再多就会out of memory。我目前的思路是在模型上加一个动态的知识库,类似RAG。不要让模型把每次对话的全部内容都塞入token,而是做embedding后只记录top-k。另外我还不太会写角色卡,很可能有些本该写在长期记忆里的人设,我给写短期记忆里了
- 模型的感知力不太行,对话中逻辑复杂一点,它还是理解不了。比如它分不清楚真的拒绝和欲拒还迎,分不清什么时候要狠一些,什么时候要温柔的aftercare。感觉1.5B还是太小了。但民用单卡能训练的极限就是1.5B,7B就得动用A100这种家伙了