第2章:核心能力与工作原理
生成式AI核心技术解析 本文系统阐述了生成式AI的核心工作机制,重点探讨了三大关键技术: 生成式推理机制:详细分解了从输入到输出的全流程,包括Embedding层、Transformer层和多种解码策略(Greedy/Beam Search/Sampling)。特别介绍了KV Cache和Speculative Decoding两种优化技术,可显著提升推理效率。 长上下文管理:分析了处理长文本时的
·
第2章:核心能力与工作原理
一、生成式推理(Generative Inference)
1.1 推理过程概览
1.2 解码策略详解
策略对比
关键参数
| 参数 | 范围 | 作用 | 典型值 |
|---|---|---|---|
| temperature | 0-2+ | 控制随机性,越低越确定 | 0.7-0.9 |
| top_p | 0-1 | 核采样概率阈值 | 0.9-0.95 |
| top_k | 1-100+ | 候选token数量 | 40-50 |
| max_tokens | 1-∞ | 最大生成长度 | 512-2048 |
| frequency_penalty | -2-2 | 惩罚重复 | 0-0.5 |
| presence_penalty | -2-2 | 鼓励新话题 | 0-0.5 |
应用场景匹配
1.3 KV Cache机制
原理
显存占用
KV Cache大小 = 2 × num_layers × num_heads × head_dim × seq_len × batch_size × 2 bytes(FP16)
示例:LLaMA-7B, seq_len=2048
= 2 × 32 × 32 × 128 × 2048 × 1 × 2
≈ 1GB per sequence
PagedAttention优化
1.4 Speculative Decoding(推测解码)
工作原理
性能提升
二、长上下文与记忆管理
2.1 长上下文挑战
graph TB
A[长上下文问题] --> B[计算复杂度]
A --> C[显存占用]
A --> D[注意力衰减]
B --> B1[O(n²)复杂度]
B --> B2[推理延迟增加]
C --> C1[KV Cache线性增长]
C --> C2[OOM风险]
D --> D1[远距离依赖弱化]
D --> D2[中间信息丢失]
2.2 上下文管理策略
策略对比
实现示例
# 滑动窗口策略
class SlidingWindowContext:
def __init__(self, max_tokens=4096, keep_system=True):
self.max_tokens = max_tokens
self.system_prompt = ""
self.messages = []
def add_message(self, message):
self.messages.append(message)
# 超出限制时,移除最早的用户消息
while self.count_tokens() > self.max_tokens:
self.messages.pop(0)
def get_context(self):
return [self.system_prompt] + self.messages
2.3 记忆系统架构
2.4 会话状态存储
三、RAG核心流程
3.1 端到端流程
3.2 索引构建
3.3 检索策略
混合检索
RRF融合公式
RRF_score = Σ 1/(k + rank_i)
k: 常数(通常60)
rank_i: 在第i个列表中的排名
3.4 重排序(Reranking)
3.5 上下文拼装
graph TB
A[检索文档] --> B[去重]
B --> C[质量过滤]
C --> C1[相关性阈值<br/>score > 0.7]
C --> C2[长度过滤<br/>太短/太长]
C --> D[内容组织]
D --> D1[按相关性排序]
D --> D2[按时间排序]
D --> D3[按来源分组]
D --> E[Token预算]
E --> E1[系统提示: 500]
E --> E2[检索内容: 2000]
E --> E3[用户问题: 100]
E --> E4[预留输出: 500]
E --> F[截断策略]
F --> F1[保留前N个完整块]
F --> F2[摘要超长文档]
F --> G[引用标注]
G --> G1[[1] 文档标题<br/>内容片段]
G --> H[最终Prompt]
四、函数/工具调用机制
4.1 调用流程
4.2 函数定义规范
{
"type": "function",
"function": {
"name": "search_flight",
"description": "搜索航班信息,支持单程和往返",
"parameters": {
"type": "object",
"properties": {
"from_city": {
"type": "string",
"description": "出发城市"
},
"to_city": {
"type": "string",
"description": "目的城市"
},
"date": {
"type": "string",
"format": "date",
"description": "出发日期 YYYY-MM-DD"
},
"passengers": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"default": 1
}
},
"required": ["from_city", "to_city", "date"]
}
}
}
4.3 结构化输出
Pydantic示例
from pydantic import BaseModel, Field
from typing import List
class FlightInfo(BaseModel):
flight_number: str = Field(description="航班号")
departure_time: str = Field(pattern=r"^\d{2}:\d{2}$")
arrival_time: str = Field(pattern=r"^\d{2}:\d{2}$")
price: float = Field(gt=0, description="价格(元)")
available_seats: int = Field(ge=0, le=999)
class FlightSearchResult(BaseModel):
flights: List[FlightInfo]
total_count: int
search_date: str
4.4 错误处理与重试
graph TB
A[函数调用] --> B{执行结果}
B -->|成功| C[返回结果]
B -->|失败| D[错误类型]
D -->|参数错误| E1[提示LLM修正]
D -->|超时| E2[指数退避重试]
D -->|限流| E3[等待后重试]
D -->|业务错误| E4[返回错误信息]
E1 --> F{重试次数}
E2 --> F
E3 --> F
F -->|<3次| A
F -->|≥3次| G[降级策略]
G --> G1[使用缓存结果]
G --> G2[返回默认值]
G --> G3[人工介入]
五、多模态基础
5.1 多模态架构
5.2 视觉-语言模型
应用场景
- 图像理解:看图说话、VQA(视觉问答)
- OCR增强:文档理解、表格提取
- 图像生成:文生图、图生图
- 视频分析:内容摘要、场景识别
5.3 语音-语言模型
六、总结:核心能力知识图谱
本章深入剖析了LLM的核心工作机制,为后续章节的架构设计和工程实践奠定了理论基础。
更多推荐


所有评论(0)