rx5950xt Digital Twin v2 — Qwen3.5-4B QLoRA

基於 Qwen/Qwen3.5-4B 微調的數位分身模型。 透過 Discord 對話記錄微調,模仿特定使用者的語氣、用詞習慣與對話風格。

模型描述

項目 內容
基底模型 Qwen/Qwen3.5-4B
微調方法 QLoRA (4-bit NF4 + LoRA rank 8)
訓練框架 LLaMA Factory
訓練資料 ~1067 筆 Discord 對話 + alpaca_gpt4_zh 通用中文指令資料
語言 繁體中文(臺灣)
授權 Apache 2.0

訓練細節

防過擬合策略

由於訓練資料量有限(~1067 筆),採用以下策略防止過擬合:

  • 資料混合: 將個人對話資料與通用中文指令資料(alpaca_gpt4_zh)以約 1:2 比例混合
  • 低學習率: 5e-5(相比一般 LoRA 的 2e-4)
  • 單輪訓練: 僅 1 epoch,避免反覆記憶訓練資料
  • 較小 LoRA rank: r=8(相比常見的 16-64)
  • NEFTune 噪聲: alpha=5.0,增加訓練穩定性
  • LoRA Dropout: 0.1

訓練參數

model: Qwen/Qwen3.5-4B (4-bit BNB quantized)
lora_rank: 8
lora_alpha: 16
lora_dropout: 0.1
learning_rate: 5e-5
num_train_epochs: 1
lr_scheduler: cosine
warmup_steps: 20
batch_size: 16 (effective, via gradient accumulation)
optimizer: paged_adamw_8bit
neftune_noise_alpha: 5.0
cutoff_len: 512
bf16: true

訓練結果

指標 數值
Train Loss 2.397
Eval Loss 2.349
訓練時間 ~2 小時 10 分鐘
總步數 164 steps
GPU NVIDIA RTX 3070 Ti

eval_loss < train_loss,表示模型未過擬合。

Training Loss

檔案結構

.
├── README.md                    # 本檔案
├── train_config.yaml            # LLaMA Factory 訓練配置
├── export_config_v2.yaml        # 模型匯出配置
├── training_loss.png            # 訓練損失曲線
├── adapter/                     # LoRA adapter 權重
│   ├── adapter_model.safetensors
│   ├── adapter_config.json
│   ├── tokenizer.json
│   ├── tokenizer_config.json
│   └── chat_template.jinja
└── gguf/                        # 量化版本
    └── rx5950xt-digital-twin-v2-q8_0.gguf (Q8_0, 4.2 GB)

使用方式

方式一:LM Studio / Ollama(推薦)

直接下載 gguf/rx5950xt-digital-twin-v2-q8_0.gguf,在 LM Studio 或 Ollama 中載入即可。

注意:聊天模板已修改為 nothink 模式(停用 Qwen3.5 的思考功能),回覆會直接輸出。

方式二:Transformers + PEFT(載入 LoRA adapter)

from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base_model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3.5-4B",
    torch_dtype="auto",
    device_map="auto",
    trust_remote_code=True,
)
model = PeftModel.from_pretrained(base_model, "RX5950XTP/rx5950xt-digital-twin-Qwen3.5-4B/adapter")
tokenizer = AutoTokenizer.from_pretrained("RX5950XTP/rx5950xt-digital-twin-Qwen3.5-4B/adapter")

messages = [
    {"role": "system", "content": "你是 rx5950xt 的數位分身。"},
    {"role": "user", "content": "你好!"},
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

限制與注意事項

  • 訓練資料僅約 1067 筆 Discord 對話,覆蓋的話題和情境有限
  • 混合了通用中文指令資料以保留泛用能力,但可能稍微稀釋個人風格
  • 不適用於需要專業知識、事實查證或安全敏感的場景
  • 本模型僅供研究與娛樂用途

致謝

Downloads last month
10
GGUF
Model size
4B params
Architecture
qwen35
Hardware compatibility
Log In to add your hardware

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for RX5950XTP/rx5950xt-digital-twin-Qwen3.5-4B

Finetuned
Qwen/Qwen3.5-4B
Adapter
(139)
this model