Création d’une tâche d’évaluation des modèles basée sur l’humain - Amazon Bedrock

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.

Création d’une tâche d’évaluation des modèles basée sur l’humain

Pour créer une tâche d’évaluation des modèles faisant appel à des employés humains.

Console

Pour créer une tâche d’évaluation des modèles faisant appel à des employés humains
  1. Ouvrez la console Amazon Bedrock.

  2. Dans le volet de navigation, sous Inférence et évaluation, sélectionnez Évaluations.

  3. Dans le volet Évaluation des modèles, sous Humain, choisissez Créer et sélectionnez Humain : apporter votre équipe de travail.

  4. Sur la page Spécifier les détails de la tâche, fournissez les informations suivantes.

    1. Nom de l’évaluation : donnez un nom descriptif à la tâche d’évaluation de modèle. Ce nom s’affiche dans votre liste de tâches d’évaluation de modèle. Il doit être unique dans votre compte et au sein d’une Région AWS.

    2. Description (facultatif) : fournissez éventuellement une description.

    3. Choisissez Suivant.

  5. Sur la page Configurer l’évaluation, sous Source d’inférence, sélectionnez la source pour l’évaluation de votre modèle. Vous pouvez soit évaluer les performances des modèles Amazon Bedrock, soit celles d’autres modèles en fournissant vos propres données de réponse d’inférence dans le jeu de données d’invite. Vous pouvez sélectionner jusqu’à deux sources d’inférence. Pour les tâches comportant deux sources, il n’est pas nécessaire de choisir le même type pour les deux sources ; vous pouvez sélectionner un modèle Amazon Bedrock et fournir vos propres données de réponse d’inférence pour la seconde source. Pour évaluer des modèles Amazon Bedrock, procédez comme suit :

    1. Sous Sélectionner la source, sélectionnez Modèles Bedrock.

    2. Choisissez Sélectionner modèle pour choisir le modèle à évaluer.

    3. Pour sélectionner un deuxième modèle, choisissez Ajouter un modèle et répétez les étapes précédentes.

  6. Pour apporter vos propres données de réponse d’inférence, procédez comme suit :

    1. Sous Source d’inférence, sélectionnez Apporter vos propres réponses d’inférence.

    2. Dans Nom de la source, entrez le nom du modèle que vous avez utilisé pour créer les données de réponse. Le nom que vous saisissez doit correspondre au paramètre modelIdentifier de votre jeu de données d’invite.

    3. Pour ajouter une deuxième source, choisissez Ajouter un modèle et répétez les étapes précédentes.

  7. Pour Type de tâche, choisissez le type de tâche que le modèle doit tenter d’effectuer dans la tâche d’évaluation de modèle. Toutes les instructions relatives au modèle doivent être incluses dans les requêtes proprement dites. Le type de tâche n’influe pas sur les réponses du modèle.

  8. Dans le volet Jeux de données, vous devez fournir les informations suivantes.

    1. Sous Choisir un jeu de données d’invite, spécifiez l’URI S3 de votre fichier de jeu de données d’invite ou choisissez Parcourir S3 pour voir les compartiments S3 disponibles. Un jeu de données de requêtes personnalisé peut comporter un maximum de 1 000 requêtes.

    2. Sous Destination des résultats de l’évaluation, spécifiez l’URI S3 du répertoire où doivent être enregistrés les résultats de votre tâche d’évaluation de modèle, ou choisissez Parcourir S3 pour voir les compartiments S3 disponibles.

  9. (Facultatif) Sous clé KMS - Facultatif, indiquez l’ARN d’une clé gérée par le client que vous souhaitez utiliser pour chiffrer votre tâche d’évaluation de modèle.

  10. Dans le volet Rôle IAM d’Amazon Bedrock - Autorisations, procédez comme suit. Pour plus d’informations sur les autorisations nécessaires aux évaluations de modèle, consultez Exigences de fonction du service pour les tâches d’évaluation de modèle.

    1. Pour utiliser un rôle de service Amazon Bedrock existant, choisissez Utiliser un rôle existant. Sinon, utilisez Créer un nouveau rôle pour spécifier les détails de votre nouveau rôle de service IAM.

    2. Dans  Nom du rôle de service, choisissez le nom du rôle de service IAM.

    3. Lorsque vous êtes prêt, choisissez Créer un rôle pour créer le nouveau rôle de service IAM.

  11. Choisissez Suivant.

  12. Sous Équipe de travail, utilisez le menu déroulant Sélectionner une équipe pour sélectionner une équipe existante, ou créez une nouvelle équipe en procédant comme suit :

    1. Sous Nom, entrez le nom de votre équipe.

    2. Sous Adresses e-mail, entrez les adresses e-mail des employés humains de votre équipe.

    3. Sous Nombre d’employés par invite, sélectionnez le nombre d’employés chargés d’évaluer chaque invite. Une fois que les réponses à chaque requête ont été examinées par le nombre de travailleurs sélectionné, la requête et ses réponses sont retirées de la circulation pour l’équipe de travail. Les résultats finaux incluent l’ensemble des évaluations réalisées par chaque travailleur.

      Important

      Les grands modèles de langage sont connus pour avoir parfois des hallucinations et produire du contenu toxique ou déplaisant. Au cours de cette évaluation, vos travailleurs peuvent être en contact avec du texte toxique ou déplaisant. Veillez à prendre des mesures appropriées pour former et notifier les évaluateurs avant de travailler sur l’évaluation. Ils ont la possibilité de refuser et de libérer des tâches ou de faire des pauses en cours d’évaluation pendant qu’ils accèdent à l’outil d’évaluation humaine.

  13. Sous Rôle IAM dans le flux de travail humain - Autorisations, sélectionnez un rôle existant ou sélectionnez Créer un nouveau rôle.

  14. Choisissez Suivant.

  15. Sous Instructions d’évaluation, fournissez les instructions pour l’exécution de la tâche. Vous pouvez afficher un aperçu de l’interface utilisateur d’évaluation que votre équipe de travail utilisera pour évaluer les réponses, notamment les métriques, les méthodes d’évaluation et vos instructions. Cet aperçu est basé sur la configuration que vous avez créée pour cette tâche.

  16. Choisissez Suivant.

  17. Passez en revue la configuration et choisissez Créer pour créer une tâche.

    Note

    Une fois la tâche démarrée, le statut passe à En cours. Lorsque la tâche se termine, le statut devient Terminé. Pendant qu’une tâche d’évaluation des modèles est toujours en cours, vous pouvez choisir d’arrêter la tâche avant que toutes les réponses des modèles n’aient été évaluées par votre équipe de travail. Pour ce faire, sélectionnez Arrêter l’évaluation sur la page d’accueil d’évaluation de modèle. Cela fera passer le statut de la tâche d’évaluation de modèle à Arrêt en cours. Une fois que le travail d’évaluation des modèles s’est arrêté avec succès, vous pouvez supprimer le travail d’évaluation des modèles.

