Microsoft Finetuned Personality
模型简介
基于迁移学习技术微调的文本分类模型,用于预测用户的宜人性、尽责性、外向性、神经质和开放性人格特质
模型特点
高准确率预测
通过迁移学习技术实现97%以上的预测准确率
精简评估体系
基于20个精选问题的迷你大五人格评估,简化传统50题的复杂流程
快速推理
采用MiniLM架构,比BERT-Base快2.7倍的推理速度
模型能力
人格特质分析
心理特征识别
文本情感倾向判断
使用案例
个人发展
自我认知工具
帮助用户了解自身人格特质倾向
输出五大特质百分比评分
心理学研究
群体人格分析
用于心理学实验或社会调查中的人格特征研究
🚀 大五人格预测模型
本项目基于微调后的模型,能够根据输入文本准确预测个体的大五人格特质。通过使用精心挑选的数据集和迁移学习技术,模型在预测准确性上取得了显著提升,为个人了解自身人格特质提供了有力的工具。
🚀 快速开始
使用以下代码开始使用该模型:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
def personality_detection(text, threshold=0.05, endpoint=1.0):
token = "Write_Your_HUG_Access_token_Id_Here"
tokenizer = AutoTokenizer.from_pretrained("Nasserelsaman/microsoft-finetuned-personality", token=token)
model = AutoModelForSequenceClassification.from_pretrained("Nasserelsaman/microsoft-finetuned-personality", token=token)
inputs = tokenizer(text, truncation=True, padding=True, return_tensors="pt")
outputs = model(**inputs)
predictions = outputs.logits.squeeze().detach().numpy()
# 获取原始对数几率
logits = model(**inputs).logits
# 应用Sigmoid函数将值压缩到0到1之间
probabilities = torch.sigmoid(logits)
# 将小于阈值的值设置为0.05
predictions[predictions < threshold] = 0.05
predictions[predictions > endpoint] = 1.0
label_names = ['Agreeableness', 'Conscientiousness', 'Extraversion', 'Neuroticism', 'Openness']
result = {label_names[i]: f"{predictions[i]*100:.0f}%" for i in range(len(label_names))}
return result
✨ 主要特性
- 高精度预测:通过迁移学习,使用 microsoft/MiniLM-L12-H384-uncased 模型,将人格特质的预测准确率提高到了 97% 以上,相比之前基于 roberta-large 的模型(65%)有了显著提升。
- 便捷评估:仅依赖迷你大五人格评估(20 个问题),使评估更加简单方便。
- 多场景适用:可直接用于个人了解自身人格特质,也可用于后续特定需求的微调。
📦 安装指南
在运行上述代码前,请确保你已经安装了 transformers
库,可以使用以下命令进行安装:
pip install transformers
💻 使用示例
基础用法
text_input = "Strongly Agree with that I am the life of the party. Disagree with that I sympathize with others’ feelings. Strongly Agree with that I get chores done right away. Disagree with that I have frequent mood swings. Disagree with that I have a vivid imagination. Neutral with that I don’t talk a lot. Strongly Disagree with that I am not interested in other people’s problems. Neutral with that I often forget to put things back in their proper place. Strongly Agree with that I am relaxed most of the time. Neutral with that I am not interested in abstract ideas. Strongly Agree with that I talk to a lot of different people at parties. Agree with that I feel others’ emotions. Disagree with that I like order. Strongly Agree with that I get upset easily. Neutral with that I have difficulty understanding abstract ideas. Strongly Disagree with that I keep in the background. Agree with that I am not really interested in others. Strongly Disagree with that I make a mess of things. Strongly Agree with that I seldom feel blue. Strongly Disagree with that I do not have a good imagination."
personality_prediction = personality_detection(text_input)
print(personality_prediction)
输出结果
{
"Agreeableness": "5%",
"Conscientiousness": "5%",
"Extraversion": "6%",
"Neuroticism": "100%",
"Openness": "5%"
}
📚 详细文档
模型描述
本项目为了预测大五人格特质,采用了迁移学习方法,使用 microsoft/MiniLM-L12-H384-uncased 模型。通过精心挑选的人格特质数据集,对模型在人格特质和输入文本之间的学习模式进行了优化。
数据集
模型基于 Kaggle 上的数据集进行微调,该数据集包含由 Open Psychometrics 在线收集的 1,015,342 份问卷答案。数据集链接
微调过程
- 数据预处理:在 Colab 上对数据进行预处理,仅选取迷你大五人格评估的 20 个问题,将 20 个问题合并为一个新列 "text",并计算人格类型作为 "label" 列。
- 模型训练:使用 Colab(免费 GPU)对 microsoft/MiniLM-L12-H384-uncased 基础模型进行微调,超参数设置如下:
- 学习率(learning_rate):5e-6
- 批次大小(batch_size):64
- 最大序列长度(max_seq_length):275
- 训练轮数(num_train_epochs):3
模型使用场景
直接使用
个人可以直接使用该人格预测模型,根据输入文本了解自己的人格特质。该模型仅用于教育和研究目的,作者对其他用途不承担责任。
下游使用
该模型可用于后续特定需求的微调。
超出适用范围的使用
在就业、教育或法律等领域,对人员做出重要决策时,请谨慎使用该模型。
风险与限制
人格预测模型与其他机器学习模型一样,存在一定的局限性和潜在偏差,使用时需加以考虑。
建议
为降低人格预测模型带来的风险和局限性,建议遵循以下准则:
- 了解模型局限性:用户应了解模型的局限性和潜在偏差,认识到人格特质是多方面的,不能完全由单一模型或文本分析来代表。
- 避免刻板印象和歧视:用户在做出判断或结论时,应谨慎依赖预测的人格特质,避免基于人格预测对他人进行歧视或强化刻板印象。
- 结合上下文解读:将模型的预测结果置于具体情境中,并结合输入文本之外的其他信息进行综合评估。
- 保障数据隐私和安全:确保用户数据的安全处理,符合隐私法规。用户在提供个人信息时应保持谨慎。
- 促进道德使用:鼓励正确使用人格预测模型,避免滥用或有害使用。
🔧 技术细节
训练轮数与准确性
训练仅进行了 3 个轮次,从第二轮开始就取得了较高的准确率,且未出现过拟合现象,具体数据如下:
轮次 | 训练损失 | 验证损失 | 准确率 |
---|---|---|---|
1 | 0.626600 | 0.188280 | 0.945493 |
2 | 0.166500 | 0.095803 | 0.970488 |
3 | 0.104300 | 0.074864 | 0.976524 |
未过拟合原因
- 大量训练数据:使用了包含 360,855 个样本的大型训练数据集,模型有足够的数据进行学习。
- 预训练模型优势:使用预训练语言模型 microsoft/MiniLM-L12-H384-uncased 进行初始化,比随机初始化收敛更快。该模型具有 12 层、384 隐藏层、12 头、33M 参数,比 BERT-Base 快 2.7 倍。更多详细信息可参考论文 "MiniLM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers"。
- 低损失值:仅经过 2 - 3 个轮次,训练和验证损失就较低,表明模型能够正确拟合数据,未出现过拟合。
- 稳定学习曲线:随着轮次增加,准确率提高,损失值降低,呈现出平稳的连续学习趋势,而非出现波动,这也表明模型未过拟合。
评估指标
使用的评估指标包括准确率、召回率和 F1 分数:
- 准确率:训练数据(0.976524) - 测试数据(0.9765239651189411)
- 召回率:{'recall': 0.9765239651189411}
- F1 分数:{'f1': 0.9765239651189411}
模型总结
属性 | 详情 |
---|---|
模型名称 | microsoft/MiniLM-L12-H384-uncased |
数据集大小 | 360855 行(对 Kaggle 人格数据集 进行数据清理和类别平衡处理后) |
训练轮数 | 3 |
分词器最大长度 | 275 |
批次大小 | 64 |
学习率 | 5e-6 |
训练软件 | Google Colab(免费 GPU) |
最终微调模型
https://huggingface.co/Nasserelsaman/microsoft-finetuned-personality
模型 Streamlit 应用
https://personality-assessment.streamlit.app/
项目基础
本项目基于 The Mini IPIP personality measure
📄 许可证
本项目采用 MIT 许可证。
👨💻 模型卡片作者
Distilbert Base Uncased Finetuned Sst 2 English
Apache-2.0
基于DistilBERT-base-uncased在SST-2情感分析数据集上微调的文本分类模型,准确率91.3%
文本分类 英语
D
distilbert
5.2M
746
Xlm Roberta Base Language Detection
MIT
基于XLM-RoBERTa的多语言检测模型,支持20种语言的文本分类
文本分类
Transformers 支持多种语言

