Tous les produits
Search
Centre de documentation

Platform For AI:Déploiement de DeepSeek-V4 et DeepSeek-R1

Dernière mise à jour :Oct 13, 2026

Le déploiement des modèles DeepSeek nécessite de configurer l'environnement de calcul, de charger le modèle et d'optimiser l'inférence. PAI Model Gallery prend en charge le déploiement en un clic. En quelques étapes, obtenez un service de modèle compatible avec l'API OpenAI et intégrez-le rapidement à vos applications.

Architecture de la solution

Composants principaux

La solution s'appuie sur la plateforme PAI et comprend les composants principaux suivants :

  • Model Gallery : point d'entrée pour la distribution et le déploiement des modèles, fournissant des modèles DeepSeek prédéfinis ainsi que des configurations de déploiement.

  • Elastic Algorithm Service (EAS) : service central qui héberge le déploiement et l'inférence des modèles. Il gère automatiquement les ressources de calcul sous-jacentes, telles que les GPU, et lance les instances de service de modèle.

  • Moteurs d'accélération de l'inférence (SGLang/vLLM/BladeLLM) : optimisent les performances d'inférence des modèles.

    • SGLang/vLLM : fournit des interfaces entièrement compatibles avec l'API OpenAI, facilitant la migration des applications existantes.

    • BladeLLM : framework d'inférence haute performance développé en interne, offrant de meilleures performances dans des scénarios spécifiques.

  • Passerelle API : offre un canal sécurisé pour accéder aux services de modèle. Appelez les services à l'aide du endpoint du service et d'un token.

Méthode de déploiement

Pour les grands modèles, outre le déploiement sur nœud unique, Model Gallery propose également des solutions de déploiement en un clic telles que le déploiement distribué et la séparation EP+PD.

Par exemple, DeepSeek-V4-Pro-FP8 et DeepSeek-V4-Flash-FP8 peuvent tous deux être déployés à l'aide de la méthode de séparation EP+PD.

Déploiement rapide et validation

Étape 1 : Déployer le service de modèle

  1. Connectez-vous à la console PAI et sélectionnez la région cible dans le coin supérieur gauche. Dans le volet de navigation de gauche, accédez à Workspaces et sélectionnez l'espace de travail cible.

  2. Dans l'espace de travail, accédez à QuickStart > Model Gallery.

  3. Recherchez et sélectionnez le modèle cible dans la liste des modèles, par exemple DeepSeek-R1-Distill-Qwen-7B, puis cliquez sur la carte du modèle pour accéder à la page des détails.

  4. Cliquez sur Deploy dans le coin supérieur droit de la page et configurez les paramètres suivants.

    • Deployment Template : par défaut, le type de carte est A10, le moteur d'inférence est SGLang, la méthode de déploiement est sur nœud unique et le scénario de déploiement est équilibré.

    • Deployment Resource : sélectionnez des ressources publiques ou dédiées, puis choisissez une spécification GPU appropriée en fonction des exigences du modèle.

      • Par défaut, les ressources publiques sont utilisées et une spécification recommandée est fournie. Si aucune spécification n'est disponible, essayez de changer de région.

        Important

        Lors d'un déploiement utilisant des ressources publiques, la facturation commence dès le provisionnement de l'instance. Les frais sont basés sur la durée d'utilisation, même en l'absence d'appels. Arrêtez le service rapidement après les tests.

      • Si vous sélectionnez Resource Quota, veillez à choisir un moteur d'inférence et un modèle de déploiement correspondants en fonction du type d'instance. Par exemple, si vous utilisez Zhenwu PPU, vous pouvez sélectionner SGLang comme moteur d'inférence et PPU-810E comme type de carte dans le modèle de déploiement.

      Un exemple de spécification GPU recommandée est ecs.gn7i-c16g1.4xlarge (16 vCPU, 60 GiB, 1 × NVIDIA A10), dont le coût est d'environ 11,1 CNY par heure.

  5. Une fois toutes les configurations vérifiées, cliquez sur Deploy. Le système commence à créer le service.

    Remarque

    Pour un grand modèle, tel que la version complète de DeepSeek-R1, le chargement du modèle peut prendre de 20 à 30 minutes.

  6. Consultez l'état de la tâche de déploiement sur la page Model Gallery > Job Management > Deployment Jobs. Cliquez sur un nom de service pour accéder à la page des détails du service. Vous pouvez également cliquer sur More > More Information dans le coin supérieur droit pour accéder à la page des détails du service de modèle dans PAI-EAS et obtenir plus d'informations.

    Sur la page des détails du service, cliquez sur View Deployment Events à côté du champ Status pour plus de détails, et sur View Call Information dans le champ Call Information pour obtenir le endpoint du service et le token. Vous pouvez également choisir Elastic Algorithm Service (EAS) dans le volet de navigation de gauche pour accéder à la page de gestion des services EAS.

