---
title: rewrite2-4b-bf16
canonical_url: "https://www.modelscope.cn/models/alkaid55555/rewrite2-4b-bf16"
md_url: "https://www.modelscope.cn/models/alkaid55555/rewrite2-4b-bf16.md"
repository: alkaid55555/rewrite2-4b-bf16
last_updated: 2026-10-25
license: apache-2.0
pipeline_tag: text-generation
tasks:
  - text-generation
model_type:
  - qwen3_5
architectures:
  - Qwen3_5ForConditionalGeneration
parameters: 4.5B
tensor_type:
  - BF16
library_name:
  - safetensors
language:
  - zh
downloads: 9
stars: 0
tags:
  - rewrite2
  - novel-rewrite
  - qwen3.5
  - 4b
  - bf16
---

# rewrite2-4b-bf16

> rewrite2-4b-bf16 - alkaid55555 在 ModelScope 开源的模型。Rewrite2 4B V12.5 rewrite-only

alkaid55555/rewrite2-4b-bf16 是 ModelScope 魔搭社区上的 4.5B 参数text-generation模型，采用 apache-2.0 许可。

- **Repository**: alkaid55555/rewrite2-4b-bf16
- **License**: apache-2.0
- **Tasks**: text-generation
- **Parameters**: 4.5B
- **Tags**: rewrite2, novel-rewrite, qwen3.5, 4b, bf16
- **Downloads**: 9
- **Stars**: 0
- **Last updated**: 2026-10-25

Source: https://www.modelscope.cn/models/alkaid55555/rewrite2-4b-bf16

---

# Rewrite2 4B · BF16

> 中文小说**改写专用** 4B 模型。Qwen3.5-4B + V12.5 rewrite-only LoRA 合并，只训练改写，没有扩写。
> 本仓库是未量化的 BF16 合并权重（2 个 safetensors 分片，约 9.1 GB / 8.45 GiB），作为 FP8 / NVFP4 / GGUF 的质量基准。

## 长度与切分

> **单段原文建议 500–1,200 汉字。** 1,200–1,500 汉字可用，但输出会更压缩、连续照抄和重复风险会上升；超过 1,500 汉字建议按场景/段落切成 500–700 字后再逐段输入。模型默认是**压缩式改写**，不是等长改写。
>
> 在 1,000–1,300 字的 heldout 小测里，改写率和 700–1,000 字基本一致；长输入的主要代价不是“改不动”，而是输出变短（约为原文的 0.6–0.9 倍）和连续照抄变多。

| 原文长度 | 建议 |
|---|---|
| ≤ 1,200 字 | 单段直接输入 |
| 1,200–1,500 字 | 可用；`max_tokens` 给到 1500–1600，抽查长度比和照抄 |
| > 1,500 字 | 按场景/段落切 500–700 字，逐段改写后拼接 |

## 必用提示词

这个模型是任务特化 SFT，不是通用润色助手。训练时只有一条 user 消息，没有 system prompt，也没有 thinking。请直接使用下面的固定提示词：

```text
你是一位小说编辑，正在帮作者改文。请把下面这段小说片段改写成自然、有作者个人风格的中文，保持情节走向、人物设定和主要事件不变。无论原文是否通顺、AI味是轻是重，都要重新组织语言，禁止连续照抄原文超过15字；原文越好，越要用同义改写而不是照搬。

原文：
```

拼接方式：`INSTRUCTION_rewrite.txt` 的内容 + 原文，直接作为一条 user 消息。仓库内附 `INSTRUCTION_rewrite.txt`。**不要**把 `enable_thinking` 当成开关：模板已经固定为空 `<think>\n\n</think>\n\n`，模型只输出正文。

## 推荐参数

| 项目 | 建议 |
|---|---|
| temperature | `0.7`；固定复现实验用 `0` |
| top_p | `0.9` |
| top_k | `50`（vLLM / llama.cpp 支持时） |
| max_tokens | 改写 1200；1,200–1,500 字输入用 1500–1600 |
| 重复惩罚 | `repetition_penalty=1.08` 起步；llama.cpp `--repeat-penalty 1.08` |
| 原文长度 | 单段 500–1,200 汉字；超过就切 |

看 `finish_reason`：`stop` 是自然收尾，`length` 是撞到上限，需要调大或切短。重复惩罚只能降低复读概率，不能完全消除。


## 快速开始（vLLM）

