기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Ray Serve를 사용하여 모델 배포
RayService 리소스를 사용하여 모델을 배포합니다. serveConfigV2 필드에는 Serve 애플리케이션과 해당 배포가 포함되며, KubeRay는 이를 실행하는 Ray 클러스터를 생성합니다. HyperPod는 KubeRay를 수정하지 않으므로 이미 실행RayService한는 계속 작동합니다.
RayService 매니페스트
다음 매니페스트는 단일 GPU 지원 배포로 하나의 Serve 애플리케이션을 실행합니다. 를 작업 디렉터리의 모듈 및 애플리케이션 객체import_path로 바꿉니다.
apiVersion: ray.io/v1 kind: RayService metadata: name: my-service namespace: my-namespace spec: serveConfigV2: | applications: - name: my-app import_path: my_module:app route_prefix: / deployments: - name: Model num_replicas: 2 ray_actor_options: num_gpus: 1 rayClusterConfig: rayVersion: "2.56.1" headGroupSpec: rayStartParams: dashboard-host: "0.0.0.0" template: spec: containers: - name: ray-head image: rayproject/ray:2.56.1 ports: - { containerPort: 8265, name: dashboard } - { containerPort: 8000, name: serve } workerGroupSpecs: - groupName: gpu-workers replicas: 1 rayStartParams: {} template: spec: nodeSelector: node.kubernetes.io/instance-type: ml.g5.xlarge containers: - name: ray-worker image: rayproject/ray:2.56.1-gpu resources: limits: { nvidia.com/gpu: "1" } requests: { cpu: "4", memory: "16Gi", nvidia.com/gpu: "1" }
서비스를 적용하고 서비스가 준비되었는지 확인합니다.
kubectl apply -f my-service.yaml -n my-namespace kubectl get rayservice my-service -n my-namespace
엔드포인트에 도달
Ray Serve는 헤드 포드의 포트8000에서 수신 대기합니다. 클러스터 내부에서 KubeRay가에 대해 생성하는 서비스로 요청을 보냅니다RayService. 빠른 테스트를 위해를 사용할 수 있습니다kubectl port-forward.
kubectl port-forward svc/ray-service-head-svc8000:8000 curl http://localhost:8000/
배포 API 및 요청 처리 제공은 Ray 설명서의 Ray Serve API