OpenShift AI - 部署并使用 LLM 模型

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

文章目录

  • 安装 OpenShift AI 环境
  • 安装 Minio 对象存储软件
  • 配置 Single Model Serving 运行环境
  • 创建项目和 Workbench
  • 准备模型和配置 Model Server
  • 访问 LLM 模型
  • 参考

安装 OpenShift AI 环境

先根据《OpenShift AI - 部署 OpenShift AI 环境,运行 AI/ML 应用(视频)》一文完成 OpenShift AI 环境的安装。
注意:本应用无需 GPU 即可运行。

安装 Minio 对象存储软件

根据《OpenShift 4 - 管理和使用 OpenShift AI 运行环境》一文安装 MinIO。

配置 Single Model Serving 运行环境

  1. 使用默认选项安装 Red Hat OpenShift Service Mesh Operator 和 Red Hat OpenShift Serverless Opeartor。
  2. 查看 OpenShift AI Operator 的 DSC Initialization 对象,确认包含以下内容:
spec:applicationsNamespace: redhat-ods-applicationsmonitoring:managementState: Managednamespace: redhat-ods-monitoringserviceMesh:controlPlane:metricsCollection: Istioname: data-science-smcpnamespace: istio-systemmanagementState: Managed
  1. 查看 OpenShift AI Operator 的 Data Science Cluster 对象,确认包含以下内容:
   kserve:managementState: Managedserving:ingressGateway:certificate:secretName: knative-serving-certtype: SelfSignedmanagementState: Managedname: knative-serving
  1. 确认在 OpenShift AI Operator 中的 “所有实例” 中出现以下 FeatureTracker。
    在这里插入图片描述
  2. 执行以下命令查看创建的 ServiceMesh 和 Serverless 对象。
$ oc get deploy -n istio-system
NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
istio-egressgateway        1/1     1            1           11m
istio-ingressgateway       1/1     1            1           11m
istiod-data-science-smcp   1/1     1            1           11m $ oc get deploy -n knative-serving
NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
activator               2/2     2            2           7m21s
autoscaler              2/2     2            2           7m21s
autoscaler-hpa          2/2     2            2           7m19s
controller              2/2     2            2           7m20s
domain-mapping          2/2     2            2           7m20s
domainmapping-webhook   2/2     2            2           7m20s
net-istio-controller    2/2     2            2           7m18s
net-istio-webhook       2/2     2            2           7m18s
webhook                 2/2     2            2           7m19s$ oc get deployment kserve-controller-manager -n redhat-ods-applications
NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
kserve-controller-manager   1/1     1            1           6m55s
  1. 在 OpenShift AI 控制台中的 Cluster setting 中确认 Single mode serving platform 被选中。
    在这里插入图片描述

创建项目和 Workbench

  1. 在 OpenShift AI 控制台中创建一个名为 llm 的 Data Science Project。

  2. 在 llm 项目中使用以下配置创建名为 llm 的 Workbench。

    Name:llm
    Image selection:TensorFlow
    Version selection:2023.2
    Container:Small
    Create new data connectionName : My StorageAccess key : minioSecret key : minio123Endpoint : http://minio-service.minio.svc.cluster.local:9000Region : no Bucket : my-storage
    

准备模型和配置 Model Server

  1. 进入 Workbench 对应的 Jupyter Notebook,然后克隆 https://github.com/rh-aiservices-bu/test-drive.git。
  2. 运行 /test-drive/llm/1_download_save.ipynb,完成后会自动将模型相关文件传到 Minio 中 my-storage/models/flan-t5-small 里。
    在这里插入图片描述
  3. 在 Workbench 的 Models and model servers 中进入 Single-model serving platform 的 Deploy model。
    在这里插入图片描述
  4. 在 Deploy model 弹出窗口按下图的配置部署模型。
    在这里插入图片描述
  5. 完成配置后 Workbench 将显示以下内容。将 flan-t5-small 对应的 Inference endpoint 地址复制下来。
    在这里插入图片描述

