Récemment, divers modèles de base qui servent de cerveau à l'IA générative ont été publiés, et de nombreuses entreprises examinent ou développent des applications qui utilisent des modèles de base. Cependant, les modèles à grande échelle ne sont pas faciles à déduire sur un seul GPU, et il n’est pas facile de les utiliser pour la production ou de les affiner.
Cette pratique est écrite pour ceux qui souhaitent examiner rapidement l'IA générative et l'appliquer à la production, fournissant un guide étape par étape sur la façon de servir et d'affiner efficacement les modèles coréens à grande échelle sur l'infrastructure AWS.
1_prepare-dataset-alpaca-method.ipynb
: Préparez un ensemble de données d'entraînement à partir de l'ensemble de données d'instruction. Cette méthode tokenise chaque échantillon.1_prepare-dataset-chunk-method.ipynb
: Préparez un ensemble de données d'entraînement à partir de l'ensemble de données d'instruction. Cette méthode concatène tous les échantillons et les divise en fonction de la taille des morceaux.2_local-train-debug-lora.ipynb
: déboguez avec quelques exemples de données dans l'environnement de développement avant d'effectuer sérieusement sur les instances de formation. Si vous êtes déjà familiarisé avec le réglage fin, veuillez ignorer cette pratique et passer à 3_sm-train-lora.ipynb.3_sm-train-lora.ipynb
: Effectue un réglage fin sur les instances de formation SageMaker. 1_local-inference.ipynb
: charge le modèle depuis Hugging Face Hub et effectue une inférence simple. Bien que cela ne soit pas obligatoire, nous vous recommandons de commencer par ce cours si vous souhaitez essayer le modèle.2_local-inference-deepspeed.py
& 2_run.sh
: Expérimentez avec l'inférence distribuée DeepSpeed. Une instance ou un serveur équipé de plusieurs GPU est recommandé. (par exemple ml.g5.12xlarge
)3_sm-serving-djl-deepspeed-from-hub.ipynb
: effectue le service de modèle SageMaker à l'aide du conteneur de service SageMaker DJL (Deep Java Library) (inférence distribuée DeepSpeed). Le serveur d'hébergement télécharge les modèles directement depuis Hugging Face Hub.3_sm-serving-djl-deepspeed-from-hub.ipynb
: effectue le service de modèle SageMaker à l'aide du conteneur de service SageMaker DJL (Deep Java Library) (inférence distribuée DeepSpeed). Le serveur d'hébergement télécharge le modèle depuis S3. La vitesse de téléchargement est très rapide car les fichiers sont téléchargés en parallèle en interne par s5cmd.3_sm-serving-tgi-from-hub.ipynb
: effectue le service de modèle SageMaker à l'aide du conteneur de service SageMaker TGI (Text Generation Inferface). TGI est un serveur d'inférence distribué développé par Hugging Face et affiche une vitesse d'inférence très rapide.3_sm-serving-djl-fastertransformer-nocode.ipynb
: effectue le service de modèle SageMaker à l'aide du conteneur de service SageMaker DJL (Deep Java Library) (inférence distribuée NVIDIA FasterTransformer). Il affiche des vitesses plus rapides que DeepSpeed uniquement pour les modèles pris en charge. Pour effectuer cette pratique, nous vous recommandons de préparer une instance avec les spécifications ci-dessous.
Vous pouvez également utiliser SageMaker Studio Lab ou SageMaker Studio.
ml.t3.medium
(spécification minimale)ml.m5.xlarge
(recommandé)ml.g5.2xlarge
(spécification minimale)ml.g5.12xlarge
(recommandé)ml.g5.2xlarge
: Modèle avec des paramètres 7B ou moinsml.g5.12xlarge
(recommandé) Cet exemple de code est fourni sous la licence MIT-0. Veuillez vous référer au fichier de licence.