Databricks 生产指南 · ~100页深度解读

GenAI
生产全指南

基于 Databricks「The Big Book of Generative AI」,从模型选型到 RAG 架构、从微调实战到生产部署,8章节系统掌握生成式 AI 从零到生产的完整路径。

article~100页精读 grid_view8 章节 architecture端到端 verified生产级

Chapter 01

生成式 AI 全景 — 从技术到生产

生成式 AI 不再是实验室玩具。企业面临的核心问题已经从"能不能用"变成了"如何在生产中可靠运行"。

核心洞察

90% 的 GenAI 项目止步于 Demo 阶段。原因不是技术不行,而是缺乏端到端的生产化思维——数据治理、评估体系、安全合规、成本控制,这些"不酷"的事情才是决胜关键。

GenAI 技术栈全景

neurology

模型层

基座模型选择(开源 vs 闭源)、微调、模型服务。决定了能力上限和运营成本。

database

数据层

向量数据库、Embedding 管道、数据治理。企业数据是你唯一的护城河。

settings

应用层

RAG 管道、Prompt 管理、评估框架、安全护栏、监控告警。把"模型"变成"产品"。

为什么 GenAI 从 Demo 到生产这么难?

Demo 只需要证明"能跑",生产需要证明"能信"。核心难点:

  • 非确定性输出 — 同样的输入可能产生不同的输出,传统软件测试方法失效
  • 幻觉问题 — 模型会自信地编造事实,在企业场景中这是不可接受的
  • 数据隐私 — 企业数据不能随意发送给第三方 API
  • 成本不可控 — Token 计费模式下,一个设计不当的 Prompt 可能烧掉大量预算
  • 评估困难 — "好不好"很主观,缺乏标准化的评估方法
  • 技术债务 — 快速原型往往绕过了架构设计,导致后期难以扩展
Databricks 的 GenAI 方法论:Data Intelligence Platform

Databricks 的核心主张是:数据平台和 AI 平台不应该分离

  • Lakehouse 架构 — 统一数据湖和数据仓库,结构化和非结构化数据一体化管理
  • Unity Catalog — 统一的数据和 AI 资产治理层(模型、特征、向量索引全部纳入管控)
  • MLflow — 模型全生命周期管理(实验追踪、注册、部署、监控)
  • Mosaic AI — 模型训练、微调、服务的一站式平台

底层逻辑:你的数据已经在 Databricks 里了,AI 也应该在同一个地方构建、训练、部署和监控。

企业 GenAI 成熟度模型
阶段特征关注点
L1 探索用 API 做 Demo,个别团队尝试概念验证,找到高价值场景
L2 构建RAG 原型,初步评估数据管道、Prompt 工程
L3 部署上线第一个应用安全、延迟、成本、监控
L4 规模化多个应用,标准化平台复用、治理、组织赋能
L5 差异化自有模型,数据飞轮持续微调、独特数据壁垒

大多数企业卡在 L2 → L3 的跨越上。本指南的核心就是帮你跨过这一步。

Chapter 02

基座模型选型 — 不是所有 LLM 都适合你

选错模型的代价是巨大的——不仅浪费时间和金钱,还可能导致整个架构推倒重来。

smart_toy

模型格局一览

2024-2025 的模型市场已经不再是 GPT 一家独大。开源模型正在快速追赶,企业有了真正的选择权。

闭源模型

GPT-4o、Claude 3.5、Gemini Pro — 能力天花板高,但数据隐私、供应商锁定、成本不可控。

开源模型

Llama 3、Mixtral、DBRX、Qwen — 完全可控,可微调,成本可预测,但需要 GPU 基础设施。

选型决策矩阵

维度闭源 API开源自托管开源 + 微调
启动速度最快(几小时)中等(几天)最慢(几周)
数据隐私数据离开企业完全可控完全可控
定制能力仅 PromptPrompt + RAG全面定制
单次成本按 Token 计费GPU 固定成本训练 + GPU
规模化成本线性增长边际递减边际递减
供应商锁定
决策树:Fine-tuning vs Prompt Engineering vs RAG

