Downloads · 30 days
13
11% of all-time downloads
linzhe/xgmx
xgmx is a text classification model from linzhe. Use it when you need a label for a piece of text. The card lists the license as mit.
基于 165 部中外经典文学作品、10,671 个角色的性格描述训练的多头人格预测模型。
Downloads · 30 days
13
11% of all-time downloads
All-time downloads
116
Public
Repo size
178 MB
Likes
1
Public
Click a slice to open those files.
.pt178 MB · 100%
From the Hugging Face model README
基于 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
python server.py
# 访问 http://localhost:6006
基于 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) → 描述
文字描述 → text2vec-base-chinese (768维) → MLP (768→256→128→输出) → 人格分数
↓
64维人格向量
5 个独立的 MLP 回归头,每个约 800K 参数,总模型大小 < 10MB。
@misc{character-personality-embedding,
author = {Character Personality Embedding Project},
title = {Character Personality MLP Models},
year = {2026},
}