API et AWS CLI

Lorsque vous créez une tâche d'évaluation de modèle basée sur l'humain en dehors de la console Amazon Bedrock, vous devez créer un ARN de définition de flux Amazon SageMaker AI.

L’ARN de définition de flux est l’endroit où le flux de travail d’une tâche d’évaluation de modèle est défini. La définition du flux est utilisée pour définir l’interface de travail et l’équipe de travail que vous souhaitez affecter à la tâche, ainsi que pour vous connecter à Amazon Bedrock.

Pour les tâches d'évaluation de modèles lancées à l'aide des opérations de l'API Amazon Bedrock, vous devez créer un ARN de définition de flux à l'aide du SDK AWS CLI ou d'un AWS SDK compatible. Pour en savoir plus sur le fonctionnement des définitions de flux et sur leur création par programmation, consultez la section Créer un flux de travail de révision humaine (API) dans le guide du développeur d'SageMaker IA.

Dans la CreateFlowDefinition, vous devez spécifier AWS/Bedrock/Evaluation comme entrée dans AwsManagedHumanLoopRequestSource. Le rôle de service Amazon Bedrock doit également disposer des autorisations pour accéder au compartiment de sortie de la définition de flux.

Voici un exemple de demande utilisant l’ AWS CLI. Dans la demande, il HumanTaskUiArn s'agit d'un ARN appartenant à l' SageMaker IA. Dans l’ARN, vous pouvez modifier uniquement la Région AWS.

aws sagemaker create-flow-definition --cli-input-json ' { "FlowDefinitionName": "human-evaluation-task01", "HumanLoopRequestSource": { "AwsManagedHumanLoopRequestSource": "AWS/Bedrock/Evaluation" }, "HumanLoopConfig": { "WorkteamArn": "arn:aws:sagemaker:Région AWS:111122223333:workteam/private-crowd/my-workteam", ## The Task UI ARN is provided by the service team, you can only modify the Région AWS. "HumanTaskUiArn":"arn:aws:sagemaker:Région AWS:394669845002:human-task-ui/Evaluation" "TaskTitle": "Human review tasks", "TaskDescription": "Provide a real good answer", "TaskCount": 1, "TaskAvailabilityLifetimeInSeconds": 864000, "TaskTimeLimitInSeconds": 3600, "TaskKeywords": [ "foo" ] }, "OutputConfig": { "S3OutputPath": "s3://amzn-s3-demo-destination-bucket" }, "RoleArn": "arn:aws:iam::111122223333:role/SageMakerCustomerRoleArn" }'

Après avoir créé votre ARN de définition de flux, utilisez les exemples suivants pour créer une tâche d'évaluation de modèle basée sur l'homme à l'aide du SDK AWS CLI ou d'un AWS SDK compatible.

AWS CLI

