最新动态
构建RAG应用-day01: 词向量和向量数据库 文档预处理
2024-11-01 00:22

image-20240417145729703

构建RAG应用-day01: 词向量和向量数据库 文档预处理

词向量(Embeddings)是一种将非结构化数据,如单词、句子或者整个文档,转化为实数向量的技术。

优势1:词向量可以语义搜索

比如百度搜索,使用的是关键词搜索。而词向量搜索,是对句子的语义进行搜索,他会找到意思相近的前k个句子。

优势2:词向量可以对多模态数据进行搜索

当传统数据库存储文字、声音、图像、视频等多种媒介时,很难去将上述多种媒介构建起关联与跨模态的查询方法;但是词向量却可以通过多种向量模型将多种数据映射成统一的向量形式。

缺点:准确度问题

定义
向量数据库是一种专门用于存储和检索向量数据(embedding)的数据库系统。
在向量数据库中,数据被表示为向量形式,每个向量代表一个数据项。这些向量可以是数字、文本、图像或其他类型的数据。向量数据库使用高效的索引和查询算法来加速向量数据的存储和检索过程。

原理
向量数据库中的数据以向量作为基本单位,对向量进行存储、处理及检索。向量数据库通过计算与目标向量的余弦距离、点积等获取与目标向量的相似度。当处理大量甚至海量的向量数据时,向量数据库索引和查询算法的效率明显高于传统数据库。

  • Chroma:是一个轻量级向量数据库,拥有丰富的功能和简单的 API,具有简单、易用、轻量的优点,但功能相对简单且不支持GPU加速,适合初学者使用。
  • Weaviate:是一个开源向量数据库。除了支持相似度搜索和最大边际相关性(MMR,Maximal Marginal Relevance)搜索外还可以支持结合多种搜索算法(基于词法搜索、向量搜索)的混合搜索,从而搜索提高结果的相关性和准确性。
  • Qdrant:Qdrant使用 Rust 语言开发,有极高的检索效率和RPS(Requests Per Second),支持本地运行、部署在本地服务器及Qdrant云三种部署模式。且可以通过为页面内容和元数据制定不同的键来复用数据。
  • 有三种Embedding模型,性能如下所示:

    模型 每美元页数 MTEB得分 MIRACL得分 text-embedding-3-large 9,615 54.9 64.6 text-embedding-3-small 62,500 62.3 44.0 text-embedding-ada-002 12,500 61.0 31.4
  • MTEB得分为embedding model分类、聚类、配对等八个任务的平均得分。
  • MIRACL得分为embedding model在检索任务上的平均得分。
  • text-embedding-3-large性能最好,text-embedding-3-small性价比高,text-embedding-ada-002效果不好,不推荐。

    如果没有openai apikey可以使用自己的github账号去这个项目领取一个免费的使用:
    chatanywhere/GPT_API_free: Free ChatGPT API Key,免费ChatGPT API,支持GPT4 API(免费),ChatGPT国内可用免费转发API,直连无需代理。可以搭配ChatBox等软件/插件使用,极大降低接口使用成本。国内即可无限制畅快聊天。 (github.com)

    执行代码:

    使用re处理、空格、。
    使用 按照分隔符的优先级进行递归的文档分割。
    设置 单段文本长度(CHUNK_SIZE)、知识库中相邻文本重合长度(OVERLAP_SIZE)。

    项目地址:Filimoa/open-parse: Improved file parsing for LLM’s (github.com)

    open-parse推荐使用语义进行分块,并且预设了一些文档预处理流程,还可以将自己的处理方式添加到管道中,或者是自定义预处理管道。

    添加你的处理流程:

    自定义整个处理管道:

        以上就是本篇文章【构建RAG应用-day01: 词向量和向量数据库 文档预处理】的全部内容了,欢迎阅览 ! 文章地址:http://www.tpjde.com/quote/119.html 
         行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 推平第移动站 http://mip.tpjde.com/ , 查看更多