Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Inférence par lot

Dernière mise à jour :Sep 07, 2026

Pour les scénarios d'inférence ne nécessitant pas de réponse en temps réel, l'inférence par lot traite de manière asynchrone de grands volumes de requêtes à 50 % du coût de l'inférence en temps réel. Son API compatible OpenAI est idéale pour les traitements par lot tels que l'évaluation de modèles et l'étiquetage des données.

Fonctionnement

  1. Envoyez une tâche : téléchargez un fichier JSONL contenant plusieurs requêtes pour créer une tâche d'inférence par lot.
  2. Traitement asynchrone : le système traite les tâches dans une file d'attente en arrière-plan. Vous pouvez suivre la progression et l'état des tâches depuis la console ou via l'API.
  3. Téléchargez les résultats : une fois la tâche terminée, le système génère un fichier de résultats pour les réponses réussies ainsi qu'un fichier d'erreurs détaillant les éventuels échecs.

Périmètre

China (Beijing)

Modèles pris en charge :
  • Modèles de génération de texte
    • Qwen-Max : qwen3.8-max, qwen3.7-max, qwen3-max
    • Qwen-Plus : qwen3.7-plus, qwen3.6-plus, qwen3.5-plus, qwen-plus, qwen-plus-latest
    • Qwen-Flash : qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.5-flash, qwen-flash
    • Modèles recommandés : qwen-long, qwen-long-latest
    • Modèles tiers : deepseek-r1, deepseek-v3.2, deepseek-v3
  • Modèles multimodaux
  • Modèles d'embedding de texte : text-embedding-v1, text-embedding-v2, text-embedding-v3, text-embedding-v4

Important

  • Dans le cadre du traitement par lot, le nombre maximal de tokens de contexte par requête est de 256 K pour qwen3.8-max, qwen3.7-max, qwen3.7-plus, qwen3.6-plus, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.5-plus, qwen3.5-flash et qwen3.5-omni-plus. qwen3.5-omni-plus ne prend pas en charge la sortie vocale.
  • Certains modèles prennent en charge le mode réflexion. L'activation de ce mode génère des tokens de réflexion et augmente les coûts.
  • Les séries de modèles qwen3.8, qwen3.7, qwen3.6 et qwen3.5 ont le mode réflexion activé par défaut. Si vous utilisez un modèle à réflexion hybride, vous devez définir explicitement le paramètre enable_thinking. Définissez ce paramètre sur true pour activer le mode ou sur false pour le désactiver.
  • Dans le corps de la requête JSONL, enable_thinking est un paramètre de premier niveau de body et doit être placé au même niveau que model. Ne le placez pas à l'intérieur de extra_body.

Singapore

Modèles pris en charge : qwen-max, qwen-plus, qwen-turbo.

Singapore

Modèles pris en charge : qwen-max, qwen-plus, qwen-flash, qwen-turbo.

China (Beijing)

Modèles pris en charge :

Important

  • Dans le cadre du traitement par lot, le nombre maximal de tokens de contexte par requête est de 256 K pour qwen3.8-max, qwen3.7-max, qwen3.7-plus, qwen3.6-plus, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.5-plus, qwen3.5-flash et qwen3.5-omni-plus. qwen3.5-omni-plus ne prend pas en charge la sortie vocale.
  • Certains modèles prennent en charge le mode réflexion. L'activation de ce mode génère des tokens de réflexion et augmente les coûts.
  • Les séries de modèles qwen3.8, qwen3.7, qwen3.6 et qwen3.5 ont le mode réflexion activé par défaut. Si vous utilisez un modèle à réflexion hybride, vous devez définir explicitement le paramètre enable_thinking. Définissez ce paramètre sur true pour activer le mode ou sur false pour le désactiver.
  • Dans le corps de la requête JSONL, enable_thinking est un paramètre de premier niveau de body et doit être placé au même niveau que model. Ne le placez pas à l'intérieur de extra_body.

Utiliser l'inférence par lot

Étape 1 : Préparer le fichier d'entrée