访问 LLM 模型

  1. 在 Jupyter 中打开 2_grpc_request.ipynb 文件,并将上一步复制的地址赋给 infer_endpoint 变量。
infer_endpoint = "https://flan-t5-small-llm.apps.cluster-4cc45.dynamic.redhatworkshops.io"
  1. 可以修改请求问题,然后运行2_grpc_request.ipynb 文件,即可获得由 flan-t5-small 生成的返回结果。
client.make_request("what is your name?", model_id=model_id)

在这里插入图片描述

  1. 查看 llm 项目的 “拓扑” 视图,确认已经运行起 knative Service 来响应请求。
    在这里插入图片描述

参考

https://access.redhat.com/documentation/en-us/red_hat_openshift_ai_self-managed/2.5/html/working_on_data_science_projects/serving-large-language-models_serving-large-language-models#about-the-single-model-serving-platform_serving-large-language-models
https://github.com/opendatahub-io/caikit-tgis-serving#installation
https://rh-aiservices-bu.github.io/rhoai-rh1-testdrive/modules/llm/download-save-llm.html
https://github.com/openshift-ai-examples/openshift-ai-examples/blob

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

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

相关文章

DCTNet

DCTNet http://giantpandacv.com/academic/%E7%AE%97%E6%B3%95%E7%A7%91%E6%99%AE/%E9%A2%91%E5%9F%9F%E4%B8%AD%E7%9A%84CNN/CVPR%202020%20%E5%9C%A8%E9%A2%91%E5%9F%9F%E4%B8%AD%E5%AD%A6%E4%B9%A0%E7%9A%84DCTNet/ 一个对输入图像进行频域转换和选择的方法,达到…

python实现手机号归属地查询

手机上突然收到了某银行的短信提示,看了一下手机的位数,正好是11位。我一想,这不就是标准的手机号码吗?于是一个想法涌上心头——用python的库实现查询手机号码归属地查询自由。 那实现的效果如下: 注:电…

2.3_3 进程互斥的硬件实现方法

文章目录 2.3_3 进程互斥的硬件实现方法(一)中断屏蔽方法(二)TestAndSet指令(三)Swap指令 总结(四)互斥锁 2.3_3 进程互斥的硬件实现方法 学习提示: 1.理解各方法的原理 …

Python从0到100(二):Python语言介绍及第一个Pyhon程序

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

springcloud:3.3测试重试机制

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用:http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http:/…

UNIapp实现局域网内在线升级

首先是UNIapp 生成apk 用Hbuilder 进行打包 可以从网站https://www.yunedit.com/reg?gotocert 使用自有证书,目测比直接使用云证书要快一些。 发布apk 网站 用IIS发布即可 注意事项中记录如下内容 第一、需要在 iis 的MiMe 中添加apk 的格式,否则无法…

如何本地创建websocket服务端并发布到公网实现远程访问

文章目录 1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功,暴露端口默认99995. 创建隧道映射内网端口6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号7. 以…

如何实现飞书与金蝶无缝对接,提升业务效率与客户满意度?

一、客户介绍 某贸易有限公司是一家专业从事进口葡萄酒和高端烈酒销售的企业。在市场竞争日益激烈的今天,该公司始终坚持以客户为中心,以市场为导向,不断创新和进步。公司不仅注重传统销售渠道的拓展,还积极拥抱互联网&#xff0…

processing绘制笑脸

