CoolFace
Apppublic

timchen0618/wildchat-aqa-viewer

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
0likes
App README

๐Ÿ’ฌ WildChat-AQA Viewer

Static viewer for the WildChat-AQA aggregative question-answering benchmark (paper, EMNLP 2025 ยท dataset ยท GitHub).

WildChat-AQA asks aggregative questions over WildChat chat logs โ€” e.g. "what are the most popular topics for user X?" โ€” answered by aggregating over the conversations matching a condition. Each question is 10-way multiple choice; the answer is the option with the highest weight.

The Eval tab

One question at a time, showing:

  • โ€”Question + badges (target type ยท keyword type ยท #conditions ยท #matching conversations).
  • โ€”Condition โ€” the aggregation filter (user_name, country, language, label_level_1/2 topic, time_week, keywords_aggregated), with label ids resolved to names.
  • โ€”Answer โ€” all 10 options as weighted bars, the argmax highlighted.
  • โ€”Aggregation Evidence โ€” the raw target_candidates (value + count) that the answer is aggregated from, with label ids resolved.
  • โ€”Supporting Conversations โ€” the actual WildChat conversations matching the condition (lazy-loaded, full raw turns rendered as chat), capped at 30 per question (largest first; flagged when capped / sampled).
  • โ€”PROBE Query & Metadata โ€” the GPT-generated retrieval query, target/keyword type, hash.

Sidebar: full-text search (question / hash) + filters for target type, keyword type, and condition dimension, with prev/next (โ† / โ†’).

Data layout

Generated by scripts/build_wildchat_aqa.py from three source datasets:

sourceused for
wtzhang-nlp/wildchat_aqathe 5,637 questions, options, weights, target_candidates, conditions
ksx-wz/wildchat_aqa_conversationsthe supporting conversations (linked by condition)
ksx-wz/โ€ฆ_with_embedding_and_gpt_generated_querythe PROBE generated_query (embeddings dropped)
repo wildchat_aqa_taxonomy/resolving label_level_1/2 ids โ†’ names
eval/index.json          # light list for the sidebar (5,637 entries)
eval/records/<qhash>.json # per-question: question, condition, options+weights, evidence, PROBE query, capped support refs
corpus/b<N>.json         # conversations packed into 2048 buckets (bucket = int(hash[:8],16) % 2048), lazy-loaded

Condition matching mirrors the benchmark's aggregation: OR within a repeated condition type, AND across types; time_week matches a 7-day window; label values encode as "<L1>.<L2>". Supporting conversations are capped at 30 per question (--cap); the ~3 truly across-all questions show a size-ranked sample of the full corpus.

Regenerating the shards

bash
# download sources (see build_wildchat_aqa.py header), then:
python scripts/build_wildchat_aqa.py --src <src> --out . --cap 30

Local dev

bash
python -m http.server 8000    # then open http://localhost:8000/

Deploy = push to the Hugging Face Space main (served statically, no build step). The ~60k conversations are packed into 2048 bucket files (corpus/b<N>.json) because HF static Spaces fall back to serving README.md at the root once the repo file tree grows past ~10k files.