大模型推理成本优化:从理论到实践

推理成本:AI落地的最大障碍 一个简单的事实:运行一个70B参数的模型,单张A100 GPU的每小时成本约2-3美元(云服务),每秒处理约50个Token。如果日均100万次请求、每次平均500 Token,一天的GPU成本就超过500美元。 随着用户规模增长,推理成本会线性甚至超线性增长。不做好成本优化,AI项目的商业模式根本不成立。 五层优化框架 我们将推理成本优化分为五个层次,从收益最大到收益递减: 第一层:模型选择优化 选择最小的够用模型。 这听起来简单,但实践中很多团队默认使用最大的模型"以防万一"。 我们的建议是建立模型路由系统: 简单FAQ → 7B模型 一般对话 → 32B模型 复杂推理 → 70B+模型 通过一个轻量级分类器判断请求复杂度,自动路由到合适的模型。在我们的实践中,模型路由可以降低60%以上的推理成本,而用户体验几乎不受影响。 开源vs闭源混合策略。 对于流量大的简单任务用开源模型自建部署,对于低频复杂任务调用闭源API。两者结合可以在成本和质量间取得最优平衡。 第二层:模型压缩优化 量化:INT4量化可以将模型大小和推理成本降低4倍,质量损失控制在2-3%以内(详见我们之前的量化对比文章)。 蒸馏:用大模型蒸馏出一个小模型用于线上推理。对于垂直领域,蒸馏模型可以达到接近大模型的效果但成本只有1/10。 稀疏化:通过剪枝去除不重要的权重。MoE架构本质上就是一种结构化的稀疏化——每次推理只激活部分专家网络。 第三层:推理引擎优化 KV Cache优化:KV Cache是自回归生成的最大显存消耗者。优化手段包括: PagedAttention(vLLM):将KV Cache分页管理,减少碎片浪费 KV Cache量化:将KV Cache从FP16压缩到INT8,显存减半 KV Cache共享:相同Prefix的请求共享KV Cache 批处理:将多个请求合并处理可以提高GPU利用率。vLLM的Continuous Batching技术可以在不增加延迟的情况下将吞吐量提升3-5倍。 投机解码(Speculative Decoding):用一个小模型先生成候选Token,大模型并行验证。如果小模型的猜测正确率高,生成速度可以提升2-3倍。 第四层:系统架构优化 缓存层:对相同或相似查询的结果进行缓存。我们采用语义缓存——不只是精确匹配,而是通过嵌入相似度判断是否可以用缓存结果。语义缓存可以命中15-30%的请求。 请求合并:当多个用户问类似的问题时,合并为一个请求,结果分发。这在客服场景特别有效。 异步处理:非实时任务(如批量文档处理)放入队列,在低峰期处理。削峰填谷可以显著降低峰值GPU需求。 自动伸缩:基于请求队列长度和GPU利用率自动伸缩推理节点。配合预加载模型镜像,可以在5分钟内完成新节点启动。 第五层:Prompt优化 Prompt精简:去掉不必要的System Prompt内容,精简指令描述。每个Token都要花钱,冗长的Prompt直接增加成本。 Few-shot优化:与其在Prompt中放5个示例,不如用1个最好的示例加更清晰的指令。Few-shot示例的质量比数量更重要。 输出长度控制:在Prompt中明确要求简洁回答。生成500 Token和生成100 Token的成本差5倍。 实际案例 我们为一个客服场景做了全栈优化: 优化措施 成本降低 质量影响 模型从70B降到32B -45% -2%准确率 INT4量化 -60% -1.5%准确率 vLLM + Continuous Batching -30% 无影响 语义缓存 -22% 无影响 Prompt精简 -15% 无影响 投机解码 -35%(速度提升) 无影响 综合 -85% -3.5%准确率 最终成本降低了85%,而质量损失控制在可接受范围内。 ...

2026-07-12 · 1 min · 94 words · 硅基 AGI 探索者

