目录
1、自定义处理程序
torch-model-archiver使用默认处理程序进行初始化,预处理和后处理。如果您具有自定义模型或想要引入自定义逻辑以扩展默认处理程序,则仍可以编写自定义处理程序。有关受支持的默认处理程序的完整列表,请参见GitHub repo。有关编写自己的自定义处理程序的说明,请参见GitHub repo。
2、托管多个模型
TorchServe提供了一个管理API,用于列出已注册的模型,将新模型注册到现有服务器,取消注册当前模型,增加或减少每个模型的工作人员数量,描述模型的状态,添加版本以及设置默认版本。Management API正在端口8081上侦听,并且默认情况下只能从localhost访问,但是您可以更改默认行为。
通过1,已经生成了分类、分割、检测模型。
ls model_store/
=>
densenet161.mar densenet161_ts.mar fcn_resnet_101.mar maskrcnn.mar
要注册新模型,请完成以下步骤:
step1、首先启动服务,注册一个模型
torchserve --start --model-store model_store --models densenet161=densenet161.mar
step2、查询已注册的模型
curl "http://localhost:8081/models"
结果:
若,结果与期望值不一致,删除logs文件夹缓存即可。
3、模型接口
3.1、添加注册新模型
curl -X POST "http://localhost:8081/models?url=maskrcnn.mar"
打印结果:
{
"status": "Model \"maskrcnn\" Version: 1.0 registered with 0 initial workers. Use scale workers API to add workers for the model."
}
3.2、查看是否注册成功
curl "http://localhost:8081/models"
输出:
3.3、查看注册模型基本信息
curl "http://localhost:8081/models/densenet161"
3.4、设置注册模型参数
curl "http://localhost:8081/models/maskrcnn"
与直接启动服务的densenet161不一样,未新模型分配进程数worker,因此请使用以下代码设置最小worker数:
curl -v -X PUT "http://localhost:8081/models/maskrcnn?min_worker=2"
打印:
再次查询状态:
curl "http://localhost:8081/models/maskrcnn"
结果:
如果模型托管在具有许多核心的CPU上,例如具有96个vCPU的c5.24xlarge EC2实例,则可以使用上述方法轻松扩展线程数。
3.5、使用以下代码注销模型
curl -X DELETE http://localhost:8081/models/fastrcnn/
3.6、模型版本控制
要对模型进行版本控制,请在调用时torch-model-archiver,将版本号传递给--version,请参见以下代码:
torch-model-archiver --model-name fastrcnn --version 1.0 ...
4、记录和指标
TorchServe使您可以轻松访问完全可自定义的日志和指标。默认情况下,TorchServe将日志消息打印到stderr和stout。TorchServe使用log4j,您可以通过修改log4j属性来自 定义日志记录。
TorchServe也收集系统级的指标,如CPUUtilization,DiskUtilization在默认情况下,和其他人。您还可以使用指标API指定自定义指标。以下屏幕快照显示了从TorchServe请求推理时的默认日志输出。