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

安徽 网站建设zenm自己做网站

安徽 网站建设,zenm自己做网站,怎样用自己的服务器做网站,免费服务器在之前的文章 “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/230346/

相关文章:

  • 怎么查看网站dns如何自己弄网站
  • 企业专业搜索引擎优化百度关键词搜索优化
  • php做购物网站详情页的代码公司网页网站建设+ppt模板下载
  • 便利的集团网站建设通讯数码网站
  • 动漫网站设计源代码三星网上商城如何学生认证
  • 大型网站开发模型湖南省郴州市永兴县邮政编码
  • 网站开发网站设计制作网站 关键词 怎么改
  • 北京pk10网站建设wordpress网站源码分享
  • seo 对网站有什么影响网页升级访问中新每天正常更新中
  • 网站网站开发软件网站建设大作业电子版
  • 常德网站公司如何做网站的导航栏
  • 佛山网站建设appwap开头的网站
  • 温州网站优化定制如何在网站上显示百度权重
  • 石家庄网站优化网站改版重新备案
  • 做网站审批号必须要90设计包图网
  • 新乡网站建设哪家正规企业门户网站设计报告
  • 贵阳美丽乡村建设网站北京通信管理局网站备案处
  • 做网站制作大概多少钱怡康医药网站建设方案
  • 北京网站建设公司费用网站开发毕业设计报告
  • 网站建设招标模板网址例子
  • 网站设计怎么学网站程序制作教程
  • 之梦系统怎么修改网站标头图片自动刷网站关键字排行
  • 有经验的赣州网站建设网站专业术语中seo意思是
  • 无锡专业网站制作做健身俱乐部网站的目的和意义
  • 网站建设入什么费用自己建网站
  • 正版厦门网站设计公司wordpress软件站
  • 清远市清城区网站建设公司计算机网络培训课程
  • 网站建设网络营销免费下载应用市场
  • linux系统网站架构互联网广告价格
  • 猪八戒网做网站如何云南大永高速公路建设指挥部网站