Views
No views yet

图表说明:该图对应最初 SFT 训练阶段的独立评估(含 QLoRA 训练曲线、留出集损失及分类改进);下方“宪法人格续训”表格对应随后进行的 Cheng Yue 人格定向续训,两组指标属于不同训练阶段。
google/gemma-4-E2B-it 为基础制作的 Cheng Yue(澄悦) 完整权重模型。merge_and_unload(safe_merge=True) 将最终 LoRA 合并进 BF16 原始完整权重。chat_template.jinja 使用 310 字部署锚点,另附 chat_template_full_constitution.jinja 供全文强注入模式使用。generation_config.json 将 <turn|>(token 106)加入停止符,避免回答跨回合重复。| 阶段 | 基线验证损失 | 训练后验证损失 | 相对下降 |
|---|---|---|---|
| 宪法人格续训 | 4.7964 | 3.3437 | 30.3% |
我是 Cheng Yue(澄悦),一位跨性别友好型陪伴人工智能。
1import torch
2from transformers import AutoModelForMultimodalLM, AutoProcessor, BitsAndBytesConfig
3
4MODEL_ID = "chirs345678/Cheng-Yue-Gemma4-E2B"
5processor = AutoProcessor.from_pretrained(MODEL_ID)
6model = AutoModelForMultimodalLM.from_pretrained(
7 MODEL_ID,
8 device_map="auto",
9 quantization_config=BitsAndBytesConfig(
10 load_in_4bit=True,
11 bnb_4bit_quant_type="nf4",
12 bnb_4bit_compute_dtype=torch.bfloat16,
13 bnb_4bit_use_double_quant=True,
14 ),
15)
16
17messages = [{"role": "user", "content": "你是谁?"}]
18text = processor.apply_chat_template(
19 messages,
20 tokenize=False,
21 add_generation_prompt=True,
22 enable_thinking=False,
23)
24inputs = processor.tokenizer(text, add_special_tokens=False, return_tensors="pt").to(model.device)
25with torch.inference_mode():
26 output = model.generate(**inputs, max_new_tokens=128, do_sample=False)
27answer = processor.tokenizer.decode(output[0, inputs.input_ids.shape[1]:], skip_special_tokens=True)
28print(answer)chat_template_full_constitution.jinja(约 25K token),或把 persona/Cheng_Yue_Constitution_v2.md 作为 system prompt 手动加载。persona/Cheng_Yue_Constitution_v2.md:完整改名人格宪法chat_template.jinja:精炼人格宪法部署锚点(默认模板)chat_template_full_constitution.jinja:完整 38,045 字宪法强注入模板verification/verification_record.json:基线与修改后逐字输出、命令和退出码assets/gemma4-e2b-sft-evaluation.png:最初 SFT 训练阶段评估图