《15-Automated Model Serving in HP Cloud-John Zheng.pdf》由會員分享,可在線閱讀,更多相關《15-Automated Model Serving in HP Cloud-John Zheng.pdf(37頁珍藏版)》請在三個皮匠報告上搜索。
1、HP云的模型服務自動化實踐惠普DevOps架構師 鄭風ContentHP云介紹01基于 KServe/Istio/Envoy 的架構實現03模型推理平臺的需求與設計0204問答環節-模型部署-模型訪問權限控制-HPA 動態擴展-可觀測性-LLM Token 限流和統計-金絲雀發布目錄HP云介紹Part 01HP云介紹 惠普云主要架在Amazon上,提供惠普內部項目所有服務的部署、監控、運維及管理。Kubernetes Istio Harbor Azure Pipeline 全方位自動化 基礎設施全面實現即代碼化(Infrastructure as Code)Terraform 服務自動化部署,
2、項目組可自助完成部署。Helm,Flux2模型推理平臺的需求與設計Part 02模型推理平臺的需求 模型推理需求日益增長,云端部署與管理:-生成式 AI:Llama3、QWen.-傳統機器學習:Scikit-learn、XGBoost-深度學習:TensorFlow Serving、PyTorch ONNX 模型-其他:Hugging Face Transformers 模型存儲需支持:Hugging Face、S3、PVC、EFS 任何項目都能方便發布自己的模型推理 所有模型推理不用任何額外實現,就自動擁有 權限管理,限流,動態擴展,可觀測性 等功能模型推理平臺的設計 KServe 為基礎(
3、不用 Knative)不依賴于 KServe,自己實現-模型訪問權限控制(Istio)-HPA 動態擴展(Prometheus Adapter)-可觀測性-LLM Token 限流和統計(enovyfilter)-金絲雀發布(Istio)-API 限流(Envoy ratelimit)-基于 KServe/Istio/Envoy 的架構實現Part 03-模型部署-模型訪問權限控制-HPA 動態擴展-可觀察性-API Rate Limit-LLM Token 限流和統計-金絲雀發布實現 模型部署Part 03-01模型部署KServe:標準化模型推理平臺 支持多種模型 自動化部署運行環境:Am
4、azon EKS無服務架構 Knative 不適合我們,所以不用模型部署 KServe 核心功能:支持各種推理模型,如:Hugging Face,PyTorch,Scikit-learn (支持自定義推理模型,這樣可發布我們自己的模型,也可以原生使用 vllm 等框架)支持各種模型存儲,如:Hugging Face、S3、PVC、EFS 支持 Model Explainability(模型可解釋性)支持 Multi Model Serving(多模型)和 Inference Graph(推理工作流)集成Helm 和 Flux2,實現自動化部署 Sample Code支持 GPU NodePub
5、lic subnetNAT gatewayPrivate subnetAuto Scaling groupm5n.2xlarge InstancesIstio IngressgatewaysAuto Scaling group GPUg4dn.xlarge InstancesFoundation ModelsAI ModelsCore ServicesAvailability ZonesVPCAmazonAdd“nodegroup gpu”in terragrunt file:k8s-device-pluginInstall支持 GPU Node模型如何申請 GPU資源?需要 GPU 的 PO
6、D跑在 GPU NodeModel owner在 配置文件定義:resources:requestGPU:1limitGPU:1HelmRelease ValueHelm Charts實現 模型服務訪問控制(通過Istio)Part 03-02模型服務訪問控制HP Other PlatformALBIstio IngressgatewaysAI ModelsVPCAmazonOther ServiceWithout tokenNeed tokenEKSNeed tokenVirtual ServiceSame NamespaceOther NamespaceOther ServiceNeed
7、tokenmTLS enabled$curl-X POST-H“Content-Type:application/json”-d payload.json https:/sample- HTTP/2 403RBAC:access denied$curl-X POST-H“Content-Type:application/json”-d payload.json https:/sample- -H Authorization:Bearer$token HTTP/1.1 200 OK .模型服務訪問控制1.啟用 Istio mTLS詳情鏈接2.通過 Istio Virtual Service 發布
8、模型服務詳情鏈接3.Authentication And Authorization by Istio 外部訪問需Token 同Namespace不需Token CUSTOM Authorization 增強保護詳情鏈接實現 HPA 動態擴展Part 03-03HPA 動態擴展需求:支持模型配置 Horizontal Pod Autoscaler(動態擴展),基于:CPU utilization Memory utilization Requests per second GPU utilization設計:-基于 CPU utilization,Memory utilization 是 HP
9、A 默認支持的-使用 Prometheus adapter,支持 HPA 基于 Custom metrics Prometheus AdaptorHPA 動態擴展 Prometheus adapter 的架構和安裝詳細 如何實現 HPA based on Requests per second基于 Istio metrics istio_requests_total具體例子 如何實現 HPA based on HPA-GPU utilization 安裝 NVIDIA gpu-operator 基于 Nvidia metrics DCGM_FI_DEV_GPU_UTIL具體例子HPA 動態擴展
10、Flux:Install Prometheus adaptor Code Helm Chart:HPA template Code Helm Release Values Example實現 可觀測性(Observability)Part 03-04可觀測性如何實現 AI 模型的可觀測性?日志 KServe 日志組件 Istio Access log Metrics Enable KServe metrics for Prometheus Model metrics(vLLM)GPU Metrics Istio Metrics可觀測性日志 KServe 日志組件 詳細With KServe I
11、nInf fererenenc ce e L Lo og gg gerer,al all l p pr re ed di ic ct t h he eadade er r/b bo od dy y o of f r re eq qu ue es st ts s/r re es sp po onsnse e can be sent to your“message handle”service,for save to S3,database,or just print out.Istio Access log 詳細 Include API host,method,path,response cod
12、e,duration ConfigureLogs in message service可觀測性Metrics Enable KServe metrics for Prometheus 文檔所有推理服務都有相應的 metrics,如:KServe 默認支持的模型定義在kserve/config/runtimes 自定義模型(Custom Model)可以自己定義在 Helm Chart可觀測性例子:Custom Model 千問的 metrics 配置可觀測性例子:GPU metrics實現 API Rate LimitPart 03-05API Rate Limit目的:API 級別的限流 每
13、一個 IP 限制每分鐘的 API 訪問量 每一個 tenant 限制每分鐘的 API 訪問量配置:如何實現:詳細 實現 LLM Token 限流和統計Part 03-06LLM Token 限流和統計Invoke API:(under token limitation)curl https:/qwen-predictor-default.api.sandbox-uw2.sample.io/v1/chat/completions -H Content-Type:application/json -H Authorization:Bearer$token -d model:Qwen/Qwen2.5
14、-14B-Instruct-GPTQ-Int4,messages:role:system,content:You are a helpful assistant.,role:user,content:1+1=?id:chatcmpl-3634b846-bf56-9c98-ae57-8252df864ff7,object:pletion,created:1740653385,model:Qwen/Qwen2.5-14B-Instruct-GPTQ-Int4,choices:index:0,message:role:assistant,reasoning_content:null,content:
15、1+1=2,tool_calls:,logprobs:null,finish_reason:stop,stop_reason:null,usage:prompt_tokens:25,total_tokens:33,completion_tokens:8,prompt_tokens_details:null,prompt_logprobs:nullInvoke API:(Over token limitation)curl https:/qwen-predictor-default.api.sandbox-uw2.sample.io/v1/chat/completions -H Content-
16、Type:application/json -H Authorization:Bearer$token -d model:Qwen/Qwen2.5-14B-Instruct-GPTQ-Int4,messages:role:system,content:You are a helpful assistant.,role:user,content:1+1=?HTTP/2 400Usage over limit -serviceAccount+IP.Envoyfilter 代碼LLM Token 限流和統計Envoyfilter 代碼All logic is implemented by Envoy
17、Filter實現 金絲雀發布(Canary)Part 03-07金絲雀發布(Canary)需求:與傳統的金絲雀發布只注重 container image 不同,模型的金絲雀發布更要注重模型的版本。設計:創建兩個 inference service。他們所有值,對象都一樣,除了 storage Uri 和 container image tag.兩個 inference service 的流量分配 用 Istio virtual service 來實現。金絲雀發布(Canary)Helm Chart 設計:建立新的 kserve-general Chart 詳細 分流的實現:Istio Virt
18、ual Service 詳細 原 Chart 改動:兼容直接調用 詳細 Flux調用 詳細 測試 詳細 總 結總 結實現統一的模型推理平臺,除了選擇 KServe 這樣的工具發布模型,更要讓各個模型自動獲得模型訪問權限控制,HPA 動態擴展,可觀測性,LLM Token 限流和統計,金絲雀發布,API 限流。我們集成 Istio,Envoy,Prometheus Adaptor,GPU Operate,很好地實現了這些功能。由于是自己實現,非常靈活,可以根據自己的需求方便地定制。利用 Helm,Flux,實現全方位自動化。用戶通過配置,方便地發布各種模型。實現簡單,架構清晰。歡迎大家參考,同樣地實現 代碼 問 答Email:微 信:johnzhengazGitHub:johnzheng1975