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

网站群项目建设实施进度计划深圳企业名录深圳黄页

网站群项目建设实施进度计划,深圳企业名录深圳黄页,app软件下载安装到手机,保定建网站公司在之前的文章 “Elasticsearch 开放推理 API 新增阿里云 AI 搜索支持”,它详细描述了如何使用 Elastic inference API 来针对阿里的密集向量模型,稀疏向量模型, 重新排名及 completion 进行展示。在那篇文章里,它使用了很多的英文…

在之前的文章 “Elasticsearch 开放推理 API 新增阿里云 AI 搜索支持”,它详细描述了如何使用 Elastic inference API 来针对阿里的密集向量模型,稀疏向量模型, 重新排名及 completion 进行展示。在那篇文章里,它使用了很多的英文的例子。我觉得阿里的模型更适合中文字来进行展示。我们知道 Elastic 的开箱即用的稀疏向量模型 ELSER 只适合英文。目前它不支持中文。恰好阿里的稀疏向量模型填补了这个空白。稀疏向量可以开箱即用。对于很多不是很精通人工智能的开发者来说,这无疑是个福音,而且它使用的资源很小。

更多阅读,请参阅 “阿里云 AI 搜索推理服务”。

稀疏向量

根据文档,我们使用如下的命令来创建稀疏向量的推理 API 端点:

PUT _inference/sparse_embedding/alibabacloud_ai_search_sparse
{"service": "alibabacloud-ai-search","service_settings": {"api_key": "<api_key>","service_id": "ops-text-sparse-embedding-001","host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com","workspace": "default"}
}

在上面,我们需要从阿里云获得 api_key 来进行。运行上面的命令:

我们接下来可以通过如下的方式来测试(如下信息由地址获得):

POST _inference/alibabacloud_ai_search_sparse
{"input": "阿里巴巴(中国)有限公司成立于2007年03月26日,法定代表人蒋芳"
}

上面的命令显示的结果为:

我们从上面的显示结果可以看出来,它和我们之前的 Elastic ELSER 输出是不同的。这里应该是 unicode。

上面的命令和下面的命令是一样的:

POST _inference/sparse_embedding/alibabacloud_ai_search_sparse
{"input": "阿里巴巴(中国)有限公司成立于2007年03月26日,法定代表人蒋芳"
}

因为每个 endpoint 在 Elasticsearch 创建时,都会自动检测并识别出它是什么类型的模型,所以上面路径中的 sparse_embedding 是可以省去的。

密集向量

同样,根据文档,我们使用如下的命令来创密集向量的推理 API 端点:

PUT _inference/text_embedding/alibabacloud_ai_search_embeddings
{"service": "alibabacloud-ai-search","service_settings": {"api_key": "<api_key>","service_id": "ops-text-embedding-001","host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com","workspace": "default"}
}

运行上面的命令,我们可以看到:

我们可以使用如下的命令来生成密集向量:

POST _inference/alibabacloud_ai_search_embeddings
{"input": "阿里巴巴(中国)有限公司成立于2007年03月26日,法定代表人蒋芳"
}

密集向量是一个浮点数的数组。我们在生成的时候,其实还是可以对它进行标量量化,这样可以节省内存消耗,并提高搜索的速度。更多有关向量量化的信息,请阅读文章 “Elasticsearch:dense vector 数据类型及标量量化”。

完成 - completion

我们甚至可以针对搜索的结果运用大模型来得到一个 completion 的结果,比如,我们使用如下的命令来生成一个 completion 的推理 API 端点:

PUT _inference/completion/alibabacloud_ai_search_completion
{"service": "alibabacloud-ai-search","service_settings": {"host" : "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com","api_key": "{{API_KEY}}","service_id": "ops-qwen-turbo","workspace" : "default"}
}

我们可以通过如下的例子来展示 completion:

POST _inference/completion/alibabacloud_ai_search_completion
{"input": "阿里巴巴(中国)有限公司是什么时候成立的?"
}

这个结果是结合大模型而生成的。大模型提供了一个基于在大模型训练时得到的结果。

