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-bs256 v1, @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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support