Étape 2 : Débogage en ligne

Sur la page Model Gallery > Job Management > Deployment Jobs, cliquez sur le nom du service déployé et basculez vers l'onglet Online Debugging, qui prend en charge à la fois le Conversation Debugging et le API Debugging.

Remarque

Les recommandations d'utilisation officielles pour la série de modèles DeepSeek-R1 sont les suivantes :

  • Définissez la température sur une valeur comprise entre 0,5 et 0,7. La valeur recommandée est 0,6 afin d'éviter les sorties répétitives ou incohérentes.

  • N'ajoutez pas de prompt système. Placez toutes les instructions dans le prompt utilisateur.

  • Pour les questions liées aux mathématiques, incluez « Please reason step by step and put the final answer in a \boxed{}. » dans le prompt.

Si seule la page de débogage API est disponible, l'exemple suivant montre comment déboguer l'API chat d'un service de grand modèle de langage (LLM) :

  1. Définir la méthode et le chemin de la requête : dans l'onglet de débogage, sélectionnez POST comme méthode HTTP et ajoutez /v1/chat/completions à l'adresse pour former l'URL de requête complète <EAS_ENDPOINT>/v1/chat/completions. Dans l'URL, <EAS_ENDPOINT> représente le endpoint du service, généralement prérempli. Le format standard est http://<uid>.<region-id>.pai-eas.aliyuncs.com/api/predict/<service-name>.

    Pour les services déployés avec SGLang/vLLM, vous pouvez trouver davantage d'API prises en charge à l'adresse <EAS_ENDPOINT>/openapi.json .
  2. Construire le corps de la requête.

    Si le prompt est « What is 3 + 5? », le corps de la requête est formaté comme suit.

    La valeur du paramètre model correspond au nom du modèle obtenu via l'API de liste des modèles <EAS_ENDPOINT>/v1/models. Cet exemple utilise DeepSeek-R1-Distill-Qwen-7B.

    Dans la section Body, sélectionnez raw et saisissez le corps de requête JSON suivant :

    {
        "model": "DeepSeek-R1-Distill-Qwen-7B",
        "messages": [
            {
                "role": "user",
                "content": "What is 3 + 5?"
            }
        ]
    }
  3. Envoyer la requête.

    Cliquez sur Send Request. La section Response à droite affiche le code d'état 200, et la section Body présente la réponse du modèle au format JSON.

Cliquez pour afficher un exemple de données de requête pour l'API chat BladeLLM

Important

Lorsque vous utilisez la méthode de déploiement accéléré BladeLLM, si vous ne spécifiez pas le paramètre max_tokens, la sortie est tronquée à 16 tokens par défaut. Ajustez le paramètre de requête max_tokens en fonction de vos besoins réels.

{
    "messages": [
        {
            "role": "user",
            "content": "What is 3 + 5?"
        }
    ],
    "max_tokens": 2000
}

