PersonalityLinMulT — FI Big Five champion weights
Trained checkpoints for the Big Five apparent-personality regression task from
PersonalityLinMulT,
trained on the First Impressions V2 (FI) dataset. Every checkpoint here is a
champion: the current best-performing run for its feature combination,
promoted deliberately (never automatically) via the project's MLflow
Model Registry, and mirrored here so a model can be loaded with nothing but
pip install personalitylinmult — no MLflow, no repo clone.
Usage
from personalitylinmult import PersonalityModel
model = PersonalityModel.from_pretrained("wavlm_best-ccc")
scores = model.predict({"wavlm": wavlm_features}) # {trait: score in [0, 1]}
model.feature_names lists exactly which features a given checkpoint needs;
model.traits lists the five Big Five traits in output order
(openness, conscientiousness, extraversion, agreeableness,
emotional_stability).
ONNX Runtime (optional, pip install personalitylinmult[onnx])
from personalitylinmult.onnx import PersonalityModelONNX
model = PersonalityModelONNX.from_pretrained("wavlm_best-ccc")
scores = model.predict_from_audio("clip.wav") # raw audio/video -> predictions,
# no torch/transformers/exordium
A separate class, not a flag on PersonalityModel — installing the plain
package never pulls in onnxruntime. WavLM's own ONNX export
(wavlm-base-plus.onnx, shared across every WavLM-based champion) downloads
on first use. See docs/experiments.md (Blocks 5-6) for the accuracy/speed
benchmark and the small, measured prediction drift from ffmpeg-based
resampling (~0.001-0.004 per trait).
Model id naming
{features joined by "_", multiword feature names use "-"}_best-{metric},
e.g.:
wavlm_best-ccc— single-stream LinT, WavLM audio only.wavlm-emotion2vec_best-ccc— cross-modal LinMulT, audio fusion (WavLM + emotion2vec).avt_best-ccc— cross-modal LinMulT, all 7 features (audio + visual + text).
The architecture (LinT vs. LinMulT) is never part of the id: a checkpoint is
self-describing, and PersonalityModel.from_pretrained(...) reads it off the
downloaded checkpoint automatically.
_best-{metric} names which validation metric the run was selected on —
ccc (Lin's concordance correlation) is preferred over mae/loss for this
task, since elementwise losses collapse prediction variance toward the
training mean (see docs/experiments.md for the full comparison and the
std_ratio metric that catches this).
Current champions
wavlm_best-ccc
Single-stream LinT, WavLM audio only. Trained with ccc loss at
batch_size=256 — the batch size that resolves CCC's per-batch statistical
noise problem (see docs/experiments.md, Block 3, for the full diagnosis).
| Metric | Value |
|---|---|
test mean(1 - MAE) |
0.8918 |
test mean CCC |
0.5604 |
test mean Pearson r |
0.5609 |
test mean std_ratio |
1.0013 |
- MLflow experiment:
fi_lint_wavlm-ccc-bs256 - MLflow run_id:
efb88223fdd04753bb8cefc46a5b51f7 - Registered as:
fi_lint_wavlm-ccc-bs256v1,@champion - Git SHA:
0f60e83f35061e8ee26af61e5a58ad1950986446 - Reproduce:
make train-fi-wavlm ARGS="--set train.loss=ccc --set data.batch_size=256"
Every other promoted champion (e.g. an AVT full-multimodal model, once one
finishes training and is evaluated) will be added here the same way —
promoted via make promote-champion and published via
make push-champion-model, never automatically.
License
These weights are derived from training on the ChaLearn First Impressions V2 dataset and are released under the same terms as the dataset itself — see the official ChaLearn LAP release. These are apparent-personality perception models: they predict how a panel of annotators rated a person from a short clip, not any ground truth about the person. Use accordingly.