OpenShift 4 - 部署 RHODS 环境,运行 AI/ML 应用(视频)

《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在 OpenShift 4.14 + RHODS 1.33 的环境中验证

文章目录

  • RHODS 简介
  • 安装 RHODS 环境
    • 运行环境说明
    • 用 RHODS Operator 安装环境
    • 创建 Jupyter Notebook 运行环境
  • 开发调式 AI/ML 应用
  • 部署运行 AI/ML 应用
  • 视频
  • 参考

RHODS 简介

Red Hat OpenShift AI 是一个专注于人工智能的产品组合,为人工智能/ML 实验和模型的整个生命周期提供工具,其中包括 Red Hat OpenShift Data Science (RHODS)。RHODSe 是红帽 OpenShift AI 的核心构成软件,它是红帽驱动的社区开源软件 Open Data hub 的企业版。

RHODS 是面向混合云的开源 ML 平台。它向数据科学家和开发人员提供了一个完全受支持的环境,以便在部署到生产环境之前进行快速开发、训练和测试ML 模型。RHODS 提供了 ML 常用的 Jupyter notebooks-as-a-service、TensorFlow 和 PyTorch 等工具环境以及用于模型服务和数据科学管道的 MLOps 组件,而且还对这些组件以及流程进行了集成,使得开箱即用。

RHODS 是独立于 OpenShift 的产品,它即可在红帽托管的公有云上部署运行,也可在用户自管的 OpenShift 环境中部署运行。在这里插入图片描述

安装 RHODS 环境

运行环境说明

  • 本文使用的是单机版 OpenShift Local 4.14 环境。
  • 本文除了要以容器的方式运行部署 RHODS(包含 Jupyter notebooks、ML 运行监控等)环境,还要部署测试应用(至少分配 8G 内存),因此为整个 OpenShift Local 的虚机提供了 20vCore + 48GB 内存 + 250GB 硬盘。
  • 运行 RHODS 的硬件环境是否需要有 GPU 取决于在其上运行的 ML 模型是否强制需要。如有需要,可在配有 GPU 资源的 OpenShift 上为运行的 ML 声明分配 GPU。但如无强制需要和声明,ML 模型可在 CPU 上运行。由于本文意为演示 RHODS,OpenShift 运行环境没有配 GPU,ML 直接运行在 CPU 上。

用 RHODS Operator 安装环境

  1. 在 OpenShift 的 OperatorHub 中找到并使用默认配置安装 Red Hat OpenShift Data Science Operator。
  2. 在 redhat-ods-operator 项目中使用默认配置创建一个 Red Hat OpenShift Data Science 实例。
  3. 完成后会在 OpenShift 中创建以下 4 个项目:redhat-ods-applications、redhat-ods-monitoring、redhat-ods-operator、 redhat-notebook。安装完后对应的项目中部署的资源如下面几个截图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. 打开 redhat-ods-applications 项目中的 rhods-dashboard 路由地址。登录后即可看到如下图的 OpenShift Data Science 的控制台。
    在这里插入图片描述

创建 Jupyter Notebook 运行环境

  1. 点击上图的 Jupyter 的 Launch application 进入Start a notebook server 页面,
  2. 在 Start a notebook server 页面中选中 TensorFlow 2023.1(该环境支持运行 CUDA、Python 和 TensorFlow);Container Size 选择 Small。
  3. 点击 Start Server 按钮后会出现 Starting server 窗口显示创建环境的进度。由于这个过程会下载相应的 Image,所以需要等一段时间。完成后会显示下图:
    在这里插入图片描述
  4. 点击上图的 Open in new tab 后会出现 Jupyter 页面。
    在这里插入图片描述

开发调式 AI/ML 应用

  1. 点击上图 Git 图标,然后再选择 Clone a Repository。
    在这里插入图片描述
  2. 在弹出的 Clone a repo 窗口中提供 https://github.com/rh-aiservices-bu/licence-plate-workshop.git,然后点击 Clone。完成 Clone 后可以在 Jupyter 中看到如下图的 license-plate-workshop 应用的文件和目录。
    在这里插入图片描述
  3. 依次打开开头为 01 到 04 的 Jupyter 文件,然后点击 Start the selected the cells and advance 按钮逐步执行。
    在这里插入图片描述
  4. 在完成下一节 “部署运行 AI/ML 应用” 后再打开开头 05 的 Jupyter 文件。先将 my_image 和 my_route 改为 car.jpg 和 ML 应用的路由地址。然后运行即可看到从 car.jpg 文件中识别的车牌。
    在这里插入图片描述

