一文解答,亲自实践|计算机视觉mlops自动化pipeline工具链(代码片段)

Charmve Charmve     2022-12-31     659

关键词:

随着低代码(Low Code)和DevOps的推进,机器学习等的模型训练、部署全流程自动化技术、容器化技术的推广,逐渐可以做到计算机视觉MLOps。

今天分享的文章就是介绍这样的一个工具链,帮助你完成模型训练、调参、monitor、部署的全流程自动化。L0CV

项目主页 https://github.com/Charmve/computer-vision-in-action/tree/main/L0CV



📘 L0CV 概述

版权所有,🈲️ 止商用
本图片采用作者独立研发的图片水印技术作为版权认证 CC-BY-NC 4.0(署名可任意转载),点击查看


🍃 模型版本控制 - DVC

DVC 通常与 Git 一起运行。 Git 照常用于存储和版本代码(包括 DVC 元文件)。 DVC 有助于在 Git 之外无缝存储数据和模型文件,同时保留几乎与存储在 Git 本身相同的用户体验。 为了存储和共享数据缓存,DVC 支持多个远程 - 任何云(S3、Azure、Google Cloud 等)或任何本地网络存储(例如,通过 SSH)。

DVC 管道(计算图)功能将代码和数据连接在一起。 可以明确指定生成模型所需的所有步骤:输入依赖项,包括数据、要运行的命令和要保存的输出信息。 请参阅下面的快速入门部分或入门教程以了解更多信息。

⛳ 模型打包 - ONNX

为什么我们需要模型打包? 可以使用任何可用的机器学习框架(sklearn、tensorflow、pytorch 等)构建模型。 我们可能想要在不同的环境中部署模型,比如(移动、网络、树莓派)或者想要在不同的框架中运行(在 pytorch 中训练,在 tensorflow 中进行推理)。 使 AI 开发人员能够使用具有各种框架、工具、运行时和编译器的模型的通用文件格式将大有帮助。

这是由社区项目 ONNX 实现的。

所用的框架为:

  • ONNX
  • ONNXRuntime

🐾 模型打包 - Docker

为什么我们需要打包? 我们可能不得不与其他人共享我们的应用程序,当他们尝试运行该应用程序时,由于依赖关系问题/操作系统相关问题,大多数时间它无法运行,为此,我们说(工程师之间的名言)它有效 在我的笔记本电脑/系统上。

因此,其他人要运行应用程序,他们必须设置与在主机端运行相同的环境,这意味着需要大量手动配置和安装组件。

这些限制的解决方案是一种称为容器的技术

通过容器化/打包应用程序,我们可以在任何云平台上运行应用程序,以获得托管服务、自动扩展和可靠性等优势。

对应用程序进行打包最突出的工具是 Docker 🛳

🍀 CI/CD - GitHub Actions

CI/CD 是一种编码哲学和一组实践,您可以使用它来持续构建、测试和部署迭代代码更改。

这种迭代过程有助于减少您基于有缺陷或失败的先前版本开发新代码的机会。 使用这种方法,您可以努力减少从开发新代码到部署的人工干预,甚至根本不需要干预。

🌴 容器注册表 - AWS ECR

容器注册表是存储容器镜像的地方。 容器镜像是一个由多个层组成的文件,可以在单个实例中执行应用程序。 将所有图像托管在一个存储位置允许用户在需要时提交、识别和拉取图像。

Amazon Simple Storage Service (S3) 是一种用于 Internet 的存储。 它专为跨多个地理区域提供大容量、低成本的存储而设计。

⭐️ 无服务器架构 - AWS Lambda

无服务器架构是一种无需管理基础架构即可构建和运行应用程序和服务的方法。 该应用程序仍然在服务器上运行,但所有服务器管理都由第三方服务 (AWS) 完成。 我们不再需要配置、扩展和维护服务器来运行应用程序。 通过使用无服务器架构,开发人员可以专注于他们的核心产品,而不必担心在云中或本地管理和操作服务器或运行时。

⏳ 预测监视 - Kibana

监控系统可以帮助我们相信我们的系统运行顺利,并且在系统出现故障时,可以在诊断根本原因时快速提供适当的上下文。

我们想要在训练和推理过程中监控的东西是不同的。 在训练过程中,我们关心的是损失是否在减少,模型是否过度拟合等。

但是,在推理过程中,我们希望我们的模型能够做出正确的预测。



💖 Sponsor me

Code with ❤️ & ☕️ @Charmve

paddlepaddle应用于百度视觉技术的工程实践

深度学习的出现,某种程度上改变了我们对计算机视觉的定义。而PaddlePaddle是百度开源的深度学习框架,它是如何支持百度视觉技术,有哪些工程实践,这篇文章将由百度视觉技术部主任研发架构师刘国翌为大家解答。以下为刘... 查看详情

机器学习算法和架构在mlops框架下的工程实践

...践会涉及研究和生产两个主要环境。研究环境可以在本地计算机或工作站上,这通常是为了进行小规模的模型分析和探索。生产环境是模型投产的环境,ML在生产环境中通常需要相对 查看详情

一文读懂计算机视觉坐标系相机参数关系及相机标定

计算机视觉坐标系关系相机参数及相机标定坐标系关系世界坐标系(WorldCoordinate)相机坐标系(CameraCoordinate)世界坐标系到相机坐标系变换关系旋转平移变换公式以及相机外参(Extrinsics)Q&A像素坐标系图像坐标系图像坐标系到像素坐... 查看详情

cv学习资料《卷积神经网络与视觉计算》+《深度学习实践计算机视觉》+《视觉slam十四讲从理论到实践》电子资料代码分析