大模型推理成本优化:从理论到实践

推理成本:AI落地的最大障碍 一个简单的事实:运行一个70B参数的模型,单张A100 GPU的每小时成本约2-3美元(云服务),每秒处理约50个Token。如果日均100万次请求、每次平均500 Token,一天的GPU成本就超过500美元。 随着用户规模增长,推理成本会线性甚至超线性增长。不做好成本优化,AI项目的商业模式根本不成立。 五层优化框架 我们将推理成本优化分为五个层次,从收益最大到收益递减: 第一层:模型选择优化 选择最小的够用模型。 这听起来简单,但实践中很多团队默认使用最大的模型"以防万一"。 我们的建议是建立模型路由系统: 简单FAQ → 7B模型 一般对话 → 32B模型 复杂推理 → 70B+模型 通过一个轻量级分类器判断请求复杂度,自动路由到合适的模型。在我们的实践中,模型路由可以降低60%以上的推理成本,而用户体验几乎不受影响。 开源vs闭源混合策略。 对于流量大的简单任务用开源模型自建部署,对于低频复杂任务调用闭源API。两者结合可以在成本和质量间取得最优平衡。 第二层:模型压缩优化 量化:INT4量化可以将模型大小和推理成本降低4倍,质量损失控制在2-3%以内(详见我们之前的量化对比文章)。 蒸馏:用大模型蒸馏出一个小模型用于线上推理。对于垂直领域,蒸馏模型可以达到接近大模型的效果但成本只有1/10。 稀疏化:通过剪枝去除不重要的权重。MoE架构本质上就是一种结构化的稀疏化——每次推理只激活部分专家网络。 第三层:推理引擎优化 KV Cache优化:KV Cache是自回归生成的最大显存消耗者。优化手段包括: PagedAttention(vLLM):将KV Cache分页管理,减少碎片浪费 KV Cache量化:将KV Cache从FP16压缩到INT8,显存减半 KV Cache共享:相同Prefix的请求共享KV Cache 批处理:将多个请求合并处理可以提高GPU利用率。vLLM的Continuous Batching技术可以在不增加延迟的情况下将吞吐量提升3-5倍。 投机解码(Speculative Decoding):用一个小模型先生成候选Token,大模型并行验证。如果小模型的猜测正确率高,生成速度可以提升2-3倍。 第四层:系统架构优化 缓存层:对相同或相似查询的结果进行缓存。我们采用语义缓存——不只是精确匹配,而是通过嵌入相似度判断是否可以用缓存结果。语义缓存可以命中15-30%的请求。 请求合并:当多个用户问类似的问题时,合并为一个请求,结果分发。这在客服场景特别有效。 异步处理:非实时任务(如批量文档处理)放入队列,在低峰期处理。削峰填谷可以显著降低峰值GPU需求。 自动伸缩:基于请求队列长度和GPU利用率自动伸缩推理节点。配合预加载模型镜像,可以在5分钟内完成新节点启动。 第五层:Prompt优化 Prompt精简:去掉不必要的System Prompt内容,精简指令描述。每个Token都要花钱,冗长的Prompt直接增加成本。 Few-shot优化:与其在Prompt中放5个示例,不如用1个最好的示例加更清晰的指令。Few-shot示例的质量比数量更重要。 输出长度控制:在Prompt中明确要求简洁回答。生成500 Token和生成100 Token的成本差5倍。 实际案例 我们为一个客服场景做了全栈优化: 优化措施 成本降低 质量影响 模型从70B降到32B -45% -2%准确率 INT4量化 -60% -1.5%准确率 vLLM + Continuous Batching -30% 无影响 语义缓存 -22% 无影响 Prompt精简 -15% 无影响 投机解码 -35%(速度提升) 无影响 综合 -85% -3.5%准确率 最终成本降低了85%,而质量损失控制在可接受范围内。 ...