面对一个新的 GenAI 需求,按以下顺序评估:

  1. 先试 Prompt Engineering — 成本最低,迭代最快。如果好的 Prompt 就能解决,不需要更复杂的方案
  2. 需要外部知识?上 RAG — 模型需要访问企业专有数据、实时信息、或超出训练数据的知识
  3. 需要特定行为模式?上 Fine-tuning — 输出格式要求严格、领域术语密集、需要模型"性格"改变
  4. 需要深度领域知识?Continued Pre-training — 全新领域(法律、医学、金融),需要模型从底层理解领域概念

实际操作中三者经常组合使用:微调模型 + RAG 检索 + 精心设计的 Prompt = 最佳效果。

小模型 vs 大模型:什么时候用小的?

不是所有任务都需要 GPT-4 级别的模型。小模型(7B-13B)在特定场景下性价比极高:

  • 分类任务 — 情感分析、意图识别、标签分类,7B 微调模型通常够用
  • 信息提取 — 从文档中抽取结构化数据,小模型 + 微调效果出色
  • 代码生成 — 限定语言和框架的代码生成,专用小模型反而更准
  • 延迟敏感场景 — 实时对话、搜索建议,小模型响应速度快 5-10 倍

大模型(70B+)不可替代的场景:

  • 复杂推理和多步规划
  • 跨领域知识综合
  • 创造性写作和长文本生成
  • 多语言和低资源语言任务
Databricks 模型服务架构

Mosaic AI Model Serving 提供三种部署模式:

  • Foundation Model APIs — 开箱即用的主流开源模型(DBRX、Llama、Mixtral),按 Token 计费,零运维
  • External Models — 统一网关代理 OpenAI / Anthropic / Google API,统一监控和治理
  • Custom Models — 部署自己微调的模型,支持 GPU 自动扩缩容
# Databricks Model Serving 调用示例 import mlflow.deployments client = mlflow.deployments.get_deploy_client("databricks") response = client.predict( endpoint="my-fine-tuned-llama", inputs={ "messages": [ {"role": "system", "content": "你是一个专业的金融分析师"}, {"role": "user", "content": "分析这份财报的关键指标"} ], "max_tokens": 1024 } )
PART II

核心技术

RAG、微调、Prompt 工程 — 三大核心技术的生产级实践

Chapter 03

RAG 架构 — 让 AI 用你的数据

RAG(检索增强生成)是企业 GenAI 的核心模式——让模型基于你的私有数据回答问题,而不是凭空编造。

核心原理

RAG 的本质很简单:先搜索,再生成。用户提问 → 从知识库检索相关文档片段 → 将片段注入 Prompt → LLM 基于这些证据生成回答。简单,但魔鬼在细节里。

RAG 管道五阶段

数据摄入 分块 向量化 检索 生成

向量数据库与 Embedding

hub

Embedding 模型

将文本转为高维向量。选择要考虑:维度、多语言支持、领域适配、推理速度。

storage

向量索引

Databricks Vector Search 基于 Delta Table 自动同步,无需维护单独的向量数据库。

manage_search

混合检索

Dense(语义)+ Sparse(关键词)双路检索,互补优势,显著提升召回率。

分块策略详解:如何切分文档

分块(Chunking)是 RAG 中最容易被忽视但影响最大的环节。分块太大,噪声多;太小,丢失上下文。

策略方法优势适用场景
固定大小按字符/Token 数切分实现简单均匀结构文本
句子/段落按自然分段切分保持语义完整文章、报告
递归分割先大块再细分灵活控制粒度通用场景
语义分块按语义相似度聚合上下文最完整复杂文档
文档结构按标题/章节切分保持层级关系技术文档、法规

实践建议:从递归分割开始(chunk_size=512, overlap=50),根据评估结果调整。总是加 overlap 防止上下文断裂。

检索管道设计:从 Naive 到 Production

Naive RAG(Demo 级):

  1. 用户 Query → Embedding → 余弦相似度 top-K → 拼入 Prompt → 生成

Production RAG(生产级)需要增加的环节:

  • Query 改写/扩展 — 用 LLM 将用户口语化问题改写为多个精确检索 Query
  • 混合检索 — BM25(关键词) + Dense Retrieval(语义)双路,加权融合
  • 重排序 (Reranking) — 用 Cross-encoder 对 top-N 候选精排,显著提升精度
  • 元数据过滤 — 利用时间、来源、权限等元数据预过滤,缩小检索范围
  • 答案验证 — 检查生成结果是否有检索证据支撑,标注引用来源
