CoolFace
Modelpublic

flylcw/seq_monkey_pretrain_sft_optimization_1.5B

sourceHugging Facemitupdated 2mo agoView on Hugging Face
0likes12downloads
Model Card

license: mit libraryname: transformers basemodel:

  • flylcw/seqmonkeypretrainbase1.5B language:
  • zh tags:
  • qwen2
  • qwen
  • sft
  • instruction-tuning
  • chinese
  • chat datasets:
  • BelleGroup/train3.5MCN
  • m-a-p/COIG-CQIA ---

seqmonkeypretrainsftoptimization_1.5B(中文指令微调模型)

seq_monkey_pretrain_base_1.5B 之上,经过 两阶段全参 SFT 得到的中文指令对话模型:第一阶段用 BelleGroup 通用指令数据建立指令跟随能力,第二阶段用 COIG-CQIA 高质量数据进一步对齐。

模型结构(与 Base 完全一致)

SFT 仅更新权重,不改变模型架构,因此本模型的 config.json 与 Base 模型完全相同

项目
架构Qwen2ForCausalLM
参数量1.5B 级(HF 统计约 2B)
hidden / layers / heads / kv_heads1536 / 28 / 12 / 2
intermediate / vocab / max_pos8960 / 151936 / 131072
激活 / 归一化 / 位置编码SiLU(SwiGLU) / RMSNorm / RoPE

两阶段 SFT 流程

阶段数据规模学习率epoch目的
阶段一BelleGroup/train_3.5M_CN3.5M 中文指令2e-53建立通用指令跟随
阶段二m-a-p/COIG-CQIA数万条高质量中文指令5e-63高质量对齐、提升回答质量
  • 训练方式:全参 SFT(非 LoRA),Causal LM,仅对 assistant 回答部分计算 loss
  • 对话模板:Qwen ChatML(<|im_start|> / <|im_end|>
  • 序列长度:1024
  • 优化:bf16,cosine 学习率调度
  • 第二阶段说明:在阶段一 checkpoint 基础上继续 SFT,学习率调小以防破坏已学能力

快速开始(对话)

python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

name = "flylcw/seq_monkey_pretrain_sft_optimization_1.5B"
tok = AutoTokenizer.from_pretrained(name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    name, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True)

messages = [{"role": "user", "content": "用三句话介绍一下序列猴子数据集"}]
text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
ids = tok(text, return_tensors="pt").to(model.device)
out = model.generate(**ids, max_new_tokens=256, do_sample=True,
                     temperature=0.7, top_p=0.9, repetition_penalty=1.1)
print(tok.decode(out[0], skip_special_tokens=True))