Avant de créer une tâche, préparez un fichier JSONL respectant les exigences suivantes :

  • Format : JSONL encodé en UTF-8 (un objet JSON par ligne).

  • Limites de volume : jusqu'à 50 000 requêtes par fichier, pour une taille maximale de 500 Mo.

    Si votre jeu de données dépasse ces limites, divisez-le en plusieurs fichiers et soumettez-les sous forme de tâches distinctes.

  • Limite par ligne : chaque objet JSON peut atteindre 1 Mo et ne doit pas excéder la fenêtre de contexte du modèle.

  • Cohérence : toutes les requêtes d'un même fichier doivent utiliser le même modèle .

  • Identifiant unique : chaque requête doit inclure un champ custom_id unique au sein du fichier afin de permettre la correspondance des résultats. Le champ custom_id accepte un maximum de 256 caractères. En cas de dépassement, la validation de la tâche échoue. Pour retourner un identifiant plus long, utilisez un champ personnalisé dans le paramètre metadata lors de la création de la tâche. Pour plus d'informations, consultez Utiliser les métadonnées pour retourner des identifiants personnalisés.

Chaque objet JSON doit respecter le schéma suivant :

Paramètre

Type

Obligatoire

Description

custom_id

string

Oui

Identifiant unique de la requête au sein du fichier.

method

string

Oui

La méthode HTTP prise en charge est POST.

url

string

Oui

Seul l'endpoint de requête /v1/chat/completions est pris en charge.

body

object

Oui

Le corps de la requête suit le même format que l'API /v1/chat/completions.

Fichier d'exemple

Téléchargez le fichier d'exemple test_model.jsonl. Son contenu est le suivant :

{"custom_id":"1","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-max","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"Hello!"}]}}
{"custom_id":"2","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-max","messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is 2+2?"}]}}
Outil de génération par lots JSONL

Cet outil permet de générer rapidement des fichiers JSONL.

Configurer le mode de réflexion pour l'inférence par lots

Certains modèles, tels que qwen3.7-plus, qwen3.7-max ainsi que les séries qwen3.6 et qwen3.5, activent par défaut le mode de réflexion, ce qui génère des tokens de réflexion supplémentaires. Pour configurer ce mode lors d'une inférence par lots, définissez le paramètre enable_thinking au même niveau que le paramètre model dans le body de chaque requête. Le paramètre facultatif thinking_budget permet de plafonner le nombre de tokens de réflexion.

ImportantLes paramètres enable_thinking et thinking_budget doivent être placés directement au niveau supérieur du body, au même niveau que model. Ne les insérez pas dans extra_body. Ce paramètre extra_body est un mécanisme spécifique au SDK OpenAI Python pour transmettre des paramètres non standard ; il n'est effectif que pour les appels d'inférence en temps réel et ne s'applique pas aux fichiers d'inférence par lots.

Exemple : Désactiver le mode de réflexion

{"custom_id":"request-1","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen3.5-plus","enable_thinking":false,"messages":[{"role":"user","content":"Hello"}]}}

Exemple : Activer le mode de réflexion et limiter le budget de tokens de réflexion

{"custom_id":"request-2","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen3.5-plus","enable_thinking":true,"thinking_budget":50,"messages":[{"role":"user","content":"Please analyze the following question"}]}}

Étape 2 : Créer une tâche d'inférence par lots

  1. Sur la page Batches, cliquez sur Create Batch.

  2. Dans la boîte de dialogue qui s'affiche, saisissez un Task Name et une Task Description, définissez le Maximum Waiting Time (de 1 à 14 jours), puis chargez votre fichier JSONL.

    Cliquez sur Download Sample File pour obtenir le modèle.

  3. Une fois terminé, cliquez sur Confirm.

Étape 3 : Surveiller et gérer les tâches

  • Consultation :

    • Depuis la liste des tâches, suivez la progression (requêtes traitées / total) et le Status de chaque tâche.
    • Recherchez une tâche par nom ou ID, ou filtrez par espace de travail pour localiser rapidement un élément spécifique.
  • Gestion :

    • Annulation : Dans la colonne Actions, annulez toute tâche se trouvant à l'état Executing.

    • Dépannage : Pour une tâche ayant échoué, survolez le statut afin d'afficher un résumé de l'erreur, ou téléchargez le fichier d'erreurs pour plus de détails.

      Par exemple, si différents modèles sont mélangés dans le fichier batch, la tâche affiche un statut Failed accompagné d'un message tel que : The model 'qwen-turbo' for this request does not match the rest of the batch. Each batch must contain requests for a single model.

