《AI工程:构建基于基础模型的应用》核心摘要

本书是Chip Huyen继《设计机器学习系统》之后的又一力作,旨在为所有希望利用基础模型(Foundation Models)解决实际问题的人提供一个全面的端到端框架。它不仅仅关注工具或API,更聚焦于那些经得起时间考验的工程基础和最佳实践。

前言:本书精髓
  • 💡 核心观点: AI工程正在从一个专业学科转变为人人可用的开发工具。其爆发的核心驱动力是:1) AI能力通用化,解锁了海量新应用;2) 投资激增,企业纷纷布局;3) 入门门槛降低,模型即服务(MaaS)模式普及。
  • 📖 本书是什么: 一个关于如何适配(adapt)基础模型(包括LLMs和LMMs)来解决具体问题的系统性框架,而非特定工具的教程。它侧重于基本原理、权衡分析和问题解决思路。
  • 📖 本书不是什么: 它不是机器学习理论书,也不是代码教程。它假设读者具备基本的ML概念知识(如概率、梯度下降等),但会为不熟悉的读者提供指引。
  • 💡 适用人群: AI/ML工程师、数据科学家、工程经理、技术产品经理,以及任何想要系统化构建、评估和优化AI应用的人。
第一章:AI应用构建入门
  • 📖 核心演进路径: 语言模型 →(得益于自监督学习规模化)→ 大语言模型(LLMs) →(融入多模态能力)→ 基础模型(Foundation Models)
  • 📖 关键技术 - 自监督学习: AI模型能从无标签数据中自动生成标签进行学习,这是模型能够大规模训练的关键,因为它打破了昂贵的人工标注瓶颈。
  • 💡 AI工程 vs. 传统ML工程:
    • 传统ML: 侧重于模型开发(特征工程、模型训练)。
    • AI工程: 侧重于模型适配(提示工程、RAG、微调),并更接近全栈开发,强调快速产品迭代。
  • 📖 AI工程技术栈三层: 应用开发层、模型开发层、基础设施层。当前创新的焦点主要在应用开发层
  • 💡 应用规划要点: 构建前需评估:1) 商业动机(是规避风险还是抓住机遇?);2) 人机协作模式(AI是辅助还是自主决策?);3) 产品护城河(数据、分发渠道等);4) 设定明确的成功指标(业务指标和模型指标)。
第二章:理解基础模型
  • 📖 模型表现的三大支柱: 1) 训练数据(决定了模型的能力边界和偏见);2) 模型架构与规模(Transformer是主流,规模影响能力和成本);3) 对齐(后训练)(使模型有用且安全)。
  • 📖 训练数据的重要性: 数据决定了模型的语言能力(如英语主导)、领域知识(如法律、医疗)和潜在偏见。低资源语言和特定领域通常需要专门的数据集。
  • 📖 后训练(Post-Training)流程:
    1. 监督微调 (SFT): 使用高质量的“指令-回答”对,教会模型如何进行对话式交互,而非简单的文本补全。
    2. 偏好微调 (RLHF/DPO): 使用人类(或AI)的偏好数据,进一步训练模型,使其输出更符合人类的价值观(有用、无害、诚实)。
  • 💡 核心洞察 - 采样的力量: 模型的输出是概率性的,而非确定性的。理解和调整采样策略(如temperature, top-k, top-p)是低成本提升模型性能的关键。
    • 高温 (High Temperature): 更有创意,但可能不连贯。
    • 低温 (Low Temperature): 更稳定一致,但可能乏味。
  • 📖 AI两大“原罪”的根源: 1) 不一致性2) 幻觉,都源于其概率采样和自回归生成机制。模型无法区分给定的事实和自己生成的内容。
