当前位置: 首页 > news >正文

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,向量的近似度代表语义的近似度

image.png

  • Embedding过程

image.png

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

image.png

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

image.png

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

image.png

😁 RAG 优势——更经济、更具可行性、更具扩展性

  • 容易管理
  • 更精确和上下文相关的答案
  • 适应性强、敏捷性强
  • 更好的模糊搜索能力

😌 Fine-tuning 不足

  • 适用于较小的知识数据库
  • 没有知识访问控制
  • 前期成本高,维护成本高
  • 知识更新不及时

3 向量数据库应用技术架构剖析

向量数据库应用技术总体架构
  • 以一个在线查询为例:

image.png

🌰

image.png

向量数据库应用离线索引技术

离线索引更多优化

  • 针对文档特性(语言、内容)选择 Embedding 模型
  • 更有针对性的文档分段模型
  • 文档转问题,用问题召回

image.png

向量数据库应用在线检索技术

在线检索更多优化

  • 用户问题改写,使用改写的问题召回
  • 多路召回,结合全文检索的结果
  • 把问题编造成“假”文档,使用“假”文档召回

image.png

4 利用向量检索构建知识库案例实战库

构建私人智能助手整体架构设计

总体流程3大步骤
  • 将私人数据转换为向量数据,并写入到向量数据库中
  • 根据 Prompt 从向量数据库中提取相似数据
  • 结合相似数据重新组装 Prompt,让 ChatGPT 生成回答

image.png

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

image.png

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

image.png

  • 在 Pinecone 网站查看这份数据

image.png

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

image.png

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

image.png

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

image.png

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

image.png

http://www.lryc.cn/news/464352.html

相关文章:

  • WPF中Grid、StackPanel、Canvas、WrapPanel常用属性
  • 【芙丽芳丝净润洗面霜和雅漾舒护活泉喷雾
  • ubuntu更新Cmake
  • CMOS晶体管的串联与并联
  • 从IT高管到看门大爷:53岁我的职场华丽转身
  • Redis入门到精通(三):入门Redis看这一篇就够了
  • IP基本原理
  • 数据分析题面试题系列2
  • uniapp 单表、多级动态表单添加validateFunction自定义规则
  • FPGA高端图像处理培训第一期,提供工程源码+视频教程+FPGA开发板
  • 顺序表的实现(数据结构)——C语言
  • 【VUE】Vue中 computed计算属性和watch侦听器的区别
  • linux线程 | 同步与互斥 | 深度学习与理解同步
  • Tkinter Frame布局笔记--做一个简易的计算器
  • 算法专题八: 链表
  • MySQL中关于NULL值的六大坑!你被坑过吗?
  • 学生学习动机测试:激发潜能,引领未来
  • 基于SSM党务政务服务热线管理系统的设计
  • OSI参考模型详解:初学者指南与实践案例
  • S7-200 SMART 与 S7-1200 之间 TCP 通信— S7-200 SMART 作为服务器
  • Java @RequestPart注解:同时实现文件上传与JSON对象传参
  • 深度学习基础知识-02 数据预处理
  • 【CTF刷题9】2024.10.19
  • WPF中的Setter
  • RabbitMQ下载与配置
  • 【数据结构与算法】力扣 54. 螺旋矩阵
  • 速通不了的人工智能
  • 微信新功能上线,找工作也能“附近”搞定
  • CANoe与C#联合仿真方案
  • 公交信息在线查询系统|基于java和小程序的公交信息在线查询系统小程序设计与实现(源码+数据库+文档)