View a markdown version of this page

Fine-tune modelos de hub selecionados - SageMaker IA 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á.

Fine-tune modelos de hub selecionados

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 selecionado, 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 para 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 que você escolher deve ser ajustável. Você pode listar os modelos disponíveis programaticamente usando o hub.list_sagemaker_public_hub_models() método no SDK do SageMaker Python.

  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.

Fine-tune uma referência de modelo de hub com curadoria

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

  1. Certifique-se de ter a versão mais recente (pelo menos3.0.0) do SDK do SageMaker Python instalada. Para obter mais informações, consulte Usar a versão 3.x do SDK do SageMaker Python no site Read the Docs.

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

    import boto3 from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute, InputData from sagemaker.core.jumpstart.configs import JumpStartConfig from sagemaker.core.helper.session_helper import Session
  3. Inicialize uma sessão do Boto3, um cliente de SageMaker IA e uma sessão do SDK do SageMaker Python.

    sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker") sm_session = Session(sagemaker_client=sagemaker_client)
  4. Crie um ModelTrainer usando from_jumpstart_config 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 listar os IDs de modelo disponíveis de forma programática, use o hub.list_sagemaker_public_hub_models() método no SDK do SageMaker Python.

    Opcionalmente, você pode especificar os instance_count campos instance_type e ao criar o. ModelTrainer 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 padrão do Amazon S3 para a região em sua conta, nomeado com o seguinte formato:sagemaker-<region>-<account-id>.

    jumpstart_config = JumpStartConfig( model_id="meta-textgeneration-llama-3-2-1b", hub_name=<your-hub-name>, # For gated models, set accept_eula=True to accept the end-user license agreement. # This example uses False. Change it to True to accept the EULA for gated models. accept_eula=False, ) model_trainer = ModelTrainer.from_jumpstart_config( jumpstart_config=jumpstart_config, # Optional: specify your desired instance type and count for the training job. # compute=Compute(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 objeto InputData. channel_nameDefina como train e data_source para o local do seu conjunto de dados de ajuste fino. No exemplo a seguir, <your-fine-tuning-dataset> substitua pelo URI do Amazon S3 do seu conjunto de dados. Se você tiver outras considerações, como usar o modo local ou vários canais de dados de treinamento, consulte SageMaker Treinar na documentação do SDK do SageMaker Python no site Read the Docs.

    training_input = InputData( channel_name="train", data_source="s3://<your-fine-tuning-dataset>", )
  6. Ligue para o train() método do treinador modelo e transmita seus dados de treinamento. Declare a aceitação do EULA no JumpStartConfig (mostrado na etapa anterior), não na train() chamada.

    nota

    Os conjuntos accept_eula=False de JumpStartConfig exemplos anteriores. Para modelos fechados, você deve alterar o valor True para aceitar o EULA.

    model_trainer.train(input_data_config=[training_input])

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 ListTrainingJobs API.

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