第三、四章:评估方法论与系统评估
  • 💡 评估驱动开发 (Evaluation-Driven Development): 在构建应用前,必须先定义如何衡量成功。这是将AI项目从酷炫演示推向可靠产品的关键。
  • 📖 评估的挑战: 基础模型的评估极其困难,因为它们是开放式的,没有唯一的正确答案,且很多模型是黑箱。公共基准测试(Benchmark)容易饱和或被“污染”(训练数据包含测试集)。
  • 📖 评估方法分类:
    • 精确评估: 结果明确无歧义。例如,功能正确性(代码生成是否通过单元测试)和与参考数据的相似度测量(如BLEU、ROUGE,或基于嵌入的语义相似度)。
    • 主观评估: 结果依赖评估者。最主流的是“AI作为评委 (AI as a Judge)”
  • 💡 AI作为评委的利与弊:
    • 优点: 快速、成本低、可扩展、无需参考数据。在很多场景下,其判断与人类高度一致。
    • 缺点: 存在偏见(如偏爱更长、更复杂的回答,或偏爱自己模型的输出)、不一致性、标准模糊。使用时必须谨慎,并最好与精确评估或人工评估相结合。
  • 📖 模型选择流程: 1) 过滤(根据许可证、隐私等硬性要求);2) 初选(利用公共排行榜和基准初步筛选);3) 自定义评估(使用与自己应用场景高度相关的私有数据集进行严格测试);4) 持续监控
  • 💡 自建模型 vs. API: 这是一个核心决策。自建(开源模型)提供更多控制权、隐私保护和定制能力,但工程成本高。API则上手快、维护成本低,但受限于提供商、存在数据风险且灵活性较低。
第五章:提示工程 (Prompt Engineering)
  • 📖 核心概念 - 上下文学习 (In-Context Learning): 无需更新模型权重,仅通过在提示中提供指令和示例(“shots”),就能让模型学会执行新任务。分为零样本 (Zero-shot)少样本 (Few-shot)
  • 💡 最佳实践 - 清晰明确:
    • 明确指令: 告诉模型你想要什么,不想要什么,包括输出格式。
    • 赋予角色 (Persona): “假设你是一位经验丰富的律师...” 能显著提升输出的质量和风格。
    • 提供示例: 这是减少歧义最有效的方法。
    • 分解任务: 将复杂任务分解为一系列简单的子任务,能提高可靠性并易于调试。
    • 给模型“思考时间”: 使用“一步一步思考 (Think step-by-step)”等短语触发思维链 (Chain-of-Thought, CoT),能极大提升推理任务的准确性。
  • 📖 防御性提示工程: 必须防范针对提示的攻击。
    • 提示注入 (Prompt Injection): 攻击者通过输入恶意指令,劫持应用的原始意图。
    • 越狱 (Jailbreaking): 诱导模型绕过其安全护栏,生成有害内容。
    • 信息泄露: 诱导模型泄露其系统提示或训练数据中的敏感信息。
  • 💡 防御策略: 在系统层面进行输入/输出过滤、对用户输入进行净化、训练模型优先遵循系统指令(指令层次结构)是比单纯依赖提示技巧更可靠的防御方式。
第六章:RAG 与智能体 (Agents)
  • 📖 RAG (Retrieval-Augmented Generation): “检索-增强-生成”模式。通过从外部知识库(如文档、数据库)中检索相关信息,并将其作为上下文提供给模型,来解决模型知识陈旧和幻觉问题。
    • 核心流程: 接收查询 → 检索 (Retrieve) 相关文档 → 将文档和查询注入提示 → 生成 (Generate) 答案。
    • 检索算法: 包括基于关键词的稀疏检索(如BM25)和基于语义的密集检索(向量搜索)。
  • 💡 RAG vs. 长上下文: RAG不会因为长上下文窗口的出现而过时。因为1) 数据量总是会超过上下文长度2) 模型在长上下文中容易“迷失”,RAG能提供更精准的信息,从而更高效、成本更低。
  • 📖 智能体 (Agent): 一个能够感知环境并通过使用工具采取行动以达成目标的系统。基础模型充当智能体的“大脑”。
    • 核心循环: 思考 (Thought)行动 (Action)观察 (Observation)
    • 关键能力: 1) 规划 (Planning) - 将复杂任务分解为可执行步骤;2) 工具使用 (Tool Use) - 调用API、执行代码、搜索网页等。
  • 💡 RAG是智能体的一种特例: RAG中的检索器可以被看作是智能体使用的一种工具。智能体是更通用的框架,能够执行更复杂的、多步骤的、与外部世界交互的任务。
  • 📖 记忆系统: 为了支持RAG和智能体,需要分层记忆系统:1) 内部知识(模型权重);2) 短期记忆(上下文窗口);3) 长期记忆(外部数据库/向量存储)。
