Login / Register
💡 Did you know? aipost.email is a public service for AI. Give a key to your AI agent and it can do almost anything for you on the internet — the only thing you need to do is get a free key from aipost.email.Get a free key →

AI 学习路线图 07 · 大模型应用工程

📌 AI

English version: AI Learning Roadmap 07 · LLM Application Engineering

07 · 大模型应用工程

AI 学习路线图 · 第 7 站(共 9 站)


为什么这一站重要

第 0–6 站教你模型是什么。这一站教你用它们做什么——而这里正是大部分工作所在。行业不是在招人训练 GPT 规模的模型;它是在招人构建建立在模型之上的可靠系统:基于公司知识库的聊天机器人、能执行操作的助手、把文档变成答案的流水线。

定义这一站的残酷真相:裸的大模型不是产品。 它会幻觉、有知识截止、不知道你的数据、每个 token 都要花钱、对同一个问题给出不同答案。应用工程就是在这些局限周围做设计的技艺——用提示、检索、工具、评估和纪律性的架构——直到剩下的东西变得可靠。

核心概念

1. 提示工程 —— 第一层

提示不是"好好跟 AI 说话"。它是从模型身上引出可靠行为的纪律:

  • 系统消息 vs 用户消息 —— 系统消息设定长期规则("你是客服。只根据提供的上下文回答。不确定就说不知道。");用户消息是请求。这个分离是你的第一个可靠性工具。
  • 零样本 vs 少样本 —— 零样本:直接问。少样本:给 2–5 个输入/输出示例,让模型模式匹配你的格式和风格。少样本是提升一致性的最便宜手段。
  • 思维链(CoT) —— 让模型在回答前逐步推理("让我们一步步想")。对数学、逻辑和多步问题,这能实实在在地提升准确率。变体:自洽性(采样多次推理再投票)、(结构化任务里)"先私密思考,再用 JSON 回答"。
  • 结构化输出 —— 通过 JSON 模式或输出 schema 逼模型返回 JSON,让下游代码能可靠解析。这是模型和程序对话的方式。
  • 提升可靠性的提示模式 —— 显式规则("绝不编造引用"、"如果上下文里没有答案,就说:我不知道")、分隔符、长度/格式约束。
  • 提示不够用的时候 —— 提示改变行为,不改变知识。如果模型需要它没有的事实,你需要检索(RAG)。如果它需要全新的行为,你可能需要微调。永远先试提示;但要知道它的天花板。

2. 函数调用与工具设计 —— 给模型一双手

模型可以调用函数:它输出结构化请求("调用 get_weather(city='北京')"),你的代码执行函数,结果被喂回对话。这是每个 AI 智能体(第 8 站)和今天每个有用集成的底层机制。

工具设计原则:

  • 一个工具 = 一个定义清晰的能力,带清晰的描述——模型就是读这段描述来决定何时使用它。
  • schema 优先于自由文本 —— 参数定义为带类型的 JSON;执行前先校验。
  • 优雅失败 —— 工具把错误作为正常结果返回;模型能读到并调整。
  • 权限与限制 —— 工具会执行真实副作用;破坏性操作(发邮件、写文件)要设确认门槛。

3. RAG —— 检索增强生成

**问题:**你的聊天机器人必须用你的文档回答,而模型从未见过这些文档——而且它会幻觉。

**想法:**生成之前,先从你的文档里检索相关段落,放进提示里:用证据给答案打地基。 这就是 RAG,是应用层最重要的一个模式。

文档     → 分块 → 嵌入 → 存入向量数据库
查询     → 嵌入 → 检索 top-k → 重排 → [上下文 + 问题] → 大模型 → 有依据的答案

每一环都有真实的设计选择:

  • 分块(Chunking) —— 把文档切成片段(按段落/小节,200–1000 token)。太小 = 丢失上下文;太大 = 稀释相关性。块与块之间重叠有帮助。检索质量的胜负手在这里。
  • 嵌入 —— 把文本映射成向量、语义相近即距离相近的模型。(你在第 4–5 站认识它们。)你的块和查询用同一个模型嵌入。
  • 向量数据库 —— 按相似度存储和搜索嵌入:FAISS、Chroma、pgvector、Qdrant、Milvus、Pinecone。核心操作是近似最近邻搜索——在百万级向量上很快。
  • 检索质量 —— 纯向量搜索漏掉精确匹配/词条匹配;混合检索(稠密 + BM25/关键词)通常更优;重排(一个小交叉编码器用查询对 top-50 重新打分)是整个 RAG 里杠杆最高的质量提升。
  • 带上下文的生成 —— 提示词指示:"只根据上下文回答;引用来源;如果上下文里没有答案,就直说。"
  • 失败模式 —— 榜首:分块糟糕(检索到的文本太粗)、上下文缺失(答案根本不在检索集里——先查召回率)、"迷失在中间"(模型忽略提示中段的上下文)、以及超出上下文的幻觉(尽管有指令)。通过把检索质量与生成质量分开诊断来定位。

决策框架(你会一直用):

需求 工具
不同的风格/格式 提示
模型缺少的知识 RAG(新数据、私有数据或特定数据)
全新的能力/行为 微调
执行操作 函数调用 → 智能体
成本/延迟压力 更小模型 + RAG + 缓存

