尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证🏆 Winner, Accenture GenAI Mavericks 2026. Synthetic population of Spain (25,000 profiles) that predicts survey answers by region, sex and age, with a validated confidence traffic light. CIS-trained models + local LLM.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A synthetic population of Spain that predicts how Spanish society would answer a survey question, a campaign or an A/B test, broken down by region, sex and age, with a confidence traffic light that tells you how far to trust each answer.
🏆 Winner of the Accenture GenAI Mavericks Challenge 2026, Challenge 3: "Synthetic Population of Spanish Society".
| ▶️ Live demo (554 precomputed questions) | https://jjaramillo2023.github.io/pulso/?preguntas |
| 🌐 Project site | https://jjaramillo2023.github.io/pulso/proyecto/ |
| 🎤 Final pitch deck (with demo videos) | https://jjaramillo2023.github.io/pulso/presentacion/ |
The interface is in Spanish, since the product is built for the Spanish market.
A national survey in Spain takes weeks and can cost hundreds of thousands of euros. Asking a general-purpose LLM is instant, but its answers reflect stereotypes rather than people. We measured how bad that is. With no data behind it, an LLM says that 12 % of Spaniards over 60 are very worried about climate change. The CIS (Spain's public survey institute) measured 60 %.
You type a question and its answer options. pulso answers in seconds with the predicted distribution for Spain and for every region, sex and age group. Each answer carries a label that says which evidence it rests on:
| Level | When it applies | How it answers | Measured error |
|---|---|---|---|
| 🟢 Model trained on the CIS | The CIS has already asked this question | A weighted multinomial logistic regression per question, trained on CIS microdata (9 studies, ~37,000 interviews), predicts the answer of each synthetic person | ≈0.5 pp on the same survey; 1.8 pp nationally and 4.8 pp by region when predicting the next edition of the survey (24 repeated questions) |
| 🟡 LLM anchored on the CIS | The CIS asked something similar | 100 archetypes answer with a local LLM (llama3.1:8b, reading token log-probabilities), each one conditioned on attitudes measured in the CIS | ±14 pp (n = 14) |
| 🔴 LLM with Spanish profiles | A brand new question | The same simulation without CIS anchoring. Exploratory only | ±20 pp (n = 6) |
All the errors are mean absolute errors in percentage points, measured against real CIS results by the validation scripts in this repo.
We compared pulso with an LLM that has no data on 176 questions where the real CIS answer is known:
flowchart LR
Q[Question + options] --> S[Semantic search over the CIS question bank<br/>bge-m3 embeddings]
S --> J{LLM judge:<br/>same, similar or new?}
J -- same, similarity ≥ 0.83 --> G[🟢 Per-question model<br/>trained on CIS microdata]
J -- similar --> A[🟡 100 archetypes answer with llama3.1:8b<br/>anchored on CIS attitudes]
J -- new --> R[🔴 100 archetypes answer with llama3.1:8b<br/>Spanish profiles only]
G --> P[25,000 synthetic people<br/>INE census, ECV, ICT survey + CIS imputation]
A --> K[Each person inherits from its<br/>8 nearest archetypes]
R --> K
K --> P
P --> O[Weighted results for Spain,<br/>each region, sex and age group]
Every number shown in the product and in the deck comes from these scripts:
| Script | What it measures |
|---|---|
04_calibrar_simulador.py | Error of the LLM simulator against real CIS answers |
10_validar_ambar_rojo.py | Routes 23 calibration questions as if their own survey did not exist and measures the amber and red error |
11_validar_tiempo.py | Trains on one edition of a survey and predicts the next one (24 repeated questions). Repeating the old edition gives 1.5 / 1.8 / 2.9 / 4.9 pp (national / sex / age / region); pulso gives 1.8 / 2.1 / 3.1 / 4.8 pp |
motor.py (comparar), run by 05_precalcular_demo.py and 12_precalcular_catalogo.py | The 176-question comparison against an LLM without data |
Known limitations, stated openly. Region shares in the synthetic population are not exactly those of the INE (Madrid 12 % vs 14.5 %), and reweighting changes national totals by only 0.17 pp on average. Amber and red answers are exploratory and are always labelled as such. 41 implausible LLM answers were removed from the public catalogue rather than tuned.
├── index.html, app.js, … Published web app (static build, served by GitHub Pages)
├── datos/ Precomputed answers, validation results and the 25,000-person population
├── proyecto/ Project site
├── presentacion/ Final pitch deck with demo videos
├── docs/ Screenshots for this README
└── source/
├── trabajo/ Engine: harmonization, CIS models, LLM simulator, routing, validation, API
├── frontend/ Web app source
└── requirements.txt
pip install -r source/requirements.txt
ollama pull llama3.1:8b && ollama pull bge-m3
cd source/trabajo && python -m uvicorn servidor:app --port 8765 # open http://127.0.0.1:8765
The raw inputs are not redistributed here. CIS microdata can be downloaded for free from cis.es into source/datos_cis/microdatos/, and the synthetic population built by the team lives in the team repository. The scripts are numbered in the order they run. The published demo needs none of this, because it is fully precomputed.
I designed and wrote the pulso engine and product end to end: the harmonization of CIS and INE data, the per-question CIS models, the LLM archetype simulator, semantic routing with the LLM judge, all the validation, the API, the web app, the static deployment and the final pitch deck, which I also presented.
Team: Juan José Jaramillo (engine, frontend and pitch), Adrián and Ainhoa (synthetic population database), Guillermo (backend), Anton Pogromskyy (visuals and frontend). The full team repository is anton-p0g/Accenture.
All the profiles are synthetic, so no real individual can be identified. The sources are open (INE, CIS). Every answer is labelled with its level of evidence and its measured error, in line with the transparency obligations of Article 50 of the EU AI Act. The results are model predictions and do not replace a real survey.