部署运行 AI/ML 应用

  1. 在 OpenShift 的 “开发者” 视图中,创建 ai-app 项目。
  2. 进入“添加”,再进入 Git 仓库。
  3. 在 Git Repo URL 中提供 https://github.com/rh-aiservices-bu/licence-plate-workshop.git。
  4. 在 “显示高级路由选项” 里去掉 “安全路由” 选项。
  5. 最后点击 “创建”。
  6. OpenShift 会创建一个 “构建” 来生成该 ML 应用的镜像,然后再部署生成的 ML 应用镜像。
    在这里插入图片描述
  7. 在完成部署后,可以通过上图的 “路由” 打开 ML 应用页面,会显示下图运行状态。
    在这里插入图片描述
  8. 最后可继续完成上一节的最后一步,运行 05 文件,从客户端调用 ML 应用。

视频

参考

https://ai-on-openshift.io/getting-started/openshift-data-science
https://redhat-scholars.github.io/rhods-lp-workshop
https://cloud.redhat.com/blog/scaling-model-serving-with-red-hat-openshift-data-science
https://developers.redhat.com/learn/openshift-data-science
https://myopenshiftblog.com/installing-openshift-data-science-ods-in-self-managed-environment
https://medium.com/@contact.av.rh/unleashing-the-full-potential-of-rhods-for-model-fine-tuning-and-inferencing-99a67b65e74e

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

国产压力测试工具的主要作用

国产压力测试工具可以帮助软件开发和维护团队对系统进行全面的性能测试,以评估系统在高负载下的性能表现。以下是国产压力测试工具的主要作用: 性能评估:国产压力测试工具可以模拟多用户同时对系统进行访问和操作,通过对系统的响应…

SpringBoot 自动装配原理 - 支付宝支付封装starter

SpringBoot 自动装配 SpringBoot 自动装配原理详细介绍自定义 Spring Boot Starter1.读取配置文件2.注册 AlipayClient bean3.核心代码编写4.注册 AlipayAPI bean5.编写 META-INF/spring.factories 文件6.项目结构测试1.创建一个测试项目,引入自定义 starter 依赖2.…

golang学习笔记——接口和继承比较1

继承 Go 语言的设计之初,就不打算支持面向对象的编程特性,因此 Go 不支持面向对象的三大特性之一——继承。但是 Go 可以通过组合的思想去实现 “继承”。继承是面向对象的三大特性之一,继承是从已有的类中派生出新的类,新的类能…

基数排序详解(LSD方法+MSD方法+思路+图解+代码)

文章目录 基数排序一、基数排序概念1.LSD排序法(最低位优先法)2.MSD排序法(最高位优先法) 基数排序 一、基数排序 概念 基数排序是一种非比较型整数排序算法 将整数按位数切割成不同的数字,然后按每个位数分别比较 …

函数有返回类型,但函数体未返回类型,程序崩溃问题记录

问题 使用类指针调用函数时&#xff0c;程序崩溃。 问题定位&#xff1a; name new nameSetting;name->setName("helloworld");qDebug().noquote() << name->getName();原因 class nameSetting { public:nameSetting();QString setName(const QStri…

短视频配音软件有哪些?这些常用的短视频配音软件

短视频行业近年来发展得很快&#xff0c;几乎闯入了我们每个现代人的生活&#xff0c;它以其独有的特点和乐趣&#xff0c;也收获了大批短视频爱好者&#xff0c;配音是短视频创作过程中不可或缺的环节&#xff0c;今天&#xff0c;我们就来聊聊短视频配音及好用的配音软件。 短…

关闭bitlocker加密

windows11的笔记本电脑买回来发现分驱都处于bitlocker状态&#xff0c;上网上搜索都是说进入控制面板的安全项进行关闭&#xff0c;包括去搜索栏搜索“管理 BitLocker”&#xff0c;对搜索出来的项打开&#xff0c;经过试验&#xff0c;它们进入的是同一个位置&#xff0c;只有…

详解Python安装requests库的实例代码

文章目录 前言基本用法基本的get请求带参数的GET请求解析json关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前…

【20年扬大真题】编写对数组求逆的递归算法

