语言:
- 英语
标签:
- 文本分类
- 电子商务
- 产品分类
- DistilBERT
许可证: Apache-2.0
数据集:
- Adnan-AI-Labs/products_categories_data
模型索引:
- 名称: DistilBERT-ProductClassifier
结果:
- 任务:
类型: 文本分类
名称: 产品类别分类
数据集:
名称: 产品分类与归类
类型: lakritidis/product-classification-and-categorization
指标:
- 类型: 准确率
值: 96.17
名称: 准确率
基础模型:
- lxs1/DistilBertForSequenceClassification_6h_768dim
- distilbert/distilbert-base-uncased
流水线标签: 文本分类
DistilBERT-ProductClassifier模型卡
这是DistilBERT模型的一个微调版本,专门针对电子商务领域的产品分类任务进行训练。该模型能区分"CPU"、"数码相机"、"洗碗机"等多种类别,有助于在线零售平台的产品组织和分类。
模型详情
模型描述
DistilBERT-ProductClassifier模型基于电子商务数据集训练,用于将产品分类到特定类别。它针对高效的文本分类任务进行了优化,设计用于在有限的计算资源下良好运行。该模型利用了紧凑的DistilBERT架构,适合实时应用,包括移动和网页环境。
- 开发者: Adnan AI Labs
- 模型类型: 用于文本分类的微调DistilBERT
- 语言: 英语
- 许可证: Apache 2.0
- 微调基础模型: DistilBERT
如果您觉得这个项目有用,可以考虑请我喝杯咖啡支持进一步开发!☕️
模型来源
用途
直接使用
该模型旨在为电子商务平台的基于文本的产品列表进行分类。用户可以使用该模型自动分类产品,减少手动标记的需求并提高产品的可发现性。
超出范围的使用
该模型不应用于与产品分类无关的任务或电子商务背景之外。它不设计用于情感分析、通用文本生成或其他无关的自然语言处理任务。
偏见、风险和限制
该模型基于电子商务数据训练,可能对训练范围之外的产品或类别表现不佳。此外,某些类别在训练数据中的代表性可能不足,可能影响这些类别的分类准确性。
建议
对于涉及其他语言或训练数据中未包含的高度专业化产品类别的用例,可能需要进行进一步的微调。用户应在用于高风险决策前验证模型的输出。
如何开始使用该模型
使用以下代码开始使用该模型进行产品分类:
import torch
from transformers import DistilBertTokenizer, DistilBertForSequenceClassification
def load_model_and_tokenizer(model_name, num_labels):
tokenizer = DistilBertTokenizer.from_pretrained(model_name)
model = DistilBertForSequenceClassification.from_pretrained(model_name, num_labels=num_labels)
model.eval()
return model, tokenizer
def predict(model, tokenizer, prompts, category_mapping, device):
model.to(device)
inputs = tokenizer(prompts, padding=True, truncation=True, return_tensors='pt', max_length=128)
with torch.no_grad():
input_ids = inputs['input_ids'].to(device)
attention_mask = inputs['attention_mask'].to(device)
outputs = model(input_ids, attention_mask=attention_mask)
logits = outputs.logits
predictions = torch.argmax(logits, dim=1).cpu().numpy()
predicted_categories = [category_mapping[pred] for pred in predictions]
return predicted_categories
if __name__ == "__main__":
prompts = [
"Intel Core i7 CPU",
"Nikon D3500 Digital Camera",
"Bosch Series 6 Dishwasher",
"Samsung 32 inch Smart TV",
"Apple iPhone 13"
]
category_mapping = {
0: 'cpus',
1: 'digital cameras',
2: 'dishwashers',
3: 'fridge freezers',
4: 'microwaves',
5: 'mobile phones',
6: 'tvs',
7: 'washing machines'
}
model_name = 'Adnan-AI-Labs/DistilBERT-ProductClassifier'
print(f"从Hugging Face Hub加载模型和分词器: {model_name}")
model, tokenizer = load_model_and_tokenizer(model_name, len(category_mapping))
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
predicted_categories = predict(model, tokenizer, prompts, category_mapping, device)
for prompt, category in zip(prompts, predicted_categories):
print(f"提示: '{prompt}' | 预测类别: '{category}'")
输出
从Hugging Face Hub加载模型和分词器: Adnan-AI-Labs/DistilBERT-ProductClassifier
提示: 'Intel Core i7 CPU' | 预测类别: 'cpus'
提示: 'Nikon D3500 Digital Camera' | 预测类别: 'digital cameras'
提示: 'Bosch Series 6 Dishwasher' | 预测类别: 'dishwashers'
提示: 'Samsung 32 inch Smart TV' | 预测类别: 'tvs'
提示: 'Apple iPhone 13' | 预测类别: 'mobile phones'
训练详情
训练数据
该模型基于包含CPU、数码相机、洗碗机、冰箱冰柜、微波炉、手机、电视和洗衣机等多种产品类别的电子商务数据集进行训练。数据通过去除重复项、小写化和文本分词进行预处理。
训练过程
- 预处理: 文本数据被清理、小写化和分词。产品描述被截断为128个标记以确保统一性。
- 超参数: 微调以2e-5的学习率和16的批量大小进行了3个周期。
- 训练硬件: 模型在单个NVIDIA Tesla V100 GPU上训练了大约3小时。
评估
测试数据、因素和指标
模型在单独的产品描述测试集上评估,使用精确率、召回率和F1分数作为评估指标。
总结
该模型实现了96.16%的整体准确率,在多个产品类别中表现强劲。F1分数表明该模型在"CPU"和"数码相机"类别中表现尤为出色。
技术规格
模型架构和目标
DistilBERT-ProductClassifier模型利用DistilBERT架构,针对电子商务产品分类任务微调了文本分类头。
计算基础设施
该模型优化为在CPU和小型GPU上高效运行,适合实时应用。
硬件
该模型需要至少4GB内存以进行高效推理,推荐使用现代CPU或基本GPU。
软件
Transformers库: v4.26.0
Python版本: 3.8或更高
CUDA [可选]: 10.2或更高(如果在GPU上运行)
引用
如果您使用该模型,请按以下方式引用:
@misc{distilbert_product_classifier,
作者 = {Adnan AI Labs},
标题 = {用于电子商务的DistilBERT-ProductClassifier},
年份 = {2024},
网址 = {https://huggingface.co/Adnan-AI-Labs/DistilBERT-ProductClassifier}
}