- 博客(75)
- 收藏
- 关注
原创 模型上下文窗口管理,避免超长对话超限
摘要解决LLM应用在处理长对话或海量文档时引发的上下文超限、API报错、延迟激增及幻觉频发问题。适用于需构建高可用长上下文AI应用的后端与算法工程师。读完可获得基于滑动窗口、摘要压缩与RAG检索回填的系统级管理策略,以及Token精准计数与上下文裁剪的可运行代码。关键词上下文窗口、Token超限、滑动窗口、摘要压缩、RAG、tiktoken、上下文裁剪背景与问题。
2026-11-05 14:26:02
432
原创 大模型会话记忆管理:对话历史持久化方案
摘要解决大模型无状态架构在长对话与多会话场景下的上下文丢失与内存膨胀问题。适用于需构建具备持久记忆能力的AI应用的后端与算法工程师。读完可获得基于Redis与PostgreSQL的双层持久化架构方案、LangChain/LlamaIndex存储适配代码及上下文压缩的工程选型依据。关键词对话持久化、Redis、PostgreSQL、滑动窗口、会话记忆、上下文压缩、LangChain背景与问题大模型API本身无状态,每次调用都不携带历史会话,多轮对话的上下文连贯性完全依赖应用层维护。
2026-11-05 14:22:11
450
原创 流式输出 SSE:实现 AI 对话打字机效果后端开发
摘要解决传统 HTTP 请求在 LLM 长文本生成时导致的客户端长时间阻塞与 TTFT 极高的问题。适用于需为 AI 应用提供打字机效果、优化交互体验的后端开发工程师。读完可获得基于 FastAPI 与 SSE(Server-Sent Events)技术的流式响应实现代码、协议规范及生产环境避坑指南。关键词SSE、流式输出、FastAPI、打字机效果、TTFT、大模型推理背景与问题大模型(LLM)生成完整回复通常耗时数秒至数十秒,传统请求-响应模型导致用户界面长时间无响应,体验极差。
2026-11-05 14:18:49
166
原创 大模型输出内容安全校验:业务应用内容审核方案
摘要解决LLM业务应用中违规、越狱诱导与隐私泄露等内容安全风险缺乏系统性拦截的问题。适用于需在生产环境构建可观测、可分级处置的AIGC安全防线的后端与算法工程师。读完可获得基于“输入-输出-运营”三道防线的审核架构、Llama Guard本地部署代码与分级治理策略。关键词内容安全、Llama Guard、输入防线、输出审核、分级治理、护栏机制背景与问题仅对模型输出做单点审核,无法拦截提示词注入与越狱攻击,且静态关键词匹配对语义变体完全失效。
2026-11-04 11:02:38
306
原创 多模型路由策略:根据业务问题自动选择合适大模型
摘要解决单一前沿大模型调用成本高昂、简单任务算力浪费以及可用性保障单一的问题。适用于需在成本、延迟与效果之间取得平衡的大模型应用架构师与后端工程师。读完可获得基于规则与语义的动态多模型路由策略、降级兜底架构及完整可运行的 Python 实现。关键词模型路由、动态分发、降级兜底、语义路由、API成本优化、负载均衡背景与问题业务全面接入单一旗舰大模型(如 GPT-4o / Claude 3.5 Sonnet)会导致严重的成本溢出,因为日常请求中 70% 以上属于简单分类、信息提取或日常闲聊。
2026-11-04 10:59:36
297
原创 大模型推理延迟优化:批量推理、量化部署实践
摘要解决LLM在线服务中GPU显存碎片化、请求等齐阻塞导致吞吐低与TTFT劣化的问题。适用于需在生产环境部署推理服务、对P99延迟与每Token成本有硬性约束的AI基础设施工程师。读完可获得基于vLLM的PagedAttention与连续批处理调优参数、AWQ/GPTQ量化部署的性能边界与实测数据。关键词PagedAttention、连续批处理、AWQ、GPTQ、TTFT、TPOT、vLLM背景与问题。
2026-11-04 08:26:43
383
原创 微调数据集构建:清洗、标注、格式转换完整流程
摘要解决微调数据直接抓取导致的噪声污染、模式崩溃与Token错位问题。适用于需为大模型SFT阶段构建高质量训练集的数据与算法工程师。读完可获得包含启发式清洗、MinHash去重及ChatML格式对齐的完整可运行数据流水线。关键词数据清洗、MinHash去重、数据标注、ChatML、SFT数据集、数据配比背景与问题大模型微调效果的上限由数据质量决定,直接使用未经处理的原始语料极易引发模型复读、幻觉与指令遵循能力退化。
2026-11-02 08:15:14
462
原创 微调 vs Prompt:业务场景下两种方案成本 & 效果对比
摘要解决大模型业务适配中Prompt工程与微调选型缺乏量化依据、易陷入过度投资或效果不达标的问题。适用于需在推理量、延迟、一致性约束下做出架构决策的后端与算法工程师。读完可获得基于每日调用量、Prompt长度与准确率要求的具体盈亏平衡点,以及“微调固化行为、Prompt承载策略”的混合实践框架。关键词LoRA微调、Prompt工程、推理成本、盈亏平衡点、行为固化、知识边界、混合架构背景与问题。
2026-11-02 08:12:08
441
原创 大模型微调入门:LoRA 轻量化微调实战,业务领域适配
摘要解决全量微调在显存占用、存储冗余与灾难性遗忘上的资源瓶颈。适用于需将开源基座模型适配至垂直领域的算法与后端工程师。读完可获得基于 PEFT + TRL 技术栈的 LoRA/QLoRA 完整训练链路、超参数选型依据与生产环境排错方案。关键词LoRA、QLoRA、低秩分解、PEFT、SFT、领域适配、灾难性遗忘背景与问题全量微调一个 7B 参数模型在 Adam 优化器 FP16 精度下,仅模型权重、梯度与优化器状态三项即占用约 56 GB 显存,尚未计入前向传播激活值。
2026-11-02 08:08:18
300
原创 Qwen 通义千问本地部署与推理服务封装
摘要解决 Qwen 模型本地部署中推理吞吐不足、服务层缺失鉴权与并发控制的问题。适用于需在内网环境提供 OpenAI 兼容接口的后端与算法工程师。读完可获得基于 vLLM + FastAPI 从模型加载、量化选型到流式代理的生产级封装链路。关键词Qwen、vLLM、FastAPI、PagedAttention、AWQ 量化、OpenAI 兼容 API、流式推理背景与问题。
2026-11-01 08:32:37
376
原创 开源大模型 Llama3 本地部署全过程,Ollama 上手
摘要解决传统 Llama3 本地部署需手动配置 CUDA、PyTorch 及权重文件的高门槛问题。适用于需在本地运行开源大模型以保障数据隐私或降低调用成本的后端与算法工程师。读完可获得基于 Ollama 的 Llama3 从安装、模型拉取到 Python SDK 集成的完整可运行链路。关键词Llama3、Ollama、本地部署、OpenAI 兼容 API、大模型推理、Modelfile背景与问题。
2026-11-01 08:27:08
341
原创 LLM 输出结构化数据:强制返回 JSON 格式的 Prompt 技巧
LLM 输出结构化数据:强制返回 JSON 格式的 Prompt 技巧摘要解决大语言模型(LLM)输出包含冗余文本导致程序解析崩溃的问题。适用于需将 LLM 接入下游代码系统的后端及算法工程师。掌握通过 Prompt 设计与 API 参数控制双管齐下保障 JSON 输出稳定性的方案。关键词大语言模型、结构化数据、Prompt 工程、JSON Mode、OpenAI API、数据校验背景与问题。
2026-11-01 08:22:18
363
原创 Function Calling 实战:基于大模型调用自定义业务接口
摘要大模型只能输出文本,无法直接操作数据库或调用内部系统,而单纯依赖正则解析大模型生成的 JSON 极易因格式漂移导致线上故障。本文面向需要将大模型能力接入真实业务系统的后端与 AI 应用工程师,提供基于 OpenAI 原生 Function Calling、Pydantic 强类型校验与 FastAPI 路由分发的可运行方案。读完后可获得一套包含工具定义、意图识别、参数提取与多轮工具回调的健壮性实现。关键词。
2026-10-31 17:25:24
303
原创 大模型限流、重试、超时处理:API 调用健壮性方案
APITimeoutError, # 请求超时APIConnectionError, # 连接异常RateLimitError, # 429 限流InternalServerError, # 500 及以上wait_exponential_jitter 确保重试间隔在 1-10 秒之间指数级增长并带有随机性,避免并发重试导致的二次过载。
2026-10-31 17:21:08
293
原创 大模型 API 调用封装:统一适配 GPT、文心一言、通义千问
摘要多模型接入时,各厂商 SDK 参数、流式协议与错误码不一致,导致业务代码充斥 if-else 分支,切换模型成本极高。本文面向需要统一管理多家大模型调用的后端与 AI 应用工程师,给出基于 OpenAI 兼容模式与适配器模式的统一调用层实现方案。读完后可获得一套含流式输出归一化、异常重试与参数映射的可运行代码,以及厂商差异对比与避坑清单。
2026-10-31 17:17:52
501
原创 思维链 CoT 提示词优化:解决复杂推理问答的工程决策框架
摘要CoT 在复杂推理任务上并非“加了就涨”,错误累积、过度思考与推理模型的原生内化,使传统 CoT 提示策略的边际收益持续衰减。本文面向需要将 CoT 接入生产问答链路的后端与算法工程师,给出从任务复杂度分诊、变体选择、自一致性并行投票到推理轨迹校验的可运行工程方案。读完后可获得一套按成本与延迟约束选择 CoT 变体的决策框架,以及可直接复用的异步投票实现与排错清单。
2026-10-30 08:19:43
322
原创 少样本提示(Few-shot)在业务场景的落地实践
摘要静态 Few-shot 把同一组示例塞进每次请求,在意图分类、信息抽取等业务场景中,示例与查询不匹配会直接稀释效果并推高 token 成本。本文面向需要将 Few-shot 从实验脚本迁移到线上服务的后端与算法工程师,给出基于动态 KNN 检索、MMR 多样性重排与结构化输出校验的可运行方案。读完后可获得一套含示例库建设、检索链路、顺序控制与效果量化方法的工程实现。关键词Few-shot、动态示例选择、KNN 检索、MMR 多样性、In-Context Learning、意图分类。
2026-10-30 08:15:40
202
原创 Prompt 工程实战:结构化提示词设计提升 LLM 输出稳定性
摘要LLM 输出格式漂移、字段缺失、JSON 解析失败,是结构化抽取类任务接入生产链路时的头号故障源。本文面向需要把 LLM 输出接到下游系统的后端与算法工程师,给出基于 JSON Schema 约束、Pydantic 校验、结构化输出模式与重试策略的可运行方案。读完可获得一套将格式合规率从约 60% 提升至 95% 以上的工程化 Prompt 设计范式。
2026-10-30 08:11:43
506
原创 离线知识库 RAG:Qwen2.5 量化选型与 Chroma 持久化
摘要轻量化 RAG 的落地障碍通常不在模型能力,而在“离线”约束下的组件兼容性与资源预算:推理引擎、嵌入模型、向量库三者必须全部本地化,且量化精度、上下文窗口、嵌入维度任一环节错配都会导致检索失效或服务不可用。本文以 Qwen2.5 + Ollama + Chroma 为主线,拆解从硬件选型、量化方案到混合检索的完整离线链路。读者将获得可直接复现的最小化代码、显存与上下文的量化依据,以及 5 类本地部署高频故障的排查路径。
2026-10-29 08:14:03
365
原创 RAG 服务扛住高并发:缓存、队列、限流三件套
摘要高并发 RAG 服务的瓶颈通常不在检索或生成算法本身,而在同步请求模型下的连接堆积、重复计算和故障级联。本文从语义缓存、异步任务解耦、限流与降级三个层面拆解可落地的优化架构。读者将获得分层缓存策略、文档摄取异步化方案、令牌桶与断路器组合的工程实现,以及命中率-延迟-成本之间的量化权衡依据。关键词:高并发 RAG、语义缓存、异步任务、限流降级、断路器背景与问题。
2026-10-29 08:11:47
428
原创 RAG 答案引用原文片段:架构、代码与排错清单
摘要RAG 系统输出的 [1] [2] 标记并不等价于可验证的引用——模型可能编造编号、错配片段或标记了并不支撑结论的原文。本文从 Chunk 元数据治理、服务端受控编号、结构化生成与三层校验四个层面,拆解答案引用原文片段功能的工程实现路径。读者将获得一套可直接落地的可核验引用架构,以及字符级偏移对齐与前端的联调方案。关键词:RAG 溯源、引用验证、Chunk 元数据、受控编号、字符偏移对齐。
2026-10-29 08:07:21
286
原创 应届生 RAG 项目包装:FastAPI 检索服务接口设计指南
摘要很多 RAG 项目在本地 Jupyter Notebook 里跑通后,却无法给前端或大模型应用提供稳定的服务。本文详细演示如何用 FastAPI 将本地的检索脚本封装成符合 RESTful 规范、带数据校验、支持跨域配置的 Web 服务。通过完整的代码实战与常见排错指南,帮助开发者掌握 AI 应用接口封装的核心技巧,并提供相关的高频面试考点。关键词RAG、FastAPI、接口封装、Python后端、Pydantic、Web服务正文在 Python 生态中,FastAPI 凭借自带类型校验、自动生成交
2026-10-28 19:08:51
261
原创 多租户 RAG 系统设计实战:如何隔离不同业务知识库数据?
摘要做多租户 RAG 系统时,最大的红线是数据不能串。如果把 A 客户的业务文档检索出来喂给了 B 客户的大模型,就是严重的生产事故。本文从应届生做 SaaS 项目或企业级知识库的视角出发,拆解多租户 RAG 的三种隔离方案(物理隔离、逻辑隔离、混合隔离),重点给出基于元数据过滤(Metadata Filtering)的代码示例与防越权设计。读完你能理清不同业务规模下的架构选型思路,并掌握面试中关于 SaaS 架构和 RAG 权限隔离的高频考点。关键词。
2026-10-28 19:03:57
245
原创 RAG 增量更新向量库实战:新增文档自动去重索引
摘要知识库新增文档时,如果每次都全量重建向量索引,成本和耗时都扛不住;但只追加新向量、不处理旧内容,又会造成重复召回和索引膨胀。本文从一个应届生可以本地复现的示例项目出发,给出基于文件哈希与块级哈希的增量索引流水线:新增文档自动分块、去重、向量化,未变化的内容跳过,旧版本逻辑失效。读完你可以拿到一套可运行的简化代码、一张全量重建与增量更新的对比表,以及面试中关于 RAG 增量索引的高频问法与回答思路。关键词RAG、增量索引、向量数据库、内容哈希、去重、知识库更新正文。
2026-10-28 19:01:09
375
原创 RAG效果怎么量化?四层指标+RAGAS代码跑通
摘要RAG 上线后最怕的问题是“感觉还行”,不是“跑不通”。本文用 RAGAS 的 faithfulness、answer_relevancy、context_recall 三个生成层指标,加上 Recall@K、MRR 的检索层离线计算,搭一条可运行的量化评估流水线。适合正在做 RAG 项目、需要在简历或面试中拿出“评估数据”的应届生和初中级开发者。读完你能拿到一套完整代码、一张四层指标诊断表,以及阈值失控、指标互相矛盾的排错清单。关键词。
2026-10-27 08:43:35
407
原创 Chroma vs FAISS vs Milvus:应届生RAG选型避坑指南
摘要Chroma、FAISS、Milvus 经常被放在一起比较,但三者的定位并不在同一层:FAISS 是向量检索库,Chroma 是嵌入式数据库,Milvus 是分布式数据库。本文从应届生做 RAG 项目的真实规模出发,用可运行的代码分别跑通三者,给出数据量—选型对应表、部署成本对比和常见踩坑记录。适合正在选型、准备 AI 应用开发面试的读者,读完能判断“我这个项目到底该用哪一个”。关键词向量数据库、FAISS、Chroma、Milvus、RAG、选型对比正文问题出在比较的方式上。
2026-10-27 08:36:53
210
原创 RAG检索结果太多?用上下文压缩降低Token成本
摘要RAG 系统“检索 20 个 chunk 全塞给大模型”,是应届生项目里最常见的 Token 浪费场景。本文从“检索后、生成前”这个位置切入,用 LangChain 的 ContextualCompressionRetriever 演示两种可跑通的压缩策略:EmbeddingsFilter 做轻量语义过滤,LLMChainExtractor 做精准句子抽取,并给出 token 消耗对比、阈值调参清单和排错记录。
2026-10-27 08:33:44
264
原创 LlamaIndex SimpleDirectoryReader多文件加载排错与代码
filters=[],设计意图:file_type 的默认值是 MIME 类型(如 application/pdf),不如图扩展名直观。在加载后手动补一个 ext 字段,让过滤条件更容易读写。MetadataFilters 支持 and / or 组合,以及 EQ、IN、CONTAINS 等操作符。3.5 预期运行结果。
2026-10-26 13:20:45
451
原创 LangChain RAG自定义检索链路:BM25+向量混合召回代码
docs,print(bm25_retriever.invoke(“FAISS 是什么”))为什么必须传 preprocess_func:BM25Retriever 默认用空格切分文本。中文句子没有空格,会被整体当作一个 token,导致 BM25 完全失效——即使换了查询词,返回结果也可能不变。这是本文示例在中文环境下最容易踩的坑之一。3.3 Step 2:构建向量检索器与混合召回python。
2026-10-26 13:17:58
331
原创 多模态RAG实战:PDF图文混合文档检索问答本地跑通
传统 RAG 的典型链路是:文档切块 → 文本 embedding → 向量库 → Top-K 文本块塞给 LLM。这条链路对纯文本有效,但遇到图文混排文档时会出问题:表格的合并单元格被 OCR 打成碎片,行列关系丢失;架构图、流程图里的箭头和层次,转成文字后语义大幅衰减;扫描件 OCR 错误率一高,后续检索和生成全被污染。
2026-10-26 13:13:29
378
原创 从 58% 爬回 84%:我们用 Contextual Retrieval + 混合检索 + 条件重排,修好了 RAG 最脏的两类病
模式一:chunk 被切成了“失忆的句子”。一个不容易注意到的回归:加了 Contextual Retrieval 之后,chunk 的 embedding 文本变长了,某些近似重复的上下文前缀会让本来不相似的 chunk 在向量空间里被拉近,产生新的假阳性。这篇和前两篇(HyDE、GraphRAG)放在一起看,其实是同一个工程逻辑的三次变奏:HyDE 修的是 query 侧的语义鸿沟,GraphRAG 修的是检索范式的结构性缺口,这篇修的是 chunk 侧的上下文丢失和检索侧的 modality 盲点。
2026-10-23 08:50:51
267
原创 从“找相似文本”到“走关系路径”:一次 GraphRAG 落地记录,索引成本是向量 RAG 的 3 倍,但多跳问题对了
一、向量 RAG 答不对的那类问题,才是 GraphRAG 存在的理由我上一篇文章写的是 HyDE 优化 query-document 语义鸿沟。HyDE 解决的是“用户说的词和文档写的词对不上”的问题——换句话问,或者让 LLM 先写一段假设文档,检索就能找回来。但有一类问题,HyDE 也救不了。我们内部有一个供应商风险知识库,大约 3 万份文档:供应商合同、审计报告、产品 BOM 表、质量事故记录、物流异常通报。产品经理和采购团队用它来查供应商相关信息。
2026-10-23 08:46:07
301
原创 别急着把 HyDE 塞进每一条 query:一次真实 RAG 检索优化的选型、踩坑与灰度记录
一、问题不是模型不会答,是检索根本没把对的文档捞回来去年我在一个 B2B SaaS 客服知识库上做 RAG。知识库大约 12 万份文档切片,用户是销售和客户成功团队,每天几千次查询。上线第一版就是最朴素的链路:用户 query → embedding → 向量库 top-5 → 塞给 LLM 回答。Bad case 很快集中到一个模式上:用户用“行话”问,文档用“法务话”写。举一个真实例子。销售在内部助手里搜:“客户续费折扣怎么申请”
2026-10-23 08:31:56
382
原创 别把 80 页 PDF 当 8 条 FAQ 切:长文档 RAG 从解析到生成的四层工程账
一、线上问题:答案确实在文档里,但系统“找不到”也“读不懂”去年接了一个设备维保知识库,文档主体是几十页到上百页的 PDF 手册,带多栏排版、跨页表格、公式和扫描页。上线第一周,用户反馈最集中的一句话是:“答案明明就在手册里,它为什么说不知道?抽了 30 条失败 case 逐条看,问题集中在两个地方,而且都不在生成模型上。第一类是 PDF 解析丢结构。一份 60 页的手册,PyMuPDF 直接抽文本出来,双栏排版被读成“左栏第一行 → 右栏第一行 → 左栏第二行”,句子在物理上连续,语义上已经碎了。
2026-10-20 08:37:32
305
原创 RAG 分块别再无脑切 512 了:我用父子分块把“答案差一口气”的投诉压到 1/3
一、线上问题:答案“就差一口气”,但每次差的地方不一样先说一个很具体的现象。用户问“XX-200 型号换型时 M8 螺栓的扭矩值是多少”,我们的 RAG 系统检索到了正确的设备手册章节,但返回的 chunk 里只有“拧紧 M8 螺栓至规定扭矩”,没有那张扭矩对照表。LLM 只能回答“请参考手册中的扭矩参数”,用户当场炸了。另一类反馈更隐蔽:跨境退款政策,条款前半句在 chunk A,后半句的“仅限于未发货订单”在 chunk B。
2026-10-20 08:35:21
324
原创 Embedding 选型别只看榜单:用 500 条评估集跑出你自己的“检索精度—存储成本”曲线
一、线上事故:榜单更高的模型,切上去检索反而更乱了先讲一个我亲身踩过的坑,比任何概念都更能说清 Embedding 的工程复杂度。我们的 RAG 系统用的还是旧一代 embedding 模型,索引里躺着上千万条 chunk。新模型的 MTEB 榜单分数明显更高,团队讨论后决定切换。当时判断很简单:只换查询侧的模型,索引不动,改一行配置,灰度一下就能上。结果第二天,客服 Agent 开始给出奇怪的答案:英语用户问退货政策,引用了一段西班牙语文档;
2026-10-20 08:33:26
286
原创 Rerank 重排实测:BGE、Cohere、Jina 选型与 RAG 效果提升的工程账
一、线上真实问题:向量检索“看起来对”,回答却总是差一口气去年做企业知识库问答时,遇到一个很典型的线上反馈:用户问“XX 型号设备报 E-204 错误怎么处理”,向量检索返回的 Top-5 里确实有那条正确的维修文档,但它排在第 4 位。LLM 拿到前 3 条“高相似度但无关”的上下文,一本正经地编了一个错误原因。排查后发现不是 embedding 模型不行,是排序失真。
2026-10-20 08:29:18
156
原创 纯向量召回漏掉了 23% 的精确查询——BM25 + RRF 混合检索实战复盘
jieba.load_userdict(“domain_terms.txt”) # 包含“孔隙率”“抗压强度”“上下文长度”等# 用搜索引擎模式,兼顾长词和子词domain_terms.txt 的来源可以是:产品文档里的专有名词表、API 名称列表、历史 badcase 中用户实际搜索的术语。建索引和查询时必须走同一个 tokenize_for_bm25,否则 BM25 的统计假设会被破坏。4.2 两路并发,而不是串行BM25 和向量检索之间没有依赖关系,必须并发执行。
2026-10-18 08:22:49
251
原创 FAISS 向量检索调优实录:从 Flat 裸跑到 IVFPQ,我把 P99 延迟压了 6 倍
一、线上告警:检索接口 P99 冲到 3.2 秒,内存快满了去年下半年,我负责的一个内部 RAG 知识库检索服务突然开始告警。接口 P99 从 400ms 一路涨到 3.2 秒,单实例内存占用逼近 32GB 上限。数据量从三个月前的 80 万条 chunk 涨到了 820 万条,embedding 维度 768(FP32)。最初的代码非常“诚实”:faiss.IndexFlatIP,全量暴力扫描。
2026-10-18 08:20:15
414
原创 P99 延迟 2.3 秒到 25 毫秒:Milvus 生产环境调优实战
fields = [dim=768), # 与 Embedding 模型维度一致max_length=64), # 来源字段,用于标量过滤max_length=4096), # 原文片段,返回给 LLMschema = CollectionSchema(fields, description=“AI 搜索向量库”)
2026-10-17 08:25:40
356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