# Databricks Vector Search + Reranking 示例 from databricks.vector_search.client import VectorSearchClient vsc = VectorSearchClient() index = vsc.get_index( endpoint_name="my-vs-endpoint", index_name="catalog.schema.docs_index" ) # 混合检索:语义 + 关键词 results = index.similarity_search( query_text="如何配置 Spark 内存参数", columns=["content", "source", "timestamp"], num_results=20, filters={"source": "official_docs"} ) # 重排序后取 top-5 reranked = rerank(query, results, top_k=5)
高级 RAG 模式:Multi-hop 与 Graph-based

Multi-hop RAG — 多步检索回答复合问题:

  1. 将复杂问题分解为子问题
  2. 每个子问题独立检索
  3. 前一步的答案作为下一步检索的上下文
  4. 合并所有中间结果生成最终答案

Graph-based RAG — 利用知识图谱增强检索:

  • 构建实体和关系图谱
  • 检索时不仅找到直接相关文档,还能沿着关系链找到间接相关信息
  • 特别适合需要跨文档推理的场景(如法规关联、产品依赖关系)

Self-RAG — 让模型自己判断是否需要检索、检索结果是否相关、生成的答案是否忠实于证据。通过特殊 token 实现自我反思。

Chapter 04

微调实战 — 让模型说你的语言

微调不是万能药,但在正确的场景下,它是让通用模型变成你的专属模型的最有效手段。

什么时候该微调?

适合微调

  • 需要严格的输出格式(JSON Schema、特定模板)
  • 领域术语密集(法律、医学、金融)
  • 需要模型学会特定的"思考方式"
  • RAG 性能到瓶颈,加数据也不提升了
  • 推理成本敏感,需要用小模型达到大模型效果

不需要微调

  • 只是需要模型了解新信息 → 用 RAG
  • Prompt 调整就能解决 → 用 Prompt Engineering
  • 训练数据量不足(少于几百条高质量样本)
  • 任务变化频繁,模型需要经常更新
  • 没有明确的评估标准来验证效果
数据准备:微调成功的 80% 在数据

数据质量 > 数据数量。1000 条高质量标注数据 > 10000 条噪声数据。

数据准备清单:

  • 格式统一 — 统一 instruction/input/output 三元组格式
  • 质量审核 — 人工审核至少 10% 样本,确保标注一致性
  • 多样性 — 覆盖各种边界情况、难度级别、输入长度
  • 去重与清洗 — 删除重复、矛盾、低质量样本
  • 数据分割 — train/val/test 按 80/10/10 分割,确保分布一致
# 微调数据格式示例(JSONL) { "messages": [ {"role": "system", "content": "你是一个金融报告分析专家"}, {"role": "user", "content": "分析以下财报摘要并提取关键指标..."}, {"role": "assistant", "content": "## 关键指标分析\n1. 营收增长率: 15.3%..."} ] }
LoRA 与参数高效微调方法

全参数微调一个 70B 模型需要数百 GB 显存。LoRA(Low-Rank Adaptation)让微调变得经济可行:

  • 原理 — 冻结原始权重,只训练低秩分解矩阵(通常只有原参数的 0.1%-1%)
  • 显存节省 — 7B 模型全参微调需要 ~60GB,LoRA 只需 ~16GB
  • 训练速度 — 比全参快 3-5 倍
  • 效果 — 在大多数任务上接近全参微调的效果

QLoRA — 在 LoRA 基础上加 4-bit 量化,进一步压缩显存需求。让单卡 A100 也能微调 70B 模型。

关键超参数:

参数推荐值说明
rank (r)16-64越大表达力越强,但显存和计算成本增加
alpha2 * rank缩放因子,通常设为 rank 的 2 倍
target_modulesq_proj, v_proj选择哪些层参与微调
learning_rate1e-4 ~ 2e-4LoRA 通常比全参微调用更高学习率
Continued Pre-training:深度领域适配

当领域和通用语言差异极大时(如医学文献、法律条文、代码),仅靠 LoRA 微调可能不够。Continued Pre-training (CPT) 让模型在大量领域语料上继续预训练。

  • 数据量 — 通常需要数十 GB 领域文本
  • 训练方式 — 和预训练一样用 Next Token Prediction
  • 典型流程 — 基座模型 → CPT(领域语料) → SFT(指令微调) → RLHF/DPO(对齐)
  • 风险 — 灾难性遗忘,需要混入通用语料平衡
