MLOps模型部署的三种策略:批处理、实时、边缘计算

机器学习运维(MLOps)是一组用于自动化和简化机器学习(ML)工作流程和部署的实践。所选择的部署策略可以显著影响系统的性能和效用。所以需要根据用例和需求,采用不同的部署策略。在这篇文章中,我们将探讨三种常见的模型部署策略:批处理、实时和边缘计算。

批处理

批处理部署适合于不需要实时决策的场景,主要需要在指定的时间间隔处理大量数据。模型不是不断更新或对新数据作出反应,而是在一段时间内收集的一批数据上运行。该方法涉及在预定时间处理大块数据。常见的用例包括夜间风险评估、客户细分或预测性维护等。这种方法非常适合于实时洞察不重要的应用程序。

优点:

批处理可以安排在非高峰时间,优化计算资源和降低成本。与实时系统相比,更容易实现和管理,因为它不需要持续的数据摄取和即时响应能力。

能够处理大型数据集,使其成为数据仓库、报告和离线分析等应用程序的理想选择。

缺点:

数据收集和结果之间存在显著延迟,可能不适用于时间敏感的应用程序。

用例:

欺诈检测:通过分析历史数据来识别欺诈交易。

预测性维护:根据收集数据中观察到的模式来安排维护任务。

市场分析:分析历史销售数据,从中获得见解和趋势。

示例:

例如我们想要分析电子商务平台的客户评论的情绪。使用预训练的情感分析模型,并定期将其应用于一批评论。

 import pandas as pdfrom transformers import pipeline# Load pre-trained sentiment analysis modelsentiment_pipeline = pipeline("text-classification", model="distilbert-base-uncased-finetuned-sst-2-english")# Load customer reviews datareviews_data = pd.read_csv("customer_reviews.csv")# Perform sentiment analysis in batchesbatch_size = 1000for i in range(0, len(reviews_data), batch_size):batch_reviews = reviews_data["review_text"][i:i+batch_size].tolist()batch_sentiments = sentiment_pipeline(batch_reviews)# Process and store batch resultsfor review, sentiment in zip(batch_reviews, batch_sentiments):print(f"Review: {review}\nSentiment: {sentiment['label']}\n")

我们从CSV文件中读取客户评论数据,并以1000条为一批处理这些评论。对于每个批次,我们使用情感分析流程来预测每个评论的情感(积极或消极),然后根据需要处理和存储结果。

实际的输出将取决于customer_reviews.csv文件的内容和预训练的情感分析模型的性能。

实时处理

实时部署在数据到达时立即对其进行处理,从而实现即时操作。这种方法对于需要实时数据处理和决策的应用程序是必不可少的。实时部署在处理数据并几乎即时提供输出时,适用于需要立即响应的应用程序,如欺诈检测、动态定价和实时个性化等。

优点:

提供即时反馈,对时间敏感的应用程序至关重要,支持在毫秒到秒之间做出决策。提供动态和响应的交互,支持与最终用户直接交互的应用程序,提供无可感知延迟的响应,可以提高用户粘性。能够快速响应新出现的趋势或问题,提高运营效率和风险管理。

缺点:

需要强大且可扩展的基础设施来处理可能的高吞吐量和低延迟需求。并且确保运行时间和性能可能既具挑战性又成本高昂。

用例:

客户支持:聊天机器人和虚拟助手为用户查询提供即时响应。

金融交易:基于实时市场数据做出瞬间决策的算法交易系统。

智慧城市:利用实时数据进行实时交通管理和公共安全监控。

示例:

我们希望对金融交易执行实时欺诈检测,需要部署一个预先训练的欺诈检测模型,并将其公开为web服务。

 import tensorflow as tffrom tensorflow.keras.models import load_modelimport numpy as npfrom flask import Flask, request, jsonify# Load pre-trained fraud detection modelmodel = load_model("fraud_detection_model.h5")# Create Flask appapp = Flask(__name__)@app.route('/detect_fraud', methods=['POST'])def detect_fraud():data = request.get_json()transaction_data = np.array(data['transaction_data'])prediction = model.predict(transaction_data.reshape(1, -1))is_fraud = bool(prediction[0][0])return jsonify({'is_fraud': is_fraud})if __name__ == '__main__':app.run(host='0.0.0.0', port=8080)

