Text Generation
PEFT
English
negotiation
emotion
llm-agent
lora
offline-rl
iql
small-language-model
edge-deployable
Instructions to use humanlong/EmoDistill-7b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use humanlong/EmoDistill-7b with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Rename: prompt-free -> emotion-free (more accurate baseline name)
Browse files- README.md +13 -13
- crad/emotionfree/adapter/README.md +11 -0
- desrd/emotionfree/adapter/README.md +11 -0
- ssad/emotionfree/adapter/README.md +11 -0
- ssd/emotionfree/adapter/README.md +11 -0
README.md
CHANGED
|
@@ -32,7 +32,7 @@ pipeline_tag: text-generation
|
|
| 32 |
|
| 33 |
**EmoDistill turns a 7B base LLM into a domain-adaptive emotion-aware negotiation agent.** It decouples *what emotion to show* (an IQL emotion selector over a 28-emotion vocabulary) from *how to express it* (LoRA-SFT imitation followed by JPO refinement against a per-turn LLM judge) β both learned from a fixed **offline** corpus of LLM-vs-LLM negotiations.
|
| 34 |
|
| 35 |
-
This repository hosts **all eight model variants** from the paper: a full **IQL + LoRA-SFT + JPO** stack and
|
| 36 |
|
| 37 |

