CharacterPlex LoRA v1 (step 2,500, no G)

Private, research use only. The FALLBACK CharacterPlex checkpoint: a LoRA fine-tune of NVIDIA PersonaPlex 7B for full-duplex character role-play with pinned card memory and live director NOTES. It was the validated demo checkpoint before the full-parameter run; the primary model is utkarshUY/CharacterPlex-FullFT-v4.

Code and deployment: private GitHub repo utkarshyadav009/CharacterPlex (docs/DEPLOY.md, profile fallback).

Files

File What
merged/model.safetensors use this for inference: base + LoRA merged, bf16, 475 tensors (same names/shapes as the base)
merged/memory.json, merged/codebooks.json pinned-memory layout and codebooks; the server reads them from the weights' folder
adapter/lora_step-0002500.pt the authoritative LoRA adapter, fp32, 730 tensors (*.lora.A / *.lora.B), as saved by the trainer
adapter/lora_step-0002500.safetensors the same tensors in safetensors (verified bit-identical to the .pt)
export.json, export_verify.json merge record and verification: losses LoRA fp32 3.66993, merged fp32 3.66993, merged bf16 3.66986, base 4.41680 on the fixed batch
train_config.yaml the trainer config of the run (paths are the cluster's)
base_weights.sha256 SHA-256 of the base model.safetensors the adapter applies to
tokenizer_spm_32k_3.model, tokenizer-e351c8d8-checkpoint125.safetensors text tokenizer and Mimi codec from the base repo, unchanged
SHA256SUMS SHA-256 of every file

Base model and adapter compatibility

  • Base: nvidia/personaplex-7b-v1 @ fdaf4090a61cb315c138a1faee287ffd6c716309, model.safetensors sha256 db1290db583cdaa6cb4de444ed279e0b586ca2a372b41434b07a7461c8c0e2f4 (gated: accept the licence on HF).
  • LoRA rank 128, scaling 2.0, on the temporal transformer (attention in/out, gating), the text head and the depformer (incl. its input projections). W' = W + scaling · B·A.
  • The merged file is what was served and evaluated. To re-merge, use the CharacterPlex trainer (models/personaplex/finetune/trainer/pick_export.py <run_dir> --step 2500, which merges trainable/step-N.pt into the base and verifies merged vs unmerged); the adapter keys are the trainer's own module names, not PEFT names.

Training

Full-data LoRA run (8 × H200), LR 1e-5 (depformer 4e-6, new embeddings 1e-4), warm-up 150, batch 8/GPU, notes_switch (live mid-window NOTES switching), card format v1 (card_format: view, the frozen studio card), without the "G" recipe component. Selected at step 2,500.

Inference configuration (validated)

Card v1 (studio compiler), pinned memory with NOTES, stock voices from the base repo. Runtime memory / floor gate / cardV2 are not needed (profile fallback: all off).

Results (frozen CharacterBench v2.1)

base this FullFT v4
Persona (P+L) 5.10 5.36 5.50
Identity under a conflicting note 8.12 7.75 7.42
Director-note lift (pts) 0 38.9 65.9
Arc / memory reveal on cue 1.9 % 28.8 % 92.3 %
User's name recalled 69 % 38 % 19 %
Natural QA: false premise accepted 34.6 % 17.3 % 34.6 %
Still talking at user's turn end 6.5 % 21.3 % 17.1 %
Reply latency 1.20 s 1.24 s 1.29 s
UTMOS 3.06 2.94 2.91
10-min persona, first → last 3 min 5.25 → 3.50 5.33 → 3.83 5.92 → 6.08

Limitations

Talks over the user (21 % at turn end), weaker recall than base, persona drifts over 10 minutes, literal pause-marker artefacts in some outputs (the v4 data fixed this for FullFT), English only.

Licences

Derivative of NVIDIA PersonaPlex 7B (NVIDIA Open Model License); Mimi / Moshi from Kyutai (CC BY 4.0). Training data include third-party corpora with their own (some non-commercial) licences. Research use; keep private.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for utkarshUY/CharacterPlex-LoRA-v1

Adapter
(18)
this model