Entenda os resultados de um trabalho de avaliação humana - Amazon SageMaker

Entenda os resultados de um trabalho de avaliação humana

Ao criar um trabalho de avaliação de modelo com a participação de operadores humanos, você selecionou um ou mais tipos de métrica. Quando os membros da equipe de trabalho avaliam uma resposta no portal do operador, suas respostas são salvas no objeto json humanAnswers. A forma como as respostas são armazenadas muda com base no tipo de métrica selecionado quando o trabalho foi criado.

As seções a seguir explicam essas diferenças e fornecem exemplos.

Referência de saída JSON

Quando um trabalho de avaliação de modelo é concluído, os resultados são salvos no Amazon S3 como um arquivo JSON. O objeto JSON contém três nós de alto nível: humanEvaluationResult, inputRecord e modelResponses. A chave humanEvaluationResult é um nó de alto nível que contém as respostas da equipe de trabalho atribuída ao trabalho de avaliação do modelo. A chave inputRecord é um nó de alto nível que contém os prompts fornecidos aos modelos quando o trabalho de avaliação do modelo foi criado. A chave modelResponses é um nó de alto nível que contém as respostas aos prompts dos modelos.

A tabela a seguir resume os pares de valores-chave encontrados na saída JSON do trabalho de avaliação do modelo.

As seções seguintes fornecem mais detalhes sobre cada par de valor-chave:

Parâmetro Exemplo Descrição

flowDefinitionArn

arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name

O ARN do fluxo de trabalho de revisão humana (definição do fluxo) que criou o loop humano.

humanAnswers

Uma lista de objetos JSON específicos das métricas de avaliação selecionadas. Para saber mais, consulte Pares de valores-chave encontrados em humanAnswers.

Uma lista de objetos JSON que contêm respostas de operadores.

humanLoopName

system-generated-hash Uma string hexadecimal de 40 caracteres gerada pelo sistema.
inputRecord
"inputRecord": { "prompt": { "text": "Who invented the airplane?" }, "category": "Airplanes", "referenceResponse": { "text": "Orville and Wilbur Wright" }, "responses": [{ "modelIdentifier": "meta-textgeneration-llama-codellama-7b", "text": "The Wright brothers, Orville and Wilbur Wright are widely credited with inventing and manufacturing the world's first successful airplane." }] }
Um objeto JSON que contém um prompt de entrada do conjunto de dados de entrada.
modelResponses
"modelResponses": [{ "modelIdentifier": "arn:aws:bedrock:us-west-2::foundation-model/model-id", "text": "the-models-response-to-the-prompt" }]
As respostas individuais dos modelos.
inputContent
{ "additionalDataS3Uri":"s3://user-specified-S3-URI-path/datasets/dataset-name/records/record-number/human-loop-additional-data.json", "evaluationMetrics":[ { "description":"brief-name", "metricName":"metric-name", "metricType":"IndividualLikertScale" } ], "instructions":"example instructions" }

O conteúdo de entrada do loop humano necessário para iniciar o loop humano em seu bucket do Amazon S3.

modelResponseIdMap
{ "0": "sm-margaret-meta-textgeneration-llama-2-7b-1711485008-0612", "1": "jumpstart-dft-hf-llm-mistral-7b-ins-20240327-043352" }

Descreve como cada modelo é representado no answerContent.

Pares de valores-chave encontrados em humanEvaluationResult

Os seguintes pares de valores-chave são encontrados abaixo de humanEvaluationResult, na saída do seu trabalho de avaliação de modelo:

Para os pares de valores-chave associados a humanAnswers, consulte Pares de valores-chave encontrados em humanAnswers.

flowDefinitionArn

  • O ARN da definição de fluxo usada para concluir o trabalho de avaliação do modelo.

  • Exemplo:arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name

humanLoopName

  • Uma string hexadecimal de 40 caracteres gerada pelo sistema.

inputContent

  • Esse valor-chave descreve os tipos de métricas e as instruções fornecidas aos operadores no portal do operador.

    • additionalDataS3Uri: o local no Amazon S3 onde as instruções para os operadores são salvas.

    • instructions: as instruções que você forneceu aos operadores no portal do operador.

    • evaluationMetrics: o nome da métrica e sua descrição. O valor-chave metricType é a ferramenta fornecida aos operadores para avaliar as respostas dos modelos.

modelResponseIdMap

  • O par de valor-chave identifica os nomes completos dos modelos selecionados e como as escolhas do operador são mapeadas para os modelos nos pares de valores-chave humanAnswers.

Pares de valores-chave encontrados em inputRecord

As entradas a seguir descrevem os pares de valores-chave inputRecord.

prompt

  • O texto do prompt enviado ao modelo.

category

  • Uma categoria opcional que classifica o prompt. Visível para os operadores no portal do operador durante a avaliação do modelo.

  • Exemplo:"American cities"

referenceResponse

  • Um campo opcional do JSON de entrada usado para especificar a verdade fundamental que você deseja que os operadores usem como referência durante a avaliação

