🚀 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()
)