许可证:Apache-2.0
缩略图:https://cdn-uploads.huggingface.co/production/uploads/6625f4a8a8d1362ebcc3851a/coilCTGeL0OUYr9PA9zna.jpeg
语言:
- 英文
基础模型:
- Qwen/QwQ-32B
库名称:transformers
流水线标签:文本生成
QwQ-32B-ArliAI-RpR-v3
图片由Arli AI图像生成器生成 https://www.arliai.com/image-generation
RpR v3的改进:
-
ArliAI迄今为止的最佳模型:
极富创造力且思维跳出常规。
-
不再使用QwQ-abliterated作为基础:
v3是对v2的重做,但避免了从QwQ-lorablated基础开始带来的问题。事实证明这不是一个好选择,因为它明显削弱了模型的能力,甚至从更高的训练和评估损失值中也能看出这一点。
-
修复了思维脱节问题:
为确保生成的思维标记始终与模型响应匹配,我们投入了大量精力重新生成RpR数据集。
-
修复了随机拒绝问题:
之前的RpR v1数据集是用原始QwQ生成的,导致思维和响应示例中出现了一些拒绝。RpR v3的数据集生成改用QwQ-abliterated,彻底杜绝了拒绝现象。
-
修复了数据集中的无意义词汇:
在用于RPMax/RpR数据集的开放数据集中发现了一些疑似审查尝试的词汇/短语,现已修复这些问题,防止模型模仿此类行为。
-
Rex调度器:
v3采用更新更好的Rex调度器替代常规余弦调度器,以提升模型从数据集中学习细微差异的能力,因为该调度器能更长时间保持较高的学习率。
RpR系列概述:基于RPMax的推理构建
RpR(RolePlay with Reasoning,带推理的角色扮演)是ArliAI推出的新系列模型。该系列直接建立在RPMax系列成功的数据集整理方法和训练技术之上。
RpR模型使用了与RPMax相同的经过整理、去重的角色扮演和创意写作数据集,注重多样性以确保高创造力并减少跨上下文重复。熟悉RPMax的用户会认出这种独特、非重复的写作风格,与其他为角色扮演微调的模型不同。
随着QwQ作为首个高性能开源推理模型的发布,可以轻松训练,但现有的指令和创意写作推理数据集每个示例仅包含一个响应。这种单响应数据集用于训练推理模型会导致长多轮对话中输出质量下降。因此,Arli AI决定创建一个真正支持长多轮对话推理的角色扮演模型。
为创建RpR,我们首先需要将现有的优质RPMax数据集重新处理为推理数据集。通过使用基础的QwQ Instruct模型为RPMax数据集中的每个对话示例生成推理过程,并进一步优化以确保推理与数据集中的实际响应示例一致。
另一个关键点是确保模型在训练中看到的推理块与推理时遇到的方式一致。即,上下文中永远不会出现推理块。为此,训练使用axolotl和手动无模板分段数据集完成,确保模型在训练中永远不会看到上下文中的推理块,就像推理时的使用方式一样。
在这种数据集和方法下训练的QwQ模型,即使在长多轮角色扮演对话中也能持续输出连贯有趣的响应。据我们所知,这是首个真正为角色扮演和创意写作正确训练的推理模型。
您可以在https://arliai.com访问该模型,我们还提供了模型排名页面:https://www.arliai.com/models-ranking
欢迎在我们的新Discord服务器https://discord.com/invite/t75KbPgwhk或子Reddit https://www.reddit.com/r/ArliAI/提问。
模型描述
QwQ-32B-ArliAI-RpR-v3是RpR系列的第三个版本。这是一个320亿参数的模型,基于整理的RPMax数据集微调,结合了在长多轮对话中保持推理能力的技术。
规格
- 基础模型:QwQ-32B
- 最大上下文长度:最大128K(实际32K)
- 参数:32B
- 推理模型:是
训练细节
- 序列长度:8192
- 训练轮次:1轮(继承自RPMax方法)
- 微调方法:RS-QLORA+(Rank-Stabilized LoRA + LoRA Plus 8x)
- 秩/Alpha:128-rank 128-alpha
- 学习率:0.00001
- 调度器:Rex
- 梯度累积:32
漂亮的训练图表 :)
量化
- BF16:https://huggingface.co/ArliAI/QwQ-32B-ArliAI-RpR-v3
- GGUF:https://huggingface.co/ArliAI/QwQ-32B-ArliAI-RpR-v3-GGUF
如何在ST中正确使用推理模型
对于任何推理模型,您需要确保:
注意:推理模型仅在“包含名称”设置为“从不”时才能正常工作,因为它们始终期望用户回合的eos标记后跟<think>标记,以便在输出响应之前开始推理。如果启用“包含名称”,则会在末尾附加角色名称如“Seraphina:<eos_token>”,这会混淆模型是否应先响应或推理。
其余采样参数可按常规设置。
如果看不到思维块中的推理内容,则可能是设置仍不正确,或您的ST版本过旧,不支持自动解析推理块。
如果整个响应都在推理块中,则<think>和</think>推理标记的前缀或后缀可能有多余的空格或换行符。或者模型本身不够智能,无法始终将推理内容放在这些标记之间。
如果一切设置正确,应如下所示:
详情:RPMax基础(数据集与训练理念)
以下部分详细介绍了最初为RPMax开发的数据集和训练方法的核心理念,这也是RpR系列的基础。
目标:减少重复与提高创造力
用于RPMax和RpR的数据集整理目标是减少重复并提高模型在不同情境下的创意写作能力。这意味着模型将在不同情境下输出差异显著的响应,而不会陷入可预测的套路。
什么是重复与创造力?
首先,创造力应指模型能够输出的多样性。不应将创造力与优美的文笔混淆。当模型以类似小说作家的方式写作时,这并不是创意写作,而只是模型具有某种优美的写作风格。因此,写作优美的模型不一定是创意模型。
重复与创造力本质上是相互关联的。如果模型重复,也可以说它缺乏创造力,因为它无法写出新内容,只能重复之前生成的类似响应。重复实际上有两种截然不同的形式。
上下文内重复:当人们提到模型重复时,通常指模型在单次对话中喜欢重复相同的短语。例如,当一个角色“甩了甩头发……”后,模型开始在角色的每个动作前都加上“甩了甩头发……”。
可以说模型很无聊,但即使在真实写作中,这种重复有时可能是为了微妙地证明观点或展示角色特质。因此,这种重复并不总是坏事,完全阻止模型这样做并不总能提高其写作能力。
在这方面,RPMax和RpR尚未专注于消除这种重复,因此在输出中可能会看到一些上下文内重复。消除这种重复将是RPMax和RpR系列模型的下一步重点。
跨上下文重复:第二种更糟糕的重复是模型在不同情境中重复相同短语或套路的倾向。例如,模型喜欢在完全不适合的对话中重复“脊背发凉”这个短语。
这种重复总是糟糕的,因为它表明模型过度拟合了训练数据集中常见的“创意写作”风格。模型的跨上下文重复倾向通常也体现在它喜欢在写故事时选择类似的重复名称,如著名的“elara”和“whispering woods”。
RPMax和RpR数据集整理的主要目标是通过减少跨上下文重复来创建高创意模型,因为这种重复会在不同对话中持续出现。我们通过确保数据集中没有重复的情境或角色来应对这一问题。
数据集整理
该数据集(包括RPMax和现在的RpR)训练的成功归功于训练方法和为微调创建的独特数据集。它包含尽可能多的开源创意写作和角色扮演数据集(均来自Hugging Face),并经过整理以剔除纯合成生成的数据集,因为这些数据集通常只会降低模型能力,让模型学习GPT式(低质量)内容而非真正帮助。
然后使用Llama 3.1 8B(或类似能力的模型)创建这些数据集中角色和情境的数据库,用于去重,确保每个角色或情境只有一个条目。
微调的黄金法则
与初始预训练阶段不同(数据越多越好),微调模型的黄金法则不是数量,而是质量优于数量。因此,这里使用的数据集实际上比包含重复角色和情境的数据集小几个数量级,但最终结果是一个不会感觉像另一个创意写作/角色扮演模型“近亲繁殖”的模型。
训练参数与非常规方法
通常的方法是使用低学习率和高梯度累积以获得更好的损失稳定性,然后运行多轮训练直到损失可接受。
然而,RPMax和RpR的方法仅使用单轮训练,低梯度累积和高于常规的学习率。训练期间的损失曲线实际上不稳定且上下波动,但如果平滑处理,它会随时间稳步下降。理论是,这使模型能够从数据集中的每个示例中学到更多,并且通过不通过多轮训练向模型展示相同示例,可以阻止模型固守并强化单一角色或故事套路。
训练期间损失的波动是因为当模型在数据集中遇到新条目时,它从未见过类似示例,因此无法预测与示例条目相似的答案。而相对较高的最终损失(1.0或略高)实际上是可以接受的,因为目标从来不是创建一个能像训练数据集一样精确输出的模型,而是创建一个足够创意以形成自己响应风格的模型。
这与在特定领域训练模型并要求模型可靠地像示例数据集一样输出不同,例如在公司内部知识库上训练模型时。
试试看!
模型偏好是主观的,请亲自尝试QwQ-32B-ArliAI-RpR-v3。您的反馈(无论好坏)对我们改进未来的RPMax和RpR模型都非常有价值。