🚀 ⭐ GLiClass:用于序列分类的通用轻量级模型
GLiClass 是一款高效的零样本分类器,它受到了 GLiNER 工作的启发。该模型在性能上与交叉编码器相当,但在计算效率上更具优势,因为它只需一次前向传播即可完成分类。
它可用于主题分类
、情感分析
,还能在检索增强生成(RAG)
管道中作为重排器使用。
此模型基于合成数据进行训练,可用于商业应用。
🚀 快速开始
安装GLiClass库
首先,你需要安装 GLiClass 库:
pip install gliclass
初始化模型和管道
接着,你需要初始化一个模型和一个管道:
from gliclass import GLiClassModel, ZeroShotClassificationPipeline
from transformers import AutoTokenizer
model = GLiClassModel.from_pretrained("knowledgator/gliclass-small-v1.0")
tokenizer = AutoTokenizer.from_pretrained("knowledgator/gliclass-small-v1.0")
pipeline = ZeroShotClassificationPipeline(model, tokenizer, classification_type='multi-label', device='cuda:0')
text = "One day I will see the world!"
labels = ["travel", "dreams", "sport", "science", "politics"]
results = pipeline(text, labels, threshold=0.5)[0]
for result in results:
print(result["label"], "=>", result["score"])
✨ 主要特性
- 高效零样本分类:受 GLiNER 工作启发,在性能与交叉编码器相当的情况下,计算效率更高,一次前向传播即可完成分类。
- 多场景应用:可用于
主题分类
、情感分析
,也能在RAG
管道中作为重排器。
- 合成数据训练:基于合成数据训练,可用于商业应用。
📚 详细文档
基准测试
以下是该模型在几个文本分类数据集上的 F1 分数。所有测试模型均未在这些数据集上进行微调,而是在零样本设置下进行测试。
不同GLiClass模型对比
以下是不同 GLiClass 模型的对比情况:
数据集 |
gliclass-small-v1.0-lw |
gliclass-base-v1.0-lw |
gliclass-large-v1.0-lw |
gliclass-small-v1.0 |
gliclass-base-v1.0 |
gliclass-large-v1.0 |
CR |
0.8886 |
0.9097 |
0.9226 |
0.8824 |
0.8942 |
0.9219 |
sst2 |
0.8392 |
0.8987 |
0.9247 |
0.8518 |
0.8979 |
0.9269 |
sst5 |
0.2865 |
0.3779 |
0.2891 |
0.2424 |
0.2789 |
0.3900 |
20_news_groups |
0.4572 |
0.3953 |
0.4083 |
0.3366 |
0.3576 |
0.3863 |
spam |
0.5118 |
0.5126 |
0.3642 |
0.4089 |
0.4938 |
0.3661 |
rotten_tomatoes |
0.8015 |
0.8429 |
0.8807 |
0.7987 |
0.8508 |
0.8808 |
massive |
0.3180 |
0.4635 |
0.5606 |
0.2546 |
0.1893 |
0.4376 |
banking |
0.1768 |
0.4396 |
0.3317 |
0.1374 |
0.2077 |
0.2847 |
yahoo_topics |
0.4686 |
0.4784 |
0.4760 |
0.4477 |
0.4516 |
0.4921 |
financial_phrasebank |
0.8665 |
0.8880 |
0.9044 |
0.8901 |
0.8955 |
0.8735 |
imdb |
0.9048 |
0.9351 |
0.9429 |
0.8982 |
0.9238 |
0.9333 |
ag_news |
0.7252 |
0.6985 |
0.7559 |
0.7242 |
0.6848 |
0.7503 |
dair_emotion |
0.4012 |
0.3516 |
0.3951 |
0.3450 |
0.2357 |
0.4013 |
capsotu |
0.3794 |
0.4643 |
0.4749 |
0.3432 |
0.4375 |
0.4644 |
平均 |
0.5732 |
0.6183 |
0.6165 |
0.5401 |
0.5571 |
0.6078 |
更多示例对模型性能的影响
以下展示了随着示例数量的增加,模型性能的变化情况:
模型 |
示例数量 |
sst5 |
spam |
massive |
banking |
ag news |
dair emotion |
capsotu |
平均 |
gliclass-small-v1.0-lw |
0 |
0.2865 |
0.5118 |
0.318 |
0.1768 |
0.7252 |
0.4012 |
0.3794 |
0.3998428571 |
gliclass-base-v1.0-lw |
0 |
0.3779 |
0.5126 |
0.4635 |
0.4396 |
0.6985 |
0.3516 |
0.4643 |
0.4725714286 |
gliclass-large-v1.0-lw |
0 |
0.2891 |
0.3642 |
0.5606 |
0.3317 |
0.7559 |
0.3951 |
0.4749 |
0.4530714286 |
gliclass-small-v1.0 |
0 |
0.2424 |
0.4089 |
0.2546 |
0.1374 |
0.7242 |
0.345 |
0.3432 |
0.3508142857 |
gliclass-base-v1.0 |
0 |
0.2789 |
0.4938 |
0.1893 |
0.2077 |
0.6848 |
0.2357 |
0.4375 |
0.3611 |
gliclass-large-v1.0 |
0 |
0.39 |
0.3661 |
0.4376 |
0.2847 |
0.7503 |
0.4013 |
0.4644 |
0.4420571429 |
gliclass-small-v1.0-lw |
8 |
0.2709 |
0.84026 |
0.62 |
0.6883 |
0.7786 |
0.449 |
0.4918 |
0.5912657143 |
gliclass-base-v1.0-lw |
8 |
0.4275 |
0.8836 |
0.729 |
0.7667 |
0.7968 |
0.3866 |
0.4858 |
0.6394285714 |
gliclass-large-v1.0-lw |
8 |
0.3345 |
0.8997 |
0.7658 |
0.848 |
0.84843 |
0.5219 |
0.508 |
0.67519 |
gliclass-small-v1.0 |
8 |
0.3042 |
0.5683 |
0.6332 |
0.7072 |
0.759 |
0.4509 |
0.4434 |
0.5523142857 |
gliclass-base-v1.0 |
8 |
0.3387 |
0.7361 |
0.7059 |
0.7456 |
0.7896 |
0.4323 |
0.4802 |
0.6040571429 |
gliclass-large-v1.0 |
8 |
0.4365 |
0.9018 |
0.77 |
0.8533 |
0.8509 |
0.5061 |
0.4935 |
0.6874428571 |
📄 许可证
本项目采用 Apache-2.0 许可证。