暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

深入解析 Elasticsearch Inference API

新智锦绣 2025-08-21
219

点击蓝字关注我们


在人工智能时代,搜索和数据分析正朝着智能化、语义化的方向迅猛发展。作为全球领先的分布式搜索和分析引擎,Elasticsearch 在其企业版中引入了 Inference API,这是一个专为 AI 集成设计的接口。它不仅支持第三方提供商的嵌入(embeddings)、重排序(reranking)和大型语言模型(LLM),还允许自托管模型,并包括 Elastic 自身托管的 LLM。截至 2025 年 8 月,这项 API 已扩展支持更多提供商和任务类型,如新增对 IBM watsonx.ai rerank 模型、Jina AI 嵌入与 rerank、Mistral AI 嵌入等集成。今天,我们就来详细剖析这个功能,帮助开发者、企业用户更好地利用它构建高效的 AI 驱动应用。


一、Inference API 概述


Elasticsearch Inference API 是 Elastic Stack 中的一项高级功能,主要用于将机器学习模型集成到搜索管道中。它提供了一个统一的接口,让用户可以轻松调用各种 AI 模型进行推理任务,而无需手动管理底层基础设施。这项 API 最早在 Elasticsearch 8.x 版本中引入,并在后续更新中不断增强。截至 2025 年,它已成为构建语义搜索、RAG(Retrieval-Augmented Generation)系统和 AI 助手的必备工具。

简单来说,Inference API 充当了一个“桥梁”,连接 Elasticsearch 的数据存储与外部或内部的 AI 模型。它支持 NLP(自然语言处理)相关的任务,如文本嵌入生成、结果重排序和生成式响应,从而提升搜索的准确性和相关性。与传统的机器学习训练模型 API 不同,Inference API 更注重实时推理和灵活集成,特别适合企业级场景。

它支持的任务类型包括:

  • text_embedding(密集向量嵌入)

  • sparse_embedding(稀疏向量嵌入)

  • rerank(重排序)

  • completion

  • chat_completion(生成式完成)

Inference API 的演进历史值得一提。从 Elasticsearch 8.11 开始,它首次支持 Hugging Face 集成,随后在 8.13 中添加 Cohere 嵌入支持。进入 2025 年,更新包括 Jina AI 的多语言嵌入和 rerank、IBM watsonx.ai 的 rerank 模型,以及 Ollama 的本地 LLM 集成。这些更新使 API 更适应多语言和多模态场景。


二、支持的核心功能:嵌入、重排序与 LLM


Inference API 的强大在于其多功能支持,覆盖了 AI 搜索管道的关键环节。以下是其主要功能点:


1. 嵌入(Embeddings)


嵌入是将文本转换为向量表示的过程,用于语义搜索。Inference API 支持生成高维向量嵌入,帮助 Elasticsearch 处理非结构化数据。

  1. 第三方嵌入:可以集成 OpenAI、Cohere、Azure OpenAI、Google AI Studio、Hugging Face、Jina AI、Mistral AI、IBM watsonx.ai、Voyage AI 等提供商的模型。例如,使用 Cohere 的 embed-english-v3.0 模型,可以快速将查询文本转化为向量,并在 Elasticsearch 的向量搜索中匹配相似内容。

  2. 自托管嵌入:通过 Elastic 的 Eland 工具,用户可以上传自定义模型到 Elasticsearch 集群,实现自管嵌入。这适合对数据隐私有严格要求的企业,避免将敏感数据发送到外部服务。Eland 支持从 Hugging Face 导入模型,如 msmarco-MiniLM-L-12-v3。

  3. Elastic 托管嵌入:包括 ELSER(Elastic Learned Sparse Encoder,用于稀疏嵌入)和 E5(密集嵌入模型),这些模型在 Elastic Cloud 上托管,支持高效的语义表示。

  4. 嵌入还支持 chunking(分块)功能,例如在 Hugging Face 集成中,API 可以自动处理长文本的分块,以提升嵌入质量。


2. 重排序(Reranking)


重排序是优化搜索结果的步骤,它在初始检索后,使用 AI 模型重新评估结果的相关性,提高“Top N”结果的精度。

  1. 第三方重排序:支持 Cohere Rerank 3、IBM watsonx.ai rerank、Google Vertex AI semantic-ranker-512、Jina AI reranker-v2 等模型。Cohere Rerank 3 可以处理多语言查询,提供更精确的排名,而 IBM watsonx.ai 专注于企业级 rerank,提升搜索体验。

  2. 自托管重排序:用户可以通过 Eland 上传自己的 rerank 模型,实现自定义逻辑。

  3. Elastic 集成:API 支持创建 rerank 端点,直接在 Elasticsearch 中配置机器学习模型,实现无缝重排序。2025 年的新功能包括 retrievers 支持,用于简化多阶段检索管道。


