PhalSyta/AniCoord-Qwen3-8B-QLoRA-v1
1107
AniCoord-Qwen3-8B-QLoRA-v1
中文动画短评「二维评价依据」标注模型。基于 Qwen/Qwen3-8B 用 QLoRA 微调得到的 LoRA 适配器,从 Gemini 标注数据蒸馏而来,可在本地把一条 Bangumi 短评映射到一个二维坐标系并输出多项结构化指标。
- x 轴:情绪性(-1)←→ 分析性(+1)
- y 轴:文本外依据(-1)←→ 文本内依据(+1)
附加指标:specificity、reasoning、emotional_intensity、identity_score、confidence,以及象限 quadrant 和一句话理由 short_reason。
模型详情
- 基座模型:
Qwen/Qwen3-8B - 方法:QLoRA(4-bit NF4 量化 + LoRA,r=16, alpha=32, dropout=0.05)
- 目标模块:
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj - 训练数据:约 8k 条 Bangumi 中文短评,标签由 Gemini 生成(知识蒸馏)
- 语言:中文
- 用途:动画短评的评价依据结构标注(非作品质量评价)
- 代码仓库:https://github.com/Ngyama/AniCoord
评测结果
在留出作品(subject 324《攻壳机动队 STAND ALONE COMPLEX》,未参与训练)上对比 Gemini 标注:
使用方法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
BASE = "Qwen/Qwen3-8B"
ADAPTER = "PhalSyta/AniCoord-Qwen3-8B-QLoRA-v1"
# 4-bit 加载底座,再挂上 LoRA 适配器
bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True, bnb_4bit_compute_dtype=torch.bfloat16)
tok = AutoTokenizer.from_pretrained(ADAPTER)
model = AutoModelForCausalLM.from_pretrained(BASE, quantization_config=bnb, device_map="auto")
model = PeftModel.from_pretrained(model, ADAPTER).eval()
# 完整 prompt 见代码仓库 src/annotation/prompt.py,这里仅示意
msg = [{"role": "user", "content": "判断这条动画短评并输出 JSON:「作画神,分镜也讲究,就是节奏后半段崩了」"}]
# enable_thinking=False 关闭 Qwen3 思考链,确保直接输出 JSON
text = tok.apply_chat_template(msg, tokenize=False, add_generation_prompt=True, enable_thinking=False)
inputs = tok(text, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=128, do_sample=False) # 贪心解码,输出稳定
# 只解码新生成的部分(切掉输入)
print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))局限性
- 评分维度具有较强主观性,输出为相对参考,不代表对作品质量的判断。
- 标签源自 Gemini,模型继承其偏置;遇到训练分布外的题材或风格时可能偏移。
- 仅针对中文短文本短评优化,长文本/影评效果未验证。
许可
适配器以 Apache-2.0 发布;底座模型遵循 Qwen/Qwen3-8B 自身的许可协议。
