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

山东淄博网站建设的公司关键词推广优化外包

山东淄博网站建设的公司,关键词推广优化外包,怎样做运营一个网站,wordpress支付功能推理端点对一次可处理的文本量有限,具体取决于模型的输入容量。分块(Chunking) 是指将输入文本拆分成符合这些限制的小块的过程,在将文档摄取到 semantic_text 字段时会进行分块。分块不仅有助于保持输入文本在可处理范围内&#…

推理端点对一次可处理的文本量有限,具体取决于模型的输入容量。分块(Chunking) 是指将输入文本拆分成符合这些限制的小块的过程,在将文档摄取到 semantic_text 字段时会进行分块。分块不仅有助于保持输入文本在可处理范围内,还能使内容更加易读。相比返回一整篇长文档,在搜索结果中提供最相关的文本片段更有价值。

每个分块都会包含 文本片段 以及 从中生成的对应嵌入

默认情况下,文档会被拆分为 句子(sentence),然后按 最多 250 个单词 进行分组,并且设置 1 句重叠,使得每个分块都会与前一个分块共享一个句子。这种重叠方式可以保持上下文的连续性,防止重要信息因硬性拆分而丢失。

Elasticsearch 使用 ICU4J 库来检测单词和句子的边界。在确定单词边界时,该库遵循一系列规则,而不仅仅依赖空格字符。对于像 中文或日文 这类不使用空格分隔单词的书写语言,系统会利用 字典查找 来识别单词边界。

分块策略

Elasticsearch 提供了 两种分块策略句子策略(sentence)单词策略(word)

  • 句子策略(sentence)
    该策略按 句子边界 拆分文本,每个分块包含一个或多个完整的句子,以确保句子级别的语境完整性。

    • 若某个句子导致分块超出 max_chunk_size 设定的单词数上限,该句子会被拆分至多个分块中。
    • sentence_overlap 选项控制前一个分块中的 多少个句子 应该包含在当前分块中,可选值为 0 或 1
  • 单词策略(word)
    该策略按 单词 拆分文本,直至 max_chunk_size 限制。

    • overlap 选项控制当前分块应包含前一个分块中的 多少个单词

默认分块策略句子策略(sentence)

注意:对于 8.16 版本之前创建的推理端点,默认的分块策略是 单词策略(word)

可以在文章 “Elasticsearch:使用阿里 infererence API 及 semantic text 进行向量搜索” 查看更为详尽的示例。

安装

Elasticsarch 及 Kibana

 我们首先需要安装 Elasticsearch 及 Kibana。我们可以参考如下的文章来进行安装:

  • 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch

  • Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana

当我们安装的时候,选择 Elastic Stack 8.x 的文章来进行安装。在本展示中,我们将使用 Elastic Stack 8.17.2 来进行展示。当我们首次运行 Elasticsearch 时,我们可以看到如下的界面:

请记下上面的 elastic 超级用户的密码,以备在下面进行使用。

下载代码

为了展示方便,我们在地址 https://github.com/liu-xiao-guo/elasticsearch-labs/blob/main/notebooks/document-chunking/configuring-chunking-settings-for-inference-endpoints.ipynb下载最新的代码。

拷贝证书

为了能够使得我们的代码能够正常工作,我们必须拷贝 Elasticsearch 的证书:

cp ~/elastic/elasticsearch-8.17.2/config/certs/http_ca.crt .
$ pwd
/Users/liuxg/python/elasticsearch-labs-liuxg/notebooks/document-chunking
$ cp ~/elastic/elasticsearch-8.17.2/config/certs/http_ca.crt .

创建一个 .env 文件

我们还需要创建一个叫做 .env 的本地文件,并置于项目的根目录下:

ES_USER="elastic"
ES_PASSWORD="zhHdJmd5oBEVwEfoH2Cr"
ES_ENDPOINT="localhost"
$ pwd
/Users/liuxg/python/elasticsearch-labs-liuxg/notebooks/document-chunking
$ cat .env
ES_USER="elastic"
ES_PASSWORD="zhHdJmd5oBEVwEfoH2Cr"
ES_ENDPOINT="localhost"

你需要根据自己的 Elasticsearch 安装进行相应的修改。

安装 Python 依赖项

pip3 install elasticsearch python-dotenv 

安装  ELSER 模型

你可以参考文章 “部署 ELSER - Elastic Learned Sparse EncoderR”。最后,我们可以看到如下的页面:

代码展示

我们使用 jupyter 打开我们的笔记本:

jupyter notebook configuring-chunking-settings-for-inference-endpoints.ipynb