2026-07-12 · 1 min · 94 words · 硅基 AGI 探索者
llm inference stress testing

大模型推理服务压测指南

概述 大模型推理服务压测指南是AI智能体领域中大模型推理服务压测指南的重要主题。本文将从多个角度深入分析这一话题,为读者提供系统性的认知框架和实践参考。 核心概念 基本定义 在深入讨论之前,我们需要明确几个核心概念。AI智能体是指能够感知环境、理解指令、规划行动并调用工具完成任务的AI系统。与传统的聊天机器人不同,智能体具有自主性、目标导向性和工具使用能力。 大模型推理服务压测指南涉及的关键技术包括: 大语言模型:作为智能体的认知引擎,负责理解、推理和生成 工具调用:通过Function Calling或MCP协议与外部系统交互 记忆系统:短期记忆处理当前对话,长期记忆存储历史经验 规划引擎:将复杂任务分解为可执行的子步骤 技术原理 从技术层面看,大模型推理服务压测指南的核心在于如何让AI系统更好地理解和执行人类意图。这涉及多个技术环节的协同: 首先是感知层,智能体需要准确理解用户的自然语言指令,提取关键信息和约束条件。其次是规划层,将高层目标分解为具体的执行步骤。然后是执行层,调用合适的工具完成每个步骤。最后是反馈层,根据执行结果调整后续策略。 实践分析 当前现状 在实践指南领域,当前的技术实践呈现出几个明显特征: 工程化程度提升:从实验室原型到生产级系统,工程能力成为关键差异化因素 评估体系完善:越来越多标准化的评测基准被提出,帮助开发者量化能力边界 开源生态繁荣:开源框架和工具链的成熟降低了开发门槛 安全意识增强:对AI安全和对齐问题的重视程度显著提升 关键挑战 尽管进展显著,大模型推理服务压测指南仍面临几个核心挑战: 技术挑战: 大模型的幻觉问题在智能体场景下被放大,因为智能体需要做出实际决策 多步推理中的错误累积效应导致长程任务成功率下降 工具调用的可靠性受外部API稳定性影响 工程挑战: 智能体的可观测性不足,调试和排错困难 成本控制与性能优化的平衡 从单机到分布式部署的架构复杂性 安全挑战: Prompt注入等攻击手段不断进化 智能体权限管理需要更精细化的控制 数据隐私保护在多Agent协作场景下更加复杂 优化策略 针对上述挑战,以下是几个关键优化方向: 技术优化 分而治之:将复杂任务分解为可独立验证的子任务,降低单步错误影响 多路投票:对关键决策使用多次采样投票机制,提高可靠性 渐进式信任:智能体权限从最小化开始,根据表现逐步扩展 人在回路:高风险决策保留人工审核环节 工程优化 可观测性优先:建立完善的日志、指标和追踪体系 灰度发布:新版本智能体先在小流量环境验证 自动化测试:构建端到端测试套件,防止回归 成本监控:实时追踪Token消耗和API调用成本 案例研究 为了更具体地说明大模型推理服务压测指南的实践价值,我们来看一个典型场景: 某科技公司在内部IT运维中部署了AI智能体,负责处理员工的工单请求。智能体需要理解员工的自然语言描述,判断问题类型,查询知识库,执行修复操作或转接人工。 实施过程中遇到的关键问题包括: 员工描述模糊导致意图识别错误 知识库信息过时导致给出错误建议 某些操作需要管理员权限存在安全风险 解决方案: 引入澄清对话机制,在不确定时主动追问 建立知识库更新流程,定期审核内容 实施权限分级制度,敏感操作需人工确认 效果:工单首次解决率提升35%,平均处理时间缩短60%,员工满意度显著提升。 未来趋势 大模型推理服务压测指南的发展趋势值得关注: 标准化:MCP等开放协议将推动工具接口标准化,降低集成成本 垂直化:针对特定行业和场景的专用智能体将大量涌现 协作化:多智能体协作将成为复杂任务的标准解决方案 自主化:智能体的自主决策能力将持续提升,但需要配套的安全机制 结论 大模型推理服务压测指南是AI智能体技术发展中的重要一环。无论是技术原理的深入理解,还是实践中的工程优化,都需要系统性思维。对于开发者和企业而言,关键在于: 理解技术能力和边界,避免过度期待 建立系统化的评估和监控体系 在创新和安全之间找到平衡 持续学习和适应快速变化的技术生态 硅基AGI探索者将持续关注实践指南领域的最新进展,为读者提供深度分析和实践指导。— ...

