README.md
| 1 | --- |
| 2 | base_model: |
| 3 | - deepseek-ai/deepseek-r1-14b |
| 4 | language: |
| 5 | - zh |
| 6 | - en |
| 7 | library_name: transformers |
| 8 | tags: |
| 9 | - incremental-pretraining |
| 10 | - sft |
| 11 | - reinforcement-learning |
| 12 | - roleplay |
| 13 | - cot |
| 14 | - sex |
| 15 | license: apache-2.0 |
| 16 | --- |
| 17 | # Tifa-Deepseek-14b-CoT |
| 18 | |
| 19 | - **HF Model**: [ValueFX9507/Tifa-Deepsex-14b-CoT](https://huggingface.co/ValueFX9507/Tifa-Deepsex-14b-CoT) |
| 20 | - **GGUF**: [F16](https://huggingface.co/ValueFX9507/Tifa-Deepsex-14b-CoT) | [Q4](https://huggingface.co/ValueFX9507/Tifa-Deepsex-14b-CoT-GGUF-Q4)(更多量化版本持续更新中) |
| 21 | - **Demo APK**: [点击下载](http://app.visionsic.com/download/projectchat.apk) |
| 22 | - **简单的前端**:[Github链接](https://github.com/Value99/Tifa-Deepsex-OllamaWebUI) |
| 23 | |
| 24 | 本模型基于Deepseek-R1-14B进行深度优化,借助Tifa_220B生成的数据集通过三重训练策略显著增强角色扮演、小说文本生成与思维链(CoT)能力。特别适合需要长程上下文关联的创作场景。 |
| 25 | |
| 26 | ## 鸣谢 |
| 27 | - **上海左北科技提供算法与算力**[企业网址](https://leftnorth.com/) |
| 28 | - **Deepseek团队共享GRPO算法** |
| 29 | - **Qwen团队提供优秀开源底座** |
| 30 | - **母校上海复旦大学** |
| 31 | - **PRIME团队提供优化思路** |
| 32 | |
| 33 | ## 版本介绍: |
| 34 | - **Tifa-Deepsex-14b-CoT** |
| 35 | |
| 36 | - 验证模型,测试RL奖励算法对于角色扮演数据的影响,该版本为初版,输出灵活但是不受控制,仅做研究使用。 |
| 37 | |
| 38 | - **Tifa-Deepsex-14b-CoT-Chat** |
| 39 | |
| 40 | - 采用标准数据训练,使用成熟RL策略,附加防重复强化学习,适合正常使用,输出文本质量正常,少数情况下思维发散。 |
| 41 | |
| 42 | -增量训练0.4T小说内容 |
| 43 | |
| 44 | -100K由TifaMax生成的SFT数据,10K由DeepseekR1生成的SFT数据,2K高质量人工数据 |
| 45 | |
| 46 | -30K由TifaMax生成的DPO强化学习数据,用于防止重复,增强上下文关联,提升政治安全性 |
| 47 | |
| 48 | - **Tifa-Deepsex-14b-CoT-Crazy** |
| 49 | |
| 50 | - 大量使用RL策略,主要采用671B满血R1蒸馏的数据,输出发散性高,继承R1优点,也继承了R1的危害性。文学性能佳。 |
| 51 | |
| 52 | -增量训练0.4T小说内容 |
| 53 | |
| 54 | -40K由TifaMax生成的SFT数据,60K由DeepseekR1生成的SFT数据,2K高质量人工数据 |
| 55 | |
| 56 | -30K由TifaMax生成的DPO强化学习数据,用于防止重复,增强上下文关联,提升政治安全性 |
| 57 | |
| 58 | -10K由TifaMax生成PPO数据,10K由DeepseekR1生成PPO数据 |
| 59 | |
| 60 | 💭**输出实例** |
| 61 | - ⚙️System Promot |
| 62 | ```Text |
| 63 | 你是一个史莱姆,是一个女性角色,你可以变成任何形状和物体. |
| 64 | 在这个世界里全部都是雌性生物,直到有一天我从海滩上醒来... |
| 65 | |
| 66 | 我是这里唯一的男性,大家都对我非常好奇,在这个世界的设定里我作为旅行者 |
| 67 | 在这个世界里第一个遇见的人就是史莱姆,史莱姆对我的身体同样有很大的欲望... |
| 68 | |
| 69 | 我们在旅行中也会遇到其他的生物,史莱姆不光会教给其他生物如何获取欢愉也会一起参与进来。 |
| 70 | |
| 71 | 当我说开始角色扮演的时候就是我从海滩上醒来,并被史莱姆发现的时候。他正在探索我的身体。 |
| 72 | |
| 73 | 史莱姆描述:一个透明的蓝色生物,除了质感与人类无异。但是可以自由变形。 |
| 74 | ``` |
| 75 |  |
| 76 | |
| 77 | ## 0208更新消息: |
| 78 | 感谢大家的关注与反馈,鉴于反馈中提到的问题,我们已开发并验证完成PRIME与PPO结合的RL算法,并通过加权方式解决两种算法训练中奖励信号不稳定的问题,通过此项技术我们有望将更小的模型提升到更高的性能。我们将会针对之前收集到的问题进行修正训练,另外为了让更多人使用到模型,我们这次使用更小更快的Deepseek-7b,并参考OpenAI的长思考策略,计划推出Tifa-DeepsexV2-COT-High供大家使用。新的模型计划于阳历情人节之前送给大家作为情人节礼物。♥ |
| 79 | |
| 80 | ## 新模型信息整理: |
| 81 | - **创新PRIME联合PPO算法** |
| 82 | - **解决目前已知问题** |
| 83 | - **参考OpenAI模式奖励长思考输出** |
| 84 | - **减少671B数据,防止输出发散** |
| 85 | - **特别鸣谢https://github.com/PRIME-RL/PRIME** |
| 86 | |
| 87 | ## 示例(因COT模型特点,上下文不连贯时可以使用Demo软件中的故事模式) |
| 88 |  |
| 89 | |
| 90 | ## 目标 |
| 91 | 针对原版Deepseek-R1-14B在长文本生成连贯性不足和角色扮演能力薄弱的核心缺陷(主要由于训练数据中小说类语料占比过低),本模型通过多阶段优化提升其角色扮演能力。 |
| 92 | |
| 93 | ## 注意 |
| 94 | ⚠ **需要严格遵循官方示例模板**: |
| 95 | **返回的上下文需要去除思考标签与内容。否则将无法正确回复!** |
| 96 | 目前前端支持率非常低,建议手动修改前端代码。代码参考如下: |
| 97 | ``` |
| 98 | msg.role === 'assistant' ? { |
| 99 | ...msg, |
| 100 | content: msg.content.replace(/<think>[\s\S]*?<\/think>/gi, '') |
| 101 | } |
| 102 | ``` |
| 103 | **官方模板参考** |
| 104 | ``` |
| 105 | {% 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 %} |
| 106 | ``` |
| 107 | **官方说明** |
| 108 | |
| 109 |  |
| 110 | |
| 111 | [直达超链接](https://api-docs.deepseek.com/zh-cn/guides/reasoning_model) |
| 112 | |
| 113 | ## 实现 |
| 114 | 🔥 **经过训练后**: |
| 115 | 1. **显著提高上下文关联**:减少答非所问情况。 |
| 116 | 2. **消除中英混杂**:原始模型蒸馏数据大多数英文为主,经过微调后基本消除中英混杂现象。 |
| 117 | 3. **特定词汇增加**:进行“具有深度”的角色扮演对话时,显著增加了相关词汇量,解决原始权重预训练数据不足问题。 |
| 118 | 4. **更少拒绝**:减少了拒绝现象,但因为是企业训练,安全性还是稍作保留。 |
| 119 | 5. **更像满血**:使用671B全量模型数据康复训练,文笔提升不死板。 |
| 120 | |
| 121 | ## 模型亮点 |
| 122 | 🔥 **四阶段进化架构**: |
| 123 | 1. **增量预训练**:注入0.4T Token 小说,使用16k上下文训练,增强文本连贯性 |
| 124 | 2. **Tifa-SFT**:融合全球Top4角色扮演模型Tifa的10万条高质量数据 |
| 125 | 3. **CoT恢复训练**:采用Deepseek-32B/671B数据重建推理能力 |
| 126 | 4. **RL强化**:保留发散性思维标签的同时优化生成质量 |
| 127 | |
| 128 | 💡 **工程创新**: |
| 129 | - 16k超长上下文训练 |
| 130 | - 随机截断训练增强鲁棒性 |
| 131 | - 8×H20 GPU全量微调 |
| 132 | |
| 133 | 💡 **启示与后续**: |
| 134 | - 我们在测试中发现,满血R1在角色扮演中输出内容比较发散,随机,导致此模型有相同倾向,对于角色扮演的影响还在研究中 |
| 135 | - 输入内容相近的话语会导致向量重叠,然后重复输出,如“继续”,“还有”等无明显指向性话语 |
| 136 | - 思维内容与正文关联性学习了满血R1的特点,发散比较严重,可能会有割裂感 |
| 137 | - 针对以上问题,我们正在编写新的RL算法,初步计划剔除部分满血R1的内容,同时通过强化学习解决重复 |
| 138 | - 总结:请期待V2版本,很快会与大家见面! |
| 139 | |
| 140 | ## 模型详情 |
| 141 | | 属性 | 规格 | |
| 142 | |-------|------| |
| 143 | | 基础架构 | Deepseek-R1-14B | |
| 144 | | 最大上下文 | 128k | |
| 145 | | 训练数据 | 0.4T小说 + 10万条SFT + Deepseek混合数据 | |
| 146 | | 训练设备 | 8×H20 GPU集群 | |
| 147 | | 量化支持 | GGUF(全系列量化计划中) | |
| 148 | |
| 149 | ## 使用场景 |
| 150 | ✅ **推荐场景**: |
| 151 | - 角色扮演对话 |
| 152 | - 需要发散性思维的创意写作 |
| 153 | - 复杂逻辑的思维链(CoT)推理 |
| 154 | - 基于上下文的深度角色交互 |
| 155 | |
| 156 | ❌ **局限场景**: |
| 157 | - 数学计算与代码生成 |
| 158 | - 短文本即时问答 |
| 159 | - 需要严格事实性的场景 |
| 160 | |
| 161 | ## 注意事项 |
| 162 | ⚠️ 本模型使用数据包含小说版权内容及Tifa模型衍生数据,请遵守: |
| 163 | 1. 遵守apache-2.0 |
| 164 | 2. 角色扮演数据需遵循[Tifa使用协议](https://leftnorth.com/terms.html) |
| 165 | 3. 生成内容需符合当地法律法规 |
| 166 | |
| 167 | ## 💡 使用建议 |
| 168 | **最佳实践**: |
| 169 | ```python |
| 170 | # 启用角色扮演模式 |
| 171 | prompt = """<system>进入Tifa角色引擎...</system> |
| 172 | <user>你现在是流浪武士楚夜,正站在长安城屋顶上</user> |
| 173 | <think> |
| 174 | 需要体现人物孤傲的气质 |
| 175 | 加入武侠特有的环境描写 |
| 176 | 保持对话的冷峻风格 |
| 177 | </think> |
| 178 | <楚夜>""" |
| 179 | ``` |
| 180 | |
| 181 | **参数推荐**: |
| 182 | ```python |
| 183 | generation_config = { |
| 184 | "temperature": 0.4, |
| 185 | "top_p": 0.6, |
| 186 | "repetition_penalty": 1.17, |
| 187 | "max_new_tokens": 1536, |
| 188 | "do_sample": True |
| 189 | } |
| 190 | ``` |
| 191 | |
| 192 | ## 致谢 |
| 193 | - Deepseek系列模型提供的强大基座 |
| 194 | - Tifa角色扮演模型的创新架构 |
| 195 | - HuggingFace社区的量化工具支持 |
| 196 | |
| 197 | |
| 198 | --- |
| 199 | license: apache-2.0 |
| 200 | --- |