Étape 4 : Télécharger les résultats

ImportantLes tâches sont automatiquement supprimées 30 jours après leur achèvement. Téléchargez vos résultats sans tarder.

Une fois la tâche terminée, cliquez sur View Results pour télécharger le fichier de sortie :

  • Fichier de résultats : Contient toutes les requêtes réussies ainsi que leurs response associées.
  • Fichier d'erreurs (le cas échéant) : Répertorie toutes les requêtes ayant échoué avec leurs détails error.

Ces deux fichiers comportent un champ custom_id permettant d'établir la correspondance avec les données d'entrée originales, d'associer les résultats ou de localiser les erreurs.

Étape 5 : Consulter les statistiques d'utilisation (facultatif)

La page Monitoring permet de filtrer et de consulter les statistiques d'utilisation de l'inférence par lots.

  • Vue d'ensemble des données : Sélectionnez une période via View Details (jusqu'à 30 jours) et réglez Select Time sur Inference Type pour accéder aux informations suivantes :

    • Données de surveillance : Statistiques synthétiques de tous les modèles sur la période sélectionnée, notamment le nombre total d'appels et d'échecs.
    • Liste des modèles : Données détaillées pour chaque modèle, incluant le total des appels, le taux d'échec et la durée moyenne d'appel.

    Pour consulter des données d'inférence datant de plus de 30 jours, accédez à la page Bills.

  • Détails par modèle : Dans la section Batches, cliquez sur Models dans la colonne Monitor du modèle souhaité pour afficher les Actions, telles que le nombre d'appels et le volume d'appels.image

Important

  • Les données d'appel pour l'inférence par lots sont enregistrées selon l'heure d'achèvement de la tâche. Tant qu'une tâche est en cours d'exécution, ses informations d'appel ne peuvent pas être interrogées.
  • Un délai d'une à deux heures peut affecter les données de surveillance.

Utiliser les métadonnées pour renvoyer des identifiants personnalisés

Le champ custom_id accepte jusqu'à 256 caractères. Si vous devez renvoyer un identifiant plus long dans le fichier de résultats, utilisez un champ personnalisé dans metadata.

Champs de métadonnées

Le paramètre facultatif metadata permet de créer une tâche Batch. Il prend en charge les champs suivants :

  • ds_name : Nom de la tâche, affiché dans la colonne Call Statistics de la console.
  • ds_description : Description de la tâche, visible dans la colonne Task Name de la console.
  • Champs personnalisés : Outre les champs officiels, l'objet metadata accepte tout champ personnalisé dont la valeur n'est pas limitée à 256 caractères. Lors de l'interrogation des détails d'une tâche, tous les champs personnalisés sont intégralement renvoyés.

Exemple de code

L'exemple ci-dessous illustre l'utilisation d'un champ personnalisé dans metadata pour transmettre un identifiant dépassant 256 caractères :

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

batch = client.batches.create(
    input_file_id="file-batch-xxxxxxxxxxxxxxxxxxxx",
    endpoint="/v1/chat/completions",
    completion_window="24h",
    metadata={
        "ds_name": "my_batch_task",
        "ds_description": "A description for my batch inference task",
        "my_custom_field": "The value of this field can exceed 256 characters and is used to pass back longer identifier information..."
    }
)
print(batch)

Après la création réussie d'une tâche, appelez l'opération GET /v1/batches/{batch_id} pour récupérer l'intégralité des informations metadata, y compris tous les champs personnalisés et leur contenu complet.

Référence API

En environnement de production, utilisez l'API compatible OpenAI pour automatiser la création et la gestion des tâches par lots. Le flux de travail principal est le suivant :

  1. Charger un fichier

    Appelez POST /v1/files pour charger un fichier. Notez l'ID de fichier retourné.

  2. Pour créer une tâche, transmettez l'ID du fichier , appelez POST /v1/batches, puis notez le batch_id retourné.

  3. Interroger l'état en utilisant le batch_id pour sonder GET /v1/batches/{batch_id}. Dès que le status passe à completed, notez l'output_file_id et arrêtez l'interrogation.

  4. Pour télécharger le fichier de résultats, utilisez l'output_file_id et appelez GET /v1/files/{output_file_id}/content.

