Instructions to use kaishuiji/vheart-affect-v9 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use kaishuiji/vheart-affect-v9 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-4B") model = PeftModel.from_pretrained(base_model, "kaishuiji/vheart-affect-v9") - Notebooks
- Google Colab
- Kaggle
vheart-affect-v9
A LoRA adapter that turns Qwen3-4B into a fine-tuned affect source for the feltstate felt-state library.
This is the larger / finer reference. For a smaller / faster variant
on the v8 24-label vocab, see
kaishuiji/vheart-affect-v8.
What it does
Same shape as v8 โ reads a dialogue turn, emits an AffectDelta JSON.
What changed:
- Base bumped to Qwen3-4B โ broader Chinese coverage, sharper context handling.
- Label vocab expanded to 50. v8's 24 labels collapsed bittersweet
and wistful; v9 separates them. New labels span four regions:
- Fine-grained high arousal (excited โ thrilled / euphoric / exhilarated)
- Fine-grained negative (angry / scared / panicked / indignant differentiated from frustrated)
- Anticipation-class (dreading / longing / anticipating / nostalgic)
- Social affect (embarrassed / proud / envious / grateful / ashamed)
- Anticipation as a first-class field. v8 hinted at it; v9 outputs
anticipation: {valence, arousal, weight}so the consumer can model forward-looking mood, not just present.
Why v9 over v8
| use case | adapter |
|---|---|
| Tight inter-rater on 24 labels, consumer GPU, fast | v8 |
| Finer mixed-feeling resolution, anticipation modeling, 4B GPU available | v9 |
Training data โ not released
~800 SFT samples, hand-curated Chinese-first dialogue snippets. Data not released to protect contributor privacy. The schema and label vocabulary are documented; reproduction requires your own corpus.
Label vocab โ 50 labels (v9)
24 v8 labels retained (backward-compatible) plus 26 new. Anchor table
follows the same (valence, arousal) format as v8 โ see
label_anchors_v9.json in this repo for the full table.
Usage
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base = "Qwen/Qwen3-4B"
tok = AutoTokenizer.from_pretrained(base)
mdl = AutoModelForCausalLM.from_pretrained(
base, device_map="auto", torch_dtype="auto",
)
mdl = PeftModel.from_pretrained(mdl, "kaishuiji/vheart-affect-v9")
mdl.eval()
With feltstate
from feltstate import Engine
from feltstate.sources import VheartSource
eng = Engine(source=VheartSource("kaishuiji/vheart-affect-v9"))
eng.observe("ไปๆ่ท้ไบไธๅจ็ๅฎ้ชใ")
print(eng.state.mood.mixed_blend)
Limitations
- GPU required. 4B + LoRA is ~6GB VRAM in fp16. v8 if you don't have one.
- Chinese-first. Same caveat as v8.
- Single-character measurement. Same caveat as v8.
- Schema bound to feltstate. Same caveat as v8.
- v9 vs v8 isn't a clean win on every metric. Internal stress test (mve_v02 baseline) had v8 slightly ahead on simple emotion_score; v9 wins on mixed-feeling and anticipation tasks. Pick what you measure for.
Citation
@software{feltstate_vheart_v9,
author = {morephine},
title = {feltstate / vheart-affect-v9},
url = {https://huggingface.co/kaishuiji/vheart-affect-v9},
year = {2026}
}
License
Apache 2.0 (matches Qwen3 base).
- Downloads last month
- 11