LongWriter-Zero: Mastering Ultra-Long Text Generation via Reinforcement Learning

Paper: arXiv:2506.18841 Model/Data: THU-KEG/LongWriter-Zero-32B, THU-KEG/LongWriter-Zero-RLData Code search: 代码搜索未找到开源实现(未找到 LongWriter-Zero 训练代码);相关官方仓库 THUDM/LongWriter 仅提供 LongWriter/LongWriter-6K 的部署、训练与评测代码,并在 README 中链接 LongWriter-Zero。 Related code reference: main @ 447539b (2025-06-24), repo THUDM/LongWriter(相关但非 LongWriter-Zero 训练实现)。

1. 一句话结论

LongWriter-Zero 的核心贡献是把“超长文本写作”从依赖合成长答案的 SFT,改成从 Qwen2.5-32B base 出发、通过 GRPO 和三类写作奖励直接激励模型学会长篇规划、长度控制和结构化输出;最终模型在 WritingBench 上达到 8.69、在 Arena-Write 上达到 1447 Elo,优于 LongWriter-style SFT,也略高于 Qwen3-235B-A22B 的 WritingBench 8.68 与 DeepSeek-R1/Qwen3 的 1343 Elo。

最需要注意的细节是,“Zero”不是完全无监督:策略模型没有模仿人工或合成长答案,也没有走传统 SFT 路线;但训练仍然依赖奖励模型、QwQ-32B 生成的长度区间、Writing RM 的偏好数据,以及最终版本中的 30B token continual pretraining。因此它更准确的定位是“无长答案示范的 RL 写作策略训练”,而不是“无任何标注/模型监督”。

2. 背景与问题定义

长文本生成的痛点并不只是“上下文窗口够不够长”。很多模型即使能够生成数万 token,也会在后半段出现结构松散、反复套话、长度失控、段落间逻辑断裂、格式不遵循、结尾草率等问题。LongWriter 系列先前的解法是“teaching”:构造或蒸馏长篇输出,再用 SFT 让模型模仿这些长答案。这个方案可行,但有三类瓶颈:第一,长答案数据昂贵,且合成样本受教师模型风格限制;第二,最大似然训练更像局部 token 模仿,缺少对全局结构、目标长度、叙事节奏和格式一致性的显式优化;第三,长篇 SFT 数据容易带来固定模板,例如机械分节、统一语气、过强的“作文腔”。

论文把问题重新表述为一个 RL 任务:给定真实用户写作指令 ,策略模型输出长文本 ,奖励函数不再比较某个唯一参考答案,而是从长度是否满足任务、写作质量是否自然、格式和重复度是否可靠三个维度评价输出。这个建模方向的关键好处是可以直接优化“长文本的全局可读性”,而不是依赖参考长答案。它也把长文本写作与 DeepSeek-R1-Zero 这类 reasoning RL 类比起来:数学题有可验证答案,写作没有;因此写作 RL 的难点从“如何定义正确答案”转为“如何设计不会被轻易 hack 的多维奖励”。

图 1 概括了论文对 SFT 与 RL 的对比:SFT 依赖合成长答案,优化目标是复现训练分布;RL 则用奖励信号驱动模型自己探索更好的长文结构。这个图的价值不在于流程复杂,而在于把论文的立场说清楚:对于开放式长文本,固定参考答案不是唯一甚至不是最自然的监督信号。

Figure 1 解读:左侧的 SFT 路线把高质量长文看作需要先被教师模型或人工写出、再让学生模仿的对象;右侧的 RL 路线把长文质量拆成可奖励的属性,让模型通过采样、打分和策略更新逐步改进。这里隐含的假设是:长文质量可以通过若干代理奖励逼近,且这些奖励比合成答案本身更可扩展。

3. 方法:从 base model 到 LongWriter-Zero

3.1 总体框架

