Développé par DeepSeek, DeepSeek-R1 excelle dans les domaines des mathématiques, du codage et du raisonnement. Cette rubrique détaille la procédure d'affinage du modèle DeepSeek-R1-Distill-Qwen-7B à l'aide de PAI Model Gallery.
Modèles pris en charge
PAI Model Gallery prend en charge l'affinage supervisé LoRA (SFT) pour six modèles distillés. Le tableau ci-dessous répertorie les configurations de ressources minimales recommandées lors de l'utilisation des hyperparamètres par défaut et du jeu de données fourni.
Modèle distillé | Modèle de base | Méthode d'entraînement prise en charge | Configuration minimale |
DeepSeek-R1-Distill-Qwen-1,5B | Affinage supervisé LoRA | 1 × A10 (24 Go de mémoire vidéo) | |
DeepSeek-R1-Distill-Qwen-7B | 1 × A10 (24 Go de mémoire vidéo) | ||
DeepSeek-R1-Distill-Llama-8B | 1 × A10 (24 Go de mémoire vidéo) | ||
DeepSeek-R1-Distill-Qwen-14B | 1 × GU8IS (48 Go de mémoire vidéo) | ||
DeepSeek-R1-Distill-Qwen-32B | 2 × GU8IS (48 Go de mémoire vidéo) | ||
DeepSeek-R1-Distill-Llama-70B | 8 × GU100 (80 Go de mémoire vidéo) |
Démarrage rapide
-
Accédez à la page Model Gallery.
Connectez-vous à la console PAI. Dans le volet de navigation de gauche, sélectionnez votre Workspace cible.
-
Dans le volet de navigation de gauche, choisissez QuickStart > Model Gallery.
Dans l'onglet Model Gallery, saisissez
DeepSeek-R1-Distill-Qwen-7Bdans la zone de recherche et repérez la fiche de modèle correspondante dans les résultats.
-
Sur la page Model Gallery, recherchez et cliquez sur DeepSeek-R1-Distill-Qwen-7B. La page des détails du modèle décrit les procédures d'entraînement et de déploiement, y compris le format de données SFT requis et les méthodes d'appel.
L'entraînement SFT prend en charge l'algorithme LoRA. Le jeu de données d'entraînement accepte les formats JSON et JSONL, avec des exemples de données fournis aux formats messages, sharegpt et alpaca.
-
Cliquez sur Train dans le coin supérieur droit. Configurez les paramètres clés suivants :
Dataset Configuration : cet exemple utilise le jeu de données par défaut. Pour utiliser vos propres données, préparez un jeu de données personnalisé selon le format indiqué sur la page des détails du modèle et téléchargez-le dans un compartiment Object Storage Service (OSS).
Model output path : sélectionnez un chemin OSS pour stocker le modèle affiné.
Compute Resource : pour Source, sélectionnez public resource. Pour Instance type, sélectionnez
ecs.gn7i-c16g1.4xlarge.-
Hyperparameters : hyperparamètres pris en charge pour l'affinage SFT LoRA. Ajustez-les selon vos besoins. Guide d'affinage des grands modèles de langage.
-
Cliquez sur Train. PAI vous redirige vers la page de la tâche d'entraînement, où vous pouvez surveiller l'état de la tâche et consulter les journaux.
La tâche d'entraînement traverse quatre étapes : Creating, Preparing Environment, Running et Succeeded, ce qui prend environ 6 minutes. Dans l'onglet Task Logs, vous pouvez afficher les journaux détaillés concernant le chargement des points de contrôle du modèle, la fusion des poids LoRA et l'exportation du modèle fusionné.
Une fois l'entraînement terminé avec succès, le modèle affiné est automatiquement enregistré dans AI Asset Management - Models, où vous pouvez le consulter ou le déployer. Enregistrer et gérer des modèles.
Une fois l'entraînement achevé, cliquez sur Deploy pour déployer le modèle affiné en tant que service EAS. Utilisez la même méthode d'appel que pour le modèle distillé d'origine, décrite sur la page des détails du modèle et dans Déployer les modèles DeepSeek-V3 et DeepSeek-R1.
Facturation
L'entraînement via Model Gallery utilise DLC, facturé en fonction de la durée de la tâche. Facturation de DLC.
FAQ
Q : Comment résoudre les problèmes liés à l'échec d'une tâche d'entraînement ?
-
Définissez une valeur appropriée pour
max_lengthdans la configuration d'entraînement. L'algorithme ignore les données dépassantmax_lengthet consigne l'action :[WARNING:swift] There are errors in the dataset, the data will be deleted [INFO:swift] Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/swift/llm/dataset/preprocessor/core.py", line 169, in batched_preprocess row = self.preprocess(row) File "/usr/local/lib/python3.10/site-packages/swift/llm/dataset/utils.py", line 205, in preprocess return self.template.encode(row) File "/usr/local/lib/python3.10/site-packages/swift/llm/template/base.py", line 240, in encode encoded = self._encode(inputs) File "/usr/local/lib/python3.10/site-packages/swift/llm/template/template/deepseek.py", line 134, in _encode return super()._encode(inputs) File "/usr/local/lib/python3.10/site-packages/swift/llm/template/base.py", line 713, in _encode raise MaxLengthError(f'Current length of row({len(input_ids)}) is larger' swift.llm.template.base.MaxLengthError: Current length of row(807) is larger than the max_length(512).Si trop de données sont ignorées, le jeu de données d'entraînement ou de validation peut devenir vide, entraînant l'échec de la tâche d'entraînement :
Map: 100%|xxx| 320/320 [00:00<00:00, 17601.17 examples/s] [INFO:swift] Dataset filtered, origin length: 320, filtered dataset length: 0 [rank0]: Traceback (most recent call last): [rank0]: File "/usr/local/lib/python3.10/site-packages/swift/cli/sft.py", line 5, in <module> [rank0]: sft_main() [rank0]: File "/usr/local/lib/python3.10/site-packages/swift/llm/train/sft.py", line 256, in sft_main [rank0]: return SwiftSft(args).main() [rank0]: File "/usr/local/lib/python3.10/site-packages/swift/llm/base.py", line 46, in main [rank0]: result = self.run() [rank0]: File "/usr/local/lib/python3.10/site-packages/swift/llm/train/sft.py", line 111, in run [rank0]: train_dataset, val_dataset = self._get_dataset() [rank0]: File "/usr/local/lib/python3.10/site-packages/swift/llm/train/sft.py", line 84, in _get_dataset [rank0]: train_dataset, val_dataset = load_dataset( [rank0]: File "/usr/local/lib/python3.10/site-packages/swift/llm/dataset/loader.py", line 459, in load_dataset [rank0]: train_dataset, val_dataset = DatasetLoader.post_process( [rank0]: File "/usr/local/lib/python3.10/site-packages/swift/llm/dataset/loader.py", line 337, in post_process [rank0]: assert train_sample > 0 [rank0]: AssertionError L'erreur
failed to compose dlc job specs, resource limiting triggered, you are trying to use more GPU resources than the thresholdindique que la tâche a atteint la limite de ressources GPU. Par défaut, un maximum de 2 GPU peuvent s'exécuter simultanément. Attendez que les tâches en cours soient terminées ou soumettez un ticket pour demander une augmentation du quota.L'erreur
the specified vswitch vsw-**** cannot create the required resource ecs.gn7i-c32g1.8xlarge, zone not matchsignifie que le type d'instance n'est pas disponible dans la zone de disponibilité du vSwitch. Solutions : 1. Supprimez le paramètre vSwitch afin que DLC sélectionne automatiquement une zone disponible. 2. Choisissez un autre type d'instance.
Q : Puis-je télécharger le modèle après l'entraînement ?
Oui. Définissez le chemin de sortie du modèle vers un répertoire OSS lors de la création de la tâche d'entraînement. Une fois la tâche terminée, téléchargez le modèle depuis ce chemin OSS.
Q : Que faire si les performances du modèle sont médiocres ?
Essayez les solutions suivantes :
Utilisez un modèle offrant de meilleures performances de base, tel qu'un modèle des séries DeepSeek ou Qwen3 avec un nombre de paramètres plus élevé.
Affinez vos invites.
Augmentez la valeur de
max_tokens.Décomposez les tâches complexes en sous-tâches plus petites.