Crea lavori di regressione o classificazione per dati tabulari utilizzando AutoML API - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea lavori di regressione o classificazione per dati tabulari utilizzando AutoML API

È possibile creare un processo di regressione o classificazione Autopilot per dati tabulari a livello di codice richiamando l'CreateAutoMLJobV2APIazione in qualsiasi lingua supportata da Autopilot o da. AWS CLI Di seguito è riportata una raccolta di parametri di richiesta di input obbligatori e facoltativi per l'azione. CreateAutoMLJobV2 API È possibile trovare informazioni alternative per la versione precedente di questa azione, CreateAutoMLJob. Tuttavia, consigliamo di utilizzare CreateAutoMLJobV2.

Per informazioni su come questa API azione si traduce in una funzione nella lingua desiderata, consultate la sezione Vedere anche di CreateAutoMLJobV2 e scegliete unSDK. Ad esempio, per gli utenti di Python, vedi la sintassi completa della richiesta di create_auto_ml_job_v2 in AWS SDK for Python (Boto3).

Nota

CreateAutoMLJobV2e DescribeAutoMLJobV2sono nuove versioni di CreateAutoMLJobe offrono compatibilità DescribeAutoMLJobcon le versioni precedenti.

Si consiglia di utilizzare CreateAutoMLJobV2. CreateAutoMLJobV2 è in grado di gestire tipi di problemi tabulari identici a quelli della versione precedente CreateAutoMLJob, nonché tipi di problemi non tabulari come la classificazione di immagini o testi o la previsione di serie temporali.

Come minimo, tutti gli esperimenti su dati tabulari richiedono la specificazione del nome dell'esperimento, l'indicazione delle posizioni per i dati di input e output e la specificazione dei dati target da prevedere. Facoltativamente, puoi anche specificare il tipo di problema che desideri risolvere (regressione, classificazione, classificazione multiclasse), scegliere la tua strategia di modellazione (insiemi impilati o ottimizzazione degli iperparametri), selezionare l'elenco di algoritmi utilizzati dal job Autopilot per addestrare i dati e altro ancora.

Dopo l'esecuzione dell'esperimento, puoi confrontare le prove e approfondire i dettagli delle fasi di pre-elaborazione, degli algoritmi e degli intervalli di iperparametri di ciascun modello. È inoltre possibile scaricare i relativi report sulla spiegabilità e sulle prestazioni. Utilizza i notebook forniti per visualizzare i risultati dell'esplorazione automatica dei dati o le definizioni dei modelli candidati.

Trova le linee guida su come migrare un CreateAutoMLJob a CreateAutoMLJobV2 inMigrare un CreateAuto MLJob CreateAuto MLJobV2.

Parametri obbligatori

CreateAutoMLJobV2

Quando chiami CreateAutoMLJobV2 per creare un esperimento Autopilot per dati tabulari, devi fornire i seguenti valori:

  • Un AutoMLJobName per specificare il nome del processo.

  • Almeno un AutoMLJobChannel in AutoMLJobInputDataConfig per specificare l'origine dati.

  • Sia un parametro AutoMLJobObjective che il tipo di problema di apprendimento supervisionato prescelto (classificazione binaria, classificazione multiclasse, regressione) in AutoMLProblemTypeConfig o nessuno. Per i dati tabulari, devi scegliere TabularJobConfig come tipo di AutoMLProblemTypeConfig. Hai impostato il problema dell'apprendimento supervisionato nell'attributo ProblemType di TabularJobConfig.

  • Un OutputDataConfig per specificare il percorso di output di Amazon S3 per archiviare gli artefatti del processo AutoML.

  • A RoleArn per specificare il ARN ruolo utilizzato per accedere ai dati.

CreateAutoMLJob

