当前位置: 首页 > article >正文

【模型部署】实例(附代码)

一.模型准备

1.模型训练及测试

from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris
import joblib
 
# 加载数据
X, y = load_iris(return_X_y=True)
# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# 训练SVM模型
model = SVC(kernel='linear')
model.fit(X_train, y_train)
 
# 预测
y_pred = model.predict(X_test)
# 评估
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy}')

2.保存模型

# 保存
joblib.dump(model, 'svm_model.pkl')

二.部署

1.Flask

from flask import Flask, request, jsonify
import joblib

# Load the trained model
model = joblib.load('svm_model.pkl')

app = Flask(__name__)

# Define the prediction endpoint
@app.route('/predict', methods=['POST'])
def predict():
    data = request.get_json()  # Get the data sent in the request
    prediction = model.predict([data['features']])
    return jsonify({'prediction': int(prediction[0])})

if __name__ == '__main__':
    app.run(debug=True)

请求测试

curl -X POST http://localhost:5000/predict -H “Content-Type: application/json” -d '{“features”: [5.1, 3.5, 1.4, 0.2]}'

2.Docker

(1)安装docker:详见https://www.runoob.com/docker/docker-tutorial.html。

(2)创建 Dockerfile:定义模型的运行环境。

# Use an official Python runtime as a parent image
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install the required packages
RUN pip install -r requirements.txt

# Make the port 5000 available to the world outside this container
EXPOSE 5000

# Run app.py when the container launches
CMD ["python", "app.py"]

(3)构建 Docker 映像

docker build -t ml-model-api .

(4)运行 Docker 容器

docker run -p 5000:5000 ml-model-api

3.AWS Elastic Beanstalk

在AWS Elastic Beanstalk上部署容器化模型。

(1)安装 EB CLI

pip install awsebcli

(2)初始化 EB 环境

eb init

(3)部署应用程序

eb create ml-api-env

三.后期维护

部署后,需要监控模型的性能,处理扩展问题,并在新数据可用时定期更新模型。

监控:使用监控工具跟踪模型在生产中的性能。可以监控延迟、错误率和准确性随时间漂移等指标。

扩展:如果应用程序需要处理大量请求,Kubernetes 或 AWS Auto Scaling 等自动扩展工具可帮助管理负载。

版本控制:保持模型的版本控制。像MLflow和DVC(数据版本控制)可以帮助跟踪模型的不同版本,从而在必要时更容易回滚到之前的版本。

参考:https://mp.weixin.qq.com/s/ksuvqSja9Pix2aERyNwypw


http://www.kler.cn/a/469828.html

相关文章:

  • unity学习13:gameobject的组件component以及tag, layer 归类
  • 【GOOD】A Survey of Deep Graph Learning under Distribution Shifts
  • 如何查看服务器上的MySQL/Redis等系统服务状态和列表
  • 数学建模入门——描述性统计分析
  • THREE.js的VideoTexture以及CanvasTexture在部分浏览器以及小程序webview中纯黑不起作用的解决办法
  • 提升自闭症教育:探索寄宿学校的创新实践
  • 【从0带做】基于Springboot3+Vue3的疾病防控综合系统
  • 使用 Hadoop + MapReduce + Elasticsearch 实现高效的日志处理与分析
  • vulhubn中potato靶场
  • 长上下文窗口的大语言模型数据设计
  • 场馆预定平台高并发时间段预定实现V1
  • .net core三种依赖注入方式,原生的依赖注入器,scrutor,autofac
  • cat命令详解
  • leecode1035.不相交的线
  • 低功耗视频监控/太阳能无线监控在水产渔业养殖场景中有哪些应用?
  • Python编程实例-机器学习中的Hinge Loss编程实现
  • 基于SpringBoot的音乐网站与分享平台
  • 无人船 | 图解推导三自由度USV的运动学和动力学建模
  • 搭建直播网站技术层面准备全流程
  • 《创业维艰》
  • 在C程序中实现类似Redis的SCAN机制的LevelDB大规模key分批扫描
  • 了解 C# 中的字体别名问题
  • [创业之路-238]:《从偶然到必然-华为研发投资与管理实践》-1-产品研发过程的质量控制绝对了结果的质量,产品研发的过程控制的质量等级决定了结果质量的等级
  • Echarts集成Vue2个人总结与反思
  • Excel 打印时-预览界面内容显示不全
  • 技术速递|探索 Microsoft.Extensions.VectorData 与 Qdrant 和 Azure AI 搜索的结合使用