

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

# Obtenha recomendações generativas de implantação de inferência de IA
<a name="generative-ai-inference-recommendations-get-started"></a>

Os trabalhos de recomendação de IA analisam seu modelo e as características da carga de trabalho para gerar configurações de implantação otimizadas para custo, latência ou taxa de transferência. O serviço avalia os tipos de instância, aplica otimizações como decodificação especulativa e compara cada configuração na infraestrutura real da GPU.

## Pré-requisitos
<a name="generative-ai-inference-recommendations-get-started-prereqs"></a>

Antes de criar um trabalho de recomendação, você precisa do seguinte:
+ Modele artefatos armazenados no Amazon S3 HuggingFace em formato de ponto de verificação com pesos SafeTensor 
+ Um bucket Amazon S3 para saída de recomendação
+ Uma função de execução do AWS Identity and Access Management (IAM) que SageMaker concede à IA acesso aos artefatos do modelo e ao bucket de saída

## Etapa 1: criar um trabalho de recomendação
<a name="generative-ai-inference-recommendations-get-started-create"></a>

Um trabalho de recomendação analisa seu modelo e gera recomendações de implantação. Você especifica a localização do modelo, a localização da saída, a configuração da carga de trabalho e uma meta de desempenho.

**Python (boto3)**

```
response = client.create_ai_recommendation_job(
    AIRecommendationJobName="my-recommendation-job",
    ModelSource={
        "S3": {
            "S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/",
        }
    },
    OutputConfig={
        "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/"
    },
    PerformanceTarget={
        "Constraints": [
            {"Metric": "ttft-ms"}
        ]
    },
    AIWorkloadConfigIdentifier="my-recommendation-workload",
    RoleArn="arn:aws:iam::111122223333:role/ExampleRole",
)
print(response["AIRecommendationJobArn"])
```

**AWS CLI**

```
aws sagemaker create-ai-recommendation-job \
  --ai-recommendation-job-name "my-recommendation-job" \
  --model-source '{"S3": {"S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/"}}' \
  --output-config '{"S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/"}' \
  --performance-target '{"Constraints": [{"Metric": "ttft-ms"}]}' \
  --ai-workload-config-identifier "my-recommendation-workload" \
  --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \
  --region us-west-2
```

Você também pode, opcionalmente, especificar os seguintes parâmetros:

`ComputeSpec`  
Restrinja os tipos de instância a serem avaliados (máximo três). Por exemplo: `{"InstanceTypes": ["ml.g5.12xlarge", "ml.p4d.24xlarge"]}`

`OptimizeModel`  
Defina como `true` para permitir otimizações do modelo, como decodificação especulativa.

`InferenceSpecification`  
Especifique a estrutura de inferência. Valores válidos: `LMI`, `VLLM`.

## Etapa 2: Monitorar o status do trabalho
<a name="generative-ai-inference-recommendations-get-started-monitor"></a>

Pesquise o status do trabalho até que ele atinja um estado terminal.

**Python (boto3)**

```
import time

while True:
    response = client.describe_ai_recommendation_job(
        AIRecommendationJobName="my-recommendation-job"
    )
    status = response["AIRecommendationJobStatus"]
    print(f"Status: {status}")
    if status in ("Completed", "Failed", "Stopped"):
        break
    time.sleep(30)
```

**AWS CLI**

```
aws sagemaker describe-ai-recommendation-job \
  --ai-recommendation-job-name "my-recommendation-job" \
  --region us-west-2
```

## Etapa 3: revisar as recomendações
<a name="generative-ai-inference-recommendations-get-started-results"></a>

Quando o trabalho é concluído, a resposta de descrição inclui uma `Recommendations` matriz. Cada recomendação contém uma configuração pronta para implantação com as seguintes informações:

`DeploymentConfiguration`  
URI da imagem do contêiner, tipo de instância, contagem de instâncias e variáveis de ambiente. Você pode usar essa configuração para implantar diretamente em um endpoint de SageMaker IA.

`ExpectedPerformance`  
Métricas de desempenho validadas, incluindo Time to First Token (TTFT), latência da solicitação em P90 e P99, taxa de transferência em tokens por segundo e taxa de transferência da solicitação.

`OptimizationDetails`  
Técnicas de otimização aplicadas, como decodificação especulativa ou ajuste do kernel, com seus parâmetros de configuração.

As seguintes técnicas de otimização podem ser aplicadas:

Decodificação especulativa  
A decodificação especulativa acelera a geração de texto processando vários tokens em paralelo, em vez de um token por vez. Um especulador leve propõe vários tokens candidatos em uma única etapa, e o modelo primário então os verifica juntos em uma única passagem, mantendo os candidatos que concordam com sua própria distribuição e descartando o resto. O especulador é treinado para se alinhar à distribuição de dados do modelo primário para que mais de suas propostas sejam aceitas, o que se traduz diretamente em tokens mais úteis produzidos por passagem direta. A distribuição de saída do modelo primário é preservada, portanto, a qualidade da resposta permanece inalterada. O resultado são maiores tokens de saída por segundo e menor latência entre tokens (ITL), melhorando assim suas métricas de produtividade.

Ajuste do kernel  
O ajuste do kernel começa com a análise do gráfico de execução do modelo para identificar kernels críticos de desempenho que são bons candidatos para ajuste, como os kernels de atenção e operadores fundidos. Seus parâmetros de lançamento e colocação em blocos são então ajustados para que a implementação corresponda melhor ao hardware da GPU de destino e ao padrão de tráfego esperado, como simultaneidade. Esses parâmetros afetam a reutilização da memória, a localidade do cache e o paralelismo, melhorando a eficiência da execução. O número de estágios do pipeline usados para carregar dados e computação também é ajustado, ajudando a sobrepor a movimentação da memória à computação. Ao ajustar esses parâmetros para a combinação específica de modelo, hardware e carga de trabalho de serviço, o ajuste do kernel melhora a taxa de transferência e a latência, garantindo que a GPU seja totalmente utilizada.

As seguintes métricas de meta de desempenho estão disponíveis:

`ttft-ms`  
Tempo até o primeiro token em milissegundos.

`throughput`  
Tokens por segundo.

`cost`  
Custo por hora da configuração de implantação.

Cada métrica na `ExpectedPerformance` resposta inclui um `Stat` campo indicando a medida estatística, a e uma opcional`Unit`. `Value` As estatísticas comuns incluem: `average` `p50``p90`,`p95`,`p99`,`max`,, `min` e.

## Gerencie recursos de recomendação
<a name="generative-ai-inference-recommendations-get-started-manage"></a>

Use as operações a seguir para gerenciar suas tarefas de recomendação e configurações de carga de trabalho.

```
# List recommendation jobs
response = client.list_ai_recommendation_jobs(MaxResults=10)
for job in response["AIRecommendationJobs"]:
    print(f"{job['AIRecommendationJobName']} - {job['AIRecommendationJobStatus']}")

# Stop a running job
client.stop_ai_recommendation_job(
    AIRecommendationJobName="my-recommendation-job"
)

# Delete a job (must be in a terminal state)
client.delete_ai_recommendation_job(
    AIRecommendationJobName="my-recommendation-job"
)

# List workload configurations
response = client.list_ai_workload_configs(MaxResults=10)
for config in response["AIWorkloadConfigs"]:
    print(f"{config['AIWorkloadConfigName']} - {config['AIWorkloadConfigArn']}")

# Delete a workload configuration
client.delete_ai_workload_config(
    AIWorkloadConfigName="my-recommendation-workload"
)
```