MLEM API详解:开发者如何在代码中集成模型保存与部署功能
MLEM API详解:开发者如何在代码中集成模型保存与部署功能
【免费下载链接】mlem🐶 A tool to package, serve, and deploy any ML model on any platform. Archived to be resurrected one day🤞项目地址: https://gitcode.com/gh_mirrors/ml/mlem
MLEM是一个强大的机器学习模型管理工具,它提供了简洁易用的API,帮助开发者轻松实现模型的保存、加载和部署功能。本文将详细介绍MLEM API的核心功能,包括模型保存、加载和部署,以及如何在代码中集成这些功能,让你的机器学习工作流更加高效和可维护。
模型保存:轻松持久化你的机器学习模型
模型训练完成后,将其保存到磁盘是至关重要的一步。MLEM提供了save函数,可以轻松将模型保存为MlemObject,包含模型权重、元数据和依赖信息。
基本用法
使用MLEM保存模型非常简单,只需调用save函数并传入模型对象和保存路径:
from mlem.core.metadata import save # 假设model是训练好的机器学习模型 save(model, "path/to/save/model")高级参数
save函数还提供了一些高级参数,以满足不同场景的需求:
sample_data:提供输入数据样本,MLEM将自动推断并记录模型的输入输出 schemaparams:传递任意参数,这些参数将被记录在模型的元数据中preprocess和postprocess:指定模型的预处理和后处理函数
下面是一个使用高级参数的示例:
save( model, "path/to/save/model", sample_data=X_train[:5], # 提供样本数据以自动生成schema params={"threshold": 0.5}, # 记录模型参数 preprocess=preprocess_function, # 指定预处理函数 postprocess=postprocess_function # 指定后处理函数 )保存实现细节
save函数的实现位于mlem/core/metadata.py文件中。它首先调用get_object_metadata函数将模型转换为适当的MlemObject子类(MlemModel或MlemData),然后调用meta.dump()方法将对象保存到磁盘。
模型加载:无缝恢复你的机器学习模型
保存模型后,MLEM提供了load函数,可以轻松加载保存的模型,恢复其权重、元数据和依赖信息。
基本用法
加载模型同样简单,只需调用load函数并传入模型保存路径:
from mlem.core.metadata import load # 加载保存的模型 loaded_model = load("path/to/save/model")高级参数
load函数也提供了一些高级参数:
project:指定模型所在的Mlem项目路径rev:指定Git仓库的 revision(提交哈希、分支名或标签)batch_size:如果加载的是数据对象,可以指定批处理大小follow_links:是否跟随MlemLink指向的实际对象
加载实现细节
load函数的实现同样位于mlem/core/metadata.py文件中。它首先调用load_meta函数加载模型的元数据,然后调用meta.get_value()方法获取实际的模型对象。
模型部署:一键部署你的机器学习模型
MLEM不仅提供了模型的保存和加载功能,还提供了强大的部署能力。通过deploy函数,你可以轻松将模型部署到各种平台。
基本用法
使用MLEM部署模型的基本步骤如下:
- 创建或加载部署元数据(MlemDeployment)
- 准备部署环境(MlemEnv)
- 调用
deploy函数部署模型
from mlem.api.commands import deploy # 部署模型 deployment = deploy( "path/to/deployment", # 部署元数据路径或名称 model="path/to/model", # 模型路径 env="path/to/environment" # 环境路径 )支持的部署平台
MLEM支持多种部署平台,包括:
- Docker:通过mlem/contrib/docker/base.py实现
- Kubernetes:通过mlem/contrib/kubernetes/base.py实现
- Heroku:通过mlem/contrib/heroku/meta.py实现
- AWS SageMaker:通过mlem/contrib/sagemaker/meta.py实现
- Fly.io:通过mlem/contrib/flyio/meta.py实现
部署实现细节
deploy函数的实现位于mlem/api/commands.py文件中。它首先加载或创建部署元数据(MlemDeployment),然后调用deploy_meta.deploy(model_meta)方法执行实际的部署操作。
模型服务:快速启动模型API服务
除了部署到各种平台,MLEM还提供了serve函数,可以快速启动一个API服务,将模型方法暴露为HTTP端点。
基本用法
使用serve函数启动模型服务非常简单:
from mlem.api.commands import serve # 启动模型服务 serve( model="path/to/model", # 模型路径 server="fastapi" # 指定服务器类型,如fastapi )支持的服务器类型
目前,MLEM支持的服务器类型包括FastAPI等,你可以通过server参数指定。
服务实现细节
serve函数的实现位于mlem/api/commands.py文件中。它首先加载模型,然后创建指定类型的服务器对象,最后调用server_obj.start()方法启动服务。
模型应用:轻松使用模型进行预测
MLEM提供了apply函数,可以轻松使用加载的模型或远程部署的模型进行预测。
基本用法
使用本地模型进行预测:
from mlem.api.commands import apply # 使用本地模型进行预测 result = apply( model="path/to/model", # 模型路径 data=test_data # 输入数据 )使用远程部署的模型进行预测:
from mlem.api.commands import apply_remote # 使用远程模型进行预测 result = apply_remote( client="http://localhost:8080", # 远程服务地址 data=test_data # 输入数据 )应用实现细节
apply和apply_remote函数的实现位于mlem/api/commands.py文件中。它们负责处理输入数据,调用模型的相应方法,并返回预测结果。
总结
MLEM提供了一套完整的API,涵盖了机器学习模型的保存、加载、部署、服务和应用等各个环节。通过这些API,开发者可以轻松地将模型管理功能集成到自己的代码中,大大简化机器学习工作流,提高开发效率。
无论是简单的模型保存,还是复杂的跨平台部署,MLEM都提供了简洁易用的解决方案。希望本文能够帮助你更好地理解和使用MLEM API,让你的机器学习项目更加高效、可维护。
要开始使用MLEM,你可以通过以下命令克隆仓库:
git clone https://gitcode.com/gh_mirrors/ml/mlem然后参考官方文档和示例代码,开始你的MLEM之旅!
【免费下载链接】mlem🐶 A tool to package, serve, and deploy any ML model on any platform. Archived to be resurrected one day🤞项目地址: https://gitcode.com/gh_mirrors/ml/mlem
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考