模型训练:优化人工智能和机器学习,完善DevOps工具的使用
作者:JFrog大中华区总经理董任远
据说法餐的秘诀在于黄油、黄油、更多的黄油。同样,对于DevOps而言,成功的三大秘诀是自动化、自动化、更高程度的自动化,而这一切归根结底都在于构建能够更快速地不断发布新版软件的流程。
尽管人们认为在人工智能(AI)和机器学习(ML)方面,包括特征工程和参数调整,仍然涉及大量的手动工作。但自动化在这些领域至关重要,而MLOps即机器学习运营已被证明对于各类企业来说都是一项出色的业务决策。其最终的目标是实现模型构建与研究的自动化,从而在整个开发流程中进一步实现协作和版本控制。
然而,由于生产中模型的动态性质,这并不总是那么容易实现。部署模型可能会改变反馈闭环和数据,因此需要不断地重新训练和更新。要想在不进行过多人工干预的情况下安全地反复重新部署模型,自动化就至关重要。
采用机器学习来优化使用
在DevOps环境中预测使用模式包括以下两种基本现实场景:
第一种情况,根据DevOps成熟度对企业进行分类,以确定其成熟度以及产品使用中存在的差距。例如,如果订购的工具级别较低,但却有更高级的需求和要求,升级到更高级别就可能会有所帮助。DevOps决策者需要根据团队的使用模式来生成个性化建议,以优化效率。
第二种情况,重点更多在于预测使用模式和检测异常,以识别异常情况的发生时间,并提前一到三个月提出使用见解。这有助于评估DevOps工作流程的健康状况,识别积极或消极的趋势,并更轻松地处理任何突发异常情况。持续的分析以及部署和监控工作可确保高质量的模型投产。
这两种场景类似于销售代表在Salesforce中使用模型的方式。他们会收到有关客户成熟度评级、反馈和可解释性的信息。可解释性的部分会深入地提供有关模型将客户分为高、中或低成熟度的原因。造成这种分类的因素有许多,包括客户体验、培训、技术使用和联系人数量。这些信息使销售代表能够与客户进行更有效的对话,并提出适当的升级或改进建议。
此类分类模型可以使用CatBoost等工具来构建。CatBoost是一款强大的Python机器学习包。这些工具可以处理标签和缺失值,从而简化建模过程。可对各种输入进行考量,包括网站访问、活动出席、自由文本分析、位置、使用模式和第三方数据,以确定企业的DevOps成熟度。即使数据集不完整,通过将这些因素纳入考量,仍能产出有价值的见解。
利用时间序列数据来优化使用
时间序列数据模型也可用于预测使用模式。时间序列模型旨在预测给定月份剩余时间以及未来几个月的使用情况,以此分析历史使用数据,并识别趋势和异常情况。
时间序列数据工具使团队能够以图表的形式实现历史使用数据的可视化,显示周末的使用率较低,而工作日的使用率较高。通过分析这些数据,模型可以预测未来趋势,并提供有关企业健康状况的见解。如果预测使用率下降,可视化结果可能会显示出负面趋势,企业便可采取积极措施来解决这一问题。相反,如果预测使用率增加,企业就可以与供应商合作采取措施,确保能够有效地利用工具。
通过将预测的使用情况与图表上呈现的实际使用情况进行比较,便可识别异常情况。预测数据与实际数据之间的巨大差距表明存在异常,异常情况可能有多重含义,如使用量增加或产品使用不当。及时识别并解决异常对于确保运营效率非常重要。
总之,时间序列模型可以让企业预测使用情况,追踪趋势,识别异常,并采取适当的措施以提高产品利用率。
LSTM模型的长与短
事实证明,长短期记忆(LSTM)模型是优化使用的绝佳方法。为此,模型的输入通常包括三个主要部分:历史每日使用数据、节假日信息以及工作日/周末指标。利用这些输入,模型就能生成非常准确的预测。
LSTM模型可以生成时间点快照,包括创建不同时间段的数据集,以测试模型在多种配置下的性能。Alation等创建SQL查询的工具可用于管理这些数据集,且便于与内部团队成员共享。
团队还需要实施验证和测试流程以确保模型的可靠性。特征重要性对此过程至关重要,且不随时间发生变化。特征重要性的变化可表明数据或模型本身存在问题,因此对这些变化的追踪和监控有助于识别潜在问题。
此外,还需要考虑对输入数据(分类型和数值型)进行测试。对于分类数据,数量和类别的一致性很重要。同时,对数值数据的平均值和标准差等指标进行监控,有助于检测可能需要注意的显著变化。
数据验证、监控和测试对于确保模型的准确性和可靠性至关重要。
通过评估与验证来比较配置
在比较不同配置(尤其是LSTM模型)时,Valohai等工具使团队能够对不同时间范围的多个参数和数据快照执行网格搜索。提供准确率、召回率和精确率等衡量标准,帮助确定模型的最佳配置。
现代ML工具的价值在于存档、共享、以及对执行和结果进行审查的能力。它们还允许对模型性能指标进行调整,而无需全部重新运行。当业务需求发生变化时,这将有助于选择符合新目标的不同配置。
在部署方面,模型通常是按照计划的时间运行批处理,每天在策略时间执行两次。这可确保企业在一日之初即拥有最新数据,且全天能接收更新。应定期对模型进行再训练,以纳入新数据。
应密切监控与预期措施的偏差以及在范围上的重大变化,并触发自动警报,以便及时采取行动。此外,日常用户的反馈在评估模型性能方面起着至关重要的作用,因为这些反馈往往超越了召回率和精确率等传统指标。关闭反馈闭环可确保根据实时用户体验和反馈进行持续改进。
推动价值与效率的提升
创建经过验证且安全的数据科学和模型训练是许多现代企业面临的挑战。通过应用经过验证且有效的DevOps实践,实现从构思到生产和部署的AI和ML流程自动化,对于希望优化在整体技术堆栈中工具使用的企业能够提供巨大的价值。
归根结底,这种做法极具商业意义。它能够避免闲置工具或功能方面的额外支出,从而提高利润。也许更重要的是,它能鼓舞团队士气、提高生产力、留住人才,因为团队成员不会被迫执行重复、乏味且耗时的DevOps任务。任何开发人员都会喜欢这样的环境。
相关文章:
模型训练:优化人工智能和机器学习,完善DevOps工具的使用
作者:JFrog大中华区总经理董任远 据说法餐的秘诀在于黄油、黄油、更多的黄油。同样,对于DevOps而言,成功的三大秘诀是自动化、自动化、更高程度的自动化,而这一切归根结底都在于构建能够更快速地不断发布新版软件的流程。 尽管人…...

