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

如何在Anaconda环境中运行sentence-transformers的all-mpnet-base-v2模型?

问题

我正尝试在Python 3.8的Anaconda环境中,使用sentence-transformers 1.2.1运行all-mpnet-base-v2模型。

最初使用以下代码加载模型:

bert_model = SentenceTransformer('all-mpnet-base-v2')

下载模型后出现错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\sentence_transformers\SentenceTransformer.py", line 115, in __init__
    module = module_class.load(os.path.join(model_path, module_config['path']))
  File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\sentence_transformers\models\Transformer.py", line 115, in load
    return Transformer(model_name_or_path=input_path, **config)
  File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\sentence_transformers\models\Transformer.py", line 29, in __init__
    config = AutoConfig.from_pretrained(model_name_or_path, **model_args, cache_dir=cache_dir)
  File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\transformers\configuration_auto.py", line 275, in from_pretrained
    config_class = CONFIG_MAPPING[config_dict["model_type"]]
KeyError: 'mpnet'

之后尝试使用完整标识加载模型:

bert_model = SentenceTransformer('sentence-transformers/all-mpnet-base-v2')

出现404下载错误及后续OSError:

Exception when trying to download http://sbert.net/models/sentence-transformers/all-mpnet-base-v2.zip. Response 404
SentenceTransformer-Model http://sbert.net/models/sentence-transformers/all-mpnet-base-v2.zip not found. Try to create it from scratch
Try to create Transformer Model sentence-transformers/all-mpnet-base-v2 with mean pooling
Traceback (most recent call last):
  File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\sentence_transformers\SentenceTransformer.py", line 79, in __init__
    http_get(model_url, zip_save_path)
  File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\sentence_transformers\util.py", line 242, in http_get
    req.raise_for_status()
  File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\requests\models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://public.ukp.informatik.tu-darmstadt.de/reimers/sentence-transformers/v0.2/sentence-transformers/all-mpnet-base-v2.zip
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\transformers\configuration_utils.py", line 353, in get_config_dict
    raise EnvironmentError
OSError

During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\sentence_transformers\SentenceTransformer.py", line 95, in __init__
        transformer_model = Transformer(model_name_or_path)
      File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\sentence_transformers\models\Transformer.py", line 29, in __init__
        config = AutoConfig.from_pretrained(model_name_or_path, **model_args, cache_dir=cache_dir)
      File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\transformers\configuration_auto.py", line 272, in from_pretrained
        config_dict, _ = PretrainedConfig.get_config_dict(pretrained_model_name_or_path, **kwargs)
      File "C:\Users\hoang\AppData\Local\R-MINI~1\envs\py38\lib\site-packages\transformers\configuration_utils.py", line 362, in get_config_dict
        raise EnvironmentError(msg)
    OSError: Can't load config for 'sentence-transformers/all-mpnet-base-v2'. Make sure that:
    
    - 'sentence-transformers/all-mpnet-base-v2' is a correct model identifier listed on 'https://huggingface.co/models'
    
    - or 'sentence-transformers/all-mpnet-base-v2' is the correct path to a directory containing a config.json file
解决方案

问题根源在于依赖库版本过旧:

  1. KeyError: 'mpnet'是因为当前使用的transformers版本不支持MPNet模型,旧版本的CONFIG_MAPPING里没有mpnet的配置项。
  2. 404错误是因为sentence-transformers 1.2.1版本太老,模型的官方下载路径已经变更,且对模型标识的处理逻辑不完善。

解决步骤如下:

  • 升级依赖库到兼容版本
    激活你的Anaconda环境后,运行以下命令升级:
    # 使用conda升级
    conda install -c conda-forge transformers>=4.0 sentence-transformers>=2.0
    # 或者用pip升级
    pip install --upgrade transformers sentence-transformers
    
  • 重新加载模型
    升级完成后,直接使用最初的代码即可正常加载模型:
    bert_model = SentenceTransformer('all-mpnet-base-v2')
    

如果因为环境限制无法升级大版本,可尝试手动下载模型到本地,再从本地路径加载:

  1. 手动下载all-mpnet-base-v2模型文件到本地目录
  2. 使用本地路径加载:
    bert_model = SentenceTransformer('/path/to/local/all-mpnet-base-v2')
    

内容的提问来源于stack exchange,提问作者Hoang Cuong Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:57:15