Optimisation d'un modèle de fondation - Amazon SageMaker

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.

Optimisation d'un modèle de fondation

Les modèles de fondation sont coûteux en ressources informatiques et sont entraînés sur un vaste corps non étiqueté. L'optimisation d'un modèle de fondation pré-entraîné est un moyen abordable de tirer parti de ses nombreuses fonctionnalités tout en personnalisant un modèle sur votre propre petit corps. L'optimisation est une méthode de personnalisation qui implique un entraînement supplémentaire et qui modifie le poids de votre modèle.

L'optimisation peut vous être utile si vous avez besoin :

  • de personnaliser votre modèle en fonction des besoins spécifiques de votre entreprise

  • que votre modèle fonctionne correctement avec un langage spécifique à un domaine, tel que le jargon de l'industrie, les termes techniques ou tout autre vocabulaire spécialisé

  • de performances améliorées pour certaines tâches

  • de réponses précises, relatives et contextuelles dans les applications

  • de réponses plus factuelles, moins toxiques et mieux adaptées à certaines exigences

Il existe deux approches principales que vous pouvez adopter pour l'optimisation en fonction de votre cas d'utilisation et du modèle de fondation choisi.

  1. Si vous souhaitez optimiser votre modèle sur des données spécifiques à un domaine, consultez Optimisation adaptée à un domaine.

  2. Si vous souhaitez effectuer une optimisation basée sur des instructions à l'aide d'exemples d'invite et de réponse, consultez Optimisation basée sur les instructions.

Modèles de base disponibles pour un ajustement précis

Vous pouvez affiner l'un des modèles de JumpStart base suivants :

  • Bloom 3B

  • Bloom 7B1

  • BloomZ 3B FP16

  • Bloom Z 7B1 FP16

  • Code Llama 13B

  • Code Llama 13B Python

  • Code Llama 34B

  • Code Llama 34B Python

  • Code Llama 70B

  • Code Llama 70B Python

  • Code Llama 7B

  • Code Llama 7B Python

  • CyberAgentLM2-7B-Chat (-7B-Chat) CALM2

  • Falcon40 B BF16

  • Falcon40B Instruct BF16

  • Falcon7 B BF16

  • Falcon7B Instruct BF16

  • Base Flan-T5

  • Flan-T5 Grand

  • Flan-T5 Petit

  • Flan-T5 XL

  • Flan-T5 XXL

  • Gemma 2 B

  • Gemma 2B Instructeur

  • Gemma 7B

  • Gemma 7B Instruct

  • GPT-2 XL

  • GPT-J 6 B

  • GPT-Néo 1,3 B

  • GPT-Néo 125M

  • GPT- NEO 2,7 B

  • Light GPT Instruct 6B

  • Lama 2 13B

  • Chat Llama 2 13B

  • Neurone Llama 2 13B

  • Lama 2 70B

  • Chat Llama 2 70B

  • Lama 2 7B

  • Chat Llama 2 7B

  • Neurone Llama 2 7B

  • Mistral 7B

  • Mixtral 8 x 7 V

  • Mixtral 8x7B Instruct

  • RedPajama INCITECulot 3B V1

  • RedPajama INCITECulot 7B V1

  • RedPajama INCITEChat 3B V1

  • RedPajama INCITETchat 7B V1

  • RedPajama INCITEInstruire 3B V1

  • RedPajama INCITEInstruire 7B V1

  • Diffusion stable 2.1

Hyperparamètres de réglage précis couramment pris en charge

Différents modèles de base prennent en charge différents hyperparamètres lors du réglage précis. Les hyperparamètres suivants sont couramment pris en charge et permettent de personnaliser davantage votre modèle pendant l'entraînement :

Paramètre d'inférence Description

epoch

Nombre de passages effectués par le modèle dans l'ensemble de données de réglage fin pendant l'entraînement. Doit être un entier supérieur à 1.

learning_rate

Fréquence à laquelle les poids du modèle sont mis à jour après avoir examiné chaque lot d'exemples d'entraînement de réglage précis. Doit être un flottant positif supérieur à 0.

instruction_tuned

S'il faut former le modèle ou non. Doit être 'True' ou 'False'.

per_device_train_batch_size

La taille du lot par GPU cœur ou CPU pour l'entraînement. Doit être un entier positif.

per_device_eval_batch_size

La taille du lot par GPU cœur ou à CPU des fins d'évaluation. Doit être un entier positif.

max_train_samples

À des fins de débogage ou d'apprentissage plus rapide, tronquez le nombre d'exemples d'apprentissage à cette valeur. La valeur -1 signifie que le modèle utilise tous les échantillons d'apprentissage. Doit être un entier positif ou -1.

max_val_samples

À des fins de débogage ou d'apprentissage plus rapide, tronquez le nombre d'exemples de validation à cette valeur. La valeur -1 signifie que le modèle utilise tous les échantillons de validation. Doit être un entier positif ou -1.

max_input_length

Longueur totale maximale de la séquence d'entrée après tokenisation. Les séquences plus longues seront tronquées. Si -1, max_input_length il est défini sur le minimum de 1024 et model_max_length défini par le tokenizer. S'il est défini sur une valeur positive, max_input_length il est défini sur le minimum de la valeur fournie et model_max_length définie par le tokenizer. Doit être un entier positif ou -1.

validation_split_ratio

S'il n'y a pas de canal de validation, le ratio de validation du train est séparé des données d'entraînement. Doit être compris entre 0 et 1.

train_data_split_seed

Si les données de validation ne sont pas présentes, cela corrige le découpage aléatoire des données d'entraînement d'entrée en données d'entraînement et de validation utilisées par le modèle. Doit être un entier.

preprocessing_num_workers

Le nombre de processus à utiliser pour le prétraitement. SiNone, le processus principal est utilisé pour le prétraitement.

lora_r

Valeur d'adaptation LoRa (LoRa) r, qui sert de facteur d'échelle pour les mises à jour du poids. Doit être un entier positif.

lora_alpha

Valeur alpha d'adaptation de bas rang (LoRa), qui sert de facteur d'échelle pour les mises à jour du poids. Généralement 2 à 4 fois la taille delora_r. Doit être un entier positif.

lora_dropout

La valeur d'abandon pour les couches d'adaptation de bas rang (LoRa) doit être un flottant positif compris entre 0 et 1.

int8_quantization

SiTrue, le modèle est chargé avec une précision de 8 bits pour l'entraînement.

enable_fsdp

SiTrue, la formation utilise le parallélisme de données entièrement découpé.

Vous pouvez spécifier des valeurs d'hyperparamètres lorsque vous peaufinez votre modèle dans Studio. Pour de plus amples informations, veuillez consulter Ajustez les modèles de base dans Studio.

Vous pouvez également remplacer les valeurs par défaut des hyperparamètres lorsque vous peaufinez votre modèle à l'aide du. SageMaker Python SDK Pour de plus amples informations, veuillez consulter Ajustez les modèles de base accessibles au public avec la classe JumpStartEstimator.