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

设计宝藏资源站福州百度分公司

设计宝藏资源站,福州百度分公司,温州高端网站建设,青岛网站排名哪家公司好【GPT入门】第16课 RAG向量检索分类、原理与优化 1.向量检索概念1.1 文本检索的两类方式1.2 向量的定义1.3 文本向量(Text Embeddings)1.4 文本向量如何得到1.5 向量间相似度计算1.6 向量数据库功能对比1.7 open ai发布的两个向量模型2.向量数据库1.8 向量检索的优化3.检索后…

【GPT入门】第16课 RAG向量检索分类、原理与优化

  • 1.向量检索概念
    • 1.1 文本检索的两类方式
    • 1.2 向量的定义
    • 1.3 文本向量(Text Embeddings)
    • 1.4 文本向量如何得到
    • 1.5 向量间相似度计算
    • 1.6 向量数据库功能对比
    • 1.7 open ai发布的两个向量模型
  • 2.向量数据库
    • 1.8 向量检索的优化
  • 3.检索后排序
    • 3.1 后排序原理
    • 3.2 检索后排序代码
  • 4.混合检索(Hybrid Search)
  • 5. RAG-Fusion优化

1.向量检索概念

1.1 文本检索的两类方式

分为两类
基于语法的检索
包括基于关键词的检索、全文检索、索引检索、基于规则的检索等。这些方法主要关注文本的语法结构和字词的匹配,通过对文本进行分词、建立索引等操作,根据用户输入的关键词或规则来查找匹配的文本,不涉及对文本语义的深入理解。
基于语义的检索
包括向量空间模型检索、语义检索等。这类方法利用自然语言处理技术,尝试理解文本的语义内容,考虑文本的上下文、词汇之间的语义关系等,以更准确地找到与用户查询在语义上相关的文本。

本文重点讲解语义检索原理

1.2 向量的定义

在这里插入图片描述
以此类推,我可以用一组坐标 (𝑥0,𝑥1,…,𝑥𝑁−1)
表示一个 𝑁
维空间中的向量, 𝑁
叫向量的维度。

1.3 文本向量(Text Embeddings)

在这里插入图片描述

1.4 文本向量如何得到

构建相关(正立)与不相关(负例)的句子对儿样本
训练双塔式模型,让正例间的距离小,负例间的距离大
例如:
在这里插入图片描述

1.5 向量间相似度计算

在这里插入图片描述
根据距离远近,来计算向量的相似度,从而计算文本相似度。

1.6 向量数据库功能对比

在这里插入图片描述
FAISS: Meta 开源的向量检索引擎 https://github.com/facebookresearch/faiss
Pinecone: 商用向量数据库,只有云服务 https://www.pinecone.io/
Milvus: 开源向量数据库,同时有云服务 https://milvus.io/
Weaviate: 开源向量数据库,同时有云服务 https://weaviate.io/
Qdrant: 开源向量数据库,同时有云服务 https://qdrant.tech/
PGVector: Postgres 的开源向量检索引擎 https://github.com/pgvector/pgvector
RediSearch: Redis 的开源向量检索引擎 https://github.com/RediSearch/RediSearch
ElasticSearch 也支持向量检索 https://www.elastic.co/enterprise-search/vector-search

1.7 open ai发布的两个向量模型

2024 年 1 月 25 日,OpenAI 新发布了两个 Embedding 模型

text-embedding-3-large
text-embedding-3-small
其最大特点是,支持自定义的缩短向量维度,从而在几乎不影响最终效果的情况下降低向量检索与相似度计算的复杂度。

通俗的说:越大越准、越小越快。 官方公布的评测结果:
在这里插入图片描述


import numpy as np
from numpy import dot
from numpy.linalg import norm
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())client = OpenAI()def get_embeddings(texts, model="text-embedding-ada-002", dimensions=None):'''封装 OpenAI 的 Embedding 模型接口'''if model == "text-embedding-ada-002":dimensions = Noneif dimensions:data = client.embeddings.create(input=texts, model=model, dimensions=dimensions).dataelse:data = client.embeddings.create(input=texts, model=model).datareturn [x.embedding for x in data]def cos_sim(a, b):'''余弦距离 -- 越大越相似'''return dot(a, b)/(norm(a)*norm(b))def l2(a,b):'''欧式距离 -- 越小越似'''x = np.asarray(a) - np.asarray(b)return norm(x)# model = "text-embedding-3-large"
model = "text-embedding-3-small"
dimensions = 128# query = "国际争端"# 且能支持跨语言
query = "global conflicts"documents = ["联合国就苏丹达尔富尔地区大规模暴力事件发出警告","土耳其、芬兰、瑞典与北约代表将继续就瑞典“入约”问题进行谈判","日本岐阜市陆上自卫队射击场内发生枪击事件 3人受伤","国家游泳中心(水立方):恢复游泳、嬉水乐园等水上项目运营","我国首次在空间站开展舱外辐射生物学暴露实验",
]query_vec = get_embeddings([query], model=model, dimensions=dimensions)[0]
doc_vecs = get_embeddings(documents, model=model, dimensions=dimensions)print("
http://www.dtcms.com/wzjs/279975.html

相关文章:

  • 企业做网站需要注意什么问题徐州关键词优化平台
  • 九度互联网站建设以图搜图百度识图
  • 怎么用自己的服务器做网站什么叫做网络营销
  • 西安做网站的公司在哪怎么查询百度收录情况
  • 河北斯皮尔网站建设广告联盟有哪些平台
  • 深圳市建设注册中心网站磁力链搜索引擎入口
  • 1688网站建设与维护杭州百度seo优化
  • 建设网站应该加什么服务器百度seo多少钱一个月
  • 做网站需要哪些人站内推广有哪些具体方式
  • 南昌网站建设网络营销和传统营销的区别有哪些
  • 电子化业务管理与网站建设友情链接软件
  • 网站模板系统提高百度快速排名
  • 大连网站建设哪里好博客网站登录入口
  • 外海赌博如何做网站的推广买链接
  • 庆阳网站建设公司长尾词挖掘免费工具
  • 哈尔滨网站建设效果好珠海网站设计
  • 网站建设品牌推荐站长工具权重
  • html网站如何做seo排名首页服务热线
  • 一个网络空间做两个网站推广平台都有哪些
  • 化学网站定制中国广告网
  • 免费网站建设下载任务放单平台
  • 怎样在手机上制作网站seo个人博客
  • 政府网站php源码网页生成
  • 快递网站怎么做的淘宝客推广平台
  • 网站注册信息查询对网络营销的理解
  • 企业建站有什么好处北京做百度推广的公司
  • 国外做地铁设计的公司网站网络营销活动案例
  • 网页设计模板一套湖南关键词优化推荐
  • 个体户做网站去哪里做网络热词排行榜
  • 建设部网站首页搜索引擎广告