我正在尝试使用 Chroma db 运行 Python 脚本。创建集合,添加一些向量并得到。但出现错误。
脚本:
import chromadb
client = chromadb.Client()
collection = client.create_collection(name="example")
collection.add(
documents=["Sky is unlimited.", "Tree is a plant."], ids=["d_1", "d_2"]
)
items = collection.get()
collection.peek(limit=5)
错误:
onnxruntime.capi.onnxruntime_pybind11_state.Fail:[ONNXRuntimeError]: 1:FAIL:运行时返回非零状态代码 CoreML_10659388614159815537_1 节点。 名称:'CoreMLExecutionProvider_CoreML_10659388614159815537_1_1'状态 消息:执行模型时出错:无法使用以下方法计算预测 神经网络模型。它可能是无效的输入数据或 损坏/不受支持的模型(错误代码:-1)。
硬件:
MacOS 14, Intel
可能是什么原因?
我不知道原因是什么,我应该使用 Docker 还是操作系统有问题?
在 macOS Intel 上使用 ChromaDB 时遇到了 ONNXRuntimeError,该错误表明问题出在所使用的 CoreML 模型执行引擎上。尽管错误消息没有指出确切原因,但我们可以缩小可能的原因范围并探讨一些解决方案:
可能的原因和解决方案:
-
Apple Silicon 与 Intel 架构的兼容性问题:
-
问题: 可能使用的是专为 Apple Silicon 构建的 ChromaDB 版本或依赖项(如 SentenceTransformers),而的 Mac 使用的是 Intel 处理器。
-
解决方案: 确保安装的 ChromaDB 和 SentenceTransformers 版本与的 Intel Mac 兼容。可以尝试安装针对 x86_64 架构构建的特定版本。可以查看文档或项目 GitHub 仓库以获取有关兼容性的信息。
-
模型文件损坏或不兼容:
-
问题: 用于文本嵌入的 CoreML 模型文件 (
.mlmodel
) 可能已损坏或与的 ONNXRuntime 版本不兼容。 -
解决方案:
- 重新安装或更新 ChromaDB: 尝试重新安装 ChromaDB 或更新到最新版本,以确保拥有最新的模型文件。
-
使用不同的嵌入模型:
ChromaDB 支持不同的文本嵌入模型。尝试切换到其他模型,例如使用
sentence-transformers
,看看是否能解决问题。
-
ONNXRuntime 版本冲突或问题:
-
问题: 系统上安装的 ONNXRuntime 版本可能存在与 ChromaDB 不兼容或存在已知问题的版本。
-
解决方案:
-
更新 ONNXRuntime:
尝试更新 ONNXRuntime 到最新版本:
pip install --upgrade onnxruntime
。 - 安装特定版本: 如果更新导致问题,请尝试安装与 ChromaDB 兼容的特定 ONNXRuntime 版本。可以在 ChromaDB 文档或依赖项列表中找到此信息。
-
更新 ONNXRuntime:
尝试更新 ONNXRuntime 到最新版本:
-
系统环境问题:
-
问题: 的 macOS 环境中可能缺少某些依赖项或配置,导致 CoreML 执行引擎出现问题。
-
解决方案:
- 安装缺少的依赖项: 确保已安装所有必需的依赖项。可以查看 ChromaDB 文档以获取依赖项列表。
- 创建一个新的 Python 环境: 创建一个新的 Python 虚拟环境,并仅安装 ChromaDB 及其依赖项,以避免与其他软件包发生冲突。
建议:
- 提供更多信息: 请提供的 ChromaDB、SentenceTransformers 和 ONNXRuntime 版本,以便更好地诊断问题。
- 检查 ChromaDB 日志: 查看 ChromaDB 日志以获取有关错误的更多详细信息。这可以帮助确定问题的根源。
- 使用 Docker: 如果问题仍然存在,可以尝试使用 Docker 运行 ChromaDB,以创建一个隔离且一致的环境。
通过系统地排查这些可能的原因,应该能够解决 ONNXRuntimeError 并成功在的 Intel Mac 上使用 ChromaDB。
标签:python,chromadb From: 78686477