AI大模型开发架构设计(13)——LLM大模型的向量数据库应用实战
文章目录
- LLM大模型的向量数据库应用实战
- 1 大模型的局限性
- 大模型的4点局限性
- 大模型的4点局限性的改进实践方法
- 2 向量数据库使用场景以及改建大模型
- 向量数据库
- 向量数据库选型
- 知识库
- 文档检索增强(Retrieval Augmented Generation)
- 3 向量数据库应用技术架构剖析
- 向量数据库应用技术总体架构
- 向量数据库应用离线索引技术
- 向量数据库应用在线检索技术
- 4 利用向量检索构建知识库案例实战库
- 总体流程3大步骤
- 向量数据库选型
- 写入向量数据库(离线索引)
- 使用向量数据库(在线检索)
- 私人助手回答结果
LLM大模型的向量数据库应用实战
1 大模型的局限性
大模型的4点局限性
- 缺乏领域特定信息:LLM仅基于公开数据预训练,缺乏领域特定信息、专有/专业数据等非公开数据
- 容易产生幻觉:LLM只能根据现有数据提供信息和答案,如果超出该范围,LLM回提供错误或捏造的信息
- 无法获取最新信息/知识:LLM训练成本十分高昂(训练ChatGPT-3的成本高达 140万美金),LLM无法及时更新知识库
- “不变”的预训练数据:LLM使用的预训练数据可能包含过时或者不正确的信息,并且这些数据无法更正或删除
大模型的4点局限性的改进实践方法
- 缺乏领域特定信息:
- 利用向量数据库建立知识库,拓展 LLM 的认知边界
- 微调(Fine-tuning)针对专业领域进行特定训练
- 容易产生幻觉:
- 使用提示词工程 Prompt Engineering 规定限制
- 无法获取最新信息/知识:
- 利用向量数据库为大模型建立记忆,及时更新
- “不变”的预训练数据:
- RLHF(Reinforcement Learning from Human Feedback)人工纠正再次微调
- 从知识库中删除无效信息
2 向量数据库使用场景以及改建大模型
用向量数据库/知识库改进大模型
向量数据库
- 向量是非结构化数据在高维空间中的表征
- Embedding Model 是将非结构化数据映射到高维空间的工具
- 使用合适的 Embedding Model,向量的近似度代表语义的近似度

- Embedding过程

向量数据库选型
- 国产:Milvus、Tencent Cloud VectorDB、Zilliz Cloud 等
- 海外:Pincone(免费)、Redis、FAISS、PgVector、Elasticsearch Cloud 等
- 技术架构:

知识库
- 知识图谱
- 全文检索
- 知识库和向量数据库关系
- 大模型应用离不开向量检索

文档检索增强(Retrieval Augmented Generation)
- 利用提前构建好的知识库,通过检索与 Query 相关的知识片段来增强大模型回答效果

😁 RAG 优势——更经济、更具可行性、更具扩展性
- 容易管理
- 更精确和上下文相关的答案
- 适应性强、敏捷性强
- 更好的模糊搜索能力
😌 Fine-tuning 不足
- 适用于较小的知识数据库
- 没有知识访问控制
- 前期成本高,维护成本高
- 知识更新不及时
3 向量数据库应用技术架构剖析
向量数据库应用技术总体架构
- 以一个在线查询为例:

🌰

向量数据库应用离线索引技术
离线索引更多优化
- 针对文档特性(语言、内容)选择 Embedding 模型
- 更有针对性的文档分段模型
- 文档转问题,用问题召回

向量数据库应用在线检索技术
在线检索更多优化
- 用户问题改写,使用改写的问题召回
- 多路召回,结合全文检索的结果
- 把问题编造成“假”文档,使用“假”文档召回

4 利用向量检索构建知识库案例实战库
构建私人智能助手整体架构设计
总体流程3大步骤
- 将私人数据转换为向量数据,并写入到向量数据库中
- 根据 Prompt 从向量数据库中提取相似数据
- 结合相似数据重新组装 Prompt,让 ChatGPT 生成回答

向量数据库选型
- 推荐 Pinecone 向量数据库:https://www.pinecone.io/
- 免费、秒审通过
- 核心三个参数
- 索引名称:满足规范
- 特征维度:向量维度,OpenAI 转化为 1536 维
- 度量距离指标:提供了3种,推荐 cosine

写入向量数据库(离线索引)
- 安装对应的 Python 库:
pip install pinecone-client - 写入向量数据(采用读取文件形式)
- 将所有数据从文档中读取出来
- 通过 OpenAI Embedding 转换成对应的向量化数据
- 将向量化数据存储到 Pinecone 创建的 index 中

- 在 Pinecone 网站查看这份数据

使用向量数据库(在线检索)
- 从 Pinecone 获取指定的索引

- 将 Prompt 转换为向量数据,从向量数据库提取相似数据

- 将提取的数据与 Prompt 重新构建输入,发送给 ChatGPT
- ChatGPT 整理内容后输出结果