Databricks 微调工作流

Databricks 提供端到端的微调体验:

  1. 数据准备 — 在 Unity Catalog 中注册训练数据集
  2. 启动训练 — 通过 Mosaic AI Training API,支持 LoRA/QLoRA/全参
  3. 实验追踪 — MLflow 自动记录超参数、损失曲线、评估指标
  4. 模型注册 — 训练完成自动注册到 Unity Catalog
  5. A/B 部署 — Model Serving 支持流量分割,新旧模型对比
# Databricks 微调 API 示例 from databricks.model_training import foundation_model as fm run = fm.create( model="meta-llama/Llama-3-8B-Instruct", train_data_path="dbfs:/datasets/my_training_data.jsonl", eval_data_path="dbfs:/datasets/my_eval_data.jsonl", register_to="catalog.schema.my_fine_tuned_model", training_duration="3ep", # 3 epochs learning_rate="2e-4", context_length=4096 ) # 训练结束后自动注册到 Unity Catalog print(f"Model registered: {run.model_name}")
微调效果评估:怎么知道微调有没有用?

必须在微调前就定义好评估标准,否则无法判断投入是否值得。

  • 自动指标 — 困惑度(Perplexity)、BLEU/ROUGE(和参考答案的相似度)
  • 任务指标 — 分类准确率、提取 F1、格式合规率
  • 人工评估 — 盲评微调前后模型输出,Elo 排名
  • A/B 测试 — 线上分流对比,看业务指标是否提升
  • 回归测试 — 确保微调没有破坏模型在其他任务上的能力

Chapter 05

Prompt 工程 — 系统级方法论

Prompt Engineering 不是"试试哪个 Prompt 好用"。在生产系统中,它是一门需要版本管理、A/B 测试和持续优化的工程学科。

思维转变

把 Prompt 当作代码来管理——版本控制、代码审查、自动化测试、灰度发布。一个 Prompt 的变更可能比一行代码的影响更大。

System Prompt 设计模式

person

角色定义

明确模型的专业身份、知识边界、语气风格。不是"你是助手",而是"你是有10年经验的金融分析师,擅长..."

rule

约束与边界

明确不该做什么比该做什么更重要。"不要编造数据"、"不确定时说不知道"、"不讨论竞品"。

format_list_numbered

输出格式

用结构化示例定义期望格式。JSON Schema 比自然语言描述更精确。

error

异常处理

定义边界情况处理方式:输入不完整、超出能力范围、检测到恶意输入时如何响应。

Few-shot Learning:用示例教模型

Few-shot 是最被低估的 Prompt 技术。好的示例比长篇说明更有效。

最佳实践:

  • 数量 — 3-5 个示例通常足够,超过 8 个收益递减
  • 多样性 — 覆盖不同类型的输入和边界情况
  • 难度梯度 — 从简单到复杂排列
  • 反面示例 — 展示"不该怎么做"有时比正面示例更有效
  • 动态选择 — 根据用户输入的类型动态选择最相关的示例
# 动态 Few-shot 选择 def select_examples(query, example_pool, k=3): """根据 query 语义选择最相关的 few-shot 示例""" query_embedding = embed(query) similarities = [ (cosine_sim(query_embedding, embed(ex["input"])), ex) for ex in example_pool ] return sorted(similarities, reverse=True)[:k]
Chain-of-Thought:让模型展示推理过程

CoT 不只是加一句"Let's think step by step"。在生产系统中,CoT 有更系统的用法:

  • Structured CoT — 给模型一个明确的推理框架:分析 → 比较 → 权衡 → 结论
  • Self-Consistency — 多次生成推理路径,取多数投票结果
  • CoT + Tool Use — 推理过程中决定何时调用工具获取信息
  • Hidden CoT — 让模型内部推理但只输出最终结果(减少 Token 消耗)

生产建议:对于关键决策,开启 CoT 并存储推理过程用于审计。对于简单任务,关闭 CoT 节省成本。

结构化输出:确保输出可解析

