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

AWS SageMaker部署Hugging Face嵌入模型端点输出异常求助

问题描述

在AWS SageMaker部署Hugging Face的sentence-transformers/all-MiniLM-L12-v2文本嵌入模型时,部署成功但输出不符合预期:期望每个输入字符串输出1×384的浮点列表,实际得到每个句子对应7×384的列表。当前代码如下:

import sagemaker
from sagemaker.huggingface.model import HuggingFaceModel

role = sagemaker.get_execution_role()

# Hub Model configuration
hub = {
  'HF_MODEL_ID':'sentence-transformers/all-MiniLM-L12-v2',
  'HF_TASK':'feature-extraction' # 当前使用的任务类型
}

# create Hugging Face Model Class
huggingface_model = HuggingFaceModel(
    env=hub,
    role=role,
    py_version='py36',
    transformers_version="4.6",
    pytorch_version="1.7",
)

predictor = huggingface_model.deploy(
    initial_instance_count=1,
    instance_type="ml.m5.xlarge"
)

data = {
"inputs": ["This is an example sentence", "Each sentence is converted"]
}

result = predictor.predict(data)
print(len(result[0]))
print(result[0])
问题原因

确实是任务类型选错了:

  • feature-extraction任务会返回输入文本中每个token对应的嵌入向量,所以你看到的7×384是句子中包含的token数量(含[CLS]、[SEP]等特殊token)乘以模型维度。
  • sentence-transformers系列模型专门用于生成句子级嵌入,需要对应使用sentence-similarity任务,该任务会自动对token嵌入做池化处理(如均值池化或取[CLS] token),最终输出单条1×384的句子嵌入。
解决方案

修改hub配置中的HF_TASK为sentence-similarity即可,同时建议升级transformers和pytorch版本到更兼容的版本,避免版本兼容问题:

import sagemaker
from sagemaker.huggingface.model import HuggingFaceModel

role = sagemaker.get_execution_role()

# Hub Model configuration - 修改任务类型
hub = {
  'HF_MODEL_ID':'sentence-transformers/all-MiniLM-L12-v2',
  'HF_TASK':'sentence-similarity' # 改为句子相似度任务
}

# create Hugging Face Model Class - 升级版本
huggingface_model = HuggingFaceModel(
    env=hub,
    role=role,
    py_version='py38',
    transformers_version="4.26",
    pytorch_version="1.13",
)

predictor = huggingface_model.deploy(
    initial_instance_count=1,
    instance_type="ml.m5.xlarge"
)

data = {
"inputs": ["This is an example sentence", "Each sentence is converted"]
}

result = predictor.predict(data)
print(len(result[0])) # 输出384
print(result[0]) # 1×384的浮点列表
补充说明

如果坚持使用feature-extraction任务,也可以在预测后对token嵌入手动做均值池化(排除特殊token),但直接使用sentence-similarity任务是最简便且符合模型设计的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:07:19