重新排名 - rerank

同样,我们可以按照如下的命令来生成一个 rerank 的推理 API 端点:

PUT _inference/rerank/alibabacloud_ai_search_rerank
{"service": "alibabacloud-ai-search","service_settings": {"api_key": "<api_key>","service_id": "ops-bge-reranker-larger","host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com","workspace": "default"}
}

我们可以使用如下的例子来进行展示:

POST _inference/alibabacloud_ai_search_rerank
{"query": "阿里巴巴(中国)有限公司是哪一年成立的?","input": ["阿里巴巴是全球领先的B2B电子商务网上贸易平台","阿里巴巴(中国)有限公司成立于2007年03月26日,法定代表人蒋芳"]
}

在上面的 input 里,我们列举了两个文档。我们可以通过 rerank 端点来针对这两个文档重新进行排序。假如我们想搜索的文字是 “阿里巴巴(中国)有限公司是哪一年成立的?”。那么 rerank 返回来的结果是:

从上面,我们可以看出来,第二个文档比第一个文档更为贴近,也就是它的相关度更高。

RAG 应用

在很多情况下,我们企业有很多的业务数据或者私有数据每时每刻都在生成,而大模型的知识仅限于在它生成的时候,所以很多的时候,大模型有很多的知识是不知道的。如果我们不对大模型的回答进行限制,那么它可能给出的答案就是错误的,从而产生幻觉。在实际的应用中,我们通常把业务或私有数据保存于像 Elasticsearch 这样的向量数据库中。在搜索时,我们首先搜索 Elasticsearch,并把搜索的结果发送给大模型做为 prompt 的一部分,这样就可以解决幻觉的问题。

首先,我们来创建一个稀疏向量索引:

PUT alibaba_sparse
{"mappings": {"properties": {"inference_field": {"type": "semantic_text","inference_id": "alibabacloud_ai_search_sparse"}}}
}

请注意在上面,我们使用了 semantic_text 字段。它使用于密集向量及稀疏向量,并且它还可以自动帮我们的文档进行分片。

有关分片的更多知识,请阅读文章 “Elasticsearch:检索增强生成背后的重要思想”。

然后,我们写入如下的两个文档:

PUT alibaba_sparse/_bulk
{"index": {"_id": "1"}}
{"inference_field": "阿里巴巴(中国)有限公司成立于2007年03月26日,法定代表人蒋芳"}
{"index": {"_id": "2"}}
{"inference_field": "百度是拥有强大互联网基础的领先AI公司。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。于2000年1月1日在中关村创建了百度公司"}

我们通过如下的命令来进行搜索:

GET alibaba_sparse/_search
{"query": {"semantic": {"field": "inference_field","query": "百度公司是哪年成立的?"}}
}

上面搜索的结果为:

很显然,含有百度的文档排在第一的位置。这个就是我们所说的向量搜索。

在实际的很多例子中,我们有时想得到一个唯一的答案,甚至这个答案是推理出来的,而不原始的文档。这个时候我们就需要用到大模型,也就是使用 completion 这个推理端点。

我们首先来做如下的搜索:

GET alibaba_sparse/_search
{"query": {"semantic": {"field": "inference_field","query": "阿里巴巴公司的法人是谁?"}}
}

这次只有一个文档被列出来了。我们在下面使用 completion 端点:

POST _inference/completion/alibabacloud_ai_search_completion
{"input": "<|system|>你是一个知识渊博的人.</s><|user|>CONTEXT:阿里巴巴(中国)有限公司成立于2007年03月26日,法定代表人蒋芳QUESTION: 阿里巴巴公司的法人是谁?</s><|assistant|>"
}

在上面,我们把上面搜索的结果文档 “阿里巴巴(中国)有限公司成立于2007年03月26日,法定代表人蒋芳” 作为 context 的一部分,并把搜索的问题也一并提交。我们使用 completion 端点 API 来查看结果:

上面显示的结果是 “阿里巴巴公司的法定代表人是蒋芳”。很显然这个和之前的直接使用 completion 而没有 context 的结果是完全不同的:

