# 16K 上下文只装得下三百多行表格，Gretel AI 创始人聊合成数据的真生意

> Cognitive Revolution No. 79 中文精读

- 原标题：Synthetic Data with Alex Watson, Founder of Gretel AI
- 发布日期：2023-11-14
- 主持：Nathan Labenz
- 网页版：https://cogrev.1mmt.com/ep/079-synthetic-data-with-alex-watson-founder-of-gretel-ai-uX8RgK.html
- 精读字数：约 5270 字（阅读约 12 分钟）

> 本文为 cogrev.1mmt.com 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

一个几千人的病人数据集里，患某种罕见病的只有十几个人。样本太少，模型学不会，检测系统一直上不去。回医院重新收集数据？成本高到不现实，原始实验也没法重来。

Gretel AI 的解法：让模型照着这十几个病人的特征，生成一批合格的新样本，把稀有类别撑起来，再拿去训练下游模型。检测效果变好了。

这期 Cognitive Revolution 的嘉宾 Alex Watson，是 Gretel AI 的创始人和首席产品官。这家公司 2020 年成立，现在 65 个人，专做表格数据的合成。主持人 Nathan Labenz 是创业者和 AI 投资人，问题抠得非常细，从质量评分一路问到差分隐私的数学保证。

假数据听着像糊弄事，听完这期会发现，**合成数据可能是普通公司碰 AI 门槛最低的入口之一**。

## 假数据是门真生意

Alex 的履历跟数据隐私绑得很紧。Gretel 之前，他联合创办了安全公司 Harvest AI，做云端敏感数据扫描，2016 年被 AWS 收购。之后他在 AWS 当了四年总经理，负责 Amazon Macie，一个扫描 AWS 云上个人数据的服务。

Macie 上线第一周，涌进来 6000 个客户。团队要在 PB 级数据上跑命名实体识别，找出哪里存着姓名、邮箱、信用卡号。Alex 在那里看到两件事：连 Pinterest、Airbnb 这种顶级数据公司，内部数据访问都搞得焦头烂额；而 AWS 内部有个 500 人的合规团队，能让数据又好用又合规。差距就是工具。

Gretel 这个名字来自童话里的面包屑。原始愿景是让那些「碰不得」的数据变得能共享：医院之间共享病历，金融机构之间共享数据，但不泄露任何个人隐私。

2020 年，疫情爆发前一周，他们发布了第一个开源项目。那时候还没有 transformer，用的是 LSTM，还跟 Google TensorFlow 团队合作了 DPSGD 技术，也就是带差分隐私的模型训练，确保模型不会背下秘密。第一个实验的问题很朴素：**语言模型能不能不学文字，改学一个数据集里的统计分布？**

答案是能，而且很快就派上了用场。开头那个罕见病案例来自加州大学欧文分校的研究者：几千个病人里，罕见病患者只有十到二十个。Gretel 用合成数据把少数类样本补上去，下游模型的检测能力跟着提升。

到今天，Gretel 的业务大致五五开。一半是把合成数据当作安全共享的工具，隐私保证可以做到数学上可证明；另一半是改进机器学习训练集，从欺诈检测、广告推荐到文本数据都算。

> 「客户的数据一团糟，有缺口，想要新样本造不出来，回去重新收集又太贵。所以我们全部的努力，就是帮你把数据变得更好。」

这是 Alex 对公司定位的概括。更好的数据，要么更准确，要么更隐私。听着朴素，**但合成数据的所有想象空间，都从这句大白话里长出来**。他还给了一个常被忽略的背景数字：**企业里 80% 到 85% 的数据，都以结构化或半结构化的表格形式存在**。大模型聊得再多，大多数公司的家底还是表格。

## 假数据怎么让人信

用假数据做分析、做透视表，听起来就不踏实。Nathan 直说，他需要一套能信的理论。他做咨询时跟 Rocket Mortgage 打过交道，客户数据的访问权限管得极其严格，核心数据集根本不可能随手拷给别人。约束是真的，问题是假数据凭什么可信。Alex 拆了 Gretel 的做法。

第一步，让模型学会复现真实数据的分布。训练完之后，从模型里采样出跟真实数据量一比一的数据，然后「把统计学的厨房水槽全扔上去」：算字段两两相关性、逐字段看分布、再做 PCA 算距离，最后合成一个 1 到 100 的质量分。经验值是 80 分以上，就能胜任大多数机器学习场景；低一点的用途可能是软件测试，做透视表就别指望了。

第二步更实际：平台会自动拿合成数据跑一遍下游任务，回归也好分类也好，直接看效果。很多客户用 Vertex 或 SageMaker 跑这类验证，Gretel 干脆把这步做进了产品。

生成侧还有一道保险，叫验证器。模型每次输出，验证器会拿它跟训练数据比对，偏差太离谱的直接过滤掉。表格数据里，它保证不会凭空造出一个 135 岁的人；文本数据里，它负责拦住模型突然的胡言乱语。**没有人能逐行检查一百万条数据，所以质量控制必须自动化**。