生产系统需要可靠的结构化输出。几种方法:

  • JSON Mode — 大多数 API 支持强制 JSON 输出模式
  • Function Calling — 定义函数 Schema,模型输出结构化参数
  • Guided Generation — 在推理阶段约束 Token 生成空间(如 Outlines 库)
  • Output Parsing + Retry — 解析失败时自动重试,附带错误信息
# Structured Output with Pydantic from pydantic import BaseModel, Field class FinancialAnalysis(BaseModel): company: str = Field(description="公司名称") revenue_growth: float = Field(description="营收增长率(%)") key_risks: list[str] = Field(description="主要风险因素") recommendation: str = Field(description="投资建议: 买入/持有/卖出") confidence: float = Field(ge=0, le=1, description="置信度")
Prompt 版本管理与工程化

在生产系统中,Prompt 需要像代码一样管理:

  • 版本控制 — 每个 Prompt 有版本号,变更有审核流程
  • 参数化 — 将可变部分提取为变量,避免硬编码
  • A/B 测试 — 新 Prompt 先灰度发布,对比核心指标
  • 回滚机制 — 效果不好能一键回滚到上一版本
  • 监控告警 — 跟踪 Prompt 变更后的输出质量变化

MLflow 可以作为 Prompt Registry:存储 Prompt 模板、版本历史、评估结果,和模型管理使用同一套工具。

PART III

生产化

评估、安全、部署 — 从实验到生产的最后一公里

Chapter 06

评估体系 — 如何知道你的 AI 好不好

评估是 GenAI 生产化中最难的部分。不是因为技术复杂,而是因为"好"的标准本身就很模糊。

核心挑战

传统软件测试是确定性的:输入 A → 期望输出 B,匹配就通过。LLM 输出是概率性的——同样的问题可能有无数种"正确"回答。你需要评估的不是"是否完全一致",而是"是否足够好"。

评估方法矩阵

rule

自动化评估

基于规则和指标的自动化检查。快、便宜、可复现,但只能捕捉表面质量。

smart_toy

LLM-as-Judge

用另一个 LLM 评分。可扩展、成本适中,但有系统性偏差需要校准。

group

人工评估

领域专家评分。最准确但最贵最慢,用于高风险场景和校准自动评估。

自动化评估指标详解
指标类别具体指标评估什么
文本质量BLEU, ROUGE, BERTScore和参考答案的相似度
忠实度Faithfulness, Groundedness回答是否忠于检索到的证据
相关性Answer Relevance, Context Recall回答是否切题、检索是否充分
安全性Toxicity, Bias, PII Detection输出是否包含有害、偏见或隐私内容
格式合规JSON Valid, Schema Match结构化输出是否符合预定义格式
延迟/成本TTFT, Tokens/s, $/query性能和成本是否在预算内
LLM-as-Judge:让 AI 评 AI

用一个"更强"的 LLM 作为评审员,按预定义标准给输出打分。核心注意事项:

  • 位置偏差 — Judge 倾向于给第一个选项更高分 → 随机化呈现顺序
  • 冗长偏差 — 更长的回答通常得分更高 → 在评分标准中强调简洁性
  • 自我偏好 — 同一模型更偏好自己风格的输出 → 用不同模型做 Judge
  • 校准 — 必须和人工评估对比校准,Cohen's Kappa > 0.6 才可信
# MLflow LLM Evaluation 示例 import mlflow results = mlflow.evaluate( model="runs:/abc123/model", data=eval_dataset, model_type="question-answering", evaluators="default", extra_metrics=[ mlflow.metrics.genai.faithfulness(), mlflow.metrics.genai.relevance(), mlflow.metrics.genai.toxicity(), ] )
A/B 测试与持续监控

离线评估只是起点,线上行为可能完全不同。生产环境需要:

  • A/B 测试 — Model Serving 流量分割,同时运行新旧版本,对比业务指标
  • 漂移检测 — 监控输入分布变化(用户行为变了)和输出质量变化(模型退化了)
  • 用户反馈 — 收集 thumbs up/down、报告不准确,构建反馈闭环
  • 告警机制 — 质量指标低于阈值自动告警,严重时自动回滚

Databricks Lakehouse Monitoring 可以直接对 Inference Table 做漂移分析和质量监控。

Chapter 07

安全与治理 — 企业级 AI 的底线

安全不是上线前的最后一步检查,而是贯穿整个 GenAI 生命周期的基础设施。

