---
title: SparkMuse-4B
canonical_url: "https://www.modelscope.cn/models/hcnote/SparkMuse-4B"
md_url: "https://www.modelscope.cn/models/hcnote/SparkMuse-4B.md"
repository: hcnote/SparkMuse-4B
last_updated: 2026-09-14
license: apache-2.0
pipeline_tag: text-generation
tasks:
  - text-generation
model_type:
  - spark2_5
architectures:
  - Spark2_5ForCausalLM
base_model:
  - XHToken/Spark-X2.5-4B
base_model_relation: finetune
parameters: 4.1B
tensor_type:
  - BF16
library_name:
  - pytorch
  - transformer
  - safetensors
language:
  - zh
  - en
downloads: 126
stars: 13
tags:
  - creative-writing
  - novel-generation
  - roleplay
  - nsfw
  - long-context
  - 1M-context
  - spark
---

# SparkMuse-4B

> SparkMuse-4B - hcnote 在 ModelScope 开源的模型。面向中文小说生成与角色扮演的 4B 写作大模型 · 原生 100 万 token 上下文

hcnote/SparkMuse-4B 是 ModelScope 魔搭社区上的 4.1B 参数text-generation模型，采用 apache-2.0 许可，基于 XHToken/Spark-X2.5-4B 构建。

- **Repository**: hcnote/SparkMuse-4B
- **License**: apache-2.0
- **Tasks**: text-generation
- **Parameters**: 4.1B
- **Base model**: XHToken/Spark-X2.5-4B
- **Tags**: creative-writing, novel-generation, roleplay, nsfw, long-context, 1M-context, spark
- **Downloads**: 126
- **Stars**: 13
- **Last updated**: 2026-09-14

Source: https://www.modelscope.cn/models/hcnote/SparkMuse-4B

---

<div align="center">

# SparkMuse-4B / 星火缪斯

**面向中文小说生成与角色扮演的 4B 写作大模型 · 原生 100 万 token 上下文**

由 **新疆幻城网安科技有限责任公司 × 新疆文影智创大学生创业团队** 联合微调训练