Durante la chiamata CreateAutoMLJob per creare un esperimento AutoML, devi fornire i quattro valori seguenti:

  • Un AutoMLJobName per specificare il nome del processo.

  • Almeno un AutoMLChannel in InputDataConfig per specificare l'origine dati.

  • Un OutputDataConfig per specificare il percorso di output di Amazon S3 per archiviare gli artefatti del processo AutoML.

  • A RoleArn per specificare ARN il ruolo utilizzato per accedere ai dati.

Tutti gli altri parametri sono facoltativi.

Parametri facoltativi

Le sezioni seguenti forniscono dettagli su alcuni parametri opzionali che è possibile passare all'CreateAutoMLJobV2APIazione quando si utilizzano dati tabulari. È possibile trovare informazioni alternative per la versione precedente di questa azione, CreateAutoMLJob. Tuttavia, consigliamo di utilizzare CreateAutoMLJobV2.

Per quanto riguarda i dati tabulari, l'insieme di algoritmi eseguiti sui dati per addestrare i candidati modello dipende dalla strategia di modellazione utilizzata (ENSEMBLING o HYPERPARAMETER_TUNING). Di seguito viene descritto in dettaglio come impostare questa modalità di addestramento.

Se lasci vuoto (o null), viene dedotto Mode in base alla dimensione del set di dati.

Per informazioni sui metodi di addestramento raggruppati impilati e ottimizzazione degli iperparametri di Autopilot, consulta Modalità di addestramento e supporto degli algoritmi

CreateAutoMLJobV2

Per i dati tabulari, devi scegliere TabularJobConfig come tipo di AutoMLProblemTypeConfig.

È possibile impostare il metodo di addestramento di un processo AutoML V2 con il parametro TabularJobConfig.Mode.

CreateAutoMLJob

È possibile impostare il metodo di addestramento di un processo AutoML con il parametro AutoMLJobConfig.Mode.

Selezione delle funzionalità

Autopilot fornisce fasi automatiche di preelaborazione dei dati, tra cui la selezione e l'estrazione delle funzionalità. Tuttavia, è possibile fornire manualmente le funzionalità da utilizzare durante l’addestramento con l'attributo FeatureSpecificatioS3Uri.

Le funzionalità selezionate devono essere contenute in un JSON file nel seguente formato:

{ "FeatureAttributeNames":["col1", "col2", ...] }

I valori elencati in ["col1", "col2", ...] fanno distinzione tra maiuscole e minuscole. Dovrebbero essere un elenco di stringhe contenenti valori univoci che sono sottoinsiemi dei nomi delle colonne nei dati di input.

Nota

L'elenco di colonne fornito come funzionalità non può includere la colonna di destinazione.

CreateAutoMLJobV2

Per i dati tabulari, devi scegliere TabularJobConfig come tipo di AutoMLProblemTypeConfig.

È possibile impostare URL le funzionalità selezionate con il TabularJobConfig.FeatureSpecificatioS3Uri parametro.

CreateAutoMLJob

È possibile impostare l'FeatureSpecificatioS3Uriattributo di A utoMLCandidate GenerationConfig all'interno di CreateAutoMLJobAPIcon il seguente formato:

{ "AutoMLJobConfig": { "CandidateGenerationConfig": { "FeatureSpecificationS3Uri":"string" }, } }

Selezione degli algoritmi

Per impostazione predefinita, il processo di Autopilot esegue un elenco predefinito di algoritmi sul set di dati per addestrare candidati modello. L'elenco degli algoritmi dipende dalla modalità (ENSEMBLING o HYPERPARAMETER_TUNING) di addestramento utilizzata dal processo.

È possibile fornire un sottoinsieme della selezione predefinita di algoritmi.

CreateAutoMLJobV2

Per i dati tabulari, devi scegliere TabularJobConfig come tipo di AutoMLProblemTypeConfig.

È possibile specificare una matrice di AutoMLAlgorithms selezioni nell'AlgorithmsConfigattributo di CandidateGenerationConfig.

Di seguito è riportato un esempio di attributo AlgorithmsConfig che elenca esattamente tre algoritmi («xgboost», «fastai», «catboost») nel loro campo AutoMLAlgorithms per la modalità di addestramento di raggruppamento.

