























想象你在教一个实习生写报告:
第1周:你给他看完整模板(标题格式、字体要求、段落结构)+ 10个范文
第2周:你问他"记得模板吗?",只给简化版提示+5个范文
第3周:你直接说"写个市场调研报告",不给模板,让他凭记忆写
内化就是让AI的"记忆"(模型参数)记住template,而不是每次都在"便签"(system prompt)上贴template。
我们要让模型学会不写system prompt就能自动写出小红书风格的文案(带emoji、分段、标签)。
原始system prompt很长(约150 tokens):
你是一个小红书爆款文案专家。请使用活泼可爱的语气,每段都要有emoji表情,结尾必须包含5个相关话题标签。禁止使用"首先/其次/总之"等公文词汇,要用姐妹聊天的口吻。
目标:训练后,用户直接输入"推荐一款防晒霜",模型就自动输出小红书风格文案。
# 安装依赖
pip install transformers datasets peft trl bitsandbytes accelerate
# ============================================================
# 渐进式SFT内化Demo:小红书文案生成器
# 目标:从"详述指令" -> "内化记忆" -> "零指令"
# ============================================================
import torch
from datasets import Dataset
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments
from peft import LoraConfig, get_peft_model, PeftModel
from trl import SFTTrainer
import json
你需要准备:
阶段1:20-50条高质量样本,system prompt写满所有约束(如格式、风格、禁止词)
阶段2:同一批样本,system prompt缩短50%(保留核心关键词)
阶段3:同一批样本,system prompt设为空字符串,只在user里加前缀如"小红书文案:{query}"
学习率递减:阶段1用5e-5,阶段2用2e-5,阶段3用1e-5
epoch递增:阶段3要比阶段1更多epoch(让模型"死记"规则)
必须LoRA:使用LoRA/QLoRA,防止破坏模型其他能力
成功内化的标志:
# 输入(无任何system prompt)
user: "推荐一款扫地机器人"
# 输出(应该自动符合小红书风格)
姐妹们!扫地自由真的实现了!🎉
这机器人太懂我了...(带emoji)
...
灾难性遗忘:如果你的模型原本很"通用",微调后可能会变"傻"(只会写小红书文案)。解决方案:
混入10%的通用对话数据一起训练
使用更大的lora_r值(如64)保留表达能力
回退机制:保存每个阶段的权重,如果阶段3效果差,回退到阶段2
测试覆盖:阶段3测试时,要用模型没见过的query(如训练里有"防晒霜",测试用"咖啡机")
Prompt Cache清零:每次测试前重启kernel,防止tokenizer的chat template缓存干扰
如果你想把这个Demo应用到你的具体业务(比如法律合同生成、代码规范检查等),只需要替换数据集中的system和assistant内容,保持三阶段结构不变即可!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。