
温智凯
"《构建私有化大模型应用系统:部署、推理与知识库搭建》从基础理论到代码实现,系统阐述了构建私有化大语言模型(LLM)应用系统的完整流程,重点关注部署环境、模型推理、知识库搭建与应用集成等核心工程环节。《构建私有化大模型应用系统:部署、推理与知识库搭建》分为3部分,共10章。首先,深入讲解模型格式、推理引擎、多GPU部署与嵌入生成技术;随后,围绕RAG系统构建、向量数据库、API接口封装、前端交互设计与私有化安全机制展开介绍;最后,通过项目案例,演示模型部署与知识库搭建的全流程。读者可通过本书系统掌握LLaMA、Qwen、Baichuan等主流模型的部署方式,理解vLLM、TGI等推理引擎的性能调优手段,并掌握向量化表示、FAISS/Milvus索引构建及RAG问答系统的完整流程。《构建私有化大模型应用系统:部署、推理与知识库搭建》还特别强调私有部署中的安全合规、权限控制与攻击防御机制,并提供法律问答与企业助手两个实战案例,具备较强的可复用性与工程价值。 《构建私有化大模型应用系统:部署、推理与知识库搭建》面向AI应用开发者、架构设计人员及大模型应用相关的工程实践者,适用于企业级私有化系统部署、智能问答产品构建及AI能力集成开发任务。"
本书为构建私有化大模型所用技术和流程张了目,读了此书,会理解和知道如下的构建私有化大模型知识库的知识: 要构建私有化知识库要分为两个部分: 1. 私有化部署大模型 2. 基于私有化部署的大模型,再将企业/个人的文档/数据库部署成知识库 私有化部署(本地部署)大模型需要经历将模型下载到本地,使用推理引擎驱动和运行大模型,封装API和方便用户使用的UI界面的过程。此过程中,困难点是在现有的资源环境下(仅CPU/有限的GPU,网络带宽等物理资源)部署出最大可能的优化的大模型系统了,围绕这个目的,将会从模型选择,模型量化,推理引擎选择,工程构建框架选择等各个方面组合并构建出最优的私有化大模型系统: 模型选择:LLaMA、Qwen、Baichuan、deepSeek等主流开源模型 模型量化:模型量化就是"给模型减肥",把参数和计算从 16/32 位浮点数压缩成 8 位甚至 4 位整数,用少量精度损失换取模型体积大幅缩小、推理速度显著提升、硬件门槛明显降低。模型量化框架:HuggingFace Transformers、GGUF、GGML、ONNX推理引擎:推理引擎就是大模型的执行载体,是运行大模型的软件框架/运行时环境,常用的推理引擎有:vLLM、TGI、llama.cpp、FasterTransformer 工程构建框架:有了模型和推理引擎,只是有了底层执行基础,中间层的工程构建框架才是真正支撑“问答能力”“知识融合”与“流程控制”的。工程构建框架提供了对提示词模板、记忆管理、检索增强、工具调用与多组件协同的抽象封装,降低了从模型API到业务功能的系统开发复杂度。常用的工程构建框架:LangChain、LlamaIndex、Flowise 从选择模型,对模型进行量化以适配物理资源环境,使用合适的推理引擎驱动模型运行,再利用工程构建框架对大模型进行执行流程的控制和处理,这就形成了一个完整的私有化大模型部署的过程。在此过程之下,还可以再延伸大模型的能力,如: MCP(Model Context Protocol,模型上下文协议):以主从通信的方式与其他大模型沟通,可以多模型间共享上下文状态、调用功能模块与管理上下文生命周期,强调上下文一致性与语义状态的可扩展建模。它的关键特性是以上下文为中心调用结构组织,使多模型协同执行具备状态管理能力,避免单轮孤立推理问题。总的来说,在当前的上下文推理过程中,MCP提供了可以从别的源实时获取更真实的信息的方式,避免了只是自己单论独立推理的困境。如我要让我的大模型写一个有设计图的HTML页面,那么我就让大模型连上figma的MCP,figma的MCP提供了设计图的具体信息,这就让大模型在实现网站的代码的过程中,避免了只是自己独立的推理,有了更可靠更真切的推理信息来源。 Agent-to-Agent(A2A)协议:即多智能体模型之间的通信与协作的协议。如指定各个智能体的角色,任务分工等,在各个智能体完成了各自的任务后,将分析和任务结果整合成最终的结果。A2A协议的核心在于“协作性”,适合需要多智能体组成角色体系共同完成复杂任务的系统,如一个智能体负责检索,另一个智能体负责摘要整合,第三个智能体负责多轮交互追问。 在部署完私有化大模型后,就可以根据这个大模型,建立自己或企业级的知识库,创建知识库的整体过程是:知识库向量生成(Embedding),向量存储与检索,用户问题处理与Top-K召回,提示词组装与生成调用: 知识库向量生成:将原始文本内容或用户问题编码为高维稠密向量,供后续向量检索使用。 向量存储与检索:构建向量索引结构,实现Top-K近邻查询,用于从海量文本中快速筛选语义最相关的内容片段。 用户问题处理与Top-K召回:将用户问题向量化后在索引中执行查询操作,获取Top-K相关内容,作为生成前的知识支撑输入。 提示词组装与生成调用:将用户问题与检索结果进行结构化融合,构造高质量提示词,输入语言模型进行答案生成。 完整的流程是:先将要建立知识库的资料,文档收集齐全,通过数据清洗后,调用大模型的函数将数据录入向量数据库(Embedding)。用户的查询进来后,将用户查询的句子也进行向量化后,在向量数据库中进行Top-K语义检索,检索结果作为“外部知识”来构建提示词,然后将此提示词发送给大模型,大模型根据提示词中所带来的知识库知识组合成答案返回给用户。 基于以上的流程,能实现知识检索与生成回答的解耦。这种方法能有效地解决模型幻觉问题:即大模型仅仅根据用户提问的语句中的某点相关性去构造回答,回答出来的答案与提问者的原意没有什么相关性。根本原因就是知识库所召回的知识与所问不符或没有,导致大模型只能根据原来训练的知识回答导致出现幻觉问题。使用检索与生成回答的解耦的方式,能针对性地优化知识召回,将知识密度控制在上下文构造阶段,能很好地缓解模型幻觉、信息缺失等问题。 要构建这个稳定且用的系统,涉及到多方的技术选型与整合,如: Web服务框架:FastAPI——基于Python 3.6+类型注解特性的现代Web框架,专为构建高性能、可维护且文档完备的RESTful API而设计,底层基于Starlette与Pydantic,支持异步处理、依赖注入与自动文档生成。 运行时库:uvicorn——基于uvloop与httptools构建的ASGI(Asynchronous Server Gateway Interface,异步服务器网关接口)兼容的高性能服务器,专用于运行FastAPI等异步框架,具备低延迟、高吞吐与并发处理能力 前端框架:gradio——面向机器学习应用的快速前端构建工具,支持通过Python代码快速定义交互式输入/输出界面,适用于演示、内测与原型系统开发。其组件抽象简单,可快速绑定至模型接口,并展示文本、图像、音频等多种输出结果。 在向量数据库选择方面: FAISS:轻量高效的本地向量检索库,广泛用于CPU/GPU场景下的局部索引构建与查询任务。 Milvus:企业级分布式向量数据库,基于分布式计算框架设计,支持PB(千万亿字节)级向量存储与近似搜索任务,内置数据持久化、水平扩展与高可用部署机制,适用于构建大规模知识库与复杂查询系统。 Weaviate:集AI服务于一体的语义数据库,特点是内建模块化AI服务能力,支持自动向量化、多模态存储与图(Graph)结构关联管理,适合需要高语义建模能力与多元数据融合的业务场景。 理解了以上的整体知识骨架后,可以再进行一步一步地细化,了解更多的具体实现细节,如: 在知识库前置处理环节: 在文档采集与清洗方面,可以针对不同的来源文件(PDF、Word、Excel、HTML等)分别调用不同的解析库进行各自的解析处理。通过统一的数据接入规范与标准化清洗流程,完成内容抽取、编码统一、格式转换与冗余去除等处理操作,确保文档具备稳定的结构边界与清晰的语义单元。 对于图片类资源,可以接入OCR技术,OCR技术可将图像中的文字内容解析为可编辑、可检索的结构化文本 对于数据量大的原始数据,可以使用Python的多格式文件批处理调度器,自动遍历文件夹,根据后缀调用不同解析模块,进行结构化日志与内容输出 在去除文档噪声方面,如文档的页眉,页脚,网页的版权信息等无关信息。可以使用正则表达式、关键字模式与人工干预白名单等方式,根据文档的结构,标签语义等对文档进行数据提取,确保知识库具备准确、高密度的语义信息 在知识库向量生成环节:需要先将提取到的知识库信息进行切分,切分的方式和策略不同,会影响知识库的向量生成,进而影响搜索匹配的准确率,造成语义漂移与Token浪费。 自适应分句模型:可通过语言特征自动划定语义边界(如。?等),提升切块的自然性与语义一致性 Sliding Window(滑动窗口机制):可在不破坏上下文连续性的前提下,实现片段对齐与信息重叠控制 以上两者结合,可兼顾段落连续性与分块Token约束,被广泛应用于知识库片段生成、搜索增强提示构造等任务中。Sliding Window与自适应分句模型结合的实现方式:先通过?。等语言特征,将原始数据按照句子成一个个句子,然后设定窗口最大允许token和步长,步长要小于窗口最大允许token长度。窗口最大允许token长度-步长=两相邻窗口间上下文重叠的部分。一般步长设为窗口最大允许token长度的20%-50%。从文本开头取第一个句子,使用模型的tokenizer获得它的 Token 数。如果加上第二个句子后,总 Token 数没有超过窗口上限,就把第二个句子也纳入当前块。继续尝试加入第三个、第四个……直到再加入下一个句子就会超过上限为止。此时,这些句子组成的内容就是第一个文本块。第一个块确定后,窗口不直接跳到块的末尾,而是按照预设的步长向前滑动。例如,如果步长是 2 个句子,就从第 3 个句子开始,重复第三步的累加逻辑,组建第二个文本块。由于存在重叠,第二个块会包含第一个块末尾的部分内容,保证上下文衔接不断裂。一直循环到末尾即可 分块的过程中,还可以进行分块编号与上下文定位注解的设计,可以确保各片段能被准确定位、引用与追踪,确保AI回答的置信度。 在数据处理和向量化后,就进入了用户使用环节,在用户使用的环节中,也有很多种优化方式,如: 在提示词构建环节:使用不同的提示词模版(静态/动态)和不同的文档片段的插入位置(前置、后置、嵌套)。配合引入格式化指令(如要求输出为列表、表格、摘要段等)和高置信度控制机制(如显式声明仅基于提供文档回答或返回“不确定”而非编造)等,提高置信度。 上下文管理 历史会话的窗口控制 提示词Token的溢出处理与摘要压缩 使用用户ID或会话Token进行用户隔离,实现多用户对话使用 在后端设计与安全方面: 使用接口Token验证机制和基于IP地址/账号的访问权限控制进行权限和安全的控制 使用API限流与恶意请求拦截方案防止恶意攻击 在运维方面: 因为在私有化部署中,很可能是离线状态的,在这个状态下,依赖包的安装通常需在联网环境中构建“依赖镜像站”或“本地中转缓存”。 为降低后续部署与维护成本,需要进行封包与版本控制机制,即对环境,模型,镜像进行封装,对部署脚本进行标准化 在完成封包部署后,还需建立配套的文件校验与版本维护机制,确保环境的一致性与数据的完整性 在易用性方面:与现有的组织架构与信息门户系统打通,尤其是办公自动化系统与企业目录服务(如LDAP或AD)。通过接入统一身份认证(SSO)、用户权限映射与组织结构感知能力,系统可以实现对员工身份的精准识别、访问范围的精细控制以及使用场景的自然嵌入,提升其在企业内的集成度与可信度。如: SSO统一认证:使用OAuth2/OIDC协议对接钉钉、飞书、企业微信等OA平台,统一身份入口。 LDAP组织目录同步:使用ldap3库同步企业LDAP/AD中的部门、职位、用户等元数据。 权限与问答服务联动:结合用户组织身份,控制其问答请求中可访问的知识子库范围,实现权限感知型问答。 下文注入组织信息:将用户所属部门、职级等注入Prompt上下文,提升大模型响应准确性与专业性。
这本书是我看的国内大模型应用开发书籍里讲解最系统化的,看的出作者有真正的实战经验,在企业级应用上有积累,虽然每个章节点到为止,但原理层面都讲清楚了,并给出了最简单的示例。希望作者能基于2026年的最新技术情况推出更多更好的的书。
整体结构上来说没太大问题,但是很多概念讲解简单没有深入展开。例如上下文窗口机制提了3种方式,但只展示了一种。有点半糖主义的感觉,提了又没展开细说,就像上数学课,老师说这题有更好的解法,然后就没有然后了。如果作为系统了解 还是可以读一读的。
重点一笔带过,不重要的一遍又一遍地说。
虽然是去年9月出版(时间有些久了)、且存在深度不足的问题,但该书的内容全面,流程清晰,且给了许多简单示例,总体知识密度不低,对快速选型很有帮助。
正如书名一样,在应用层面把大语言模型的推理、知识检索、部署都过了一遍。 分为三大部分,如果你是搞开发的,那里面的第六章、第八章都可以粗略过一遍了 总的感觉,第一部分是基础理论,模型推理用到的框架,常用的模型,rag用到的技术等等。 看完第一部分之后,第二部分和第三部分其实都是在反复说这几件事情,说实话直接看第三部分,不看第二部分都行。 适合新手入门,窥探下整个流程。
知识面还是比较全面的,流程比较清晰
流程讲解比较清楚,各模块有实际示例代码可参考