

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie uma tarefa do AutoML para ajustar os modelos de geração de texto usando a API
<a name="autopilot-create-experiment-finetune-llms"></a>

Grandes modelos de linguagem (LLMs) se destacam em várias tarefas generativas, incluindo geração de texto, sumarização, conclusão, resposta a perguntas e muito mais. Seu performance pode ser atribuído ao tamanho significativo e ao treinamento extensivo em diversos conjuntos de dados e várias tarefas. No entanto, domínios específicos, como serviços financeiros e de saúde, podem exigir ajustes personalizados para se adaptarem a dados e casos de uso exclusivos. Ao adaptar seu treinamento ao seu domínio específico, os LLMs podem melhorar seu performance e fornecer resultados mais precisos para aplicações específicas.

O Autopilot oferece a capacidade de ajustar uma seleção de modelos de texto generativo pré-treinados. Em particular, o Autopilot suporta o **ajuste fino baseado em instruções** de uma seleção de modelos de linguagem grande (LLMs) de uso geral fornecidos por. JumpStart

**nota**  
Os modelos de geração de texto que suportam o ajuste fino no piloto automático estão atualmente acessíveis exclusivamente nas regiões suportadas pelo Canvas. SageMaker Consulte a documentação do SageMaker Canvas para obter a [lista completa de suas regiões suportadas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html).

Fine-tuning um modelo pré-treinado requer um conjunto de dados específico de instruções claras que orientam o modelo sobre como gerar resultados ou se comportar para essa tarefa. O modelo aprende com o conjunto de dados, ajustando seus parâmetros de acordo com as instruções fornecidas. Instruction-based o ajuste fino envolve o uso de exemplos rotulados formatados como pares de pronto-resposta e formulados como instruções. Para obter mais informações sobre o ajuste fino, consulte [Fine-tune um modelo básico](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-fine-tuning.html).

[As diretrizes a seguir descrevem o processo de criação de um trabalho do Amazon SageMaker Autopilot como um experimento piloto para ajustar LLMs de geração de texto usando a Referência de API. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)

**nota**  
Tarefas como classificação de texto e imagem, previsão de séries temporais e ajuste de grandes modelos de linguagem estão disponíveis exclusivamente na versão 2 da [API REST do AutoML](autopilot-reference.md). Se sua linguagem preferida for Python, você pode se referir diretamente ao [AWS SDK para Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html)[objeto AutoMLv2 do](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2) Amazon Python SDK. SageMaker   
Os usuários que preferem a conveniência de uma interface de usuário podem usar o [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) para acessar modelos pré-treinados e modelos básicos de IA generativos, ou criar modelos personalizados para textos específicos, classificação de imagens, necessidades de previsão ou IA generativa.

Para criar um experimento de piloto automático programaticamente para ajustar um LLM, você pode chamar a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)API em qualquer linguagem compatível com o Amazon Autopilot ou o. SageMaker AWS CLI

Para obter informações sobre como essa ação da API se traduz em uma função no idioma de sua escolha, consulte a seção [Ver também](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso) de `CreateAutoMLJobV2` e escolha um SDK. Como exemplo, para usuários do Python, veja a sintaxe completa da solicitação de `[create\_auto\_ml\_job\_v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)` em AWS SDK para Python (Boto3).

**nota**  
O Autopilot ajusta grandes modelos de linguagem sem exigir que vários candidatos sejam treinados e avaliados. Em vez disso, usando seu conjunto de dados, o Autopilot ajusta diretamente seu modelo de destino para aprimorar uma métrica objetiva padrão, a perda de entropia cruzada. Fine-tuning os modelos de linguagem no piloto automático não exigem a configuração do `AutoMLJobObjective` campo.

Depois que seu LLM estiver ajustado, você poderá avaliar o seu desempenhado acessando várias pontuações ROUGE por meio do `[BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateProperties.html#sagemaker-Type-CandidateProperties-CandidateMetrics)` ao fazer uma chamada de API `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)`. O modelo também fornece informações sobre seu treinamento e perda de validação, bem como sobre sua perplexidade. Para obter uma lista abrangente de métricas para avaliar a qualidade do texto gerado pelos modelos ajustados, consulte [Métricas para ajustar modelos de linguagem grandes no Autopilot](autopilot-llms-finetuning-metrics.md).

## Pré-requisitos
<a name="autopilot-llms-finetuning-api-prerequisites"></a>

Antes de usar o piloto automático para criar um experimento de ajuste fino em SageMaker IA, siga as seguintes etapas:
+ (Opcional) Escolha o modelo pré-treinado que você deseja ajustar.

  Para ver a lista de modelos pré-treinados disponíveis para ajuste fino no Amazon SageMaker Autopilot, consulte. [Modelos de linguagem de grande porte compatíveis para ajuste fino](autopilot-llms-finetuning-models.md) A seleção de um modelo não é obrigatória; se nenhum modelo for especificado, o Autopilot automaticamente assume como padrão o modelo *Falcon7BInstruct*.
