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

合肥网站建设教程网页制作主题成品

合肥网站建设教程,网页制作主题成品,wordpress tag标签,网站推广公司渠道推理端点对一次可处理的文本量有限,具体取决于模型的输入容量。分块(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/781651.html

相关文章:

  • 青海城乡建设厅网站黄金网站app软件下载安装
  • 卡易售网站建设淮南网站建设全包
  • 做网站买那种服务器好青岛建设集团官方网站
  • 用dw如何做网站首页网页设计教案
  • 火车票网站建设wordpress私信插件
  • 重庆网站建设公司哪个最好wordpress移动排版
  • 番禺网站制作 优帮云安徽网站建设服务平台
  • 娱乐建网站优盖网logo在线设计
  • 江门做网站那家公司好如何做360搜索网站
  • 网站建设流程渠道做网站准备材料
  • 网站开发合作意向书免费建站绑定域名
  • 恶意网站的防治wordpress教育平台
  • 调试网站解析域名影响怎么在企查查网站做企业认证
  • 桐乡哪里有做网站的院校网站建设对比分析实训报总结
  • 建设网站必备的三大要素生态建筑建设公司网站
  • 东莞网站建设公司招聘信息设计团队名称创意
  • 成都网站seo诊断门户网官网
  • 哪个视频网站做视频最赚钱百度推广关键词优化
  • 网站制作代码大全家居商城网站模板
  • 网站总是打不开做iframe跳转怎么自适应网站
  • 广西冶金建设公司网站个性婚纱摄影
  • 模板式自助建站dede导入wordpress
  • 如何做美发店网站公众号推广平台
  • 中华住房和城乡建设厅网站天津网站优化怎么样
  • 山西省建设局官方网站怎么自建网站
  • 做软件需要网站个人网站建设制作
  • 运河建设集团网站中信建设有限责任公司总监
  • 网站怎么注册一家专门做打折的网站
  • 做视频类型的网站常州市城乡建设局网站
  • 网站开发对企业的关键wordpress全站加密