小说人物性格 Embedding 模型
基于 165 部中外经典文学作品、10,671 个角色的性格描述训练的多头人格预测模型。
🎮 玩法指南
知己 — 输入一段描述自身性格的文字,点"预测",自动推理出你的大五人格、MBTI、九型人格、性格色彩等全方位人格画像。
觅知音 — 基于 64 维人格向量,从 9,534 个历史与文学角色中,自动找到与你性格最相似的那些人——看看你和曹操、诸葛亮、林黛玉谁更像?
找反差 — 一键切换"互补"模式,找出与你性格完全相反的角色,发现你的另一面。
造角色 — 随机生成 NPC,每个都附带完整的人格画像和性格描述文字,可用于游戏角色设计、文学创作灵感。
功能
输入一段人物描述文字,输出 5 种人格维度 + 64 维人格向量:
| 人格理论 | 输出维度 | 说明 |
|---|---|---|
| 大五人格 (OCEAN) | 5维 (1-10) | 开放性、尽责性、外向性、宜人性、神经质 |
| 性格四型 (PDP) | 4维 (0-100) | 力量型、活泼型、完美型、和平型 |
| 性格色彩 | 4维 (0-100) | 红、蓝、黄、绿 |
| MBTI | 8维 (0-100) | E/I, S/N, T/F, J/P |
| 九型人格 | 9维 (0-100) | 1-9号 |
| 人格向量 | 64维 | 用于相似度/互补度计算 |
快速开始
安装
# 基础安装(仅推理)
pip install torch sentence-transformers numpy
# 或通过 pip 安装本包
pip install -e .
# Web 服务额外依赖
pip install fastapi uvicorn
下载模型
从 HuggingFace 一键下载所有文件:
pip install huggingface-hub
# 国内用户设置镜像加速
set HF_ENDPOINT=https://hf-mirror.com # Windows
export HF_ENDPOINT=https://hf-mirror.com # Linux/Mac
# 下载整个仓库(推荐)
huggingface-cli download linzhe/xgmx --local-dir .
下载后你会得到这些文件:
| 文件 | 说明 |
|---|---|
personality_model.pt |
模型权重 (~1MB) |
modeling.py |
推理代码 |
config.json |
配置 |
qwen_desc_ep3.pt |
Qwen LoRA (~176MB,可选) |
Qwen 需要自行下载 Qwen2.5-7B-Instruct 基座模型(~14GB)。
推理示例
from modeling import PersonalityPredictor
p = PersonalityPredictor()
result = p.predict("曹操性格奸诈多疑、雄才大略,善于用人却心狠手辣")
print(result["mbti"]["_mbti"]) # ENTJ
print(result["ocean"]["神经质"]) # 7.2
Web 服务
python server.py
# 访问 http://localhost:6006
Qwen 描述生成(可选)
基于 64 维人格向量生成自然语言性格描述。
安装额外依赖
pip install transformers peft accelerate bitsandbytes
下载基座模型
Qwen2.5-7B-Instruct 需自行下载(约 14GB):
# HuggingFace
huggingface-cli download Qwen/Qwen2.5-7B-Instruct --local-dir ./Qwen2.5-7B-Instruct
推理示例
python qwen_infer.py "曹操性格奸诈多疑、雄才大略"
或代码中调用:
from qwen_infer import load_qwen, generate
from modeling import PersonalityPredictor
# 先用 MLP 预测向量
predictor = PersonalityPredictor()
result = predictor.predict("曹操性格奸诈多疑")
# Qwen 生成描述
model, proj, tokenizer = load_qwen()
desc = generate(model, proj, tokenizer, result["vector"])
print(desc)
模型架构
64维向量 → Projector(64→256→512→4×3584) → 4软Token → Qwen2.5-7B(LoRA) → 描述
MLP 模型架构
文字描述 → text2vec-base-chinese (768维) → MLP (768→256→128→输出) → 人格分数
↓
64维人格向量
5 个独立的 MLP 回归头,每个约 800K 参数,总模型大小 < 10MB。
训练数据
- 165 部经典文学作品(四大名著、金庸武侠、世界文学等)
- 10,671 个角色的 DeepSeek-chat 标注人格分数
- 85%/15% 训练/验证划分
- 50 epochs, MSE 损失, Adam 优化器
局限性
- 基于文学角色训练,对真实人物的适应度未经测试
- 继承了 DeepSeek 标注的偏好和偏差
- 输入需为中文,建议 50-200 字
引用
@misc{character-personality-embedding,
author = {Character Personality Embedding Project},
title = {Character Personality MLP Models},
year = {2026},
}
- Downloads last month
- 83