笑脸效果图: processing代码: void setup(){size(1000,1000);//Canvas sizebackground(#ffcc33);//Canvas background color } void draw(){ strokeWeight(12);//face-width12px fill(#ffffcc);//face arc(500,500,200,200,0,TWO_PI);//face-size strok…

【推荐算法系列十八】:DSSM 召回算法

参考 推荐系统中 DSSM 双塔模型汇总(二更) DSSM 和 YouTubeDNN 都是比较经典的 U2I 模型。 U2I 召回 U2I 召回也就是 User-to-Item 召回,它基于用户的历史行为以及用户的一些个人信息,对系统中的候选物品进行筛选,挑…

备考2024年上海高考数学:历年选择题真题练一练(2014~2023)

今天距离2024年高考还有三个多月的时间,今天我们来看一下2014~2023年的上海高考数学的选择题,从过去十年的真题中随机抽取5道题,并且提供解析。 后附六分成长独家制作的在线练习集,科学、高效地反复刷这些真题,吃透真题…

Sora爆火,数字人IP如何借助AIGC视频生成软件制作短视频营销?

ChatGPT、Sora等大模型的出现,创新了短视频内容创作生产方式。但目前Sora模型无法准确模拟复杂场景的物理特性,并且可能无法理解因果关系导致视频失真。 广州虚拟动力基于用户使用需求,推出了AIGC数字人视频生成平台,企业、品牌可…

Android MediaCodec 简明教程(五):使用 MediaCodec 编码 ByteBuffer 数据,并保存为 MP4 文件

系列文章目录 Android MediaCodec 简明教程(一):使用 MediaCodecList 查询 Codec 信息,并创建 MediaCodec 编解码器Android MediaCodec 简明教程(二):使用 MediaCodecInfo.CodecCapabilities 查…

每日一练:LeeCode-707. 设计链表 【链表+虚拟头结点+设计】

每日一练:LeeCode-707. 设计链表 【链表虚拟头结点设计】 思路设置虚拟头节点 本文是力扣 每日一练:LeeCode-707. 设计链表 【链表虚拟头结点设计】 学习与理解过程,本文仅做学习之用,对本题感兴趣的小伙伴可以出门左拐LeeCode-70…

0101二阶与三阶行列式-行列式-线性代数

一 引例 求解二元一次方程组 { a 11 x 1 a 12 x 2 b 1 a 21 x 1 a 22 x 2 b 2 \begin{cases} a_{11}x_1a_{12}x_2b_1\\ a_{21}x_1a_{22}x_2b_2\\ \end{cases} {a11​x1​a12​x2​b1​a21​x1​a22​x2​b2​​ 解: 1 a 21 − 2 a 11 ⇒ x 2 a 11 b 2 − a…

MQL5学习之简单移动平均线MA的编写

昨天还是有点高估自己了,MACD相对较难一点,改学MA的编写,首先明确MA的计算,假如有4个值,p[1,2, 3, 4], period3, 则v[0]p[0], v[1]p[1],v[2](p[0]p[1]p[2])/32, v[3](v[2]*3p[3]-p…

ChatGPT论文指南|ChatGPT如何助力论文中的数据分析!【建议收藏】

点击下方▼▼▼▼链接直达AIPaperPass ! AIPaperPass - AI论文写作指导平台 公众号原文▼▼▼▼: ChatGPT论文指南|ChatGPT如何助力论文中的数据分析!【建议收藏】 小编在之前的论文写作流程中,介绍了大量论文文字工作&#xff…

Effective objective-c-- 内存管理

Effective objective-c-- 内存管理 前言理解引用计数引用计数工作原理属性存取方法中的内存管理自动释放池保留环要点 以ARC简化引用计数使用ARC时必须遵循的方法和命名规则变量的内存管理语义ARC如何清理实例变量覆写内存管理方法要点 在dealloc方法中只释放引用并解除监听要点…

探索Linux世界:初次接触和基本指令(文件操作)

文章目录 1.基本介绍和准备2.基本指令和Linux的基本操作3.几个重要基本指令3.1 ls - 列出文件和目录3.1.1文件的知识3.1.2 .和..文件 3.2pwd - 显示当前工作目录3.2.1路径知识 3.3 cd - 切换目录3.4 touch - 创建文件或更新时间戳3.5mkdir - 创建新目录3.6rm - 删除文件或目录3…

深入了解 Android 中的 FrameLayout 布局

FrameLayout 是 Android 中常用的布局之一&#xff0c;它允许子视图堆叠在一起&#xff0c;可以在不同位置放置子视图。在这篇博客中&#xff0c;我们将详细介绍 FrameLayout 的属性及其作用。 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/androi…