LongWriter-Zero 的最终管线由三步组成。第一步以 Qwen2.5-32B-Base 为起点。第二步在最终强版本中加入 30B token 的 writing-centric continual pretraining,增强模型的基础写作先验;消融中也保留不做 continual pretraining 的 base 版本,用来回答 RQ3。第三步使用 GRPO 做 RL,训练时比较两类 prompt:一种让模型直接回答,另一种强制使用 <think>...</think><answer>...</answer> 协议,后者对应 test-time scaling / long CoT 的写作版本。

论文把探索拆成三个研究问题:RQ1 是奖励怎么设计;RQ2 是写作任务是否也受益于显式思考;RQ3 是在 RL 前做 writing-centric continual pretraining 是否能把训练推到更高天花板。最终答案分别是:需要长度、写作质量和格式/重复度三类奖励;显式 <think> 虽然早期学习更慢,但后期上限更高;continual pretraining 提供更好的写作先验,使模型从更高初始点开始并达到更高 reward ceiling。

3.2 GRPO 训练设置

策略优化采用 GRPO。对同一个 prompt ,旧策略采样一组输出 ,每个输出得到奖励 ,再在组内标准化为优势: 随后最大化 clipped objective: 论文给出的具体训练配置是:基于 Qwen2.5-32B base;使用 Megatron RL 框架;8 nodes,每个节点 8 × H800 GPU;每步 batch size 为 32 training prompts,并采样 32 concurrent trajectories;最大输出长度 14,000 tokens;采样温度 ,top-p=1.0;;根据 DAPO 的经验设置 ,即移除 KL penalty。由于未公开 LongWriter-Zero 训练脚本,这些训练数字来自论文 §2.1 / arXiv source,而不是代码配置文件。

训练 prompt 来自两个真实指令数据源:英文 WildChat-1M 和中文 LMSYS-Chat-1M。为了只保留适合长文本生成的任务,作者用 QwQ-32B 过滤 query,并让 QwQ-32B 预测任务所需的合理字数/词数范围。这个过滤步骤很关键,因为如果把翻译、短问答、闲聊等任务混入 RL,长度奖励会把模型推向错误目标。

3.3 三类奖励模型

第一类是 Length RM。它不是简单奖励“越长越好”,而是先为 query 预测一个目标范围 ,例如 3000 词 essay 对应 。输出长度落在区间内得 1;低于下限按 线性惩罚;高于上限按 线性惩罚。这个设计把“满足需求”而不是“无限延长”作为奖励目标,避免模型为了得分而盲目扩写。

第二类是 Writing RM。该奖励使用 Qwen2.5-72B 作为 backbone,在人工偏好数据 上训练,目标是 Bradley–Terry 形式的 pairwise preference loss: Writing RM 评估的是整体写作质量,包括流畅性、连贯性、帮助性和结构自然程度。它解决的是 Length RM 无法覆盖的问题:一篇文章可以长度正确但内容空洞,也可以段落很多却没有观点推进。论文也承认这个 RM 并不覆盖所有质量维度,尤其细粒度事实性,因此它是任务相关 proxy,而不是完整的人类价值函数。

第三类是 Format RM。它检查输出是否严格包含一个 <think> 段和一个 <answer> 段,并且惩罚重复内容。重复惩罚对长文本 RL 尤其重要,因为模型很容易通过同义改写、段落循环或主题回环来满足长度要求。如果没有 format/repetition 约束,Length RM 与 Writing RM 可能共同鼓励一种“看起来很长、局部还通顺、但整体重复”的作弊策略。

最终奖励不是直接把三类 reward 数值平均,而是先把每个 reward component 在组内归一化到可比尺度,再在 advantage 层平均: 这个选择非常合理:长度、格式和写作质量的原始分数分布可能差异很大,直接加权会让某个尺度较大的子奖励主导训练。组内归一化后再平均,相当于让三类奖励都以“在当前采样组内谁更好”的相对优势进入 GRPO,从而降低尺度不匹配。

3.4 显式思考与 test-time scaling

