核心摘要
生成式 AI 是一组概率模型及其外围系统。给定提示词或其他条件,模型会生成一个或多个符合已学习数据模式的候选结果,可覆盖文本、图像、音频、视频、代码与结构化数据。但生成机制本身不保证内容真实、原创、安全,也不自动赋予合法使用权。
因此,生产系统的基本单元不只是模型,而是一条受控链路:定义任务、选择模型族、约束输入、验证输出、保存来源信息、评测代表性分片、监控故障,并保留降级或回滚路径。本文不做易过时的产品榜单,而是给出可复用的判断框架。
目录
- 生成式 AI 是什么
- 生成式 AI 不等于什么
- 四类生成模型
- 从模型到生产系统
- 按工作负载选型,而不是追逐热度
- 建立任务化评测体系
- 用 Go 实现发布门禁
- 控制主要故障模式
- 正确使用内容溯源
- 决定采购、适配还是自研
- 生产检查清单
- 常见问题
- 一手资料与延伸阅读
核心结论
- 生成是概率过程:输出是采样得到的候选,不是数据库事实,更不是证明。
- 架构只是一个决策层:数据、条件输入、解码、工具、过滤器和人工审核共同决定最终行为。
- 模型质量依赖具体任务:单个综合榜单分数无法证明系统适合某项生产工作流。
- 安全必须分层设计:RAG、第二个模型或水印都不能独立解决幻觉、滥用、隐私和版权风险。
- 内容溯源提供的是声明与处理证据:它不是事实检测器。
- 上线必须准备退出路径:对所有依赖做版本化,定义停止条件,并在发布前演练降级与回滚。
生成式 AI 是什么
生成模型表示观测数据或输出的概率分布。具体模型可能预测下一个词元、学习逆转数据损坏过程、将隐变量映射为观测结果,或者让生成器与判别器对抗训练。提示词、图像、类别、说话人、结构约束或检索文档等条件信息,会进一步缩小可采样的分布。
对自回归序列模型而言,序列概率可分解为 P(x1, ..., xT) = product P(xt | x<t, c)。其中 c 是可选上下文,解码策略再把每一步的预测分布转换成具体词元。贪心解码、温度采样、top-p 采样、受约束解码和多候选选择属于不同推理策略。即使模型权重相同,它们也会产生不同的可靠性、多样性、延迟与成本。
“新内容”需要谨慎理解。生成结果可能不是某一条训练样本的完整复制,但生成行为本身不能证明原创。模型仍可能复现常见表达、记忆片段、视觉相似特征、数据偏差或受保护素材。新颖性、署名与权利状态需要独立证据。
生成式 AI 不等于什么
以下相邻概念描述的是不同层次:
| 概念 | 它描述什么 | 为什么要区分 |
|---|---|---|
| 判别式 AI | 根据输入预测标签、分数或数值 | 分类器可以过滤生成结果,但自身不一定负责生成 |
| 基础模型 | 可适配多种下游任务的广泛训练模型 | 部分基础模型具备生成能力;“基础”描述复用范围,而非单一训练目标 |
| 多模态系统 | 处理一种以上的数据模态 | 系统可以理解图像却不生成图像,也可以跨模态生成 |
| RAG | 检索外部证据并放入模型上下文 | 检索可增强依据,但不能保证证据相关、正确或被忠实使用 |
| Agent | 跨步骤选择动作、工具或状态转换 | 语言模型可以提出动作,运行时才真正控制权限、状态与副作用 |
| 合成数据管线 | 为训练、测试或模拟生成数据 | 合成数据仍需血缘、去重、验证和偏差检查 |
真实系统经常组合生成式与判别式组件:生成器提出候选,策略分类器拦截禁止内容,排序器选择候选,确定性代码验证 Schema 或计算结果。若把整条链路统称为“模型”,就难以判断故障从哪里进入,也无法选择正确的控制措施。
基础概念可继续阅读人工智能、大语言模型和Transformer 架构解析。
四类生成模型
生成式 AI 不对应唯一架构。下面四类模型提供了实用地图,但现代系统可能组合多种组件,也可能不公开完整实现细节。
| 模型族 | 训练或生成思路 | 适合场景 | 主要工程权衡 |
|---|---|---|---|
| 自回归模型 | 分解有序序列,逐步预测下一个元素 | 文本、代码、音频词元、结构化序列 | 生成具有串行性,错误和成本会随输出长度累积 |
| 扩散模型 | 学习逆转逐步加噪或损坏的过程 | 图像、视频、音频、编辑与条件生成 | 迭代采样成本较高,采样器和条件输入显著影响输出 |
| 生成对抗网络(GAN) | 在双人目标中训练生成器欺骗判别器 | 快速的专用图像或信号生成 | 训练不稳定与模式崩溃会降低分布覆盖 |
| 变分自编码器(VAE) | 通过重建项与正则项学习概率隐空间 | 表征学习、插值、可控隐变量 | 目标函数会在重建保真度和隐空间平滑性之间权衡 |
自回归模型
2017 年的 Transformer 论文提出了以注意力为核心、主要编码器—解码器结构中不依赖循环或卷积的序列架构。后续仅解码器语言模型扩展了自回归的下一词元预测:每个已输出词元都会成为下一步上下文。
该设计适合有序数据与灵活指令,但语言流畅不等于事实已验证。模型优化的是训练和后训练目标下的词元概率。外部工具、检索、Schema 与验证器都属于额外系统组件,必须分别评测。
扩散模型
扩散模型定义逐步损坏数据的前向过程,并学习重建样本的逆向过程。DDPM 论文将这一形式与去噪分数匹配联系起来,并展示了高质量图像合成能力。
条件信息可控制构图、文本、遮罩、参考图像、运动或其他属性。部署结果还取决于隐空间表示、文本编码器、采样器、步数、引导强度、随机种子策略、分辨率与后处理。因此,只比较模型名称没有意义。
生成对抗网络
最初的 GAN 论文定义了一个极小极大博弈:生成器把噪声映射为样本,判别器则学习区分生成数据和训练数据。训练完成后,生成器可以通过一次前向计算生成样本。
在需要专用保真度和快速推理的场景中,GAN 仍有价值。不过,对抗训练难以稳定,模型也可能只覆盖目标分布的一部分,却仍产生看似可信的结果。评测必须同时关注保真度与多样性。
变分自编码器
VAE 论文通过重参数化估计器,为隐变量模型提出了可扩展的变分方法。编码器把数据映射为隐变量分布,解码器再从该空间的样本重建或生成观测结果。
当任务需要结构化、连续的隐空间时,VAE 很有用。它也会作为更大系统中的组件出现,例如潜空间扩散管线。因此,“VAE 还是扩散模型”不总是产品层面的二选一,两者可能承担不同职责。
从模型到生产系统
可用的模型演示仍可能成为不安全的产品。生产行为来自用户请求到验收输出之间的整条链路。
每个边界都需要明确负责人和可观测产物:
- 任务契约:目标用户、允许输入、必要输出、不可接受结果和审核责任。
- 评测集:代表性正常样本、困难分片、对抗样本,以及不参与调优的严重风险样本。
- 模型契约:具体服务商或权重版本、区域、上下文限制、模态、解码参数与下线策略。
- 输入控制:认证、数据分级、授权、脱敏、提示词注入边界与文件解析。
- 生成链路:提示词版本、检索快照、工具、权限、重试、缓存与超时。
- 输出控制:Schema、引用、业务规则、内容策略、溯源与人工升级。
- 运行治理:避免收集不必要敏感数据的遥测、漂移检查、事故响应、降级与回滚。
这种拆分让故障可以被定位。错误答案可能来自源数据缺失、检索不佳、提示词歧义、模型错误、解析器过度宽松或验证器失效。更换模型只能处理其中一类问题。
按工作负载选型,而不是追逐热度
先定义用户需要的产物与决策,再测试能满足要求的最小系统。
| 工作负载 | 候选方案 | 验收证据 | 容易遗漏的成本 |
|---|---|---|---|
| 有依据的问答 | 自回归模型 + 检索 + 引用 | 主张支持度、引用蕴含、拒答、时效性 | 索引维护和审核时间 |
| 结构化抽取 | 受约束生成 + 解析器 | 字段精确率/召回率、Schema 有效率、缺失数据行为 | 修复循环和静默类型转换 |
| 代码修改 | 代码模型 + 沙箱 + 测试 | 构建、测试、静态分析、人工 Diff 审核 | 仓库上下文和危险副作用 |
| 营销图像 | 扩散或混合图像管线 | 提示词遵循、文字准确、品牌审核、权利状态 | 重试、编辑、存储和资产审核 |
| 商品图编辑 | 带遮罩或参考图控制的条件图像模型 | 主体一致性、编辑局部性、瑕疵率 | 人工遮罩和后处理 |
| 语音生成 | 自回归、扩散或编解码器音频模型 | 可懂度、说话人授权、韵律、延迟 | 授权记录和滥用控制 |
| 合成训练数据 | 生成模型 + 规则验证 + 人工审核 | 下游增益、分片覆盖、重复率、数据血缘 | 相关性错误和评测污染 |
不要根据通用“最佳模型”分数选型。固定具体版本,在相同提示词、工具、输出约束、重试预算和审核量表下比较候选。还要纳入系统准备替代的基线,否则所谓提升没有业务参照。
建立任务化评测体系
评测应从验收契约开始,而不是先堆指标。先说明成功输出支持什么决策、需要什么证据,以及哪些故障严重到足以阻断发布。
固定实验条件
每次运行至少记录:
- 模型或权重版本、服务商、区域和日期;
- 系统提示词、模板、工具 Schema、检索语料与策略版本;
- temperature、top-p、可用时的随机种子策略、输出限制、重试和候选数量;
- 评测样本 ID、来源血缘、分片标签与污染控制;
- 评估器实现、人工量表、审核员分配与争议裁决;
- 延迟统计边界、成本口径、缓存状态与并发度。
缺少这些字段,下一次运行可能在不知情时测试另一套系统。
让指标匹配产物
| 输出 | 质量证据 | 风险证据 | 运行证据 |
|---|---|---|---|
| 事实文本 | 主张级证据支持、引用蕴含 | 无依据主张率、敏感数据泄露率 | p95 延迟、每个验收答案成本、审核率 |
| 摘要 | 必要事实覆盖、矛盾检查 | 关键警告或义务遗漏 | 压缩率、审核修改量 |
| 代码 | 编译、测试、静态检查、行为 Diff | 密钥泄露、危险调用、依赖风险 | 修复次数、沙箱时间、审核投入 |
| 图像 | 提示词遵循、编辑局部性、文字可读性 | 身份滥用、禁止内容、溯源缺失 | 每请求验收结果数、编辑时间、存储 |
| 音视频 | 语义一致、时序连贯、可懂度 | 授权、冒充与不安全内容 | 渲染时间、故障恢复、审核负载 |
| 结构化数据 | 字段精确率/召回率、Schema 有效率 | 必填字段编造、危险类型转换 | 解析失败率、重试率、人工修正 |
综合分数会掩盖聚集性故障。应按语言、领域、输入长度、来源质量、人群或地域相关性、模态、对抗模式和影响等级切片,并报告置信区间或样本量,而不只给百分比。
保持评估器独立
输出具备机器可验证契约时,应优先使用确定性检查。对于主观属性,盲审或经过校准的模型评估器可以辅助,但所有评估器都有偏差和故障模式。应在人工裁决集上测量一致性与错误放行率。不要让同一种提示模式在缺乏独立检查时同时负责生成、评分和解释。
更完整的评测方法见超越 ROUGE 与 BLEU 的 LLM-as-a-Judge 评测。
用 Go 实现发布门禁
下面的纯标准库程序评估预先计算的分片结果。任一分片样本不足、未达到验收率、出现严重失败、p95 延迟超标,或每个验收结果成本超标,发布都会被阻断。代码中的数值只是策略示例,不是行业基准。
package main
import (
"fmt"
"strings"
)
type SliceResult struct {
Name string
Samples int
Accepted int
SevereFailures int
P95LatencyMS int
CostPerAccepted float64
}
type Policy struct {
MinSamples int
MinAcceptanceRate float64
MaxSevereFailures int
MaxP95LatencyMS int
MaxCostPerAccepted float64
}
func evaluate(results []SliceResult, policy Policy) []string {
violations := make([]string, 0)
for _, result := range results {
if result.Samples < policy.MinSamples {
violations = append(violations,
fmt.Sprintf("%s: samples=%d", result.Name, result.Samples))
continue
}
acceptanceRate := float64(result.Accepted) / float64(result.Samples)
if acceptanceRate < policy.MinAcceptanceRate {
violations = append(violations,
fmt.Sprintf("%s: acceptance_rate=%.3f", result.Name, acceptanceRate))
}
if result.SevereFailures > policy.MaxSevereFailures {
violations = append(violations,
fmt.Sprintf("%s: severe_failures=%d", result.Name, result.SevereFailures))
}
if result.P95LatencyMS > policy.MaxP95LatencyMS {
violations = append(violations,
fmt.Sprintf("%s: p95_latency_ms=%d", result.Name, result.P95LatencyMS))
}
if result.CostPerAccepted > policy.MaxCostPerAccepted {
violations = append(violations,
fmt.Sprintf("%s: cost_per_accepted=%.4f", result.Name, result.CostPerAccepted))
}
}
return violations
}
func main() {
policy := Policy{
MinSamples: 100,
MinAcceptanceRate: 0.95,
MaxSevereFailures: 0,
MaxP95LatencyMS: 2500,
MaxCostPerAccepted: 0.03,
}
results := []SliceResult{
{"standard", 200, 194, 0, 1800, 0.018},
{"long-context", 120, 113, 0, 2300, 0.026},
{"prompt-injection", 100, 98, 1, 2100, 0.021},
}
violations := evaluate(results, policy)
fmt.Printf("approved=%t\n", len(violations) == 0)
if len(violations) > 0 {
fmt.Println(strings.Join(violations, "\n"))
}
}
// approved=false
// long-context: acceptance_rate=0.942
// prompt-injection: severe_failures=1
在真实管线中,应从不可变评测记录计算每个结果,把策略与候选版本一同保存,并在必要分片或指标缺失时默认阻断。门禁代码不能证明阈值合理;负责人必须根据用户影响、基线行为、法律义务和服务目标制定阈值。
控制主要故障模式
NIST 生成式 AI 风险管理框架是 AI 风险管理框架的自愿性配套文件。它把生成式 AI 风险归纳为 12 类,并在 Govern、Map、Measure、Manage 四个职能下映射了 200 多项建议行动。它是风险管理资源,不是认证标准或模型榜单。
应把宏观风险转化为工作负载级控制:
| 故障模式 | 预防或约束 | 检测与响应 | 剩余局限 |
|---|---|---|---|
| 幻觉或虚构 | 缩小任务、可信检索、结构化输出、允许拒答 | 主张核验、来源复核、事故抽样 | 检索证据也可能错误或被误用 |
| 提示词注入 | 隔离指令与不可信数据、工具最小权限 | 金丝雀用例、工具调用审计、拦截告警 | 自然语言过滤无法证明真正隔离 |
| 敏感数据泄露 | 数据最小化、脱敏、批准的区域和保留策略 | DLP 检查、访问日志、删除测试 | 模型与服务商的数据契约不同 |
| 有害偏差 | 代表性数据与审核策略 | 分片指标、申诉渠道、影响监控 | 历史数据与标签可能固化不平等 |
| 不安全内容 | 用途限制、策略分类器、人工审核 | 严重度抽样、滥用报告、紧急停用 | 分类器存在误拦与漏拦 |
| 版权或许可风险 | 批准来源、权利元数据、输出使用策略 | 相似性复核、署名检查、申诉流程 | 获得模型访问权不等于拥有输出使用权 |
| 信息完整性风险 | 披露策略、内容溯源、分发控制 | 监控高影响主张与协同滥用 | 元数据可被移除,真实媒体也可误导 |
| 依赖故障 | 版本锁定、配额、超时、降级路径 | 可用性、延迟、成本与质量告警 | 服务商变化可能早于本地重新验证 |
RAG 是增强依据的技术,不是事实保证。第二个模型可能与第一个模型共享盲点。人工审核只有在审核者拥有证据、时间、决策权和升级路径时才有效。每项控制之后都应说明剩余风险,而不是标注为“已解决”。
正确使用内容溯源
C2PA 2.4定义了内容来源与真实性的技术标准。Content Credential 可以携带包含声明与断言的签名清单,内容绑定则帮助验证者发现受保护资产是否被修改。
验证者可以检查:
- 清单结构是否有效、密码学完整性是否成立;
- 谁签署了声明,验证策略是否信任该签名者;
- 声明了哪些素材来源、编辑、工具或 AI 相关操作;
- 内容绑定是否仍与当前资产匹配。
它不能证明:
- 画面中的事件真实发生;
- 签名者拥有全部必要权利;
- 签名前没有发生未记录的处理;
- 未签名资产就是合成或欺骗内容;
- 已签名资产必然准确、安全或高质量。
系统应在导出与转换路径中保留溯源信息,展示时避免暗示确定性,并定义凭证缺失、失效或被移除时的处理方式。检测分类器和可见水印是另外两类信号,各自存在误判和移除风险,不能替代内容溯源。
决定采购、适配还是自研
真正的战略选项通常不只是“API 还是开源”。
| 路径 | 更适合的条件 | 应索取的证据 | 容易遗漏的成本 |
|---|---|---|---|
| 托管模型或产品 | 需要快速迭代和托管服务 | 版本策略、数据使用、保留周期、区域、安全、限流、导出 | 出网、重试、审核、迁移和供应商变更 |
| 托管独享部署 | 隔离或可预测容量很重要 | 租户边界、更新控制、可观测性、灾备 | 预留容量与运行集成 |
| 开放权重适配 | 领域控制和可重复离线评测值得长期投入 | 许可证、模型卡、训练血缘、可复现评测 | 硬件、推理工程、安全与升级 |
| 从头训练 | 数据和目标在足够规模上形成真实差异 | 数据权利、缩放证据、人才、预算、评测计划 | 失败实验、数据维护与长期服务 |
| 不采用生成 | 规则、搜索、模板或人工流程已满足任务 | 基线质量、成本、延迟、用户影响 | 机会成本,但通常运行风险最低 |
在上传真实敏感数据前,先用批准数据或合成样本验证。尽早做可迁移性测试:导出提示词、评测样本、溯源与输出,在同一验收契约后替换模型,再测量哪里失效。这样可以发现应用是否真正拥有自身行为,还是依赖未文档化的供应商特性。
生产检查清单
开发前
- 定义用户决策、禁止用途、责任人和人工审核边界。
- 对输入输出数据分级,记录授权、保留、地域与删除要求。
- 在提示词或模型调优前建立基线,并预留独立评测样本。
- 确认数据源、模型和输出许可证;必要时由专业法律人员评估。
上线前
- 锁定模型、提示词、检索、工具、策略和评估器版本。
- 测试正常、边缘、对抗、多语言和高影响分片。
- 报告严重失败、p95 延迟、总成本、拒答与审核负担。
- 演练超时、服务商错误、配额耗尽、畸形输出和危险工具请求。
- 在工作流需要时验证溯源行为与用户披露。
- 设定自动停止条件、降级方案、回滚负责人和事故流程。
上线后
- 使用兼顾隐私的遥测,对验收和拒绝结果进行抽样。
- 监控分片漂移、严重失败、用户纠错、延迟、成本和供应商变更。
- 每次模型、提示词、检索、策略或工具版本变化后重跑冻结评测集。
- 将事故样本沉淀为受保护的回归测试。
- 按既定策略下线旧版本并删除保留数据。
常见问题
什么是生成式 AI?
生成式 AI 是一类学习数据概率分布,并根据提示或其他条件生成候选文本、图像、音频、视频、代码或结构化记录的模型与系统。输出来自已学习模式的采样,不天然保证事实正确、内容唯一,也不能证明与训练数据无关。
生成式 AI 与判别式 AI 有什么区别?
判别式模型根据输入估计标签或数值,例如 P(y | x);生成式模型表示数据或输出的分布,例如 P(x)、P(x | c) 或等价的隐变量形式,因此可以采样候选结果。真实系统经常组合两者:生成器提出候选,分类器、奖励模型或规则负责评估。
应该选择哪一种生成模型架构?
应根据工作负载证据选择,而不是寻找通用排名。自回归模型适合有序序列,扩散模型适合高维内容的迭代合成与编辑,GAN 可用于快速的专用生成,VAE 适合结构化隐空间。最终仍需在代表性输入上评测具体模型和服务配置。
如何评测生成式 AI 系统?
固定模型、提示词、工具、解码参数、数据集、评估器和验收策略,测量任务质量、严重失败率、分片表现、p95 延迟、每个验收结果的总成本、拒答质量与人工审核负担。可验证任务应优先使用确定性检查或外部证据,并报告样本量与不确定性。
C2PA 能证明 AI 生成内容真实吗?
不能。C2PA 可将签名的来源声明与编辑记录绑定到资产,帮助验证者检查由谁声明以及受保护数据是否被修改;它不能证明画面中的事件真实发生、所有编辑都已记录,也不能证明没有签名的内容就是虚假内容。
总结
生成式 AI 把学习到的分布转换为候选输出。架构决定候选如何产生,外围系统则决定结果是否有用、是否可以验收。可靠实现应从任务与风险契约开始,评测实际部署配置,组合相互独立的控制,保存但不夸大内容溯源,并把监控与回滚纳入设计。
真正持久的能力不是记住当前模型名称,而是能为质量定义证据、识别剩余风险,并在更换模型后仍守住同一套验收契约。