大家好,Jupyter notebook 是机器学习的便捷工具,但在应用部署方面存在局限。为了提升其可扩展性和稳定性,需结合DevOps和MLOps技术。通过自动化的持续集成和持续交付流程,可将AI应用高效部署至HuggingFace平台。
本文将介绍MLOps的全面实践,讲解如何将Jupyter Notebook中的机器学习模型通过自动化流程成功部署到生产环境。
1.代码迁移与自动化
在实现机器学习模型从 Jupyter Notebook 到生产环境的迁移过程中,关键在于如何将实验阶段的代码转换为可在集成开发环境(IDE)中运行的格式。
以下示例展示了一个用于图像识别的卷积神经网络(CNN)模型的迁移过程,该模型专门用于区分猫和狗的图片。
数据集地址,https://www.kaggle.com/datasets/tomasfern/oxford-iit-pets。
# src/train.py
from os.path import join
from fastai.vision.all import *
from utils import is_cat
import yaml
with open("params.yaml", "r") as stream:
params = yaml.safe_load(stream)
# 路径
data_path = join('data', 'images')
metrics_path = 'metrics'
models_path = 'models'
# 实例化数据加载器
dls = ImageDataLoaders.from_name_func(
os.getcwd(),
get_image_files(data_path),
valid_pct=params['train']['valid_pct'],
seed=params['train']['seed'],
label_func=is_cat,
item_tfms=Resize(params['train']['resize_img'])
)
print(f"Image count for dataset")
print(f"- Training: {len(dls.train_ds)}")
print(f"- Validation: {len(dls.valid_ds)}")
# 微调模型
learn = vision_learner(dls, resnet34