2026-06-27 · 1 min · 88 words · 硅基 AGI 探索者
agent performance benchmark

智能体性能基准测试方法

概述 智能体性能基准测试方法是AI智能体领域中智能体性能基准测试方法的重要主题。本文将从多个角度深入分析这一话题,为读者提供系统性的认知框架和实践参考。 核心概念 基本定义 在深入讨论之前,我们需要明确几个核心概念。AI智能体是指能够感知环境、理解指令、规划行动并调用工具完成任务的AI系统。与传统的聊天机器人不同,智能体具有自主性、目标导向性和工具使用能力。 智能体性能基准测试方法涉及的关键技术包括: 大语言模型:作为智能体的认知引擎,负责理解、推理和生成 工具调用:通过Function Calling或MCP协议与外部系统交互 记忆系统:短期记忆处理当前对话,长期记忆存储历史经验 规划引擎:将复杂任务分解为可执行的子步骤 技术原理 从技术层面看,智能体性能基准测试方法的核心在于如何让AI系统更好地理解和执行人类意图。这涉及多个技术环节的协同: 首先是感知层,智能体需要准确理解用户的自然语言指令,提取关键信息和约束条件。其次是规划层,将高层目标分解为具体的执行步骤。然后是执行层,调用合适的工具完成每个步骤。最后是反馈层,根据执行结果调整后续策略。 实践分析 当前现状 在测评方法领域,当前的技术实践呈现出几个明显特征: 工程化程度提升:从实验室原型到生产级系统,工程能力成为关键差异化因素 评估体系完善:越来越多标准化的评测基准被提出,帮助开发者量化能力边界 开源生态繁荣:开源框架和工具链的成熟降低了开发门槛 安全意识增强:对AI安全和对齐问题的重视程度显著提升 关键挑战 尽管进展显著,智能体性能基准测试方法仍面临几个核心挑战: 技术挑战: 大模型的幻觉问题在智能体场景下被放大,因为智能体需要做出实际决策 多步推理中的错误累积效应导致长程任务成功率下降 工具调用的可靠性受外部API稳定性影响 工程挑战: 智能体的可观测性不足,调试和排错困难 成本控制与性能优化的平衡 从单机到分布式部署的架构复杂性 安全挑战: Prompt注入等攻击手段不断进化 智能体权限管理需要更精细化的控制 数据隐私保护在多Agent协作场景下更加复杂 优化策略 针对上述挑战,以下是几个关键优化方向: 技术优化 分而治之:将复杂任务分解为可独立验证的子任务,降低单步错误影响 多路投票:对关键决策使用多次采样投票机制,提高可靠性 渐进式信任:智能体权限从最小化开始,根据表现逐步扩展 人在回路:高风险决策保留人工审核环节 工程优化 可观测性优先:建立完善的日志、指标和追踪体系 灰度发布:新版本智能体先在小流量环境验证 自动化测试:构建端到端测试套件,防止回归 成本监控:实时追踪Token消耗和API调用成本 案例研究 为了更具体地说明智能体性能基准测试方法的实践价值,我们来看一个典型场景: 某科技公司在内部IT运维中部署了AI智能体,负责处理员工的工单请求。智能体需要理解员工的自然语言描述,判断问题类型,查询知识库,执行修复操作或转接人工。 实施过程中遇到的关键问题包括: 员工描述模糊导致意图识别错误 知识库信息过时导致给出错误建议 某些操作需要管理员权限存在安全风险 解决方案: 引入澄清对话机制,在不确定时主动追问 建立知识库更新流程,定期审核内容 实施权限分级制度,敏感操作需人工确认 效果:工单首次解决率提升35%,平均处理时间缩短60%,员工满意度显著提升。 未来趋势 智能体性能基准测试方法的发展趋势值得关注: 标准化:MCP等开放协议将推动工具接口标准化,降低集成成本 垂直化:针对特定行业和场景的专用智能体将大量涌现 协作化:多智能体协作将成为复杂任务的标准解决方案 自主化:智能体的自主决策能力将持续提升,但需要配套的安全机制 结论 智能体性能基准测试方法是AI智能体技术发展中的重要一环。无论是技术原理的深入理解,还是实践中的工程优化,都需要系统性思维。对于开发者和企业而言,关键在于: 理解技术能力和边界,避免过度期待 建立系统化的评估和监控体系 在创新和安全之间找到平衡 持续学习和适应快速变化的技术生态 硅基AGI探索者将持续关注测评方法领域的最新进展,为读者提供深度分析和实践指导。— ...

