项目介绍:modelstore
modelstore
是一个专为机器学习模型构建的 Python 库,旨在帮助用户对模型进行版本管理、导出、存储并下载到您选择的存储平台。这个开源项目的设计宗旨是简化模型管理,并消除为存储和管理机器学习模型所需的样板代码。
主要特点
- 无需追踪服务器: 用户可以选择将模型存储于本地文件系统或者云存储服务中,比如 AWS、GCP 和 Azure。
- 模型上传与版本控制: 每次上传模型时,modelstore 都会自动进行版本控制,方便用户进行模型的更新和管理。
- 基于领域和状态的模型管理: 用户可以按领域列出模型,并通过创建模型状态来管理模型的当前状态。
- 下载与内存加载: 提供根据模型 ID 下载功能,并能直接从存储加载模型到内存。
- 命令行工具: 支持从命令行下载模型,让用户更方便地操作模型存储。
安装方式
用户可以通过简单的命令在 Python 环境中安装 modelstore:
pip install modelstore
支持的存储类型
modelstore 支持多种存储选项,用户可以选择最适合自己的:
- AWS S3 Bucket
- Azure Blob Storage
- Google Cloud Storage Bucket
- 任何兼容 s3 协议的对象存储(如 MinIO)
- 本地文件系统目录
支持的机器学习库
modelstore 可以与众多流行的机器学习库协同工作,包括但不限于:Annoy、Catboost、Fast.AI、Keras、LightGBM、PyTorch、Scikit Learn 以及 TensorFlow 等。如果您使用的机器学习库未被列出,modelstore 也提供了上传和保存原始文件的办法。
使用示例
以下是一个使用 Python 的简单示例,展示了如何利用 modelstore 进行模型的存储和加载:
from modelstore import ModelStore
from sklearn.ensemble import RandomForestClassifier
import json
# 训练您的模型
clf = RandomForestClassifier(n_estimators=10)
clf = clf.fit(X, Y)
# 创建一个使用 GCP 存储桶作为存储选项的模型存储对象
model_store = ModelStore.from_gcloud(
project_name="my-project",
bucket_name="my-bucket",
)
# 将模型上传到模型存储
domain = "example-model"
meta_data = model_store.upload(domain, model=clf)
# 打印关于模型的元数据
print(json.dumps(meta_data, indent=4))
# 重新加载模型
clf = model_store.load(domain=domain, model_id=meta_data["model"]["model_id"])
贡献与社区
modelstore 在一个开放的环境中进行构建,欢迎任何感兴趣的开发者参与进来。在 MLOps 社区的 Slack 频道 #oss-modelstore
中,大家可以讨论问题,分享经验。
选定合适的方法和工具来管理机器学习模型对于复杂的机器学习应用来说至关重要,而 modelstore 正是在这一需求背景下应运而生的,旨在提供一个简单且功能强大的解决方案。