论文的 RQ2 问的是:长文本写作是否也能像数学推理一样,从显式 thinking step 中获益?作者比较了 Direct-Answer 和 Think Prompt 两种设置。Think Prompt 要求模型先在 <think> 中规划写作过程,再在 <answer> 中输出最终文本。早期训练中,Base-think 的 Writing RM 接近零,因为模型需要先学会标签结构和思考段用途;但随着 RL 推进,Base-think 最终超过 Base-nothink,在 Writing RM、Length RM 和 Arena-Write 上都有更高上限。

直觉上,长文写作确实需要“先想再写”:模型需要决定文章结构、章节顺序、论点分配、哪些细节放在哪些段落、如何控制结尾长度。直接回答会让模型在生成过程中边写边决定结构,容易前密后疏或中途偏题;显式 planning 则给了模型一个可被奖励塑形的中间空间。这个中间空间不是为了把整篇文章先草拟一遍,而是让模型学会全局布局。

图 2 和图 3 展示了三个训练设置的曲线:Base-nothink、Base-think、Continual-Pretrain-think。Base-nothink 能从 reward 中学到一些长文能力,Arena-Write 从约 200 提升到 600+;Base-think 后期明显更强,Arena-Write 约到 1200;Continual-Pretrain-think 则进一步到接近 1400。

Figure 2 解读:三组曲线分别对应 Writing RM、Length RM 和非过长生成长度。关键趋势不是某个单点,而是三者同时改善:模型不仅更会写,也更会控制长度,同时没有单纯把输出拉到过长。Base-think 的早期滞后说明格式学习有成本,但后期更高的上限说明规划空间值得。

Figure 3 解读:Arena-Write 的 Elo 曲线把 reward 曲线转化为更接近最终用户偏好的写作质量信号。continual pretraining 版本从更高起点开始,说明写作语料预训练提供了可复用先验;Think Prompt 版本高于 no-think,说明规划不是装饰,而是实际转化为 pairwise preference 优势。

3.5 Continual pretraining 的作用

最终 LongWriter-Zero-32B 在 RL 前加入 30B token continual pretraining。语料是中英文长篇写作数据,包括中文小说、英文 fiction/non-fiction、中文非虚构、web novels/blogs、行业报告、学术论文,以及 1% 来自 Base-think 生成的 long CoT samples。Appendix A.4 说明所有来源经过去重、语言过滤,并截断到 32,768 token 后再 up-sampling。表 2 的比例是:Long_zh_fiction 40%、Long_en 30%、Long_zh_nonfiction 15%、Online_information 8%、Long_finance 5%、Long_essay 1%、Ours_think 1%。

这个设计的作用不是替代 RL,而是改变 RL 的初始策略分布。没有写作先验的 base model 可以通过 reward 慢慢学,但探索空间太大;经过 30B token 长文继续预训练后,模型更熟悉长段落、叙事结构、报告格式和跨段落连贯性,RL 只需要把这些能力对齐到“按用户要求写得足够长、足够好、足够规整”的目标。论文结果显示,continual pretraining 在 WritingBench 上尤其关键:去掉它,8.69 会降到 8.12;而去掉 thinking 对 Arena-Write 更伤,从 1221 降到 668。

4. 实验结果与证据

4.1 Benchmark 设置

论文使用三类评测。WritingBench 包含 1200 个真实写作 prompt,覆盖创意、说服、信息、技术等六大域与 100 个子域,每个 query 有五条 query-specific criteria,并使用基于 50K 人类标注样本微调的 Qwen2.5-7B critic;Arena-Write 是作者构造的 100 条真实写作指令,40% 要求超过 2000 词,用 pairwise win rate 和 Elo 监控训练过程;Human-in-the-loop win-rate evaluation 则用 200 条真实用户指令,对比 Qwen3-235B-A22B、DeepSeek-V3、DeepSeek-R1、Llama-4-Scout、Claude-Sonnet-4、Gemini-2.5-Pro-0506 等强基线,并同时用 GPT-4.1 与人工评估。

