CoolFace
Modelpublic

UMN-Choi-Lab/PersonaTC-seoul-Qwen2.5-1.5B-q4f16_1-MLC

sourceHugging Facecc-by-nc-4.0updated 4mo agoView on Hugging Face
0likes1downloads
Model Card

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.

Try it live (no install): https://choi-seongjin.github.io/activity-chains/live.html

Prompt format

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.

WebLLM usage

js
import * as webllm from "@mlc-ai/web-llm";
const ref = webllm.prebuiltAppConfig.model_list.find(
  m => m.model_id === "Qwen2.5-1.5B-Instruct-q4f16_1-MLC");
const appConfig = { model_list: [{ ...ref,
  model: "https://huggingface.co/UMN-Choi-Lab/PersonaTC-seoul-Qwen2.5-1.5B-q4f16_1-MLC/resolve/main/",
  model_id: "personatc-seoul" }] };
const engine = await webllm.CreateMLCEngine("personatc-seoul", { appConfig });

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/.