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

使用sentence-transformers遇KeyError:__version__错误,求解决办法及替代方案

解决KeyError: version及缺失rust_model.ot文件的问题

核心修复步骤

  • 重新完整下载模型:缺失rust_model.ot大概率是下载中断或文件损坏导致的。手动删除本地模型目录(默认路径为~/.cache/huggingface/hub/models--sentence-transformers--all-MiniLM-L6-v2),重新运行加载代码让sentence-transformers自动完整拉取所有文件;若手动下载,需确保包含rust_model.ot、config.json、model.safetensors等全部关键文件。
  • 验证config文件完整性:检查模型目录下的config.json是否存在"version"字段。该字段缺失是触发KeyError的直接原因,若config文件损坏,需重新下载官方完整的config.json文件。
  • 锁定兼容版本组合:即使已调整版本一致,也要确保使用经过验证的兼容组合,推荐:
    • sentence-transformers==2.2.2
    • transformers==4.26.1
    • torch==1.13.1
      执行命令pip install sentence-transformers==2.2.2 transformers==4.26.1 torch==1.13.1重新安装,规避版本不匹配引发的隐性问题。

替代方案

  • 换用同系列模型:若问题持续,可尝试all-MiniLM-L12-v2或all-MiniLM-L6-v1,这类模型结构相近,主题建模效果差异小,且文件完整性问题出现概率更低。
  • 手动实现编码逻辑:跳过sentence-transformers封装,直接用transformers加载模型组件自行实现句子编码:
    from transformers import AutoTokenizer, AutoModel
    import torch
    
    tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/all-MiniLM-L6-v2')
    model = AutoModel.from_pretrained('sentence-transformers/all-MiniLM-L6-v2')
    
    def encode_texts(texts):
        encoded_input = tokenizer(texts, padding=True, truncation=True, return_tensors='pt')
        with torch.no_grad():
            model_output = model(**encoded_input)
        # 取<[BOS_never_used_51bce0c785ca2f68081bfa7d91973934]>token均值作为句子嵌入向量
        sentence_embeddings = torch.mean(model_output.last_hidden_state, dim=1)
        return sentence_embeddings
    
    这种方式绕开sentence-transformers的版本依赖限制,可快速验证模型可用性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:52:41