
1. 为什么从零开始AI工程要先放下模型建立系统观第一次接触AI的时候我相信很多人和我一样第一反应是去找模型、跑代码、调参数。我最初踩过的坑就是花了两周折腾各种模型弄出来一个demo却完全不知道接下来怎么把它变成一个真正能用的系统。后来我才慢慢理解了一个关键问题AI工程和机器学习研究是两件完全不同的事。研究可以只关心模型指标但工程要关心的是整个系统的稳定性、可维护性、成本和用户反馈的闭环。这也是ai-engineering_from-scratch这个标题真正核心的命题——不是从零开始训练模型而是从零开始建立一套工程化方法论。所谓的系统观就是你拿到一个业务需求时第一反应不是我该用哪个模型而是先问几个问题数据从哪里来数据质量如何模型的目标指标是什么这个指标和业务指标是否对齐模型上线后谁来维护出现bad case怎么处理计算资源有多少成本和延迟是否在可接受范围内。举个例子。我之前做过一个合同关键信息抽取的项目最初我以为核心工作量在于模型选型和调参。真正跑起来才发现模型部分用开源模型微调三周就完成了但数据清洗、标注规范、格式解析、规则兜底这些工程环节占了五个月的大部分时间。模型在前期只是拼图的一块数据管道和评估闭环才是真正决定项目成败的骨架。所以从零开始学AI工程起点不是某个框架的API文档而是先建立一张完整的地图数据怎么流动模型在哪个节点介入输出怎么被校验失败怎么被兜底系统怎么迭代。我建议你先在纸上画出这个架构图哪怕很粗糙也远比跳进代码细节有用得多。2. AI工程的四个基本构件数据、模型、评估、部署的真正分工当你想把一个AI需求落地成工程系统时其实本质上是在组织四种资源。我把它们称为AI工程的四个基本构件数据、模型、评估、部署。很多新手容易混淆的是以为这四个是一根直线——数据喂给模型模型上线就完事。实际上它们是一个闭环。2.1 数据AI工程里的隐形大头数据这个环节通常占掉AI工程至少一半的工作量。原因很简单模型可以换但数据决定了模型的上限。数据工作通常包含几个层次数据采集确定数据来源可能是业务系统日志、公开数据集、用户反馈、第三方数据服务。要考虑的不仅是能不能拿到还有能不能持续稳定地拿到。数据清洗去重、去空、格式统一、异常值处理。脏数据是模型训练的隐形杀手一条格式错误的样本往往比十条高质量样本破坏力更大。数据标注标注规范和标注质量控制直接决定模型学到的边界。同一个实体在不同语境里的边界怎么定义多义和歧义怎么处理需要写成明确的标注手册。数据版本管理训练数据不是一成不变的数据版本和模型版本需要对应否则复查问题时无法复现。我早期的项目里数据清洗用的是最笨的方法写脚本统计每个字段的缺失率、格式分布、异常样本再逐一处理。后来才引入更成熟的工具链比如用数据校验框架做数据质量监控用特征存储统一管理特征口径。工具可以迭代但数据分层的思路始终不变原始数据、清洗后数据、标注数据、训练/验证/测试集每一层都要有明确的产出规范和校验规则。2.2 模型从选型到微调的基本决策链模型选型这一步很多人的误区是追新。一看到新模型发布就想立刻换上去。实际上工程化选型的判断标准很简单能否用最少的维护成本满足业务指标。选型时要看几个维度任务类型是分类、抽取、生成还是检索、排序。不同任务适合的基础模型路线不同。数据规模你手头有的标注数据量决定了是从零训练、继续预训练、还是直接做指令微调。数据量不足时微调大模型的效果往往还不如用设计良好的提示工程流程。延迟和吞吐要求B端离线批处理可以接受秒级甚至分钟级C端在线服务通常要求百毫秒级响应。模型的规模和推理优化方案必须提前考虑。算力预算训练和推理的GPU成本差别很大推理是长期持续支出必须单独做成本模型。我当时做微调的思路是先用少量样本做一轮侦察训练看loss变化和bad case类型判断任务的可学性。确认路径可行再扩大数据量正式微调。这个顺序帮我省下了很多算力成本。2.3 评估没有评估体系就没有迭代方向评估是AI工程里最容易被轻视的环节。没有评估体系时改了一个数据规则、调了一个参数到底有没有用全凭感觉。而有了评估体系每一次改动都可以量化对比迭代才有方向。2.4 部署模型进入生产环境的最后一公里部署不只是把模型文件加载起来做成接口。真正的部署工作还包括模型和服务器的资源规划、输入输出数据的格式契约、接口的监控告警、模型的灰度发布和回滚机制、以及版本的持续更新管线。很多项目死在demo能跑、上线就崩就是因为部署环节的工程化准备不足。这四个构件不是单线流程而是一个闭环数据影响模型模型需要评估来验证评估结果反过来指导数据和模型的迭代部署后的线上数据又成为下一轮的数据来源。理解了这张闭环图从零开始AI工程的地基才算真正打牢。3. 从零到可用一条不靠运气的技术路线图如果说四构件解决的是AI工程由什么组成那么技术路线图解决的是先做什么、再做什么。我自己的经验是从零到可用的完整路径大致分为五个阶段每个阶段都有明确的交付物。第一阶段需求定义和可行性分析。这个阶段不写业务代码而是弄清楚要解决的问题到底是什么、AI方案是否真的必要、有没有更简单的规则方案能先跑通。交付物是一页纸的需求描述和初步的方案选型清单。第二阶段数据摸底和基线建立。先用一周左右的时间把样本数据下载下来人工看一遍统计分布找出明显的难点噪声、歧义、长尾然后用一个非常简单的模型或规则逻辑跑出一个基线。基线不需要好但必须有它是后续所有迭代的对比锚点。第三阶段模型主路径搭建。确定模型路线后搭好训练/微调代码、评估脚本和实验记录。这个阶段的关键是实验的可复现性——每次实验记录数据版本、模型结构、超参数、评估结果方便回溯。第四阶段错误分析和定向优化。把基线的bad case逐条归类分析是数据问题、模型问题还是规则冲突然后针对性地优化。这一步是最花时间的也是体现工程能力的地方。第五阶段封装交付和监控上线。把模型封装成标准接口写好测试用例和监控指标部署到目标环境建立回流机制。这一路走下来我有一个很深的体会每个阶段都要有明确的完成定义否则项目容易无限拖延。什么叫完成就是交付物产出、质量指标达到阈值、相关文档写清楚。没有完成定义的阶段往往会在再调调参数中消耗大量时间。4. 评估体系决定你的AI系统是真能用还是纸面能用评估体系我单独拿出来写是因为它是从零做AI工程时最难自学、也最影响成败的一环。很多人问我的模型效果怎么样拿几个指标一跑准确率90%就以为完事了。真实情况远没有这么简单。4.1 离线评估从指标到分层的坏例分析离线评估指的是用固定测试集来验证模型效果。常见指标有准确率、精确率、召回率、F1值等。但指标只是第一层更重要的是分层分析。我通常的做法是把测试集的预测结果按错误类型归类——是边界识别问题、语义理解问题、还是数据标注本身就有问题每一类bad case占到多少比例这种分层分析才能指导下一步优化方向。单纯看一个总分指标你根本不知道该改哪里。排除一个常见误区测试集合不能来自训练集同分布因为真实场景的数据分布是动态变化的。基于训练集同分布评估模型性能这种测试结果的参考价值很有限。我习惯把一部分最近时间的线上数据留出来作为评估集模拟真实场景的分布偏移情况。4.2 在线评估指标好不代表业务好离线评估通过不代表线上效果一定好。在线评估关注的是模型在真实流量下的表现包括响应延迟、错误率、用户反馈、业务漏斗转化等。我做过一个AI功能离线测试F1值接近0.9上线后发现用户根本不买账——生成的内容看起来正确但对用户的实际需求没有帮助。后来我们加上在线评估数据发现真正起作用的指标是用户编辑后重新提交的比例和功能使用后任务完成率。从那以后我再也不敢只用离线指标来给AI系统做效果结论了。4.3 红线和兜底评估之外的工程保险评估体系做得再好模型也总有犯错的概率。AI工程和纯软件工程的一个显著区别是AI系统的输出存在不确定性。因此必须有红线机制和兜底方案。红线机制是指对关键场景设定硬性约束一旦模型输出触碰红线系统自动转入人工处理或规则兜底。兜底方案则是当模型失效、超时、或返回异常时系统仍然能提供给用户一个可接受的结果。这些不是评估环节的附属品而是AI工程里的核心设计原则。5. 实操复盘从零搭起一个AI文本分类系统的完整过程理论说得再多不如一次完整的实操复盘。我用自己的经验来讲一下假设你现在完全从零开始要搭建一个AI文本分类系统把用户工单按问题类型自动打标分组。我按时间线把关键步骤和当时的决策逻辑讲清楚。第一步花一天时间梳理需求与业务方确认分类体系。有一个关键点分类体系的设计直接影响后续所有工作类别太少则粒度不够类别太多则标注成本暴增。我当时的做法是先收集500条真实工单人工粗分类验证类别体系的合理性和覆盖度再最终定稿。第二步数据准备。从工单系统导出历史数据清洗HTML标签、去除重复内容、统一简繁体等然后制定标注规范包括歧义样本的处理规则例如同时包含两个类别时如何取舍。用三人标注加一人复核的方式标了约3000条数据。这步看起来很费时但后期模型效果稳定很大程度上得益于标注规范的严谨。第三步基线实验。我没有一开始就上大模型微调而是先用文本分类的传统方法TF-IDF加轻量模型跑了一个基线再尝试用预训练模型微调进行效果对比。这个对比能告诉你两件事一是深度学习带来的增益值不值得付出推理成本和维护成本二是基线作为保底方案在后续出现问题时可以快速回退。第四步模型微调和评估。我对预训练模型做了分类头的微调用分层抽样按类别比例划分训练/验证/测试集评估标准采用宏平均F1值同时关注长尾类别的单独表现。第一轮微调效果大约0.82经过错误分析、补充标注难样本、调整类别权重之后提升到0.89左右。第五步工程封装。模型推理封装成一个独立服务输入是工单文本输出是类别置信度和模型签名。关键是接口契约要稳定输入输出字段、错误返回、超时策略、日志格式全部提前定义好后续换模型版本时接口保持不变只替换内部实现。第六步监控和迭代。上线后监控每天的预测分布、置信度分布、以及用户手动改类别的比例。每周抽一批新数据和bad case回流补充到训练集做月度更新。这次实操让我确认了一件事如果数据规范和评估闭环做到位从零开始搭建一个AI系统其实没有想象中那么依赖天才想法更多依赖的是按部就班的工程纪律。6. 从零学AI工程的三条学习路径与自检清单最后结合我从零走过来的体会说说学习路径。AI工程的知识体系很庞杂没有一条所有人都适用的路但有三条路径是我认为被验证有效的。第一条路径是项目驱动找一个具体的小项目从数据采集到部署上线完整走一遍。不用追求题目有多新哪怕是一个垃圾邮件分类器、一个简历筛选助手只要走完完整闭环你对AI工程的理解会远超刷一百个教程。项目驱动学习的核心不是结果有多好而是过程中暴露的问题够不够多、全不全。第二条路径是问题倒推当项目推进到某个环节卡住时针锋相对地学习该环节的知识。比如部署时容器化不会就学容器数据质量不稳定就学数据校验和监控。这类需求导向学习的效率远高于系统性按课程章节学习因为你在学和用之间没有时间差。第三条路径是读成熟系统的源码和架构文档找几个开源AI应用系统认真读它的代码结构、数据流设计、部署配置思考作者为什么要这样组织。这条路径建立的是系统设计的手感解决的是面对一个空的需求不知道从哪下手的问题。我还整理了一份自检清单每次评估自己或者团队成员的AI工程能力时都会用面对一个新需求第一反应是谈模型还是谈问题能否说清楚数据管道每一层的作用和校验方式评估指标能否拆解到具体的bad case类型是否清楚模型推理成本和延迟以及它们在业务上的约束模型上线后是否有一套持续的监控和迭代机制是否具备不依赖具体模型版本、可平滑升级的系统架构我个人的经验是真正拉开水平的差距不在谁调参调得好而在谁能在混乱中找到尺度。从零开始AI工程最难的不是技术本身而是面对一堆零散信息时能保持从容的判断力。这种判断力只有靠一次次完整的流程走下来才能慢慢积累。如果你也正准备从零开始别急着找最复杂的模型先拿一条完整的链路练手把一个简单的需求做到闭环。做完一个你就知道自己下一步该补什么了。