Les modèles de code peuvent être réglés à l'aide du réglage supervisé. Le réglage supervisé utilise des exemples étiquetés qui illustrent le type de sortie que vous souhaitez obtenir de votre modèle de génération de code ou de chat de code lors de l'inférence. Les modèles de code ne sont pas compatibles avec le réglage en utilisant l'apprentissage automatique par renforcement qui utilise le feedback humain (RLHF).
Scénarios d'utilisation du réglage d'un modèle de code
Un réglage est nécessaire lorsque vous souhaitez qu'un modèle apprenne quelque chose de spécifique ou de spécialisé qui s'écarte des modèles généraux de langage et de code. Voici des exemples de ce que vous pouvez enseigner aux modèles code-bison
et codechat-bison
:
- Découvrez comment générer du code pour des bibliothèques personnalisées. En entraînant un modèle de code avec des exemples étiquetés d'une bibliothèque personnalisée, vous pouvez générer ou discuter du code spécifique à cette bibliothèque personnalisée.
- Comment utiliser votre code base. En entraînant un modèle avec des échantillons étiquetés de votre code base, vous pouvez générer du code ou discuter du code qui utilise des qualités uniques dans votre code base.
- Générer du code à l'aide de variantes d'un langage de programmation En entraînant un modèle de code avec des échantillons étiquetés d'une variante de langage, vous pouvez générer ou discuter du code qui utilise les conventions et les normes de cette variante de langage.
Ces scénarios incluent des exigences de code difficiles à capturer seulement avec des instructions de requête. Voici quelques exemples :
Génération de code
Cet exemple de requête et de réponse permet d'ajuster
code-bison
pour qu'il fonctionne avec un ensemble de données spécifique.:
Cet exemple de requête et de réponse permet d'entraîner
code-bison
à créer un produit à l'aide de Python.:
Chat de code
Cet exemple de requête et de réponse permet d'ajuster
codechat-bison
pour aider un utilisateur à apprendre à travailler avec un ensemble de données spécifique.:
Cet exemple de requête et de réponse permet d'ajuster
codechat-bison
pour aider un utilisateur à apprendre à créer un produit à l'aide de Python au cours d'une session de chat.:
Préparer l'ensemble de données pour le réglage d'un modèle de code
L'ensemble de données permettant d'affiner les réglages d'un modèle de code inclut des exemples correspondant à la tâche que le modèle doit effectuer. Votre ensemble de données doit comporter au moins 10 exemples, mais nous vous recommandons d'utiliser au moins 500 exemples pour obtenir de bons résultats. Plus vous fournirez d'exemples, plus les résultats seront pertinents.
Format d'ensemble de données pour le réglage d'un modèle de code
L'ensemble de données pour le réglage d'un modèle de génération de code et d'un modèle de chat de code doit être au format JSON Lines (JSONL). Vous trouverez ci-dessous des détails sur le format de l'ensemble de données et des exemples pour chaque modèle :
Génération de code
Votre ensemble de données pour le réglage d'un modèle de génération de code doit être au format JSON Lines (JSONL), où chaque ligne contient un seul exemple de réglage. Chaque exemple est composé d'un champ input_text
contenant la requête vers le modèle, et d'un champ output_text
contenant un exemple de réponse que le modèle réglé doit produire.
Un ensemble de données peut contenir 10 000 exemples au maximum pour un modèle de génération de texte.
Exemples d'ensemble de données pour le réglage d'un modèle de génération de code
Cet article présente deux exemples d'ensembles de données pour le réglage d'un modèle de génération de code. Voici le premier exemple d'un ensemble de données de réglage de génération de code :
{"input_text": "How to create a product in Python with the Cloud Vision API?", "output_text": "Use this Python code sample to learn how to create a product with the Cloud Vision API:\n\n```python\n\r\n\r\n\r\n\r\n\r\nfrom google.cloud import vision\r\nfrom google.protobuf import field_mask_pb2 as field_mask\r\n\r\ndef create_product(\r\n project_id, location, product_id, product_display_name,\r\n product_category):\r\n \"\"\"Create one product.\r\n Args:\r\n project_id: Id of the project.\r\n location: A compute region name.\r\n product_id: Id of the product.\r\n product_display_name: Display name of the product.\r\n product_category: Category of the product.\r\n \"\"\"\r\n client = vision.ProductSearchClient()\r\n\r\n # A resource that represents Google Cloud Platform location.\r\n location_path = f\"projects/{project_id}/locations/{location}\"\r\n\r\n # Create a product with the product specification in the region.\r\n # Set product display name and product category.\r\n product = vision.Product(\r\n display_name=product_display_name,\r\n product_category=product_category)\r\n\r\n # The response is the product with the `name` field populated.\r\n response = client.create_product(\r\n parent=location_path,\r\n product=product,\r\n product_id=product_id)\r\n\r\n # Display the product information.\r\n print('Product name: {}'.format(response.name))\r\n```"}
Voici le deuxième exemple d'un ensemble de données de réglage de la génération de code :
{"input_text": "python to retrieve the labels of a dataset for a given dataset ID in BigQuery", "output_text": "Here is a Python code sample to retrieve the labels of a dataset for a given dataset ID in BigQuery.\n\n```python\n\n from google.cloud import bigquery\n\n # Construct a BigQuery client object.\n client = bigquery.Client()\n\n # TODO(developer): Set dataset_id to the ID of the dataset to fetch.\n # dataset_id = \"your-project.your_dataset\"\n\n dataset = client.get_dataset(dataset_id) # Make an API request.\n\n # View dataset labels.\n print(\"Dataset ID: {}\".format(dataset_id))\n print(\"Labels:\")\n if dataset.labels:\n for label, value in dataset.labels.items():\n print(\"\\t{}: {}\".format(label, value))\n else:\n print(\"\\tDataset has no labels defined.\")\n```"}
Chat de code
Votre ensemble de données pour le réglage d'un modèle de chat de code doit être au format JSON Lines (JSONL), où chaque ligne contient un seul exemple de réglage. Chaque exemple est composé d'un champ messages
contenant des exemples de requêtes de chat et de réponses que le modèle réglé doit produire.
Les exemples de l'ensemble de données d'un modèle de chat de code peuvent contenir au maximum 10 000 champs author
. Cette valeur maximale s'applique à la somme de tous les champs author
de tous les messages
de tous les exemples.
Exemples d'ensemble de données pour le réglage d'un modèle de chat de code
Cet article présente deux exemples d'ensembles de données pour le réglage d'un modèle de chat de code. Voici le premier exemple d'un ensemble de données pour le réglage de génération de chat de code :
{"messages": [{"author":"user", "content": "How to create a product in Python with Cloud Vision?"}, {"author": "assistant", "content": "Use this Python code sample to learn how to create a product with Cloud Vision:\n\n```python\n\r\n\r\n\r\n\r\n\r\nfrom google.cloud import vision\r\nfrom google.protobuf import field_mask_pb2 as field_mask\r\n\r\ndef create_product(\r\n project_id, location, product_id, product_display_name,\r\n product_category):\r\n \"\"\"Create one product.\r\n Args:\r\n project_id: Id of the project.\r\n location: A compute region name.\r\n product_id: Id of the product.\r\n product_display_name: Display name of the product.\r\n product_category: Category of the product.\r\n \"\"\"\r\n client = vision.ProductSearchClient()\r\n\r\n # A resource that represents Google Cloud Platform location.\r\n location_path = f\"projects/{project_id}/locations/{location}\"\r\n\r\n # Create a product with the product specification in the region.\r\n # Set product display name and product category.\r\n product = vision.Product(\r\n display_name=product_display_name,\r\n product_category=product_category)\r\n\r\n # The response is the product with the `name` field populated.\r\n response = client.create_product(\r\n parent=location_path,\r\n product=product,\r\n product_id=product_id)\r\n\r\n # Display the product information.\r\n print('Product name: {}'.format(response.name))\r\n```"}]}
Voici le deuxième exemple d'un ensemble de données pour le réglage de la génération de chat de code :
{"messages": [{"author":"user", "content": "Python to retrieve the labels of a dataset for a given dataset ID in BigQuery"}, {"author": "assistant", "content": "Here is a Python code sample to retrieve the labels of a dataset for a given dataset ID in BigQuery.\n\n```python\n\n from google.cloud import bigquery\n\n # Construct a BigQuery client object.\n client = bigquery.Client()\n\n # TODO(developer): Set dataset_id to the ID of the dataset to fetch.\n # dataset_id = \"your-project.your_dataset\"\n\n dataset = client.get_dataset(dataset_id) # Make an API request.\n\n # View dataset labels.\n print(\"Dataset ID: {}\".format(dataset_id))\n print(\"Labels:\")\n if dataset.labels:\n for label, value in dataset.labels.items():\n print(\"\\t{}: {}\".format(label, value))\n else:\n print(\"\\tDataset has no labels defined.\")\n```"}]}
Assurer la cohérence des données de production
Les exemples de vos ensembles de données doivent correspondre au trafic de production attendu. Si votre ensemble de données contient une mise en forme, des mots clés, des instructions ou des informations spécifiques, les données de production doivent utiliser le même format et les mêmes instructions.
Par exemple, si les exemples de votre ensemble de données incluent "question:"
et "context:"
, le trafic de production doit également être mis en forme de manière à inclure "question:"
et "context:"
dans le même ordre que les exemples de l'ensembles de données. Si vous excluez le contexte, le modèle ne reconnaît pas le modèle, même si la question exacte figurait dans un exemple de l'ensemble de données.
Inclure des instructions dans les exemples
Pour les tâches telles que la génération de code, vous pouvez créer un ensemble de données d'exemples ne contenant pas d'instructions. Toutefois, exclure les instructions des exemples dans l'ensemble de données entraîne de mauvaises performances après le réglage, en particulier pour les ensembles de données plus petits.
Instructions relatives à l'exclusion :
{ "input_text": "Calculate the sum of a list of integers.", "output_text": "```python\nnums = [1, 2, 3]\ntotal_sum = sum(nums)\n```" }
Instructions incluses :
{ "input_text": "Write the code in Python: calculate the sum of a list of integers", "output_text": "```python\nnums = [1, 2, 3]\ntotal_sum = sum(nums)\n```" }
Importer les ensembles de données de réglage dans Cloud Storage
Pour exécuter un job de réglage, vous devez importer un ou plusieurs ensembles de données dans un bucket Cloud Storage. Vous pouvez créer un bucket Cloud Storage ou utiliser un bucket existant pour stocker les fichiers des ensembles de données. La région du bucket n'a pas d'importance, mais nous vous recommandons d'utiliser un bucket situé dans le même projet Google Cloud que celui où vous prévoyez de régler votre modèle.
Une fois votre bucket prêt, importez-y le fichier de votre ensemble de données.
Paramètres de région des réglages supervisés
Vous pouvez spécifier trois paramètres de région Google Cloud lorsque vous configurez un job de réglage supervisé. Une région est l'emplacement du pipeline qui règle le modèle. L'autre région sert à exécuter le job de réglage du modèle et à importer le modèle réglé.
Région du job de pipeline
La région du job de pipeline est celle dans laquelle le job de pipeline est exécuté. Si la région d'importation du modèle n'est pas spécifiée, le modèle est importé et déployé dans la région du job de pipeline. Les données intermédiaires, telles que l'ensemble de données transformé, sont stockées dans la région du job de pipeline. Pour connaître les régions que vous pouvez utiliser pour les jobs de pipeline, consultez la page Régions de job et d'importation de modèles compatibles. Vous devez spécifier la région du job de pipeline à l'aide de l'une des méthodes suivantes :
Si vous utilisez le SDK Vertex AI, vous pouvez spécifier la région dans laquelle le job de pipeline est exécuté à l'aide du paramètre
tuning_job_location
de la méthodetune_model
de l'objet représentant le modèle que vous réglez, par exemple, la méthodeTextGenerationModel.tune_model
.Si vous créez un job de réglage supervisé en envoyant une requête POST à l'aide de
pipelineJobs.create
, vous utilisez l'URL pour spécifier la région dans laquelle le job de pipeline est exécuté. Dans l'URL suivante, remplacez les deux instances dePIPELINE_JOB_REGION
par la région où le pipeline est exécuté :https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
Si vous utilisez la console Google Cloud pour créer un job de réglage de modèle supervisé, spécifiez la région du job de pipeline dans le contrôle Région lors de la création du job de réglage. Dans la console Google Cloud, le contrôle Région spécifie à la fois la région du job de pipeline et la région d'importation du modèle. Lorsque vous utilisez la console Google Cloud pour créer un job de réglage de modèle supervisé, les deux régions sont toujours les mêmes.
Région d'importation du modèle
Vous utilisez le paramètre facultatif tuned_model_location
pour spécifier l'emplacement d'importation du modèle réglé. Si la région d'importation du modèle n'est pas spécifiée, le modèle réglé est importé dans la région du job de pipeline.Vous pouvez utiliser l'une des régions de jobs de pipeline et d'importation de modèles compatibles. Vous pouvez spécifier la région d'importation du modèle à l'aide de l'une des méthodes suivantes :
Si vous utilisez le SDK Vertex AI, le paramètre
tuned_model_location
est spécifié dans la méthodetune_model
de l'objet qui représente le modèle que vous réglez, par exemple, la méthodeTextGenerationModel.tune_model
.Si vous créez un job de réglage de modèle supervisé en envoyant une requête POST à l'aide de la méthode
pipelineJobs
, vous pouvez utiliser la méthodelocation
pour spécifier la région d'importation du modèle.Si vous utilisez la console Google Cloud pour créer un job de réglage de modèle supervisé, spécifiez la région d'importation du modèle dans le contrôle Région lors de la création du job de réglage. Dans la console Google Cloud, le contrôle Région spécifie à la fois la région d'importation du modèle et la région du job de pipeline. Lorsque vous utilisez la console Google Cloud pour créer un job de réglage de modèle supervisé, les deux régions sont toujours les mêmes.
Région de réglage des modèles
La région de réglage du modèle est l'emplacement où s'effectue le calcul de réglage du modèle. Cette région est déterminée par le type d'accélérateur que vous choisissez. Si vous spécifiez TPU
pour le type d'accélérateur, le calcul de réglage du modèle s'effectue dans europe-west4
. Si vous spécifiez GPU
pour le type d'accélérateur, le réglage du modèle s'effectue dans us-central1
.
Régions compatibles avec les jobs de pipeline et l'importation de modèles
Vous pouvez utiliser l'une des régions suivantes pour spécifier la région d'importation du modèle et la région du job de pipeline :
us-central1
europe-west4
asia-southeast1
us-west1
europe-west3
europe-west2
asia-northeast1
us-east4
us-west4
northamerica-northeast1
europe-west9
europe-west1
asia-northeast3
Créer un job de réglage d'un modèle de code
Vous pouvez créer un job de réglage supervisé à l'aide de la console Google Cloud, de l'API ou du SDK Vertex AI pour Python. Pour obtenir des conseils sur les configurations de réglage, consultez la page Configurations recommandées.
Créer un job de réglage d'un modèle de génération de code
Vous trouverez ci-dessous la procédure à suivre pour créer un job de réglage de modèle de génération de code à l'aide de la console Google Cloud ou des commandes de l'API REST.
REST
Pour créer un job de réglage d'un modèle de génération de code, envoyez une requête POST à l'aide de la méthode pipelineJobs.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : l'ID de votre projet.
- TUNINGPIPELINE_DISPLAYNAME : nom à afficher pour le job pipelineJob.
- OUTPUT_DIR : URI du bucket dans lequel générer les artefacts de pipeline.
- MODEL_DISPLAYNAME : nom à afficher pour le modèle importé (créé) par le TrainingPipeline.
- DATASET_URI : URI du fichier de votre ensemble de données.
- EVAL_DATASET_URI : (facultatif) URI du fichier JSONL contenant l'ensemble de données d'évaluation pour la prédiction par lot et l'évaluation. L'évaluation n'est pas compatible avec
codechat-bison
. Pour plus d'informations, consultez la page Format d'ensemble de données pour le réglage d'un modèle de code. L'ensemble de données d'évaluation nécessite entre 10 et 250 exemples. - EVAL_INTERVAL : (facultatif, valeur par défaut
20
) nombre d'étapes de réglage entre chaque évaluation. Un intervalle d'évaluation n'est pas disponible pour les modèles de chat. Étant donné que l'évaluation s'exécute sur l'ensemble de données d'évaluation complet, un intervalle d'évaluation plus petit entraîne un temps de réglage plus long. Par exemple, sisteps
est égal à 200 et la valeur deEVAL_INTERVAL
égale à 100, vous n'obtenez que deux points de données pour les métriques d'évaluation. Ce paramètre nécessite queevaluation_data_uri
soit défini. - PIPELINE_JOB_REGION : région dans laquelle le job de réglage de pipeline est exécuté. Il s'agit également de la région par défaut dans laquelle le modèle réglé est importé. Si vous souhaitez importer votre modèle dans une autre région, utilisez le paramètre
location
pour spécifier la région d'importation du modèle réglé. Pour en savoir plus, consultez la section Région du job de pipeline. - MODEL_UPLOAD_REGION : (facultatif) région dans laquelle le modèle réglé est importé. Si vous ne spécifiez pas de région d'importation du modèle, le modèle réglé est importé dans la même région que la tâche de pipeline. Pour en savoir plus, consultez la section Région d'importation du modèle.
- ACCELERATOR_TYPE : (facultatif, valeur par défaut
GPU
) type d'accélérateur à utiliser pour le réglage du modèle. Les options valides sont les suivantes :GPU
: utilise 8 GPU A100 de 80 Go pour le réglage. Assurez-vous de disposer d'un quota suffisant. Si vous choisissezGPU
, VPC‑SC est compatible. CMEK est compatible si l'emplacement de réglage et d'importation du modèle estus-centra1
. Pour en savoir plus, consultez la section Paramètres de région des réglages supervisés. Si vous choisissezGPU
, les calculs de réglage de votre modèle s'effectuent dans la régionus-central1
.TPU
: utilise 64 cœurs du pod TPU v3 pour le réglage. Assurez-vous de disposer d'un quota suffisant. Les clés CMEK ne sont pas acceptées, mais VPC‑SC l'est. Si vous choisissezTPU
, les calculs de réglage de votre modèle s'effectuent dans la régioneurope-west4
.
- ENABLE_EARLY_STOPPING : (facultatif, valeur par défaut
true
)boolean
qui, si la valeur est définie surtrue
, arrête le réglage avant d'effectuer toutes les étapes de réglage en cas de performances du modèle comme mesuré par la précision des jetons prévus, ne s'améliore pas suffisamment entre les exécutions d'évaluations. Si elle est définie surfalse
, le réglage se poursuit jusqu'à ce que toutes les étapes de réglage soient terminées. Ce paramètre nécessite queevaluation_data_uri
soit défini. L'arrêt prématuré n'est pas disponible pour les modèles de chat. - ENABLE_CHECKPOINT_SELECTION : valeur de chaîne qui peut être
true
,false
oudefault
. Lorsque ce paramètre est défini sur "true", Vertex AI sélectionne et renvoie le point de contrôle avec les meilleures performances d'évaluation de modèle par rapport à tous les points de contrôle créés lors de la tâche de réglage. Si défini sur "false", le point de contrôle final créé lors de la tâche de réglage est renvoyé. Chaque point de contrôle fait référence à un instantané du modèle lors d'une tâche de réglage. - TENSORBOARD_RESOURCE_ID : (facultatif) ID d'une instance Vertex AI TensorBoard. L'instance Vertex AI TensorBoard est utilisée pour créer un test une fois le job de réglage terminé. L'instance Vertex AI TensorBoard doit se trouver dans la même région que le pipeline de réglage.
- ENCRYPTION_KEY_NAME : (facultatif) nom complet d'une clé de chiffrement gérée par le client (CMEK) que vous souhaitez utiliser pour le chiffrement des données. Une clé CMEK n'est disponible que dans
us-central1
. Si vous utilisezus-central1
et ne spécifiez pas de CMEK, une clé appartenant à Google et gérée par Google est utilisée. Une clé appartenant à Google et gérée par Google est utilisée par défaut dans toutes les autres régions disponibles. Pour en savoir plus, consultez la page Présentation du chiffrement CMEK. - STEPS : Nombre d'étapes à exécuter pour le réglage du modèle. La valeur par défaut est 300. La taille de lot varie en fonction de l'emplacement de réglage et de la taille du modèle. Pour les modèles à 8 000, tels que
text-bison@002
,chat-bison@002
,code-bison@002
etcodechat-bison@002
:us-central1
a une taille de lot de 8.europe-west4
a une taille de lot de 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
etcodechat-bison-32k
:us-central1
a une taille de lot de 8.europe-west4
a une taille de lot de 8.
Par exemple, si vous entraînez le modèle
text-bison@002
dans la régioneurope-west4
, vous allez disposer de 240 exemples dans un ensemble de données d'entraînement, et si vous définissez le paramètresteps
sur 20, alors le nombre d'exemples d'entraînement va correspondre au produit du nombre d'étapes par la taille de lot, soit 20 x 24 = 480 étapes d'entraînement. Dans ce cas, le processus d'entraînement comporte deux époques, car il parcourt les exemples deux fois. Dans la régionus-central1
, si un ensemble de données d'entraînement contient 240 exemples et si vous définissez le paramètresteps
sur 15, alors le nombre d'exemples d'entraînement va correspondre au produit du nombre d'étapes par la taille de lot, soit 15 x8 = 120 étapes d'entraînement. Dans ce cas, le processus d'entraînement ne va comporter que 0,5 époque, car le nombre d'étapes d'entraînement est inférieur de moitié au nombre d'exemples. - LEARNING_RATE_MULTIPLIER : Taille de pas à chaque itération. La valeur par défaut est de 1.
Méthode HTTP et URL :
POST https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
Corps JSON de la requête :
{ "displayName": "PIPELINEJOB_DISPLAYNAME", "runtimeConfig": { "gcsOutputDirectory": "gs://OUTPUT_DIR", "parameterValues": { "project": "PROJECT_ID", "model_display_name": "MODEL_DISPLAYNAME", "dataset_uri": "gs://DATASET_URI", "evaluation_data_uri": "EVAL_DATASET_URI", "evaluation_interval": "EVAL_INTERVAL", "enable_early_stopping": "ENABLE_EARLY_STOPPING", "enable_checkpoint_selection": "ENABLE_CHECKPOINT_SELECTION", "tensorboard_resource_id": "TENSORBOARD_RESOURCE_ID", "location": "MODEL_UPLOAD_REGION", "accelerator_type": "ACCELERATOR_TYPE", "large_model_reference": "code-bison@002", "train_steps": STEPS, "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER } } "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v3.0.0" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à la suivante. Notez que pipelineSpec
a été tronqué pour économiser de l'espace.
Console
Pour régler un modèle de génération de code ou de chat de code avec le réglage supervisé à l'aide de la console Google Cloud, procédez comme suit :
- Dans la section "Vertex AI" de la console Google Cloud, accédez à la page Vertex AI Studio.
- Cliquez sur l'onglet Régler et distiller.
- Cliquez sur Créer un modèle réglé.
- Cliquez sur Réglage supervisé.
- Configurez les détails du modèle :
- Nom du modèle réglé : saisissez un nom pour votre modèle réglé.
- Modèle de base : sélectionnez le modèle que vous souhaitez régler.
- Région : sélectionnez la région où le job de réglage de pipeline s'exécute et où le modèle réglé est déployé.
- Répertoire de travail : saisissez l'emplacement Cloud Storage où sont stockés les artefacts lorsque votre modèle est réglé.
- Développez la section Options avancées pour configurer les paramètres avancés.
- Étapes d'entraînement : saisissez le nombre d'étapes à exécuter pour le réglage du modèle. La valeur par défaut est 300. La taille de lot varie en fonction de l'emplacement de réglage et de la taille du modèle. Pour les modèles à 8 000, tels que
text-bison@002
,chat-bison@002
,code-bison@002
etcodechat-bison@002
:us-central1
a une taille de lot de 8.europe-west4
a une taille de lot de 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
etcodechat-bison-32k
:us-central1
a une taille de lot de 8.europe-west4
a une taille de lot de 8.
Par exemple, si vous entraînez le modèle
text-bison@002
dans la régioneurope-west4
, vous allez disposer de 240 exemples dans un ensemble de données d'entraînement, et si vous définissez le paramètresteps
sur 20, alors le nombre d'exemples d'entraînement va correspondre au produit du nombre d'étapes par la taille de lot, soit 20 x 24 = 480 étapes d'entraînement. Dans ce cas, le processus d'entraînement comporte deux époques, car il parcourt les exemples deux fois. Dans la régionus-central1
, si un ensemble de données d'entraînement contient 240 exemples et si vous définissez le paramètresteps
sur 15, alors le nombre d'exemples d'entraînement va correspondre au produit du nombre d'étapes par la taille de lot, soit 15 x8 = 120 étapes d'entraînement. Dans ce cas, le processus d'entraînement ne va comporter que 0,5 époque, car le nombre d'étapes d'entraînement est inférieur de moitié au nombre d'exemples. - Multiplicateur du taux d'apprentissage : saisissez la taille de pas à chaque itération. La valeur par défaut est de 1.
- Type d'accélérateur : (facultatif) saisissez le type d'accélérateur à utiliser pour le réglage du modèle. Les options valides sont les suivantes :
GPU
: utilise 8 GPU A100 de 80 Go pour le réglage. Assurez-vous de disposer d'un quota suffisant. Si vous choisissezGPU
, VPC‑SC est compatible. CMEK est compatible si l'emplacement de réglage et d'importation du modèle estus-centra1
. Pour en savoir plus, consultez la section Paramètres de région des réglages supervisés. Si vous choisissezGPU
, les calculs de réglage du modèle s'effectuent dans la régionus-central1
.TPU
: utilise 64 cœurs du pod TPU v3 pour le réglage. Assurez-vous de disposer d'un quota suffisant. Les clés CMEK ne sont pas acceptées, mais VPC‑SC l'est. Si vous choisissezTPU
, les calculs de réglage de votre modèle s'effectuent dans la régioneurope-west4
.
- Ajouter une instance TensorBoard : (facultatif) ID d'une instance Vertex AI TensorBoard. L'instance Vertex AI TensorBoard est utilisée pour créer un test une fois le job de réglage terminé. L'instance Vertex AI TensorBoard doit se trouver dans la même région que le pipeline de réglage.
- Chiffrement (facultatif) : choisissez d'utiliser une clé appartenant à Google et gérée par Google, ou une clé de chiffrement gérée par le client (CMEK). Les clés CMEK ne sont disponibles que pour le chiffrement dans la région
us-central1
. Dans toutes les autres régions disponibles, une clé appartenant à Google et gérée par Google est utilisée. Pour en savoir plus, consultez la page Présentation du chiffrement CMEK. - Compte de service (facultatif) Choisissez un compte de service géré par l'utilisateur. Un compte de service détermine les ressources Google Cloud auxquelles votre code de service peut accéder. Si vous ne choisissez pas de compte de service, un agent de service doté des autorisations appropriées pour la plupart des modèles est utilisé.
- Étapes d'entraînement : saisissez le nombre d'étapes à exécuter pour le réglage du modèle. La valeur par défaut est 300. La taille de lot varie en fonction de l'emplacement de réglage et de la taille du modèle. Pour les modèles à 8 000, tels que
- Cliquez sur Continuer.
- Si vous souhaitez importer votre fichier d'ensemble de données, sélectionnez
Importer un fichier JSONL
- Dans le champ Sélectionner un fichier JSONL, cliquez sur Parcourir et sélectionnez le fichier de votre ensemble de données.
- Dans le champ Emplacement de l'ensemble de données, cliquez sur Parcourir et sélectionnez le bucket Cloud Storage dans lequel vous souhaitez stocker le fichier de votre ensemble de données.
Utiliser un fichier JSONL existant
Dans Chemin d'accès du fichier Cloud Storage, cliquez sur Parcourir et sélectionnez le bucket Cloud Storage où se trouve le fichier de votre ensemble de données.
Importer le fichier JSONL dans Cloud Storage. Si le fichier de votre ensemble de données se trouve déjà dans un bucket Cloud Storage, sélectionnez Fichier JSONL existant dans Cloud Storage.
- (Facultatif) Pour évaluer votre modèle réglé, sélectionnez Activer l'évaluation du modèle et configurez votre évaluation du modèle :
- Ensemble de données d'évaluation : (facultatif) URI du fichier JSONL contenant l'ensemble de données d'évaluation pour la prédiction par lot et l'évaluation. L'évaluation n'est pas compatible avec
codechat-bison
. Pour plus d'informations, consultez la page Format d'ensemble de données pour le réglage d'un modèle de code. L'ensemble de données d'évaluation nécessite entre 10 et 250 exemples. - Intervalle d'évaluation : (facultatif, valeur par défaut
20
) nombre d'étapes de réglage entre chaque évaluation. Un intervalle d'évaluation n'est pas disponible pour les modèles de chat. Étant donné que l'évaluation s'exécute sur l'ensemble de données d'évaluation complet, un intervalle d'évaluation plus petit entraîne un temps de réglage plus long. Par exemple, sisteps
est égal à 200 et la valeur deEVAL_INTERVAL
égale à 100, vous n'obtenez que deux points de données pour les métriques d'évaluation. Ce paramètre nécessite queevaluation_data_uri
soit défini. - Activer l'arrêt prématuré : (facultatif, valeur par défaut
true
) Une valeurboolean
qui, si elle est définie surtrue
, arrête le réglage avant d'effectuer toutes les étapes de réglage en cas de performances du modèle comme mesuré par la précision des jetons prévus, ne s'améliore pas suffisamment entre les exécutions d'évaluations. Si elle est définie surfalse
, le réglage se poursuit jusqu'à ce que toutes les étapes de réglage soient terminées. Ce paramètre nécessite queevaluation_data_uri
soit défini. L'arrêt prématuré n'est pas disponible pour les modèles de chat. - Activer la sélection de points de contrôle : Lorsque cette option est activée, Vertex AI sélectionne et renvoie le point de contrôle avec les meilleures performances d'évaluation de modèle de tous les points de contrôle créés lors de la tâche de réglage. Lorsqu'elle est désactivée, le point de contrôle final créé lors de la tâche de réglage est renvoyé. Chaque point de contrôle fait référence à un instantané du modèle lors d'une tâche de réglage.
- ID TensorBoard : (facultatif) ID d'une instance Vertex AI TensorBoard. L'instance Vertex AI TensorBoard est utilisée pour créer un test une fois le job de réglage terminé. L'instance Vertex AI TensorBoard doit se trouver dans la même région que le pipeline de réglage.
- Ensemble de données d'évaluation : (facultatif) URI du fichier JSONL contenant l'ensemble de données d'évaluation pour la prédiction par lot et l'évaluation. L'évaluation n'est pas compatible avec
- Cliquez sur Commencer le réglage.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Exemple de commande curl pour régler un modèle de génération de code
PROJECT_ID=myproject
DATASET_URI=gs://my-gcs-bucket-uri/dataset
EVAL_DATASET_URI=gs://cloud-samples-data/vertex-ai/model-evaluation/eval_sample.jsonl
OUTPUT_DIR=gs://my-gcs-bucket-uri/output
ACCELERATOR_TYPE=GPU
LOCATION=us-central1
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs?pipelineJobId=tune-large-model-$(date +%Y%m%d%H%M%S)" -d \
$'{
"displayName": "'${PIPELINE_NAME}'",
"runtimeConfig": {
"gcsOutputDirectory": "'${OUTPUT_DIR}'",
"parameterValues": {
"project": "'${PROJECT_ID}'",
"model_display_name": "The display name for your model in the UI",
"dataset_uri": "'${DATASET_URI}'",
"evaluation_data_uri:": "'${EVAL_DATASET_URI}'",
"location": "'${LOCATION}'",
"accelerator_type": "'${ACCELERATOR_TYPE}'",
"large_model_reference": "code-bison@002",
"learning_rate_multiplier": 1,
"train_steps": 300
}
},
"templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v3.0.0"
}'
Créer un job de réglage d'un modèle de chat de code
L'exemple suivant montre comment créer un job de réglage de modèle de chat de code à l'aide de la console Google Cloud ou des commandes de l'API REST.
REST
Pour créer un job de réglage d'un modèle de chat de code, envoyez une requête POST à l'aide de la méthode pipelineJobs.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : l'ID de votre projet.
- TUNINGPIPELINE_DISPLAYNAME : nom à afficher pour la tâche pipelineJob.
- OUTPUT_DIR : URI du bucket vers lequel générer les artefacts de pipeline.
- PIPELINE_JOB_REGION : région dans laquelle le job de réglage de pipeline est exécuté. Il s'agit également de la région par défaut dans laquelle le modèle réglé est importé. Si vous souhaitez importer votre modèle dans une autre région, utilisez le paramètre
location
pour spécifier la région d'importation du modèle réglé. Pour en savoir plus, consultez la section Région du job de pipeline. - MODEL_UPLOAD_REGION : (facultatif) région dans laquelle le modèle réglé est importé. Si vous ne spécifiez pas de région d'importation du modèle, le modèle réglé est importé dans la même région que la tâche de pipeline. Pour en savoir plus, consultez la section Région d'importation du modèle.
- ACCELERATOR_TYPE : (facultatif, valeur par défaut
GPU
) type d'accélérateur à utiliser pour le réglage du modèle. Les options valides sont les suivantes :GPU
: utilise 8 GPU A100 de 80 Go pour le réglage. Assurez-vous de disposer d'un quota suffisant. Si vous choisissezGPU
, VPC‑SC est compatible. CMEK est compatible si l'emplacement de réglage et d'importation du modèle estus-centra1
. Pour en savoir plus, consultez la section Paramètres de région des réglages supervisés. Si vous choisissezGPU
, les calculs de réglage de votre modèle s'effectuent dans la régionus-central1
.TPU
: utilise 64 cœurs du pod TPU v3 pour le réglage. Assurez-vous de disposer d'un quota suffisant. Les clés CMEK ne sont pas acceptées, mais VPC‑SC l'est. Si vous choisissezTPU
, les calculs de réglage de votre modèle s'effectuent dans la régioneurope-west4
.
- MODEL_DISPLAYNAME : nom à afficher pour le modèle importé (créé) par le pipelineJob.
- DATASET_URI : URI du fichier de votre ensemble de données.
- TENSORBOARD_RESOURCE_ID : (facultatif) ID d'une instance Vertex AI TensorBoard. L'instance Vertex AI TensorBoard est utilisée pour créer un test une fois le job de réglage terminé. L'instance Vertex AI TensorBoard doit se trouver dans la même région que le pipeline de réglage.
- ENCRYPTION_KEY_NAME : (facultatif) nom complet d'une clé de chiffrement gérée par le client (CMEK) que vous souhaitez utiliser pour le chiffrement des données. Une clé CMEK n'est disponible que dans
us-central1
. Si vous utilisezus-central1
et ne spécifiez pas de CMEK, une clé appartenant à Google et gérée par Google est utilisée. Une clé appartenant à Google et gérée par Google est utilisée par défaut dans toutes les autres régions disponibles. Pour en savoir plus, consultez la page Présentation du chiffrement CMEK. - DEFAULT_CONTEXT : contexte qui s'applique à tous les exemples de réglages dans l'ensemble de données de réglage. La définition du champ
context
dans un exemple remplace le contexte par défaut. - STEPS : Nombre d'étapes à exécuter pour le réglage du modèle. La valeur par défaut est 300. La taille de lot varie en fonction de l'emplacement de réglage et de la taille du modèle. Pour les modèles à 8 000, tels que
text-bison@002
,chat-bison@002
,code-bison@002
etcodechat-bison@002
:us-central1
a une taille de lot de 8.europe-west4
a une taille de lot de 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
etcodechat-bison-32k
:us-central1
a une taille de lot de 8.europe-west4
a une taille de lot de 8.
Par exemple, si vous entraînez le modèle
text-bison@002
dans la régioneurope-west4
, vous allez disposer de 240 exemples dans un ensemble de données d'entraînement, et si vous définissez le paramètresteps
sur 20, alors le nombre d'exemples d'entraînement va correspondre au produit du nombre d'étapes par la taille de lot, soit 20 x 24 = 480 étapes d'entraînement. Dans ce cas, le processus d'entraînement comporte deux époques, car il parcourt les exemples deux fois. Dans la régionus-central1
, si un ensemble de données d'entraînement contient 240 exemples et si vous définissez le paramètresteps
sur 15, alors le nombre d'exemples d'entraînement va correspondre au produit du nombre d'étapes par la taille de lot, soit 15 x8 = 120 étapes d'entraînement. Dans ce cas, le processus d'entraînement ne va comporter que 0,5 époque, car le nombre d'étapes d'entraînement est inférieur de moitié au nombre d'exemples. - LEARNING_RATE_MULTIPLIER : Taille de pas à chaque itération. La valeur par défaut est de 1.
Méthode HTTP et URL :
POST https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
Corps JSON de la requête :
{ "displayName": "PIPELINEJOB_DISPLAYNAME", "runtimeConfig": { "gcsOutputDirectory": "gs://OUTPUT_DIR", "parameterValues": { "project": "PROJECT_ID", "model_display_name": "MODEL_DISPLAYNAME", "dataset_uri": "gs://DATASET_URI", "tensorboard_resource_id": "TENSORBOARD_RESOURCE_ID", "location": "MODEL_UPLOAD_REGION", "accelerator_type": "ACCELERATOR_TYPE", "large_model_reference": "codechat-bison@002", "default_context": "DEFAULT_CONTEXT", "train_steps": STEPS, "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER } }, "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-chat-model/v3.0.0" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON semblable à la suivante.
Notez que pipelineSpec
a été tronqué pour économiser de l'espace.
Console
Pour régler un modèle de génération de code ou de chat de code avec le réglage supervisé à l'aide de la console Google Cloud, procédez comme suit :
- Dans la section "Vertex AI" de la console Google Cloud, accédez à la page Vertex AI Studio.
- Cliquez sur l'onglet Régler et distiller.
- Cliquez sur Créer un modèle réglé.
- Cliquez sur Réglage supervisé.
- Configurez les détails du modèle :
- Nom du modèle réglé : saisissez un nom pour votre modèle réglé.
- Modèle de base : sélectionnez le modèle que vous souhaitez régler.
- Région : sélectionnez la région où le job de réglage de pipeline s'exécute et où le modèle réglé est déployé.
- Répertoire de travail : saisissez l'emplacement Cloud Storage où sont stockés les artefacts lorsque votre modèle est réglé.
- Développez la section Options avancées pour configurer les paramètres avancés.
- Étapes d'entraînement : saisissez le nombre d'étapes à exécuter pour le réglage du modèle. La valeur par défaut est 300. La taille de lot varie en fonction de l'emplacement de réglage et de la taille du modèle. Pour les modèles à 8 000, tels que
text-bison@002
,chat-bison@002
,code-bison@002
etcodechat-bison@002
:us-central1
a une taille de lot de 8.europe-west4
a une taille de lot de 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
etcodechat-bison-32k
:us-central1
a une taille de lot de 8.europe-west4
a une taille de lot de 8.
Par exemple, si vous entraînez le modèle
text-bison@002
dans la régioneurope-west4
, vous allez disposer de 240 exemples dans un ensemble de données d'entraînement, et si vous définissez le paramètresteps
sur 20, alors le nombre d'exemples d'entraînement va correspondre au produit du nombre d'étapes par la taille de lot, soit 20 x 24 = 480 étapes d'entraînement. Dans ce cas, le processus d'entraînement comporte deux époques, car il parcourt les exemples deux fois. Dans la régionus-central1
, si un ensemble de données d'entraînement contient 240 exemples et si vous définissez le paramètresteps
sur 15, alors le nombre d'exemples d'entraînement va correspondre au produit du nombre d'étapes par la taille de lot, soit 15 x8 = 120 étapes d'entraînement. Dans ce cas, le processus d'entraînement ne va comporter que 0,5 époque, car le nombre d'étapes d'entraînement est inférieur de moitié au nombre d'exemples. - Multiplicateur du taux d'apprentissage : saisissez la taille de pas à chaque itération. La valeur par défaut est de 1.
- Type d'accélérateur : (facultatif) saisissez le type d'accélérateur à utiliser pour le réglage du modèle. Les options valides sont les suivantes :
GPU
: utilise 8 GPU A100 de 80 Go pour le réglage. Assurez-vous de disposer d'un quota suffisant. Si vous choisissezGPU
, VPC‑SC est compatible. CMEK est compatible si l'emplacement de réglage et d'importation du modèle estus-centra1
. Pour en savoir plus, consultez la section Paramètres de région des réglages supervisés. Si vous choisissezGPU
, les calculs de réglage du modèle s'effectuent dans la régionus-central1
.TPU
: utilise 64 cœurs du pod TPU v3 pour le réglage. Assurez-vous de disposer d'un quota suffisant. Les clés CMEK ne sont pas acceptées, mais VPC‑SC l'est. Si vous choisissezTPU
, les calculs de réglage de votre modèle s'effectuent dans la régioneurope-west4
.
- Ajouter une instance TensorBoard : (facultatif) ID d'une instance Vertex AI TensorBoard. L'instance Vertex AI TensorBoard est utilisée pour créer un test une fois le job de réglage terminé. L'instance Vertex AI TensorBoard doit se trouver dans la même région que le pipeline de réglage.
- Chiffrement (facultatif) : choisissez d'utiliser une clé appartenant à Google et gérée par Google, ou une clé de chiffrement gérée par le client (CMEK). Les clés CMEK ne sont disponibles que pour le chiffrement dans la région
us-central1
. Dans toutes les autres régions disponibles, une clé appartenant à Google et gérée par Google est utilisée. Pour en savoir plus, consultez la page Présentation du chiffrement CMEK. - Compte de service (facultatif) Choisissez un compte de service géré par l'utilisateur. Un compte de service détermine les ressources Google Cloud auxquelles votre code de service peut accéder. Si vous ne choisissez pas de compte de service, un agent de service doté des autorisations appropriées pour la plupart des modèles est utilisé.
- Étapes d'entraînement : saisissez le nombre d'étapes à exécuter pour le réglage du modèle. La valeur par défaut est 300. La taille de lot varie en fonction de l'emplacement de réglage et de la taille du modèle. Pour les modèles à 8 000, tels que
- Cliquez sur Continuer.
- Si vous souhaitez importer votre fichier d'ensemble de données, sélectionnez
Importer un fichier JSONL
- Dans le champ Sélectionner un fichier JSONL, cliquez sur Parcourir et sélectionnez le fichier de votre ensemble de données.
- Dans le champ Emplacement de l'ensemble de données, cliquez sur Parcourir et sélectionnez le bucket Cloud Storage dans lequel vous souhaitez stocker le fichier de votre ensemble de données.
Utiliser un fichier JSONL existant
Dans Chemin d'accès du fichier Cloud Storage, cliquez sur Parcourir et sélectionnez le bucket Cloud Storage où se trouve le fichier de votre ensemble de données.
Importer le fichier JSONL dans Cloud Storage. Si le fichier de votre ensemble de données se trouve déjà dans un bucket Cloud Storage, sélectionnez Fichier JSONL existant dans Cloud Storage.
- (Facultatif) Pour évaluer votre modèle réglé, sélectionnez Activer l'évaluation du modèle et configurez votre évaluation du modèle :
- Ensemble de données d'évaluation : (facultatif) URI du fichier JSONL contenant l'ensemble de données d'évaluation pour la prédiction par lot et l'évaluation. L'évaluation n'est pas compatible avec
codechat-bison
. Pour plus d'informations, consultez la page Format d'ensemble de données pour le réglage d'un modèle de code. L'ensemble de données d'évaluation nécessite entre 10 et 250 exemples. - Intervalle d'évaluation : (facultatif, valeur par défaut
20
) nombre d'étapes de réglage entre chaque évaluation. Un intervalle d'évaluation n'est pas disponible pour les modèles de chat. Étant donné que l'évaluation s'exécute sur l'ensemble de données d'évaluation complet, un intervalle d'évaluation plus petit entraîne un temps de réglage plus long. Par exemple, sisteps
est égal à 200 et la valeur deEVAL_INTERVAL
égale à 100, vous n'obtenez que deux points de données pour les métriques d'évaluation. Ce paramètre nécessite queevaluation_data_uri
soit défini. - Activer l'arrêt prématuré : (facultatif, valeur par défaut
true
) Une valeurboolean
qui, si elle est définie surtrue
, arrête le réglage avant d'effectuer toutes les étapes de réglage en cas de performances du modèle comme mesuré par la précision des jetons prévus, ne s'améliore pas suffisamment entre les exécutions d'évaluations. Si elle est définie surfalse
, le réglage se poursuit jusqu'à ce que toutes les étapes de réglage soient terminées. Ce paramètre nécessite queevaluation_data_uri
soit défini. L'arrêt prématuré n'est pas disponible pour les modèles de chat. - Activer la sélection de points de contrôle : Lorsque cette option est activée, Vertex AI sélectionne et renvoie le point de contrôle avec les meilleures performances d'évaluation de modèle de tous les points de contrôle créés lors de la tâche de réglage. Lorsqu'elle est désactivée, le point de contrôle final créé lors de la tâche de réglage est renvoyé. Chaque point de contrôle fait référence à un instantané du modèle lors d'une tâche de réglage.
- ID TensorBoard : (facultatif) ID d'une instance Vertex AI TensorBoard. L'instance Vertex AI TensorBoard est utilisée pour créer un test une fois le job de réglage terminé. L'instance Vertex AI TensorBoard doit se trouver dans la même région que le pipeline de réglage.
- Ensemble de données d'évaluation : (facultatif) URI du fichier JSONL contenant l'ensemble de données d'évaluation pour la prédiction par lot et l'évaluation. L'évaluation n'est pas compatible avec
- Cliquez sur Commencer le réglage.
Exemple de commande curl pour régler un modèle de chat de code
PROJECT_ID=myproject
DATASET_URI=gs://my-gcs-bucket-uri/dataset
OUTPUT_DIR=gs://my-gcs-bucket-uri/output
ACCELERATOR_TYPE=GPU
LOCATION=us-central1
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs?pipelineJobId=tune-large-chat-model-$(date +%Y%m%d%H%M%S)" -d \
$'{
"displayName": "'${PIPELINE_NAME}'",
"runtimeConfig": {
"gcsOutputDirectory": "'${OUTPUT_DIR}'",
"parameterValues": {
"project": "'${PROJECT_ID}'",
"model_display_name": "your-model-display-name",
"dataset_uri": "'${DATASET_URI}'",
"location": "'${LOCATION}'",
"large_model_reference": "codechat-bison@002",
"train_steps": 300,
"learning_rate_multiplier": 1,
"encryption_spec_key_name": "projects/myproject/locations/us-central1/keyRings/sample-key/cryptoKeys/sample-key"
}
},
"encryptionSpec": {
"kmsKeyName": "projects/myproject/locations/us-central1/keyRings/sample-key/cryptoKeys/sample-key"
"templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-chat-model/v3.0.0"
}'
Configurations recommandées pour le réglage d'un modèle de code
Le tableau suivant présente les configurations recommandées pour le réglage d'un modèle de code par tâche :
Tâche | Nombre d'exemples dans l'ensemble de données | Étapes d'entraînement |
---|---|---|
Génération de code | 500+ | 200-1000 |
Chat de code | 500+ | 200-1000 |
Pour les étapes d'entraînement, vous pouvez essayer plusieurs valeurs pour obtenir les meilleures performances sur un ensemble de données particulier (par exemple, 100, 200, 500).
Afficher la liste des modèles réglés
Vous pouvez utiliser la console Google Cloud ou le SDK Vertex AI pour Python pour afficher la liste de vos modèles de code réglés dans votre projet actuel.
Afficher la liste des modèles de code réglés (console)
Pour afficher vos modèles de chat de code et de génération de code réglés dans la console Google Cloud, accédez à la page Vertex AI Model Registry.
Accéder à Vertex AI Model Registry
Afficher la liste des modèles de génération de code réglés (SDK)
L'exemple de code suivant utilise le SDK Vertex AI pour Python pour répertorier les modèles de génération de code réglés dans votre projet actuel :
import vertexai from vertexai.preview.language_models import CodeGenerationModel model = CodeGenerationModel.from_pretrained("code-bison@002").list_tuned_model_names()
Afficher la liste des modèles de chat de code (SDK) réglés
L'exemple de code suivant utilise le SDK Vertex AI pour Python pour répertorier les modèles de chat de code ajustés dans votre projet actuel :
import vertexai from vertexai.preview.language_models import CodeChatModel model = CodeChatModel.from_pretrained("codechat-bison@002").list_tuned_model_names()
Charger un modèle réglé
Vous pouvez utiliser le SDK Vertex AI pour Python pour charger un modèle de code réglé.
Charger un modèle de génération de code réglé
L'exemple de code suivant utilise le SDK Vertex AI pour Python pour charger un modèle de génération de code réglé : Dans l'exemple de code, remplacez TUNED_MODEL_NAME
par le nom de ressource qualifié de votre modèle réglé. Ce nom est au format projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
.
Vous pouvez trouver l'ID de votre modèle réglé dans Vertex AI Model Registry.
import vertexai from vertexai.preview.language_models import CodeGenerationModel model = CodeGenerationModel.get_tuned_model(TUNED_MODEL_NAME)
Charger un modèle de chat de code réglé
L'exemple de code suivant utilise le SDK Vertex AI pour Python pour charger un modèle de chat de code ajusté :
import vertexai from vertexai.preview.language_models import CodeChatModel model = CodeChatModel.get_tuned_model(TUNED_MODEL_NAME)
Métriques de réglage et d'évaluation
Vous pouvez configurer une tâche de réglage de modèle pour collecter et signaler les métriques de réglage de modèle et d'évaluation du modèle, qui peuvent ensuite être visualisées à l'aide de Vertex AI TensorBoard.
Métriques de réglage du modèle
Vous pouvez configurer une tâche de réglage de modèle afin de collecter les métriques de réglage suivantes pourchat-bison
, code-bison
, codechat-bison
et text-bison
:/train_total_loss
: perte de l'ensemble de données de réglage à une étape d'entraînement./train_fraction_of_correct_next_step_preds
: justesse du jeton à un pas d'entraînement. Une prédiction unique consiste en une séquence de jetons. Cette métrique mesure la précision des jetons prévus par rapport à la vérité terrain dans l'ensemble de données de réglage./train_num_predictions:
Nombre de jetons prévus à une étape d'évaluation.
Métriques d'évaluation du modèle
Vous pouvez configurer une tâche de réglage de modèle pour collecter les métriques d'évaluation suivantes pour code-bison
et text-bison
:
/eval_total_loss
: perte de l'ensemble de données d'évaluation à une étape d'évaluation./eval_fraction_of_correct_next_step_preds
: justesse du jeton à une étape d'évaluation. Une prédiction unique consiste en une séquence de jetons. Cette métrique mesure la précision des jetons prévus par rapport à la vérité terrain dans l'ensemble de données d'évaluation./eval_num_predictions
: nombre de jetons prédits à une étape d'évaluation.
Les visualisations des métriques sont disponibles une fois le job de réglage du modèle terminé. Si vous ne spécifiez qu'un ID d'instance Vertex AI TensorBoard et non un ensemble de données d'évaluation lorsque vous créez la tâche de réglage, seules les visualisations des métriques de réglage sont disponibles.
Quota
Les tâches de réglage dans us-central1
utilisent huit GPU A100 de 80 Go.
Les tâches de réglage dans europe-west4
utilisent 64 cœurs de la ressource d'entraînement de modèle personnalisé TPU v3 pod
.
Si vous ne disposez pas d'un quota suffisant ou souhaitez exécuter plusieurs jobs de réglage simultanées dans votre projet Google Cloud, vous devez demander un quota supplémentaire :
Pour
us-central1
, envoyez une requête pourRestricted image training Nvidia A100 80 GB GPUs per region
dans la régionus-central1
par multiples de huit.Pour
europe-west4
, envoyez une requête pourRestricted image training TPU V3 pod cores per region
dans la régioneurope-west4
par multiples de 64.
Étapes suivantes
- Pour en savoir plus sur les modèles, les fonctionnalités avancées et la possibilité de transcrire des fichiers jusqu'à huit heures, consultez la page Speech-to-Text.