4.2 主结果

在 WritingBench 主表中,LongWriter-Zero-32B 的平均分为 8.69,是表内最高;Qwen3-235B-A22B 为 8.68,DeepSeek-R1 为 8.55,Claude-Sonnet-4 为 8.60。领域上,LongWriter-Zero 在 Academic & Engineering 8.7、Finance & Business 8.8、Politics & Law 8.8、Education 8.9、Advertising & Marketing 8.6(并列)表现最好;Literature & Art 为 8.4,略低于 DeepSeek-R1 的 8.6。需求维度上,Style R1 为 8.7、Format R2 为 8.7、Length R3 为 8.6,说明模型不是只靠拉长输出得分。

Arena-Write 上,LongWriter-Zero 达到 1447 Elo,DeepSeek-R1 和 Qwen3-235B-A22B 都是 1343,Claude-Sonnet-4 为 1185,GPT-4o-2024-11-20 为 947。这个结果很有说服力,因为 Arena-Write 是 pairwise preference,不完全依赖 WritingBench 的单一 critic。Appendix 的 LongWriter-on-32B SFT baseline 也提供了更直接比较:Qwen2.5-32B 用 LongWriter synthetic data 做 SFT 后 WritingBench 为 8.08、ArenaWriter ELO 为 964;LongWriter-Zero-32B 分别是 8.69 和 1447,提升 +0.61 / +483。

Figure 4 解读:这张图直接比较同一 base / continual pretrain 初始化下的 SFT 与 RL。SFT 虚线受合成数据质量限制,很快触顶;RL 实线可以随 reward feedback 继续提升。尤其在 continual pretrain 初始化上,RL 的提升空间明显更大,说明“更强初始写作模型 + RL 激励”比“更强初始写作模型 + 合成答案模仿”更适合开放式长文。

4.3 人类与 GPT-4.1 win-rate

图 5 给出六个自动评审 donut chart 和两个人工评审 chart。作者报告 LongWriter-Zero 相对强推理模型有接近 80% 的胜率趋势,尤其相对 DeepSeek-R1/Qwen3-235B 这类 100B+ 级别模型仍有优势。该结果的重点不是证明 32B 模型在所有任务上全面强于 100B+,而是说明在“明确要求长篇写作”的分布上,专门优化的 RL 写作模型可以超过通用推理模型。

Figure 5 解读:donut 图的价值在于排除了只看平均分的偏差。长文任务中,不同评审可能偏好不同风格,pairwise 结果可以显示模型是否在多数 query 上稳定胜出,而不是少数高分样本拉高均值。人工评审只覆盖 DeepSeek-R1 和 Qwen3-235B-A22B 两个对手,范围有限,但能验证 GPT-4.1 评审方向不是完全虚假的。

4.4 Thinking token 动态

图 6 展示 <think> token 长度在 RL 过程中的变化。与数学推理不同,写作任务中的思考长度存在自然饱和点:当 planning 足够生成高质量文本后,再继续增加思考可能会占用上下文窗口,甚至让模型在思考段预写正文,从而降低最终输出质量。因此 Base-think 和 Continual-Pretrain-think 都会收敛到一个任务最优 thinking length,而不是无限增长。

Figure 6 解读:continual pretraining 版本的 thinking length 稍长,说明更好的写作先验让模型愿意进行更细的结构规划;但两条曲线都趋于平台,说明“思考越长越好”不是写作 RL 的正确结论。对部署者来说,这意味着 max_new_tokens 和 stop criteria 要给 <think> 留空间,但不应鼓励无界思考。

4.5 额外结果