+ Criar um conjunto de dados de instruções. Consulte [Tipos de arquivo de conjunto de dados e formato de dados de entrada](autopilot-llms-finetuning-data-format.md) para saber mais sobre os requisitos de formato do seu conjunto de dados de acordo com as instruções.
+ Coloque seus conjuntos de dados em um bucket do Amazon S3.
+ Conceda acesso total ao bucket do Amazon S3 contendo seus dados de entrada para a função de execução de SageMaker IA usada para executar seu experimento.
  + Para obter informações sobre como recuperar sua função de execução de SageMaker IA, consulte[Obtenha um perfil de execução](sagemaker-roles.md#sagemaker-roles-get-execution-role).
  + Para obter informações sobre como conceder permissões de função de execução de SageMaker IA para acessar um ou mais buckets específicos no Amazon S3, *consulte Adicionar permissões adicionais do Amazon S3* a uma função de execução de IA em. SageMaker [Criar perfil de execução](sagemaker-roles.md#sagemaker-roles-create-execution-role)
+ Além disso, você deve fornecer à sua função de execução as permissões necessárias para acessar o bucket de armazenamento padrão do Amazon S3 usado pelo. JumpStart Esse acesso é necessário para armazenar e recuperar artefatos de modelo pré-treinados em. JumpStart Para conceder acesso a esse bucket do Amazon S3, você deve criar uma nova política personalizada em linha em seu perfil de execução.

  Aqui está uma política de exemplo que você pode usar em seu editor JSON ao configurar trabalhos de ajuste do AutoML em `us-west-2`:

  *JumpStartOs nomes dos buckets seguem um padrão predeterminado que depende do Regiões da AWS. Você deve ajustar o nome do bucket adequadamente.* 

  ```
  {
      "Sid": "Statement1",
      "Effect": "Allow",
      "Action": [
          "s3:GetObject",
          "s3:PutObject",
          "s3:ListBucket"
      ],
      "Resource": [
          "arn:aws:s3:::jumpstart-cache-prod-{{us-west-2}}",
          "arn:aws:s3:::jumpstart-cache-prod-{{us-west-2/*}}"
      ]
  }
  ```

Feito isso, você pode usar o ARN desse perfil de execução nas solicitações da API do Autopilot.

## Parâmetros necessários
<a name="autopilot-llms-finetuning-api-required-params"></a>

Ao chamar `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` para criar um experimento de Autopilot para ajuste de LLM, você deve fornecer os seguintes valores:
+ Um `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)` para especificar o nome do seu trabalho. O nome deve ser do tipo `string` e ter um comprimento mínimo de 1 caractere e um comprimento máximo de 32.
+ Pelo menos um `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)` do `training` tipo dentro do `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)`. Esse canal especifica o nome do bucket do Amazon S3 onde seu conjunto de dados de ajuste fino está localizado. Você tem a opção de definir um canal `validation`. Se nenhum canal de validação for fornecido e um `ValidationFraction` estiver configurado no [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html), essa fração será utilizada para dividir aleatoriamente o conjunto de dados de treinamento em conjuntos de treinamento e validação. Além disso, você pode especificar o tipo de conteúdo (arquivos CSV ou Parquet) para o conjunto de dados.
+ Um `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` do tipo `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` para definir as configurações do seu trabalho de treinamento.

  Em particular, você pode especificar o nome do modelo de base a ser ajustado no campo `BaseModelName`. Para ver a lista de modelos pré-treinados disponíveis para ajuste fino no Amazon SageMaker Autopilot, consulte. [Modelos de linguagem de grande porte compatíveis para ajuste fino](autopilot-llms-finetuning-models.md)
+ Um `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)` para especificar o caminho de saída do Amazon S3 para armazenar os artefatos do seu trabalho do AutoML.
+ Um `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)` para especificar o ARN do perfil usada para acessar seus dados.

Veja a seguir um exemplo do formato de solicitação completo usado ao fazer uma chamada de API para `CreateAutoMLJobV2` para ajustar um modelo (`Falcon7BInstruct`).

```
{
   "AutoMLJobName": "<job_name>",
   "AutoMLJobInputDataConfig": [ 
      { 
         "ChannelType": "training",
         "CompressionType": "None",
         "ContentType": "text/csv", 
         "DataSource": { 
            "S3DataSource": { 
               "S3DataType": "S3Prefix",
               "S3Uri": "s3://<bucket_name>/<input_data>.csv"
            }
         }
      }
   ],
  "OutputDataConfig": {
      "S3OutputPath": "s3://<bucket_name>/output",
      "KmsKeyId": "arn:aws:kms:<region>:<account_id>:key/<key_value>"
   },
   "RoleArn":"arn:aws:iam::<account_id>:role/<sagemaker_execution_role_name>",
   "AutoMLProblemTypeConfig": {
        "TextGenerationJobConfig": {
            "BaseModelName": "Falcon7BInstruct"
       }
   }
}
```

Todos os outros parâmetros são opcionais.

## Parâmetros opcionais
<a name="autopilot-llms-finetuning-api-optional-params"></a>

As seções a seguir fornecem detalhes de alguns parâmetros opcionais que você pode passar para o seu trabalho AutoML de ajuste.

### Como especificar os conjuntos de dados de treinamento e validação de um trabalho do AutoML
<a name="autopilot-llms-finetuning-data-training-or-validation"></a>

Você pode fornecer seu próprio conjunto de dados da validação e taxa de divisão de dados personalizada, ou deixar o Autopilot dividir o conjunto de dados automaticamente.

Cada [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)objeto (consulte o parâmetro obrigatório [AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)) tem um`ChannelType`, que pode ser definido como um `training` ou `validation` valores que especificam como os dados devem ser usados ao criar um modelo de aprendizado de máquina.

Pelo menos uma fonte de dados deve ser fornecida e no máximo duas fontes de dados são permitidas: uma para dados de treinamento e outra para dados de validação. A forma como você divide os dados em conjuntos de dados de treinamento e validação depende de você ter uma ou duas fontes de dados. 
+ Se você tiver apenas **uma fonte de dados**, a será `ChannelType` definida como `training` padrão e deverá ter esse valor.
  + Se o valor `ValidationFraction` em [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) não estiver definido, 0,2 (20%) dos dados dessa fonte serão usados para a validação por padrão. 
  + Se `ValidationFraction` for definido como um valor entre 0 e 1, o conjunto de dados será dividido com base no valor especificado, em que o valor especifica a fração do conjunto de dados usada para validação.
+ Se você tiver **duas fontes de dados**, a `ChannelType` de um dos objetos `AutoMLJobChannel` deverá ser definida como `training`, o valor padrão. A `ChannelType` da outra fonte de dados deve ser definida como `validation`. As duas fontes de dados devem ter o mesmo formato, CSV ou Parquet, e o mesmo esquema. Nesse caso, você não deve definir o valor para o `ValidationFraction` porque todos os dados de cada fonte são usados para treinamento ou validação. Definir esse valor causa um erro.

### Como habilitar a implantação automática
<a name="autopilot-llms-finetuning-auto-model-deployment"></a>

O Autopilot permite que você implante automaticamente seu modelo ajustado em um endpoint. Para habilitar a implantação automática para seu modelo ajustado, inclua um `[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)` na solicitação de trabalho do AutoML. Isso permite a implantação de seu modelo ajustado em um SageMaker endpoint de IA. Abaixo estão as configurações disponíveis para personalização.
+ Para permitir que o Autopilot gere o nome do endpoint, defina `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)` como `True`.
+ Para fornecer seu próprio nome para o endpoint, defina `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents) to False and provide a name of your choice in [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`.

### Como definir a aceitação do EULA ao ajustar um modelo usando a API de AutoML
<a name="autopilot-llms-finetuning-set-eula"></a>

Para modelos que exigem a aceitação de um contrato de licença de usuário final antes do ajuste, você pode aceitar o EULA definindo o atributo `AcceptEula` do `[ModelAccessConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelAccessConfig.html)` a `True` em `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` ao configurar seu `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`.

### Como definir hiperparâmetros para otimizar o processo de aprendizado de um modelo
<a name="autopilot-llms-finetuning-set-hyperparameters"></a>

Você pode otimizar o processo de aprendizado do seu modelo de geração de texto definindo valores de hiperparâmetros no atributo `TextGenerationHyperParameters` de `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` ao configurar seu `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`.

O Autopilot permite a configuração de quatro hiperparâmetros comuns em todos os modelos.
+ `epochCount`: Seu valor deve ser uma string contendo um valor inteiro dentro do intervalo de `1` até `10`.
+ `batchSize`: Seu valor deve ser uma string contendo um valor inteiro dentro do intervalo de `1` até `64`.
+ `learningRate`: Seu valor deve ser uma string contendo um valor de ponto flutuante dentro do intervalo de `0` até `1`.
+ `learningRateWarmupSteps`: Seu valor deve ser uma string contendo um valor inteiro dentro do intervalo de `0` até `250`.

Para obter mais detalhes sobre cada hiperparâmetro, consulte [Hiperparâmetros para otimizar o processo de aprendizado de seus modelos de geração de texto](autopilot-llms-finetuning-hyperparameters.md).

O exemplo de JSON a seguir mostra um `TextGenerationHyperParameters` campo passado para o TextGenerationJobConfig onde todos os quatro hiperparâmetros estão configurados.

```
"AutoMLProblemTypeConfig": {
  "TextGenerationJobConfig": {
    "BaseModelName": "Falcon7B",
    "TextGenerationHyperParameters": {"epochCount":"5", "learningRate":"0.000001", "batchSize": "32", "learningRateWarmupSteps": "10"}
  }
}
```