代码之家  ›  专栏  ›  技术社区  ›  CSe

ImportError:安装InstructionorEmbedding时找不到它的依赖项

  •  0
  • CSe  · 技术社区  · 1 年前

    我已经安装 InstructorEmbedding ,但它一直给我错误,在jupyter笔记本环境中使用Python 3.12(我也在3.11中尝试过)。内核重新启动没有帮助。

    import torch
    from langchain.embeddings import HuggingFaceInstructEmbeddings
    
    DEVICE = "cuda:0" if torch.cuda.is_available() else "cpu"
    
    
    embedding = HuggingFaceInstructEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2", model_kwargs={"device": DEVICE})
    

    错误

    ---------------------------------------------------------------------------
    ModuleNotFoundError                       Traceback (most recent call last)
    File /opt/conda/lib/python3.11/site-packages/langchain_community/embeddings/huggingface.py:151, in HuggingFaceInstructEmbeddings.__init__(self, **kwargs)
        150 try:
    --> 151     from InstructorEmbedding import INSTRUCTOR
        153     self.client = INSTRUCTOR(
        154         self.model_name, cache_folder=self.cache_folder, **self.model_kwargs
        155     )
    
    File /opt/conda/lib/python3.11/site-packages/InstructorEmbedding/__init__.py:1
    ----> 1 from .instructor import *
    
    File /opt/conda/lib/python3.11/site-packages/InstructorEmbedding/instructor.py:9
          8 from torch import Tensor, device
    ----> 9 from sentence_transformers import SentenceTransformer
         10 from sentence_transformers.models import Transformer
    
    ModuleNotFoundError: No module named 'sentence_transformers'
    
    The above exception was the direct cause of the following exception:
    
    ImportError                               Traceback (most recent call last)
    Cell In[2], line 10
          4 DEVICE = "cuda:0" if torch.cuda.is_available() else "cpu"
          6 #loader = PyPDFDirectoryLoader("aircraft_pdfs")
          7 #docs = loader.load()
          8 #print(len(docs))  # length of all pages together
    ---> 10 embedding = HuggingFaceInstructEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2", model_kwargs={"device": DEVICE})
    
    File /opt/conda/lib/python3.11/site-packages/langchain_community/embeddings/huggingface.py:157, in HuggingFaceInstructEmbeddings.__init__(self, **kwargs)
        153     self.client = INSTRUCTOR(
        154         self.model_name, cache_folder=self.cache_folder, **self.model_kwargs
        155     )
        156 except ImportError as e:
    --> 157     raise ImportError("Dependencies for InstructorEmbedding not found.") from e
    
    ImportError: Dependencies for InstructorEmbedding not found.
    

    这是的输出 pip freeze

    transformers==4.37.2
    torch==2.2.0
    langchain==0.1.6
    InstructorEmbedding==1.0.1
    ...
    
    1 回复  |  直到 1 年前
        1
  •  1
  •   Ro.oT    1 年前

    我想你也需要安装 。请尝试通过以下方式安装:

    pip install -U sentence-transformers==2.2.2
    

    然后运行您的代码。请确保安装版本 2.2.2 否则,您将出现以下错误:

    TypeError: INSTRUCTOR._load_sbert_model() got an unexpected keyword argument 'token'
    

    这似乎是的最新版本 sentence-transformers 有一些 compatibility issues .