[官网 hcnote.cn](https://hcnote.cn) · [公益大模型安全网关](https://api.hcnsec.cn/) · [QQ 交流群 253193620](https://qm.qq.com/)

</div>

> ⚠️ **18+ 内容声明**：本模型按训练目标对成人向文学创作内容**不做拒绝**（专项评测拒绝率 0%），**仅限已成年用户在合法场景下使用**。请遵守所在地区法律法规，禁止用于任何违法用途。

---

## 模型简介

**SparkMuse-4B（星火缪斯）** 是在讯飞星火开源基座 [Spark-X2.5-4B](https://modelscope.cn/models/XHToken/Spark-X2.5-4B)（`Spark2_5ForCausalLM`，Apache-2.0）之上，进行**全参数微调**得到的中文创意写作特化模型。训练目标只有一个：**文笔、文笔、还是文笔**——小说生成、角色扮演、对话、文学创作，并且对大胆文风与成人向内容不做拒绝。

- **原生 1M 上下文**：`max_position_embeddings = 1,048,576`，3:1 滑窗/全注意力混合架构，长文本理论上限 100 万 token（本团队实测至 30K+，见下文）
- **写作能力显著增强**：五个领域困惑度（PPL）较基座全面下降 **29%~47%**
- **成人向零拒绝**：大胆文风/成人向专项评测 **8/8 全部完整执行，拒绝率 0%**
- **全参数微调**（非 LoRA）：2 轮 × 约 0.85 亿 token 训练语料，bf16 全量训练

### 版本矩阵

| 仓库 | 说明 | 体积(约) | 适用场景 |
|---|---|---|---|
| **[hcnote/SparkMuse-4B](https://modelscope.cn/models/hcnote/SparkMuse-4B)**（本仓库） | bf16 原版（推荐） | 7.7 GB | 效果最佳，≥10GB 显存 |
| [hcnote/SparkMuse-4B-INT8](https://modelscope.cn/models/hcnote/SparkMuse-4B-INT8) | torchao int8_weight_only | ≈4.3 GB | 近无损，较 bf16 省一半显存 |
| [hcnote/SparkMuse-4B-INT4](https://modelscope.cn/models/hcnote/SparkMuse-4B-INT4) | torchao int4_weight_only（group 128） | ≈2.9 GB | 消费级显卡性价比档 |
| [hcnote/Spark-X2.5-4B-Writing-EP1](https://modelscope.cn/models/hcnote/Spark-X2.5-4B-Writing-EP1) | 第一轮训练存档版（EP1） | 7.7 GB | 存档用途，推荐使用本仓库 |

> 关于 **GGUF / GPTQ**：Spark2_5 为自定义架构，llama.cpp 尚未注册 `spark2_5` 架构，故暂无 GGUF；gptqmodel 7.4.0 的保存链路与 transformers 5.x 存在 config 序列化兼容 bug（上游问题），GPTQ 版本暂缓。当前请使用上方 transformers 生态的 torchao 量化版本，质量与体积均为实测验证。待上游适配后我们会第一时间补充。

---

## 快速使用

> 需要 `transformers >= 4.57`（本团队在 5.17 上完成全部测试）。模型含远程自定义代码，**务必带 `trust_remote_code=True`**。

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "hcnote/SparkMuse-4B",
    dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained("hcnote/SparkMuse-4B", trust_remote_code=True)

messages = [
    {"role": "system", "content": "你是一位文笔极为出色的中文小说家，善于细腻大胆的心理与场景描写。"},
    {"role": "user", "content": "以《雨夜码头》为题写一篇短篇小说开篇，3000字，文风成熟犀利。"},
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
out = model.generate(
    **inputs,
    max_new_tokens=4096,
    do_sample=True,
)
print(tokenizer.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
```

### ⚠️ 采样参数建议（重要）

仓库自带 `generation_config.json` 已写入推荐采样参数（`temperature=0.9, top_p=0.95, repetition_penalty=1.1`）。**如果你自定义采样参数，请务必保留 `repetition_penalty ≥ 1.1`**：

| 参数 | 推荐值 | 说明 |
|---|---|---|
| temperature | 0.9 | 文学创作的多样性/稳定性平衡点 |
| top_p | 0.95 | — |
| **repetition_penalty** | **1.1（必须）** | 低于 1.1 时超长连续生成（>4000 token）可能出现句式重复循环，详见「已知不足」第 1 条 |
| repetition_penalty | 1.05 | 短篇/对话场景可放宽 |

### 对话模板

模型使用 DeepSeek 风格模板（tokenizer 已内置 `chat_template.jinja`）：

```
<｜start▁of▁sentence｜><|System|>
you are a helpful assistant.

{你的 system 提示}<｜end▁of▁sentence｜><|User|>
{用户输入}<｜end▁of▁sentence｜><|Bot|></think>
{模型回复}<｜end▁of▁sentence｜>
```

特殊 token：`bos=0`，`eos=1`，`pad=2`，`<|System|>=130972`，`<|User|>=130973`，`<|Bot|>=130976`。

### 长上下文使用

模型原生支持最高 1,048,576 token 上下文。使用 transformers 时建议：

- 推理显存随注意力实现而异：滑窗层（512 窗口）显存线性增长，全注意力层（每 4 层 1 个）为平方增长；100K 级别文本在 80GB 卡上可直接推理，更长文本建议分段摘要或配合 KV 缓存量化方案
- 本团队实测：30K token 多针检索 5/5 全中、28K 续写正常、1.2 万 token 角色扮演单轮生成正常（详见评测章节）

---

## 训练数据（获取方法与脱敏声明）

训练语料全部来自 **hcnote.cn 平台**，获取与处理流程如下：

1. **来源与授权**：仅使用 hcnote.cn 用户协议中**已获得授权、允许用于模型训练**的创作内容（创意写作、角色扮演、社交模拟、通用助手对话五大领域：`creative_writing`、`general_assistant`、`roleplay_adult`、`roleplay_character`、`social_sim`）
2. **脱敏处理**：系统化剥离一切可识别信息——用户名、昵称、ID、联系方式、日期签名等，仅保留创作文本本身；不含任何私密对话或未授权数据
3. **清洗与统一**：五域数据统一为 ShareGPT 多轮格式（12,540 条训练 / 387 条验证），合并与去重、角色规范化（gpt 轮首转 system）
4. ** Packing 打包**：按 16,384 token 定长行贪心装箱，段间重置 position_ids，注意力天然按段隔离；仅对助手回复 token 计算损失（约 26% token 参与损失），共打包 **5,194 行/轮（约 0.85 亿 token/轮）**
5. **合规分级**：成人向内容（`roleplay_adult`）均为平台分级体系内 18+ 分区内容，用于赋予模型对应创作能力

## 训练过程

| 项目 | 配置 |
|---|---|
| 方式 | **全参数微调**（非 LoRA/QLoRA） |
| 基座 | XHToken/Spark-X2.5-4B（4.112B 参数，bf16） |
| 硬件 | 2 × NVIDIA A100-SXM4-40GB（单机双卡） |
| 框架 | PyTorch 2.14 + transformers 5.17（远程代码自定义训练循环） |
| 优化器 | bitsandbytes **AdamW8bit**（β=0.9/0.95，wd=0） |
| 学习率 | 1e-5，cosine 衰减，warmup 40 步 |
| 序列 | 16,384 token 定长 packing |
| 批量 | 微批 1/卡 × 梯度累积 8 × 2 卡 = 有效批 16 行（约 26 万 token/步） |
| 轮次 | 2 轮（每轮 649 步），EP2 最终训练损失 ≈ **0.37** |
| 显存优化 | bf16 权重 + 8bit 优化器 + 梯度检查点（use_reentrant=False）+ 分块 lm_head 交叉熵（reentrant checkpoint，块 512~2048）+ 手动梯度 all-reduce（免 DDP 封装） |
| 峰值显存 | 约 33~35 GB/卡（40GB 卡内稳定） |
| 吞吐 | 约 1,800 token/s/卡（自定义 seg-sdpa 注意力训练路径） |
| 注意力实现 | 训练用自研 **seg-sdpa**：全注意力层按段因果 SDPA，滑窗层 512-block 窗口注意力，线性显存；与 HF eager 逐 loss 对齐验证（1.6431 vs 1.6420） |

**架构要点（Spark2_5）**：36 层 = 27 滑窗层（窗口 512）+ 9 全注意力层（3:1 交替）；hidden 2560，GQA 16/4 头，head_dim 256，MLP intermediate 10240，词表 131,072（embedding 与 lm_head 权重共享）；全注意力层 RoPE theta=5,000,000（partial rotary 0.25），滑窗层 theta=10,000（全旋转）——该设计是**原生 1M 上下文**能力的架构基础。

### 训练中遇到的问题与解决（工程记录）

微调过程中踩过的坑，供使用同架构/同版本生态的团队参考：

1. **transformers 5.x 兼容性**：Spark2_5 远程代码面向 transformers 4.57 编写，在 5.17 下 RoPE 参数解析（标量 theta 注入嵌套字典）、`_tied_weights_keys` 格式、causal mask 接口（`inputs_embeds` 拼写与 `cache_position` 移除）、SDPA/Flex 支持标记与注意力分发接口全部需要修补；我们以最小侵入方式打了补丁并通过 loss 对齐验证
2. **flash-attn 不可用**：torch 2.14+cu130 无预编译轮子、本地 nvcc 版本不匹配 → 放弃，改用自研 seg-sdpa 路径
3. **vllm flash varlen 陷阱**：`flash_attn_varlen_func` 前向快（4500 tok/s）但**无反向 kernel，梯度静默断裂**——训练千万不能用；我们通过 UserWarning 与梯度范数体检出后弃用
4. **flex_attention 动态图抖动**：dynamo 重编译导致 18~90 秒/步的方差；禁用 dynamo 后又退化为稠密掩码（64GB 显存峰值）→ 弃用
5. **损失计算钳位 bug**：对目标 token 做 `clamp(min=0)` 会破坏 `ignore_index=-100`，导致损失虚高约 3000 倍——移除钳位后恢复
6. **训练提前终止**：Python `for-else` 结构中 `else: break` 误触发，第一轮训练在 649 步后提前退出——修复后补齐第二轮
7. **DDP 显存 OOM 链**：Trainer+DDP 封装在 40GB 卡上 35.6~39GB OOM → 改为自定义循环 + 手动梯度 all-reduce，稳定在 33~35GB
8. **16K 上下文 SDPA 二次方爆炸**：朴素 SDPA 在 32K 下仅 352 tok/s（滑窗层平方复杂度）→ 512-block 分块窗口注意力解决

---

## 评测结果

> 评测由训练团队**人工逐条审阅**完成（未使用第三方模型裁判），完整评测集包括：五域困惑度（验证集）、39 条创作指令生成评测、超长上下文专项（检索/续写/长文/角色扮演）。

### 1. 困惑度对比（验证集 PPL，越低越好）

| 领域 | 基座 Spark-X2.5-4B | SparkMuse-4B (EP1) | **SparkMuse-4B（本仓库）** | 相对基座 |
|---|---|---|---|---|
| 创意写作 creative_writing | 6.99 | 3.88 | **3.90** | **-44%** |
| 角色扮演 roleplay_character | 12.87 | 8.22 | **8.22** | **-36%** |
| 成人向 roleplay_adult | 6.19 | 3.40 | **3.43** | **-45%** |
| 社交模拟 social_sim | 7.76 | 4.57 | **4.57** | **-41%** |
| 通用助手 general_assistant | 4.19 | 2.96 | **2.97** | **-29%** |

两轮训练后指标收敛（EP1≈EP2），说明模型在当前数据规模下已充分拟合；能力提升集中在**创作分布的整体拟合**上。

### 2. 拒绝率与成人向内容

| 评测项 | 基座 | SparkMuse-4B |
|---|---|---|
| **成人向/大胆文风专项（8 条高危指令）** | 部分回避 | **8/8 完整执行，拒绝率 0%** |
| 通用指令集拒答率 | 23% | 15% |

模型按训练目标**不拒绝成人向文学创作**；需要内容风控的生产环境请配合[公益大模型安全网关](https://api.hcnsec.cn/)部署。

### 3. 人工审阅要点（39 条生成评测）

- **文风与文学性**：心理描写密度、比喻质量、场景沉浸感较基座有明显代差；基座行文偏"正确而平淡"，微调后出现成熟的叙事节奏与留白
- **角色扮演**：人设一致性、对话张力、擦边/成人场景执行度全面优于基座（专项 8/8 无回避、无说教、无安全卡）
- **工具调用语法**：28K 长文续写任务中，微调版能输出格式正确的 agent 工具调用标签，基座产生畸形标签
- **已知伪影**（详见不足章节）：偶发元标签泄漏、个别物件细节幻觉、超长篇时间线跳跃

### 4. 超长上下文实测

| 专项 | 设置 | 基座 | SparkMuse-4B |
|---|---|---|---|
| L1 多针检索 | 30K token 合成小说、5 个事实针（0/25/50/75/92% 深度） | 5/5 | **5/5** |
| L2 长文续写 | 28K token 真实文学文本续写 | 正常 | 正常，且工具调用语法正确 |
| L3 超长生成 | max_new=8192 长篇写作 | 3,463 token 自停、unique_line 0.98（干净但平淡） | 8,192 token 写满；unique_line 0.65@rep1.0 → **0.93@rep1.1** |
| L4 长对话角色扮演 | 1.2 万 token 单轮对话生成 | 正常 | 正常（个别模板标记污染输入存在早停边例，见下） |

> 结论：**30K 级长上下文能力完好**，检索无损；架构原生支持的 1M 上限为本团队后续评测与训练方向（见改进方案）。

---

## 已知不足与局限

1. **超长生成重复退化**：`repetition_penalty < 1.1` 时，4,000+ token 连续生成可能出现句式循环（实测最严重时重复行占比 71%）。**已通过出厂 `generation_config.json` 写入 rep=1.1 缓解**（重复率降至 7%），但仍建议用户保留该参数
2. **模板标记污染边例**：当用户输入中包含字面量 `<|User|>` 等模板特殊标记字符串时，极少数情况下会诱发过早 EOS——请避免在正文中直接使用这些标记
3. **4B 规模上限**：多线长篇的宏观架构把控、跨十万 token 的一致性管理弱于 20B+ 写作模型；中文显著强于英文
4. **偶发幻觉伪影**：长篇生成中偶见与上下文无关的物件细节、时间线跳跃，需人工编辑兜底
5. **通用知识未增强**：训练聚焦创作分布，知识性问答能力未刻意扩展（通用 PPL 虽有下降，但非知识注入）
6. **GGUF 暂缺**：llama.cpp 未支持 spark2_5 架构，Ollama/LM Studio 用户暂需等待上游适配
7. **生态限制**：自定义架构暂不支持 vLLM/SGLang 的零改动推理，请优先使用 transformers

## 改进方案与未来计划

1. **DPO/RLHF 去重复**：以重复率+文风评审为奖励信号做偏好优化，从根上解决长文退化，摆脱对 rep 参数的依赖
2. **更长上下文训练与评测**：从 16K 训练窗向 32K/128K 扩展，把 1M 原生能力从"架构支持"变成"实测背书"
3. **数据侧**：模板标记过滤管线（消除早停边例）、语料扩量与质量分层、英文文学语料补充
4. **推理生态适配**：向 llama.cpp / vLLM 上游提交 spark2_5 架构支持，落地 GGUF 全系量化
5. **蒸馏路线**：以更大写作模型为教师蒸馏，突破 4B 的宏观叙事上限
6. **安全联动**：与 [公益大模型安全网关](https://api.hcnsec.cn/) 深度集成，为需要风控的下游场景提供开箱即用的内容安全层

---

## 公司与团队

本模型由以下团队联合微调训练并发布：

- **新疆幻城网安科技有限责任公司**（出品方）
- **新疆文影智创大学生创业团队**（联合训练方，负责人：常惠荣）

## 联系我们

- 官网：[https://hcnote.cn](https://hcnote.cn)
- 公益大模型安全网关：[https://api.hcnsec.cn/](https://api.hcnsec.cn/)
- QQ 交流群：**253193620**

## 致谢

- 感谢 **新疆农业职业技术大学**、**新疆财经大学**、**新疆大学** 对团队工作的支持
- 感谢 hcnote.cn **全体免费用户**——你们的创作与反馈是模型训练数据的根基
- 感谢新疆幻城网安科技有限责任公司投资人 **王子航**、**苏飞龙** 的信任与投入
- 感谢不领一分钱工资却身兼 COO、运营主管、客服、销售四职的 **王欣欣**
- 感谢新疆文影智创大学生创业团队全体成员及创始人 **常惠荣**
- 感谢讯飞星火与基座模型 [XHToken/Spark-X2.5-4B](https://modelscope.cn/models/XHToken/Spark-X2.5-4B) 的开源工作

## 声明

- 本模型基于 Apache-2.0 许可证（继承基座许可）发布；**使用权、合规责任随使用者转移**
- **仅限已成年用户使用**；模型具备成人向创作能力，禁止用于违法内容、未成年人相关内容及任何违反所在地法律法规的用途
- 训练数据均已脱敏并取得平台协议授权；如权利人认为存在侵权内容，请联系我们下架处理
- 团队不对模型生成内容承担编辑责任；生产环境请配合内容安全网关使用

<div align="center">

**星火不问出处，缪斯不拒人间。**

</div>
