View a markdown version of this page

Déploiement d'un JumpStart modèle avec Ray Serve - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Déploiement d'un JumpStart modèle avec Ray Serve

Vous pouvez déployer JumpStart des modèles dans Ray Serve sur HyperPod sans télécharger manuellement les poids des modèles, écrire du code de chargement des modèles ou configurer un conteneur de diffusion. La bibliothèque toolkit-for-ray-on-sagemaker-ai sur le site Web de PyPI fournit une fonctionnalité JumpStartModelLoaderCallback qui s'intègre à l'API LLM de Ray Serve pour gérer le téléchargement des artefacts du modèle au moment du déploiement. JumpStart

Conditions préalables

Configuration des autorisations IAM

Il JumpStartModelLoaderCallback appelle l'API SageMaker AI pour récupérer des URL présignées afin de télécharger les artefacts du modèle. Vos pods Ray Serve ont besoin d'un rôle IAM doté des autorisations suivantes.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:CreateHubContentPresignedUrls", "Resource": "*" } ] }

Créez une association Pod Identity qui associe un compte de service Kubernetes à ce rôle IAM. Pour plus d'informations, consultez Configuration d'un compte de service Kubernetes pour qu'il assume un rôle IAM avec EKS Pod Identity dans le guide de l'utilisateur Amazon EKS.

aws eks create-pod-identity-association \ --cluster-name eks-cluster-name \ --namespace namespace \ --service-account jumpstart-ray-serve \ --role-arn arn:aws:iam::account-id:role/role-name

Faites référence à ce compte de service dans votre RayService manifeste à l'aide du serviceAccountName champ (illustré dans l'exemple suivant).

Déploiement du modèle

L'exemple suivant déploie un JumpStart modèle utilisant celui de Ray Serve LLMConfig avec leJumpStartModelLoaderCallback. Le rappel télécharge les artefacts du modèle à JumpStart partir d'URL présignées lorsque la réplique du service démarre et les charge dans le moteur de diffusion (vLLM), exposant ainsi une API. OpenAI-compatible

from ray.serve.llm import LLMConfig, build_openai_app from ray.llm._internal.common.callbacks.base import CallbackConfig from toolkit_for_ray_on_sagemaker_ai import JumpStartModelLoaderCallback llm_config = LLMConfig( model_loading_config={ "model_id": "my-llm", "model_source": "placeholder", }, callback_config=CallbackConfig( callback_class=JumpStartModelLoaderCallback, callback_kwargs={ "jumpstart_model_id": "huggingface-reasoning-qwen3-4b", "region": "us-east-1", "accept_eula": False, # Set to True after reviewing the model's EULA }, ), accelerator_type="A10G", ) app = build_openai_app({"llm_configs": [llm_config]})

appRéférez-vous import_path au contenu de votre RayService manifeste, puis déployez-le comme décrit dansDéploiement d'un modèle avec Ray Serve. Assurez-vous des deux headGroupSpec et workerGroupSpecs configurez serviceAccountName le compte de service associé au rôle IAM créé à l'étape précédente.

Note

Pour plus d'informations sur les licences modèles et les exigences du CLUF, voir Choisir un modèle de base.

Atteindre le point final

Le déploiement expose une API de complétion des OpenAI-compatible discussions sur le port 8000 via le KubeRay service créé pour le. RayService Pour des tests rapides, utilisez kubectl port-forward :

kubectl port-forward svc/ray-service-head-svc 8000:8000

Envoyez ensuite vos demandes à http://localhost:8000 :

curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "my-llm", "messages": [{"role": "user", "content": "What is Ray Serve?"}] }'