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
. A forma como as respostas são armazenadas muda com base no tipo de métrica selecionado quando o trabalho foi criado.humanAnswers
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 |
---|---|---|
|
arn:aws:sagemaker:us-west-2:
|
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. |
|
system-generated-hash |
Uma string hexadecimal de 40 caracteres gerada pelo sistema. |
inputRecord |
|
Um objeto JSON que contém um prompt de entrada do conjunto de dados de entrada. |
modelResponses |
|
As respostas individuais dos modelos. |
inputContent |
|
O conteúdo de entrada do loop humano necessário para iniciar o loop humano em seu bucket do Amazon S3. |
modelResponseIdMap |
|
Descreve como cada modelo é representado no |
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-chavemetricType
é 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 um0
ou1
. 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 qualmodelResponseIdMap
foi mostrado no lado esquerdo do portal do operador.rightModelResponseId
: indica qualmodelResponseIdMap
foi mostrado no lado esquerdo do portal do operador.result
: o objeto JSON indica qual modelo o operador selecionou usando um0
ou1
. 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 umrank
."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 dometricName
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
: sejatrue
oufalse
, pois diz respeito aometricName
. 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" } ] }