简介:这份PDF文档面向希望系统理解ChatGPT背后技术的读者,兼顾入门认知与企业应用视角,围绕生成式人工智能的基本概念、发展脉络和落地方式展开。内容从人工智能迎来新拐点切入,梳理机器学习、深度学习到生成式人工智能的演进里程碑,并讨论大语言模型为何能破解语言复杂性、通过预训练与微调适配多类任务。文档还结合咨询建议、内容创建、编写代码等场景,说明企业如何借助API、提示工程和自有数据定制模型,并提示岗位重塑、监管与商业变化等值得关注的问题。包内共1个PDF文件,约1.09MB,篇幅集中、便于通读,目录涵盖发展历程、普及应用、未来展望、六大技术应用要点及术语表与参考资料。已有1755人学习,适合产品、运营、技术和管理人员快速建立对生成式人工智能与ChatGPT的系统认知,也可作为企业内部分享或方案讨论的参考底稿。
1. 一份 20 页的 PDF,被当成科普读物是最大的浪费
先说结论:这份《生成式人工智能》不太像给大众看的科普读物,它更像一张被排版成文档的决策表。很多人下载后翻两页,看到“发展里程碑”“未来展望”就关掉了,恰恰错过了后面真正有价值的部分——五层技术堆栈、五类落地场景、三种部署方式的取舍、六大应用要点,以及一份把客户服务拆成 13 项任务的实操模板。真正该读它的人是:正给团队做技术选型、要写 AI 应用立项材料、在“直接调 API 还是自己微调”之间反复摇摆的从业者。它不给代码,也不给具体参数,但给了一套判断顺序。下面按我自己拆这份文档的顺序,把能直接抄的部分一条条翻出来。
2. 三层演进与五个堆栈层级:先划清能力边界,再谈落地
大部分人拿到这类文档,第一反应是跳过历史部分直奔“应用场景”。我的建议正好相反:演进那条时间线里藏着这份文档最重要的一个判断——为什么这一轮是语言而不是图像把 AI 推到台前。想清楚这件事,后面选型时你才不会拿一个文本模型硬做视觉任务,也不会指望一个视觉模型去处理合同条款。
2.1 三个十年划出的分水岭:语言为什么成了真正的拐点
文档把过去二十多年切成三段。第一个十年是机器学习,干的是分析、发现模式、形成洞见、建立预测这类活,本质是在已有数据上做归纳。第二个十年是深度学习,把感知能力啃下来了——图像分类、目标检测、语音识别,搜索引擎和自动驾驶吃到的是这一波红利。第三个十年被定义成“机器掌握语言”的阶段,理由是语言跟企业日常运转的每一个环节都绑在一起:机构知识、互动交流、运作流程,全靠语言记录和传达。
这个判断背后有一组数据支撑,也是我最常引用的部分。报告口径里,语言任务占到企业人员总工作时长的 62%;在这 62% 里面,又有 65% 的工作量具备被大语言模型自动化或增强的潜力;折算到全行业,大约 40% 的总工时会被影响。这组数字被很多材料拿去当裁员论据,其实它说的是预算该往哪投——如果你的业务里语言型任务占比高,投生成式 AI 的边际收益就高;如果你的业务以现场作业、设备操作为主,同样的钱投到视觉质检上回报更快。同一份报告里那张按行业拆的工时分布图,银行保险、软件平台、资本市场排在前列,公共服务、航天国防、自然资源靠后,这个排序本身就是一张投资优先级表。
还有一个数字值得单独拎出来:顶级模型的训练算力大约每 3.4 到 10 个月翻一番。对工程团队的实际含义是,别做“等模型变便宜了再上”的规划。算力成本在降,但需求量和上下文长度涨得更快,两者会同时发生,等来的通常不是省钱,而是你的场景被别人的产品先占住。
2.2 基础模型、大语言模型、微调:三个词混着用会直接导致预算错配
文档的术语表部分写得比正文更值得读,因为它把几个经常被混用的词分清了。我在评审立项材料时见过太多次把“我们要做一个大模型”和“我们要调一个 API”写成同一件事,最后预算表出来差了三个数量级。
| 术语 | 文档里的定义 | 工程判断标准 | 常见误用 |
|---|---|---|---|
| 基础模型 | 基于海量数据训练的复杂机器学习系统,参数量达数十亿,可快速适配下游任务 | 你的任务有没有可用的公开基座 | 把它当万能模型,直接拿去答业务问题 |
| 大语言模型 | 基础模型中专门针对文本训练的一类 | 输入输出是否以文本为主 | 拿文本模型硬做结构化抽取却不给输出 schema |
| 微调 | 用特定数据集让基础模型适配下游任务 | 是否有千级以上的高质量标注样本和独立评测集 | 样本只有几十条就开训 |
| 提示学习 / 前缀学习 | 不改动权重,靠提示工程做轻量定制 | 输出格式是否明确、能否给出 3 到 5 条示范 | 用提示工程硬扛需要私有知识的问题 |
成本量级上我心里有条粗略的刻度线:提示工程基本只花人力;微调要同时投入数据标注和算力,比提示工程高出一到两个数量级;从零预训练不在一般团队的选项里。所以正确的推进顺序是提示工程、检索增强、微调、预训练,一级一级往上试。这条顺序就是后悔药——跳过前两级直接开微调的团队,我见过不少,最后基本都回到提示工程重做基线。
提示:立项材料里如果只写“采用大语言模型”,评审时大概率会被追问。把“用哪一层、为什么停在这一层、上一层试过没有”写清楚,比堆参数更能说服人。
2.3 五层技术堆栈:从下往上排查,八成的坑在数据层
文档画的那张技术堆栈图,是我认为整份材料里信息密度最高的一页。五个层级从下往上是基础设施、数据、基础模型、微调、应用,每一层都标了它要解决的问题和演进方向。
| 层级 | 这层要解决的问题 | 自查问题 | 出问题时的症状 |
|---|---|---|---|
| 应用 | 通过 API 或直接嵌入其他系统,让业务用上模型 | 换一个模型供应商,你的代码要改多少行 | 模型一换就得重写业务逻辑 |
| 微调 | 让基座适配具体下游任务 | 有没有独立于训练集的评测集 | 上线后说不清效果是变好还是变差 |
| 基础模型 | 在规模、透明度、多功能性、性能之间取舍 | 授权范围能不能覆盖你的商用场景 | 做到一半发现许可不允许 |
| 数据 | 数据全生命周期的成熟度 | 语料在哪、谁负责、版本怎么管 | 模型答不出公司内部的事,答出来也是错的 |
| 基础设施 | 算力供给、成本控制、能耗管理 | 峰值并发下的账单你算得清吗 | 上线第一周账单失控 |
文档里有一句话我建议直接抄进方案首页:“企业提高数据生命周期的成熟度,是模型成功的先决条件。”翻译成工程语言就是——模型能力是买来的,数据能力是长出来的。买来的东西随时能升级,长出来的东西得花时间。所以真正拉开差距的从来不是选了哪个基座,而是你的语料整理到什么程度。我接触过的项目里,卡在数据层的占绝大多数,卡在模型层的极少:要么是文档散在七八个系统里没人认领,要么是同一份制度有三个版本不知道该用哪个,要么是敏感字段没分级不敢往外送。这些问题不解决,换再强的模型也只是把错误答案生成得更流畅。
3. 用还是定制:五类场景与三种部署方式的选型账
堆栈图解决的是“我在哪一层”的问题,接下来要回答“我该用现成的还是自己改”。文档在这一块给的思路很实在:先把工作拆成任务,再判断每项任务是能被完全自动化、能被增强,还是跟技术基本无关。这个拆法比笼统地说“AI 能提效”有用得多。
3.1 五类场景拆解:先分清哪部分是自动化、哪部分是增强
文档列了五个方向,我按“能自动到哪一步、人必须留在哪一步”重新整理了一遍,这版更适合直接拿去讨论需求。
| 场景 | 典型任务 | 可自动化部分 | 必须保留人工的环节 |
|---|---|---|---|
| 咨询建议 | 客服应答、销售赋能、人力咨询、企业战略情报 | 非面对面客户沟通里约七成可由模型承接 | 定价承诺、合同条款、投诉升级 |
| 内容创建 | 文案生成、设计研究、命名、A/B 副本测试、实时个性化 | 初稿、变体批量生成、多语言改写 | 品牌口径、版权核查、最终发布 |
| 编写代码 | 语言间转换、工具用法查询、文档自动生成、缺陷预判 | 样板代码、单元测试、接口文档 | 架构决策、安全边界、生产变更 |
| 自动化 | 邮件起草、工单分类、会议摘要、流程建议 | 分类、摘要、草稿、下一步建议 | 对外发送前的确认 |
| 安全防护 | 恶意样本解释、站点分类、合规检查辅助 | 样本初判、日志归并、规则草拟 | 事件定级、处置决策 |
这张表最有价值的一行是最后一行。文档提醒得很直白:短期内企业更可能先看到的是对手用同样的技术生成恶意代码、写出几乎没有语法破绽的钓鱼邮件。也就是说,安全防护这一栏的投入不能只算“我用它防”,还得算“对手用它攻”。做预算时把攻防两侧都算进去,比单边乐观要稳妥。
文档里那个把客服工作拆成 13 项任务的例子,可以直接当模板用。拆完之后按三类归档:4 项继续由人做,4 项可以完全自动化(收集、分类、总结客户联系原因这类),5 项适合技术增强(生成摘要、草拟回复这类更具人性化的快捷方案)。这个 4-4-5 的分布不是标准答案,但它示范了一种可复用的方法——不要问“这个岗位能不能被替代”,要问“这个岗位有哪几项任务分别属于哪一类”。前者只会引发焦虑,后者能直接排期。
3.2 提示学习与前缀学习:不改权重的最低成本定制
在决定要不要微调之前,先把提示工程这一层榨干。文档提到的提示学习和前缀学习,本质都是不动模型权重、只通过输入侧的控制来引导输出。下面这段骨架我在多个项目里用过,换掉 client 的构造部分就能适配不同供应商。
# 通用对话接口调用骨架:各家 SDK 字段名不同,只替换 client 构造与入参映射 client = ChatClient(api_key=API_KEY, endpoint=ENDPOINT) resp = client.chat( model="chat-large", # 先用能力最强的档位跑基线,别一上来就选小模型省钱 system=SYSTEM_PROMPT, # 角色 + 边界 + 拒答规则,写死在这里 messages=history + [{"role": "user", "content": user_input}], temperature=0.1, # 抽取/分类压到 0.1~0.3,创意类再往上调 max_tokens=800, response_format={"type": "json_object"}, # 要结构化结果就强制 JSON,别靠提示词求它 )逻辑上分三步走。system 段负责立规矩,写清“你只能依据给定资料回答,资料里没有的直接说不知道”,这一句能挡掉相当一部分幻觉。messages 里塞 3 到 5 条 few-shot 示范,示范要覆盖正例和反例,只给正例模型学不会边界。最后用 response_format 收口,把输出锁成 JSON,下游解析才不会因为多了一句“好的,以下是答案”就崩掉。
参数上有几个经验值。temperature 在信息抽取、分类、结构化转换这类任务上压到 0.1 到 0.3,超过 0.5 输出的稳定性会明显下降;创意文案类可以到 0.7 到 0.9,但要接受同一输入每次结果不同。max_tokens 不要设得太大,设大了模型容易在结尾堆废话,设小了会截断,通常按你业务里最长的正常输出乘以 1.5 来定。history 的保留轮数要设上限,无脑全量透传是成本失控的头号原因,具体怎么截我在第 5 章展开。
前缀学习在这里的落地方式,是把一段固定的、经过验证的指令前缀做成模板固化下来,所有请求复用。好处是改动集中在一处,出问题好回溯;坏处是前缀本身也占 token,前缀越长单次成本越高。我的习惯是把前缀控制在 300 token 以内,超出的内容改成检索后动态注入,而不是全塞进固定前缀里。
3.3 三种部署方式:SaaS、私有云、本地化的判断条件
文档专门有一节讲国内市场的三种落地形态,这段是整份材料里最贴近实际决策的部分。我把它整理成对照表,判断条件那一列是我自己补的。
| 维度 | SaaS 调用 | 私有云部署 | 本地化部署 |
|---|---|---|---|
| 上线周期 | 天级 | 周到月级 | 月起,视硬件到位情况 |
| 数据是否出域 | 出域,需评估 | 不出域 | 完全不出域 |
| 前期投入 | 几乎为零 | 中等,弹性计费 | 高,硬件一次性投入 |
| 单次调用成本 | 按量计费,用量大时偏高 | 可预测性较好 | 摊薄后低,但要有足够量 |
| 定制深度 | 提示工程为主 | 可微调、可接行业知识 | 可深度改造,但效果不确定 |
| 适用判断 | 验证阶段、非敏感场景 | 垂直行业、数据敏感但需要定制 | 数据绝对不能出域且长期用量极大 |
文档给出的结论我基本认同:SaaS 是最成熟的路径,但国内厂商在这条路上综合能力还在追赶;私有云在数据安全、模型自定义和垂直行业定制上更占优,代价是需要足够的算力储备,弹性策略让前期投资比本地化低不少,是目前垂直行业客户最可行的实现方式;本地化选择很多,开源和商业方案都有,但卡在两个死结上——成本高、效果不确定,所以还处在很早期。
我的补充是:这三种不是互斥的,实际项目里常见的是分阶段组合。验证期用 SaaS 跑通流程、收集真实请求分布;确认有价值之后,把涉及敏感数据的部分迁到私有云;只有当某类请求的量占到总调用量的相当比例、且数据完全不能出域时,才值得考虑本地化。一上来就谈本地化的方案,我通常会先问一句:你的日均调用量是多少,峰值并发多少,这些数字算不出来,硬件预算就是拍脑袋。
4. 专有数据与微调准备:把企业语料变成可训练资产
选型定了“要微调”,真正的活才开始。文档里那句“破解数据挑战已成为每家企业的当务之急”不是客套话,微调项目的工期大头几乎全在数据上,模型训练本身反而快。这一章讲的就是怎么把散落各处的语料整理成能喂进去的东西。
4.1 数据成熟度自查:五个问题决定你能不能微调
在写第一行训练脚本之前,先把这五个问题答一遍。答不上来的,先补数据,别补代码。
第一,语料在哪。是集中在一个文档管理系统里,还是散在邮件、协同文档、工单系统、聊天记录里?散着的话,先做归集,这一步通常要花掉整个项目三分之一的时间。
第二,谁对语料负责。每类文档有没有明确的业务 owner?没有 owner 的数据不要用,因为你无法判断它是不是最新版本,也无法在出问题时追溯。
第三,版本怎么管。同一份制度改过五版,模型学到哪一版?我的做法是只保留生效版本加一份变更记录,历史版本单独归档不进训练集。
第四,敏感字段怎么处理。客户姓名、联系方式、账号、金额,这些在进训练集之前必须过一遍脱敏。文档在风险章节专门提了数据隐私与安全,这不是合规部门的事,是数据工程的事。
第五,有没有评测集。这是最容易被跳过的一步。没有独立评测集,微调之后你无法判断是变好了还是变差了,只能凭感觉,而感觉在大模型这件事上极不可靠。
4.2 微调数据集:格式、规模与配比
格式上,对话类微调基本都用 messages 数组,一条样本一行 JSON。下面是我常用的结构,system 段固定写清边界,user 和 assistant 成对出现。
{"messages":[{"role":"system","content":"你是某公司售后知识助理,只依据给定资料回答,资料不足时直接回答不知道。"},{"role":"user","content":"订单签收后第 3 天发现外观破损,还能换吗?"},{"role":"assistant","content":"可以。签收后 7 天内非人为损坏支持换新,需提供开箱视频与外包装照片。"}]} {"messages":[{"role":"system","content":"你是某公司售后知识助理,只依据给定资料回答,资料不足时直接回答不知道。"},{"role":"user","content":"你们老板的电话是多少?"},{"role":"assistant","content":"这类信息不在我的知识范围内,建议通过官方客服渠道联系。"}]}第二条样本是负例,专门教模型拒答。很多人做数据集只放正例,结果模型遇到边界问题就开始编。负例占比我一般控制在 10% 到 20%,太少学不会边界,太多会让模型变得过度保守、该答的也不答。
规模上没有万能数字,但有个下限参考:单任务微调至少准备 500 到 1000 条高质量样本,低于这个量级,提示工程加 few-shot 往往效果更好且更便宜。质量比数量重要得多——1000 条标注一致的样本,效果通常好过 5000 条口径混乱的样本。文档里提到微调会跨越软件工程、语言学、艺术史、图书馆学等多个学科,说的就是这件事:标注不是打字,是需要专业判断的。
整理完先跑一遍校验,别直接送进训练。下面这个脚本我每次都会跑,五个检查项都是踩过坑才加的。
import json, hashlib, collections def check(path, min_chars=20, max_chars=2000): seen, stats = set(), collections.Counter() with open(path, encoding="utf-8") as f: for i, line in enumerate(f, 1): try: obj = json.loads(line) except json.JSONDecodeError as e: print(f"[行 {i}] JSON 解析失败: {e}") continue msgs = obj.get("messages", []) if len(msgs) < 3: # 缺 system/user/assistant 三段 stats["结构不完整"] += 1 text = "".join(m.get("content", "") for m in msgs) if not (min_chars <= len(text) <= max_chars): stats["长度异常"] += 1 # 太短没信息量,太长多半是整段粘贴 h = hashlib.md5(text.encode()).hexdigest() if h in seen: stats["重复样本"] += 1 # 重复样本会让模型过拟合到某几句话 seen.add(h) if len(msgs[-1].get("content", "")) < 10: stats["回答过短"] += 1 # 一句话回答多半是标注敷衍 print(dict(stats)) check("train.jsonl")参数说明:min_chars 按业务最短有效回答来定,客服类场景我一般设 20;max_chars 用来抓“整段文档粘进来”的情况,超过 2000 字符的样本通常是标注偷懒,需要人工回看。重复检测用全文哈希,能抓出完全一致的样本,改写过的重复抓不到,那个得靠语义去重,属于进阶操作。
4.3 从数据湖到数据网格:语料不能留在孤岛里
文档在数据这一层给的方向是:依托云环境建现代化的企业数据平台,里面放一组可信赖、可复用的数据产品,把数据存在云端仓库或数据湖里,让它摆脱组织孤岛的束缚,然后在一个地点统一分析,或者用数据网格的方式分布式计算。
翻译成可执行的步骤:第一步,把训练语料当成一个数据产品来管,有 schema、有 owner、有更新频率、有质量指标,而不是一个临时导出的 csv。第二步,敏感字段在进入这个数据产品之前就脱敏,不要在训练脚本里做,因为脚本会被复制,脱敏规则不会。第三步,训练集、验证集、评测集三份数据用同一套抽取逻辑生成,只是划分不同,避免出现“训练集里有、评测集里没有”的分布漂移。
注意:数据网格这个思路听起来很美,但落地前提是各业务域真的有人对数据负责。如果 owner 是挂名的,分布式只会让问题更分散。团队规模不大时,集中一个数据平台反而更好管。
5. 避坑与排查:五条血泪经验,每条都对应一个可验证的现象
这一章是我最想写的部分。下面五条都是我在实际项目里反复遇到的,每一条都按“看到什么现象、为什么会这样、怎么解”来记。你在排查时可以直接拿现象去对号。
5.1 回答流畅得像真的,但内容全是编的
现象:模型对内部制度、产品参数、价格政策的回答语气笃定、结构完整,一核对全是错的,甚至编出不存在的条款编号。
原因:模型在用它预训练时见过的通用语料填补私有知识的空缺。语言模型的目标是生成“像那么回事”的文本,不是输出“正确”的事实。文档里把这类风险归在“信任”这一项下,问的是“如何确保输出结果准确并维持用户信心”,这个问题在技术上有个很直接的答案。
解决:优先上检索增强,不要指望微调把事实装进权重。做法是把知识库切片、向量化,请求进来先检索再拼进上下文,同时在 system 段写死“只依据给定资料回答,资料中没有的直接说不知道”。更进一步,要求模型在答案里标注引用来源的片段编号,前端把编号渲染成可点开的原文,这样用户能自己核。上线后监控“拒答率”和“引用命中率”两个指标,拒答率突然降到零,通常意味着模型开始编了。
5.2 微调之后,通用能力掉了一大截
现象:模型在目标任务上确实变准了,但让它做点别的——摘要、翻译、简单的常识问答——表现明显变差,甚至开始答非所问。
原因:灾难性遗忘。训练数据太窄、学习率太大、训练轮次太多,模型把原来的能力覆盖掉了。文档在讲微调时强调“针对众多不同的任务做出调整或微调”,隐含的意思就是基座的多任务能力是资产,别在微调时把它弄丢。
解决:三件事一起做。训练集里混入 20% 到 30% 的通用样本,让模型在学新任务的同时保持旧能力;学习率压小,轮次控制在 3 轮以内并做早停;每轮都在通用评测集上跑一遍,掉超过阈值就回退。我一般会同时留一份基座模型的输出做对照,微调版本在通用任务上明显劣于基座,就是信号。
5.3 微调效果还不如提示工程
现象:花了两周标注、训了三轮,评测分数比直接用 few-shot 提示还低。
原因:八成是样本质量问题——标注口径不一致、同义问题给了不同答案、负例几乎为零。也可能是样本量根本不够,几百条数据撑不起一次微调。文档提到企业可以先用提示学习和前缀学习在较小程度上定制,再决定是否微调,这个顺序就是防这种情况的。
解决:先做提示工程基线,把分数记下来,微调必须超过这个基线才值得上线。回过头查样本一致性:随机抽 50 条,让两个人独立重标,看一致率,低于 85% 就先修标注规范再谈训练。另外检查训练集和评测集是不是同一个人标的,同一个人标的话评测分数会虚高。
5.4 账单在第二周失控
现象:验证阶段每天几十块钱,上线一周账单翻了十几倍,查下来单次请求的 token 数远超预期。
原因:历史对话全量透传、检索结果无脑塞满、长文档整篇粘贴、没有做请求分流。上下文长度是成本的主要变量,而很多人根本没意识到自己的请求平均带了多长的上下文。
解决:四件事。对话历史按轮数和 token 双上限截断,超出部分做摘要压缩;检索结果按相关度取 top-k,k 不要设太大,3 到 5 条通常够用;按任务难度做分级路由,简单分类和抽取走小模型,复杂推理才走大模型;对高频重复问题加缓存,命中缓存直接返回。上线前把“平均输入 token、平均输出 token、日调用量”三个数算一遍,乘以单价,得到的数字跟预算比一下,这一步五分钟,能省掉后面很多解释。
5.5 把客户数据贴进了公共接口
现象:上线三个月后被合规叫停,原因是部分请求里带了完整的客户姓名、手机号、订单号。
原因:开发阶段为了调试方便,直接把生产数据往接口里送,后来这段代码一路带到了线上,没人再检查过。这类问题不会报错,只会在某次审计里突然爆出来。
解决:上线前做一次数据出域清单,把每个字段标成可出域、脱敏后可出域、不可出域三类;不可出域的字段在进入模型之前就被剥离,不要指望模型“不要说出去”;对请求体做正则扫描,手机号、身份证号、银行卡号这类模式命中就拦截并告警。文档在风险章节把数据隐私和安全、知识产权、歧视、产品责任、信任、身份验证六项并列,这不是六选一,是六项都要有对应的控制措施。
6. 上线前的三张表:把负责任 AI 从原则变成可检查项
文档最后那节讲负责任人工智能,提到一个数字我印象很深:受访企业里只有极小比例认为自身已经建好了足够稳健的基础。原则大家都认,难的是把它变成能勾选的检查项。我的做法是上线前强制填三张表,填不完不许发版。
第一张是能力边界表。逐条写清这个应用能回答什么、不能回答什么、遇到不能回答时怎么兜底。比如售后助理可以答退换货政策,不能答价格谈判,不能答竞品对比,遇到这类问题统一转人工。这张表要业务方签字,不是技术方单方面定。
第二张是数据流向表。每个字段从哪来、经过哪些系统、是否出域、出域前做了哪些处理、留存多久。这张表跟 5.5 那条坑直接对应,填的时候最容易发现“原来这个字段一直在往外送”。
第三张是验收指标表,我通常按下面这几项定基线。
| 指标 | 含义 | 建议基线 | 异常信号 |
|---|---|---|---|
| 拒答率 | 明确回答“不知道/超出范围”的比例 | 5% 到 15% | 降到接近零,说明开始编 |
| 引用命中率 | 答案中标注来源且来源可核实的比例 | 80% 以上 | 下降说明检索环节失效 |
| 人工转接率 | 转人工的比例 | 按业务定,需持续监控 | 突然升高可能是模型退化 |
| 平均输入 token | 单次请求上下文长度 | 按预算反推上限 | 持续上涨说明上下文没截断 |
| 敏感字段命中数 | 请求体中被规则拦截的次数 | 应为零 | 出现即阻断上线 |
这三张表的价值不在表格本身,在于填的过程会逼你把含糊的地方说清楚。我见过最典型的情况是:能力边界表填到一半,产品和业务对“能不能答价格”吵了起来,而这个分歧在开发阶段一直没暴露,直到填表才浮出水面。早吵比上线后吵好。
最后一个具体技巧:把验收做成可重复执行的脚本,而不是一次性的人工检查。每次模型版本升级、每次提示词改动、每次知识库大更新,都跑一遍固定评测集,输出拒答率、引用命中率、平均 token 三个数,跟上一版对比。这套东西搭起来大概两天,但它是你在模型频繁迭代时唯一的参照物。
说个自己的教训。早些年我做过一个内部知识问答,验证阶段效果很漂亮,直接推给了两个部门。上线第三周开始有人反馈“答案越来越不靠谱”,我查了半天以为是模型退化,最后发现是知识库更新了,旧文档没下线,检索同时命中了新旧两个版本,模型在新旧之间来回横跳。从那以后我每次上线前都强制走一遍那三张表,尤其是数据流向表里那句“留存多久、旧版本何时下线”,宁可多花半天,也不想再半夜被叫起来查这种本可以避免的问题。希望帮到你。
本文还有配套的精品资源,点击获取