四层安全架构

lock

数据层

加密、脱敏、访问控制

smart_toy

模型层

输入过滤、输出审查

apps

应用层

认证、授权、审计

policy

治理层

合规、血缘、生命周期

数据隐私:企业数据如何安全地用于 LLM

核心原则:数据不离开你的控制范围。

  • 自托管模型 — 使用开源模型部署在自己的基础设施上,数据完全不出境
  • VPC 隔离 — Databricks 支持 Customer-Managed VPC,网络层面隔离
  • PII 脱敏 — 在数据进入 LLM 前自动检测和脱敏个人信息
  • 输出过滤 — 在返回用户前检查是否泄露了不该暴露的数据
  • 数据保留策略 — 明确 Prompt 和回答的存储期限和清理策略
# PII 检测与脱敏 from presidio_analyzer import AnalyzerEngine from presidio_anonymizer import AnonymizerEngine analyzer = AnalyzerEngine() anonymizer = AnonymizerEngine() # 检测用户输入中的 PII results = analyzer.analyze( text=user_input, entities=["PHONE_NUMBER", "EMAIL_ADDRESS", "PERSON"], language="zh" ) # 脱敏后再传给 LLM sanitized = anonymizer.anonymize(text=user_input, analyzer_results=results)
幻觉检测与缓解

幻觉是企业使用 LLM 最大的阻力。三种幻觉类型:

  • 事实性幻觉 — 编造不存在的事实、数据、引用
  • 忠实性幻觉 — 回答和检索到的上下文不一致
  • 指令性幻觉 — 不遵循格式或约束要求

缓解策略:

  • RAG + Grounding — 强制模型基于检索证据回答,每句话标注出处
  • Self-Consistency — 多次生成取一致结果,不一致的部分标记为低置信
  • Fact-Checking Chain — 用第二个 LLM 校验第一个的输出是否有证据支撑
  • 置信度评分 — 让模型输出置信度,低于阈值时拒绝回答或转人工
  • 领域知识库约束 — 限定模型只能使用经过审核的知识库内容
内容安全与审核

输入侧安全(防攻击):

  • Prompt Injection 检测 — 识别试图覆盖 System Prompt 的恶意输入
  • Jailbreak 防护 — 检测试图绕过安全限制的指令
  • 输入长度限制 — 防止通过超长输入耗尽资源

输出侧安全(防泄露):

  • Toxicity Filter — 检测有害、歧视、暴力内容
  • PII 扫描 — 确保输出中不包含个人隐私信息
  • 品牌安全 — 确保输出不违反公司品牌准则
  • Topic Guard — 限制模型讨论范围,防止偏离业务场景
Unity Catalog:AI 治理的统一平台

Databricks Unity Catalog 不仅管数据,还管 AI 资产:

  • 模型注册 — 所有模型(基座、微调、部署中)统一注册和版本管理
  • 向量索引 — Vector Search Index 作为一等公民纳入管控
  • 数据血缘 — 从训练数据 → 模型 → Embedding → 推理输出的完整链路
  • 权限管理 — 细粒度 ACL:谁能查看模型、谁能部署、谁能调用
  • 审计日志 — 所有操作(训练、部署、调用)完整记录,满足合规要求

一句话总结:Unity Catalog 让你对"谁用什么数据训练了什么模型、部署在哪里、谁在调用"这些问题都有答案。

Chapter 08

生产部署 — 从 Notebook 到规模化

Notebook 里跑通了只完成了 20%。剩下 80% 是让它在生产环境中稳定、高效、可观测地运行。

底线

生产系统的标准不是"能跑",而是"挂了能自动恢复、慢了能自动扩容、贵了能自动降级、错了能立刻回滚"。

模型服务架构

实时推理 (Real-time)

用户面对面的场景——聊天、搜索建议、实时分析。要求低延迟(<2s),高可用(99.9%+)。

批量推理 (Batch)

离线处理大量数据——文档分类、数据标注、报告生成。追求吞吐量和成本效率。

延迟优化:从 10 秒到 1 秒

LLM 推理延迟的构成:

环节典型耗时优化方法
网络传输10-200ms边缘部署、连接池复用
Prompt 处理100-2000msPrompt 缓存、KV Cache、压缩 Prompt
Token 生成500-5000ms量化(INT8/INT4)、推测解码、更小模型
检索(RAG)50-500msANN 索引优化、预过滤、缓存热门查询
后处理10-100ms异步安全检查、流式输出

