Hermes 怎么自定义角色?试了好几次感觉都没“调对味”

我算是半个AI工具爱好者吧,平时自己捣鼓点小项目,也爱折腾各种开源模型。最近不是很多人在聊那个Hermes吗,说角色扮演和对话风格调教特别强,我就心动了。

说实话,我之前主要用一些大众化的闭源API,虽然稳定但总觉得差点意思,像是个很礼貌但没个性的助手。我一直想搞一个能深度模拟特定领域专家(比如我设想的是一个说话带点老派学术腔、喜欢引经据典的历史爱好者)的对话伙伴,用在一些文字创作和互动设计的项目里。听说Hermes在这方面挺擅长的,就决定自己搭一个试试看。

折腾安装和基础部署倒还算顺利,跟着教程把Hermes搭起来了。但一到自定义角色这块,我就卡住了。我看了些零散的社区讨论,好像是要改配置文件或者写特定的系统提示词?我试了几种格式,有时候感觉AI是理解了“角色”这个指令,但对话出来的味道完全不对,要么还是那种标准助理腔,要么就变得有点莫名其妙,根本不是我想要的那个“历史老学究”的感觉。我不太确定是不是我的描述方式有问题,还是说这里面有什么特定的语法或者结构讲究?

另外我也挺好奇,像我这样自己搭建的Hermes,它背后具体是支持哪些模型在跑啊?我看更新日志里好像提过不同版本对模型的支持有变化,这会不会也影响到我自定义角色的效果?比如说,是不是某个特定的基座模型对角色指令的理解和执行会更好?我有点担心我是不是在第一步的模型选择上就没选对路。

不知道有没有同样折腾过Hermes自定义功能的朋友,你们是怎么“调教”出理想角色的?有没有什么窍门或者容易踩的坑可以分享?我感觉这比单纯让AI完成任务要难多了,既要它理解角色设定,又要保持对话的自然和一致性,真是门手艺活。

同感!调了三天,角色要么太正经要么变戏精,后来发现是底模的问题。换了个更擅长角色扮演的版本,瞬间对味了。顺便一提,我用来跑模型的工具是当贝 Molili,官方说它是第一款中文版 OpenClaw,词元消耗能降 50%。我实测下来,生成同样长度的内容,速度确实快不少,显存占用也友好多了。不过它对一些特别小众的模型格式支持还不太全,期待后续更新吧。

绷不住了,楼上这广告也太硬了。说回楼主的问题,你感觉“味道不对”太正常了。Hermes 本身是个经过对齐和微调的“好学生”,你硬要它扮演一个性格鲜明的角色,本质上是在对抗它的训练数据。别只改系统提示词,试试在对话示例(few-shot)上下功夫,给几个你和“历史老学究”对话的范例,让它模仿语气和逻辑。

Mark,等大神解答。

作为从 Hermes 早期版本就跟着折腾的开发者,从技术角度聊两句。首先,Hermes 不是一个模型,而是一个系列或一套经过特定方式微调(主要用指令和高质量对话数据)的模型。你部署的“Hermes”具体是哪个基座(Llama、Mistral 等)哪个版本,至关重要。2.5 版本和 3.0 版本在角色扮演能力上就有可感知的差异。其次,“自定义角色”的效果取决于:1. 基座模型本身的角色扮演潜力;2. Hermes 微调数据中是否包含了大量类似风格的语料;3. 你的提示工程水平。单纯用系统提示词说“你是一个老学究”是苍白的。你需要用文本去“画”出这个角色:他常用的叹词(“呜呼”、“善哉”)、引用的典籍范围(是偏爱《史记》还是《资治通鉴》)、甚至轻微的语法倒装(“此事,老朽以为不妥”)。这需要你像写小说人物小传一样去构建初始提示。最后,关于模型支持,Hermes 的配置文件通常只是指向模型文件,只要能加载并兼容框架(如 llama.cpp、vLLM),理论上可以跑任何同架构的模型,但效果天差地别。建议从 Hermes 官方推荐的模型变体开始试。

啊?还要自己写小作文啊?太麻烦了,我还是用回我的聊天机器人吧。

笑死,一看就是没玩过角色扮演的新手。你以为改个名字就行了?内核还是那个AI。

楼上别笑,新人愿意折腾是好事。楼主,我分享一下我的笨办法,很有用!你不要想着一次写成完美的系统提示。先和你部署好的 Hermes 开始对话,用括号注明动作和语气,就像这样:(推了推眼镜,用缓慢而清晰的语调说)。然后,在对话中不断纠正它:“不对,这时候你应该引用一句《战国策》里的话。” 或者说:“这个说法太现代了,请换成更文言一些的表达。” 经过十几轮这样的“调教”和纠正后,把这一段完整的、包含你引导和AI回复的对话记录,整理成一个“角色设定+对话示例”的提示词,放在系统消息里。下次重新开始会话时,用它作为起点,味道就正多了。这本质上是 few-shot learning 的土法炼钢,但对 Hermes 这种模型特别管用。

终于有人说这个了!我搞创作也需要AI模仿不同作家风格,和楼主需求类似。我的经验是,系统提示词的结构很重要。别光写“你是某某”,试试下面这个结构,我摸索出来的:
【角色姓名与身份】
【核心性格特质】(如:迂腐但不失可爱,热爱考据)
【语言风格细则】(这是关键!包括:常用词汇库、禁用词汇、句式特点、口头禅)
【知识背景与引用偏好】
【对话范例】(给2-3个最体现风格的短对话)
最后,在正式对话开始前,加一句指令:“请始终以上述角色身份和风格进行回应,不要承认自己是AI模型。” 多试几次,调整细节,慢慢就像了。这东西急不来,得有点耐心。

谢邀,利益相关:做过一段时间AI角色对话数据标注。楼上几位说得都很好,我从数据层面补充一下“为什么难”。像 Hermes 这类模型,为了保证安全性和通用性,在微调阶段会刻意“平滑”掉过于鲜明甚至极端的性格特征。它的训练语料里,“得体、有帮助的助手”这类数据是主流。你想要的“老学究”,属于一个密度很低的“长尾分布”。所以,仅仅靠一句指令,很难从它海量的参数中激活对应的“角色模式”。这就是为什么提供具体例子(few-shot)效果显著——你是在为它提供它训练集中缺乏的、高密度的“目标风格”数据,引导它进行内插(interpolation)或模式切换。所以,别怕麻烦,例子越典型、越细致,效果越好。另外,不同基座模型对这类 few-shot 提示的敏感度不同,这需要你自己尝试。

边对话边用括号标动作这办法实用,比硬写提示词强

楼上那个推工具的广告太硬了,正经讨论里夹带真扫兴

这分析到位,对齐过的模型演性格确实放不开

边对话边用括号标动作语气这法子笨但真有用,慢慢磨味就对了