...图形学真是一家,基础都一样! 如果学习图像识别,计算机视觉,推荐电子书《视觉SLAM十四讲:从理论到实践》,系统介绍了视觉SLAM(同时定位与地图构建)所需的基本知识与核心算法,既包括数学理论基础,如三维空间... 查看详情

tld视觉目标跟踪框架原理与实践

...关TLD视觉目标跟踪框架的视频课程,希望能够帮助一些对计算机视觉感兴趣的人,通过对该课程的学习,能够对计算机视觉技术中的一些基本问题有一定的认识和理解,进而达到技术进阶的目的。课程链接:TLD视觉目标跟踪框架... 查看详情

一文搞定自动化测试框架restassured实践:对response结果导出(代码片段)

文章霍格沃兹测试学院rest-assured对响应结果的导出这里将继续研究rest-assured对响应结果的更新获取,现有一个登录接口auth/oauth/token,接口的部分返回值如下:HTTP/1.1200OKServer:nginx/1.12.2Date:Mon,13Jan202002:15:11GMTContent-Type:application/json;c... 查看详情

istio网关之南北向流量管理(内含服务网格专家亲自解答)(代码片段)

作者|王夕宁?阿里巴巴高级技术专家参与阿里巴巴云原生公众号文末留言互动,有机会获得赠书福利!本文摘自于由阿里云高级技术专家王夕宁撰写的《Istio?服务网格技术解析与实践》一书,文章介绍将集群外部的客户端连接到... 查看详情

ai神经网络流水线mlopsmachinelearningpiplineebay和北美等公司的落地qcon大会2022

...到生产系统。类似于DevOps或DataOps方法,MLOps寻求增加自动化和提高生产模型的质量,同时也关注业务和监管要求。虽然MLOps最初是一组最佳实践,但它正在慢慢演变为一种独立的ML生命周期管理方法。MLOps适用于整个生... 查看详情

一文带你了解基于视觉的机器人抓取自学习(robotlearning)

作者:夏初点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达 “一眼就能学会动作”,或许对人而言,这样的要求有点过高,然而,在机器人的身上,这个想法正在逐步实现中。马斯克(ElonMusk)创立的人工智... 查看详情

计算机视觉入门必看书籍

计算机视觉入门必看书籍周围有许多朋友问我,想要入门学习计算机视觉,要什么好书推荐?我今天就向大家介绍一本非常适合初学者学习的书籍。广告深度学习与图像识别:原理与实践作者:魏溪含,涂铭,张修鹏京东《深度... 查看详情

《计算机视觉和图像处理简介-中英双语+代码实践版》:数据增强在计算机视觉中的作用-dataaugmentation

文章大纲前置准备Preparation数据加载LoadData:使用随机仿射变换进行数据增强创建CNN模型正则化数据RegularDataAnalyzeResults旋转训练数据RotatedTrainingDataAnalyzeResults总结Summary数据增强DataAugmentation在本文中,我们用规则数据和增强数据训... 查看详情

计算机视觉(cv)基于高层api实现宝石分类(代码片段)

【计算机视觉(CV)】基于高层API实现宝石分类(文章目录)前言(一)、任务描述图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题宝石识别属于图像分类中的一个细分类问题实践平台:百度... 查看详情

计算机视觉(cv)基于全连接网络实现宝石分类(代码片段)

【计算机视觉(CV)】基于全连接网络实现宝石分类(文章目录)前言(一)、任务描述本次实践是一个多分类任务,需要将照片中的宝石分别进行识别,完成宝石的识别实践平台:百度AI实训平台-AIStudio、PaddlePaddle2.0.0动态图(二)、环... 查看详情

机器学习曾遇问题解答的网页链接

#1.计算机视觉-传统CV和深度学习CV的区别https://blog.csdn.net/lovetaozibaby/article/details/107174485##要点:-深度学习需要大数据-深度学习有时会做过了头-传统计算机视觉将会提升你的深度学习水平 查看详情

《计算机视觉和图像处理简介-中英双语+代码实践版》:最小批梯度下降求解logistic回归(代码片段)

LogisticRegressionWithMini-BatchGradientDescentObjectiveRepresentyourdataasaDatasetobjectCreateaLogisticRegressionModelusingPyTorchSetaCriteriontocalculateLossCreateaDataLoaderandsettheBatchSizeCreateanOptimizertoupdateModelParametersandsetLearningRateTrainaModelTableofContentsInthislab,youwilllearn... 查看详情

计算机视觉入门培训

计算机视觉入门培训引入计算机视觉的基本概念计算机视觉五大技术计算机视觉主要应用领域计算机视觉落地场景一、引入二、计算机视觉的基本概念What?计算机视觉的概念计算机视觉是使用计算机及相关设备对生物视觉的... 查看详情

一文搞定自动化测试框架restassured实践:对response结果导出(代码片段)

文章霍格沃兹测试学院rest-assured对响应结果的导出这里将继续研究rest-assured对响应结果的更新获取,现有一个登录接口auth/oauth/token,接口的部分返回值如下:HTTP/1.1200OKServer:nginx/1.12.2Date:Mon,13Jan202002:15:11GMTContent-Type:application/json;c... 查看详情

《计算机视觉和图像处理简介-中英双语+代码实践版》:使用动量优化momentum训练神经网络

文章大纲PreparationNeuralNetworkModuleandFunctionforTrainingTrainDifferentNetworksModeldifferentvaluesfortheMomentumParameter使用动量优化Momentum训练神经网络TrainingANeuralNetworkwithMomentumObjectiveforthisNotebook1.TrainDifferentNeuralNetworksModeldifferentvaluesfortheMomentumParam... 查看详情