You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用eland导入sentence-transformers模型至Elasticsearch后推理失败

问题描述

使用eland工具将文本嵌入模型sentence-transformers/msmarco-MiniLM-L12-cos-v5导入Elasticsearch后,模型推理功能无法正常运行:

执行的导入命令

eland_import_hub_model --url http://localhost:9200 --hub-model-id sentence-transformers/msmarco-MiniLM-L-12-v3 --task-type text_embedding --start

推理请求及错误响应

发送推理请求:

POST /_ml/trained_models/sentence-transformers__msmarco-minilm-l12-cos-v5/deployment/_infer
{
  "docs": {
    "text_field": "How is the weather in Jamaica?"
  }
}

返回500错误:

{
    "error": {
        "root_cause": [
            {
                "type": "status_exception",
                "reason": "Error in inference process: [inference canceled as process is stopping]"
            }
        ],
        "type": "status_exception",
        "reason": "Error in inference process: [inference canceled as process is stopping]"
    },
    "status": 500
}

Docker日志关键信息

日志显示pytorch_inference/336进程意外终止,触发段错误(si_signo 11),核心错误日志:

2024-05-16 14:47:55 {"@timestamp":"2024-05-16T12:47:55.413Z", "log.level":"ERROR", "message":"[sentence-transformers__msmarco-minilm-l12-cos-v5] pytorch_inference/336 process stopped unexpectedly: Fatal error: 'si_signo 11, si_code: 1, si_errno: 0, address: 0xffffb27ca140, library: /lib/aarch64-linux-gnu/libc.so.6, base: 0xffffb26bd000, normalized address: 0x10d140', version: 8.13.4 (build 8480947324d752)\n", ...}

同时日志提示API路由过时:

[POST /_ml/trained_models/{model_id}/deployment/_infer] is deprecated! Use [POST /_ml/trained_models/{model_id}/_infer] instead.

解决方案

1. 修正推理请求路由

按照日志提示使用最新的推理API路由,替换过时的请求:

POST /_ml/trained_models/sentence-transformers__msmarco-minilm-l12-cos-v5/_infer
{
  "docs": {
    "text_field": "How is the weather in Jamaica?"
  }
}

2. 解决段错误问题

段错误(si_signo 11)通常由内存访问异常、架构兼容或资源不足导致,尝试以下步骤:

(1)确认模型ID一致性

导入命令中使用的hub-model-id是sentence-transformers/msmarco-MiniLM-L-12-v3,但推理请求的模型ID是sentence-transformers__msmarco-minilm-l12-cos-v5,存在名称不匹配。删除现有模型并重新导入正确的模型:

# 删除错误导入的模型
curl -X DELETE http://localhost:9200/_ml/trained_models/sentence-transformers__msmarco-minilm-l12-cos-v5

# 重新导入目标模型
eland_import_hub_model --url http://localhost:9200 --hub-model-id sentence-transformers/msmarco-MiniLM-L12-cos-v5 --task-type text_embedding --start

(2)检查架构兼容性

日志显示运行环境为aarch64(ARM64)架构,Elasticsearch 8.13.4的PyTorch推理组件在ARM架构上可能存在兼容性问题。尝试:

  • 将Elasticsearch升级到最新稳定版本(如8.14.x及以上),新版本通常会修复架构兼容问题
  • 确认模型支持ARM64架构,或切换到x86_64环境测试

(3)增加资源配额

PyTorch进程崩溃可能是内存不足导致,调整Docker容器的内存限制:

  • 启动Elasticsearch容器时增加内存分配,例如:
    docker run -d -m 8g --name es -p 9200:9200 -e "discovery.type=single-node" elasticsearch:8.13.4
    
  • 导入模型时指定内存限制参数:
    eland_import_hub_model --url http://localhost:9200 --hub-model-id sentence-transformers/msmarco-MiniLM-L12-cos-v5 --task-type text_embedding --start --memory-limit 4g
    

(4)验证ML插件状态

确保Elasticsearch已启用xpack.ml功能,在elasticsearch.yml中确认:

xpack.ml.enabled: true

同时确保运行ES的节点满足ML节点的硬件要求(至少4GB内存,支持AVX2指令集的CPU,ARM架构需确认官方支持)。


内容的提问来源于stack exchange,提问作者Likealam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 01:39:51