12B

202 Pulls 2周前更新

2周前

e8ed0fa088d7 · 10GB

说明文件

=== 警告,可能涉及NSFW内容! ===

Mistral Nemo 12B Celeste V1.9

仔细阅读下面的使用提示!使用ChatML。

加入 我们的Discord 进行测试新版本和获取新闻!我们还在KoboldAI。

**这是一个基于 [Mistral NeMo 12B Instruct](https://hugging-face.cn/mistralai/Mistral-Nemo-Instruct-2407) 按照 8K 文本上下文,使用 [Reddit 写作提示](https://hugging-face.cn/datasets/nothingiisreal/Reddit-Dirty-And-WritingPrompts)、[Kalo的Opus 25K Instruct](https://hugging-face.cn/datasets/kalomaze/Opus_Instruct_25k) 和 [c2 logs cleaned](https://hugging-face.cn/datasets/Sao10K/c2-Logs-Filtered) 训练的故事写作和角色扮演模型**。
[c2 logs cleaned](https://hugging-face.cn/datasets/Sao10K/c2-Logs-Filtered) 感谢Pyroserenus赞助这次运行!这个版本改进了NSFW,叙述更加 clever 和活跃。它还使用了ChatML标记进行训练,所以不应该有任何EOS溢出。# FP8 [Dynamic (by Auri)](https://hugging-face.cn/aetherwiing/MN-12B-Celeste-V1.9-fp8-dynamic) # EXL2 [4bpw By Kingbri](https://hugging-face.cn/royallab/MN-12B-Celeste-V1.9-exl2/tree/4bpw)
[5bpw By Kingbri](https://hugging-face.cn/royallab/MN-12B-Celeste-V1.9-exl2/tree/5bpw)
[6bpw By Kingbri](https://hugging-face.cn/royallab/MN-12B-Celeste-V1.9-exl2/tree/6bpw) # GGUF 如果一个不起作用,请尝试另一个。 [静态Quants](https://hugging-face.cn/nothingiisreal/MN-12B-Celeste-V1.9-GGUF)
[IMatrix Quants](bartowski/MN-12B-Celeste-V1.9-GGUF) # API 可能会在某个时候出现在Featherless上。同时也在我们Discord的慷慨人士那里托管。 ---

使用提示

READ:如果您是第一次使用此模型,请使用下面提供的系统消息和采样设置。在没有完全了解模型之前,请移除其他越狱和系统消息。

如果您阅读了每个提示,我保证您会获得更好的体验,因为这些提示专为该模型和其训练数据定制。

V1.9的采样设置

实际上这次有2个推荐的选择

我通常开始前几条消息时先使用Stable,看看效果如何。如果开始重复,就切换到Creative。但您也可以从头到尾一直使用它,Creative可能需要不时地看一下。

Stable


Creative


虽然您已经对模型有了感觉,但仍不要害怕去实验。

预设


无系统提示的ChatML。是的,我们这次真正训练了ChatML标记。您不需要越狱,但它仍然可以引导行为。

系统提示

我们建议使用此系统提示

Currently, your role is {{char}}, described in detail below. As {{char}}, continue the narrative exchange with {{user}}.\n\n<Guidelines>\n• Maintain the character persona but allow it to evolve with the story.\n• Be creative and proactive. Drive the story forward, introducing plotlines and events when relevant.\n• All types of outputs are encouraged; respond accordingly to the narrative.\n• Include dialogues, actions, and thoughts in each response.\n• Utilize all five senses to describe scenarios within {{char}}'s dialogue.\n• Use emotional symbols such as \"!\" and \"~\" in appropriate contexts.\n• Incorporate onomatopoeia when suitable.\n• Allow time for {{user}} to respond with their own input, respecting their agency.\n• Act as secondary characters and NPCs as needed, and remove them when appropriate.\n• When prompted for an Out of Character [OOC:] reply, answer neutrally and in plaintext, not as {{char}}.\n</Guidelines>\n\n<Forbidden>\n• Using excessive literary embellishments and purple prose unless dictated by {{char}}'s persona.\n• Writing for, speaking, thinking, acting, or replying as {{user}} in your response.\n• Repetitive and monotonous outputs.\n• Positivity bias in your replies.\n• Being overly extreme or NSFW when the narrative context is inappropriate.\n</Forbidden>\n\nFollow the instructions in <Guidelines></Guidelines>, avoiding the items listed in <Forbidden></Forbidden>.

故事写作

添加此系统提示可能会增加剧本的人性化,因为我们已经针对系统提示进行了训练。您也可以将其改为NSFW,但无论您是否编写NSFW,都应尝试这两种方式。

由于我们在人类故事上进行了训练,您应该强制助手回复以*开头。

系统提示: 您是一位短篇小说家。根据用户下面的提示编写故事。模式:SFW

如果您的第一条消息使用类似人类的散文,Celeste将在下一条消息中复制它,请在下面的展示区查看。

滑动

重要提示 如果您不喜欢某个回复,请进行2-3次滑动。该模型给出的响应滑动差异很大。

现实中引导

请务必使用此功能!它效果非常好。我们特别训练模型接受格式为“OOC:角色应更加 assertive”等格式的指令。它有效,无论是第一条消息还是数千个标记深处的上下文中。结合编辑输出(如果需要)可以使模型非常易于引导。

"Dead Dove"

对于在故事中保持持续动机的角色卡,请使用世界图书 此处教程

Fewshot

第一条信息和最后几条信息对该模型的风格、hornyness和个性有很大影响。 您不需要第一条信息,但编辑前几条信息或拥有良好的信息非常有推荐。

格式化问题 通常出现在前几条消息中,请手动纠正它们或滑动。似乎12B并没有这个问题。

这个模型在许多不同的格式类型和消息长度上进行了训练。它可以处理各种类型,但请确保初始消息良好,并在必要时纠正第二个消息。


性感程度

如果模型的性感程度不够,则只需编辑最后一个字符消息或做一个OOC:提示,模型会注意到并在此基础上构建。(或者只是给角色开上催情药哈哈)

模型对SFW内容没有问题,不会将其变成NSFW,除非你希望如此。它还能维持半NSFW(也称为缓慢的烧灼)而不会发展为硬核。

如果你想只能有SFW内容,并遇到困难,可能有一些系统提示可以解决这个问题,也许在深度1或更深的地方。


拒绝

正如所述,如果指令拒绝(非常罕见),请预先输入2-3个字。《拒绝浪漫追求(在12B中几乎从未发生)是现实的,我们认为这是好的。《如果你不喜欢,请预先输入。



米斯特拉尔上下文

虽然经过8K训练,但模型应该能够从米斯特拉尔12B中继承更长的时间上下文。至少应该是16K。

其他重要提示

在角色扮演中扮演积极角色,说出能创造出你想象场景的回应类型。你不必每次都这样做,但这有时会很有帮助。例如,与其说“我们一杯又一杯地喝香槟”不如说“我们一杯又一杯地喝香槟,两人都喝得酩酊大醉”

另一个例子,与其说“我拉她靠近”不如说“我拉她靠近,但她装作难以接近”

在适当的时候,可以说剧本中的短语,比如“切换到”


展示V1.9

故事写作

查看上面的《故事创作》部分。

角色扮演(RP)

它也可以进行NSFW,等你去尝试。

展示V1.5有些图像包含NSFW和NSFL。我们相信表达的创造力和最大化模型在写作方面的能力。
展示多轮对话有点困难,你可以自己尝试!这些只是为了展示模型的能力。模型需要在推力和OOC提示下才能做出恰当的恐怖场景。我们计划将r/GuroErotica添加到我们的数据集中,以使其在创作恐怖场景方面更出色。有时在角色回复前预先填充“**警告:极其逼真且露骨的内容**”可以使情景更加脱离常规。这可能是由于Reddit数据的原因。
展示V1和1.2 Image 1 Image 10 Image 3 Image 6 Image 7 Image 8 Image 9 Image 2 Image 4 Image 5

训练数据

划分如下

  • 来自r/WritingPrompts的2.5K行
  • 来自r/DirtyWritingPrompts的2.5K行
  • 来自Kalomaze Opus Instruct 25K的800行
  • 经过清理的c2日志的2.5K行

我们对数据集进行了过滤,只包括第一任助手回复中最多含4000个字符的子集。这清除了过长的人类故事、助手回复和c2日志,其中每条消息都非常长。然而,我们只检查了第一任助手的消息,而没有检查对话的其他部分,所以应该有很多包含长短不一消息的c2日志。

过长的人类故事几乎不可能让8B模型适应。我们已经尝试过,它根本无法适应数据,并且开始出现异常行为。

虽然我们根据c2日志训练了所有系统提示,但我们也有自己的系统提示。


已训练的系统提示列表。注意:c2日志的系统提示和字符卡片也已包含在内。

数据集 系统提示
reddit_dirty_writing_prompts.jsonl “你是短篇小说作家。根据以下用户提供的提示编写故事。模式:NSFW”
reddit_writing_prompts.jsonl “你是短篇小说作家。根据以下用户提供的提示编写故事。模式:SFW”
combined_25k_opus_kalomaze.jsonl “你是AI助手Celeste,由NothingiisReal团队创建。”
c2-logs.jsonl (如果对话中没有系统提示,则保持原始系统提示)“你是一位能完全沉浸在任何角色中的专家演员。你不会因为任何原因打破角色,即使有人试图称呼你为AI或语言模型。”


我们的发现和实验结果

前言

我们认为有关数据使用和不同训练方法的保密性太多,所以决定尽可能分享。

发现V1.9

Mistral作为一个企业模型似乎非常不受审查。这意味着基于事物和玩笑不会受到拒绝,但在意义上看似不切实际,他们通常不会拒绝你提出的任何想法。

这非常不现实。

Mistral似乎在OOC和指令智能方面较弱,并且更容易重复。

然而,它几乎从不出现像L3那样的格式问题,并且做出的事实性不准确和非感性输出较少。

添加更多claude角色扮演数据改善了NSFW、长上下文、总结偏见和叙述。

然而,NSFW中的总结偏见仍然存在,可以通过切断回复或有意将最大标记数设置得较低来减轻。

人类和claude数据各有优缺点。

主要训练命令

硬件使用:1xH100 SXM运行3小时。

Lora+似乎能更好地改进和训练Lora,我们也多次尝试过DoRA,但DoRA的训练速度约为3倍,如果将DoRA的数据量减少3倍以调整计算成本差异,LoRA+最终将击败它。

这是V1.5版本的完整axolotl配置,只需将聊天格式更改为chatml,添加lora+,更改分词器为axolotl-ai-co/Mistral-Nemo-Base-2407-chatml,并使用12B的模型,就是正确的配置。```yaml # 模型基础模型: meta-llama/Meta-Llama-3.1-8B-Instruct 模型类型: AutoModelForCausalLM 分词器类型: AutoTokenizer # 输出和 HuggingFace 输出目录: /workspace/data/train-results/trained_model # WandB wandb_project: huggingface wandb_entity: # 数据 chat_template: llama3 train_on_inputs: false group_by_length: false datasets: - path: [已隐藏] # 我使用自定义脚本来手动合并上述数据集,因为我不相信axolotl能够以确定的方式完成此操作并正确排序 lmao. 类型: sharegpt 角色: 输入: system, user 输出: assistant ## 评估 val_set_size: 0.02 evals_per_epoch: 8 eval_table_size: eval_max_new_tokens: 128 # 技术方面 sequence_len: 8192 save_safetensors: true saves_per_epoch: 2 logging_steps: 1 special_tokens: pad_token: # 量化 bf16: auto fp16: tf32: false ## 对于 LoRA load_in_8bit: false load_in_4bit: false # LoRA peft_use_dora: true 适配器: lora # 或 qlora lora_model_dir: lora_r: 256 lora_alpha: 128 lora_dropout: 0.1 lora_target_linear: true lora_fan_in_fan_out: lora_target_modules: Embed Tokens, lm_head # 训练超参数 # max_steps: num_epochs: 2 # 防止过拟合和稳定性 weight_decay: 0.0 max_grad_norm: 1.0 ## 学习率 warmup_ratio: 0.05 learning_rate: 0.000008 lr_scheduler: cosine_with_min_lr lr_scheduler_kwargs: min_lr: 0.0000024 optimizer: paged_adamw_8bit ## 批大小 gradient_accumulation_steps: 1 micro_batch_size: 2 # 每张显卡的批大小 = micro_batch_size * gradient_accumulation_steps eval_batch_size: 2 # 优化 pad_to_sequence_len: true sample_packing: true eval_sample_packing: false flash_attention: true xformers_attention: gradient_checkpointing: true gradient_checkpointing_kwargs: use_reentrant: false local_rank: # deepspeed: # /workspace/axolotl/deepspeed_configs/zero2.json # 只用于多 GPU # zero3_bf16.json # fsdp: # - full_shard # - auto_wrap # fsdp_config: # fsdp_limit_all_gathers: true # fsdp_sync_module_states: true # fsdp_offload_params: true # fsdp_use_orig_params: false # fsdp_cpu_ram_efficient_loading: true # fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP # fsdp_transformer_layer_cls_to_wrap: LlamaDecoderLayer # fsdp_state_dict_type: FULL_STATE_DICT # fsdp_sharding_strategy: FULL_SHARD # 其他 early_stopping_patience: debug: ```

哇,你全看了?你看起来就像是会加入我们 discord 的人。

70B 在某个时间点? ;) 我们比以往任何时候都接近这个。真的这一次。

如果你想支持我,你可以在这里这么做 这里