responses

  • Um campo opcional do JSON de entrada que contém respostas de outros modelos.

Um exemplo de registro de entrada JSON.

{ "prompt": { "text": "Who invented the airplane?" }, "category": "Airplanes", "referenceResponse": { "text": "Orville and Wilbur Wright" }, "responses": // The same modelIdentifier must be specified for all responses [{ "modelIdentifier": "meta-textgeneration-llama-codellama-7b" , "text": "The Wright brothers, Orville and Wilbur Wright are widely credited with inventing and manufacturing the world's first successful airplane." }] }

Pares de valores-chave encontrados em modelResponses

Uma matriz de pares de valores-chave que contém as respostas dos modelos e qual modelo forneceu as respostas.

text

  • A resposta do modelo ao prompt.

modelIdentifier

  • O nome do modelo.

Pares de valores-chave encontrados em humanAnswers

Uma matriz de pares de valores-chave que contém as respostas dos modelos e como os operadores avaliaram os modelos.

acceptanceTime

  • Quando o operador aceitou a tarefa no portal do operador.

submissionTime

  • Quando o operador enviou sua resposta.

timeSpentInSeconds

  • Quanto tempo o operador passou concluindo a tarefa.

workerId

  • O ID do operador que concluiu a tarefa.

workerMetadata

  • Metadados sobre qual equipe de trabalho foi designada para o trabalho de avaliação de modelo.

Formato da matriz JSON answerContent

A estrutura da resposta depende das métricas de avaliação selecionadas quando o trabalho de avaliação do modelo foi criado. Cada resposta ou resposta do operador é registrada em um novo objeto JSON.

answerContent

  • evaluationResults contém as respostas do operador.

    • Quando os botões de escolha são selecionados, os resultados de cada operador são como "evaluationResults": "comparisonChoice".

      metricName: o nome da métrica.

      result: o objeto JSON indica qual modelo o operador selecionou usando um 0 ou 1. Para ver qual valor um modelo está mapeado para ver, modelResponseIdMap.

    • Quando a Escala Likert, comparação é selecionada, os resultados de cada operador são como "evaluationResults": "comparisonLikertScale".

      metricName: o nome da métrica.

      leftModelResponseId: indica qual modelResponseIdMap foi mostrado no lado esquerdo do portal do operador.

      rightModelResponseId: indica qual modelResponseIdMap foi mostrado no lado esquerdo do portal do operador.

      result: o objeto JSON indica qual modelo o operador selecionou usando um 0 ou 1. Para ver qual valor um modelo está mapeado para ver, modelResponseIdMap

    • Quando a Classificação ordinal é selecionada, os resultados de cada operador estão como "evaluationResults": "comparisonRank".

      metricName: o nome da métrica.

      result: matriz de objetos JSON. Para cada modelo (modelResponseIdMap), os operadores fornecem um rank.

      "result": [{ "modelResponseId": "0", "rank": 1 }, { "modelResponseId": "1", "rank": 1 }]
    • Quando a Escala Likert, avaliação de uma única resposta do modelo é selecionada, os resultados do operador são salvos em "evaluationResults": "individualLikertScale". Isto é uma matriz JSON contendo as pontuações do metricName especificado quando o trabalho foi criado.

      metricName: o nome da métrica.

      modelResponseId: o modelo que é pontuado. Para ver qual valor um modelo está mapeado para ver, modelResponseIdMap.

      result: um par de valores-chave indicando o valor da escala Likert selecionada pelo operador.

    • Quando Polegar para cima/para baixo é selecionado, os resultados do operador são salvos como uma matriz JSON "evaluationResults": "thumbsUpDown".

      metricName: o nome da métrica.

      result: seja true ou false, pois diz respeito ao metricName. Quando um operador escolhe o polegar para cima, "result" : true.

Exemplo de saída de uma saída de trabalho da avaliação de modelo

O objeto JSON a seguir é um exemplo de saída de trabalho de avaliação de modelo que é salva no Amazon S3. Para saber mais sobre cada par de valor-chave, consulte Referência de saída JSON.

Para maior clareza, o trabalho contém apenas as respostas de dois operadores. Alguns pares de valores-chave também podem ter sido truncados para facilitar a leitura

{ "humanEvaluationResult": { "flowDefinitionArn": "arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name", "humanAnswers": [ { "acceptanceTime": "2024-06-07T22:31:57.066Z", "answerContent": { "evaluationResults": { "comparisonChoice": [ { "metricName": "Fluency", "result": { "modelResponseId": "0" } } ], "comparisonLikertScale": [ { "leftModelResponseId": "0", "metricName": "Coherence", "result": 1, "rightModelResponseId": "1" } ], "comparisonRank": [ { "metricName": "Toxicity", "result": [ { "modelResponseId": "0", "rank": 1 }, { "modelResponseId": "1", "rank": 1 } ] } ], "individualLikertScale": [ { "metricName": "Correctness", "modelResponseId": "0", "result": 2 }, { "metricName": "Correctness", "modelResponseId": "1", "result": 3 }, { "metricName": "Completeness", "modelResponseId": "0", "result": 1 }, { "metricName": "Completeness", "modelResponseId": "1", "result": 4 } ], "thumbsUpDown": [ { "metricName": "Accuracy", "modelResponseId": "0", "result": true }, { "metricName": "Accuracy", "modelResponseId": "1", "result": true } ] } }, "submissionTime": "2024-06-07T22:32:19.640Z", "timeSpentInSeconds": 22.574, "workerId": "ead1ba56c1278175", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_WxGLvNMy4", "sub": "cd2848f5-6105-4f72-b44e-68f9cb79ba07" } } }, { "acceptanceTime": "2024-06-07T22:32:19.721Z", "answerContent": { "evaluationResults": { "comparisonChoice": [ { "metricName": "Fluency", "result": { "modelResponseId": "1" } } ], "comparisonLikertScale": [ { "leftModelResponseId": "0", "metricName": "Coherence", "result": 1, "rightModelResponseId": "1" } ], "comparisonRank": [ { "metricName": "Toxicity", "result": [ { "modelResponseId": "0", "rank": 2 }, { "modelResponseId": "1", "rank": 1 } ] } ], "individualLikertScale": [ { "metricName": "Correctness", "modelResponseId": "0", "result": 3 }, { "metricName": "Correctness", "modelResponseId": "1", "result": 4 }, { "metricName": "Completeness", "modelResponseId": "0", "result": 1 }, { "metricName": "Completeness", "modelResponseId": "1", "result": 5 } ], "thumbsUpDown": [ { "metricName": "Accuracy", "modelResponseId": "0", "result": true }, { "metricName": "Accuracy", "modelResponseId": "1", "result": false } ] } }, "submissionTime": "2024-06-07T22:32:57.918Z", "timeSpentInSeconds": 38.197, "workerId": "bad258db224c3db6", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_WxGLvNMy4", "sub": "84d5194a-3eed-4ecc-926d-4b9e1b724094" } } } ], "humanLoopName": "a757 11d3e75a 8d41f35b9873d 253f5b7bce0256e", "inputContent": { "additionalDataS3Uri": "s3://mgrt-test-us-west-2/test-2-workers-2-model/datasets/custom_dataset/0/task-input-additional-data.json", "instructions": "worker instructions provided by the model evaluation job administrator", "evaluationMetrics": [ { "metricName": "Fluency", "metricType": "ComparisonChoice", "description": "Measures the linguistic quality of a generated text." }, { "metricName": "Coherence", "metricType": "ComparisonLikertScale", "description": "Measures the organization and structure of a generated text." }, { "metricName": "Toxicity", "metricType": "ComparisonRank", "description": "Measures the harmfulness of a generated text." }, { "metricName": "Accuracy", "metricType": "ThumbsUpDown", "description": "Indicates the accuracy of a generated text." }, { "metricName": "Correctness", "metricType": "IndividualLikertScale", "description": "Measures a generated answer's satisfaction in the context of the question." }, { "metricName": "Completeness", "metricType": "IndividualLikertScale", "description": "Measures a generated answer's inclusion of all relevant information." } ], "disableRandomization": "true" }, "modelResponseIdMap": { "0": "sm-margaret-meta-textgeneration-llama-2-7b-1711485008-0612", "1": "jumpstart-dft-hf-llm-mistral-7b-ins-20240327-043352" } }, "inputRecord": { "prompt": { "text": "What is high intensity interval training?" }, "category": "Fitness", "referenceResponse": { "text": "High-Intensity Interval Training (HIIT)" } }, "modelResponses": [ { "text": "High Intensity Interval Training (HIIT) is a form of exercise that alternates between periods of high intensity work and low intensity recovery.HIIT is an excellent way to increase your fitness and improve your health, but it can be difficult to get started.In this article, we will", "modelIdentifier": "sm-margaret-meta-textgeneration-llama-2-7b-1711485008-0612" }, { "text": "High intensity interval training is a form of exercise consisting of short bursts of maximum effort followed by periods of rest. The theory behind HIIT is that it can often be more effective at improving cardiovascular and metabolic health than longer, lower intensity workouts.The work intervals can range in length depending on the specific type of exercise, but are typically between 20 and 90 seconds. The recovery periods are generally longer, lasting between 1 and 5 minutes. This pattern is then repeated for multiple sets.\n\nSince the work intervals are high intensity, they require more effort from your body and therefore result in a greater calorie burn. The body also continues to burn calories at an increased rate after the workout due to an effect called excess post exercise oxygen consumption (EPOC), also know as the afterburn effect.\n\nHIIT is a versatile form of training that can be adapted to different fitness levels and can be performed using a variety of exercises including cycling, running, bodyweight movements, and even swimming. It can be done in as little as 20 minutes once or twice a week, making it an efficient option for busy individuals.\n\nWhat are the benefits of high intensity interval training", "modelIdentifier": "jumpstart-dft-hf-llm-mistral-7b-ins-20240327-043352" } ] }