POST _inference/completion/alibabacloud_ai_search_completion
{"input": "阿里巴巴法定代表是谁?"
}

我们可以这么理解,有了从 Elasticsearch 向量数据库(实时业务数据或私有数据)中搜索来的结果并提供给大模型,大模型可以根据这些上下文,得到更为贴近答案的搜索结果。这个在实际的使用中避免幻觉!

另外一个例子:

POST _inference/completion/alibabacloud_ai_search_completion
{"input": "<|system|>你是一个知识渊博的人.</s><|user|>CONTEXT:阿里巴巴(中国)有限公司成立于2007年03月26日,法定代表人蒋芳QUESTION: 阿里巴巴(中国)有限公司是什么时候成立的?</s><|assistant|>"
}

有关如何构建提示(prompt),请参阅我之前的文章 “为生成式人工智能制作 prompt 三明治”。

按照同样的方法,我们来创建一个密集向量的索引:

PUT alibaba_dense
{"mappings": {"properties": {"inference_field": {"type": "semantic_text","inference_id": "alibabacloud_ai_search_embeddings"}}}
}

我们按照同样的方法来写入文档:

PUT alibaba_dense/_bulk
{"index": {"_id": "1"}}
{"inference_field": "阿里巴巴(中国)有限公司成立于2007年03月26日,法定代表人蒋芳"}
{"index": {"_id": "2"}}
{"inference_field": "百度是拥有强大互联网基础的领先AI公司。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。于2000年1月1日在中关村创建了百度公司"}

我们来对这个密集向量索引 alibaba_dense 来进行搜索:

GET alibaba_dense/_search
{"query": {"semantic": {"field": "inference_field","query": "Alibaba 的法人是谁?"}}
}

很显然,在我们的搜索中,我们并没有使用 “阿里巴巴”,我们查询的是 Alibaba。在向量空间里 “阿里巴巴” 等同于 “Alibaba”。同样地,

GET alibaba_dense/_search
{"query": {"semantic": {"field": "inference_field","query": "Baidu 是什么样的公司?"}}
}

上面的搜索的结果是:

很显然,含有 “百度” 的文档排名为第一尽管我们搜索的是 “Baidu”。

好的,今天的分享就到这里。

http://www.yayakq.cn/news/73052/

相关文章:

  • 北京高端网站设计北京装修公司哪家口碑最好 知乎
  • 网站建站助手网站建设经费管理
  • 漳州做网站设计河源市新闻最新消息
  • 龙华网站公司wordpress后台打开超慢
  • 哈尔滨住房城乡建设局网站网站建设中模
  • ftp上传网站之后怎么做永德网站建设
  • 网站源码在哪看网站建设入账时进那个会计科目
  • 外贸网站contact网站建设数据库搭建
  • php技术的网站开发wordpress 国内广告
  • 江门网站建设套餐软件和网站开发
  • 中山市做网站专业的网站空间域名费
  • 义乌网站制作公司海南网站建设培训
  • 虚拟主机发布网站吗福州网站建设咨询
  • 徐州cms建站系统wordpress 支持手机
  • 帮别人做钓鱼网站犯法吗企业网络营销网站设计
  • 网站 微信认证凯里市网站建设
  • 做游戏网站多钱下载一个网站
  • 石家庄建站平台新楼盘
  • 淘宝商家网站建设什么网站可以用视频做背景
  • 网站要流量有什么用设计师接单赚钱平台
  • 北京华昊网站建设手机网站开发 图库类
  • 淘宝禁止了网站建设类为什么企业网站不是开源系统
  • 软件工程专业招聘网站大眼睛网站建设
  • 自己做海报的网站网站邮箱验证怎么做
  • 小游戏网站模板怎么找广告商接广告
  • 拓者室内设计网站宁波海曙网站开发
  • 怎么免费弄网站wordpress手机文章列表
  • 怎么做考试资料分享网站网站右侧浮动微信二维码
  • 设计类素材网站建设银行网站怎么不可登入
  • 网站建设的图片有出国做飞机求同行的网站