X-Orange/Data_Quality_Scoring_Model
0
Data Quality Scoring Model
中英文文本质量评分器 | Chinese & English Text Quality Scoring Model
一个基于自研 Transformer 架构的文本质量评估模型,为预训练/微调数据清洗场景设计。模型对输入文本进行 0-5 分的质量评分,分数越高表示文本质量越好。 ---
模型概述
架构亮点
本模型采用自研轻量级 Transformer 架构,核心设计包括:
- YaRN 旋转位置编码:支持长度外推,通过因子 16x 扩展上下文窗口
- GQA 分组查询注意力:2 个 KV 头共享给 4 个 Query 头,降低推理内存
- GEGLU 前馈网络:Gated GELU 激活,提升表达能力
- DenseLayerConnections 密集层连接:跨层残差加权聚合,增强梯度流动
- RMSNorm:替代 LayerNorm,训练更稳定
模型配置
快速开始
环境要求
pip install torch tqdm下载与加载
from huggingface_hub import hf_hub_download
import os
# 下载模型文件
model_path = hf_hub_download(
repo_id="X-Orange/Data_Quality_Scoring_Model",
filename="new_model.pth"
)
tokenizer_path = hf_hub_download(
repo_id="X-Orange/Data_Quality_Scoring_Model",
filename="local_tokenizer",
local_dir="./tokenizer_cache"
)推理示例
from Classifier_Model import ClassifierModel
# 初始化模型
model = ClassifierModel(
model_path="new_model.pth", # 模型权重路径
tokenizer_path="local_tokenizer", # Tokenizer 路径
device="cuda", # cuda / xpu / cpu
dtype="fp6" # fp16 / fp32 / bf16 / q8 (INT8量化)
)
# 单条或批量评分
texts = [
"量子纠缠是量子力学中的一种现象,当两个或多个粒子相互作用后...",
"我觉得量子计算机挺厉害的,听说以后算东西会特别快。不过具体怎么快我也不太清楚...",
"量子量子量子的子子子计算机算算算机机机比特特特叠加态态态态态态..."
]
scores = model.compute(texts, batch_size=400, max_length=1024)
for text, score in zip(texts, scores):
print(f"Score: {score:.2f} | {text[:40]}...")预期输出:
Score: 2.62 | 量子纠缠是量子力学中的一种现象...
Score: 1.41 | 我觉得量子计算机挺厉害的...
Score: 0.92 | 量子量子量子的子子子计算机...评分标准
模型输出 0 ~ 5 分的连续质量分数,大致对应:
批量数据过滤
使用 data_eval.py 对 JSONL 数据集进行批量过滤:
python data_eval.py \
--jsonl_path ./raw_data \
--jsonl_key content \
--save_path ./filtered_data \
--target_score 3 \
--batch_size 400 \
--max_length 1024 \
--model_path new_model.pth \
--tokenizer_path local_tokenizer \
--device cuda \
--dtype q8参数说明
文件说明
性能参考
在 Intel Arc GPU (XPU) 上测试,FP16 模式:
- 批量 400 条 (max_length=1024):~0.95s
- 显存占用:~14GB ---
应用场景
- 预训练语料清洗(去除低质量、重复、乱码文本)
- 微调数据筛选(保留高质量指令-回复对)
- 数据去重前的质量分层
- 多语言混合语料的质量评估
