文档

阿里云ES机器学习

更新时间:

Elasticsearch(简称ES)机器学习是一种利用机器学习技术对ES数据进行分析和预测的工具和框架。NLP在ES中的应用,使得ES具备了情感分析、实体识别、文本分类和QA问答等机器学习能力,可以提升ES搜索体验能力和降低ES使用难度。本文介绍机器学习的应用、text embedding在ES中的应用和ES Eland。

背景信息

ES是基于Lucene的搜索引擎,提供了全文搜索功能和许多其他的扩展功能,其中包括机器学习ML(Machine Learning),机器学习ML主要用于对时间序列数据的异常检测(Anomaly Detection)、预测性分析和其他相关分析上。随着ES 8.x版本不断丰富ML特性,例如与BERT等更多技术结合、支持NLP任务等,机器学习提供了基于情感分析、实体识别、文本分类和以及问答系统QA(Question and Answering)等场景的应用,NLP在ES中的应用可以提升ES搜索体验能力及降低使用难度。

ES ML应用

类型

解释

实战文档

异常检测

主要用于识别时间序列数据中的异常行为,属于无监督学习,如日志文件、金融交易等。ES使用统计模型来检测数据中的离群点和不寻常模式。

创建推理机器学习任务

基于Data frame 的回归与分类

允许对结构化数据进行分类和回归分析,属于有监督学习,适合于那些已经明确了问题定义和相应数据标签的场景。

自然语言处理(NLP)任务

可以与其他NLP和机器学习工具集成,以支持例如文本分类、实体识别等任务。支持使用以BERT模型结构和WordPiece分词算法的Transformer模型。

说明

不同的ES版本在框架支持上存在差异,请以社区版本为准,一般情况下,任何按照支持架构训练的模型都可以通过Eland在ES中部署,以模型及接口兼容性测试为准。

text embedding在ES中的应用

检索是ES的核心功能之一,全文搜索和分析均依赖底层的检索能力,能够快速精确的从海量数据中搜索出所需信息。ES提供了多种内置的文本分析器和分词器,如标准分词器、N-gram分词器、拼音分词器等,主要基于文本的字面形式进行分析和索引,缺乏语义理解,上下文感知,歧义消除等能力。为了克服这些限制,可以将ES与text embedding模型相结合,这些模型能够基于上下文提供更丰富的语义表示,并能更好地处理词义歧义问题,提高搜索和分析的质量,实现更深层次的语义理解和上下文感知能力。

阿里云ES 7.11及以上版本支持将第三方text embedding模型上传到ES,与ES Ingest结合使用,在建立索引之前基于模型能力实现文本信息向量转换。当然,也可借助外部的服务(如阿里云DashScope灵积)在ES集群外完成文本向量数据的转换,再写入ES,这种方式可降低ES集群预处理压力,降低ES资源占用,提高写入和查询的稳定性,不同模型在不同的基准测试和任务上的性能表现不同,请结合场景选择,下面是基于两种转向量方式的场景实战:

工具

实战文档

阿里云DashScope灵积

通过阿里云灵积服务实现文本数据向量化

Eland

ES Eland介绍

Eland是一个ES的Python客户端,提供了一个集成解决方案,支持将Hugging Face Transformer库中的预训练模型转换为TorchScript表示形式(可以在没有Python解释器的环境中运行模型),处理模型分块过程及将模型导入到ES中。

Eland功能上传模型功能属于ES白金版及企业版能力,阿里云ES默认支持白金版许可,您可以直接通过Eland完成模型的上传。Eland导入模型支持离线和在线两种方式,目前社区主推导入来自Hugging Face的模型,请参见通过Eland上传第三方NLP模型

说明

ES 7.11及以上版本集群开始支持Eland,ES与Eland版本兼容性以官方为准

  • 本页导读 (1)
文档反馈