【20年扬大真题】 编写对数组求逆的递归算法 void swap(int* a, int* b) {int tmp *b;*b *a;*a tmp; } void Ni(int arr[],int left,int right) {if (left > right) {return;}swap(&arr[left], &arr[right]);Ni(arr, left 1, right - 1); } int main() {int ar…

全网最全jmeter接口测试/接口自动化测试看这篇文章就够了:跨线程组传递jmeter变量及cookie的处理

setUp线程组 setUp thread group&#xff1a; 一种特殊类型的线程组&#xff0c;用于在执行常规线程组之前执行一些必要的操作。 在 setup线程组下提到的线程行为与普通线程组完全相同。不同的是执行顺序--- 它会在普通线程组执行之前被触发&#xff1b; 应用场景举例&#xf…

Oracle数据库笔记(一)

1.概述 Oracle版本 19c 在线迁移、自适应扫描、自适应数据共享11g 企业管理器、自动化诊断工具、自动化性能管理 Oracle特点 可用性强可扩展性强数据安全性强稳定性强 常见数据库 小 Access中 SQL Server、MySQL大 Oracle、DB2 2.数据、数据库、数据库管理系统、数据库系…

基于知识问答的上下文学习中的代码风格11.20

基于知识问答的上下文学习中的代码风格 摘要1 引言2 相关工作3 方法3.1 概述3.2 元函数设计3.3 推理 4 实验4.1 实验设置4.2 实施细节4.3 主要结果 摘要 现有的基于知识的问题分类方法通常依赖于复杂的训练技术和模型框架&#xff0c;在实际应用中存在诸多局限性。最近&#x…

redis运维(十二)

一 位图 ① 概念 1、说明&#xff1a;位图还是在操作字符串2、位图玩字符串在内存中存储的二进制3、ASCII字符通过映射转化为二进制4、操作的是字符串value ② ASCII字符铺垫 1、控制ASCII字符 2、ASCII可显示字符 ③ SETBIT 细节&#xff1a; setbit 命令的返回值是之…

算法分析与设计课后练习22

设W(5,7,10,12,15,18,20)和M35&#xff0c;使用过程SUMOFSUB找出W种使得和数等于M的全部子集并画出所生成的部分状态空间树

打破传统束缚,释放服务潜能:本地生活服务商聚合系统引领行业新风向!

本地生活服务商聚合系统是一种集合多平台、多项目的创新型服务系统&#xff0c;它打破了传统服务商系统的一对一限制&#xff0c;为创业者和运营商带来了诸多优势。小多将深入探讨本地生活服务商聚合系统的优势。 随着互联网的快速发展&#xff0c;本地生活服务也迎来了蓬勃的发…

Java实现围棋算法

围棋是一种源自中国的棋类游戏&#xff0c;也是世界上最古老、最复杂的棋类游戏之一。该游戏由黑白两方交替放置棋子在棋盘上进行&#xff0c;目的是将自己的棋子占据更多的空间&#xff0c;并将对手的棋子围死或吃掉&#xff0c;最终获得胜利。围棋不仅是一种游戏&#xff0c;…

审计dvwa高难度命令执行漏洞的代码,编写实例说明如下函数的用法

审计dvwa高难度命令执行漏洞的代码 &#xff0c;编写实例说明如下函数的用法 代码&#xff1a; <?phpif( isset( $_POST[ Submit ] ) ) {// Get input$target trim($_REQUEST[ ip ]);// Set blacklist$substitutions array(& > ,; > ,| > ,- > ,$ …

PACS系统源码,WORKLIST数字化工作流程,影像数字化存储,电子报告书写、胶片打印

PACS系统源码 可与医院HIS、LIS无缝连接 PACS系统以实现医学影像数字化存储、诊断为核心任务&#xff0c;从医学影像设备&#xff08;如CT、CR、DR、MR、DSA、RF等&#xff09;获取影像&#xff0c;集中存储、综合管理医学影像及病人相关信息&#xff0c;建立数字化工作流程。 …

Linux 环境配置小白入门

Linux从 全栈开发centOS 7 到 运维 一 Linux 入门概述1.1 操作系统1.2 Linux 简介1.3 Linux 系统组成1.4 Linux 发行版1.5 Linux 应用领域1.6 Linux vs Windows 二 虚拟机2.1 虚拟机介绍2.2 VMware WorkStation 安装2.3 VMware WorkStation 配置检查2.3 安装 CentOS 72.3.1 安装…

PIL如何批量给图片添加文字水印?

PIL如何批量给图片添加文字水印&#xff1f; 1 简单引入2 关于PIL3 本文涉及的PIL的几个类4 实现原理5 实现过程5.1 原始图片5.2 导入相关模块5.3 初始化数据5.4 水印字体设置5.5 打开原始图片并新建存储对象5.6 计算图片和水印的大小5.7 选择性设置水印文字5.8 绘制文字并设置…
最新文章