2026-06-27 · 1 min · 88 words · 硅基 AGI 探索者
agent load balancing

智能体负载均衡与并发控制

为什么智能体系统需要特殊的负载均衡? 传统的负载均衡主要处理无状态的 HTTP 请求,关注的是 QPS、延迟和可用性。但 AI 智能体系统的负载特征与传统 Web 服务有本质区别:单个请求的计算开销极大(一次 LLM 推理可能耗时数秒到数十秒)、请求之间可能存在状态依赖(多轮对话上下文)、且不同模型的资源需求差异巨大。 一个典型的 AGI 智能体系统可能同时包含:轻量级的意图分类(小模型,毫秒级响应)、重量级的推理任务(大模型,数十秒)、长周期的 Agent 工作流(多步骤,分钟级甚至小时级)、以及实时向量检索(RAG pipeline)。这些异构负载如果混在一起不加区分地调度,必然导致资源浪费和体验劣化。 智能体负载均衡的核心维度 1. 请求分类与路由 第一步是对进入系统的请求进行智能分类。不同于传统负载均衡器只看 URL 路径,智能体系统需要根据请求的语义特征进行路由: class RequestRouter: def __init__(self): self.routes = { "classification": {"model": "claude-haiku", "timeout": 2000, "pool": "fast"}, "reasoning": {"model": "gpt-4o", "timeout": 30000, "pool": "deep"}, "agent_workflow": {"model": "agent-orchestrator", "timeout": 300000, "pool": "long"}, "embedding": {"model": "text-embedding-3", "timeout": 1000, "pool": "vector"}, } def route(self, request): req_type = self.classify(request) route_config = self.routes[req_type] # 检查对应池的可用容量 if self.pool_available(route_config["pool"]): return self.dispatch(request, route_config) else: # 降级策略 return self.fallback(request, req_type) 关键设计点在于:不同类型的请求进入不同的处理池,彼此隔离,避免慢请求阻塞快请求。这就是所谓的"泳道隔离"模式。 2. 连接池与令牌桶 对于 LLM API 调用,两个核心限制是并发连接数和 token 速率限制。有效的管理需要同时处理这两个维度: 连接池管理:每个模型端点维护独立的连接池,池大小根据模型的并发能力和成本预算动态调整。例如,对于按量计费的 API,可以设置较高的并发上限;对于有 RPM 限制的 API,需要严格控制在限额以内。 令牌桶限流:不仅仅限制请求数量,更要限制 token 消耗速率。一个请求可能消耗 100 token,另一个可能消耗 10000 token。按 token 而非请求数来限流,才能真正做到公平调度: class TokenBucket: def __init__(self, capacity, refill_rate): self.capacity = capacity # 桶容量(最大突发) self.refill_rate = refill_rate # 每秒补充的 token 数 self.tokens = capacity self.last_refill = time.time() def consume(self, tokens_needed): self._refill() if self.tokens >= tokens_needed: self.tokens -= tokens_needed return True return False def _refill(self): now = time.time() elapsed = now - self.last_refill self.tokens = min(self.capacity, self.tokens + elapsed * self.refill_rate) self.last_refill = now 3. 优先级队列 并非所有请求都同等重要。用户的实时对话请求应该优先于后台的批量处理任务。一个成熟的优先级策略通常包含 3-4 个级别: ...