3. 大型语言模型(LLM)


LLM 支持是 Inference API 的亮点之一,用于生成式任务,如聊天完成、摘要生成等。

  1. 第三方 LLM:兼容 OpenAI、Azure、Google Vertex AI、Anthropic、Mistral 等提供商。开发者可以调用这些模型进行 chat completion,实现 AI 助手功能。

  2. 自托管 LLM:通过 Eland,用户可以部署本地 LLM 模型(如 Ollama),避免外部依赖。

  3. Elastic 托管的 LLM:Elastic 提供托管服务,如 ELSER 和 Elastic 管理的 LLM。这些是 Elastic 云端托管的模型,专为稀疏编码和高效推理设计,支持无缝集成到搜索管道中,无需额外配置。ELSER 特别适合语义搜索场景,能处理大规模数据而保持低延迟。

这些功能可以通过 Inference API 的端点统一调用,例如 `/_inference/{task_type}/{inference_id}`,其中 task_type 可以是 `embeddings`、`rerank` 或 `completion`。


三、支持的提供商与集成方式


Inference API 的灵活性体现在其广泛的提供商支持上。截至 2025 年,主要包括:

  1. 第三方提供商:AlibabaCloud AI Search、Amazon Bedrock、Azure AI Studio、Azure OpenAI、Cohere、Google AI Studio、Google Vertex AI、Hugging Face、IBM watsonx.ai、Jina AI、Mistral AI、OpenAI、Voyage AI 等。这些提供商通过 API 密钥集成,用户只需在 Elasticsearch 配置中添加凭证即可。

  2. 自托管模型:使用 Eland(Elastic Machine Learning Python Client)上传模型。Eland 支持从 Hugging Face 等来源导入模型,然后部署到 Elasticsearch ML 节点。

  3. Elastic 托管:在 Elastic Cloud 上,用户可以直接使用托管的 ELSER 或 E5 模型,无需手动部署。2025 年的更新进一步增强了对 Jina AI 和 IBM rerank 的支持,扩展了多语言和企业级应用。

集成步骤大致如下:

  1. 在 Kibana 或 API 中创建 inference 端点:`PUT _inference/{task_type}/{inference_id}`,指定提供商和服务设置。

  2. 配置模型参数,如 API 密钥、模型名称、task_settings(如 max_chunk_size 用于分块)。

  3. 在搜索查询中使用:例如,在 `_search` API 中添加 `inference` 管道或 retriever。


四、使用示例


