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á.
Implantar um modelo pré-otimizado
Alguns modelos JumpStart são pré-otimizados pela SageMaker IA, o que significa que você pode implantar versões otimizadas desses modelos sem primeiro criar um trabalho de otimização de inferência.
Para ver a lista de modelos com opções pré-otimizadas, consulte Pre-optimized JumpStart modelos.
Use o procedimento a seguir para implantar um JumpStart modelo pré-otimizado usando o Amazon SageMaker Studio.
Como implantar um modelo pré-otimizado
-
No Studio, no menu de navegação à esquerda, escolha JumpStart.
-
Na página Todos os modelos públicos, escolha um dos modelos pré-otimizados.
-
Na página de detalhes do portal, escolha Implantar.
-
Na página de implantação, 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 obter mais informações, consulte End-user contratos de licença.
-
Em Nome do endpoint e Contagem de instâncias inicial, aceite os valores padrão ou defina valores personalizados.
-
Em Tipo de instância, mantenha o valor padrão. Do contrário, você não poderá implantar uma configuração pré-otimizada.
-
Em Models (Modelos), expanda a configuração do modelo. O Studio mostra uma tabela que apresenta as configurações pré-otimizadas que você pode escolher. Cada opção tem métricas de latência e throughput. Escolha a opção que melhor atenda às necessidades da sua aplicação.
-
Escolha Implantar.
Você pode implantar um modelo pré-otimizado usando o SDK SageMaker AI Python em seu projeto. Primeiro, defina uma instância Model usando a classe ModelBuilder. Em seguida, você use o método set_deployment_config() para definir a configuração pré-otimizada que deseja implantar. Depois, use o método build() para criar o modelo. Por fim, use o método deploy() para implantá-lo em um endpoint de inferência.
Para obter mais informações sobre as classes e os métodos usados nos exemplos a seguir, consulte APIs na documentação
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 os módulos 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 -
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. Forneça 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 Crie um modelo na Amazon SageMaker AI com 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.
Como recuperar métricas de referência
-
Para determinar qual configuração pré-otimizada você deseja implantar, consulte as opções que a SageMaker IA oferece. O seguinte exemplo as exibe:
model_builder.display_benchmark_metrics()O método
display_benchmark_metrics()imprime uma tabela da seguinte forma:| Instance Type | Config Name | Concurrent Users | Latency, TTFT (P50 in sec) | Throughput (P50 in tokens/sec/user) | |:----------------|:--------------|-------------------:|-----------------------------:|--------------------------------------:| | ml.g5.48xlarge | lmi-optimized | 1 | 2.25 | 49.70 | | ml.g5.48xlarge | lmi-optimized | 2 | 2.28 | 21.10 | | ml.g5.48xlarge | lmi-optimized | 4 | 2.37 | 14.10 | . . . | ml.p4d.24xlarge | lmi-optimized | 1 | 0.10 | 137.40 | | ml.p4d.24xlarge | lmi-optimized | 2 | 0.11 | 109.20 | | ml.p4d.24xlarge | lmi-optimized | 4 | 0.13 | 85.00 | . . .Na primeira coluna, a tabela lista os possíveis tipos de instância que você pode usar para hospedar o JumpStart modelo escolhido. Para cada tipo de instância, em
Config Name, ela lista o nome das configurações pré-otimizadas. As configurações que a SageMaker IA fornece sãolmi-optimizednomeadas. Para cada tipo e configuração de instância, a tabela apresenta métricas de referência. Essas métricas indicam o throughput e a latência que o modelo comportará para números diferentes de usuários simultâneos. -
Com base nas métricas de referência, escolha o tipo de instância e o nome da configuração que melhor atendam às suas necessidades de desempenho. Você usará esses valores quando criar uma configuração de implantação.
Como implantar um modelo pré-otimizado
-
Crie uma configuração de implantação. O exemplo a seguir usa uma instância
ModelBuilder. Ele passa um tipo de instância e um nome de configuração para o métodoset_deployment_config():model_builder.set_deployment_config( config_name="", instance_type="config-name", )instance-typeSubstitua
por um nome de configuração da tabela, comoconfig-namelmi-optimized. Substituapor um tipo de instância da tabela, comoinstance-typeml.p4d.24xlarge. -
Compile seu modelo. O exemplo a seguir usa o método
.build()da instânciaModelBuilder:optimized_model = model_builder.build()O método
.build()exibe uma instânciaModelimplantável. -
Implante seu modelo em um endpoint de inferência. O exemplo a seguir usa o método
.deploy()da instânciaModel:predictor = optimized_model.deploy(accept_eula=True)O método
deploy()exibe uma instânciaPredictor, que você pode usar para enviar solicitações de inferência ao modelo.
Como testar seu modelo com uma solicitação de inferência
-
Depois de implantar seu modelo em um endpoint de inferência, teste as respectivas predições. O seguinte exemplo envia uma solicitação de inferência usando a instância
:Predictorpredictor.predict(sample_input)O modelo exibe o texto que ele gera com uma resposta como a seguinte:
{'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 . . .'}
Pre-optimized JumpStart modelos
A seguir estão os JumpStart modelos que têm configurações pré-otimizadas.
Meta
-
Llama 3.1 70B Instruct
-
Llama 3.1 70B
-
Llama 3.1 405B Instruct FP8
-
Llama 3.1 405B FP8
-
Llama 3 8B Instruct
-
Llama 3 8B
-
Llama 3 70B Instruct
-
Llama 3 70B
-
Llama 2 70B Chat
-
Llama 2 7B Chat
-
Llama 2 13B Chat
HuggingFace
-
Mixtral 8x7B Instruct
-
Mixtral 8x7B
-
Mistral 7B Instruct
-
Mistral 7B
Pre-compiled JumpStart modelos
Para alguns modelos e configurações, a SageMaker IA fornece modelos pré-compilados para instâncias específicas de AWS Inferentia e AWS Trainium. Para isso, se você criar um trabalho de otimização de compilação e escolher ml.inf2.48xlarge ou ml.trn1.32xlarge como o tipo de instância de implantação, a AI buscará os artefatos compilados. SageMaker Como o trabalho usa um modelo já compilado, ele é concluído rapidamente sem executar a compilação do zero.
A seguir estão os JumpStart modelos para os quais a SageMaker IA tem modelos pré-compilados:
Meta
-
Llama3 8B
-
Llama3 70B
-
Llama2 7B
-
Llama2 70B
-
Llama2 13B
-
Code Llama 7B
-
Code Llama 70B
HuggingFace
-
Mistral 7B