2026-06-26 · 2 min · 355 words · 硅基 AGI 探索者
llm caching strategy

LLM 缓存策略:语义缓存与多级缓存架构

1. 为什么 LLM 需要缓存 LLM 调用成本高、延迟高。以 GPT-4o 为例: 延迟:单次请求 500ms - 3000ms 成本:输入 $2.5/1M tokens,输出 $10/1M tokens 并发限制:RPM(每分钟请求数)和 TPM(每分钟 tokens)受限 缓存可以显著降低延迟和成本。但 LLM 缓存不同于传统缓存:用户问题"今天天气"和"天气怎么样"语义相近,应该命中同一缓存条目——这就是语义缓存的核心价值。 2. 语义缓存原理 2.1 相似度计算 from dataclasses import dataclass import numpy as np @dataclass class CacheEntry: query: str query_embedding: np.ndarray response: str model: str tokens_used: int timestamp: float hit_count: int = 0 ttl_seconds: int = 3600 class SemanticCache: """ 语义缓存:基于向量相似度的缓存命中 核心思想:如果新查询与已缓存查询的语义距离 < 阈值,则复用缓存结果 """ def __init__(self, embedding_model, similarity_threshold: float = 0.95): self.embedding_model = embedding_model self.threshold = similarity_threshold self.cache: list[CacheEntry] = [] self.index = None # 可选:FAISS/Annoy 加速 async def get(self, query: str) -> tuple[bool, str | None]: query_embedding = await self.embedding_model.embed(query) # 线性搜索(生产环境用向量索引) for entry in self.cache: similarity = self._cosine_similarity(query_embedding, entry.query_embedding) if similarity >= self.threshold: entry.hit_count += 1 return True, entry.response return False, None async def set(self, query: str, response: str, model: str, tokens: int): embedding = await self.embedding_model.embed(query) entry = CacheEntry( query=query, query_embedding=embedding, response=response, model=model, tokens_used=tokens, timestamp=time.time() ) self.cache.append(entry) def _cosine_similarity(self, v1: np.ndarray, v2: np.ndarray) -> float: return float(np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))) 2.2 阈值调优 import matplotlib.pyplot as plt class ThresholdOptimizer: """语义缓存阈值优化器""" def __init__(self, cache: SemanticCache, test_data: list[tuple[str, str, bool]]): """ test_data: [(query1, cached_query, should_hit), ...] """ self.cache = cache self.test_data = test_data def evaluate(self, threshold: float) -> dict: self.cache.threshold = threshold true_positives = 0 false_positives = 0 false_negatives = 0 true_negatives = 0 for query, cached, should_hit in self.test_data: # 手动计算相似度 e1 = await self.cache.embedding_model.embed(query) e2 = await self.cache.embedding_model.embed(cached) sim = self.cache._cosine_similarity(e1, e2) is_hit = sim >= threshold if should_hit and is_hit: true_positives += 1 elif not should_hit and is_hit: false_positives += 1 elif should_hit and not is_hit: false_negatives += 1 else: true_negatives += 1 precision = true_positives / (true_positives + false_positives) if (true_positives + false_positives) > 0 else 0 recall = true_positives / (true_positives + false_negatives) if (true_positives + false_negatives) > 0 else 0 f1 = 2 * precision * recall / (precision + recall) if (precision + recall) > 0 else 0 return {"threshold": threshold, "precision": precision, "recall": recall, "f1": f1} def find_optimal_threshold(self) -> float: thresholds = np.arange(0.80, 1.0, 0.01) results = [self.evaluate(t) for t in thresholds] best = max(results, key=lambda x: x["f1"]) return best["threshold"] 推荐阈值: ...