L’exemple de commande et le fichier JSON suivants vous montrent comment créer une tâche d’évaluation des modèles à l’aide d’employés humains dans laquelle vous fournissez vos propres données de réponse d’inférence. Pour découvrir comment spécifier un jeu de données d’invite pour une tâche d’évaluation des modèles impliquant des employés humains, consultez Création d’un jeu de données d’invite personnalisé dans une tâche d’évaluation des modèles qui utilise des travailleurs humains.

Exemple AWS CLI commande et fichier JSON pour créer une tâche d'évaluation en utilisant vos propres données de réponse d'inférence
aws bedrock create-evaluation-job --cli-input-json file://my_eval_job.json
{ "jobName": "model-eval-llama-vs-my-other-model", "roleArn": "arn:aws:iam::111122223333:role/service-role/Amazon-Bedrock-IAM-Role-20250218T223671", "evaluationConfig": { "human": { "customMetrics": [ { "description": "Measures the organization and structure of a generated text.", "name": "Coherence", "ratingMethod": "ThumbsUpDown" }, { "description": "Indicates the accuracy of a generated text.", "name": "Accuracy", "ratingMethod": "ComparisonChoice" } ], "datasetMetricConfigs": [ { "dataset": { "datasetLocation": { "s3Uri": "s3://amzn-s3-demo-bucket/input/model-eval/fitness-dataset-model-eval-byoir-2-models.jsonl" }, "name": "dataset1" }, "metricNames": [ "Coherence", "Accuracy" ], "taskType": "Generation" } ], "humanWorkflowConfig": { "flowDefinitionArn": "arn:aws:sagemaker:us-east-1:111122223333:flow-definition/bedrock-fitness-human-byoir", "instructions": "<h3>The following are the metrics and their descriptions for this evaluation</h3>\n<p><strong>Coherence</strong>: Measures the organization and structure of a generated text. - <em>Thumbs up/down</em>\n<strong>Accuracy</strong>: Indicates the accuracy of a generated text. - <em>Choice buttons</em></p>\n<h3>Instructions for how to use the evaluation tool</h3>\n<p>The evaluation creator should use this space to write detailed descriptions for every rating method so your evaluators know how to properly rate the responses with the buttons on their screen.</p>\n<h4>For example:</h4>\n<p>If using <strong>Likert scale - individual</strong>, define the 1 and 5 of the 5 point Likert scale for each metric so your evaluators know if 1 or 5 means favorable/acceptable/preferable.\nIf using <strong>Likert scale - comparison</strong>, describe what the evaluator is looking for to determine their preference between two responses.\nIf using <strong>Choice buttons</strong>, describe what is preferred according to your metric and its description.\nIf using <strong>Ordinal ranking</strong>, define what should receive a #1 ranking according to your metric and its description.\nIf using <strong>Thumbs up/down</strong>, define what makes an acceptable response according to your metric and its description.</p>\n<h3>Describing your ground truth responses if applicable to your dataset</h3>\n<p>Describe the purpose of your ground truth responses that will be shown on screen next to each model response. Note that the ground truth responses you provide are not rated/scored by the evaluators - they are meant to be a reference standard for comparison against the model responses.</p>" } } }, "inferenceConfig": { "models": [ { "precomputedInferenceSource": { "inferenceSourceIdentifier": "llama-3-1-80b" } }, { "precomputedInferenceSource": { "inferenceSourceIdentifier": "my_other_model" } } ] }, "outputDataConfig": { "s3Uri": "s3://amzn-s3-demo-bucket/output/" } }
SDK for Python

L’exemple de code suivant montre comment créer une tâche d’évaluation des modèles utilisant des employés humains via le kit SDK pour SDK for Python.

import boto3 client = boto3.client('bedrock') job_request = client.create_evaluation_job( jobName="111122223333-job-01", jobDescription="two different task types", roleArn="arn:aws:iam::111122223333:role/example-human-eval-api-role", inferenceConfig={ ## You must specify and array of models "models": [ { "bedrockModel": { "modelIdentifier":"arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-text-lite-v1", "inferenceParams":"{\"inferenceConfig\":{\"maxTokens\": 512,\"temperature\":0.7,\"topP\":0.9}}" } }, { "bedrockModel": { "modelIdentifier": "anthropic.claude-v2", "inferenceParams": "{\"inferenceConfig\":{\"maxTokens\":512,\"temperature\":1,\"topP\":0.999,\"stopSequences\":[\"stop\"]},\"additionalModelRequestFields\":{\"top_k\": 128}}" } } ] }, outputDataConfig={ "s3Uri":"s3://job-bucket/outputs/" }, evaluationConfig={ "human": { "humanWorkflowConfig": { "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/example-workflow-arn", "instructions": "some human eval instruction" }, "customMetrics": [ { "name": "IndividualLikertScale", "description": "testing", "ratingMethod": "IndividualLikertScale" } ], "datasetMetricConfigs": [ { "taskType": "Summarization", "dataset": { "name": "Custom_Dataset1", "datasetLocation": { "s3Uri": "s3://job-bucket/custom-datasets/custom-trex.jsonl" } }, "metricNames": [ "IndividualLikertScale" ] } ] } } ) print(job_request)