第七、八章:微调 (Finetuning) 与数据集工程
  • 💡 何时微调? 当提示工程和RAG都无法解决问题时,才考虑微调。
    • RAG 解决“知识”问题: 当模型缺乏特定、动态或私有知识时。
    • 微调解决“行为”问题: 当需要模型学习特定风格、格式或非常规任务时。
  • 📖 微调的核心挑战: 内存瓶颈。完全微调一个大模型需要巨大的GPU内存,因为它不仅要存储模型权重,还要存储梯度和优化器状态。
  • 📖 关键技术 - PEFT (Parameter-Efficient Finetuning): 只训练模型参数的一小部分(例如<1%),就能达到接近全量微调的效果。
    • LoRA (Low-Rank Adaptation): 最流行的PEFT方法。通过在现有权重矩阵旁添加并训练两个小的“低秩”矩阵来实现,推理时可以合并,不增加延迟。
    • QLoRA: LoRA的量化版本,通过在4位精度下进行训练,进一步极大地降低了内存需求,使得在消费级GPU上微调大模型成为可能。
  • 💡 数据集工程的核心三要素: 1) 质量 (Quality) > 2) 覆盖度/多样性 (Coverage/Diversity) > 3) 数量 (Quantity)。少量高质量、多样化的数据远胜于大量低质量数据。
  • 📖 数据合成 (Data Synthesis): 使用AI模型(通常是更强大的模型)来生成训练数据。这是解决数据稀缺和标注昂贵问题的强大武器,但需要警惕模型坍塌(模型在“回声室”中不断学习自己的输出,导致多样性丧失)和质量控制问题。
第九、十章:推理优化与系统架构
  • 📖 推理的两个阶段与瓶颈:
    • Prefill (提示处理): 并行处理输入提示,是计算密集型 (Compute-bound)
    • Decode (解码/生成): 逐个生成Token,是内存带宽密集型 (Memory-bound)
  • 💡 核心优化技术:
    • 量化 (Quantization): 使用更低的数据精度(如FP16, INT8, INT4)来存储模型权重,能极大减少内存占用和加速计算。
    • 投机性解码 (Speculative Decoding): 用一个小的“草稿”模型快速生成一段文本,再由大模型一次性验证,从而加速解码过程。
    • PagedAttention & KV缓存优化: 像操作系统的虚拟内存一样管理KV缓存,显著提高GPU利用率和吞吐量。
    • 批处理 (Batching): 将多个请求合并处理。持续批处理 (Continuous Batching) 是当前最先进的技术,能有效处理不同长度的请求序列。
  • 📖 通用AI工程架构演进:
    1. 基础调用: 应用 → 模型API。
    2. 增强上下文: 引入RAG和工具使用。
    3. 增加护栏: 加入输入/输出安全检查和内容审核。
    4. 引入路由/网关: 统一管理对多个模型的调用,实现成本控制、负载均衡和故障转移。
    5. 优化性能: 增加缓存层(精确缓存、语义缓存)。
    6. 实现复杂逻辑: 引入智能体模式和多步工作流。
  • 💡 用户反馈是数据飞轮的核心: AI应用的独特之处在于,用户反馈不仅能改进产品,还能直接作为数据来迭代模型。设计无缝、低摩擦的反馈机制(如点赞/点踩、编辑建议、对话信号分析)至关重要。

原文

源链接

附件

中文PDF (57.5M)

下载

中文epub (22.2M)

下载