extraction-r19-v1

游戏 UGC 评论「语义单元抽取」模型。基于 Qwen/Qwen3-4B,LoRA(r16 / alpha32 / dropout0.05)训练后合并进底座,fp16 权重,可直接用 transformers 加载,无 peft 依赖。

  • 任务:从一条评论文本中抽取语义单元(mention / span / occurrence),只做抽取,不做分类
  • 权重:fp16,4.02B 参数,约 7.5 GB
  • 硬件:实测峰值显存 8.82 GB,T4/T10(16GB,Turing)可直接部署,attention 走 sdpa,无需 FlashAttention2

目录结构

.
├── model/                  # 合并后的完整模型(transformers 可直接加载)
│   ├── config.json
│   ├── model-0000{1,2}-of-00002.safetensors
│   ├── model.safetensors.index.json
│   ├── generation_config.json
│   ├── chat_template.jinja  # 提示词契约已固化在模板中
│   └── tokenizer 相关文件
├── sdk/extraction_sdk/     # 自包含 SDK(契约 + 抽取器 + 后处理校验)
├── example.py
├── manifest.json           # 指标 / 契约 / 硬件要求
├── SHA256SUMS.txt          # 权重文件校验值
└── RELEASE.md

快速开始

1. 用 SDK(推荐,含输出校验与契约)

pip install torch>=2.1 transformers>=4.53
git clone https://huggingface.co/<YOUR_NAMESPACE>/<YOUR_REPO> extraction-r19-v1
cd extraction-r19-v1
python example.py
import sys; sys.path.insert(0, "sdk")
from extraction_sdk import SemanticUnitExtractor

ext = SemanticUnitExtractor("model", dtype="fp16")   # T4/T10 必须 fp16;Ampere+ 可用 bf16
out = ext.extract("策划在偷偷加强小兵,我情绪稳定#王者荣耀",
                  record_id="r1", game_name="王者荣耀")
# out = {"id","text","ok","latency_ms","semantic_units":[{"mention","start","end","unit_id",...}],"diagnostics":{...}}

2. 直接用 transformers

from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("<YOUR_NAMESPACE>/<YOUR_REPO>", subfolder="model")
model = AutoModelForCausalLM.from_pretrained(
    "<YOUR_NAMESPACE>/<YOUR_REPO>", subfolder="model",
    dtype="fp16", attn_implementation="sdpa", device_map="auto",
)
# 提示词请走 tokenizer 内置的 chat template(提示词契约 reasoningner-lite-sft-v5-extraction-only)

生成参数已固化在 generation_config.json:**贪心解码(do_sample=False)+ max_new_tokens=2048**,请勿改动,否则与评测结果不一致。

输入 / 输出契约

契约 版本
提示词 reasoningner-lite-sft-v5-extraction-only
模型输出 semantic-units-occurrence-v3-extraction-only
正式预测 semantic-units-span-v3-extraction-only

ok=False 表示输出 JSON 解析失败或存在非法 span(mention 不在正文 / occurrence 越界),此时 semantic_units 为已通过校验的子集;线上建议对 ok=False 记录走兜底(重试或降级)。

评测(DEV 298 条,人工裁决金标)

口径 P R F1 Δ vs 旧生产模型 R1
严格 mention(门控主口径) 0.7376 0.7855 0.7608 +0.0174(95% CI [0.0013, 0.0336])
occurrence 逐位置 0.7273 0.7752 0.7505 —
relaxed(后缀 + 有界包含) 0.7915 0.8429 0.8164 +0.0169
  • JSON 成功率 98.99%,非法 span 0
  • 泛化性(剔除政策词表)Δ +0.0133
  • SDK 与评测输出平价验证:20/20 DEV 样本单元集合完全一致

部署要点

  1. dtype 必须 fp16:Turing 架构无 bf16 支持;Ampere+(A10/A100/4090)可改用 bf16
  2. 显存峰值 8.82 GB,16GB 卡可并发 1~2 实例
  3. 时延:A100 mean 4.8s / p50 3.8s 每条;Turing 预计 8~15s,随单元数线性增长
  4. 输入 text 建议 ≤ 1024 token(训练 max_seq 993)
  5. 分类(semantic_type 等四维)不在本包内,属后置阶段

已知限制

  • 2/298 条顽固失败模式:模型幻觉 mention 不在正文(走 ok=False 兜底)
  • 基于 Qwen3-4B,继承其偏见与事实性风险,输出需结合业务审核
  • 领域为游戏 UGC 中文评论,跨领域效果未验证

许可证

Apache-2.0,沿用底座模型 Qwen/Qwen3-4B 的许可证。

训练信息

  • 底座:Qwen/Qwen3-4B
  • 微调:LoRA r16 / alpha32 / dropout0.05,合并进底座
  • 训练数据:2384 条 / 8863 单元(政策对齐 v3)
  • 精度:float16
Downloads last month
264
Safetensors
Model size
4B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for li-ovo/NER_Game

Finetuned
Qwen/Qwen3-4B
Adapter
(1164)
this model