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á.
Criar um trabalho de otimização de inferência
Você pode criar um trabalho de otimização de inferência usando o Studio ou o SDK SageMaker AI Python. O trabalho otimiza seu modelo aplicando as técnicas que você escolher. Para obter mais informações, consulte Técnicas de otimização.
Preços de instâncias para trabalhos de otimização de inferência
Quando você cria um trabalho de otimização de inferência que aplica quantização ou compilação, a SageMaker IA escolhe qual tipo de instância usar para executar o trabalho. Você recebe cobranças com base na instância usada.
Para ver os possíveis tipos de instância e seus detalhes de preços, consulte as informações de preços de otimização de inferência na página de SageMaker preços da Amazon
Você não terá custos adicionais para trabalhos que aplicam decodificação especulativa.
Para ver os modelos compatíveis que você pode otimizar, consulte Referência de modelos compatíveis.
Conclua as etapas a seguir para criar um trabalho de otimização de inferência no Studio.
Como começar a criar um trabalho de otimização
-
No SageMaker AI Studio, crie um trabalho de otimização por meio de qualquer um dos seguintes caminhos:
-
Para criar um trabalho para um JumpStart modelo, faça o seguinte:
-
No menu de navegação, selecione JumpStart.
-
Na página Todos os modelos públicos, escolha um fornecedor de modelos e selecione um dos modelos que permitem otimização.
-
Na página de detalhes do modelo, escolha Otimizar. Esse botão está habilitado somente para modelos que permitem otimização.
-
Na página Criar tarefa de otimização de inferência, alguns JumpStart modelos exigem que você assine um contrato de licença de usuário final (EULA) antes de continuar. Se solicitado, analise os termos da licença na seção Contrato de licença. Se os termos forem aceitáveis para seu caso de uso, marque a caixa de seleção Aceito o EULA e li os termos e condições.
-
-
Para criar um trabalho para um JumpStart modelo ajustado, faça o seguinte:
-
No painel de navegação, em Trabalhos, escolha Treinamento.
-
Na página Tarefas de treinamento, escolha o nome de uma tarefa que você usou para ajustar um JumpStart modelo. Esses trabalhos têm o tipo JumpStarttreinamento na coluna Tipo de trabalho.
-
Na página de detalhes da tarefa de treinamento, escolha Otimizar.
-
-
Para criar um trabalho para um modelo personalizado, faça o seguinte:
-
No menu de navegação, em Trabalho, escolha Otimização da inferência.
-
Escolha Create new job (Criar uma nova tarefa).
-
Na página Criar trabalho de otimização de inferência, escolha Adicionar modelo.
-
Na janela Adicionar modelo, escolha Modelo personalizado.
-
Escolha uma das seguintes opções:
Use seu modelo existente: selecione essa opção para otimizar um modelo que você já criou na SageMaker IA.
Nome do modelo existente - insira o nome do seu modelo de SageMaker IA.
Do S3 - Selecione essa opção para fornecer artefatos de modelo do Amazon S3. Em URI do S3, insira o URI do local no Amazon S3 em que você armazenou os artefatos do seu modelo.
-
(Opcional) Em Nome do modelo de saída, você pode inserir um nome personalizado para o modelo otimizado que o trabalho cria. Se você não fornecer um nome, o Studio gerará automaticamente um com base na sua seleção.
-
-
-
Na página Criar tarefa de otimização de inferência, em Job name, você pode aceitar o nome padrão que a SageMaker IA atribui. Ou, para inserir um nome de trabalho personalizado, escolha o campo Nome do trabalho e selecione Inserir nome do trabalho.
Como definir as configurações de otimização
-
Em Tipo de instância de implantação, escolha o tipo de instância para o qual você deseja otimizar o modelo.
O tipo de instância afeta as técnicas de otimização que você pode escolher. Para a maioria dos tipos que usam hardware de GPU, as técnicas permitidas são quantização e decodificação especulativa. Se você escolher uma instância que usa silício personalizado, como a instância AWS Inferentia ml.inf2.8xlarge, a técnica suportada é a Compilação, que você pode usar para compilar o modelo para esse tipo específico de hardware.
-
Selecione uma ou mais entre as técnicas de otimização que o Studio oferece:
-
Se você selecionar Quantização, escolha um tipo de dados para Tipo de dados de precisão.
-
Se você selecionar Decodificação especulativa, escolha uma das seguintes opções:
-
Use o modelo de rascunho de SageMaker IA — Escolha usar o modelo de rascunho fornecido pela SageMaker IA.
nota
Se você optar por usar o modelo de rascunho de SageMaker IA, também deverá habilitar o isolamento da rede. O Studio oferece essa opção em Segurança.
-
Escolha o modelo de JumpStart rascunho — Escolha selecionar um modelo do JumpStart catálogo para usar como seu modelo de rascunho.
-
Escolher seu próprio modelo de rascunho: opte por usar seu próprio modelo de rascunho e forneça o URI do S3 que o localiza.
-
-
Se você escolher Carregamento rápido do modelo, o Studio mostrará a variável de ambiente
OPTION_TENSOR_PARALLEL_DEGREE. Use o campo Valor para definir o grau de paralelismo do tensor. O valor deve dividir uniformemente o número de GPUs na instância que você escolheu para o tipo de instância de implantação. Por exemplo, para fragmentar seu modelo ao usar uma instância com 8 GPUs, use os valores 2, 4 ou 8. -
Se você definir o tipo de instância de implantação como uma instância AWS Inferentia ou AWS Trainium, o Studio poderá mostrar que a compilação é a única opção compatível. Nesse caso, o Studio seleciona essa opção para você.
-
-
Em Saída, insira o URI de um local no Amazon S3. Lá, a SageMaker IA armazena os artefatos do modelo otimizado que seu trabalho cria.
-
(Opcional) Expanda Opções avançadas para obter um controle mais refinado sobre as configurações, como o perfil do IAM, a VPC e as variáveis de ambiente. Para ter mais informações, consulte Opções avançadas abaixo.
-
Quando terminar de configurar o trabalho, escolha Criar trabalho.
O Studio mostra a página de detalhes do trabalho, que exibe o status e todas as suas configurações do trabalho.
Opções avançadas
Você pode definir as opções avançadas a seguir ao criar um trabalho de otimização de inferência.
Em Configurações, você pode definir as seguintes opções:
- Tensor de grau paralelo
-
Um valor para o grau de paralelismo de tensores. O paralelismo de tensores é um tipo de paralelismo de modelo no qual pesos, gradientes e estados do otimizador específicos do modelo são divididos entre dispositivos. O valor deve dividir uniformemente o número de GPUs em seu cluster.
- Tamanho máximo de tokens
-
O limite para o número de tokens a serem gerados pelo modelo. Observe que o modelo nem sempre gera o número máximo de tokens.
- Simultaneidade
-
A possibilidade de executar várias instâncias de um modelo no mesmo hardware subjacente. Use a simultaneidade para fornecer predições a vários usuários e maximizar a utilização de hardware.
- Tamanho do lote
-
Se seu modelo fizer inferência em lote, use essa opção para controlar o tamanho dos lotes que ele processa.
A predição em lote, também conhecida como inferência off-line, gera predições de modelo em um lote de observações. A inferência em lote é uma boa opção para grandes conjuntos de dados ou quando você não precisa de uma resposta imediata a uma solicitação de predição de modelo.
Em Segurança, você pode definir as seguintes opções:
- Perfil do IAM
-
Uma função do IAM que permite que a SageMaker IA execute tarefas em seu nome. Durante a otimização do modelo, a SageMaker IA precisa da sua permissão para:
-
Ler dados de entrada de um bucket do S3.
-
Gravar artefatos do modelo em um bucket do S3.
-
Grave registros no Amazon CloudWatch Logs
-
Publique métricas na Amazon CloudWatch
Você concede permissões para todas essas tarefas a um perfil do IAM.
Para obter mais informações, consulte Como usar funções de execução de SageMaker IA.
-
- Chave de criptografia do KMS
-
Uma chave em AWS Key Management Service (AWS KMS). SageMaker A IA usa a chave para criptografar os artefatos do modelo otimizado quando a SageMaker IA carrega o modelo no Amazon S3.
- VPC
-
SageMaker A IA usa essas informações para criar interfaces de rede e anexá-las aos seus contêineres de modelo. As interfaces de rede concedem aos contêineres de modelo uma conexão de rede na sua VPC, sem acesso à Internet. Além disso, permitem que o modelo conecte-se aos recursos da VPC privada.
Para obter mais informações, consulte Dê aos endpoints hospedados por SageMaker IA acesso aos recursos em sua Amazon VPC.
- Habilitar isolamento de rede
-
Ative essa opção se quiser restringir o acesso do contêiner à internet. Os contêineres que funcionam com isolamento de rede não podem fazer nenhuma chamada de rede de saída.
nota
Você deve ativar essa opção ao otimizar com decodificação especulativa e usar o modelo de rascunho de SageMaker IA.
Para ter mais informações sobre níveis de isolamento, consulte Isolamento de rede.
Em Definição avançada de contêiner, você pode definir as seguintes opções:
- Condição de interrupção
-
Especifica o tempo máximo durante o qual um trabalho pode ser executado. Quando o trabalho atinge o limite de tempo, a SageMaker IA termina o trabalho. Use essa opção para limitar os custos.
- Tags
-
Pares de chave-valor associados ao trabalho de otimização.
Para ter mais informações sobre tags, consulte Tagging AWS resources no Referência geral da AWS.
- Variáveis de ambiente
-
Pares de chave-valor que especificam as variáveis de ambiente que devem ser definidas no contêiner do modelo.
Você pode criar um trabalho de otimização de inferência usando o SDK SageMaker AI Python em seu projeto. Primeiro, defina uma instância Model usando a classe ModelBuilder. Em seguida, use o método optimize() para executar um trabalho que otimize seu modelo com quantização, decodificação especulativa ou compilação. Quando o trabalho estiver concluído, implante o modelo em um endpoint de inferência usando o método deploy().
Para obter mais informações sobre as classes e os métodos usados nos exemplos a seguir, consulte APIs
Como configurar o projeto
-
No código da sua aplicação, importe as bibliotecas necessárias. O exemplo a seguir importa o SDK para Python (Boto3). Ele também importa as classes do SDK SageMaker AI Python que você usa para definir e trabalhar com modelos:
import boto3 from sagemaker.serve.builder.model_builder import ModelBuilder from sagemaker.serve.builder.schema_builder import SchemaBuilder from sagemaker.session import Session from pathlib import Path -
Inicialize uma sessão de SageMaker IA. O seguinte exemplo usa a classe
Session():sagemaker_session = Session()
Como definir seu modelo
-
Crie uma instância
SchemaBuildere forneça amostras de entrada e saída. Você deve fornecer essa instância para a classeModelBuilderao definir um modelo. Com isso, a SageMaker IA gera automaticamente as funções de organização para serializar e desserializar a entrada e a saída.Para ter mais informações sobre como usar as classes
SchemaBuildereModelBuilder, consulte Criar um modelo no Amazon SageMaker AI com o ModelBuilder.O seguinte exemplo apresenta amostras de strings de entrada e saída para a classe
SchemaBuilder:response = "Jupiter is the largest planet in the solar system. It is the fifth planet from the sun." sample_input = { "inputs": "What is the largest planet in the solar system?", "parameters": {"max_new_tokens": 128, "top_p": 0.9, "temperature": 0.6}, } sample_output = [{"generated_text": response}] schema_builder = SchemaBuilder(sample_input, sample_output) -
Defina seu modelo para SageMaker IA. O seguinte exemplo define os parâmetros para inicializar uma instância
ModelBuilder:model_builder = ModelBuilder( model="jumpstart-model-id", schema_builder=schema_builder, sagemaker_session=sagemaker_session, role_arn=sagemaker_session.get_caller_identity_arn(), )Este exemplo usa um JumpStart modelo.
Substitua pela ID de um JumpStart modelo, comojumpstart-model-idmeta-textgeneration-llama-3-70b.nota
Se você quiser otimizar com decodificação especulativa e usar o rascunho de SageMaker IA, você deve habilitar o isolamento da rede. Para habilitá-lo, inclua o seguinte argumento ao inicializar uma instância
ModelBuilder:enable_network_isolation=True,Para ter mais informações sobre níveis de isolamento, consulte Isolamento de rede.
Como realizar a otimização com quantização
-
Para executar um trabalho de quantização, use o método
optimize()e defina o argumentoquantization_config. O seguinte exemplo defineOPTION_QUANTIZEcomo uma variável de ambiente no contêiner de otimização:optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, quantization_config={ "OverrideEnvironment": { "OPTION_QUANTIZE": "awq", }, }, output_path="s3://output-path", )Neste exemplo, substitua
por uma instância de ML, comoinstance-typeml.p4d.24xlarge. Substituapelo caminho para o local do S3 onde você armazena o modelo otimizado criado pelo trabalho.s3://output-pathO método
optimize()exibe um objetoModel, que você pode usar para implantar o modelo em um endpoint. -
Quando o trabalho for concluído, implante o modelo. O seguinte exemplo usa o método
deploy():predictor = optimized_model.deploy( instance_type="instance-type", accept_eula=True, )Neste exemplo, substitua
por uma instância de ML, comoinstance-typeml.p4d.24xlarge.O método
deploy()exibe um objeto preditor, que você pode usar para enviar solicitações de inferência ao endpoint que hospeda o modelo.
Para otimizar com decodificação especulativa usando o modelo de esboço de SageMaker IA
Ao otimizar seu modelo com decodificação especulativa, você pode optar por usar um modelo de rascunho fornecido pela SageMaker IA ou usar o seu próprio. Os exemplos a seguir usam o modelo de rascunho de SageMaker IA.
Pré-requisito
Para otimizar com a decodificação especulativa e o modelo de esboço de SageMaker IA, você deve ativar o isolamento da rede ao definir seu modelo.
-
Para executar um trabalho de decodificação especulativa, use o método
optimize()e defina o argumentospeculative_decoding_config. O exemplo a seguir define aModelProviderchaveSAGEMAKERpara usar o modelo de rascunho fornecido pela SageMaker IA.optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, speculative_decoding_config={ "ModelProvider": "SAGEMAKER", }, )Neste exemplo, substitua
por uma instância de ML, comoinstance-typeml.p4d.24xlarge.O método
optimize()exibe um objetoModel, que você pode usar para implantar o modelo em um endpoint. -
Quando o trabalho for concluído, implante o modelo. O seguinte exemplo usa o método
deploy():predictor = optimized_model.deploy(accept_eula=True)O método
deploy()exibe um objeto preditor, que você pode usar para enviar solicitações de inferência ao endpoint que hospeda o modelo.
Como realizar a otimização com decodificação especulativa usando um modelo de rascunho personalizado
Antes de fornecer seu modelo de rascunho personalizado para a SageMaker IA, você deve primeiro fazer o upload dos artefatos do modelo para o Amazon S3.
Os exemplos a seguir demonstram uma forma possível de fornecer um modelo de rascunho personalizado. Os exemplos baixam o rascunho do modelo do Hugging Face Hub, fazem upload no Amazon S3 e fornecem o URI do S3 para o argumento speculative_decoding_config.
-
Se você quiser baixar um modelo do Hugging Face Hub, adicione a biblioteca
huggingface_hubao seu projeto e baixe um modelo com o métodosnapshot_download(). O seguinte exemplo baixa um modelo em um diretório local:import huggingface_hub huggingface_hub.snapshot_download( repo_id="model-id", revision="main", local_dir=download-dir, token=hf-access-token, )Neste exemplo, substitua
pelo ID de um modelo do Hugging Face Hub, comomodel-idmeta-llama/Meta-Llama-3-8B. Substituapor um diretório local. Substituadownload-dirpelo seu token de acesso de usuário. Para saber como obter seu token de acesso, consulte User access tokenshf-access-tokenna documentação da Hugging Face. Para ter mais informações sobre a biblioteca
huggingface_hub, consulte a Hub client libraryna documentação da Hugging Face. -
Para disponibilizar seu modelo baixado para a SageMaker IA, faça o upload para o Amazon S3. O seguinte exemplo faz upload do objeto para com o objeto
sagemaker_session:custom_draft_model_uri = sagemaker_session.upload_data( path=hf_local_download_dir.as_posix(), bucket=sagemaker_session.default_bucket(), key_prefix="prefix", )Neste exemplo, substitua
por um qualificador que ajude você a distinguir o modelo de rascunho no S3, comoprefixspec-dec-custom-draft-model.O método
upload_data()exibe o URI do S3 para os artefatos do modelo. -
Para executar um trabalho de decodificação especulativa, use o método
optimize()e defina o argumentospeculative_decoding_config. O seguinte exemplo define a chaveModelSourcepara o URI do S3 do modelo de rascunho personalizado:optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, speculative_decoding_config={ "ModelSource": custom_draft_model_uri + "/", }, )Neste exemplo, substitua
por uma instância de ML, comoinstance-typeml.p4d.24xlarge.O método
optimize()exibe um objetoModel, que você pode usar para implantar o modelo em um endpoint. -
Quando o trabalho for concluído, implante o modelo. O seguinte exemplo usa o método
deploy():predictor = optimized_model.deploy(accept_eula=True)O método
deploy()exibe um objeto preditor, que você pode usar para enviar solicitações de inferência ao endpoint que hospeda o modelo.
Como otimizar com a compilação
-
Para executar um trabalho de compilação, use o método
optimize()e defina o argumentocompilation_config. O seguinte exemplo usa a chaveOverrideEnvironmentpara definir as variáveis de ambiente necessárias no contêiner de otimização:optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, compilation_config={ "OverrideEnvironment": { "OPTION_TENSOR_PARALLEL_DEGREE": "24", "OPTION_N_POSITIONS": "8192", "OPTION_DTYPE": "fp16", "OPTION_ROLLING_BATCH": "auto", "OPTION_MAX_ROLLING_BATCH_SIZE": "4", "OPTION_NEURON_OPTIMIZE_LEVEL": "2", } }, output_path="s3://output-path", )Neste exemplo, defina
como um tipo de instância de ML com hardware acelerado. Por exemplo, para inferência acelerada com AWS inferência, você pode definir o tipo como uma instância Inf2, como.instance-typeml.inf2.48xlargeSubstituapelo caminho para o local do S3 onde você armazena o modelo otimizado criado pelo trabalho.s3://output-path -
Quando o trabalho for concluído, implante o modelo. O seguinte exemplo usa o método
deploy():predictor = optimized_model.deploy(accept_eula=True)O método
deploy()exibe um objeto preditor, que você pode usar para enviar solicitações de inferência ao endpoint que hospeda o modelo.
Como testar seu modelo com uma solicitação de inferência
-
Para enviar uma solicitação de inferência de teste ao modelo implantado, use o método
predict()de um objeto preditor. O seguinte exemplo passa a variávelsample_input, que também foi passada para a classeSchemaBuildernos exemplos para definir seu modelo:predictor.predict(sample_input)A entrada da amostra tem o prompt
"What is the largest planet in the solar system?". O métodopredict()exibe a resposta que o modelo gerou, conforme mostrado no seguinte exemplo:{'generated_text': ' Jupiter is the largest planet in the solar system. It is the fifth planet from the sun. It is a gas giant with . . .'}
Você pode usar o AWS SDK para Python (Boto3) para criar e gerenciar programaticamente trabalhos de otimização de inferência. Esta seção fornece exemplos de diferentes técnicas de otimização.
Pré-requisitos
Antes de criar um trabalho de otimização com o Boto3, verifique se você tem:
-
AWSCredenciais configuradas - Configure suas AWS credenciais com as permissões apropriadas
-
Criou um modelo de SageMaker IA (se estiver usando um modelo existente)
-
Dados de treinamento preparados no S3 (para otimização de decodificação especulativa, comprimento de contexto suportado de até 4096)
-
Função do IAM com as permissões necessárias — Sua função de execução deve ter permissões para acessar o S3 e criar recursos SageMaker
Exemplo: Crie um Job de Otimização com a Decodificação EAGLE Speculative (Llama 3.3 70B)
Este exemplo demonstra a criação de um trabalho de otimização para um grande modelo de linguagem usando a técnica de decodificação especulativa EAGLE:
import boto3 # Initialize SageMaker client sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') # Step 1: Create a SageMaker model (if not already created) model_response = sagemaker_client.create_model( ModelName='meta-llama-3-3-70b-instruct', ExecutionRoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', PrimaryContainer={ 'Image': '763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:<tag>', 'ModelDataSource': { 'S3DataSource': { 'S3Uri': 's3://my-bucket/models/Llama-3.3-70B-Instruct/', 'S3DataType': 'S3Prefix', 'CompressionType': 'None' } }, 'Environment': { 'SAGEMAKER_ENV': '1', 'SAGEMAKER_MODEL_SERVER_TIMEOUT': '3600' } } ) # Step 2: Create optimization job with speculative decoding optimization_response = sagemaker_client.create_optimization_job( OptimizationJobName='llama-optim-job-eagle-speculative-decoding', RoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', ModelSource={ 'SageMakerModel': { 'ModelName': 'meta-llama-3-3-70b-instruct' } }, DeploymentInstanceType='ml.p4d.24xlarge', # MaxInstanceCount specifies the maximum number of instances for distributed training MaxInstanceCount=4, OptimizationConfigs=[ { 'ModelSpeculativeDecodingConfig': { 'Technique': 'EAGLE', 'TrainingDataSource': { 'S3Uri': 's3://my-bucket/training_data/ultrachat_8k/', 'S3DataType': 'S3Prefix' } } } ], OutputConfig={ 'S3OutputLocation': 's3://my-bucket/optimized-models/llama-optim-output/', }, StoppingCondition={ 'MaxRuntimeInSeconds': 432000 # 5 days } ) print(f"Optimization job ARN: {optimization_response['OptimizationJobArn']}")
Exemplo: Criar um Job de Otimização a partir de artefatos do modelo S3 (Qwen3 32B)
Este exemplo mostra como criar um trabalho de otimização usando artefatos de modelo diretamente do S3:
import boto3 sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') # Create model from S3 artifacts model_response = sagemaker_client.create_model( ModelName='qwen3-32b', ExecutionRoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', PrimaryContainer={ 'Image': '763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:<tag>', 'Mode': 'SingleModel', 'ModelDataSource': { 'S3DataSource': { 'S3Uri': 's3://my-bucket/models/qwen3-32b/', 'S3DataType': 'S3Prefix', 'CompressionType': 'None' } }, 'Environment': { 'AWS_REGION': 'us-west-2' } } ) # Create optimization job with smaller training dataset optimization_response = sagemaker_client.create_optimization_job( OptimizationJobName='qwen3-optim-job-eagle', RoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', ModelSource={ 'SageMakerModel': { 'ModelName': 'qwen3-32b' } }, DeploymentInstanceType='ml.g6.48xlarge', MaxInstanceCount=4, OptimizationConfigs=[ { 'ModelSpeculativeDecodingConfig': { 'Technique': 'EAGLE', 'TrainingDataSource': { 'S3Uri': 's3://my-bucket/training_data/ultrachat_1k/', 'S3DataType': 'S3Prefix' } } } ], OutputConfig={ 'S3OutputLocation': 's3://my-bucket/optimized-models/qwen3-optim-output/', }, StoppingCondition={ 'MaxRuntimeInSeconds': 432000 # 5 days } ) print(f"Optimization job ARN: {optimization_response['OptimizationJobArn']}")
Exemplo: monitorar e gerenciar tarefas de otimização
Depois de criar um trabalho de otimização, você pode monitorar seu progresso e gerenciá-lo usando estes comandos:
import boto3 sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') # Describe optimization job to check status describe_response = sagemaker_client.describe_optimization_job( OptimizationJobName='llama-optim-job-eagle-speculative-decoding' ) print(f"Job Status: {describe_response['OptimizationJobStatus']}") # List all optimization jobs (with pagination) list_response = sagemaker_client.list_optimization_jobs( MaxResults=10, SortBy='CreationTime', SortOrder='Descending' ) print("\nRecent optimization jobs:") for job in list_response['OptimizationJobSummaries']: print(f"- {job['OptimizationJobName']}: {job['OptimizationJobStatus']}") # Stop a running optimization job if needed # sagemaker_client.stop_optimization_job( # OptimizationJobName='llama-optim-job-eagle-speculative-decoding' # ) # Delete a completed or failed optimization job # sagemaker_client.delete_optimization_job( # OptimizationJobName='llama-optim-job-eagle-speculative-decoding' # )
A decodificação especulativa com Eagle Heads executa quatro trabalhos de treinamento sequenciais. Cada trabalho produz uma saída que se torna a entrada para a próxima. Somente a saída do trabalho final é entregue ao seu bucket do S3. As saídas intermediárias são criptografadas e armazenadas em um bucket de serviços de SageMaker IA interno por até 20 dias. SageMaker A IA não tem permissões para descriptografá-los. Se você quiser que os dados intermediários sejam removidos antes desse período, verifique se seu trabalho foi concluído ou interrompido e, em seguida, abra um caso de suporte [https://docs.aws.amazon.com/awssupport/latest/user/case-management.html# creating-a-support-case] para que esses dados sejam excluídos. Inclua na solicitação o ID da sua AWS conta e o ARN do trabalho de otimização.
Limitações do modelo preliminar de SageMaker IA
Para qualquer modelo que você otimize com o modelo preliminar de SageMaker IA, esteja ciente dos requisitos, restrições e variáveis de ambiente suportadas.
Requisitos
Faça o seguinte:
-
Use um modelo fornecido pela SageMaker JumpStart.
-
Habilite o isolamento de rede para a implantação do modelo.
-
Se você implantar o modelo em um contêiner de inferência de modelo grande (LMI), use um DJLServing contêiner na versão 0.28.0 ou superior.
Para ver os contêineres disponíveis, consulte Contêineres de inferência de modelos grandes
no GitHub repositório Deep Learning Containers. -
Se você ajustar o JumpStart modelo, use o formato de sensores de segurança para os pesos do modelo.
Para ter mais informações sobre esse formato, consulte Safetensors
na documentação da Hugging Face.
Restrições
Você não pode fazer o seguinte:
-
Use o modelo em ambientes de teste locais que você cria com o modo local.
Para obter mais informações sobre o modo local, consulte Modo local
na documentação do SDK para SageMaker AI Python. -
Acesse o contêiner do modelo por meio do AWS Systems Manager Agente (Agente SSM). O SSM Agent fornece acesso em nível de shell ao seu contêiner de modelo para que você possa depurar processos e registrar comandos com a Amazon. CloudWatch
Para ter mais informações sobre esse recurso, consulte Acesso a contêineres por meio do SSM.
-
Configure o contêiner do modelo para gerar um despejo de núcleo se o processo falhar.
Para obter mais informações sobre despejos principais de contêineres de modelos, consulte ProductionVariantCoreDumpConfig.
-
Implante o modelo em endpoints multimodelo, endpoints de vários contêineres ou endpoints que hospedam componentes de inferência.
Para ter mais informações sobre esses tipos de endpoint, consulte Endpoints multimodelo, Endpoint com vários contêineres e Componentes de inferência.
-
Crie um pacote de modelo para o modelo. Você usa pacotes de modelos para criar modelos implantáveis nos quais você publica. AWS Marketplace
Para ter mais informações sobre esse recurso, consulte Criar um recurso de pacote de modelos.
-
Use o seu próprio código de inferência no contêiner do modelo.
-
Use um arquivo
requirements.txtno contêiner do modelo. Esse tipo de arquivo lista as dependências do pacote. -
Habilite o parâmetro
trust_remote_codedo Hugging Face.
Variáveis de ambiente compatíveis
É possível configurar o contêiner somente com as seguintes variáveis de ambiente:
-
Variáveis de ambiente comuns para contêineres de inferência de grandes modelos (LMI).
Para ter mais informações sobre essas variáveis, consulte Environment Variable Configurations
na documentação do contêiner de LMI. -
Variáveis de ambiente comuns para pacotes que o Hugging Face Hub fornece nos respectivos repositórios do Git.
Para os repositórios, consulte Hugging Face on
. GitHub -
Variáveis de ambiente comuns PyTorch e CUDA.
Para obter mais informações sobre essas variáveis, consulte Variáveis de ambiente Torch
na PyTorch documentação.