《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 運行環境
- 使用默認選項安裝 Red Hat OpenShift Service Mesh Operator 和 Red Hat OpenShift Serverless Opeartor。
- 查看 OpenShift AI Operator 的 DSC Initialization 對象,確認包含以下內容:
spec:applicationsNamespace: redhat-ods-applicationsmonitoring:managementState: Managednamespace: redhat-ods-monitoringserviceMesh:controlPlane:metricsCollection: Istioname: data-science-smcpnamespace: istio-systemmanagementState: Managed
- 查看 OpenShift AI Operator 的 Data Science Cluster 對象,確認包含以下內容:
kserve:managementState: Managedserving:ingressGateway:certificate:secretName: knative-serving-certtype: SelfSignedmanagementState: Managedname: knative-serving
- 確認在 OpenShift AI Operator 中的 “所有實例” 中出現以下 FeatureTracker。
- 執行以下命令查看創建的 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
- 在 OpenShift AI 控制臺中的 Cluster setting 中確認 Single mode serving platform 被選中。
創建項目和 Workbench
-
在 OpenShift AI 控制臺中創建一個名為 llm 的 Data Science Project。
-
在 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
- 進入 Workbench 對應的 Jupyter Notebook,然后克隆 https://github.com/rh-aiservices-bu/test-drive.git。
- 運行 /test-drive/llm/1_download_save.ipynb,完成后會自動將模型相關文件傳到 Minio 中 my-storage/models/flan-t5-small 里。
- 在 Workbench 的 Models and model servers 中進入 Single-model serving platform 的 Deploy model。
- 在 Deploy model 彈出窗口按下圖的配置部署模型。
- 完成配置后 Workbench 將顯示以下內容。將 flan-t5-small 對應的 Inference endpoint 地址復制下來。
訪問 LLM 模型
- 在 Jupyter 中打開 2_grpc_request.ipynb 文件,并將上一步復制的地址賦給 infer_endpoint 變量。
infer_endpoint = "https://flan-t5-small-llm.apps.cluster-4cc45.dynamic.redhatworkshops.io"
- 可以修改請求問題,然后運行2_grpc_request.ipynb 文件,即可獲得由 flan-t5-small 生成的返回結果。
client.make_request("what is your name?", model_id=model_id)
- 查看 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