这期里最有意思的反转来自医疗行业。HL7 是全球主要的医疗数据标准组织，旗下 FHIR 是当今最流行的医疗记录格式。他们在一场专门讨论合成数据的会议上，反馈跟 Alex 职业生涯里听到的所有需求都相反：MITRE 开源的患者数据生成器 Synthea 做了四五年，纯统计方法，医疗圈嫌它生成的数据「太干净」，拿去做机器学习反而不行。**真实数据是有毛边的，合成数据得保留一点随机性，但又不许疯**。

Nathan 补了个类比，图像领域早有先例：训练时故意给图片加噪点、变形、裁切，模型见过这些「脏」样本，到真实世界反而更稳。

## 上下文装不下百万行，agent 来拆活

Gretel 最近发布了 Tab LLM，一个用自然语言操作表格数据的模型，核心是 agent 规划加执行的架构。预训练数据是爬来的：GitHub、Kaggle 上所有开放许可的数据集，还有个讨巧的发现，机器学习论文的 readme 里经常直接挂着数据集链接，连许可证都能一起拿到。

为什么大模型干不了这活？Alex 算了笔账：16K token 的上下文，按每行 50 个 token 算，也就装三百多行数据。普通人手上的数据集比这大几个数量级。GPT-4 见过的表格，基本是维基百科上几百行的小表，它根本没学过大表里跨几万行的微妙关系。

**今天没有任何 LLM 能一口气生成十万行、百万行的数据集，也没法直接编辑你的整个数据仓库**。所以 agent 的第一件事，是把用户的复杂指令拆成 LLM 一次能消化的小任务。Alex 打了个比方：让 GPT-4 写一本书，你会得到一篇短文；正确做法是拆成先写引言、再推进人物弧光、最后写结局，一章一章来。

实际指令长这样：「生成一个 11 月销量有尖峰的演示数据集，我要一百万行」，或者「把我整个数据仓库里的温度从摄氏改成华氏」。

架构里还有个关键分工：agent 会判断哪些活该写代码，哪些才需要 LLM。递增 ID、单位换算这种事，写段代码跑一遍，答案百分百正确；让 LLM 算，它只会「大概齐」。摘要一条评论是正面还是负面，这才轮到语言模型上场。**该计算的用代码，该理解语义的用模型**，两边的输出拼回同一张表。

Nathan 在这里捕捉到一个容易被忽略的细节：语言模型每一步输出的是分布，采样才产出具体结果。表格生成的评估单位是整行，一行里所有字段一起看，这跟逐 token 评估文本完全是两套逻辑。

## RLHF 反着用：把模型调得更「随机」

Nathan 在这期里贡献了一个很锋利的观察。他的产品给全球用户写视频脚本，法语、小语种、各种长尾场景随时冒出来，微调 GPT-3.5 的样本库里根本没见过。他想补几条训练样本，比如法国用户的案例，可他连法国邮政编码的结构都不知道，自己编就是垃圾进垃圾出。问 GPT-4 要？他不敢。**RLHF 调教过的模型太「乖」了，让它给个随机数，42 和 97 出现的频率高得可疑**。用这种模型造数据，代表性根本没保证。

Alex 的回应有意思：Gretel 拿 RLHF 干的事，方向恰好相反，训练模型输出更多样。比如要某个邮编区域的人口统计特征，现成模型会返回美国平均画像，千人一面；Gretel 把模型调成主动返回更多元、更贴近真实分布的结果。

为什么光调温度不够？Nathan 提议用温度滑块解决问题：温度 0 给最可能的输出，温度 1 还原真实分布，温度 2 让少数群体超额出现。Alex 说，碰到极端不平衡的数据，温度拧到多大都没用，占比 1% 的类别就是很少出现。**想要明确的控制权，得靠训练，靠损失函数指方向**。

企业场景里，「关掉护栏」的需求真实存在。有客户专门生成鱼叉式钓鱼邮件，用来测试自家的钓鱼检测系统；医疗公司想扩充病人记录的样本，很多模型直接拒绝，以为你在干坏事。Alex 的态度是，企业用户需要的控制维度，跟消费者用聊天机器人完全两码事。

他还引了 Pinterest 工程博客的例子：搜婚戒，结果里应该出现不同肤色的手。这种时候多样性是美德。但广告推荐是另一番景象，给一千个人推广告，点一下的也就一两个，正样本占比千分之几。模型必须从这撮稀有的点击里学出东西，再生成有意义的新变体。**多样性什么时候要、什么时候不要，控制权得在用户手里**。

## 让模型学会病，别学会病人

隐私是 Gretel 的老本行，这部分聊得最硬核。

> 「我们希望模型学会一种病，但别学会一个病人。」

从零训练的语言模型，对训练数据里的秘密有极强的记忆和复述倾向。2019 年伯克利出的 Secret Sharer 论文，宋晓冬团队参与，专门量化了这件事：模型多快就能记住数据里只出现过一次的内容，以及它被「套」出来的概率。

