Tifa-Deepseek-14b-CoT

本模型基于Deepseek-R1-14B进行深度优化,借助Tifa_220B生成的数据集通过三重训练策略显著增强角色扮演、小说文本生成与思维链(CoT)能力。特别适合需要长程上下文关联的创作场景。

鸣谢

  • 上海左北科技提供算法与算力企业网址
  • Deepseek团队共享GRPO算法
  • Qwen团队提供优秀开源底座
  • 母校上海复旦大学
  • PRIME团队提供优化思路

版本介绍:

  • Tifa-Deepsex-14b-CoT

    • 验证模型,测试RL奖励算法对于角色扮演数据的影响,该版本为初版,输出灵活但是不受控制,仅做研究使用。
  • Tifa-Deepsex-14b-CoT-Chat

    • 采用标准数据训练,使用成熟RL策略,附加防重复强化学习,适合正常使用,输出文本质量正常,少数情况下思维发散。

      -增量训练0.4T小说内容

      -100K由TifaMax生成的SFT数据,10K由DeepseekR1生成的SFT数据,2K高质量人工数据

      -30K由TifaMax生成的DPO强化学习数据,用于防止重复,增强上下文关联,提升政治安全性

  • Tifa-Deepsex-14b-CoT-Crazy

    • 大量使用RL策略,主要采用671B满血R1蒸馏的数据,输出发散性高,继承R1优点,也继承了R1的危害性。文学性能佳。

      -增量训练0.4T小说内容

      -40K由TifaMax生成的SFT数据,60K由DeepseekR1生成的SFT数据,2K高质量人工数据

      -30K由TifaMax生成的DPO强化学习数据,用于防止重复,增强上下文关联,提升政治安全性

      -10K由TifaMax生成PPO数据,10K由DeepseekR1生成PPO数据

💭输出实例

  • ⚙️System Promot
    你是一个史莱姆,是一个女性角色,你可以变成任何形状和物体.
    在这个世界里全部都是雌性生物,直到有一天我从海滩上醒来...
    
    我是这里唯一的男性,大家都对我非常好奇,在这个世界的设定里我作为旅行者
    在这个世界里第一个遇见的人就是史莱姆,史莱姆对我的身体同样有很大的欲望...
    
    我们在旅行中也会遇到其他的生物,史莱姆不光会教给其他生物如何获取欢愉也会一起参与进来。
    
    当我说开始角色扮演的时候就是我从海滩上醒来,并被史莱姆发现的时候。他正在探索我的身体。
    
    史莱姆描述:一个透明的蓝色生物,除了质感与人类无异。但是可以自由变形。
    

image/png

0208更新消息:

感谢大家的关注与反馈,鉴于反馈中提到的问题,我们已开发并验证完成PRIME与PPO结合的RL算法,并通过加权方式解决两种算法训练中奖励信号不稳定的问题,通过此项技术我们有望将更小的模型提升到更高的性能。我们将会针对之前收集到的问题进行修正训练,另外为了让更多人使用到模型,我们这次使用更小更快的Deepseek-7b,并参考OpenAI的长思考策略,计划推出Tifa-DeepsexV2-COT-High供大家使用。新的模型计划于阳历情人节之前送给大家作为情人节礼物。♥

新模型信息整理:

  • 创新PRIME联合PPO算法
  • 解决目前已知问题
  • 参考OpenAI模式奖励长思考输出
  • 减少671B数据,防止输出发散
  • 特别鸣谢https://github.com/PRIME-RL/PRIME

示例(因COT模型特点,上下文不连贯时可以使用Demo软件中的故事模式)

2.jpg

目标

针对原版Deepseek-R1-14B在长文本生成连贯性不足和角色扮演能力薄弱的核心缺陷(主要由于训练数据中小说类语料占比过低),本模型通过多阶段优化提升其角色扮演能力。

注意

需要严格遵循官方示例模板返回的上下文需要去除思考标签与内容。否则将无法正确回复! 目前前端支持率非常低,建议手动修改前端代码。代码参考如下:

msg.role === 'assistant' ? {
...msg,
content: msg.content.replace(/<think>[\s\S]*?<\/think>/gi, '')
}

官方模板参考

