🚀 dwulff/mpnet-personality
这是一个 sentence-transformers 模型,它可以将与人格相关的条目或文本映射到一个768维的密集向量空间中,可用于人格心理学的许多任务,例如对人格条目和量表进行聚类、将人格量表映射到人格结构等。
该模型是通过使用200k对人格条目之间的无符号经验相关性对 all-mpnet-base-v2 进行微调而生成的。因此,该模型能够独立于方向(例如否定)对与人格相关的文本内容进行编码。
详情请参阅 Wulff & Mata (2025)(请参阅 补充材料)。
🚀 快速开始
安装
确保 sentence-transformers 已安装:
# 最新版本
pip install -U sentence-transformers
# 最新开发版本
pip install git+https://github.com/UKPLab/sentence-transformers.git
使用示例
基础用法
你可以按以下方式提取嵌入向量:
from sentence_transformers import SentenceTransformer
sentences = ["Rarely think about how I feel.", "Make decisions quickly."]
model = SentenceTransformer('dwulff/mpnet-personality')
embeddings = model.encode(sentences)
print(embeddings)
✨ 主要特性
- 能够将人格相关文本映射到768维密集向量空间,适用于人格心理学的多种任务。
- 编码时独立于文本方向(如否定)。
📚 详细文档
评估结果
该模型已在公开的人格数据上进行了评估。对于标准的人格量表,如大五人格(BIG5)或六维人格(HEXACO)量表,该模型预测人格条目之间的经验相关性约为皮尔逊 r ~ .6,量表之间的经验相关性约为皮尔逊 r ~ .7。
由于记忆效应,该模型在其训练过的许多常见人格条目上的表现可能更高(r ~ .9)。对于更专业的人格评估和人格条目以外的文本,以及人格因素,由于相关性方差的减小,其性能会较差。
详情请参阅 Wulff & Mata (2025)(请参阅 补充材料)。
引用
如果你使用了该模型,请按以下格式引用:
@article{wulff2024taxonomic,
author = {Wulff, Dirk U. and Mata, Rui},
title = {Semantic embeddings reveal and address taxonomic incommensurability in psychological measurement},
journal = {Nature Human Behavior},
doi = {https://doi.org/10.1038/s41562-024-02089-y}
}
训练
该模型的训练参数如下:
数据加载器
torch.utils.data.dataloader.DataLoader
,长度为3125,参数如下:
{'batch_size': 64, 'sampler': 'torch.utils.data.sampler.RandomSampler', 'batch_sampler': 'torch.utils.data.sampler.BatchSampler'}
损失函数
sentence_transformers.losses.CosineSimilarityLoss.CosineSimilarityLoss
fit()
方法的参数:
{
"epochs": 3,
"evaluation_steps": 0,
"evaluator": "NoneType",
"max_grad_norm": 1,
"optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
"optimizer_params": {
"lr": 2e-05
},
"scheduler": "WarmupLinear",
"steps_per_epoch": null,
"warmup_steps": 625,
"weight_decay": 0.01
}
完整模型架构
SentenceTransformer(
(0): Transformer({'max_seq_length': 384, 'do_lower_case': False}) with Transformer model: MPNetModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
(2): Normalize()
)