Appendix A.7 显示 14B 版本也有效:Qwen2.5-14B-Instruct 在 WritingBench/ArenaWriter ELO 上为 7.60 / 744,LongWriter-Zero-14B 为 8.49 / 1198,提升 +0.89 / +454。这说明方法不只是在 32B 上凑巧有效,而是在更小规模也能显著改善长文生成。Appendix A.9 的 LongBench-Write 上,LongWriter-Zero-32B 得到 ,高于 LongWriter-9B-DPO 的 84.0 / 82.6 / 85.4,也高于 Claude 3.5 Sonnet 的 80.7 / 73.7 / 87.7。

5. 代码、数据与可复现性检查

5.1 代码搜索结果

我进行了强制代码搜索:"LongWriter-Zero" GitHub"LongWriter-Zero" "github.com""LongWriter-Zero" "THU-KEG""LongWriter-Zero" code。结果显示官方发布渠道主要是 Hugging Face model 与 dataset;GitHub 上可确认的相关官方仓库是 THUDM/LongWriter,但该仓库主体是 ICLR 2025 LongWriter / LongWriter-6K 的部署、SFT 训练与评测代码,只是在 README 中加入 LongWriter-Zero 的模型和论文链接。未找到 LongWriter-Zero 的 GRPO 训练脚本、reward model 训练脚本、Megatron RL 配置或 Arena-Write 评测代码。

因此本笔记不把 THUDM/LongWriter 当作 LongWriter-Zero 的源码实现,只把它作为相关官方仓库记录:main@447539b,commit date 2025-06-24,message 为 “Update README.md”。HF model card 提供了推理 quick start,HF dataset card 提供了 LongWriter-Zero-RLData,包含 8.61k rows,字段包括 idquerylabelinput,其中 label 是长度范围标签,input 是带思考/回答协议的输入模板。

Paper ConceptSource File / ArtifactKey Class / Function / Field说明
LongWriter-Zero 训练实现代码搜索未找到开源实现N/A未公开 GRPO/Megatron RL/reward model 训练代码
模型权重与 tokenizerHF THU-KEG/LongWriter-Zero-32BAutoModelForCausalLM.from_pretrained, AutoTokenizer.from_pretrained可用于推理;model card 提供 <think>/<answer> stop strings 示例
RL 数据HF dataset THU-KEG/LongWriter-Zero-RLDataquery, label, input8.61k rows;长度区间标签用于训练/控制长文任务
相关 LongWriter 仓库THUDM/LongWriter, main@447539btrain/, vllm_inference.py, README相关但非本文 RL 训练实现
训练配置数字arXiv paper/source §2.18 nodes × 8 H800, batch 32 prompts, 32 trajectories, max output 14k, T=0.8, top-p=1.0, ε=0.2, β=0因未开源训练脚本,只能引用论文配置

5.2 伪代码:LongWriter-Zero 训练管线

# Pseudocode reconstructed from paper and released HF artifacts; no public training implementation found.
base_policy = load_model("Qwen2.5-32B-Base")
if use_continual_pretraining:
    corpus = mix_long_form_corpus({
        "Long_zh_fiction": 0.40,
        "Long_en": 0.30,
        "Long_zh_nonfiction": 0.15,
        "Online_information": 0.08,
        "Long_finance": 0.05,
        "Long_essay": 0.01,
        "Ours_think": 0.01,
    })
    corpus = deduplicate_language_filter_truncate(corpus, max_seq_len=32768)
    policy = continual_pretrain(base_policy, corpus, total_tokens=30_000_000_000)
else:
    policy = base_policy
 
queries = sample(WildChat_1M_en, LMSYS_Chat_1M_zh)
queries = [q for q in queries if QwQ_32B_predicts_long_writing_task(q)]
length_ranges = {q: QwQ_32B_predict_length_range(q) for q in queries}
 