比如使用TensorFlow加载一个预训练的欺诈检测模型。然后我们创建一个Flask web应用程序,并定义一个endpoint /detect_fraud,它接受包含交易细节的JSON数据。对于每个传入请求,数据经过预处理等流程,输入模型并返回一个JSON响应,判断这条数据是否具有欺诈性。

为了增加服务的响应速度,一般情况下都是使用,使用Docker这样的容器化工具,并将容器部署到云平台或专用服务器上,并且可以进行自动化的资源调度和扩展。

边缘计算

边缘部署涉及在网络边缘的设备上运行机器学习模型,更接近数据生成的位置。这种方法在本地处理数据而不是将数据发送到集中式服务器来减少延迟和带宽使用。这种方法用于在将数据发送到中心服务器太慢或过于敏感的情况下,如自动驾驶汽车、智能摄像头等。

优点:

在本地处理数据,减少了向中心服务器回传数据的需要,节省了带宽,降低了成本。。通过在源附近处理数据来最大限度地减少延迟,非常适合需要快速响应时间的应用程序。

独立于网络连接运行,即使在远程或不稳定的环境中也能确保持续的功能。并且敏感数据在设备上存储,最小化暴露和合规风险。

缺点:

边缘设备的处理能力通常低于服务器环境,这可能限制了部署模型的复杂性。并且在众多边缘设备上部署和更新模型可能在技术上具有挑战性的,尤其是版本的管理。

用例:

工业物联网:对制造工厂的机械进行实时监控。

医疗保健:可穿戴设备分析健康指标并向用户提供即时反馈。

自动驾驶汽车:车载传感器数据处理,用于实时导航和决策。

我们以最简单的在移动设备上执行实时对象检测作为示例。使用TensorFlow Lite框架在Android设备上优化和部署预训练的对象检测模型。

 import tflite_runtime.interpreter as tfliteimport cv2import numpy as np# Load TensorFlow Lite modelinterpreter = tflite.Interpreter(model_path="object_detection_model.tflite")interpreter.allocate_tensors()# Get input and output tensorsinput_details = interpreter.get_input_details()output_details = interpreter.get_output_details()# Function to perform object detection on an imagedef detect_objects(image):# Preprocess input imageinput_data = preprocess_image(image)# Set input tensorinterpreter.set_tensor(input_details[0]['index'], input_data)# Run inferenceinterpreter.invoke()# Get output tensoroutput_data = interpreter.get_tensor(output_details[0]['index'])# Postprocess output and return detected objectsreturn postprocess_output(output_data)# Main loop for capturing and processing camera framescap = cv2.VideoCapture(0)while True:ret, frame = cap.read()if ret:objects = detect_objects(frame)# Draw bounding boxes and labels on the framefor obj in objects:cv2.rectangle(frame, (obj['bbox'][0], obj['bbox'][1]), (obj['bbox'][2], obj['bbox'][3]), (0, 255, 0), 2)cv2.putText(frame, obj['class'], (obj['bbox'][0], obj['bbox'][1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (36, 255, 12), 2)cv2.imshow('Object Detection', frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()cv2.destroyAllWindows()

以TensorFlow Lite格式加载一个预训练的对象检测模型,模型针对移动和嵌入式设备进行了优化。

在主循环中,不断地从设备的相机中捕获帧,将它们传递给detect_objects函数,并为检测到的对象在帧上绘制边界框和标签。处理后的帧然后显示在设备的屏幕上。边框将以绿色绘制,对象标签将显示在每个边框的左上角。

这些代码可以使用各自的TensorFlow Lite api和库集成到Android或iOS应用程序中。

选择正确的部署策略

选择正确的机器学习模型部署策略是确保高效性和成本效益的关键。以下是一些决定部署策略时需要考虑的主要因素:

1. 响应时间需求

  • 实时部署:如果应用程序需要即时反馈,如在线推荐系统、欺诈检测或自动交易系统。
  • 批处理部署:如果处理的任务可以容忍延迟,例如数据仓库的夜间批量处理、大规模报告生成。

2. 数据隐私和安全性

  • 边缘部署:当数据隐私是一个重要因素,或者法规要求数据不得离开本地设备时,边缘部署是理想选择。
  • 中心化部署:如果数据的隐私性较低或可以通过安全措施在云端处理,则可以选择中心化部署。

3. 可用资源和基础设施

  • 资源有限的环境:边缘设备通常计算能力有限,适合运行简化或轻量级的模型。
  • 资源丰富的环境:具有强大计算资源的云环境适合实时或大规模批处理部署。

