distilbert-base-uncased Finetuned for Emotion Analysis

这是一个基于 distilbert-base-uncased 微调的、能够识别 28种细粒度情感 的分析模型。

特别说明:这个模型主要是为了测试在新款 Mac Mini M4 上进行本地模型微调的流程和性能而创建的一次技术尝试。因此,它没有经过详尽的评估,主要用于演示和实验目的。

模型描述

本模型可以识别文本中蕴含的 28 种不同的情绪。这比传统的情感分析(如积极/消极/中性)提供了更丰富、更细致的视角。

完整的标签列表如下:

Label 中文 Label 中文
admiration 钦佩 gratitude 感谢
amusement 娱乐 grief 悲痛
anger 愤怒 joy 开心
annoyance 烦躁 love
approval 认同 nervousness 紧张
caring 关心 optimism 乐观
confusion 困惑 pride 自豪
curiosity 好奇 realization 顿悟
desire 渴望 relief 如释重负
disappointment 失望 remorse 懊悔
disapproval 不认同 sadness 悲伤
disgust 厌恶 surprise 惊讶
embarrassment 尴尬 neutral 中性
excitement 激动 fear 害怕

如何使用 (How to Use)

你可以通过 transformers 库的 pipeline 轻松使用这个模型。

from transformers import pipeline

# 使用模型 ID 加载 pipeline
model_id = "tourcoder/distilbert-base-uncased-finetuned-emotion-analysis"
emotion_classifier = pipeline("text-classification", model=model_id)

# 进行预测
text = "I can't believe I finished the project, I am so relieved!"
results = emotion_classifier(text)

print(results)
# 预期输出: [{'label': 'relief', 'score': 0.9...}]

在 Apple Silicon (M1/M2/M3/M4) 上运行

如果你在 Mac 上使用,可以指定设备为 "mps" 来利用 Apple Silicon 的 GPU 加速。

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# 模型ID
model_id = "tourcoder/distilbert-base-uncased-finetuned-emotion-analysis"

# 检查 MPS 是否可用
device = "mps" if torch.backends.mps.is_available() else "cpu"
print(f"Using device: {device}")

# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSequenceClassification.from_pretrained(model_id).to(device)

# 准备输入
text = "This experiment on the Mac Mini M4 was a great success!"
inputs = tokenizer(text, return_tensors="pt").to(device)

# 推理
with torch.no_grad():
    logits = model(**inputs).logits

# 获取预测结果
predicted_class_id = logits.argmax().item()
predicted_label = model.config.id2label[predicted_class_id]

print(f"Text: '{text}'")
print(f"Predicted emotion: {predicted_label}")
# 预期输出: Predicted emotion: joy (或 pride / admiration)

训练与实验说明

  • 实验目的: 验证和体验在 Mac Mini (M4 芯片) 上使用 PyTorch 和 transformers 库进行本地模型微调的完整流程。
  • 硬件: Apple Mac Mini (M4 Chip)
  • 框架: PyTorch (利用 MPS 后端进行加速)
  • 基础模型: distilbert-base-uncased
  • 数据集: 该模型使用了包含28个情感标签的数据集进行微调,自制数据集。
  • 免责声明: 这是一个概念验证(Proof of Concept)模型。其性能和鲁棒性未经过严格测试,不建议直接用于生产环境。

局限性 (Limitations)

  • distilbert 是一个轻量级模型,虽然速度快,但在理解复杂和细微的情感上可能不如更大的模型(如 RoBERTaDeBERTa)。
  • 模型的表现高度依赖于其训练数据。对于训练集中未涵盖的文本风格或领域,其预测可能不准确。
  • 模型可能会反映出训练数据中存在的偏见。
Downloads last month
35
Safetensors
Model size
67M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support