解决 ONNX Runtime generate() API 的问题

安装问题

Windows Conda 导入错误

ImportError: DLL load failed while importing onnxruntime_genai: A dynamic link library (DLL) initialization routine failed.

如果您在 Windows 上的 Conda 环境中遇到此问题,则需要升级 Visual Studio 的 C++ 运行时。在 Conda 环境中,运行以下命令

conda install conda-forge::vs2015_runtime

执行此额外步骤后,onnxruntime-genai Python 包应能无错误运行。

Windows CUDA 导入错误

DLL load failed while importing onnxruntime_genai

在 Windows 上完成 CUDA 工具包安装后,请确保已将 CUDA_PATH 系统环境变量设置为工具包的安装路径。在 Windows 上导入 onnxruntime_genai Python 模块时将使用此变量。未设置或设置不正确的 CUDA_PATH 变量可能导致导入 onnxruntime_genaiDLL 加载失败

Transformers / Tokenizers 与 ONNX Runtime generate() 的不兼容性

RuntimeError: [json.exception.type_error.302] type must be string, but is array

仅在使用模型构建器生成模型时发生,不适用于下载的模型。

HuggingFace transformers 版本 4.45.0 中有一个更改,导致与 onnxruntime-genai 0.4.0 及更早版本不兼容,此问题已在 0.5.0 版本中解决。您可以采用两种替代方法来解决此问题

  • 选项 1:将 transformers 版本降级到低于 v4.45.0(即引入上述更改的版本)
  • 选项 2:从源代码构建 onnxruntime-genai,使用这些说明:从源代码构建