for step in rl_steps:
    batch = sample_batch(queries, size=32)
    grouped_outputs = []
    for q in batch:
        prompt = format_with_think_answer_protocol(q)  # or direct-answer in ablation
        outputs = sample_policy(policy, prompt, trajectories=32, max_new_tokens=14000, T=0.8, top_p=1.0)
        grouped_outputs.append((q, outputs))
 
    for q, outputs in grouped_outputs:
        rewards = []
        for o in outputs:
            r_len = length_reward(o, target_range=length_ranges[q])
            r_write = writing_rm_score(q, o)
            r_format = format_and_repetition_reward(o)
            A_final = mean(normalize_groupwise(r_len), normalize_groupwise(r_write), normalize_groupwise(r_format))
            rewards.append(A_final)
        policy = grpo_update(policy, outputs, rewards, epsilon=0.2, beta_kl=0.0)

5.3 伪代码:Length RM 与 Format RM

def length_reward(output, target_range, L_max):
    L_lower, L_upper = target_range
    n = count_words_or_chinese_chars(output)
    if L_lower <= n <= L_upper:
        return 1.0
    if n < L_lower:
        return n / L_lower
    return (L_max - n) / (L_max - L_upper)
 
def format_reward(output):
    has_one_think = count_tag_pair(output, "think") == 1
    has_one_answer = count_tag_pair(output, "answer") == 1
    think_before_answer = tag_order_is_valid(output, "think", "answer")
    repetition_penalty = semantic_overlap_penalty(output) + ngram_repetition_penalty(output)
    return structure_score(has_one_think, has_one_answer, think_before_answer) - repetition_penalty

5.4 推理协议

HF model card 的 quick start 使用 THU-KEG/LongWriter-Zero-32B,并在 generation 中设置 stop_strings=["<|user|>", "<|endoftext|>", "</answer>"]。SGlang 示例更明确展示了 LongWriter-Zero 的格式:用户任务被包进中文或英文模板,助手先输出 <think> 中的写作规划,再输出 <answer> 中的最终作品。部署时应该解析并只向最终用户展示 <answer>,否则用户会看到大量 planning 文本。