私人助手回答结果
- 关于亚运会首日中国金牌信息,可以看到完美成为了我们的私人智能助手来回答问题

相关文章:
AI大模型开发架构设计(13)——LLM大模型的向量数据库应用实战
文章目录 LLM大模型的向量数据库应用实战1 大模型的局限性大模型的4点局限性大模型的4点局限性的改进实践方法 2 向量数据库使用场景以及改建大模型向量数据库向量数据库选型知识库文档检索增强(Retrieval Augmented Generation) 3 向量数据库应用技术架构剖析向量数据库应用技…...
WPF中Grid、StackPanel、Canvas、WrapPanel常用属性
Grid常用属性 Grid 控件在 WPF 中非常强大,它提供了多种属性来定义行和列的布局。以下是一些常用的 Grid 属性: RowDefinitions 和 ColumnDefinitions: Grid 控件使用 RowDefinitions 和 ColumnDefinitions 来定义行和列的集合。每个 RowDef…...
【芙丽芳丝净润洗面霜和雅漾舒护活泉喷雾
1. 洁面产品: - 芙丽芳丝净润洗面霜:氨基酸洗面奶的经典产品,成分温和,不含酒精、香料等刺激性成分。泡沫丰富细腻,能够有效清洁皮肤的同时,不会过度剥夺皮肤的油脂,洗后皮肤不紧绷,…...
ubuntu更新Cmake
CMake 先验知识创建软链接如何删除符号链接如何找出失效链接并将其删除PATH 优先级查看当前CMake命令的位置 高版本 CMake 安装参考 先验知识 创建软链接 ln -s <path to the file/folder to be linked> <the path of the link to be created>ln 是链接命令&…...
CMOS晶体管的串联与并联
CMOS晶体管的串联与并联 前言 对于mos管的串联和并联,一直没有整明白,特别是设计到EDA软件中,关于MOS的M和F参数,就更困惑了,今天看了许多资料以及在EDA软件上验证了电路结构与版图的对应关系,总算有点收…...
从IT高管到看门大爷:53岁我的职场华丽转身
该文讲述了一位1971年出生的男士,在53岁时因日企撤资而失业。他曾是IT技术员,后晋升为IT高管兼工会主席,但失业后数百份简历石沉大海,面试也因年龄被取消。他意识到年龄是求职的障碍,开始调整心态,降低期望…...
Redis入门到精通(三):入门Redis看这一篇就够了
文章目录 Redis分布式锁的实现原理Redis实现分布式锁如何合理的控制锁的有效时常?**redisson实现的分布式锁**redisson实现的如何保证主从一致性 Redis的集群方案1.主从复制主从数据的同步原理全量同步增量同步 2.哨兵模式Redis的集群脑裂是什么?3.分片集…...
IP基本原理
IP的定义 当前唯一的网络层协议标准定义数据网络层的封装方式、编址方法 MTU 最大传输单元接口收发数据支持的单个包的最大长度不同二层链路类型的接口的MTU不一致。以太网接口默认MTU1500Byte。PPPoE接口默认MTU1480Byte。 IP头部封装格式 IP 头部长度不固定,2…...
数据分析题面试题系列2
一.如何估算星巴克一天的营业额 a.需求澄清:区域?节假日?产品范围? b.收入销售杯数*单价(营业时间*每小时产能*每小时产能利用率)*平均单价 Hypo该星巴克门店的营业时间为12小时(取整&#x…...
uniapp 单表、多级动态表单添加validateFunction自定义规则
uniapp 多级动态表单添加自定义规则 在uniapp制作小程序时,当涉及到需要设置validateFunction的校验规则时。可能遇到的问题 1、validateFunction不生效,没有触发 2、多层级表单怎么添加validateFunction自定义校验规则 本文将以单表单校验和多表单校…...
FPGA高端图像处理培训第一期,提供工程源码+视频教程+FPGA开发板
目录 1、FPGA图像处理培训现状分析2、本FPGA图像处理培训优势亮点架构全起点高实用性强项目应用级别细节恐怖工程源码清晰 3、本FPGA图像处理培训内容介绍图像处理基本框架图像前处理框架图像中处理框架图像前中处理框架图像后处理框架图像中后处理框架图像处理仿真框架视频教程…...
顺序表的实现(数据结构)——C语言
目录 1.结构与概念 2.分类 3 动态顺序表的实现 SeqList.h SeqList.c 创建SLInit: 尾插SLPushBack以及SLCheak(检查空间是否足够): 头插SLPushFront: 尾删SLPopBack 头删SLPopFront 查找指定元素SLFind 指定…...
【VUE】Vue中 computed计算属性和watch侦听器的区别
核心功能不同 computed 是一个计算属性,其核心功能是基于已有的数据属性计算得出新的属性值。当某个依赖的数据发生变化时,computed 会自动重新计算并更新自己的值。因此,可以将 computed 看做是一种“派生状态”。 watch 是一个观察者函数&…...
linux线程 | 同步与互斥 | 深度学习与理解同步
前言:本节内容主要讲解linux下的同步问题。 同步问题是保证数据安全的情况下,让我们的线程访问具有一定的顺序性。 线程安全就规定了它必须是在加锁的场景下的!!那么, 具体什么是同步问题, 我们加下来看看吧…...
Tkinter Frame布局笔记--做一个简易的计算器
#encodingutf-8 import tkinter import re import tkinter.messagebox import tkinter.simpledialog import sys import os def get_resources_path(relative_path):if getattr(sys,frozen, False):base_pathsys._MEIPASS#获取临时文件else:base_pathos.path.dirname(".&q…...
算法专题八: 链表
目录 链表1. 链表的常用技巧和操作总结2. 两数相加3. 两两交换链表中的节点4. 重排链表5. 合并K个升序链表6. K个一组翻转链表 链表 1. 链表的常用技巧和操作总结 常用技巧 画图!!! 更加直观形象, 便于我们理解引入虚拟头节点, 方便我们对链表的操作, 减少我们对边界情况的考…...
MySQL中关于NULL值的六大坑!你被坑过吗?
NULL值是我们在开发过程中的老朋友了,但是这个老朋友在MySQL中有很多坑,我通过这篇文章来总结分享一下,欢迎大家在评论区分享你的看法和踩坑经历。 1、NULL不等于NULL 在MySQL中,执行以下SQL会返回NULL 假如t表有以下数据&#…...
学生学习动机测试:激发潜能,引领未来
学习动机、学习兴趣和学习目标制定是影响学生学习成效的三个关键因素。通过对学生学习动机的测试,我们可以深入了解学生的学习状态,进而采取针对性的措施,激发他们的学习潜能,引导他们走向更加光明的未来。本文将从学习动机、学习兴趣和学习目标制定三个方面,详细探讨学生…...
基于SSM党务政务服务热线管理系统的设计
管理员账户功能包括:系统首页,个人中心,用户管理,部门管理,办事信息管理,信息记录管理,系统管理 前台账号功能包括:系统首页,个人中心,部门,信息…...
OSI参考模型详解:初学者指南与实践案例
OSI参考模型详解:初学者指南与实践案例 OSI(Open System Interconnect)参考模型是一个由国际标准化组织(ISO)提出的七层网络分层模型,它为全球所有互联计算机系统提供了一个通用的通信框架,解决…...
3个技术突破:BiliBiliCCSubtitle开源工具如何实现字幕处理效率优化
3个技术突破:BiliBiliCCSubtitle开源工具如何实现字幕处理效率优化 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 在视频内容快速增长的当下…...
深入解析vbmeta.img的配置与验证机制
1. 认识vbmeta.img与Android Verified Boot 第一次接触Android系统开发时,看到vbmeta.img这个文件总是一头雾水。后来在实际项目中踩过几次坑才明白,这其实是Android Verified Boot(AVB)验证机制的核心组件。简单来说,…...
华硕笔记本性能调校新选择:G-Helper轻量控制工具全解析
华硕笔记本性能调校新选择:G-Helper轻量控制工具全解析 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, S…...
解决经典游戏兼容性难题:DDrawCompat工具的创新方案
解决经典游戏兼容性难题:DDrawCompat工具的创新方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DDrawCom…...
【Blender进阶】VSCode调试大型项目:从模块导入到参数解析的实战避坑指南
1. 为什么需要VSCode调试Blender大型项目 当你刚开始接触Blender脚本开发时,可能习惯直接在Blender内置的文本编辑器中编写和测试代码。这种方式对于简单的单文件脚本还算方便,但随着项目规模扩大,你会遇到几个明显的痛点: 首先&a…...
PowerPaint-V1图像修复不求人:API集成与自动化工作流搭建
PowerPaint-V1图像修复不求人:API集成与自动化工作流搭建 1. 项目概述与技术优势 PowerPaint-V1是由字节跳动与香港大学联合研发的先进图像修复模型,它通过深度学习技术实现了两大核心功能: 纯净消除:智能识别背景纹理…...
Pixel Dream Workshop效果展示:像素角色动作帧序列生成演示
Pixel Dream Workshop效果展示:像素角色动作帧序列生成演示 1. 像素艺术的新纪元 在数字艺术创作领域,像素艺术正经历着前所未有的复兴。Pixel Dream Workshop作为新一代像素艺术生成工具,将传统像素美学与现代AI技术完美融合,为…...
拖拉拽驱动高效开发:活字格低代码平台技术解析与实践
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
TranslucentTB:Windows任务栏透明化改造的工程级解决方案
TranslucentTB:Windows任务栏透明化改造的工程级解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 当你面对Windows单调…...
别再手动建模了!用C++和GMSH自动导入STEP文件,5步生成六面体网格(附完整代码)
基于GMSH的CAD/CAE自动化工作流:从STEP文件到六面体网格的工程实践 在工业设计和仿真分析领域,CAD模型到有限元网格的转换一直是制约效率的关键环节。传统的手动建模方式不仅耗时费力,更难以适应参数化设计和批量处理的需求。本文将展示如何利…...
