
Elastic® 让你可以应用适合你的用例和 ML 专业水平的机器学习 (ML)。 你有多种选择:
使用内置模型可以让你获得开箱即用的价值,不需要你具备任何 ML 专业知识,而且你可以灵活地尝试不同的模型并确定哪种模型对你的数据表现最好。
我们将模型管理设计为可扩展到集群中的多个节点,同时确保高吞吐量和低延迟工作负载的良好推理性能。 这在一定程度上是通过授权摄取管道运行推理,并通过使用专用节点进行计算要求高的模型推理 —— 在摄取阶段,以及数据分析和搜索。
继续阅读以了解有关 Eland 库的更多信息,该库可让你将模型加载到 Elastic 中,以及它如何对你可能在 Elasticsearch® 中使用的各种类型的机器学习发挥作用 —— 从最新的 transformer 和自然语言处理 (NLP) 模型到提升 tree 回归模型。
我们的 Eland 库提供了一个简单的界面,可以将 ML 模型加载到 Elasticsearch 中 —— 前提是它们是使用 PyTorch 训练的。 使用原生库 libtorch,并期望已导出或保存为 TorchScript 表示的模型,Elasticsearch 避免在执行模型推理时运行 Python 解释器。
通过与 PyTorch 中用于构建 NLP 模型的最流行格式之一集成,Elasticsearch 可以提供一个可处理各种 NLP 任务和用例的平台。 我们将在接下来的 transformer 部分对此进行更多介绍。
你可以通过三种方式使用 Eland 上传模型:命令行、Docker 和你自己的 Python 代码。 Docker 不那么复杂,因为它不需要在本地安装 Eland 及其所有依赖项。 访问 Eland 后,下面的代码示例显示了如何上传 DistilBERT NER 模型,例如:

下面我们将详细介绍 eland_import_hub_model 的每个参数。 你可以从 Docker 容器发出相同的命令。
上传后,Kibana 的 ML 模型管理用户界面可让你管理 Elasticsearch 集群上的模型,包括增加额外吞吐量的分配,以及在(重新)配置系统时停止/恢复模型。
Elastic 支持多种 transformer 模型,以及最流行的监督学习库:
下面我们提供了有关你最有可能在搜索应用程序上下文中使用的模型类型的更多信息:NLP transformer。
让我们引导你完成加载和使用 NLP 模型的步骤,例如来自 Hugging Face 的流行 NER 模型,并检查以下代码片段中标识的参数。

加载模型后,接下来需要部署它。 你可以在 Kibana 中机器学习选项卡的模型管理屏幕上完成此操作。 然后,你通常会测试模型以确保其正常工作。
现在你已准备好使用部署的模型进行推理。 例如,要提取命名实体,你可以在加载的 NER 模型上调用 _infer 端点:

该模型识别两个实体:人 “Josh” 和地点 “Berlin”。

有关其他步骤,例如在推理管道中使用此模型和调整部署,请阅读描述此示例的博客。
想看看如何应用语义搜索 —— 例如,如何为文本创建嵌入,然后应用向量搜索来查找相关文档? 该博客逐步说明了这一点,包括验证模型性能。
不知道哪个模型的任务类型? 该表应该可以帮助你入门。
| Hugging Face Model | task-type |
|---|---|
| ner | |
| text_embedding | |
| text_classification | |
| zero_shot_classification | |
| Question answering | question_answering |
Elastic 还支持将两段文本彼此的相似程度作为 text_similarity 任务类型进行比较 —— 这对于在将文档文本与另一个提供的文本输入进行比较时对文档文本进行排名很有用,有时也称为交叉编码。
Elastic、Elasticsearch 和相关标记是 Elasticsearch N.V. 在美国和其他国家/地区的商标、徽标或注册商标。 所有其他公司和产品名称均为其各自所有者的商标、徽标或注册商标。
本博文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。