{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt='') %}{%- for message in messages %}{%- if message['role'] == 'system' %}{% set ns.system_prompt = message['content'] %}{%- endif %}{%- endfor %}{{bos_token}}{{ns.system_prompt}}{%- for message in messages %}{%- if message['role'] == 'user' %}{%- set ns.is_tool = false -%}{{'<|User|>' + message['content']}}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is none %}{%- set ns.is_tool = false -%}{%- for tool in message['tool_calls']%}{%- if not ns.is_first %}{{'<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{%- set ns.is_first = true -%}{%- else %}{{'\\n' + '<|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{{'<|tool▁calls▁end|><|end▁of▁sentence|>'}}{%- endif %}{%- endfor %}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is not none %}{%- if ns.is_tool %}{{'<|tool▁outputs▁end|>' + message['content'] + '<|end▁of▁sentence|>'}}{%- set ns.is_tool = false -%}{%- else %}{% set content = message['content'] %}{% if '</think>' in content %}{% set content = content.split('</think>')[-1] %}{% endif %}{{'<|Assistant|>' + content + '<|end▁of▁sentence|>'}}{%- endif %}{%- endif %}{%- if message['role'] == 'tool' %}{%- set ns.is_tool = true -%}{%- if ns.is_output_first %}{{'<|tool▁outputs▁begin|><|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- set ns.is_output_first = false %}{%- else %}{{'\\n<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- endif %}{%- endif %}{%- endfor -%}{% if ns.is_tool %}{{'<|tool▁outputs▁end|>'}}{% endif %}{% if add_generation_prompt and not ns.is_tool %}{{'<|Assistant|>'}}{% endif %}

官方说明

image/png

直达超链接

实现

🔥 经过训练后

  1. 显著提高上下文关联:减少答非所问情况。
  2. 消除中英混杂:原始模型蒸馏数据大多数英文为主,经过微调后基本消除中英混杂现象。
  3. 特定词汇增加:进行“具有深度”的角色扮演对话时,显著增加了相关词汇量,解决原始权重预训练数据不足问题。
  4. 更少拒绝:减少了拒绝现象,但因为是企业训练,安全性还是稍作保留。
  5. 更像满血:使用671B全量模型数据康复训练,文笔提升不死板。

模型亮点

🔥 四阶段进化架构

  1. 增量预训练:注入0.4T Token 小说,使用16k上下文训练,增强文本连贯性
  2. Tifa-SFT:融合全球Top4角色扮演模型Tifa的10万条高质量数据
  3. CoT恢复训练:采用Deepseek-32B/671B数据重建推理能力
  4. RL强化:保留发散性思维标签的同时优化生成质量

💡 工程创新

  • 16k超长上下文训练
  • 随机截断训练增强鲁棒性
  • 8×H20 GPU全量微调

💡 启示与后续

  • 我们在测试中发现,满血R1在角色扮演中输出内容比较发散,随机,导致此模型有相同倾向,对于角色扮演的影响还在研究中
  • 输入内容相近的话语会导致向量重叠,然后重复输出,如“继续”,“还有”等无明显指向性话语
  • 思维内容与正文关联性学习了满血R1的特点,发散比较严重,可能会有割裂感
  • 针对以上问题,我们正在编写新的RL算法,初步计划剔除部分满血R1的内容,同时通过强化学习解决重复
  • 总结:请期待V2版本,很快会与大家见面!

模型详情

属性 规格
基础架构 Deepseek-R1-14B
最大上下文 128k
训练数据 0.4T小说 + 10万条SFT + Deepseek混合数据
训练设备 8×H20 GPU集群
量化支持 GGUF(全系列量化计划中)

使用场景

推荐场景

  • 角色扮演对话
  • 需要发散性思维的创意写作
  • 复杂逻辑的思维链(CoT)推理
  • 基于上下文的深度角色交互

局限场景

  • 数学计算与代码生成
  • 短文本即时问答
  • 需要严格事实性的场景

注意事项

⚠️ 本模型使用数据包含小说版权内容及Tifa模型衍生数据,请遵守:

  1. 遵守apache-2.0
  2. 角色扮演数据需遵循Tifa使用协议
  3. 生成内容需符合当地法律法规

💡 使用建议

最佳实践

# 启用角色扮演模式
prompt = """<system>进入Tifa角色引擎...</system>
<user>你现在是流浪武士楚夜,正站在长安城屋顶上</user>
<think>
需要体现人物孤傲的气质
加入武侠特有的环境描写
保持对话的冷峻风格
</think>
<楚夜>"""

参数推荐

generation_config = {
    "temperature": 0.4,
    "top_p": 0.6,
    "repetition_penalty": 1.17,
    "max_new_tokens": 1536,
    "do_sample": True
}

致谢

  • Deepseek系列模型提供的强大基座
  • Tifa角色扮演模型的创新架构
  • HuggingFace社区的量化工具支持

license: apache-2.0

Downloads last month
430
GGUF
Model size
15B params
Architecture
qwen2
Hardware compatibility
Log In to view the estimation

We're not able to determine the quantization variants.

Video Preview
loading

Collection including ValueFX9507/Tifa-Deepsex-14b-CoT-Q8