大模型架构记录4-文档切分 (chunks构建)

chunks: 块

trunks : 树干

“RAG”通常指 检索增强生成(Retrieval-Augmented Generation)

主要框架:用户提query,找到和它相关的,先把问题转换为向量,和向量数据库的数据做比较,检索相似的向量,返回 对应向量的原始文本,构建prompt,给模型回答问题

一 文档交互

1.1 生成和检索的区别

RAG”通常指 检索增强生成Retrieval-Augmented Generation

二 金融智能客服系统

2.1 传统架构 (通过检索的方式

1 提前设计FAQ库(业务人员整理)

<q, a> <q, a><q, a>

2 用户提问,和FAQ 问题做比较,看哪个问题相近,就使用这个答案

3 好处,结果可控。

2.2 传统问答方式2 (使用生成的方式)

1 提前设计FAQ库(业务人员整理)

<q, a> <q, a><q, a>

2 训练一个模型,问题做输入,答案做输出,训练模型 

3 使用模型,将问题作为模型的输入,使用模型的输出作为结果。

4 结果不可控,准确率比较低。

传统方式通常使用方式一 

2.3 检索 + 生成

大模型 问答系统 2.0

1 不用维护知识库,从文档抽出来关键问题

2 直接把原始的知识库就行,【doc, PDF, EXCEL, TXT 】都可以做知识库

3 用户提问,先做检索把相关文档提取出来,答案可能在文档里面

4 构建prompt,检索结果放在prompt 【上下文】, query【Input】 也放在prompt 里面,还要历史聊天记录 【上下文】,统一放入模型做输入得到一个response. 

三 基于大模型技术的Agent 框架搭建

1 技术栈 

项目架构梳理

1 用户提出 query(string)

2 构造知识库,企业知识【txt, pdf, html, doc, excel, ppt】 做转换

2.1 把文章做trunk【树干】,不能把整个文章放到prompt, 拆分章节,把适合的章节放进去就行。

文档 拆分-> Trunk ,放入【知识库】,需要做一定的数据清洗,特殊符号清洗啥的

2.2 把数据转换为向量,用于和query 比较

3 用户提 query , 在知识库找出对应的Trunk,一起放入prompt中,【基于如下的上下文回复用户的上下文】,然后进模型,然后回复。

2 向量数据库的搭建

1 trunk 和query 比较,比较两个string 做比较,把string 转换为向量。

用户提query,找到和它相关的,先把问题转换为向量,和向量数据库的数据做比较,检索相似的向量,返回 对应向量的原始文本,构建prompt

prompt {instructing, context,inputs} -> model = response 

2 相似度怎么计算? 

(vec1, vec2) -> 相似度

向量数据库,解决搜索效率的问题。

难点:

1 怎么比较query 和 trunk 的向量?

2 怎么做文档切割?

3 怎么转换为向量数据? 

3 怎么解决 hallucination(乱说)

4 拆分文本

1 最好按段落进行区分

2 fixed + 语义做分割【递归方法,来自 langchain】

后面的方法需要跑机器学习模型,比较慢,常见使用第一和第二种,直接拆分句子和字符数。

4.1 split  by sentence

每个块都是完整的一句话。

4.2 fixed length chunks 

4.3 chunks with overlapping window

4.4 recursiveCharacterTextSplitter from langchain

fixed + 语义做分割

5 拆分中文

四 文本向量化

4.1 opai embedding (向量化模型)

 

4.2 相似度计算

4.3 向量数据库 qdrant

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网IoT系列之MQTT协议基础知识

文章目录 物联网IoT系列之MQTT协议基础知识物联网IoT是什么&#xff1f;什么是MQTT&#xff1f;为什么说MQTT是适用于物联网的协议&#xff1f;MQTT工作原理核心组件核心机制 MQTT工作流程1. 建立连接2. 发布和订阅3. 消息确认4. 断开连接 MQTT工作流程图MQTT在物联网中的应用 …

第27周JavaSpringboot电商进阶开发 1.企业级用户验证

课程笔记&#xff1a;注册邮箱验证 一、概述 从本小节开始&#xff0c;将学习如何进行注册邮箱验证。主要任务是给项目配置一个公共邮箱&#xff08;可自己注册或由公司提供&#xff09;&#xff0c;用于向用户发送验证码&#xff0c;帮助用户完成注册流程。课程中以QQ邮箱为…

数据库---sqlite3

数据库&#xff1a; 数据库文件与普通文件区别: 1.普通文件对数据管理(增删改查)效率低 2.数据库对数据管理效率高,使用方便 常用数据库: 1.关系型数据库: 将复杂的数据结构简化为二维表格形式 大型:Oracle、DB2 中型:MySql、SQLServer …

音视频软件工程师面试题

一、基础知识 编解码相关 H.264 和 H.265(HEVC)的主要区别是什么?视频编解码的基本流程是什么?关键技术有哪些?音频编解码(如 AAC、MP3、Opus)的区别和应用场景?什么是 B 帧、P 帧、I 帧?它们的作用是什么? 流媒体协议RTMP、HTTP-FLV、HLS、WebRTC 的区别和应用场景…

【系统架构设计师】测试方法

目录 1. 说明2. 静态测试3. 动态测试4. 黑盒测试5. 白盒测试6. 灰盒测试7. 自动化测试8.例题8.1 例题1 1. 说明 1.软件测试方法的分类有很多种&#xff0c;以测试过程中程序执行状态为依据可分为静态测试&#xff08;Static Testing&#xff0c;ST&#xff09;和动态测试&…

tomcat配置应用----server.xml文件具体配置

1.tomcat项目目录 默认项目目录&#xff1a;tomcat安装目录/webapps目录 如上图所示&#xff0c;在tomcat的项目目录下有很多子文件夹&#xff0c;这些子文件夹中都有一个项目首页。 如上图所示&#xff0c;将来我们去使用IP加端口号的方式去访问tomcat的时候&#xff0c;默认是…

Spring Boot 调用DeepSeek API的详细教程

目录 前置准备步骤1&#xff1a;创建Spring Boot项目步骤2&#xff1a;配置API参数步骤3&#xff1a;创建请求/响应DTO步骤4&#xff1a;实现API客户端步骤5&#xff1a;创建控制器步骤6&#xff1a;异常处理步骤7&#xff1a;测试验证单元测试示例Postman测试请求 常见问题排查…

多维数据聚合方案:SQL GROUPING SETS深度解析

一、什么是GROUPING SETS&#xff1f; GROUPING SETS是SQL标准中的多维聚合运算符&#xff0c;允许在单个查询中实现多维度组合的分组统计。相较于传统UNION ALL方案&#xff0c;性能可提升3-10倍&#xff08;TPC-DS基准测试&#xff09;。 二、核心语法解析 SELECT column1,…

Excel中国式排名,3种方法!

大家好&#xff0c;我是小鱼。 什么是中国式排名呢&#xff1f; 举个例子比如说公司一共有10名员工进行成绩考核&#xff0c;如果9个人考核成绩都是90分&#xff0c;你是89分&#xff0c;按照国际惯用的排名法则&#xff1a;9 个人考核成绩并列第一&#xff0c;你第10名&…

哪些业务场景更适合用MongoDB?何时比MySQL/PostgreSQL好用?

哪些业务场景更适合用MongoDB&#xff1f;何时比MySQL/PostgreSQL好用&#xff1f; 就像淘宝的个性化推荐需要灵活调整商品标签&#xff0c;MongoDB这种"变形金刚"式的数据库&#xff0c;在处理以下三类中国特色业务场景时更具优势&#xff1a; 一、动态数据就像&q…

深度解读:OpenAI发布GPT-5的技术突破与商业影响

引言 2025年2月&#xff0c;OpenAI正式发布GPT-5&#xff0c;这一被誉为“AI新纪元开篇之作”的模型&#xff0c;不仅实现了技术架构的颠覆性创新&#xff0c;更以免费开放策略引发行业地震。本文将从技术突破、商业影响、行业竞争格局及未来挑战四个维度&#xff0c;全面解析…

网络防火墙是什么有什么用_网络防火墙:守护信息安全的重要屏障

网络防火墙的基本概念 网络防火墙是网络安全领域的重要组成部分&#xff0c;它充当着内部网络和外部网络之间的安全防护层。防火墙能够监控和控制进出网络的数据流&#xff0c;只允许符合安全策略的信息通过&#xff0c;从而有效阻止潜在威胁的入侵。简而言之&#xff0c;网络…

C# WPF 串口通信

C# WPF 串口通信 安装依赖库 安装依赖库 System.IO.Ports using System.Diagnostics; using System.IO.Ports; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windo…

【玩转23种Java设计模式】结构型模式篇:组合模式

软件设计模式&#xff08;Design pattern&#xff09;&#xff0c;又称设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 汇总目录链接&…

如何选取合适的 NewRatio 值来优化 JVM 的垃圾回收策略

目录 一、垃圾回收模型简介 &#xff08;一&#xff09;新生代&#xff08;Young Generation&#xff09; &#xff08;二&#xff09;老年代&#xff08;Old Generation&#xff09; &#xff08;三&#xff09;NewRatio 的作用与影响 &#xff08;四&#xff09;图解&am…

Element Plus中的树组件的具体用法(持续更新!)

const defaultProps {//子树为节点对象的childrenchildren: children,//节点标签为节点对象的name属性label: name, } 属性 以下是树组件中的常用属性以及作用&#xff1a; data&#xff1a;展示的数据&#xff08;数据源&#xff09; show-checkbox&#xff1a;节点是否可…

第十一届蓝桥杯单片机国赛

什么&#xff1f;4T模拟赛和省赛做起来轻轻松松&#xff1f;不妨来挑战一下第十一届国赛&#xff0c;这一届的国赛居然没考超声波、串口通信&#xff01;只要你正确地理解了题目的意思&#xff0c;规避出题人挖的坑&#xff0c;拿个国一轻轻松松。 附件&#xff1a;第十一届蓝桥…

大彩串口屏开发 —— MODBUS通信

目 录 Modbus通信方式 1 使用变量与协议设置方式 2 使用LUA脚本方式 3 两者结合 Modbus通信 大彩串口屏可以采用三种方式实现与其它设备进行modbus通信和逻辑处理。 方式 1 使用变量与协议设置 步骤1 在协议设置里进行设置&#xff0c;包括开启modbus协议&#xff0c;屏做为主…

【Linux docker】关于docker启动出错的解决方法。

无论遇到什么docker启动不了的问题 就是 查看docker状态sytemctl status docker查看docker日志sudo journalctl -u docker.service查看docker三个配置文件&#xff08;可能是配置的时候格式错误&#xff09;&#xff1a;/etc/docker/daemon.json&#xff08;如果存在&#xf…