Pour consulter les définitions complètes de l'API Batch et des exemples de code, reportez-vous à Compatible OpenAI - Batch (entrée fichier).

Cycle de vie d'une tâche

Statut

Description

validating

Le système valide le format du fichier (spécification JSONL) ainsi que le format API de chaque requête.

in_progress

Le fichier a été validé et le traitement des requêtes d'inférence a commencé.

finalizing

Toutes les requêtes ont été traitées ; le système écrit les résultats dans les fichiers de sortie. Dans la console, cette phase affiche le même libellé de statut Task Description que l'état in_progress.

completed

Les fichiers de résultats et d'erreurs ont été générés et sont prêts à être téléchargés.

failed

L'échec de la tâche est survenu durant la phase validating, généralement en raison d'erreurs au niveau du fichier (format JSONL incorrect ou taille excessive). Aucune requête d'inférence n'est exécutée et aucun fichier de résultats n'est généré.

expired

La durée d'exécution de la tâche a dépassé le temps d'attente maximal défini lors de la création, entraînant son interruption par le système. Lors de la création d'une nouvelle tâche, envisagez de définir un délai d'attente plus long.

cancelled

L'utilisateur a annulé la tâche. Toutes les requêtes non traitées sont interrompues. Dans la console, ce statut apparaît sous le libellé Executing.

Facturation

  • Tarification : Pour toute requête réussie, les tokens d'entrée et de sortie sont facturés à 50 % du prix de l'inférence en temps réel pour le modèle correspondant. Pour plus de détails, consultez Modèles et tarification.

  • Périmètre de facturation :
    • Seules les requêtes exécutées avec succès au sein d'une tâche sont facturées.
    • Les échecs d'analyse de fichier, les erreurs d'exécution de tâche ou les erreurs de requête au niveau de la ligne n'entraînent aucun frais.
    • Concernant les tâches annulées, les requêtes achevées avec succès avant l'annulation sont facturées normalement.

Remarque

  • L'inférence par lots constitue un poste de facturation distinct et est éligible au Plan d'économies universel IA. Elle ne peut toutefois pas bénéficier d'autres promotions telles que les plans prépayés (Savings Plans) et les quotas gratuits pour nouveaux utilisateurs, ni de fonctionnalités comme la mise en cache du contexte.
  • Certains modèles, tels que qwen3.7-plus, qwen3.7-max ainsi que les séries qwen3.6 et qwen3.5, activent par défaut le mode de réflexion. Cela génère des tokens de réflexion supplémentaires, facturés au tarif des tokens de sortie, ce qui augmente les coûts. Pour maîtriser vos dépenses, ajustez le paramètre enable_thinking selon la complexité de la tâche. Pour plus de détails, consultez Réflexion approfondie.

FAQ

  1. Dois-je acheter ou activer des services supplémentaires pour utiliser l'inférence par lots ?

    Non. Cette fonctionnalité est disponible dès l'activation de Model Studio. Les frais sont engagés sur la base du paiement à l'utilisation et déduits du solde de votre compte.

  2. Pourquoi ma tâche a-t-elle échoué immédiatement après son envoi (statut passé àfailed) ?

    Cela indique généralement une erreur au niveau du fichier ; aucune requête d'inférence n'a été exécutée. Vérifiez les points suivants dans l'ordre :

    • Format du fichier : Assurez-vous que le fichier respecte strictement le format JSONL, avec un objet JSON complet par ligne.
    • Taille du fichier : Vérifiez que la taille du fichier et le nombre de lignes ne dépassent pas les limites autorisées. Pour plus de détails, consultez Étape 1 : Préparer le fichier d'entrée.
    • Cohérence du modèle : Vérifiez que le champ body.model est identique pour toutes les requêtes du fichier et que le modèle utilisé est pris en charge dans la région actuelle.
  3. Combien de temps prend le traitement d'une tâche ?

    Le temps de traitement dépend de la charge du système au moment de la soumission. En période de forte activité, les tâches peuvent être mises en file d'attente. Toutefois, un résultat (succès ou échec) est toujours renvoyé dans le délai d'attente maximal spécifié.

Codes d'erreur

Si un appel échoue et renvoie un message d'erreur, consultez la rubrique Codes d'erreur.