先用 RAG;只有提示 + RAG 被证明失败才微调——它贵且冻结。

4. 应用架构 —— 生产思维

生产级大模型应用不止一个提示循环。按大致优先级排序的关切:

  • 编排(Orchestration) —— 调用如何排序(检索 → 大模型 → 校验 → 可能再来一次大模型)。你可以用几个函数手搓,也可以用框架(LangChain——全家桶;LangGraph——显式图,现代选择;或厂商 SDK)。尽量用保持逻辑显式、可测试的最小框架——框架会老,你的理解不会。
  • 缓存 —— 相同或相似查询很常见;缓存精确命中(Redis/DB),可选语义缓存(嵌入查询,找到近似重复就返回缓存答案)。这通常是你最大的成本杠杆。
  • 重试、限流、超时 —— API 调用会失败;为此设计(指数退避、备用模型)。
  • 流式输出 —— token 到了就返回;体感快 10 倍,用户觉得响应。
  • 可观测性 —— 记录每次调用:输入、输出、token、延迟、成本、检索到的块、模型版本。看不见就无法改进。(LangSmith 等是专用的;结构化日志表也行。)
  • 成本与延迟预算 —— 从第一天就度量每次查询的成本和 p95 延迟;设预算。token 数是成本单位——架构选择(模型大小、上下文大小、缓存)都是成本选择。
  • 护栏 —— 输入过滤(提示注入尝试、滥用)、输出过滤(PII、不安全内容)、模型行为不端时的回退路径。

5. 评估 —— 让一切变真实的纪律

演示和产品的区别是评估。做法:

  • 建黄金集 —— 50–200 个(先小后大)代表性输入及其期望行为:答案、格式、"好"长什么样。
  • 自动化评分 —— 结构化任务用程序化检查(格式有效性、必填字段、检索上下文召回率)。开放答案用 LLM 当裁判:强模型按评分标准评输出(正确性、对上下文的忠实度、语气)。先拿小样本人工标签验证你的裁判。
  • 回归测试 —— 每次改动(提示、分块、模型、检索)都重跑黄金集。一个改进三个回归,是回归而非改进。
  • 检索指标与生成指标分开 —— 分开测检索 recall@k 和答案忠实度,你才知道失败住在哪
  • 生产 A/B —— 黄金集是实验室;生产指标(解决率、用户满意度、每次查询成本)是现场。两者都重要。

工具与技能

  • 一个 LLM API(任何供应商)和一个开源模型用于回退/实验。
  • 向量数据库 —— 先用 Chroma 或 FAISS(本地、简单),再升级 pgvector/Qdrant。
  • LangGraph 或 LangChain —— 或你自己最小化的编排;刻意选择。
  • 评估设施 —— 黄金集 + LLM 裁判脚本(或 LangSmith/Evals 框架)。
  • 可观测性 —— 从第一天就结构化日志。

动手任务

  1. **提示练习(第 1 周)。**拿一个任务(比如从乱文本里抽取结构化信息)。迭代:零样本 → 少样本 → 系统规则 → JSON 输出。每步在 10 个测试输入上量正确率。感受工程带来的差别。
  2. **函数调用(第 1–2 周)。**搭一个带 2–3 个工具(比如计算器、天气 mock、搜索 mock)的小"助手"。让模型决定调哪个工具、调用它、把结果喂回去。这是所有智能体的骨架。
  3. **RAG —— 里程碑(第 2–4 周)。**选一个真实语料(你自己的文档、维基 dump 或公开文档)。搭完整管线:分块 → 嵌入 → 存储 → 检索 → 重排 → 生成。然后评估:造 20–30 个问题,测检索召回率和答案忠实度,迭代分块和检索直到分数上去。加混合检索和重排;量出增量。
  4. **成本与延迟审计(第 4 周)。**测你 RAG 应用每次查询的成本和 p95 延迟。加精确缓存;量改进。这就是"生产思维"的意思。
  5. **黄金集回归(第 4–5 周)。**把评估问题变成脚本化套件。改一次提示;跑套件;报告回归。你现在像专业人士一样做评估了。

里程碑检查点

满足以下条件,你才能进入第 8 站:

  • 你在真实语料上建了 RAG 聊天机器人,检索和答案质量都有实测数据。
  • 你有黄金集 + 自动评估,每次改动都能重跑。
  • 你能解释提示 vs RAG vs 微调的决策框架。
  • 你知道应用每次查询的成本,能说出三大成本驱动因素。
  • 你至少实现了一个护栏和一个缓存,并知道它们为什么存在。

精选资源

时间规划

  • **总计:**约 6 周,每周 10–15 小时(约 75 小时)。
  • **建议安排:**第 1 周 → 提示 + 函数调用(任务 1–2);第 2–3 周 → 搭建 RAG(任务 3);第 4 周 → 评估、成本、缓存(任务 4–5);第 5–6 周 → 打磨、生产关切、里程碑。

衔接下一站

你的应用能基于数据回答问题,还能调用工具。第 8 站拆掉最后一个约束:系统不再每次请求回答一个查询,而是追求多步目标——规划、记忆、反复调用工具、一直干到任务完成。那就是智能体,也是整份路线图一路指向的地方。

💬 Comments (0)

No comments yet.