messages = [{"role": "user", "content": "Write a 500-word story."}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = model.generate(
    **model_inputs,
    max_new_tokens=2048,
    temperature=0.6,
    do_sample=True,
    stop_strings=["<|user|>", "<|endoftext|>", "</answer>"],
    tokenizer=tokenizer,
)

6. 机制直觉与方法评价

这篇论文最强的地方是把长文本写作中的“全局属性”拆成了三个相对可训练的奖励,而不是试图一次性训练一个万能质量模型。Length RM 让模型知道任务需要多长;Writing RM 让模型知道内容是否自然、有用、连贯;Format RM 让模型不要为了拿长度分而重复和乱结构。三者组合后,RL 的探索空间比单一 reward 小很多,也更接近长文写作的真实约束。

显式 thinking 的作用也很符合写作任务本身。数学推理里的 CoT 主要是推导中间步骤;长文写作里的 CoT 更像编辑大纲、确定受众、规划段落权重、检查语气和格式。这个思考段如果太短,模型容易直接进入正文,造成结构漂移;如果太长,可能消耗上下文或变成正文预演。因此论文观察到 thinking length plateau 是一个重要现象:写作中的 test-time scaling 不是无限扩展思考,而是找到足够的计划深度。

continual pretraining 的作用说明 RL 不是万能替代预训练。奖励只能告诉模型哪些输出更好,但如果初始策略缺少长文结构、叙事和报告写作能力,采样很难产生高质量候选,reward signal 也会更噪。30B token 写作语料相当于把模型带到“会写长文”的邻域,再由 RL 解决“按要求写得更好”的问题。这与许多 post-training 经验一致:强 base prior 决定可探索空间,RL 决定目标对齐方向。

7. 局限与风险

论文明确承认 reward hacking。Length 和 style 这类启发式奖励天然可被利用:模型可能使用固定开头、套话、近重复段落、看似高级但无必要的关键词来抬高 Writing RM 分数。即使有 sentence overlap 与 n-gram 惩罚,经过轻微改写的重复仍然很难检测。对于超长文本,这个问题更严重,因为评审模型和人类都很难逐段细查 10,000+ tokens 的一致性。

第二个限制是事实性。Writing RM 关注流畅性、连贯性和帮助性,但不显式验证事实、引用和数值。长文越长,事实错误累积的概率越高;如果 reward 更偏好“看起来专业”的语言,模型可能生成更自信、更连贯但不一定更真实的内容。因此 LongWriter-Zero 更适合结构化写作、草稿生成、报告初稿、创意和说明性任务;对于需要精确事实、法律/医学/金融建议或严格引用的任务,仍然需要检索、引用验证和外部 fact checking。

第三个限制是可复现性。论文给出了训练配置和 HF 数据/模型,但没有公开 LongWriter-Zero 的 RL 训练代码、reward model 训练细节、Megatron 配置、Arena-Write 数据与完整评测脚本。对于研究者来说,可以验证推理能力和部分数据格式,但难以复现实验管线。尤其 Writing RM 的偏好数据与训练过程是方法核心,未开源会限制社区判断 reward 是否存在特定风格偏差。

第四个限制是评测分布。WritingBench、Arena-Write 和 win-rate set 都聚焦长文写作,这正是模型优化目标;在短问答、复杂推理、工具使用、多轮对话、事实密集检索等任务上,LongWriter-Zero 未必优于通用大模型。论文的结论应限定为“长篇写作任务中的专用优化有效”,而不是“32B 写作模型全面超过 100B+ 通用模型”。

8. 我会如何复用这篇论文

如果要在自己的 LLM 项目中复用 LongWriter-Zero,优先借鉴的是奖励拆分方式,而不是直接复刻所有训练规模。一个可落地的小版本可以先构造长文 prompt 池,使用强模型预测长度区间,再训练或调用一个 writing preference scorer,最后加上格式和重复惩罚,用 GRPO/DAPO 做少量 RL。对资源较少的团队,可以先跳过 30B continual pretraining,但要预期上限较低;如果已有长文领域语料,先做 domain continual pretraining 会显著改善 RL 探索效率。

部署层面,我会强制解析 <answer>,隐藏 <think>;设置合理的 max_new_tokens;对输出做重复检测、结构校验和事实检查;并把用户的长度要求转成显式范围,而不是模糊地写“详细一点”。对于企业报告、长篇 proposal、课程材料和小说章节,LongWriter-Zero 代表了一条很有价值的路线:不再把长文当作短文本简单延长,而是把写作规划、篇幅控制、格式一致和内容质量都放进训练目标。

9. 与相关工作的关系

LongWriter-Zero 与 LongWriter 的关系是“从 teaching 到 incentivizing”。LongWriter 证明了长上下文模型可以通过长输出 SFT 生成 10,000+ words,但其能力受合成数据质量和 MLE 目标限制;LongWriter-Zero 则用 RL 让模型在无长答案示范的情况下优化写作目标。与 DeepSeek-R1-Zero 的关系是方法精神相似:都从 base model 出发,用 RL 激发新能力;区别在于数学/代码有更明确的可验证 reward,而长文写作必须依赖 learned/heuristic proxy reward。

与一般 RLHF/DPO 的区别在于,LongWriter-Zero 不是只对短回答偏好做 alignment,而是把长文本的长度、结构和重复控制纳入 reward,并在训练中允许 14,000 token 输出。它也不是简单 prompt engineering:Think Prompt 的效果来自 RL 训练过程中对 <think>/<answer> 协议的强化,而不是推理时临时加一句“think step by step”。

10. 结论

LongWriter-Zero 的主要意义在于证明:超长文本生成可以不依赖合成答案 SFT,而通过 reward-driven RL 学到更好的篇幅控制、结构规划和整体写作质量。论文的结果强,消融清楚,机制解释也比较可信;但可复现性受限于训练代码和 reward model 未公开,且 reward hacking 和事实性仍是长文 RL 的核心风险。对后续工作而言,最值得推进的是开源完整训练栈、加入事实性/引用奖励、改进重复检测,以及研究 thinking budget 与 answer budget 的动态分配。