|
| 38 |
|
|
@@ -47,23 +47,23 @@ Every domain comes in two variants:
|
|
| 47 |
| Variant | What it is | Folder pattern |
|
| 48 |
|---|---|---|
|
| 49 |
| **EmoDistill (full)** β IQL + LoRA-SFT + JPO | The main method: IQL emotion selector picks the emotion, LoRA-SFT adapter expresses it, JPO refines against an LLM judge. Reported as **best** in the paper. | `<domain>/emodistill/` |
|
| 50 |
-
| **
|
| 51 |
|
| 52 |
Across the four benchmark domains:
|
| 53 |
|
| 54 |
-
| Domain | Paper acronym | EmoDistill (full) |
|
| 55 |
|---|---|---|---|
|
| 56 |
-
| Credit / debt recovery | **CRAD** | [`crad/emodistill/`](./crad/emodistill) | [`crad/
|
| 57 |
-
| Disaster / emergency response | **DESRD** | [`desrd/emodistill/`](./desrd/emodistill) | [`desrd/
|
| 58 |
-
| Student bedtime negotiation | **SSAD** | [`ssad/emodistill/`](./ssad/emodistill) | [`ssad/
|
| 59 |
-
| Surgical scheduling | **SSD** | [`ssd/emodistill/`](./ssd/emodistill) | [`ssd/
|
| 60 |
|
| 61 |
Inside each `emodistill/` subfolder:
|
| 62 |
- `adapter/` β LoRA-SFT+JPO adapter weights (`adapter_model.safetensors`, `adapter_config.json`)
|
| 63 |
- `iql/` β IQL emotion selector weights (`q_net.pt`, `v_net.pt`, `policy.pt`)
|
| 64 |
- `config.json` β IQL hyperparameters, emotion vocabulary, JPO settings
|
| 65 |
|
| 66 |
-
Inside each `
|
| 67 |
- `adapter/` β LoRA-SFT-only adapter weights
|
| 68 |
|
| 69 |
---
|
|
@@ -78,7 +78,7 @@ EmoDistill composes **three offline-trained components** at inference (full vari
|
|
| 78 |
|
| 79 |
All three components are **fully offline** β no live LLM API at training time after the negotiation log is collected β and **edge-deployable**: at inference, the runtime is a single 7B model with a LoRA adapter (a few hundred MB) plus a small Q-network for emotion selection.
|
| 80 |
|
| 81 |
-
The **
|
| 82 |
|
| 83 |
## π Intended use
|
| 84 |
|
|
@@ -98,7 +98,7 @@ Companion baselines (same benchmarks, same protocol β full numbers in the pape
|
|
| 98 |
- **[EmoMAS](https://github.com/Yunbo-max/EmoMAS)** (ACL 2026 Main, top 9%, [arXiv:2604.07003](https://arxiv.org/abs/2604.07003)) β Bayesian multi-agent orchestration, no pre-training.
|
| 99 |
- Vanilla 7B (no adapter, no emotion guidance).
|
| 100 |
|
| 101 |
-
**Headline result:** EmoDistill (full) achieves the highest utility across all four domains, surpassing both vanilla and
|
| 102 |
|
| 103 |
## π¦ Quick start (after checkpoint release)
|
| 104 |
|
|
@@ -111,10 +111,10 @@ from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
| 111 |
base = "Qwen/Qwen2.5-7B-Instruct"
|
| 112 |
repo = "humanlong/EmoDistill-7b"
|
| 113 |
|
| 114 |
-
# Pick: ("crad" | "desrd" | "ssad" | "ssd") x ("emodistill" | "
|
| 115 |
domain = "crad"
|
| 116 |
variant = "emodistill" # full IQL + SFT + JPO
|
| 117 |
-
# variant = "
|
| 118 |
|
| 119 |
tok = AutoTokenizer.from_pretrained(base)
|
| 120 |
model = AutoModelForCausalLM.from_pretrained(base, device_map="auto", torch_dtype="auto")
|
|
@@ -159,6 +159,6 @@ Apache 2.0 β matches the base model.
|
|
| 159 |
| [EQ-Negotiator](https://github.com/Yunbo-max/EQ-Negotiator) | NeurIPS 2025 | Personas + HMM + WSLS for SLMs |
|
| 160 |
| [EvoEmo](https://github.com/Yunbo-max/EvoEmo) | arXiv preprint | Online evolutionary emotion policies |
|
| 161 |
| [EmoMAS](https://github.com/Yunbo-max/EmoMAS) | ACL 2026 (top 9%) | Bayesian multi-agent orchestration + 4 benchmarks |
|
| 162 |
-
| **EmoDistill** *(this repo)* | under review | Offline distillation: **4 domain models + 4
|
| 163 |
|
| 164 |
π All five papers + dataset + model in one place: [HF Collection β Emotion-Aware LLM Negotiation](https://huggingface.co/collections/humanlong/emotion-aware-llm-negotiation-6a25d88adcd0b6d41c9d8c75)
|
|
|
|
| 32 |
|
| 33 |
**EmoDistill turns a 7B base LLM into a domain-adaptive emotion-aware negotiation agent.** It decouples *what emotion to show* (an IQL emotion selector over a 28-emotion vocabulary) from *how to express it* (LoRA-SFT imitation followed by JPO refinement against a per-turn LLM judge) β both learned from a fixed **offline** corpus of LLM-vs-LLM negotiations.
|
| 34 |
|
| 35 |
+
This repository hosts **all eight model variants** from the paper: a full **IQL + LoRA-SFT + JPO** stack and an **emotion-free LoRA-SFT-only baseline**, one of each per benchmark domain β **CRAD**, **DESRD**, **SSAD**, **SSD** β for direct head-to-head comparison.
|
| 36 |
|
| 37 |

|
| 38 |
|
|
|
|
| 47 |
| Variant | What it is | Folder pattern |
|
| 48 |
|---|---|---|
|
| 49 |
| **EmoDistill (full)** β IQL + LoRA-SFT + JPO | The main method: IQL emotion selector picks the emotion, LoRA-SFT adapter expresses it, JPO refines against an LLM judge. Reported as **best** in the paper. | `<domain>/emodistill/` |
|
| 50 |
+
| **Emotion-free baseline** β LoRA-SFT only | LoRA fine-tune on the same offline corpus **without** the IQL emotion controller and **without** the JPO judge loop. Isolates "imitation alone" so you can attribute gains to the emotion control + judge components. | `<domain>/emotionfree/` |
|
| 51 |
|
| 52 |
Across the four benchmark domains:
|
| 53 |
|
| 54 |
+
| Domain | Paper acronym | EmoDistill (full) | Emotion-free baseline |
|
| 55 |
|---|---|---|---|
|
| 56 |
+
| Credit / debt recovery | **CRAD** | [`crad/emodistill/`](./crad/emodistill) | [`crad/emotionfree/`](./crad/emotionfree) |
|
| 57 |
+
| Disaster / emergency response | **DESRD** | [`desrd/emodistill/`](./desrd/emodistill) | [`desrd/emotionfree/`](./desrd/emotionfree) |
|
| 58 |
+
| Student bedtime negotiation | **SSAD** | [`ssad/emodistill/`](./ssad/emodistill) | [`ssad/emotionfree/`](./ssad/emotionfree) |
|
| 59 |
+
| Surgical scheduling | **SSD** | [`ssd/emodistill/`](./ssd/emodistill) | [`ssd/emotionfree/`](./ssd/emotionfree) |
|
| 60 |
|
| 61 |
Inside each `emodistill/` subfolder:
|
| 62 |
- `adapter/` β LoRA-SFT+JPO adapter weights (`adapter_model.safetensors`, `adapter_config.json`)
|
| 63 |
- `iql/` β IQL emotion selector weights (`q_net.pt`, `v_net.pt`, `policy.pt`)
|
| 64 |
- `config.json` β IQL hyperparameters, emotion vocabulary, JPO settings
|
| 65 |
|
| 66 |
+
Inside each `emotionfree/` subfolder:
|
| 67 |
- `adapter/` β LoRA-SFT-only adapter weights
|
| 68 |
|
| 69 |
---
|
|
|
|
| 78 |
|
| 79 |
All three components are **fully offline** β no live LLM API at training time after the negotiation log is collected β and **edge-deployable**: at inference, the runtime is a single 7B model with a LoRA adapter (a few hundred MB) plus a small Q-network for emotion selection.
|
| 80 |
|
| 81 |
+
The **emotion-free baseline** isolates the contribution of the IQL + JPO components by training only the LoRA-SFT step on the same offline turns, with no emotion conditioning and no judge refinement.
|
| 82 |
|
| 83 |
## π Intended use
|
| 84 |
|
|
|
|
| 98 |
- **[EmoMAS](https://github.com/Yunbo-max/EmoMAS)** (ACL 2026 Main, top 9%, [arXiv:2604.07003](https://arxiv.org/abs/2604.07003)) β Bayesian multi-agent orchestration, no pre-training.
|
| 99 |
- Vanilla 7B (no adapter, no emotion guidance).
|
| 100 |
|
| 101 |
+
**Headline result:** EmoDistill (full) achieves the highest utility across all four domains, surpassing both vanilla and emotion-free baselines, and outperforming the other emotion-aware methods on edge-deployable 7B compute budgets.
|
| 102 |
|
| 103 |
## π¦ Quick start (after checkpoint release)
|
| 104 |
|
|
|
|
| 111 |
base = "Qwen/Qwen2.5-7B-Instruct"
|
| 112 |
repo = "humanlong/EmoDistill-7b"
|
| 113 |
|
| 114 |
+
# Pick: ("crad" | "desrd" | "ssad" | "ssd") x ("emodistill" | "emotionfree")
|
| 115 |
domain = "crad"
|
| 116 |
variant = "emodistill" # full IQL + SFT + JPO
|
| 117 |
+
# variant = "emotionfree" # LoRA-SFT-only baseline
|
| 118 |
|
| 119 |
tok = AutoTokenizer.from_pretrained(base)
|
| 120 |
model = AutoModelForCausalLM.from_pretrained(base, device_map="auto", torch_dtype="auto")
|
|
|
|
| 159 |
| [EQ-Negotiator](https://github.com/Yunbo-max/EQ-Negotiator) | NeurIPS 2025 | Personas + HMM + WSLS for SLMs |
|
| 160 |
| [EvoEmo](https://github.com/Yunbo-max/EvoEmo) | arXiv preprint | Online evolutionary emotion policies |
|
| 161 |
| [EmoMAS](https://github.com/Yunbo-max/EmoMAS) | ACL 2026 (top 9%) | Bayesian multi-agent orchestration + 4 benchmarks |
|
| 162 |
+
| **EmoDistill** *(this repo)* | under review | Offline distillation: **4 domain models + 4 emotion-free baselines** in a 7B SLM |
|
| 163 |
|
| 164 |
π All five papers + dataset + model in one place: [HF Collection β Emotion-Aware LLM Negotiation](https://huggingface.co/collections/humanlong/emotion-aware-llm-negotiation-6a25d88adcd0b6d41c9d8c75)
|
crad/emotionfree/adapter/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# CRAD / emotion-free adapter β placeholder
|
| 2 |
+
|
| 3 |
+
This subfolder will hold the LoRA adapter weights for the **emotion-free baseline** on the **CRAD** benchmark (Credit Recovery Assessment Dataset (debt recovery)) once training completes.
|
| 4 |
+
|
| 5 |
+
The emotion-free variant is LoRA-SFT-only β no IQL emotion controller, no JPO judge loop β isolating the contribution of emotion control and the judge in the full EmoDistill pipeline.
|
| 6 |
+
|
| 7 |
+
Files to expect:
|
| 8 |
+
- `adapter_model.safetensors` β LoRA weights
|
| 9 |
+
- `adapter_config.json` β PEFT config
|
| 10 |
+
|
| 11 |
+
See the top-level [README](../../../README.md) for the full method and loading examples.
|
desrd/emotionfree/adapter/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# DESRD / emotion-free adapter β placeholder
|
| 2 |
+
|
| 3 |
+
This subfolder will hold the LoRA adapter weights for the **emotion-free baseline** on the **DESRD** benchmark (Disaster Emotional Support & Rescue Dataset (emergency)) once training completes.
|
| 4 |
+
|
| 5 |
+
The emotion-free variant is LoRA-SFT-only β no IQL emotion controller, no JPO judge loop β isolating the contribution of emotion control and the judge in the full EmoDistill pipeline.
|
| 6 |
+
|
| 7 |
+
Files to expect:
|
| 8 |
+
- `adapter_model.safetensors` β LoRA weights
|
| 9 |
+
- `adapter_config.json` β PEFT config
|
| 10 |
+
|
| 11 |
+
See the top-level [README](../../../README.md) for the full method and loading examples.
|
ssad/emotionfree/adapter/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SSAD / emotion-free adapter β placeholder
|
| 2 |
+
|
| 3 |
+
This subfolder will hold the LoRA adapter weights for the **emotion-free baseline** on the **SSAD** benchmark (Student Sleep Alerting Dataset (education)) once training completes.
|
| 4 |
+
|
| 5 |
+
The emotion-free variant is LoRA-SFT-only β no IQL emotion controller, no JPO judge loop β isolating the contribution of emotion control and the judge in the full EmoDistill pipeline.
|
| 6 |
+
|
| 7 |
+
Files to expect:
|
| 8 |
+
- `adapter_model.safetensors` β LoRA weights
|
| 9 |
+
- `adapter_config.json` β PEFT config
|
| 10 |
+
|
| 11 |
+
See the top-level [README](../../../README.md) for the full method and loading examples.
|
ssd/emotionfree/adapter/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SSD / emotion-free adapter β placeholder
|
| 2 |
+
|
| 3 |
+
This subfolder will hold the LoRA adapter weights for the **emotion-free baseline** on the **SSD** benchmark (Surgical Scheduling Dataset (healthcare)) once training completes.
|
| 4 |
+
|
| 5 |
+
The emotion-free variant is LoRA-SFT-only β no IQL emotion controller, no JPO judge loop β isolating the contribution of emotion control and the judge in the full EmoDistill pipeline.
|
| 6 |
+
|
| 7 |
+
Files to expect:
|
| 8 |
+
- `adapter_model.safetensors` β LoRA weights
|
| 9 |
+
- `adapter_config.json` β PEFT config
|
| 10 |
+
|
| 11 |
+
See the top-level [README](../../../README.md) for the full method and loading examples.
|