程序员玩转AI大模四-使用Embedding实现自然语言检索

四、使用Embedding实现自然语言搜索

--楼兰

有了之前与大模型对接的经历后,接下来,我们将利用AI大模型动手搭建一个RAG智能客服系统。这个系统的核心是要把一些企业额内部的产品手册、常见问题手册等整理成一个知识库,允许用户用自然语言的方式向客服系统询问知识库相关的问题。而智能客服系统可以理解用户的问题,并基于内部的知识库以及大模型的理解能力给出用户想要的答案。这也是AI大模型在很多企业最典型的落地应用的方式。
在动手搭建应用之前,需要带大家了解一个前置的知识: 文本向量化

  • 什么是Embedding文本向量化
  • 通过向量计算语义相似度
  • 向量数据持久化保存
  • 链式使用Retriver

1、什么是Embedding文本向量化

​ AI大模型相比于传统的数据检索,最大的区别在于能够“理解”人类的语言。比如你向ChatGPT问"我是谁"和“我叫什么名字”,ChatGPT都能够把他们正确理解成一个相似的问题。那么计算机是如何理解这些相似的话语之间的意思呢?

​ 我们需要清楚,计算机并不能“理解”人类的语言,本质上,他只能进行各种各样的数据计算。所以要让计算机“理解”人类的语言,我们只能将语言拆成Token,再将Token数据化,转成一串串的数字,这样才能让计算机通过计算的方式去理解Token之间的相似性,从而进一步理解语言背后的语义信息。

​ 接下来第一个问题就是,我们要如何用数字来表示语言,同时又要保留语言背后的语意呢?这中间经过了一系列的算法改进。目前比较主流的方法是对语言进行一些语法和词法层面的分析,将一个文本转换成多维的向量,然后通过向量之间的计算,来分析文本与文本之间的相似性。

​ 向量代表一个有位置,有方向的变量。一个二维的向量可以理解为平面坐标轴上的一个坐标点(x,y),他有x轴和y轴两个维度,在计算机中,就可以用一个二维的数组来表示[x,y]。类似的一个多维的数组就对应一个更多维度的向量。

​ 而文本向量化,就是通过机器学习的方式将一个文本转化成一个多维向量,后续可以通过一些数学公式对多个向量进行计算。这既是为了更好的让计算机理解“语言”,同时他也是AI大模型的基础。

实际上,很多AI大模型产品都提供了文本向量化的功能。以国内的阿里云百炼平台为例,就推出了多个不同的向量化模型:
在这里插入图片描述

langchain-community社区扩展中也集成了百炼平台向量化的封装,使用起来非常方便。

from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
# 安装阿里云百炼的客户端依赖
!pip install -q langchain_community
!pip install -q dashscope
import os
from config.load_key import load_key

if not os.environ.get("DASHSCOPE_API_KEY"):
  os.environ["DASHSCOPE_API_KEY"] = load_key("BAILIAN_API_KEY")

from langchain_community.embeddings import DashScopeEmbeddings
embedding_model = DashScopeEmbeddings(model="text-embedding-v1")

text = "This is a test query."
query_result = embedding_model.embed_query(text)
print(query_result) # 打印向量结果
print(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

roykingw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值