⚠️ 注意:有限维护
此项目不再积极维护。现有版本仍然可用,但没有计划中的更新、错误修复、新功能或安全补丁。用户应注意,漏洞可能不会得到解决。
Windows 上的 TorchServe¶
本文档目录¶
先决条件¶
目前,它仅在 Windows Server 2019 上获得认证,但在 Windows 10 上也应能正常工作。
确保您是管理员用户或具有管理员权限
此处给出的说明将使用 anaconda Powershell 终端安装 torchserve
按照此处的说明安装 Anaconda
按照此处的说明安装 Git
安装 openjdk17
解压并编辑/添加环境变量,例如 PATH 和 JAVA_HOME
使用命令行
unzip jdk-17.0.3_windows-x64_bin.zip
或使用 GUI 界面编辑系统或用户配置文件环境变量
PATH
的值,并在其后追加路径<your-openjdk17-path>\bin
安装 nodejs
下载nodejs
安装后请确保 nodejs 和 npm node 模块二进制文件存在于 PATH 环境变量中。
如果您的“Anaconda Powershell Prompt”(APP)无法检测到 npm 或 nodejs 命令,您可能需要重启 Windows
从二进制文件安装¶
注意:目前,PyPi 上没有提供适用于 Windows 的 wheel 文件。但是,如果您有预构建的适用于 Windows 的 torchserve wheel 文件,也可以使用以下步骤。
以管理员用户身份启动“Anaconda Powershell Prompt”(APP),即右键单击 APP 并运行以下命令
git clone https://github.com/pytorch/serve.git
cd serve
python .\ts_scripts\install_dependencies.py
对于本地 wheel 文件
pip install <your-torchserve-wheel-file-name>.whl
对于 PyPi 包(目前不适用)
pip install torchserve torch-model-archiver
启动 torchserve
torchserve.exe --start --model-store <path-to-model-store>
后续步骤请参阅服务模型
从源代码安装¶
确保存在系统或用户配置文件环境变量
JAVA_HOME
,其值为<your-openjdk17-path>
路径。安装适用于 Visual Studio 2015、2017 和 2019 的 Microsoft Visual C++ 可再发行组件
注意:请确保在安装上述 Visual C++ 组件后已重启系统
确保 ‘nvidia-smi.exe’ 在
Path
环境变量中可用。通常,它应该位于<your_install_drive>\Program Files\NVIDIA Corporation\NVSMI
下,例如 C:\Program Files\NVIDIA Corporation\NVSMI,将此路径添加到Path
环境变量中。以管理员用户身份启动“Anaconda Powershell Prompt”(APP),即右键单击 APP 并运行以下命令
git clone https://github.com/pytorch/serve.git
pip install click
cd serve
用于生产环境,使用以下命令:¶
python .\ts_scripts\install_dependencies.py --environment=prod
python .\ts_scripts\install_from_src.py
用于开发目的,使用以下命令:¶
如果您计划使用 TorchServe 进行开发并修改部分源代码,以下命令会有所帮助。install_dependencies 脚本会安装一些开发和测试所需的额外依赖项。
python .\ts_scripts\install_dependencies.py --environment=dev
python .\ts_scripts\install_from_src.py
故障排除¶
如果您从源代码构建,则可能需要更改推理、管理和指标 API 的端口号,具体位置在
frontend/server/src/test/resources/config.properties
、frontend/server/src/test/resources/snapshot/*
中的所有文件以及frontend/server/src/main/java/org/pytorch/serve/util/ConfigManager.java
中指定。如果
curl
命令执行失败,则在 APP (anaconda powershell prompt) 上运行以下命令Remove-item alias:curl
。有关详细信息,请参阅此 SO 回答。