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.pswp.cn/news/719186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719186.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

arm-linux-gnueabi、arm-linux-gnueabihf 交叉編譯器區別

1、arm-linux-gnueabi: 使用軟件浮點(軟浮點)。這意味著所有的浮點運算都將由軟件庫來處理,而不會利用硬件中的浮點運算單元。因此,生成的目標代碼包含了對軟件浮點庫的調用。 2、arm-linux-gnueabihf: 使…

c++八股文:c++新特性

文章目錄 [toc] 1.C11的新特性有哪些2.智能指針3.類型推導4.左值和右值5.nullptr6.范圍for循環7.lambda表達式參考 1.C11的新特性有哪些 語法的改進 (1)統?的初始化?法 (2)成員變量默認初始化 (3)auto關…

mybatis中#{}和${}的區別?

#{}是占位符,預編譯處理;${}是拼接符,字符串替換,沒有預編譯處理。 Mybatis在處理#{}時,#{}傳入參數是以字符串傳入,會將SQL中的#{}替換為?號,調用PreparedStatement的set方法來賦值。 Mybat…

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的庫實現查詢手機號碼歸屬地查詢自由。 那實現的效果如下: 注:電…

達夢數據庫基礎操作(一):用戶操作

達夢數據庫基礎操作(一):用戶操作 1 達夢運行狀態 SELECT banner as 版本信息 FROM v$version;1.2 達夢版本號 SELECT banner as 版本信息 FROM v$version;1.3 用戶相關操作 默認用戶名密碼:SYSDBA/SYSDBA 注意:在哪個數據庫下創建的用戶…

2.3_3 進程互斥的硬件實現方法

文章目錄 2.3_3 進程互斥的硬件實現方法(一)中斷屏蔽方法(二)TestAndSet指令(三)Swap指令 總結(四)互斥鎖 2.3_3 進程互斥的硬件實現方法 學習提示: 1.理解各方法的原理 …

寶塔Linux面板遷移網站數據的詳細步驟是什么?

寶塔Linux面板遷移網站數據的詳細步驟是什么? 準備工作:確保寶塔面板處于最新版本并與服務器環境一致。如果需要遷移到其他機器,需要將遷入服務器的寶塔面板信息和API秘鑰填寫好。秘鑰的有效期為7天,建議在使用后手動關閉接口以保…

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:/…

Vue 3 中如何使用全局 API?

Vue 3 中的全局 API 使用詳解 Vue 3 相較于 Vue 2 在全局 API 的使用上有了較大的變化。Vue 3 引入了新的全局 API 創建方式,并通過 createApp 方法替代了 Vue 2 中的 new Vue()。這種變化使得 Vue 3 在全局 API 的使用上更加靈活,也更好地支持了 tree-…

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…

Python中的自然語言處理和文本挖掘

在Python中,自然語言處理(NLP)和文本挖掘通常涉及對文本數據進行清洗、轉換、分析和提取有用信息的過程。Python有許多庫和工具可以幫助我們完成這些任務,其中最常用的包括nltk(自然語言處理工具包)、spaCy…

統計C語言代碼行數的pyton代碼

首先是白嫖以下大神的代碼:統計python代碼行數小工具_linecount工具-CSDN博客 然后,讓ChatGPT幫我改為如下的完整代碼: import os from tkinter import Tk, Label, Button, filedialog def open_file(file_path, encoding): try: file op…

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

參考 推薦系統中 DSSM 雙塔模型匯總(二更) DSSM 和 YouTubeDNN 都是比較經典的 U2I 模型。 U2I 召回 U2I 召回也就是 User-to-Item 召回,它基于用戶的歷史行為以及用戶的一些個人信息,對系統中的候選物品進行篩選,挑…

備考2024年上海高考數學:歷年選擇題真題練一練(2014~2023)

今天距離2024年高考還有三個多月的時間,今天我們來看一下2014~2023年的上海高考數學的選擇題,從過去十年的真題中隨機抽取5道題,并且提供解析。 后附六分成長獨家制作的在線練習集,科學、高效地反復刷這些真題,吃透真題…

Dockerfile執行的時候沒有執行CMD

參考:https://blog.csdn.net/Zx13170918986/article/details/130831052 在dockerfile中編寫CMD后,發現如果執行docker run -itd這樣的指令,是沒法啟動CMD腳本的,例如以下的dockerfile FROM node:16 WORKDIR /home/ COPY start_…