4. 成本考虑

  • 成本敏感:批处理可以减少对实时计算资源的需求,从而降低成本。
  • 投资回报:实时系统虽然成本高,但可能因响应速度快而带来更高的投资回报。

5. 维护和可扩展性

  • 简单维护:批处理系统相对容易维护,因为它们的工作负载是预测的。
  • 需要高可扩展性:实时系统需要能够应对突发的高流量,需要更复杂的管理和自动扩展能力。

6. 用户体验

  • 直接与用户交互:需要即时响应来提升用户体验的应用,如移动应用中的个性化功能,更适合实时部罗。
  • 后台处理:用户不直接感受到处理延迟的场景,如数据分析和报告,批处理更为合适。

结合上述因素,你可以根据具体的应用场景和业务需求来选择最适合的部署策略。这有助于优化性能,控制成本,并提高整体效率。。

总结

了解批处理、实时和边缘部署策略的区别和应用程序是优化MLOps的基础。每种方法都提供了针对特定用例量身定制的独特优势,通过评估应用程序的需求和约束,可以选择最符合目标的部署策略,为成功的AI集成和利用铺平道路。

https://avoid.overfit.cn/post/6740ab96ae344c0ca8199e603f15cb37

作者:Tech & Tales

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java家政预约系统源码 家政上门APP源码 家电安装、维修、清洗、美容系统源码、家政系统各端功能细分

Java家政预约系统源码 家政上门APP源码 家电安装、维修、清洗、美容系统源码、家政系统各端功能细分 家政服务系统是一种提供家政服务的系统,它可以为客户提供上门家庭清洁、钟点工、保姆、月嫂、育婴师、护理员等家政服务。节省时间和成本,提高效率&…

网络层只懂路由?这9个知识点被严重低估了

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 网络层想必你已经耳熟能详,它的作用自然是不容小觑。 它负责将数据从源头准确地投递到目的地&am…

onnx基本概念

onnx基本概念 参考 文章目录 onnx基本概念Input, Output, Node, Initializer, AttributesSerialization with protobuf元数据List of available operators and domains支持的类型Opset版本Subgraphs, tests and loopsExtensibilityFunctionsShape (and Type) Inferencetools O…

编码在网络安全中的应用和原理

前言:现在的网站架构复杂,大多都有多个应用互相配合,不同应用之间往往需要数据交互,应用之间的编码不统一,编码自身的特性等都很有可能会被利用来绕过或配合一些策略,造成一些重大的漏洞。 什么是编码,为什…

UniVue更新日志:使用Carousel组件实现轮播图效果

github仓库 稳定版本仓库:https://github.com/Avalon712/UniVue 开发版本仓库:https://github.com/Avalon712/UniVue-Develop UniVue扩展框架-UniVue源生成器仓库:https://github.com/Avalon712/UniVue-SourceGenerator 更新说明 今天的更…

吴恩达深度学习笔记:机器学习(ML)策略(1)(ML strategy(1))1.11-1.12

