学习精选 · AI 工具
AI 学习经验

用 GPT-5、Python 和 Pyodide 复刻 Apollo 的 AI 采用率图表

Simon Willison2026-11-05约 4 分钟读完AI 整理查看原文

作者看到 Apollo 首席经济学家发布的一张图表,显示 250 人以上企业的 AI 采用率在下降,于是用 GPT-5 找到美国人口普查局原始数据,再用 Python 复刻图表,最后尝试用 Pyodide 在浏览器里渲染。过程中发现原图用的是六次调查滚动平均,这个细节决定了复刻能否成功。

今天就能做

  • 下次看到一张有说服力的数据图,先找原始数据文件,用 pandas 复刻一遍再引用。
  • 让模型处理表格时,把图表截图一起上传,并明确要求它先找数据字典再动手。
  • 复刻结果和原图有差异时,检查是否有移动平均、同比或样本筛选等口径说明。

用 GPT-5 搜索定位原始数据

  • 图表来自美国人口普查局的 BTOS 双周调查,覆盖 120 万家企业,问题是在过去两周是否使用过 AI 工具生产商品或服务。
  • 作者把图表描述原样丢给 GPT-5 让它找原始数据,约 1 分 19 秒后拿到 Census 的 Employment size class 时间序列 XLSX,覆盖 2023 年 9 月 11 日到 2025 年 8 月 24 日。
  • 这个文件在 Census 网站上并不好找,GPT-5 直接给出了具体文件名和链接,省去大量翻找。

让代码解释器把表格还原成图

  • 把 XLSX 和 Apollo 图表截图一起上传,提示词只有一句:用这份数据、以 Python 复刻这张图。
  • GPT-5 花了至少 7 分钟推理,跨 5 个思考块、十几次 Python 会话,用 pandas 和 numpy 找数据,用 matplotlib 反复画图。
  • 它自己发现表格最后一个 tab 里有数据字典,据此把 A 到 G 的字母映射到实际员工规模区间。
  • 第一版图看着像,但峰值 14.5% 对不上原图的约 13.5%,而且最后一段是上升的,原图是下降的。

关键细节:六次调查滚动平均

  • 作者回头检查原图,发现被自己截图裁掉的一行注释:数据是六次调查的移动平均。
  • 调查是双周一次,所以六次约等于 12 周,代码里对应 wide.rolling(window=6, min_periods=6).mean()。
  • 表格里有两个相关问题:过去两周是否使用 AI,以及未来六个月是否计划使用;复刻用的是前者。
  • 加上滚动平均后,复刻图与 Apollo 原图基本吻合,说明差异来自统计口径而不是数据本身。

代码与浏览器端渲染

  • 最终脚本读取 Response Estimates 和 Collection and Reference Dates 两个 sheet,按员工规模分桶、透视、滚动平均,再用 matplotlib 画折线并输出 PNG 和 SVG。
  • GPT-5 主动多输出了一个 SVG 版本,作者没要求。
  • 作者另开一个会话,让 GPT-5 搭一个加载 Pyodide 的页面,在浏览器里用 pandas 和 matplotlib 渲染图表,验证纯前端方案可行。

对做数据内容的人的启发

  • 看到别人转发的图表,先找原始数据源,再自己复刻一遍,是验证结论是否成立的低成本方法。
  • 复刻对不上时,优先怀疑统计口径(滚动平均、样本范围、问题措辞),而不是数据本身。
  • 把截图和原始文件一起交给模型,比只用文字描述更能让它对齐目标。

原文:Recreating the Apollo AI adoption rate chart with GPT-5, Python and Pyodide

来源:Simon Willison

查看原文

本文由 AI 阅读原文后整理,未经人工逐字核对,内容以原文为准。

登录后可以点赞、查看和发表评论