CoolFace
Modelpublic

Moeblack/Qwen3.8-27B-chinese-taste-sft-lora

sourceHugging Faceotherupdated 1mo agoView on Hugging Face
15likes395downloads
Model Card

Qwen3.8-27B-chinese-taste-sft-lora

Model Overview

中文小说向的 LoRA 适配器,基于 unsloth/Qwen3.8-27B。 训练语料是作者偏好的中文长篇叙事作品,合计约 8000 万字,从中抽取序列级样本完成 SFT(详情见下文)。

这是一个 agent 模型:按常规方式使用即可——标准对话、续写、系统提示注入都正常,不需要构造特殊提示词。

Data & Prompt Generation

  1. 1.书籍拆解(agent 流水线):小说拆解为序列(sequence)级叙事样本,提取各序列的剧情简介、出场人物与前后承接;
  2. 2.提示词生成器:对每个序列,在风格×关键词×任务×上下文×语气×长度的多维组合里随机采样——组合理论上限约 78 万种,每序列实际采样 16 个变体。生成时带有随机剔除(drop)的小设计——人设段一定比例不携带、上下文承接按比例出现、引导语与关键词按比例随机缺失,避免提示词因结构固定而流于机械化;
  3. 3.SFT 对:每对训练数据由(提示词 → 对应序列原文)构成,走 enable_thinking=false 的非思考路径。

Quick Start (PEFT)

python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

tok = AutoTokenizer.from_pretrained("unsloth/Qwen3.8-27B")
base = AutoModelForCausalLM.from_pretrained(
    "unsloth/Qwen3.8-27B", torch_dtype="bfloat16")
model = PeftModel.from_pretrained(base, "Moeblack/Qwen3.8-27B-chinese-taste-sft-lora")
model.eval()

prompt = tok.apply_chat_template(
    [{"role": "user", "content": "……"}],
    add_generation_prompt=True, tokenize=True, enable_thinking=False)
out = model.generate(
    torch.tensor(prompt["input_ids"]).unsqueeze(0),
    max_new_tokens=800, do_sample=True, temperature=0.8,
    top_p=0.9, top_k=40, min_p=0.05, repetition_penalty=1.1)
print(tok.decode(out[0], skip_special_tokens=True))

llama.cpp 用户:本仓库已提供预转换 GGUF(qwen3.8-27b-chinese-taste-sft-lora-q8_0.gguf),直接下载并以 --lora 挂载到你的基座 GGUF 即可;也可自行从 PEFT 权重转换:

bash
python convert_lora_to_gguf.py <adapter_dir> \
    --base-model-id "Qwen/Qwen3.8-27B" \
    --outfile lora.gguf --outtype q8_0

(转换脚本位于 llama.cpp 仓库,--base-model-id 仅用于读取模型结构,与训练基座无关。)

Sample Output

同一提示词下的自然生成对比(左为基座 Base,右为本适配器 LoRA):

基座 (Base)本适配器 (LoRA)
[image][image]

Training Details

项值
基座unsloth/Qwen3.8-27B(bfloat16,单卡 95GB)
方法LoRA:r=2, α=4, dropout=0, 目标 q/k/v/o/gate/up/down
数据823 个序列 × 16 变体 ≈ 13168 对(1 epoch,≈20.3M tokens,max_seq 8000)
优化每步 4 对(micro 1 × grad_accum 4),AdamW fused,wd 0.001
调度WSD:warmup 100 → 1e-4 平台 → decay 至 4e-6(3292 步)
框架TRL SFTTrainer 1.10 / transformers 5.14.1 / PEFT 0.20

Evaluation

指标定义:按句末标点切分,单句 ≥40 字计为长句;对比采用固定锚 prompt,采样参数保持一致(temp 0.8/topp 0.9/topk 40/min_p 0.05/rep 1.1)。 同口径自然生成下,长句率从基座的 ~10% 提升到 ~25%。

Limitations

  • —主要面向中文小说正文场景;对话与指令跟随未做专门优化,但也同时受益;
  • —推荐采样参数见 Quick Start;推理时适配器不会改变基座的思考模式行为。

License

所有权利保留(All Rights Reserved):本仓库权重仅供下载者个人研究使用,商用、再分发或二次修改后传播均需获得作者许可。使用本适配器时,也须遵守基座模型(对应 Qwen 系列)的许可证条款。

备注

  • —仅包含 LoRA 权重(~50MB),不含基座模型与原文数据;
  • —训练环境:RTX PRO 6000(Blackwell,95GB)单卡,全程约 20 小时;
  • —v1(Moeblack/Qwen3.8-27B-chinese-taste-lora)是 DAPT 文风预训练版,本版本是 SFT 指令版,两者可独立使用,也可叠加;
  • —vLLM/SGLang 支持以 PEFT 格式加载。