目录 第三门课 结构化机器学习项目(Structuring Machine Learning Projects)第一周 机器学习(ML)策略(1)(ML strategy(1))1.11 超过人的表现(Surp…

报错:C1189#error: The <experimental/filesystem> header providing 解决方案

今天开发过程中,需要使用文件系统experimental/filesystem,报错C1189#error: The <experimental/filesystem> header providing ,通过以下解决方案,成功运行程序。 目录 一、打开项目下的属性 二、选择C/…

算法02 递归算法及其相关问题【C++实现】

递归 在编程中,我们把函数直接或者间接调用自身的过程叫做递归。 递归处理问题的过程是:通常把一个大型的复杂问题,转变成一个与原问题类似的,规模更小的问题来进行求解。 递归的三大要素 函数的参数。在用递归解决问题时&…

VMware挂载NAS存储异常处理

问题概述 由于非法关机或恢复,NFS存储可能会出现以下问题: 数据存储处于挂起状态或无法正常识别。虚拟机的配置文件或虚拟磁盘仍然注册在异常数据存储上。系统误认为有虚拟机在使用该数据存储。 问题对策 下面是详细的排查步骤和解决对策&#xff1a…

PFA烧杯带把手带刻度1000ml3000mlPFA氟树脂温度范围-270~250℃

随着越来越多的痕量分析实验需要对ppb和ppt级的浓度进行测定。目前所使用的一般材料由于无特别处理,不可避免会与所储存的样品,试剂或标准液反应,导致痕量分析实验得到不正确的结果。但我厂的PFA产品刚好能弥补其不足。PFA金属元素空白值低&a…

前端锚点 点击 滑动双向绑定

一. 页面样式 二. 代码 <div class"flexBox"><div class"mdDiv" v-for"(item,index) in tabList" :key"index" :class"nowChooseindex?choosed:" click"jumpMD(index, item.id)">{{item.name}}&l…

风光储一体化园区 | 图扑新能源可视化

随着全球能源结构转型加速&#xff0c;可再生能源成为能源发展的重要方向。风能、太阳能作为清洁、绿色的能源&#xff0c;得到了广泛的开发和应用。与此同时&#xff0c;储能技术的发展为解决风能和太阳能发电的间歇性和波动性问题提供了有效途径。 风光储园区作为整合风电、…

CAD中如何在线加载卫星影像?

CAD在各行各业都有着非常广泛的应用&#xff0c;但在规划设计等行业中&#xff0c;不可避免地需要加载高清卫星影像&#xff0c;从而有利于作规划设计时参考。 现在&#xff0c;就为你分享一种在CAD中在线加载卫星影像的方法&#xff0c;如果需要CAD安装包&#xff0c;请在文末…

解决外网404:清除DNS缓存并配置host主机使用知名公共DNS服务

在 Windows 上清除/刷新 DNS 缓存 对于所有Windows版本&#xff0c;清除DNS缓存的过程都是相同的。你需要使用管理员权限打开命令提示符并运行ipconfig /flushdns。 浏览器清除DNS缓存 大多数现代的Web浏览器都有一个内置的DNS客户端&#xff0c;以防止每次访问该网站时…

白酒:茅台镇白酒的酒厂社会责任与可持续发展

云仓酒庄豪迈白酒&#xff0c;作为茅台镇的品牌&#xff0c;不仅在产品品质和口感方面有着卓着的表现&#xff0c;在酒厂社会责任和可持续发展方面也做出了积极的探索和实践。 首先&#xff0c;云仓酒庄豪迈白酒注重环境保护和资源利用。酒厂在生产过程中严格控制能源消耗和排放…

Codesys 获取系统年、月、日、时、分、秒、星期几 +解决时区问题+ ST语言编程实现代码

一、 效果如图所示 二、功能说明 发现获取的时间比北京时间多一个时区&#xff08;8个小时&#xff09;&#xff0c;解决时区问题获取时间后&#xff0c;单独把年月日时分秒提取出来&#xff0c;单独保存在变量中获取星期几&#xff0c;保存在变量中 三、Codesys用ST语言实现…

数字电路运算器分析

文章目录 1. 半加器 2. 加法器 3. 4位加法器 4. 半减器 5. 减法器 6. 4位减法器 1. 半加器 现在我们来考虑如何用电路来实现1位加法。假如有两个1位二进制数A、B&#xff0c;它们的和为1位二进制数S&#xff0c;那么存在下面几种情况&#xff1a; 如果A0&#xff0c;B…

RTC实时时钟

一、Unix时间戳 1、Unix 时间戳 &#xff08;1&#xff09;Unix 时间戳&#xff08;Unix Timestamp&#xff09;定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数&#xff0c;不考虑闰秒 &#xff08;2&#xff09;时间戳存储在一个秒计数器中&#xff0c;秒计数器为…

行业分析---揭开新工业革命序幕的英伟达

1 背景 在之前的博客中&#xff0c;笔者撰写了多篇行业类分析的文章&#xff08;科技新能源&#xff09;&#xff1a; 《行业分析---我眼中的Apple Inc.》 《行业分析---马斯克的Tesla》 《行业分析---造车新势力之蔚来汽车》 《行业分析---造车新势力之小鹏汽车》 《行业分析-…

如何设置天锐绿盾的数据防泄密系统

设置天锐绿盾的数据防泄密系统&#xff0c;可以按照以下步骤进行&#xff1a; 一、系统安装与初始化 在线或离线安装天锐绿盾数据防泄密系统&#xff0c;确保以管理员身份运行安装包&#xff0c;并按照安装向导的提示完成安装。输入序列号进行注册&#xff0c;激活系统。 二…