🚀 ⭐ GLiClass:用于序列分类的通用轻量级模型
GLiClass是一款高效的零样本分类器,其灵感源自 GLiNER 项目。它在性能上与交叉编码器相当,但计算效率更高,因为分类过程只需一次前向传播。
该模型可用于主题分类
、情感分析
,还能在RAG
管道中作为重排器使用。它基于合成数据进行训练,可用于商业应用。此版本的模型采用了逐层特征选择技术,能更好地理解语言的不同层次。
🚀 快速开始
安装GLiClass库
pip install gliclass
初始化模型和管道
from gliclass import GLiClassModel, ZeroShotClassificationPipeline
from transformers import AutoTokenizer
model = GLiClassModel.from_pretrained("knowledgator/gliclass-base-v1.0-lw")
tokenizer = AutoTokenizer.from_pretrained("knowledgator/gliclass-base-v1.0-lw")
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"])
✨ 主要特性
- 高效零样本分类:在零样本设置下表现出色,无需针对特定任务进行微调。
- 多领域应用:可用于主题分类、情感分析和RAG管道中的重排。
- 轻量级设计:不同规模的模型可供选择,满足不同计算资源需求。
- 逐层特征选择:更好地理解语言的不同层次,提升分类性能。
📦 安装指南
要使用GLiClass,你需要安装相应的库。可以使用以下命令进行安装:
pip install gliclass
💻 使用示例
基础用法
from gliclass import GLiClassModel, ZeroShotClassificationPipeline
from transformers import AutoTokenizer
model = GLiClassModel.from_pretrained("knowledgator/gliclass-base-v1.0-lw")
tokenizer = AutoTokenizer.from_pretrained("knowledgator/gliclass-base-v1.0-lw")
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"])
📚 详细文档
基准测试
以下是几个文本分类数据集上的F1分数。所有测试模型均未在这些数据集上进行微调,而是在零样本设置下进行测试。
不同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许可证。