1、向量数据库
1、向量数据库介绍
咱们在用图片查找图片,或者语音查找语音的时分,在数据库中存储和比照的并不是图片和语音片段,而是经过深度学习等算法提取出来的“特征”,一般是256/512个float数组,能够用数学中的向量来表明。
向量数据库便是用来存储,检索,剖析向量的数据库。只所以称之为数据库,是由于它有下面几个特征:
a) 供给规范的访问接口,降低用户的运用门槛
b)供给高效的数据安排,检索和剖析的能力。一般用户在存储和检索向量的一起,还需要管理结构化的数据,即支持传统数据库对结构化数据的管理能力。
2、向量数据库的优势
举例介绍:
问:运用Embedding与只是在数据库上运用全文查找有什么不同?
答:假定我的数据库里有一段文字 “老鼠在寻觅食物”。用户输入了”‘奶酪’”的查询。文本查找根本无法辨认这段话,它不包含任何堆叠部分。但是经过Embedding,把两段文字都变成了向量,然后能够对这段文字进行类似性查找。
由于“老鼠”和“奶酪”在某种程度上是相关的,所以虽然缺少匹配的词,用户仍是能够得到该阶段的成果。
3. 向量数据库处理的问题
从技能角度来讲,向量数据库主要处理2个问题,一个是高效的检索,另一个是高效的剖析。
1)检索通常便是图片检索图片,例如人脸检索,人体检索,和车辆检索,以及淘宝的商品图片检索,人脸支付。
2)城市运用的也比较多,例如人脸撞库,公安会把2个类似作案手法的案发现场周边的人像做比照,看哪些人一起在2个案发现场出现。
4、部分向量数据库产品
Milvus、Pinecone、Vespa、Weaviate、Vald、用于 Elasticsearch 和 OpenSearch 的 GSI APU 板、Qdrant
具体介绍:7个向量数据库比照:Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant
3、OpenAI ChatGPT API 文档之 Embedding
1、GPT介绍的Embedding
在自然语言处理和机器学习范畴,”embeddings” 是指将单词、短语或文本转换成接连向量空间的进程。这个向量空间通常被称为嵌入空间(embedding space),而生成的向量则称为嵌入向量(embedding vector)或向量嵌入(vector embedding)。
嵌入向量能够捕获单词、短语或文本的语义信息,使得它们能够在数学上进行比较和计算。这种比较和计算在自然语言处理和机器学习中经常被用于各种任务,例如文本分类、语义查找、词语类似性计算等。
在中文语境下,”embeddings” 通常被翻译为 “词向量” 或者 “向量表明”。这些翻译强调了嵌入向量的特点,即将词汇转换成向量,并表明为嵌入空间中的点。
2、什么是Embedding
Embedding 是一个浮点数向量(列表)。两个向量之间的间隔用于丈量它们之间的相关性。较小间隔表明高相关性,较大间隔表明低相关性。
3、怎么运用GPT的API
示例请求:
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{"input": "Your text string goes here",
"model":"text-embedding-ada-002"}'
示例响应:
{
"data": [
{
"embedding": [
-0.006929283495992422,
-0.005336422007530928,
...
-4.547132266452536e-05,
-0.024047505110502243
],
"index": 0,
"object": "embedding"
}
],
"model": "text-embedding-ada-002",
"object": "list",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
注意事项:GPT会依据字符串,生成一个1536维度的embedding数组(数组长度为1536)
3、Milvus向量数据库
1、介绍
Milvus 是一款全球抢先的开源向量数据库,赋能 AI 运用和向量类似度查找,加快非结构化数据检索。用户在任何布置环境中均可获得始终如一的用户体验。
Milvus 2.0 是一款云原生向量数据库,选用存储与计算分离的架构规划。该重构版别的所有组件均为无状态组件,极大地增强了系统弹性和灵活性。
2、Milvus相关文档
- Zilliz 中文技能专区:zilliz.gitee.io/welcome/
-
- 技能视频合集:space.bilibili.com/1058892339M…
- GitHub:github.com/milvus-io/m…
- Docs:milvus.io/docs
- 官方 FAQ:milvus.io/docs/produc…
- Slack:milvusio.slack.com/join/shared…
- Towhee
- GitHub:github.com/towhee-io/t…
- Docs:docs.towhee.io/
- 在线托管版别:Zilliz Cloud
4、GPT+Milvus搭建私有化知识库
1、流程图示
2、具体流程实现
1、建立向量数据库的collection(相当于数据库表)
2、创立collection的索引
4、导入数据调用openAi转换为向量浮点数据,把数据文本和向量浮点数据存入到collection中
5、加载collection到内存中,用于查询
6、用户查询调用openAi转换为向量浮点数据,依据向量浮点数据查询向量数据库得到数据文本
7、把用户的问题和从向量数据库的数据文本,编写一个prompt,交给GPT进行润饰,并生成答案。
milvus-java运用参阅:gitee.com/lgySpace/mi…