PersonaTC-seoul — activity chain generator for Seoul (WebLLM, q4f16_1)
A 1.5B activity-chain generator for Seoul (서울), produced by persona-as-rationale
distillation: a large open teacher (Qwen2.5-32B) abduces the latent persona and a
forward-style reasoning trace that explain a real surveyed day (KTDB Household Travel Survey
2021), and a Qwen2.5-1.5B-Instruct student is QLoRA-trained to reproduce the persona, the
reasoning, and the 24-hour activity chain from coarse demographics alone. This repository
holds the merged student weights quantized to q4f16_1 in MLC format, ready for
in-browser WebGPU inference with WebLLM.
The model expects the exact training-time chat format (Qwen2 chat template):
System: You are an expert in Seoul (서울) daily mobility patterns. Generate a realistic 24-hour trip chain (starting 03:00, ending 03:00 the next day) in JSON for the given person. [...] (see the demo page source for the full string)
User:
Generate a daily trip chain for the following person.
- sex (성별): female
- age (나이): 25
- home district (거주지): 송파구
- occupation (직업): 무직
The model answers with <persona>...</persona>, <reasoning>...</reasoning> (persona and
reasoning in Korean), then a JSON activity chain (activity_type, location_type,
district over the Seoul 25 gu, start_time_min, duration_min, mode). Recommended
decoding: temperature 0.8, top-p 0.92.
The architecture is identical to Qwen2.5-1.5B-Instruct, so the prebuilt WebLLM model library
for that model is reused; only the weights differ.
Training data and privacy
The student was fine-tuned on chains derived from KTDB HTS 2021 survey microdata. No survey
microdata is distributed here, and the public demo only composes synthetic demographic
profiles. As with any fine-tuned generative model, memorization of individual training
examples cannot be fully excluded, which is one reason the weights are released under a
non-commercial (CC-BY-NC-4.0) research license. Generated chains are synthetic and must
not be treated as records of real persons.
Limitations
A 1.5B model occasionally emits schema-invalid days (the demo flags rather than hides these).
Generated districts are calibrated only at the population level. Use for research
illustration and travel-demand prototyping, not for inference about individuals.
Citation
Paper under review; a preprint reference will be added here. Until then, cite the demo page:
UMN Choi Lab, "Activity Chain Generator — persona-as-rationale distillation," 2026,
https://choi-seongjin.github.io/activity-chains/.