许可证: MIT
语言: 英语
微件:
- 文本: >
"我对'我是派对中的灵魂人物'持中立态度,强烈认同'我能体谅他人的感受',同意'我会立刻完成家务',同意'我情绪波动频繁',同意'我拥有丰富的想象力',强烈认同'我不爱多说话',强烈反对'我对别人的问题不感兴趣',强烈反对'我经常忘记把东西放回原位',不同意'我大部分时间都很放松',不同意'我对抽象概念不感兴趣',同意'我在派对上与很多人交谈',强烈反对'我能感受到他人的情绪',同意'我喜欢井然有序',强烈认同'我容易心烦意乱',对'我难以理解抽象概念'持中立态度,强烈反对'我保持低调',强烈反对'我对他人不感兴趣',强烈反对'我把事情搞得一团糟',不同意'我很少感到忧郁',不同意'我没有很好的想象力'"
- 文本: >
"我强烈反对'我是派对中的灵魂人物',强烈反对'我能体谅他人的感受',强烈反对'我会立刻完成家务',同意'我情绪波动频繁',强烈反对'我拥有丰富的想象力',同意'我不爱多说话',不同意'我对别人的问题不感兴趣',不同意'我经常忘记把东西放回原位',同意'我大部分时间都很放松',强烈认同'我对抽象概念不感兴趣',强烈认同'我在派对上与很多人交谈',不同意'我能感受到他人的情绪',强烈认同'我喜欢井然有序',同意'我容易心烦意乱',对'我难以理解抽象概念'持中立态度,强烈认同'我保持低调',强烈认同'我对他人不感兴趣',强烈认同'我把事情搞得一团糟',强烈认同'我很少感到忧郁',不同意'我没有很好的想象力'"
- 文本: >
"我不同意'我是派对中的灵魂人物',强烈认同'我能体谅他人的感受',同意'我会立刻完成家务',强烈认同'我情绪波动频繁',同意'我拥有丰富的想象力',强烈认同'我不爱多说话',强烈反对'我对别人的问题不感兴趣',强烈反对'我经常忘记把东西放回原位',强烈认同'我大部分时间都很放松',同意'我对抽象概念不感兴趣',同意'我在派对上与很多人交谈',同意'我能感受到他人的情绪',同意'我喜欢井然有序',强烈反对'我容易心烦意乱',强烈反对'我难以理解抽象概念',强烈反对'我保持低调',同意'我对他人不感兴趣',强烈反对'我把事情搞得一团糟',强烈反对'我很少感到忧郁',强烈反对'我没有很好的想象力'"
库名称: transformers
管道标签: 文本分类
标签:
- 人格
- 人格分类
- 迷你大五人格评估
- 人格类型 (OCEAN)
- 宜人性
- 尽责性
- 外向性
- 神经质
- 开放性
模型描述
用途:-
直接使用:
- 个人可直接使用此人格预测模型,基于输入文本获取自身人格特质的洞察。用户输入文本即可获得大五人格特质的预测结果。本模型仅供教育与研究用途,超出此范围的使用作者概不负责。
下游应用:
- 此模型设计用于后续特定需求的微调或应用,是独立的人格预测微调模型。
非适用范围:
- 在就业、教育或法律等关键领域对个人做重大决策时,需谨慎使用此模型。
偏见、风险与限制:
- 与任何机器学习模型类似,人格预测模型存在局限性及潜在偏见,使用时需注意。
泛化性:
- 模型通过训练数据集中的模式预测人格特质。若应用于训练数据中代表性不足的不同种族或文化背景个体,结果可能不准确。
伦理考量:
- 人格预测模型应负责任地使用,需认识到人格特质不能定义一个人的价值或能力。避免基于预测结果形成不公正判断或歧视。
隐私顾虑:
- 模型依赖用户提供的输入文本,可能包含敏感信息。用户应谨慎提供个人信息并确保数据安全。
建议:
- 为降低人格预测模型的风险与限制,建议遵循以下准则:
意识与教育:
- 用户需了解模型的局限性与潜在偏见。人格特质具有复杂性,单一模型或文本分析无法全面体现。
避免刻板印象与歧视:
- 用户应避免仅基于预测的人格特质做决策或结论。人格预测不可用于歧视或强化刻板印象,本模型仅供教育与研究用途。
情境化解读:
- 结合输入文本外的其他信息,在具体情境中理解模型预测结果。
数据隐私与安全:
- 确保用户数据安全处理,符合隐私法规。用户需谨慎提供个人信息。
倡导道德使用:
模型入门指南:
使用以下代码快速开始使用模型。
from transformers import AutoTokenizer, AutoModelForSequenceClassification
def personality_detection(text, threshold=0.05, endpoint= 1.0):
token="填写您的HUG访问令牌ID"
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
probabilities = torch.sigmoid(logits)
predictions[predictions < threshold] = 0.05
predictions[predictions > endpoint] = 1.0
label_names = ['宜人性', '尽责性', '外向性', '神经质', '开放性']
result = {label_names[i]: f"{predictions[i]*100:.0f}%" for i in range(len(label_names))}
return result
结果
[最终获得准确率超过97%的微调模型;通过我的Streamlit应用自行测试
personality_detection函数返回基于输入文本预测的人格特质字典。
字典包含以下人格特质及其对应预测值:
- 宜人性: 5%至100%之间的值,表示预测的宜人性特质。
- 尽责性: 5%至100%之间的值,表示预测的尽责性特质。
- 外向性: 5%至100%之间的值,表示预测的外向性特质。
- 神经质: 5%至100%之间的值,表示预测的神经质特质。
- 开放性: 5%至100%之间的值,表示预测的开放性特质。
请注意,我将最小值设为5%而非0%,因为0%无实际意义,5%表示用户在此特质上表现较低,而100%表示此特质占主导地位。
示例:-
text_input = "强烈认同'我是派对中的灵魂人物'。
不同意'我能体谅他人的感受'。
强烈认同'我会立刻完成家务'。
不同意'我情绪波动频繁'。
不同意'我拥有丰富的想象力'。
对'我不爱多说话'持中立态度。
强烈反对'我对别人的问题不感兴趣'。
对'我经常忘记把东西放回原位'持中立态度。
强烈认同'我大部分时间都很放松'。
对'我对抽象概念不感兴趣'持中立态度。
强烈认同'我在派对上与很多人交谈'。
同意'我能感受到他人的情绪'。
不同意'我喜欢井然有序'。
强烈认同'我容易心烦意乱'。
对'我难以理解抽象概念'持中立态度。
强烈反对'我保持低调'。
同意'我对他人不感兴趣'。
强烈反对'我把事情搞得一团糟'。
强烈认同'我很少感到忧郁'。
强烈反对'我没有很好的想象力'。"
personality_prediction = personality_detection(text_input)
print(personality_prediction)
输出:-
{
"宜人性":"5%"
"尽责性":"5%"
"外向性":"6%"
"神经质":"100%"
"开放性":"5%"
}
训练轮数:
- 仅进行了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头,3300万参数,比BERT-Base快2.7倍)实现了比随机初始化更快的收敛。
- 此点详细技术说明可参阅论文"[MiniLM: Deep Self-Att