```bash
vllm serve /path/to/rewrite2-4B-v125-bf16 \
  --served-model-name rewrite2-4b \
  --trust-remote-code \
  --max-model-len 4096 \
  --gpu-memory-utilization 0.50
```

```python
from pathlib import Path
from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="EMPTY")
instruction = Path("INSTRUCTION_rewrite.txt").read_text(encoding="utf-8")
text = """把这里换成需要改写的小说原文。"""
response = client.chat.completions.create(
    model="rewrite2-4b",
    messages=[{"role": "user", "content": instruction + text}],
    temperature=0.7,
    top_p=0.9,
    max_tokens=1200,
    extra_body={"repetition_penalty": 1.08, "top_k": 50},
)
print(response.choices[0].message.content)
```

## 格式与显存

| 项 | 本仓库 |
|---|---|
| 版本 | BF16 合并权重 |
| 权重 | 约 9.1 GB（8.45 GiB），2 个分片 |
| 推理权重显存 | 约 8.5 GiB |
| 建议 | 16GB 级显卡可跑；24GB 更宽裕 |
| 推理栈 | vLLM / Transformers（Qwen3.5 架构） |

- `model-00001-of-00002.safetensors`、`model-00002-of-00002.safetensors`
- `model.safetensors.index.json`、`config.json`、`generation_config.json`
- `tokenizer.json`、`tokenizer_config.json`、`chat_template.jinja`
- `preprocessor_config.json`、`video_preprocessor_config.json`、`processor_config.json`
- `INSTRUCTION_rewrite.txt`、`README.md`、`SHA256SUMS`

## 训练概况

- 基座：`Qwen/Qwen3.5-4B`，revision `851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a`
- 数据：V12.5 clean，25,647 条纯 rewrite；2048 长度下可用 23,470 条
- 方法：LoRA rank 32、alpha 64、1 epoch、`max_length=2048`、completion-only loss
- 训练：2,934 steps，final train_loss 1.214，mean token accuracy 0.718
- 合并：`merge_and_unload()` 后导出 BF16；模板固定无思考

## 全部版本（4B 系列）

| 格式 | 体积 | Hugging Face | ModelScope |
|---|---:|---|---|
| BF16 合并 | 8.47 GiB | [rewrite2-4b-v125-bf16](https://huggingface.co/aikexue170/rewrite2-4b-v125-bf16) | [rewrite2-4b-v125-bf16](https://modelscope.cn/models/alkaid55555/rewrite2-4b-v125-bf16) |
| FP8 W8A8 | 5.15 GiB | [rewrite2-4b-v125-fp8](https://huggingface.co/aikexue170/rewrite2-4b-v125-fp8) | [rewrite2-4b-v125-fp8](https://modelscope.cn/models/alkaid55555/rewrite2-4b-v125-fp8) |
| NVFP4 W4A4 | 3.70 GiB | [rewrite2-4b-v125-nvfp4](https://huggingface.co/aikexue170/rewrite2-4b-v125-nvfp4) | [rewrite2-4b-v125-nvfp4](https://modelscope.cn/models/alkaid55555/rewrite2-4b-v125-nvfp4) |
| GGUF Q8_0 / Q4_K_M | 4.48 GB / 2.71 GB | [rewrite2-4b-v125-gguf](https://huggingface.co/aikexue170/rewrite2-4b-v125-gguf) | [rewrite2-4b-v125-gguf](https://modelscope.cn/models/alkaid55555/rewrite2-4b-v125-gguf) |

4B 是独立实验线，和 27B Rewrite2 权重不通用；27B 见 [rewrite2-27b-bf16](https://huggingface.co/aikexue170/rewrite2-27b-bf16)。

## 已知限制

- 4B 的容量有限，不要按 27B 的质量预期使用；复杂长段、多人物场景仍建议人工校对。
- 默认压缩改写：800–950 字输入的训练目标中位输出约 540 字（约 0.63 倍）；需要全文覆盖时请切段，并在提示词后明确要求覆盖全文。
- 有概率复读或死循环。部署时启用重复惩罚（建议 1.08 起步），同时设置硬性 `max_tokens` 和超时。
- 本版只训练了改写，**没有扩写能力**；不要使用扩写提示词。
- 视觉塔保留在权重里，但没有做图像训练；本仓库只保证文本改写。
- 低比特量化会放大压缩和复读倾向；Q4_K_M 比 Q8_0 更明显，正式使用前请按自己的文本验收。
- 不保证通用聊天、代码、数学、翻译或跨章节长篇一致性。