Streaming 是最容易见效的优化:不等完整生成结束,逐 Token 流式返回。用户感知延迟从"等 5 秒"变成"几乎立刻开始"。

成本管理:GenAI 不应该是无底洞

成本构成:

  • GPU 计算 — 最大头,自托管模型的固定成本或 API 调用的变动成本
  • 存储 — 向量数据库、模型权重、推理日志
  • 网络 — 跨区域传输、API 调用

控制策略:

  • 模型路由 — 简单问题用小模型,复杂问题才调用大模型。可以节省 60-80% 成本
  • 缓存 — 语义缓存,相似问题直接返回缓存结果
  • Prompt 优化 — 减少 Token 数(尤其是 System Prompt)
  • 批量处理 — 非实时需求用离线批量推理,GPU 利用率更高
  • 自动扩缩容 — 流量低谷自动缩容到最小副本数
  • 预算告警 — 设置每日/每月预算上限,超出自动降级或熔断
# 智能模型路由示例 def route_query(query, complexity_score): """根据查询复杂度选择模型""" if complexity_score < 0.3: return "llama-3-8b" # 简单问题,小模型 elif complexity_score < 0.7: return "llama-3-70b" # 中等复杂度 else: return "gpt-4o" # 最复杂的交给最强模型
监控与可观测性

GenAI 应用的监控比传统应用复杂得多——不只看延迟和错误率,还要看输出质量

三层监控体系:

  • 基础设施层 — GPU 利用率、内存占用、Queue 深度、错误率
  • 应用层 — 请求延迟(P50/P95/P99)、Token 消耗、缓存命中率
  • 质量层 — 输出长度分布、拒答率、用户评分、幻觉率、检索命中率

Databricks Inference Table:自动记录每次推理的完整信息(输入、输出、延迟、Token 数),存入 Delta Table,可以直接用 SQL 分析和 Lakehouse Monitoring 做漂移检测。

CI/CD for GenAI:持续集成与交付

GenAI 应用的 CI/CD 和传统软件有关键区别:除了代码,还要管理数据、模型和 Prompt。

完整流水线:

  1. 代码变更 — Git PR → 代码审查 → 单元测试
  2. Prompt 变更 — Prompt PR → 自动评估 → 回归测试
  3. 数据变更 — 数据更新 → 重建向量索引 → 检索质量测试
  4. 模型变更 — 新模型/微调 → 离线评估 → A/B 测试 → 全量切换
  5. 部署 — 灰度发布 → 质量监控 → 自动回滚机制

关键原则:

  • 每次变更都有评估 — 不管是改了一行 Prompt 还是换了整个模型
  • 所有资产版本化 — 代码、Prompt、数据快照、模型权重全部有版本
  • 可复现 — 任何时间点的系统状态都能完整复现
GenAI MLOps 完整生命周期

把所有环节串起来,一个完整的 GenAI 应用生命周期:

  1. 数据准备 — 收集、清洗、标注 → Unity Catalog 注册
  2. 模型选择/训练 — 评估基座模型 → 决定是否微调 → MLflow 追踪实验
  3. RAG 构建 — 文档分块 → Embedding → Vector Search 索引
  4. Prompt 开发 — 设计 System Prompt → Few-shot 示例 → 迭代优化
  5. 评估 — 自动化指标 + LLM-as-Judge + 人工审核
  6. 部署 — Model Serving → 灰度发布 → A/B 测试
  7. 监控 — Inference Table → 质量监控 → 漂移检测 → 告警
  8. 迭代 — 收集反馈 → 更新数据/Prompt/模型 → 重新评估 → 重新部署

关键认知

GenAI 应用不是"做完就结束"的项目,而是"持续运营"的产品。模型会退化、数据会变化、用户需求会演进——你需要的不是一次性交付,而是一个可持续迭代的系统

全书总结

生成式 AI 的竞争不在于谁先做出 Demo,而在于谁能先跑通从数据到生产的完整闭环。技术选型、RAG 架构、微调策略、评估体系、安全治理、生产部署——这些不酷但关键的工程实践,才是企业 GenAI 成功的真正壁垒。