WorldCoin 运营数据,业务安全分析
WorldCoin 运营数据,业务安全分析 Worldcoin 的白皮书中声明,Worldcoin 旨在构建一个连接全球人类的新型数字经济系统,由 OpenAI 创始人 Sam Altman 于 2020 年发起。通过区块链技术在 Web3 世界中实现更加公平、开放和包容的经济体系&#…...
Java之Calender类的详细解析
Calendar类 3.1 概述 java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。 有两种方式可以获取GregorianCalendar对象: …...

uniapp 微信小程序 锚点跳转
uniapp文档 以下是我遇到的业务场景,是点击商品分类的某一类 然后页面滚动至目标分类, 首先第一步是设置锚点跳转的目的地,在目标的dom上面添加id属性 然后给每个分类每一项添加点击事件,分类这里的item数据里面有一字段是和上…...
主成分分析笔记
主成分分析是指在尽量减少失真的前提下,将高维数据压缩成低微的方式。 减少失真是指最大化压缩后数据的方差。 记 P P P矩阵为 n m n\times m nm( n n n行 m m m列)的矩阵,表示一共有 m m m组数据,每组数据有 n n n…...

android studio 的 adb配置
首先在 Android Studio 中 打开 File -> Settings: 下载 “Google USB Driver” 这个插件 (真机调试的时候要用到), 并且记一下上面的SDK路径: 右键桌面上的 “我的电脑”, 点击 “高级系统设置”, 配置计算机的高级属性, 有两步: 添加一个新的环境变量 ANDROID_HOME, 变量…...

【HTML5高级第一篇】Web存储 - cookie、localStorage、sessionStorage
文章目录 一、数据存储1.1 cookie1.1.1 概念介绍1.1.2 存储与获取1.1.3 方法的封装1.1.4 总结 1.2 localstorage 与 sessionstorage1.2.1 概述1.2.2 操作数据的属性或方法1.2.3 案例-提交问卷1.2.4 Web Storage带来的好处 附录:1. HTML5提供的数据持久化技术&#x…...

