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

news2024/11/16 19:30:17

《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.coloradmin.cn/o/1235579.html

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

相关文章

第十一章 目标检测中的NMS(工具)

精度提升 众所周知,非极大值抑制NMS是目标检测常用的后处理算法,用于剔除冗余检测框,本文将对可以提升精度的各种NMS方法及其变体进行阶段性总结。 总体概要: 对NMS进行分类,大致可分为以下六种,这里是依…

OSG文字-各种文字效果(边框、阴影及颜色倾斜)示例(2)

各种文字效果(边框、阴影及颜色倾斜)示例 各种文字效果(边框、阴影及颜色倾斜)示例的代码如程序清单9-2所示&#xff1a; 1. /* 各种文字效果(边框、阴影及颜色倾斜)示例 */ 2. osg::ref_ptr<osg::Camera> createAllKindText(const string &strDataFolder) 3. {…

火狐挂代理访问问题Software is preventing Firefox from safely connecting to this site

1、报错 Software is preventing Firefox from safely connecting to this site2、解决步骤 火狐浏览器访问http://burp&#xff0c;右上角有下载按钮下载下来证书文件 在 Firefox 中设置证书颁发机构 (CA) 验证

【在飞书捷径中用HTTP请求】

在飞书捷径的请求体中的变量&#xff0c;注意外面要有个双引号。

直播岗位认知篇

一、直播岗位概述 直播岗位&#xff0c;也称为直播主播或直播运营&#xff0c;是指在互联网直播平台上进行直播活动的工作岗位。该岗位的主要职责是通过直播形式&#xff0c;向观众展示自己的才艺、分享生活、销售产品或服务&#xff0c;并引导观众互动和参与。直播主播需要具…

渲染器——双端Diff算法

简单 Diff 算法利用虚拟节点的 key 属性&#xff0c;尽可能地复用 DOM 元素&#xff0c;并通过移动 DOM 的方式来完成更新&#xff0c;从而减少不断地创建和销毁DOM 元素带来的性能开销。但是&#xff0c;简单 Diff 算法仍然存在很多缺陷&#xff0c;这些缺陷可以通过双端 Diff…

GPU Microarch 学习笔记【3】Tensor Core

目录 1. 指令与架构 2. Load 3. 计算MMA 4. Set, Step 与thread group 5. OCTET 6. Tensor Core微架构 7. Final Nvidia自从Volta/Turing&#xff08;2018&#xff09;架构开始&#xff0c;在stream multi processor中加入了tensor core&#xff0c;用于加速矩阵计算。如…

c语言上机作业:迭代法求平方根

1.题目 设计一个函数func用迭代法编程求一个数的平方根。平方根的迭代公式为&#xff1a;牛顿迭代法&#xff0c;(要求前后两次迭代值求差的绝对值小于10的-9次方) 2.思路 a.这里要求我们设置一个函数能够完成牛顿迭代法&#xff0c;这里需要使用到函数迭代的知识&#xff0…

【Java 进阶篇】揭秘 Jackson:Java 对象转 JSON 注解的魔法

嗨&#xff0c;亲爱的同学们&#xff01;欢迎来到这篇关于 Jackson JSON 解析器中 Java 对象转 JSON 注解的详细解析指南。JSON&#xff08;JavaScript Object Notation&#xff09;是一种常用于数据交换的轻量级数据格式&#xff0c;而 Jackson 作为一款优秀的 JSON 解析库&am…

基于SSM的社区生鲜商城的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

OpenAI 超 700 名员工联名逼宫董事会;ChatGPT 新功能“阅后即焚”丨 RTE 开发者日报 Vol.89

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

相对定位、绝对定位、固定定位、绝对定位堆叠顺序

相对定位&#xff1a;相对自己本身进行偏移 CSS语法&#xff1a; position: relative;/*相对自己进行定位*/ top: 10px;/*距离上边*/ left: 10px;/*距离左边*/ 演示图&#xff1a; 绝对定位&#xff1a;默认以浏览器进行定位。如果想依照父盒子定位&#xff0c;需要在父盒子…

SpringBean的配置详解

Bean的基础配置 例如&#xff1a;配置UserDaoImpl由Spring容器负责管理 <beanid"userDao"class"com.xfy.dao.Impl.UserDaoImpl"></bean> 此时存储到Spring容器中的Bean的beanName是userDao&#xff0c;值是UserDaoImpl&#xff0c;可以根据bea…

P2 C++变量

前言 一 C变量的作用 本期我们来讨论一下c 中的变量。 在一个 C 程序中&#xff0c;大部分内容实际上都是在使用数据。我们操作任何类型的数据&#xff0c;如包括我们想要改变、想要修改&#xff0c; 想要读和写数据。我们都需要把数据存储进叫做变量的东西里面。变量允许我们…

万字解析设计模式之桥接模式、外观模式

一、桥接模式 1.1概述 桥接模式是一种结构型设计模式&#xff0c;它的作用是将抽象部分和实现部分分离开来&#xff0c;使它们能够独立地变化。这样&#xff0c;抽象部分和实现部分可以分别进行扩展&#xff0c;而不会相互影响。它是用组合关系代替继承关系来实现&#xff0c;…

如何在AIX操作系统上修改Java环境变量

AIX操作系统是IBM的Unix操作系统&#xff0c;通常用于企业级应用和服务器环境。在AIX上配置Java环境变量是执行Java应用程序和开发Java代码的重要步骤。本文将详细介绍如何在AIX上修改Java环境变量&#xff0c;并提供具体示例来帮助你完成这个任务。 步骤1&#xff1a;确定Java…

vue3组件外使用route

1.vue3组件外使用route 在写vue3项目时&#xff0c;有时候我们会把组件内部分逻辑代码分离到外部js中&#xff0c;然后在组件里通过import导入。此时如果我们要在组件外使用route对象&#xff0c;方式与组件内不同&#xff1a; 组件内&#xff1a; import { useRoute } from…

CANopen权威指南【CAN总线协议】

1这个总线定义是老外发明的。 想要使用&#xff0c;就必须按照协议去配置数据帧。 CIA301和cia402协议&#xff0c;实际就是寄存器地址上某一段的定义。 下载地址&#xff1a; CAN in Automation (CiA): Technical documents 注册下载也是非常快的。【没什么难度】 就是资…

基于Python(Pandas+Pyecharts)实现全国热门旅游景点数据可视化【500010037】

导入模块 import jieba import pandas as pd from collections import Counter from pyecharts.charts import Line,Pie,Scatter,Bar,Map,Grid from pyecharts.charts import WordCloud from pyecharts import options as opts from pyecharts.globals import ThemeType from…

【C++】map multimap

文章目录 1.map介绍2.map的使用3.multimap介绍4.multimap的使用 1.map介绍 map的文档 翻译&#xff1a; map是关联容器&#xff0c;它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中&#xff0c;键值key通常用于排序和惟一地标识元素&#x…