Text Generation
Transformers
Safetensors
Chinese
qwen3
information-extraction
lora
fp16
game-ugc
conversational
text-generation-inference
Instructions to use li-ovo/NER_Game with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use li-ovo/NER_Game with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="li-ovo/NER_Game") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("li-ovo/NER_Game") model = AutoModelForCausalLM.from_pretrained("li-ovo/NER_Game", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use li-ovo/NER_Game with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "li-ovo/NER_Game" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "li-ovo/NER_Game", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/li-ovo/NER_Game
- SGLang
How to use li-ovo/NER_Game with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "li-ovo/NER_Game" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "li-ovo/NER_Game", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "li-ovo/NER_Game" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "li-ovo/NER_Game", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use li-ovo/NER_Game with Docker Model Runner:
docker model run hf.co/li-ovo/NER_Game
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 样本单元集合完全一致
部署要点
- dtype 必须 fp16:Turing 架构无 bf16 支持;Ampere+(A10/A100/4090)可改用
bf16 - 显存峰值 8.82 GB,16GB 卡可并发 1~2 实例
- 时延:A100 mean 4.8s / p50 3.8s 每条;Turing 预计 8~15s,随单元数线性增长
- 输入
text建议 ≤ 1024 token(训练 max_seq 993) - 分类(
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