X
papluca
2.7M
333
Roberta Hate Speech Dynabench R4 Target
该模型通过动态生成数据集来改进在线仇恨检测,专注于从最差案例中学习以提高检测效果。
文本分类
Transformers 英语

R
facebook
2.0M
80
Bert Base Multilingual Uncased Sentiment
MIT
基于bert-base-multilingual-uncased微调的多语言情感分析模型,支持6种语言的商品评论情感分析
文本分类 支持多种语言
B
nlptown
1.8M
371
Emotion English Distilroberta Base
基于DistilRoBERTa-base微调的英文文本情感分类模型,可预测埃克曼六种基本情绪及中性类别。
文本分类
Transformers 英语

E
j-hartmann
1.1M
402
Robertuito Sentiment Analysis
基于RoBERTuito的西班牙语推文情感分析模型,支持POS(积极)/NEG(消极)/NEU(中性)三类情感分类
文本分类 西班牙语
R
pysentimiento
1.0M
88
Finbert Tone
FinBERT是一款基于金融通讯文本预训练的BERT模型,专注于金融自然语言处理领域。finbert-tone是其微调版本,用于金融情感分析任务。
文本分类
Transformers 英语

F
yiyanghkust
998.46k
178
Roberta Base Go Emotions
MIT
基于RoBERTa-base的多标签情感分类模型,在go_emotions数据集上训练,支持28种情感标签识别。
文本分类
Transformers 英语

R
SamLowe
848.12k
565
Xlm Emo T
XLM-EMO是一个基于XLM-T模型微调的多语言情感分析模型,支持19种语言,专门针对社交媒体文本的情感预测。
文本分类
Transformers 其他

X
MilaNLProc
692.30k
7
Deberta V3 Base Mnli Fever Anli
MIT
基于MultiNLI、Fever-NLI和ANLI数据集训练的DeBERTa-v3模型,擅长零样本分类和自然语言推理任务
文本分类
Transformers 英语

D
MoritzLaurer
613.93k
204
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98
智启未来,您的人工智能解决方案智库
简体中文