Nathan 分享了自己的反向实验：拿自己的文章和简历微调 OpenAI 早期的微调接口，把轮数拉满，模型始终没学会自称 Nathan Labenz，只偶尔冒出个「Nathan 什么什么」。Jeremy Howard 却说 LLM 一条样本就能记住。Alex 解释，大规模预训练模型上做小幅微调，记忆藏得更深、更难检测，但风险一直都在。业内的做法是微调完跑一套「金丝雀」测试，比如诱导模型补全一个信用卡号，看它吐不吐出来。

Gretel 的防线有两层。第一层，先把 PII（姓名、邮箱这类个人标识）直接删掉。第二层才是坑：**单独无害的属性，组合起来能定位到人**。删了名字没关系，身高加邮编加某种病，一拼就是唯一身份。文本里的写作风格，同理。

对付组合泄露，答案是差分隐私。原理说穿了不复杂：训练时往优化器里注噪声、对梯度做裁剪，让「我叫 Alex，身高六英尺，住在南加州」这种罕见组合没法被模型完整记住再吐出来。它能给出数学级别的保证：给定某条训练样本，模型无法复述它。

代价是精度。数据集太小，噪声占比就大，Gretel 的经验是 10 万行以上才划算。美国人口普查局、Google 和 Apple 的输入法预测，都是在海量数据上用这套技术。新研究还给出了补偿方案：把 batch size 加大，再混入公开数据，多花算力，精度能追平不用差分隐私的水平。

这套东西的实际效果：几家国家级医疗组织已经拿到审批，用合成版病历在医院之间共享数据。光删名字过不了关，**带数学保证的合成病历才算数**。

## 越喂越傻，还是越喂越强

合成数据圈流传一个吓人的论文标题，大意是「自我吞食的生成模型会发疯」：生成数据喂下一代模型，一代代下去就崩了。Alex 站在「细节没调好」这一边。他的论据是，LLM 今天完全有能力输出比输入更干净、更多样的数据，就像大家用 Grammarly 改文章。微软的 Textbooks Are All You Need 论文是另一个证据：一个 10 亿参数的小模型，靠一小撮高质量合成教材数据，干出了远超体量的成绩。

Gretel 自己的模型预训练量是 5000 亿 token，按 Nathan 打听到的消息，GPT-4 大约是 10 万亿。差着 20 倍，Alex 也不想追。**轻量、快速、领域专用的小模型，配上大模型做意图理解，这个组合够干很多事**。大模型负责听懂用户想要什么，小模型负责快速生成数据。

聊到监管，Alex 基本乐观。拜登的行政令和英国 AI 安全峰会，说明该关注的事有人在关注。但他也提了自己的处境：Gretel 才 65 个人，养不起百人规模的合规团队，监管别把小公司的创新空间挤没了。Nathan 补了句吐槽：那份 100 多页的行政令，主要内容是要求再交几万页报告。更让 Nathan 在意的是算力竞赛，5 万张 H100 跑一百来天，算力就能再上一个数量级，耗电抵得上一座小城市，直冲 10 的 30 次方之后会冒出什么，没人知道。

更深一层，两人聊到了 AI 的终局形态。Alex 的立场接近 Eric Drexler 的「综合 AI 服务」：一堆窄域的专家小模型，可审计、可理解，由一个「足够聪明」的调度模型串起来，比造一个没人看得懂的超级智能更靠谱，也更像人脑的分工方式。

Nathan 最后给这期起了个漂亮的总结：Gretel 的架构里，生成数据的模型就该当一只「高保真的随机鹦鹉」，随机性本身就是价值；负责规划的模型才需要可靠。随机鹦鹉和推理引擎，原来可以各干各的，各得其所。

节目结尾 Alex 开了个玩笑，算是给「模型退化」争论定了调：**只要下一代模型的输出别总是以「我是一个有用的 AI 助手，请问有什么能帮您」开头，方向就没跑偏**。

**最后，几件明天就能用上的事：**

- **数据类别不平衡，先想合成数据**。欺诈检测、广告点击、罕见病样本，都可以用合成数据补少数类。Nathan 的经验值：微调时在几百条样本里掺 5 到 10 条针对短板的高质量样本，就能让模型学会一个新模式。
- **别用 GPT-4 直接造训练数据**。它太乖，随机性没保证，代表性靠不住。领域数据交给专门工具，或者至少先查一查它给的分布对不对。
- **微调模型前做两步检查**：删干净 PII，再排查属性组合，邮编加身高加病症这种组合就能锁定一个人。合规敏感的场景，认真评估差分隐私。
- **生成完的数据必须验证**。跑一遍下游任务，或者查字段分布和相关性，80 分以下的数据别急着喂给模型。
- **Demo 数据和测试数据，今天就能换成合成的**。这是合成数据最成熟的用法，风险最低，见效最快。
