3.6. model-serving 런타임


model-serving 런타임을 사용하여 단일 모델 서비스 플랫폼에서 모델을 제공할 수 있습니다. model-serving 런타임 구성은 ServingRuntimeInferenceService CRD(사용자 정의 리소스 정의)에 의해 정의됩니다.

3.6.1. ServingRuntime

ServingRuntime CRD는 모델 배포 및 관리를 위한 환경인 제공 런타임을 생성합니다. 다양한 형식의 모델을 동적으로 로드 및 언로드하는 Pod용 템플릿을 생성하고 요청을 유추하기 위해 서비스 끝점도 노출합니다.

다음 YAML 구성은 KServe model-serving 런타임의 vLLM ServingRuntime 의 예입니다. 구성에는 다양한 플래그, 환경 변수 및 명령줄 인수가 포함됩니다.

apiVersion: serving.kserve.io/v1alpha1
kind: ServingRuntime
metadata:
  annotations:
    opendatahub.io/recommended-accelerators: '["nvidia.com/gpu"]' 1
    openshift.io/display-name: vLLM ServingRuntime for KServe 2
  labels:
    opendatahub.io/dashboard: "true"
  name: vllm-runtime
spec:
     annotations:
          prometheus.io/path: /metrics 3
          prometheus.io/port: "8080" 4
     containers :
          - args:
               - --port=8080
               - --model=/mnt/models 5
               - --served-model-name={{.Name}} 6
             command: 7
                  - python
                  - '-m'
                  - vllm.entrypoints.openai.api_server
             env:
                  - name: HF_HOME
                     value: /tmp/hf_home
             image: 8
quay.io/modh/vllm@sha256:8a3dd8ad6e15fe7b8e5e471037519719d4d8ad3db9d69389f2beded36a6f5b21
          name: kserve-container
          ports:
               - containerPort: 8080
                   protocol: TCP
    multiModel: false 9
    supportedModelFormats: 10
        - autoSelect: true
           name: vLLM
1
런타임과 함께 사용할 권장 가속기입니다.
2
제공 런타임이 표시되는 이름입니다.
3
Prometheus에서 모니터링을 위한 지표를 스크랩하는 데 사용하는 끝점입니다.
4
모니터링을 위해 Prometheus에서 메트릭을 스크랩하는 데 사용하는 포트입니다.
5
모델 파일이 런타임 컨테이너에 저장되는 위치 경로입니다.
6
런타임 컨테이너 사양 내에서 {{.Name}} 템플릿 변수로 지정된 모델 이름을 런타임 환경에 전달합니다. {{.Name}} 변수는 InferenceService 메타데이터 오브젝트의 spec.predictor.name 필드에 매핑됩니다.
7
런타임 컨테이너를 시작하는 entrypoint 명령입니다.
8
제공 런타임에서 사용하는 런타임 컨테이너 이미지입니다. 이 이미지는 사용된 가속기의 유형에 따라 다릅니다.
9
런타임이 단일 모델 제공에 사용되도록 지정합니다.
10
런타임에서 지원하는 모델 형식을 지정합니다.

3.6.2. InferenceService

InferenceService CRD는 유추 쿼리를 처리하고 모델에 전달한 다음 유추 출력을 반환하는 서버 또는 유추 서비스를 생성합니다.

유추 서비스는 다음 작업도 수행합니다.

  • 모델의 위치와 형식을 지정합니다.
  • 모델을 제공하는 데 사용되는 제공 런타임을 지정합니다.
  • gRPC 또는 REST 유추에 대해 passthrough 경로를 활성화합니다.
  • 배포된 모델에 대한 HTTP 또는 gRPC 끝점을 정의합니다.

다음 예제에서는 vLLM 런타임을 사용하여 granite 모델을 배포할 때 생성되는 InferenceService YAML 구성 파일을 보여줍니다.

apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
  annotations:
    openshift.io/display-name: granite
    serving.knative.openshift.io/enablePassthrough: 'true'
    sidecar.istio.io/inject: 'true'
    sidecar.istio.io/rewriteAppHTTPProbers: 'true'
  name: granite
  labels:
    opendatahub.io/dashboard: 'true'
spec:
  predictor:
    maxReplicas: 1
    minReplicas: 1
    model:
      modelFormat:
        name: vLLM
      name: ''
      resources:
        limits:
          cpu: '6'
          memory: 24Gi
          nvidia.com/gpu: '1'
        requests:
          cpu: '1'
          memory: 8Gi
          nvidia.com/gpu: '1'
      runtime: vLLM ServingRuntime for KServe
      storage:
        key: aws-connection-my-storage
        path: models/granite-7b-instruct/
    tolerations:
      - effect: NoSchedule
        key: nvidia.com/gpu
        operator: Exists

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.