CoolFace
Modelpublic

sunweiwei/Ditto-8B

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
2likes146downloads
Model Card

Ditto-8B

Ditto-8B is an 8B open-weight model for human behavior simulation, covering theory of mind, character role-play, social skills, learner simulation, user simulation, and persona simulation.

Method

Ditto-8B is trained with DITTO, a reinforcement learning method that uses verbal feedback as the learning signal. After each output, the model receives descriptive feedback and produces an improved version; both are jointly optimized with GRPO. This distills the verbal guidance into the policy, so no feedback is needed at inference time.

Results

Primary metric for each benchmark (higher is better).

DimBenchmarkGPT 5.5Gemini 3.1 ProClaude Opus 4.7Qwen 3.6 PlusOthers*Qwen3 8B InstDitto-8B
CONVUserLLM65.367.757.672.144.646.091.5
CONVMirrorBench56.748.363.748.045.454.073.4
CONVHumanual-Chat28.221.022.622.225.824.721.0
CONVSimArena-Doc83.483.083.582.483.583.684.4
SSSotopia-Hard31.927.832.428.331.727.745.8
COGFantom93.093.080.089.070.023.092.0
COGHitom82.086.093.073.056.062.079.0
COGParatomi99.097.090.094.075.067.095.0
COGSocial-R169.079.067.067.047.054.050.0
ROLECoser66.262.166.555.930.343.564.4
ROLELifechoices91.084.092.079.067.070.070.0
ROLETwinvoice74.086.083.071.040.042.071.0
ROLEBehaviorChain95.092.096.085.036.041.044.0
ROLESimArena-Math68.571.568.770.970.568.969.6
ROLEMistakes72.073.074.067.056.027.036.0
ROLEHumanual-Email50.146.950.447.942.843.740.8
ROLEHumanual-News40.242.341.341.833.132.527.5
ROLEHumanual-Politics42.032.543.531.634.233.229.7
EVALAlignX71.273.471.669.866.868.667.4
EVALHumanllm45.746.944.242.735.234.133.1
EVALSocsci21077.278.077.274.575.273.672.5
EVALHumanual-Book57.662.461.458.450.253.653.4
EVALHumanual-Opinion39.836.046.234.237.437.230.3

\ Others*: best result among other specialized human-simulation models (HumanLM-8B, Sotopia-RL-7B, UserLM-8B, Coser-8B).

Note. The released Ditto-8B is a single generalist distilled from a set of task-specific DITTO experts via rejection sampling on the training set.

Usage

python
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "sunweiwei/Ditto-8B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")

messages = [{"role": "user", "content": "Hello!"}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))

Citation

bibtex
@article{sun2026ditto,
  title         = {Reinforcing Human Behavior Simulation via Verbal Feedback},
  author        = {Sun, Weiwei and Zhou, Xuhui and Liu, Jiarui and Du, Weihua and Sun, Haojia and Xie, Yiqing and Ma, Qianou and Chen, Sihao and Wan, Mengting and Yang, Longqi and Zhou, Pei and Wu, Sherry and Welleck, Sean and Neubig, Graham and Yang, Yiming and Sap, Maarten},
  year          = {2026},
  eprint        = {2605.20506},
  archivePrefix = {arXiv},
  url           = {http://arxiv.org/abs/2605.20506}
}