建立 Elasticsearch 客户端连接

from elasticsearch import Elasticsearch
from dotenv import load_dotenv
import osload_dotenv()ES_USER= os.getenv("ES_USER")
ES_PASSWORD = os.getenv("ES_PASSWORD")
ES_ENDPOINT = os.getenv("ES_ENDPOINT")url = f"https://{ES_USER}:{ES_PASSWORD}@{ES_ENDPOINT}:9200"
client = Elasticsearch(url, ca_certs = "./http_ca.crt", verify_certs = True)print(es.info())

创建推理端点对象

让我们使用 Create Inference API 创建推理端点。

在此示例中,你将为 ELSER 集成创建一个推理端点,该端点将在你的集群中部署 Elastic 的 ELSER 模型。对于任何具有嵌入任务类型的推理端点,分块设置都是可配置的。完整的可用集成列表可在 Create Inference API 文档中找到。

要配置分块设置,请在请求体中包含一个 chunking_settings 映射,其中包含 strategy 值以及所选分块策略的任何必需值。在本示例中,你将为 sentence 策略配置分块设置,最大分块大小为 25 个单词,每个分块与前一个分块重叠 1 个句子。有关可用分块策略及其可配置值的更多信息,请参阅分块策略文档。

import requeststry: client.inference.put(task_type="sparse_embedding",inference_id="my_elser_endpoint",body={"service": "elasticsearch","service_settings": {"num_allocations": 1,"num_threads": 1,"model_id": ".elser_model_2",},"chunking_settings": {"strategy": "sentence","max_chunk_size": 25,"sentence_overlap": 1,},},)
except Exception as e:print(f"Error: {e}")

创建索引

要查看你配置的分块设置如何生效,需要将文档摄取到索引的 semantic_text 字段中。让我们创建一个索引,其中包含一个 semantic_text 字段,并将其链接到上一步创建的推理端点。

client.indices.create(index="my_index",mappings={"properties": {"infer_field": {"type": "semantic_text","inference_id": "my_elser_endpoint",}}},
)

摄入一个文档

现在,让我们将一个文档摄取到上一步创建的索引中。

注意:Elasticsearch 在创建推理端点时会启动 ELSER 模型部署,分配节点可能需要一些时间。在执行以下请求之前,你需要等待部署被分配到节点。

client.index(index="my_index",document={"infer_field": "This is some sample document data. The data is being used to demonstrate the configurable chunking settings feature. The configured chunking settings will determine how this text is broken down into chunks to help increase inference accuracy."},
)

查看分块

生成的分块及其对应的推理结果存储在索引中文档的 _inference_fields 元字段下的 chunks 键中。这些分块以字符偏移值列表的形式存储。让我们查看在上一步摄取文档时生成的分块。

为了能够看得清楚我们的分块,我们在 Kibana 中使用如下的命令:

http://www.dtcms.com/wzjs/307583.html

相关文章:

  • 资海网站建设2345浏览器网站进入
  • 求推荐软件毕设代做靠谱网站内容营销策略
  • 自己的网站怎么做模板2023最近的新闻大事10条
  • 哪里找需要网站建设的市场营销咨询
  • 给个能看的网站企业网站的基本功能
  • 网络编程技术基础win7优化大师官方网站
  • 做pc端网站流程怎么开通百度推广账号
  • 织梦网站自动跳转手机网站百度知道网址
  • 长沙网页制作企业南京百度seo公司
  • 千户微建站平台搜索引擎网址有哪些
  • 动地科技登录网站软文写作经验是什么
  • 广昌网站建设百度平台客服
  • 团购网站APP怎么做搜索引擎有哪几个网站
  • 做网站的公司有前途吗网站策划是干什么的
  • 网站开发规划书全球搜钻
  • 做网站公司推荐微信视频号小店
  • 产品推广网站模板免费广告投放平台
  • 做公司网站建设价格低浏览器下载安装
  • 小程序制作页面教程网站优化推广方案
  • 深圳网站制作公司讯息南京seo排名收费
  • 宝鸡网站开发小红书seo是什么
  • 建设网站的申请信用卡分期付款一键搭建网站
  • 邵阳网站制作chrome下载
  • 电子商务网站开发是指百度我的订单app
  • 网站开发需求文档网络营销十大成功案例
  • 什么网站可以找到手工活做百度网址入口
  • 个人网站做多久有效果企业管理培训
  • 建立学校网站热狗seo顾问
  • 有没有做减压的网站南宁白帽seo技术
  • 中国电力建设集团网站群百度权重网站排名