让我们通过实际代码示例来演示 Inference API 的用法。假设使用 Kibana Dev Console 或 Python 客户端。

 示例 1: 创建嵌入端点(使用 Cohere)

    PUT _inference/text_embedding/cohere_embeddings
    {
      "service""cohere",
      "service_settings": {
        "api_key""your_cohere_api_key",
        "model_id""embed-english-v3.0",
        "embedding_type""byte"
      }
    }

    这会创建一个嵌入端点,用于生成字节类型的向量嵌入。

    示例 2: 在搜索中使用嵌入

      POST my_index/_search
      {
        "knn": {
          "field""text_embedding",
          "query_vector_builder": {
            "text_embedding": {
              "model_id""cohere_embeddings",
              "model_text""user query here"
            }
          },
          "k": 10,
          "num_candidates": 50
        }
      }

      这结合了 kNN 搜索,使用嵌入模型生成查询向量。

      示例 3: 创建 Rerank 端点(使用 Jina AI)

        PUT _inference/rerank/jina_rerank
        {
          "service""jinaai",
          "service_settings": {
            "api_key""your_jina_api_key",
            "model_id""jina-reranker-v2-base-multilingual"
          },
          "task_settings": {
            "top_n": 10,
            "return_documents"true
          }
        }

        然后在搜索管道中使用:

          POST my_index/_search
          {
            "query": { "match": { "text""query" } },
            "rescore": {
              "query": {
                "rescore_query": {
                  "inference": {
                    "id""jina_rerank",
                    "query""query text"
                  }
                }
              }
            }
          }

          这优化了初始 BM25 结果的重排序。

          示例 4: LLM Completion(使用 OpenAI)

            PUT _inference/completion/openai_completion
            {
              "service""openai",
              "service_settings": {
                "api_key""your_openai_key",
                "model_id""gpt-4"
              }
            }

            使用:

              POST _inference/completion/openai_completion
              {
                "input""Complete this sentence: Elasticsearch is..."
              }

              返回生成式响应。

              Python 客户端示例(使用 Cohere Rerank)

              使用 elasticsearch-py 库:

                from elasticsearch import Elasticsearch
                client = Elasticsearch("https://your-es-host", api_key="your_api_key")

                创建 Rerank 端点

                  client.inference.put(
                      task_type="rerank",
                      inference_id="cohere_rerank",
                      body={
                          "service""cohere",
                          "service_settings": {"api_key""your_key""model_id""rerank-english-v3.0"}
                      }
                  )

                  执行 Rerank

                    response = client.inference.rerank(
                        inference_id="cohere_rerank",
                        body={
                            "query""What is biosimilarity?",
                            "input": ["doc1 text""doc2 text"]
                        }
                    )
                    print(response)

                    这展示了 Python 客户端的便利性。

                    Elastic AI Assistant 就是一个典型应用,它利用 Inference API 与 LLM 集成,帮助用户分析日志和数据。


                    五、优势、挑战与解决方案


                    Inference API 的优势在于:

                    • 灵活性:支持混合使用第三方、自管和托管模型,适应不同隐私和成本需求。

                    • 性能:实时推理,低延迟,适合大规模生产环境。通过 scalar quantization 压缩向量,节省存储。

                    • 安全性:企业版提供加密和访问控制,确保数据安全。

                    • 扩展性:与 Elastic 的向量搜索、AIOps 结合,构建完整的 RAG 系统。支持 hybrid search(结合 BM25 和向量搜索)。

                    然而,也存在挑战:

                    • 资源消耗:每个端点需要 ML 节点分配,建议避免重复创建模型。

                    • API 密钥管理:第三方集成需小心处理密钥泄露。

                    • 模型部署延迟:首次创建端点时,可能需等待模型下载和分配(检查状态使用 `_ml/trained_models/_stats` API)。

                    • 解决方案:使用 Elastic Cloud 自动缩放,结合 retrievers 简化多阶段查询。


                    六、实际应用场景与案例


                    应用场景包括:

                    • 企业搜索:如使用 Cohere Rerank 优化内部知识库搜索,提高员工效率。

                    • 聊天机器人:集成 OpenAI LLM 实现自然对话。

                    • 威胁检测:在 SIEM 中使用 IBM rerank 分析日志,提升安全响应。

                    • 推荐系统:结合 Jina AI 多语言嵌入,构建全球电商推荐。

                    一个真实案例:Elastic 支持 Hub 使用语义搜索,集成 Inference API 与 Cohere 嵌入,处理 MS MARCO 数据集,提高查询精度 20%。另一个是 Google Vertex AI 集成,用于 RAG 应用,结合 text-embedding-004 和 semantic-ranker-512,实现科学解释查询如“Why is the sky blue?”的精确结果。

                    随着 2025 年 Elasticsearch 9.x 的推进,Inference API 将进一步支持更多提供商(如潜在的 Anthropic 扩展)和功能,如自动 chunking 增强和 retrievers 的成熟。这将使 RAG 系统更易构建,降低开发者门槛。Elastic 致力于开源创新,未来可能引入更多本地 LLM 支持,如通过 Ollama 的无缝集成。


                    六、总结


                    Elasticsearch Inference API 是 Elastic 生态中一颗璀璨的明珠,它让 AI 集成变得简单高效。无论是初次尝试的开发者,还是寻求企业级解决方案的团队,都能从中获益。


                    关于公司

                    感谢您关注新智锦绣科技(北京)有限公司!作为 Elastic 的 Elite 合作伙伴及 EnterpriseDB 在国内的唯一代理和服务合作伙伴,我们始终致力于技术创新和优质服务,帮助企业客户实现数据平台的高效构建与智能化管理。无论您是关注 Elastic 生态系统,还是需要 EnterpriseDB 的支持,我们都将为您提供专业的技术支持和量身定制的解决方案。


                    欢迎关注我们,获取更多技术资讯和数字化转型方案,共创美好未来!

                    Elastic 微信群

                    EDB 微信群


                    发现“分享”“赞”了吗,戳我看看吧





                    文章转载自新智锦绣,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论