{ "AutoMLProblemTypeConfig": { "TabularJobConfig": { "Mode": "ENSEMBLING", "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]} ] }, }, }, }
CreateAutoMLJob

È possibile specificare una matrice di selezionati AutoMLAlgorithms nell'AlgorithmsConfigattributo di utoMLCandidateGenerationConfigA.

Di seguito è riportato un esempio di attributo AlgorithmsConfig che elenca esattamente tre algoritmi («xgboost», «fastai», «catboost») nel loro campo AutoMLAlgorithms per la modalità di addestramento di raggruppamento.

{ "AutoMLJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]} ] }, "Mode": "ENSEMBLING" }

Per l'elenco degli algoritmi disponibili per ogni addestramento Mode, vedere AutoMLAlgorithms. Per informazioni dettagliate su ciascun algoritmo, vedere Modalità di addestramento e supporto degli algoritmi.

Puoi fornire il tuo set di dati di convalida e un rapporto di suddivisione dei dati personalizzato oppure lasciare che Autopilot suddivida automaticamente il set di dati.

CreateAutoMLJobV2

Ogni AutoMLJobChanneloggetto (vedi il parametro richiesto A utoMLJob InputDataConfig) ha unChannelType, che può essere impostato su uno training o più validation valori che specificano come i dati devono essere utilizzati durante la creazione di un modello di apprendimento automatico. È necessario fornire almeno un'origine dati ed è consentito un massimo di due origine dati: una per i dati di addestramento e una per i dati di convalida.

Il modo in cui suddividere i dati in set di dati di addestramento e convalida dipende dalla presenza di una o due origine dati.

  • Se disponi di una origine dati, ChannelType è impostato su training come impostazione predefinita e deve avere questo valore.

    • Se il valore ValidationFraction in AutoMLDataSplitConfig non è impostato, per impostazione predefinita viene utilizzato per la convalida lo 0,2 (20%) dei dati di questa origine.

    • Se ValidationFraction è impostato su un valore compreso tra 0 e 1, il set di dati viene suddiviso in base al valore specificato, dove il valore specifica la frazione del set di dati utilizzata per la convalida.

  • Se si dispone di due origini dati, per impostazione predefinita il ChannelType di uno degli oggetti AutoMLJobChannel deve essere impostato su training. Il ChannelType dell'altra origine dati deve essere impostato su validation. Le due fonti di dati devono avere lo stesso formato, CSV o Parquet, e lo stesso schema. In questo caso non è necessario impostare ValidationFraction perché tutti i dati di ciascuna origine vengono utilizzati per l'addestramento o la convalida. L'impostazione di questo valore causa un errore.

CreateAutoMLJob

Ogni AutoMLChanneloggetto (vedi il parametro richiesto InputDataConfig) ha un valoreChannelType, che può essere impostato su uno training o più validation valori che specificano come utilizzare i dati nella creazione di un modello di machine learning. È necessario fornire almeno un'origine dati ed è consentito un massimo di due origine dati: una per i dati di addestramento e una per i dati di convalida.

Il modo in cui suddividere i dati in set di dati di addestramento e convalida dipende dalla presenza di una o due origine dati.

  • Se disponi di una origine dati, ChannelType è impostato su training come impostazione predefinita e deve avere questo valore.

    • Se il valore ValidationFraction in AutoMLDataSplitConfig non è impostato, per impostazione predefinita viene utilizzato per la convalida lo 0,2 (20%) dei dati di questa origine.

    • Se ValidationFraction è impostato su un valore compreso tra 0 e 1, il set di dati viene suddiviso in base al valore specificato, dove il valore specifica la frazione del set di dati utilizzata per la convalida.

  • Se si dispone di due origini dati, per impostazione predefinita il ChannelType di uno degli oggetti AutoMLChannel deve essere impostato su training. Il ChannelType dell'altra origine dati deve essere impostato su validation. Le due fonti di dati devono avere lo stesso formato, CSV o Parquet, e lo stesso schema. In questo caso non è necessario impostare ValidationFraction perché tutti i dati di ciascuna origine vengono utilizzati per l'addestramento o la convalida. L'impostazione di questo valore causa un errore.

Per informazioni sulla suddivisione e la convalida incrociata in Autopilot, consultare Convalida incrociata in Autopilot.

CreateAutoMLJobV2

Per i dati tabulari, devi scegliere TabularJobConfig come tipo di AutoMLProblemTypeConfig.

È possibile specificare ulteriormente il tipo di problema di apprendimento supervisionato (classificazione binaria, classificazione multiclasse, regressione) disponibile per i candidati modello del processo AutoML V2 con il parametro TabularJobConfig.ProblemType.

CreateAutoMLJob

È possibile impostare il tipo di problema su un processo AutoML con il parametro CreateAutoPilot.ProblemType. Questo parametro limita il tipo di preelaborazione e gli algoritmi tentati da Autopilot. Dopo il processo, se hai impostato CreateAutoPilot.ProblemType, il ResolvedAttribute.ProblemType corrisponde al ProblemType da te impostato. Se lo lasci vuoto (o null), il ProblemType viene dedotto al posto tuo.

Nota

In alcuni casi, Autopilot non è in grado di dedurre ProblemType con un livello di fiducia abbastanza elevato, nel qual caso è necessario fornire il valore del processo per riuscire nell’operazione.

È possibile aggiungere una colonna di pesi di esempio al set di dati tabulare e quindi passarla al processo AutoML per richiedere la ponderazione delle righe del set di dati durante l’addestramento e la valutazione.

Il supporto per i pesi dei campioni è disponibile solo in modalità raggruppamento. I pesi devono essere numerici e non negativi. Sono esclusi i punti dati con un valore di peso non valido o assente. Per ulteriori informazioni sui parametri disponibili, consulta Parametri ponderati per Autopilot.

CreateAutoMLJobV2

Per i dati tabulari, devi scegliere TabularJobConfig come tipo di AutoMLProblemTypeConfig.

Per impostare i pesi dei campioni durante la creazione di un esperimento (vedi CreateAutoMLJobV2), puoi passare il nome della colonna dei pesi di esempio nell'SampleWeightAttributeNameattributo dell'TabularJobConfigoggetto. Ciò garantisce che il parametro oggettivo utilizzi i pesi per l’addestramento, la valutazione e la selezione dei candidati modello.

CreateAutoMLJob

Per impostare i pesi dei campioni durante la creazione di un esperimento (vedi CreateAutoMLJob), puoi passare il nome della colonna dei pesi dei campioni nell'SampleWeightAttributeNameattributo dell'oggetto A. utoMLChannel Ciò garantisce che il parametro oggettivo utilizzi i pesi per l’addestramento, la valutazione e la selezione dei candidati modello.

Puoi configurare il tuo processo AutoML V2 per avviare automaticamente un processo remoto su Amazon EMR Serverless quando sono necessarie risorse di elaborazione aggiuntive per elaborare set di dati di grandi dimensioni. Passando senza problemi a EMR Serverless quando necessario, il job AutoML è in grado di gestire set di dati che altrimenti supererebbero le risorse inizialmente assegnate, senza alcun intervento manuale da parte dell'utente. EMRServerless è disponibile per i tipi di problemi tabulari e di serie temporali. Consigliamo di configurare questa opzione per set di dati tabulari di dimensioni superiori a 5 GB.

Per consentire al job AutoML V2 di passare automaticamente a EMR Serverless per set di dati di grandi dimensioni, è necessario fornire un EmrServerlessComputeConfig oggetto, che include un ExecutionRoleARN campo, alla richiesta di input di AutoMLComputeConfig AutoML job V2.

ExecutionRoleARNÈ il ARN IAM ruolo che concede al job AutoML V2 le autorizzazioni necessarie per eseguire lavori Serverless. EMR

Questo ruolo deve avere la seguente relazione di fiducia:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

E concedi le autorizzazioni per:

  • Crea, elenca e aggiorna applicazioni EMR serverless.

  • Avvia, elenca, ottieni o annulla le esecuzioni dei job su un'applicazione EMR serverless.

  • Etichetta le EMR risorse serverless.

  • Passa un IAM ruolo al servizio EMR Serverless per l'esecuzione.

    Concedendo l'iam:PassRoleautorizzazione, il job AutoML V2 può assumere temporaneamente EMRServerlessRuntimeRole-* il ruolo e passarlo al EMR servizio Serverless. Questi sono i IAM ruoli utilizzati dagli ambienti di esecuzione dei lavori EMR Serverless per accedere ad altri AWS servizi e risorse necessari durante il runtime, come Amazon S3 per l'accesso ai dati, per la registrazione CloudWatch , l'accesso al Data Catalog o altri servizi in base ai requisiti AWS Glue del carico di lavoro.

    Per informazioni dettagliate sulle autorizzazioni di questo ruolo, consulta Job runtime roles for Amazon EMR Serverless.

La IAM politica definita nel JSON documento fornito concede tali autorizzazioni:

{ "Version": "2012-10-17", "Statement": [{ + "Sid": "EMRServerlessCreateApplicationOperation", + "Effect": "Allow", + "Action": "emr-serverless:CreateApplication", + "Resource": "arn:aws:emr-serverless:*:*:/*", + "Condition": { + "StringEquals": { + "aws:RequestTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessListApplicationOperation", + "Effect": "Allow", + "Action": "emr-serverless:ListApplications", + "Resource": "arn:aws:emr-serverless:*:*:/*", + "Condition": { + "StringEquals": { + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessApplicationOperations", + "Effect": "Allow", + "Action": [ + "emr-serverless:UpdateApplication", + "emr-serverless:GetApplication" + ], + "Resource": "arn:aws:emr-serverless:*:*:/applications/*", + "Condition": { + "StringEquals": { + "aws:ResourceTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessStartJobRunOperation", + "Effect": "Allow", + "Action": "emr-serverless:StartJobRun", + "Resource": "arn:aws:emr-serverless:*:*:/applications/*", + "Condition": { + "StringEquals": { + "aws:RequestTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessListJobRunOperation", + "Effect": "Allow", + "Action": "emr-serverless:ListJobRuns", + "Resource": "arn:aws:emr-serverless:*:*:/applications/*", + "Condition": { + "StringEquals": { + "aws:ResourceTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessJobRunOperations", + "Effect": "Allow", + "Action": [ + "emr-serverless:GetJobRun", + "emr-serverless:CancelJobRun" + ], + "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*", + "Condition": { + "StringEquals": { + "aws:ResourceTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "EMRServerlessTagResourceOperation", + "Effect": "Allow", + "Action": "emr-serverless:TagResource", + "Resource": "arn:aws:emr-serverless:*:*:/*", + "Condition": { + "StringEquals": { + "aws:RequestTag/sagemaker:is-canvas-resource": "True", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } + }, + { + "Sid": "IAMPassOperationForEMRServerless", + "Effect": "Allow", + "Action": "iam:PassRole", + "Resource": "arn:aws:iam::*:role/EMRServerlessRuntimeRole-*", + "Condition": { + "StringEquals": { + "iam:PassedToService": "emr-serverless.amazonaws.com", + "aws:ResourceAccount": "${aws:PrincipalAccount}" + } + } } ] }

Migrare un CreateAuto MLJob CreateAuto MLJobV2

Consigliamo agli utenti di CreateAutoMLJob di migrare a CreateAutoMLJobV2.

Questa sezione spiega le differenze nei parametri di input tra le due versioni CreateAutoMLJobed CreateAutoMLJobV2evidenziando le modifiche nella posizione, nel nome o nella struttura degli oggetti e degli attributi della richiesta di input.

  • Attributi della richiesta che non sono cambiati tra le versioni.

    { "AutoMLJobName": "string", "AutoMLJobObjective": { "MetricName": "string" }, "ModelDeployConfig": { "AutoGenerateEndpointName": boolean, "EndpointName": "string" }, "OutputDataConfig": { "KmsKeyId": "string", "S3OutputPath": "string" }, "RoleArn": "string", "Tags": [ { "Key": "string", "Value": "string" } ] }
  • Richiedi gli attributi che hanno modificato la posizione e la struttura tra le versioni.

    La posizione dei seguenti attributi è cambiata: DataSplitConfig, Security Config, CompletionCriteria, Mode, FeatureSpecificationS3Uri, SampleWeightAttributeName, TargetAttributeName.

    CreateAutoMLJob
    { "AutoMLJobConfig": { "Mode": "string", "CompletionCriteria": { "MaxAutoMLJobRuntimeInSeconds": number, "MaxCandidates": number, "MaxRuntimePerTrainingJobInSeconds": number }, "DataSplitConfig": { "ValidationFraction": number }, "SecurityConfig": { "EnableInterContainerTrafficEncryption": boolean, "VolumeKmsKeyId": "string", "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } }, "CandidateGenerationConfig": { "FeatureSpecificationS3Uri": "string" } }, "GenerateCandidateDefinitionsOnly": boolean, "ProblemType": "string" }
    CreateAutoMLJobV2
    { "AutoMLProblemTypeConfig": { "TabularJobConfig": { "Mode": "string", "ProblemType": "string", "GenerateCandidateDefinitionsOnly": boolean, "CompletionCriteria": { "MaxAutoMLJobRuntimeInSeconds": number, "MaxCandidates": number, "MaxRuntimePerTrainingJobInSeconds": number }, "FeatureSpecificationS3Uri": "string", "SampleWeightAttributeName": "string", "TargetAttributeName": "string" } }, "DataSplitConfig": { "ValidationFraction": number }, "SecurityConfig": { "EnableInterContainerTrafficEncryption": boolean, "VolumeKmsKeyId": "string", "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } } }
  • I seguenti attributi hanno modificato la posizione e la struttura tra le versioni.

    Di seguito JSON viene illustrato come utilizzare A utoMLJob Config. CandidateGenerationConfigdi tipo A utoMLCandidate GenerationConfig spostato in A. utoMLProblem TypeConfig TabularJobConfig. CandidateGenerationConfigdi tipo CandidateGenerationConfigin V2.

    CreateAutoMLJob
    { "AutoMLJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig": [ { "AutoMLAlgorithms": [ "string" ] } ], "FeatureSpecificationS3Uri": "string" } }
    CreateAutoMLJobV2
    { "AutoMLProblemTypeConfig": { "TabularJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig": [ { "AutoMLAlgorithms": [ "string" ] } ], }, } }, }
  • Richiedi gli attributi che hanno cambiato nome e struttura.

    Quanto segue JSON illustra come InputDataConfig(Un array di A utoMLChannel) sia cambiato in A utoMLJob InputDataConfig (Un array di A utoMLJobChannel) in V2. Nota che gli attributi SampleWeightAttributeName e TargetAttributeName vengono spostati da InputDataConfig e verso AutoMLProblemTypeConfig.

    CreateAutoMLJob
    { "InputDataConfig": [ { "ChannelType": "string", "CompressionType": "string", "ContentType": "string", "DataSource": { "S3DataSource": { "S3DataType": "string", "S3Uri": "string" } }, "SampleWeightAttributeName": "string", "TargetAttributeName": "string" } ] }
    CreateAutoMLJobV2
    { "AutoMLJobInputDataConfig": [ { "ChannelType": "string", "CompressionType": "string", "ContentType": "string", "DataSource": { "S3DataSource": { "S3DataType": "string", "S3Uri": "string" } } } ] }