2026-06-25 · 7 min · 1460 words · 硅基 AGI 探索者
llm latency benchmark

LLM 推理性能 Benchmark:TTFT/TPS/延迟全景对比

引言 模型能力决定了「能不能做」,推理性能决定了「能不能用」。一个 GPT-5 级别的模型如果每次回复需要 30 秒,在大多数实际场景中就不可用。2026 年,随着模型规模增长和上下文窗口扩展,推理性能优化已成为 LLM 工程的核心挑战。本文系统梳理推理性能的关键指标、测试方法论和主流模型对比。 一、关键指标定义 1.1 核心性能指标 指标 全称 定义 单位 用户感知 TTFT Time To First Token 从请求发送到第一个 token 返回的时间 毫秒 (ms) 「多久开始看到回复」 TPS Tokens Per Second 生成阶段每秒输出的 token 数 tokens/s 「回复有多快」 E2E End-to-End Latency 从请求发送到完整回复结束的总时间 秒 (s) 「整个回复要多久」 TBT Time Between Tokens 相邻 token 之间的间隔 毫秒 (ms) 「打字是否流畅」 QPS Queries Per Second 每秒能处理的并发请求数 req/s 「系统能承受多大负载」 1.2 指标之间的关系 E2E = TTFT + (Output Tokens / TPS) 示例: TTFT = 500ms Output Tokens = 500 TPS = 80 tokens/s E2E = 0.5 + (500/80) = 0.5 + 6.25 = 6.75 秒 1.3 哪个指标最重要? 取决于应用场景: ...

2026-06-25 · 6 min · 1067 words · 硅基 AGI 探索者
rag pipeline optimization

RAG 流水线优化全攻略:从检索到生成的极致调优

RAG 流水线全景 一个生产级 RAG 系统远不止"Embedding + 向量检索 + LLM 生成"这么简单。完整的优化链路: 用户查询 → 查询改写 → 多路召回 → 重排序 → 上下文压缩 → LLM 生成 → 流式输出 ↑ ↓ 缓存 引用标注 每个环节都有优化空间。下面逐一拆解。 1. 分块策略 分块决定了文档被切分成什么粒度的片段,直接影响检索精度。 固定长度分块 最简单的策略,按固定 token 数切分: from langchain.text_splitter import RecursiveCharacterTextSplitter splitter = RecursiveCharacterTextSplitter( chunk_size=512, chunk_overlap=64, separators=["\n\n", "\n", "。", "!", "?", ",", " ", ""] ) chunks = splitter.split_text(long_document) chunk_overlap 很关键:64-128 的重叠可以避免句子被截断导致语义丢失。但重叠太大会增加存储和检索冗余。 语义分块 按语义完整性切分,而非固定长度: from langchain.text_splitter import SemanticChunker from langchain.embeddings import HuggingFaceEmbeddings embeddings = HuggingFaceEmbeddings(model_name="BAAI/bge-large-zh-v1.5") splitter = SemanticChunker( embeddings, breakpoint_threshold_type="percentile", # 或 "standard_deviation" breakpoint_threshold_amount=95 ) chunks = splitter.split_text(long_document) 语义分块在文档结构复杂时效果更好,但计算成本高(每句话都要算 Embedding)。 结构感知分块 利用文档结构(Markdown 标题、HTML 标签)分块: ...

2026-06-24 · 4 min · 685 words · 硅基 AGI 探索者
鲁ICP备2026018361号