Appel API

  1. Obtenez le endpoint du service et le token.

    1. Sur la page Model Gallery > Job Management > Deployment Jobs, cliquez sur le nom du service déployé pour accéder à la page des détails du service.

    2. Cliquez sur View Call Information pour obtenir le endpoint et le token utilisés pour appeler le service.

  2. Voici un exemple d'appel de l'API chat.

    Remplacez <EAS_ENDPOINT> par le endpoint du service et <EAS_TOKEN> par le token du service.

    OpenAI SDK

    Notes :

    • Vous devez ajouter /v1 au endpoint.

    • Le déploiement accéléré BladeLLM ne prend pas actuellement en charge l'utilisation de client.models.list() pour obtenir la liste des modèles. Vous pouvez définir la valeur de model sur "" pour assurer la compatibilité.

    Déploiement accéléré SGLang/vLLM

    from openai import OpenAI
    # 1. Configure the client
    # Replace <<EAS_ENDPOINT> and <EAS_TOKEN> with the actual service access address and Token.
    openai_api_key = "<EAS_TOKEN>"
    openai_api_base = "<EAS_ENDPOINT>/v1"
    client = OpenAI(
        api_key=openai_api_key,
        base_url=openai_api_base,
    )
    # 2. Get the model name 
    try:
        model = client.models.list().data[0].id
        print(model)
    except Exception as e:
        print(f"Failed to get the model list. Check the Endpoint and Token. Error: {e}")
    # 3. Construct and send the request
    stream = True
    chat_completion = client.chat.completions.create(
        messages=[
            {"role": "user", "content": "Hello, please introduce yourself."}
        ],
        model=model,
        max_tokens=2048,
        stream=stream,
    )
    if stream:
        for chunk in chat_completion:
            print(chunk.choices[0].delta.content, end="")
    else:
        result = chat_completion.choices[0].message.content
        print(result)

    Déploiement accéléré BladeLLM

    from openai import OpenAI
    ##### API Configuration #####
    # Replace <EAS_ENDPOINT> with the access address of the deployed service, and <EAS_TOKEN> with the Token of the deployed service.
    openai_api_key = "<EAS_TOKEN>"
    openai_api_base = "<EAS_ENDPOINT>/v1"
    client = OpenAI(
        api_key=openai_api_key,
        base_url=openai_api_base,
    )
    # BladeLLM accelerated deployment currently does not support retrieving the model name via client.models.list(). You can directly set the value of model to "" for compatibility.
    model=""
    stream = True
    chat_completion = client.chat.completions.create(
        messages=[
                  {"role": "user", "content": "Hello, please introduce yourself."}
        ],
         model=model,
         max_tokens=2048,
         stream=stream,
        )
    if stream:
        for chunk in chat_completion:
            print(chunk.choices[0].delta.content, end="")
    else:
        result = chat_completion.choices[0].message.content
        print(result)

    HTTP

    Déploiement accéléré SGLang/vLLM

    Remplacez <model_name> par le nom du modèle obtenu via l'API de liste des modèles <EAS_ENDPOINT>/v1/models.

    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: <EAS_TOKEN>" \
        -d '{
            "model": "<model_name>",
            "messages": [
            {
                "role": "user",
                "content": "hello!"
            }
            ]
        }' \
        <EAS_ENDPOINT>/v1/chat/completions
    
    import json
    import requests
    # Replace <EAS_ENDPOINT> with the access address of the deployed service, and <EAS_TOKEN> with the Token of the deployed service.
    EAS_ENDPOINT = "<EAS_ENDPOINT>"
    EAS_TOKEN = "<EAS_TOKEN>"
    url = f"{EAS_ENDPOINT}/v1/chat/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": EAS_TOKEN,
    }
    # Replace <model_name> with the model name obtained from the model list API <EAS_ENDPOINT>/v1/models.
    model = "<model_name>"
    stream = True
    messages = [
        {"role": "user", "content": "Hello, please introduce yourself."},
    ]
    req = {
        "messages": messages,
        "stream": stream,
        "temperature": 0.6,
        "top_p": 0.5,
        "top_k": 10,
        "max_tokens": 300,
        "model": model,
    }
    response = requests.post(
        url,
        json=req,
        headers=headers,
        stream=stream,
    )
    if stream:
        for chunk in response.iter_lines(chunk_size=8192, decode_unicode=False):
            msg = chunk.decode("utf-8")
            if msg.startswith("data"):
                info = msg[6:]
                if info == "[DONE]":
                    break
                else:
                    resp = json.loads(info)
                    print(resp["choices"][0]["delta"]["content"], end="", flush=True)
    else:
        resp = json.loads(response.text)
        print(resp["choices"][0]["message"]["content"])

    Déploiement accéléré BladeLLM

    curl -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: <EAS_TOKEN>" \
        -d '{
            "messages": [
            {
                "role": "user",
                "content": "hello!"
            }
            ]
        }' \
        <EAS_ENDPOINT>/v1/chat/completions
    
    import json
    import requests
    # Replace <EAS_ENDPOINT> with the access address of the deployed service, and <EAS_TOKEN> with the Token of the deployed service.
    EAS_ENDPOINT = "<EAS_ENDPOINT>"
    EAS_TOKEN = "<EAS_TOKEN>"
    url = f"{EAS_ENDPOINT}/v1/chat/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": EAS_TOKEN,
    }
    stream = True
    messages = [
        {"role": "user", "content": "Hello, please introduce yourself."},
    ]
    # With BladeLLM accelerated deployment, if the max_tokens parameter is not specified, the output is truncated at max_tokens=16 by default. We recommend that you adjust the max_tokens request parameter based on your actual needs.
    req = {
        "messages": messages,
        "stream": stream,
        "temperature": 0.6,
        "top_p": 0.5,
        "top_k": 10,
        "max_tokens": 300,
    }
    response = requests.post(
        url,
        json=req,
        headers=headers,
        stream=stream,
    )
    if stream:
        for chunk in response.iter_lines(chunk_size=8192, decode_unicode=False):
            msg = chunk.decode("utf-8")
            if msg.startswith("data"):
                info = msg[6:]
                if info == "[DONE]":
                    break
                else:
                    resp = json.loads(info)
                    if resp["choices"][0]["delta"].get("content") is not None:
                          print(resp["choices"][0]["delta"]["content"], end="", flush=True)
    else:
        resp = json.loads(response.text)
        print(resp["choices"][0]["message"]["content"])
  3. La méthode d'appel varie selon le modèle et le framework de déploiement. Pour plus d'informations, consultez la page de présentation du modèle dans Model Gallery.

    Par exemple, la page model introduction de DeepSeek-R1-Distill-Qwen-7B dans Model Gallery spécifie les exigences en matière de ressources pour le déploiement accéléré BladeLLM (24 Go de mémoire GPU sont requis, et seules les familles d'instances ecs.gn7 et ultérieures sont prises en charge), indique que le modèle est compatible avec les API OpenAI v1/completions et v1/chat/completions, et fournit des exemples d'appels utilisant des commandes curl et des scripts Python.

Intégration tierce

Pour vous connecter à Chatbox, Dify ou Cherry Studio, consultez la section Intégrer des clients tiers.

Interface Web UI locale

Consultez la section Créer une interface Web UI locale.

Nettoyage des ressources

Lors d'un déploiement utilisant des ressources publiques, la facturation commence dès le provisionnement de l'instance et est basée sur la durée d'utilisation, les heures partielles étant proratisées à la minute. Arrêtez ou supprimez l'instance rapidement après utilisation.

  1. Revenez à la page Task Management > Deployment Tasks.

  2. Repérez le service que vous souhaitez arrêter et cliquez sur Stop ou Delete dans la colonne Actions.

    • Stop : l'instance de service est libérée et la facturation s'arrête, mais la configuration du service est conservée et le service peut être redémarré ultérieurement.

    • Delete : la configuration du service et l'instance sont supprimées définitivement.

Sélection du modèle et des ressources

Le modèle sélectionné détermine les ressources de calcul requises et les coûts de déploiement. Les modèles DeepSeek sont divisés en modèles en version complète et en versions distillées, qui diffèrent considérablement en termes d'exigences en ressources.

  • Développement et test : nous vous recommandons d'utiliser un modèle en version distillée, tel que DeepSeek-R1-Distill-Qwen-7B. Ces modèles ont des exigences en ressources faibles (généralement un seul GPU avec 24 Go de mémoire GPU), peuvent être déployés rapidement à faible coût et conviennent à la validation rapide des fonctionnalités.

  • Environnements de production : évaluez à la fois les performances du modèle et le coût. DeepSeek-R1-Distill-Qwen-32B offre un bon équilibre entre performances et coût. Si vous avez besoin de performances de modèle supérieures, vous pouvez opter pour un modèle en version complète, mais ces derniers nécessitent plusieurs GPU haut de gamme (par exemple, 8 GPU avec 96 Go de mémoire GPU chacun) et augmentent considérablement les coûts.

Le tableau suivant répertorie les configurations minimales requises pour différentes versions de modèles ainsi que le nombre maximal de tokens pris en charge lors de l'utilisation de différents types d'instances et moteurs d'inférence.

Modèles en version complète

Modèle

Méthode de déploiement

Nombre maximal de tokens (entrée + sortie)

Configuration minimale

SGLang (recommandé)

vLLM

DeepSeek-V4-Pro

Nœud unique/Distribué

1M

1M

Nœud unique avec 8 × H20-3e (8 × 141 Go de mémoire GPU)

DeepSeek-V4-Flash

Nœud unique

1M

1M

Nœud unique avec 8 × H20-3e (8 × 141 Go de mémoire GPU)

DeepSeek-V4-Pro-FP8

Nœud unique/Séparation PD

1M

/

Nœud unique avec 8 × H20-3e (8 × 141 Go de mémoire GPU)

DeepSeek-V4-Flash-FP8

Nœud unique/Séparation PD

1M

/

Nœud unique avec 4 × H20-3e (4 × 141 Go de mémoire GPU)

DeepSeek-V3

Nœud unique - GPU NVIDIA

56 000

65 536

Nœud unique 8 × GU120 (8 × 96 Go de mémoire GPU)

Nœud unique - Zhenwu PPU

56 000

16 384

Distribué - Service de calcul intelligent PAI Lingjun

163 840

163 840

DeepSeek-R1

Nœud unique - GPU NVIDIA

56 000

65 536

Nœud unique 8 × GU120 (8 × 96 Go de mémoire GPU)

Nœud unique - Zhenwu PPU

56 000

16 384

Distribué - Service de calcul intelligent PAI Lingjun

163 840

163 840

Notes sur le type d'instance pour le déploiement sur nœud unique :

  • GPU NVIDIA :

    • ml.gu8v.c192m1024.8-gu120 et ecs.gn8v-8x.48xlarge : disponibles en tant que ressources publiques, mais leur inventaire peut être limité.

    • ecs.ebmgn8v.48xlarge : ne peut pas être utilisé en tant que ressource publique. Vous devez acheter des ressources EAS dédiées.

  • Zhenwu PPU : ml.gp7vf.16.40xlarge est une ressource publique et ne peut être utilisée qu'en mode preemptible. Si les ressources GPU NVIDIA sont rares, vous pouvez passer à la région Chine (Ulanqab) pour trouver des ressources Zhenwu PPU. Vous devez configurer un VPC lors du déploiement.

Notes sur le type d'instance pour le déploiement distribué (recommandé lorsque des performances élevées sont requises) :

Le déploiement distribué repose sur un réseau haut débit. Par conséquent, vous devez utiliser le Service de calcul intelligent PAI Lingjun, qui fournit une puissance de calcul hétérogène élastique et haute performance, et configurer un VPC lors du déploiement. Pour utiliser le Service de calcul intelligent PAI Lingjun, basculez la région vers Chine (Ulanqab).

  • Ressources publiques Lingjun :

    • ml.gu7xf.8xlarge-gu108 : nécessite quatre machines pour un déploiement à instance unique et ne peut être utilisé qu'en mode preemptible.

    • Zhenwu PPU : nécessite deux machines pour un déploiement à instance unique.

  • Ressources prépayées Lingjun : vous devez être ajouté à une liste blanche pour utiliser ces ressources. Contactez votre responsable commercial ou soumettez un ticket pour consultation.

Modèles en version distillée

Modèle

Nombre maximal de tokens (entrée + sortie)

Configuration minimale

SGLang (recommandé)

vLLM

BladeLLM

DeepSeek-R1-Distill-Qwen-1,5B

131 072

131 072

131 072

1 × GPU A10 (24 Go de mémoire GPU)

DeepSeek-R1-Distill-Qwen-7B

131 072

32 768

131 072

1 × GPU A10 (24 Go de mémoire GPU)

DeepSeek-R1-Distill-Llama-8B

131 072

32 768

131 072

1 × GPU A10 (24 Go de mémoire GPU)

DeepSeek-R1-Distill-Qwen-14B

131 072

32 768

131 072

1 × GPU L (48 Go de mémoire GPU)

DeepSeek-R1-Distill-Qwen-32B

131 072

32 768

131 072

2 × GPU L (2 × 48 Go de mémoire GPU)

DeepSeek-R1-Distill-Llama-70B

131 072

32 768

131 072

2 × GU120 (2 × 96 Go de mémoire GPU)

DeepSeek-R1-0528-Qwen3-8B : un modèle distillé à partir de DeepSeek-R1 vers Qwen3-8B avec 8 milliards de paramètres. Il prend uniquement en charge le déploiement et ne permet pas le fine-tuning ni l'entraînement.

Modèles optimisés par PAI

Model Gallery propose le déploiement en un clic des modèles DeepSeek optimisés par PAI suivants :

  • DeepSeek-R1-PAI-optimized

  • DeepSeek-R1-0528-PAI-optimized

  • DeepSeek-V3-0324-PAI-optimized

Coûts et risques

Détail des coûts

Pour les services utilisant des ressources publiques, la facturation est calculée à la minute, à partir du moment où une instance est provisionnée jusqu'à ce qu'elle soit arrêtée ou supprimée. Les factures sont réglées toutes les heures. Des frais s'accumulent même lorsque le service est inactif. L'arrêt du service interrompt la facturation.

Pour plus d'informations, consultez la section Facturation d'Elastic Algorithm Service (EAS).

Contrôle des coûts

  • Nettoyer rapidement : après le développement et les tests, arrêtez ou supprimez immédiatement le service pour maîtriser les coûts.

  • Sélectionner un modèle approprié : dans les environnements hors production, privilégiez les modèles en version distillée moins coûteux.

  • Utiliser des ressources preemptibles : pour les tâches hors production, vous pouvez activer le mode preemptible lors du déploiement. Notez que certaines conditions doivent être remplies pour que l'enchère aboutisse et qu'il existe un risque d'instabilité des ressources.

  • Réductions pour usage à long terme : pour les services de production fonctionnant en continu, vous pouvez réduire les coûts en achetant un plan d'économies ou des ressources prépayées.

Principaux risques

  • Coûts imprévus : oublier d'arrêter le service entraîne une facturation continue. Nettoyez toujours les ressources immédiatement après utilisation.

  • Troncature de la sortie BladeLLM : lorsque vous utilisez le moteur BladeLLM, si max_tokens n'est pas spécifié dans la requête API, la sortie est tronquée à 16 tokens, ce qui peut empêcher la fonctionnalité de fonctionner comme prévu.

  • Utilisation incorrecte de l'API :

    • Lorsque vous appelez un modèle de la série DeepSeek-R1, l'inclusion d'un prompt system dans messages peut provoquer un comportement inattendu.

    • L'URL de la requête API doit se terminer par un chemin tel que /v1/chat/completions. Sinon, une erreur 404 est renvoyée.

  • Inventaire des ressources : lors du déploiement de grands modèles (en particulier les modèles en version complète), l'inventaire des ressources GPU haut de gamme dans certaines régions peut être tendu, entraînant des échecs de déploiement ou de longs temps d'attente. Vous pouvez essayer de changer de région.

FAQ sur le déploiement des modèles

Choisir un moteur d'inférence

  • Recommandé SGLang : il offre des performances élevées, est entièrement compatible avec la norme API OpenAI, s'adapte aux écosystèmes d'applications grand public et prend en charge une longueur de contexte maximale plus longue que vLLM dans la plupart des scénarios.

  • Alternative vLLM : en tant que framework populaire dans l'industrie, il offre également une bonne compatibilité API.

  • Pour des scénarios spécifiques BladeLLM : choisissez BladeLLM, le framework d'inférence haute performance développé indépendamment par Alibaba Cloud PAI, uniquement si vous exigez des performances d'inférence supérieures et pouvez accepter les différences entre ses API et la norme OpenAI (par exemple, client.models.list() n'est pas pris en charge et le paramètre max_tokens présente un comportement de troncature par défaut).

Service bloqué en attente

Causes possibles :

  • Ressources machine insuffisantes dans la région actuelle.

  • Le chargement du modèle prend beaucoup de temps en raison de la taille importante du modèle (20 à 30 minutes pour des modèles tels que DeepSeek-R1 et DeepSeek-V3).

Patientez un moment. Si le service ne démarre toujours pas comme prévu, nous vous recommandons d'essayer les étapes suivantes :

  1. Accédez à Job Management-Deployment Jobs pour ouvrir la page des détails de la tâche de déploiement. Cliquez sur More > More Information dans le coin supérieur droit de la page pour accéder à la page des détails du service de modèle dans PAI-EAS et consulter l'état de l'instance de service.

    Si la colonne Instance Status affiche Insufficient Inventory, cela signifie que l'instance ne peut pas être planifiée en raison de ressources insuffisantes.

  2. Arrêtez le service actuel, changez de région dans le coin supérieur gauche de la console et redéployez le service.

    Remarque

    Les modèles comportant un nombre extrêmement élevé de paramètres, tels que DeepSeek-R1 et DeepSeek-V3, nécessitent 8 GPU pour démarrer le service (l'inventaire des ressources est tendu). Vous pouvez choisir de déployer des modèles distillés plus petits, tels que DeepSeek-R1-Distill-Qwen-7B (l'inventaire des ressources est abondant).

FAQ sur l'appel des modèles

L'appel API renvoie une erreur 404

Vérifiez si un suffixe API OpenAI, tel que v1/chat/completions, a été ajouté à l'URL. Pour plus d'informations, consultez les instructions d'appel API sur la page de présentation du modèle.

Si vous utilisez un déploiement accéléré vLLM, vérifiez que le paramètre model dans le corps de la requête de l'API chat est défini sur le nom de modèle correct. Vous pouvez obtenir le nom du modèle à partir de v1/models.

Délai d'expiration de la requête

Le délai d'expiration par défaut des requêtes de passerelle pour les déploiements est de 180 secondes. Pour l'étendre, vous pouvez configurer une passerelle dédiée et soumettre un ticket afin d'ajuster le délai d'expiration des requêtes de la passerelle dédiée. Le délai peut être étendu jusqu'à 600 secondes.

Absence de fonctionnalité « web search »

La fonctionnalité « web search » n'est pas activée par le simple déploiement du service de modèle ; elle nécessite la création d'une application IA distincte (agent) par-dessus le service.

Le modèle ignore le processus de réflexion

Si le modèle DeepSeek-R1 ignore parfois le processus de réflexion, utilisez le modèle de chat mis à jour de DeepSeek qui force la réflexion :

  1. Modifier la commande de démarrage.

    Dans la configuration du service, modifiez la configuration JSON et ajustez le champ containers-script pour ajouter « --chat-template /model_dir/template_force_thinking.jinja » (vous pouvez l'ajouter après « --served-model-name DeepSeek-R1 »).

    Pour un service déjà déployé, accédez à Model Gallery > Job Management > Deployment Jobs, cliquez sur le nom du service déployé, puis cliquez sur Update service dans le coin supérieur droit de la page des détails pour accéder à la page de configuration.

  2. Modifier le corps de la requête. Dans chaque requête, ajoutez {"role": "assistant", "content": "<think>\n"} à la fin du message.

Désactivation du mode de réflexion

Les modèles de la série DeepSeek-R1 ne prennent pas actuellement en charge la désactivation du processus de réflexion.

Conversations multi-tours

Le service de modèle ne sauvegarde pas l'historique des conversations. Le client doit stocker l'historique des conversations et l'ajouter aux requêtes envoyées au modèle. L'exemple suivant concerne un service déployé avec SGLang.

curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: <EAS_TOKEN>" \
    -d '{
        "model": "<model_name>",
        "messages": [
         {
            "role": "user", 
            "content": "Hello"
        },
        {
            "role": "assistant",
            "content": "Hello! Nice to meet you. How can I help you?"
        },
        {
            "role": "user",
            "content": "What was my previous question?"
        }
        ]
    }' \
    <EAS_ENDPOINT>/v1/chat/completions

Documentation connexe