Flink---1、概述、快速上手
1、Flink概述 1.1 Flink是什么 Flink的官网主页地址:https://flink.apache.org/ Flink的核心目标是“数据流上有状态的计算”(Stateful Computations over Data Streams)。 具体说明:Apache Flink是一个“框架和分布式处理引擎”,用于对无界…...

QT实现TCP通信(服务器与客户端搭建)
一、TCP通信框架 二、QT中的服务器操作 创建一个QTcpServer类对象,该类对象就是一个服务器调用listen函数将该对象设置为被动监听状态,监听时,可以监听指定的ip地址,也可以监听所有主机地址,可以通过指定端口号&#x…...
云备份项目
云备份项目 1. 云备份认识 自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中。并且能够随时通过浏览器进行查看并且下载,其中下载过程支持断点续传功能,而服务器也会对上传文件进行热点管理,将非热点文件进行压缩存储&…...

基础算法(一)
目录 一.排序 快速排序: 归并排序: 二.二分法 整数二分模板: 浮点二分: 一.排序 快速排序: 从数列中挑出一个元素,称为 "基准"重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面&#…...

Consider defining a bean of type问题解决
Consider defining a bean of type问题解决 Consider defining a bean of type问题解决 包之后,发现项目直接报错Consider defining a bean of type。 会有一些包你明明Autowired 但是还是找不到什么bean 导致你项目启动不了 解决方法一: 这个问题主要是因为项目拆包…...

Android 1.2.1 使用Eclipse + ADT + SDK开发Android APP
1.2.1 使用Eclipse ADT SDK开发Android APP 1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新…...

Llama-7b-hf和vicuna-7b-delta-v0合并成vicuna-7b-v0
最近使用pandagpt需要vicuna-7b-v0,重新过了一遍,前段时间部署了vicuna-7b-v3,还是有不少差别的,transforms和fastchat版本更新导致许多地方不匹配,出现很多错误,记录一下。 更多相关内容可见Fastchat实战…...
Centos、OpenEuler系统安装mysql
要在CentOS上安装MySQL并设置开机自启和root密码,请按照以下步骤进行操作: 确保您的CentOS系统已连接到Internet,并且具有管理员权限(root或sudo访问权限)。打开终端或SSH会话,使用以下命令安装MySQL&…...

如何在Win10系统上安装WSL(适用于 Linux 的 Windows 子系统)
诸神缄默不语-个人CSDN博文目录 本文介绍的方法不是唯一的安装方案,但在我的系统上可用。 文章目录 1. 视频版2. 文字版和代码3. 本文撰写过程中使用到的其他网络参考资料 1. 视频版 B站版:在Windows上安装Linux (WSL, 适用于 Linux 的 Windows 子系统…...

单片机通用学习-什么是寄存器?
什么是寄存器? 寄存器是一种特殊的存储器,主要用于存储和检查微机的状态。CPU寄存器用于存储和检查CPU的状态,具体包括计算中途数据、程序因中断或子程序分支时的返回地址、计算结果为零时的负值、计算结果为零时的信息、进位值等。 由于CP…...

【C语言】文件操作详解
文章目录 前言一、文件是什么二、文件具体介绍1.文件名2.文件类型3.文件缓冲区4.文件指针5.文件的打开和关闭 三、文件的顺序读写1.字符输入函数(fgetc)2.字符输出函数(fputc)3.文本行输入函数(fgets)4.文本…...

栈(Stack)的详解
目录 1.栈的概念 2.栈的模拟实现 1.栈的方法 2.模拟栈用(整型)数组的形式呈现 2.1栈的创建 2.2压栈 2.3栈是否为空 2.4出栈 2.5获取栈中有效元素个数 2.6获取栈顶元素 2.7完整代码实现 1.栈的概念 从上图中可以看到, Stack 继承了…...

深入了解GCC编译过程
关于Linux的编译过程,其实只需要使用gcc这个功能,gcc并非一个编译器,是一个驱动程序。其编译过程也很熟悉:预处理–编译–汇编–链接。在接触底层开发甚至操作系统开发时,我们都需要了解这么一个知识点,如何…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...