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á.
Armazenamento em cache de pesos de modelos e cache de imagens
Quando você expande uma implantação de inferência, cada novo pod precisa extrair a imagem do contêiner do servidor de inferência de um registro. Ele também deve baixar os pesos do modelo do armazenamento remoto (Amazon S3 ou Amazon FSx) antes de poder atender ao tráfego. Para modelos de linguagem grande, o download dos pesos dos modelos e a extração de imagens de contêiner são os que mais contribuem para a latência da inicialização a frio.
Para eliminar esses gargalos durante a expansão, configure um ou os dois seguintes mecanismos de armazenamento em cache local do host no Amazon Inference: SageMaker HyperPod
- Armazenamento em cache de pesos do modelo ()
weightsCache -
Pre-populates modele arquivos de peso no armazenamento NVMe local do host em cada nó elegível. Os pods de inferência no mesmo nó carregam pesos do armazenamento local em vez de baixá-los da fonte remota do modelo, eliminando downloads redundantes entre os pods.
- Armazenamento em cache de imagens ()
imageCache -
Pre-pulls a imagem do contêiner do servidor de inferência nos nós de destino para que novos pods comecem sem esperar por uma imagem fria.
Você configura os dois mecanismos de armazenamento em cache por meio do modelCacheConfig campo em sua JumpStartModel implantação InferenceEndpointConfig ou implantação.
Você pode ativar o cache de pesos e o cache de imagens de forma independente ou em conjunto. Ambos os recursos funcionam com todas as fontes de modelos do Amazon SageMaker HyperPod Inference, incluindo SageMaker JumpStart implantações da Amazon (modelos abertos e fechados) e modelos personalizados do Amazon S3 ou do Amazon FSx.
Pré-requisitos
Antes de ativar o armazenamento em cache, verifique o seguinte:
- Tipo de instância com armazenamento NVMe local
-
O cache de pesos do modelo armazena os pesos no armazenamento NVMe local do host (por padrão).
/opt/dlami/nvmeSeu tipo de instância deve fornecer armazenamento NVMe local no configurado.hostPath - Capacidade suficiente de NVMe
-
Certifique-se de que o nó tenha armazenamento local suficiente para seu modelo. Cada implantação usa seu próprio diretório de cache isolado, portanto, várias implantações em cache no mesmo nó consomem seu próprio armazenamento.
- Operador de inferência
-
Seu cluster deve ter uma versão do operador de HyperPod inferência que ofereça suporte ao cache de modelos. Se o
modelCacheConfigcampo não for reconhecido, atualize o complemento do operador de inferência para a versão mais recente.
Importante
Se seu tipo de instância não tiver armazenamento NVMe local configuradohostPath, o armazenamento em cache dos pesos do modelo não aquece o cache e os pods de inferência voltam a baixar os pesos da fonte remota do modelo. Verifique se seu tipo de instância fornece armazenamento NVMe local antes de ativar esse recurso.
Configurar o cache de pesos do modelo e o cache de imagens
Adicione um modelCacheConfig bloco ao spec seu JumpStartModel recurso InferenceEndpointConfig ou recurso. O exemplo a seguir habilita o armazenamento em cache dos pesos do modelo e o cache de imagens.
spec: # ... model source, worker, and TLS configuration ... modelCacheConfig: weightsCache: enabled: true hostPath: /opt/dlami/nvme imageCache: enabled: true
O modelCacheConfig campo suporta os seguintes subcampos.
| Campo | Padrão | Description |
|---|---|---|
weightsCache.enabled |
false |
Se o cache de pesos do modelo local do host está ativado. Quandotrue, o operador preenche previamente os pesos do modelo no armazenamento local do host e os monta em pods de inferência. |
weightsCache.hostPath |
/opt/dlami/nvme |
O caminho do host em que os pesos do modelo em cache são armazenados. Deve ser um caminho absoluto não vazio de no máximo 255 caracteres. |
imageCache.enabled |
false |
Se o cache de imagens do contêiner está ativado. Quandotrue, o operador puxa previamente a imagem do contêiner do servidor de inferência para os nós de destino. |
Como funciona o armazenamento em cache de pesos de modelo
Quando weightsCache.enabled étrue, o operador baixa os pesos do modelo da fonte remota do modelo (Amazon S3 ou Amazon FSx) para hospedar o armazenamento NVMe local em cada nó qualificado antes que os pods de inferência comecem a fornecer tráfego. Os pods de inferência montam os pesos em cache somente para leitura e carregam o modelo do armazenamento local em vez de baixá-lo repetidamente da fonte remota.
O operador preenche o cache em nós que correspondem às restrições de agendamento da implantação da inferência e rotula cada nó quando o cache está aquecido. A implantação de inferência usa a afinidade de nós preferencial nesse rótulo, portanto, os pods são programados em nós quentes quando disponíveis, mas ainda podem ser programados em outro lugar.
- Isolamento
-
Cada implantação usa um diretório de cache isolado, por implantação, abaixo do configurado
hostPath, para que várias implantações de modelos no mesmo nó não interfiram umas nas outras. - Fallback de falha de cache
-
Se um pod estiver programado em um nó em que o cache ainda não está disponível, a implantação volta a carregar os pesos do modelo diretamente da fonte remota do modelo, para que as implantações permaneçam funcionais mesmo sem um cache aquecido.
- Substituição de nós
-
Se um nó for substituído (por exemplo, após uma falha), o operador deverá aquecer o cache no novo nó novamente antes que os pods sejam programados preferencialmente para ele. Enquanto isso, os nós quentes existentes continuam atendendo ao tráfego.
- Limpeza ao excluir
-
Quando você exclui a implantação, o operador remove os arquivos de peso em cache dos nós que preencheu.
Como funciona o cache de imagens
Quando imageCache.enabled étrue, o operador puxa previamente a imagem do contêiner do servidor de inferência para os nós de destino. Como a imagem já está presente no nó, os novos pods de inferência evitam a extração fria da imagem que, de outra forma, atrasaria a inicialização do pod. Isso é especialmente benéfico para imagens grandes de servidores de inferência e para implantações que se expandem com frequência.
O cache de imagens é independente do armazenamento em cache dos pesos do modelo. Você pode ativá-lo sozinho ou combiná-lo com o cache de pesos para reduzir o tempo de extração e download de imagens durante a expansão.
Verifique se o cache está funcionando
Use as verificações a seguir para confirmar se o cache está ativo para sua implantação.
Verifique os rótulos dos nós para ver se há um cache quente
Quando o cache de um nó está aquecido, o operador aplica um rótulo pronto para cache nele. O cache de pesos do modelo usa um rótulo com o prefixo e o cache de imagens usa o prefixo inference.sagemaker.aws.amazon.com/weights-cache-ready.inference.sagemaker.aws.amazon.com/image-cache-ready., cada um com o sufixo UID da configuração do cache.
kubectl get nodes --show-labels | grep "cache-ready"
Nenhuma saída significa que nenhum nó aqueceu o cache ainda.
Verifique os eventos do pod para a montagem do cache
Inspecione um pod de inferência e confirme se ele monta o caminho do cache local do host somente para leitura. Se o volume do HostPath estiver ausente, o pod está carregando pesos do armazenamento remoto.
kubectl describe podinference-pod-name-nnamespace
Verifique os registros do operador
Analise os registros do operador de inferência em busca de erros ou atividades de aquecimento do cache.
kubectl logs -n hyperpod-inference-system deployment/hyperpod-inference-controller-manager | grep -i "cache"
Solução de problemas
| Sintomas | Possível causa | Resolução |
|---|---|---|
| Os pods começam lentamente, mesmo que o armazenamento em cache esteja ativado. | O caminho do NVMe não existe no tipo de instância. | Verifique se o tipo de instância tem armazenamento NVMe local e se hostPath corresponde ao ponto de montagem real. |
| O cache nunca esquenta. | Espaço em disco insuficiente no caminho do host. | Verifique a capacidade disponível emhostPath. Modelos grandes podem exigir um armazenamento local substancial. |
| Nenhum nó é rotulado como pronto para cache. | O download do cache falhou ou a fonte remota está inacessível. | Verifique os registros do operador em busca de erros de download e verifique o acesso à rede ao Amazon S3 ou ao Amazon FSx. |
| Várias implantações causam pressão de disco em um nó. | As implantações em cache compartilham o mesmo nó de armazenamento NVMe. | Use grupos de instâncias separados ou reduza o número de implantações simultâneas em cache por nó. |
Considerações
-
O armazenamento em cache de pesos de modelo exige tipos de instância com armazenamento NVMe local. EBS-only instâncias não são suportadas.
-
O tamanho máximo do modelo armazenável em cache é limitado pela capacidade NVMe disponível no tipo de instância.
-
O tempo de aquecimento do cache depende do tamanho do modelo e da taxa de transferência da rede para a fonte remota do modelo.