我已经安装了InstructorEmbedding,但在使用Python3.12的jupyter笔记本环境中(我也在3.11中try 过),它一直给我提示错误.内核重启无济于事.

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
...

推荐答案

I think you would also need to install . Try installing it via:

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个.

Python相关问答推荐

Python 3.12中的通用[T]类方法隐式类型检索

使用FASTCGI在IIS上运行Django频道

大小为M的第N位_计数(或人口计数)的公式

切片包括面具的第一个实例在内的眼镜的最佳方法是什么?

如何获取numpy数组的特定索引值?

DataFrames与NaN的条件乘法

如何在WSL2中更新Python到最新版本(3.12.2)?

在Django admin中自动完成相关字段筛选

如何在FastAPI中为我上传的json文件提供索引ID?

如何杀死一个进程,我的Python可执行文件以sudo启动?

在matplotlib中使用不同大小的标记顶部添加批注

干燥化与列姆化的比较

如何获得3D点的平移和旋转,给定的点已经旋转?

如何在验证文本列表时使正则表达式无序?

当HTTP 201响应包含 Big Data 的POST请求时,应该是什么?  

TypeError:';Locator';对象无法在PlayWriter中使用.first()调用

对数据帧进行分组,并按组间等概率抽样n行

FileNotFoundError:[WinError 2]系统找不到指定的文件:在os.listdir中查找扩展名

Django-修改后的管理表单返回对象而不是文本

根据两个lambda条件筛选组并根据条件创建新列的最佳方式是什么?