View a markdown version of this page

Ajustar modelos de hub selecionado - SageMaker Inteligência Artificial da Amazon

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á.

Ajustar modelos de hub selecionado

No hub privado e selecionado de modelos, você pode executar tarefas de treinamento de ajuste fino usando suas referências de modelo. As referências do modelo apontam para um JumpStart modelo disponível publicamente no hub público de SageMaker IA, mas você pode ajustar o modelo em seus próprios dados para seu caso de uso específico. Após o trabalho de ajuste fino, você tem acesso aos pesos do modelo que podem ser usados ou implantados em um endpoint.

Você pode ajustar modelos de hub selecionados em apenas algumas linhas de código usando o SDK do Python SageMaker. Para obter mais informações gerais sobre o ajuste fino de JumpStart modelos disponíveis publicamente, consulte. Modelos de base e hiperparâmetros para ajuste

Pré-requisitos

Para ajustar uma referência de JumpStart modelo em seu hub organizado, faça o seguinte:

  1. Certifique-se de que a função do IAM do seu usuário tenha a TrainHubModel permissão de SageMaker IA anexada. Para ter mais informações, consulte Adicionar e remover permissões de identidade do IAM no AWS Guia do usuário do IAM.

    Você deve anexar uma política como a do seguinte exemplo ao perfil do IAM do usuário.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sagemaker:TrainHubModel", "Resource": "arn:aws:sagemaker:*:111122223333:hub/*" } ] }
    nota

    Se seu hub selecionado for compartilhado entre contas e o respectivo conteúdo pertencer a outra conta, HubContent (o recurso de referência do modelo) deverá ter uma política do IAM baseada em recursos que também conceda a permissão TrainHubModel à conta solicitante, conforme mostrado no exemplo a seguir.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "sagemaker:TrainHubModel" ], "Resource": [ "arn:aws:sagemaker:*:111122223333:hub/*" ] } ] }
  2. Tenha um hub privado com curadoria com uma referência de modelo a um JumpStart modelo que você deseja ajustar. Para ter mais informações sobre como criar um hub privado, consulte Criar um hub de modelo privado. Para saber como adicionar JumpStart modelos disponíveis publicamente ao seu hub privado, consulteAdicionar modelos a um hub privado.

    nota

    O JumpStart modelo escolhido deve ser ajustável. Para verificar se um modelo é ajustável, consulte Built-in Algorithms with pre-trained Model Table.

  3. Tenha um conjunto de dados de treinamento que você deseja usar para ajustar o modelo. O conjunto de dados deve estar no formato de treinamento apropriado para o modelo que você deseja ajustar.

Ajustar uma referência de modelo do hub selecionado

O procedimento a seguir mostra como ajustar uma referência de modelo em seu hub privado com curadoria usando o SDK do Python SageMaker .

  1. Verifique se você tem a versão mais recente (pelo menos2.242.0) do SDK do SageMaker Python instalada. Para obter mais informações, consulte Usar a versão 2.x do SDK do SageMaker Python.

    !pip install --upgrade sagemaker
  2. Importe os módulos AWS SDK para Python (Boto3) e os que você precisará do SDK do SageMaker Python.

    import boto3 from sagemaker.jumpstart.estimator import JumpStartEstimator from sagemaker.session import Session
  3. Inicialize uma sessão do Boto3, um cliente de SageMaker IA e uma sessão do SDK do Python SageMaker .

    sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker") sm_session = Session(sagemaker_client=sagemaker_client)
  4. Crie um JumpStartEstimator e forneça o ID do JumpStart modelo, o nome do seu hub que contém a referência do modelo e sua sessão do SDK do SageMaker Python. Para obter uma lista de modelos IDs, consulte a tabela de algoritmos integrados com modelos pré-treinados.

    Opcionalmente, é possível especificar os campos instance_type e instance_count ao criar o estimador. Do contrário, a tarefa de treinamento usará o tipo e contagem de instância padrão e do modelo que você está usando.

    Opcionalmente, você também pode especificar o output_path para o local do Amazon S3 onde deseja armazenar os pesos do modelo ajustado. Se você não especificar ooutput_path, então usa um bucket SageMaker AI Amazon S3 padrão para a região em sua conta, nomeado com o seguinte formato:. sagemaker-<region>-<account-id>

    estimator = JumpStartEstimator( model_id="meta-textgeneration-llama-3-2-1b", hub_name=<your-hub-name>, sagemaker_session=sm_session, # If you don't specify an existing session, a default one is created for you # Optional: specify your desired instance type and count for the training job # instance_type = "ml.g5.2xlarge" # instance_count = 1 # Optional: specify a custom S3 location to store the fine-tuned model artifacts # output_path: "s3://<output-path-for-model-artifacts>" )
  5. Crie um dicionário com a chave training em que você especifica o local do seu conjunto de dados de ajuste fino. Este exemplo aponta para um URI do Amazon S3. Se você tiver outras considerações, como usar o modo local ou vários canais de dados de treinamento, consulte JumpStartEstimator.fit () na documentação do SDK do SageMaker Python para obter mais informações.

    training_input = { "training": "s3://<your-fine-tuning-dataset>" }
  6. Chame o método fit() do estimador e passe seus dados de treinamento e sua aceitação do EULA (se aplicável).

    nota

    O exemplo a seguir define accept_eula=False. Você deve alterar manualmente o valor para True para aceitar o EULA.

    estimator.fit(inputs=training_input, accept_eula=False)

Seu trabalho de ajuste fino deve começar agora.

Você pode verificar seu trabalho de ajuste fino visualizando seus trabalhos de treinamento, no console de SageMaker IA ou usando a ListTrainingJobsAPI.

Você pode acessar seus artefatos de modelo ajustados no Amazon S3 output_path que foram especificados no JumpStartEstimator objeto (o bucket AI Amazon SageMaker S3 padrão para a região ou um caminho personalizado do Amazon S3 que você especificou, se aplicável).