.mar
文件(Model Archive)是 TorchServe 用来存储和管理模型的标准格式。打包 .mar
文件的目的是将模型、元数据和可能的依赖项整合在一起,以便于在 TorchServe 中部署。以下是打包 .mar
文件的步骤:
- 安装 TorchServe: 首先,确保已经安装了 TorchServe。你可以使用 pip 来安装:
bash pip install torchserve torch-model-archiver
-
准备模型:
- 你需要一个训练好的 PyTorch 模型,可以是
.pt
或.pth
文件。 - 如果你的模型没有使用 TorchScript 编译,你需要将其转换为 TorchScript。这可以通过
torch.jit.trace
或torch.jit.script
实现。
- 你需要一个训练好的 PyTorch 模型,可以是
-
创建模型存档: 使用
torch-model-archiver
命令行工具创建.mar
文件。这个工具会将模型、元数据(包括模型处理类的定义)和任何依赖项打包到一起。以下是一个基本的命令示例:
bash torch-model-archiver --model-name my_model \
--version 1.0 \
--serialized-file path/to/model.pt \
--handler path/to/handler.py \
--extra-files path/to/dependencies/* \
--export-path path/to/output_directory
参数解释:
--model-name
:模型的名称。--version
:模型的版本号。--serialized-file
:模型文件的路径(通常是.pt
或.pth
文件)。--handler
:模型处理类的路径,用于定义预处理、推理和后处理逻辑。--extra-files
:可选,模型可能需要的其他文件(如模型配置、预处理脚本等)的路径。--export-path
:输出.mar
文件的目录。
- 验证
.mar
文件: 创建完.mar
文件后,你可以使用torch-model-archiver
的--validate
选项来检查.mar
文件的完整性和正确性:
bash torch-model-archiver --validate --model-file path/to/output_directory/my_model.mar
- 部署模型: 将
.mar
文件上传到模型存储目录,并使用 TorchServe 注册模型:
bash torchserve --start --models my_model=path/to/output_directory/my_model.mar
现在,.mar
文件已经打包完成,并可以被 TorchServe 加载和使用。请注意,根据实际需求,你可能需要调整 handler.py
文件中的处理逻辑以适应模型的输入和输出格式。