Este tópico descreve métodos comuns de armazenamento de modelos para implantar aplicações de inferência de IA no Function Compute e compara vantagens, desvantagens e cenários aplicáveis.
Informações básicas
Para obter informações sobre tipos de armazenamento para funções, consulte Selecione um tipo de armazenamento para uma função. Os dois tipos a seguir são adequados para armazenar modelos em instâncias aceleradas por GPU.
Também é possível colocar arquivos de modelo diretamente na imagem de contêiner da função.
Cada método possui características e casos de uso específicos. Selecione a opção mais adequada com base nos requisitos, no ambiente de execução e no fluxo de trabalho da equipe para equilibrar eficiência e custo.
Distribuir modelos com imagens de contêiner
Uma das abordagens mais diretas é empacotar modelos treinados e código da aplicação associada em uma única imagem de contêiner. Assim, os arquivos do modelo são distribuídos junto com a imagem.
Vantagens e desvantagens
Vantagens:
Praticidade: após criar a imagem, execute-a diretamente para inferência sem configurações adicionais.
Consistência: garante versão uniforme do modelo em todos os ambientes e evita problemas causados por inconsistências entre eles.
Desvantagens:
Tamanho da imagem: as imagens podem ficar muito grandes, especialmente no caso de modelos extensos.
Atualizações demoradas: cada atualização do modelo exige reconstruir e redistribuir a imagem, processo que pode ser lento.
Descrição
Para melhorar a velocidade de inicialização a frio das instâncias de função, a plataforma pré-processa as imagens de contêiner. Imagens muito grandes podem exceder o limite de tamanho da plataforma e aumentar o tempo necessário para aceleração e pré-processamento.
Para obter informações sobre limites de tamanho de imagem da plataforma, consulte What is the size limit for GPU images?
Para obter informações sobre pré-processamento de imagens e status da função, consulte Function status and invocation for custom images.
Casos de uso
Modelos relativamente pequenos, como algumas centenas de megabytes.
Modelos com alterações pouco frequentes.
Se os arquivos de modelo forem grandes, atualizados frequentemente ou fizerem a imagem de contêiner exceder o limite de tamanho da plataforma, separe o modelo da imagem.
Armazenar modelos no File Storage NAS
O Function Compute permite montar um sistema de arquivos NAS em um diretório especificado na instância da função. A aplicação carrega os arquivos de modelo ao acessar o diretório do ponto de montagem do NAS.
Vantagens e desvantagens
Vantagens:
O NAS oferece melhor compatibilidade com aplicações do que o Filesystem in Userspace (FUSE), pois fornece interfaces de arquivo
POSIXmais completas e maduras.Capacidade: o NAS fornece capacidade de armazenamento na escala de petabytes.
Desvantagens:
Dependência de VPC: configure o acesso à VPC para que as funções acessem os pontos de montagem do NAS. Isso exige configurar permissões em vários produtos cloud. Além disso, durante a inicialização a frio, a plataforma leva alguns segundos para estabelecer o acesso à VPC para a instância.
Gerenciamento de conteúdo limitado: monte o sistema de arquivos NAS antes do uso. Esse método exige criar um fluxo de trabalho de negócios para distribuir arquivos de modelo para a instância NAS.
Sem suporte para implantações ativo-ativo ou multizona de disponibilidade (AZ). Para obter mais informações, consulte NAS FAQ.
Descrição
Em cenários onde muitos contêineres iniciam e carregam modelos simultaneamente, o gargalo de largura de banda do NAS é facilmente atingido. Isso aumenta o tempo de inicialização da instância e pode causar falhas devido a tempos limite. Por exemplo, um Horizontal Pod Autoscaler (HPA) agendado cria snapshots de GPU em lotes, ou um pico de tráfego aciona a criação de muitas instâncias elásticas aceleradas por GPU.
Visualize o monitoramento de desempenho do NAS (throughput de leitura) no console.
Aumente o throughput de leitura e gravação de certos sistemas de arquivos NAS aumentando a capacidade.
Ao usar o NAS para armazenar arquivos de modelo, utilize um sistema de arquivos Performance NAS. Esse tipo fornece largura de banda inicial de leitura alta, de cerca de 600 MB/s. Para obter mais informações, consulte General-purpose NAS file systems.
Casos de uso
Recomendado quando é necessário desempenho de inicialização rápida ao usar instâncias elásticas aceleradas por GPU no Function Compute.
Armazenar modelos no OSS
O Function Compute permite montar um bucket do OSS em um diretório especificado na instância da função. As aplicações carregam modelos diretamente do ponto de montagem do OSS.
Vantagens
Largura de banda: o OSS tem limite de largura de banda maior que o NAS, o que torna a contenção entre instâncias menos provável. Para obter mais informações, consulte Limits. Ative o OSS Accelerator para obter maior throughput.
-
Múltiplos métodos de gerenciamento:
Oferece canais de acesso como console e APIs.
Disponibiliza várias ferramentas locais de gerenciamento de armazenamento de objetos. Para obter mais informações, consulte Developer Tools.
Use o recurso cross-region replication do OSS para sincronizar e gerenciar modelos.
Configuração simples: diferentemente do sistema de arquivos NAS, montar um bucket do OSS em uma instância de função não requer conectividade VPC. O recurso fica pronto para uso imediatamente após a configuração.
Custo: considerando apenas capacidade e throughput, o OSS geralmente é mais econômico que o NAS.
Descrição
A montagem do OSS utiliza o mecanismo de sistema de arquivos em modo de usuário FUSE. Quando uma aplicação acessa um arquivo em um ponto de montagem do OSS, a plataforma converte a solicitação em uma chamada de API do OSS para acessar os dados. Portanto, a montagem do OSS apresenta as seguintes características:
Executa em modo de usuário e consome a cota de recursos da instância da função, como CPU, memória e armazenamento temporário. Por isso, esse método é mais adequado para instâncias aceleradas por GPU com especificações elevadas.
O acesso aos dados usa a API do OSS. O throughput e a latência dependem do service de API do OSS. Isso torna o método mais adequado para acessar poucos arquivos grandes, comum em cenários de carregamento de modelos, mas não indicado para muitos arquivos pequenos.
-
A montagem do OSS é mais adequada para leituras e gravações sequenciais do que aleatórias. Ao carregar arquivos grandes, as leituras sequenciais aproveitam o mecanismo de pré-busca do sistema de arquivos para alcançar melhor throughput de rede e menor latência.
Por exemplo, com arquivos safetensors, usar uma versão otimizada para leituras sequenciais reduz significativamente o tempo de carregamento de um ponto de montagem do OSS. Para obter mais informações, consulte load_file: load tensors ordered by their offsets.
Se não for possível ajustar o padrão de E/S da aplicação, leia o arquivo sequencialmente uma vez antes de carregá-lo. Isso pré-carrega o conteúdo no PageCache do sistema. Em seguida, a aplicação carrega o arquivo a partir do PageCache.
Casos de uso
Muitas instâncias carregam modelos em paralelo. Isso exige maior throughput de armazenamento para evitar contenção de largura de banda.
Necessidade de armazenamento com redundância local ou implantação multirregião.
Acesso a poucos arquivos grandes com padrão de E/S de leitura sequencial, típico em cenários de carregamento de modelos.
Resumo
|
Item de comparação |
Distribuir com imagem |
Montar NAS |
Montar OSS |
|
Tamanho do modelo |
|
Nenhuma |
Nenhuma |
|
Throughput |
Mais rápido |
|
|
|
Compatibilidade |
Boa |
Boa |
|
|
Adaptabilidade do padrão de E/S |
Boa |
Boa |
Adequado para cenários de leitura e gravação sequenciais. Leituras aleatórias devem ser convertidas em acesso ao PageCache para melhor throughput. |
|
Método de gerenciamento |
Imagem de contêiner |
Monte dentro de uma VPC e depois utilize. |
|
|
Multi-AZ |
Suportado |
Não suportado |
Suportado |
|
Custo |
Sem taxas extras |
O NAS geralmente é um pouco mais caro que o OSS. Consulte as regras de faturamento atuais de cada product.
|
|
Com base nessa comparação, estas são as práticas recomendadas para armazenar modelos em instâncias aceleradas por GPU do Function Compute, considerando diferentes padrões de uso, volumes de inicialização simultânea de contêineres e necessidades de gerenciamento:
Se for necessária alta compatibilidade com APIs de sistema de arquivos, ou se a aplicação usar leituras aleatórias e não puder ser modificada para acessar o PageCache de memória, use um sistema de arquivos Performance NAS.
Em cenários com muitos contêineres GPU iniciando simultaneamente, use o OSS Accelerator para evitar o gargalo de largura de banda de ponto único do NAS.
Em cenários de implantação multirregião, use o OSS e o OSS Accelerator para reduzir a complexidade do gerenciamento de modelos e da sincronização entre regiões.
Dados de teste
Os dois testes a seguir analisam diferenças de desempenho entre vários meios de armazenamento comparando o tempo de carregamento de arquivos em diferentes cenários. Menor tempo de carregamento indica melhor desempenho de armazenamento.
Método 1: Tempo de carregamento de arquivos para diferentes modelos
Este teste mede o tempo necessário para carregar arquivos de pesos de modelo safetensors de diferentes meios de armazenamento para a memória da GPU. Os resultados servem para comparar o desempenho de diferentes métodos de armazenamento para vários modelos.
Ambiente de teste
Tipo de instância: placa Ada, 8 núcleos, 64 GB de memória
Capacidade do acelerador OSS: 10 TB, com throughput máximo de 3.000 MB/s
Especificações do NAS: sistema de arquivos Performance NAS, com capacidade correspondente a throughput máximo de 600 MB/s
Versão do safetensors
0.5.3-
A tabela a seguir lista os modelos e tamanhos usados neste teste.
Modelo
Tamanho (GB)
Anything-v4.5-pruned-mergedVae.safetensors
3,97
Anything-v5.0-PRT-RE.safetensors
1,99
CounterfeitV30_v30.safetensors
3,95
Deliberate_v2.safetensors
1,99
DreamShaper_6_NoVae.safetensors
5,55
cetusMix_Coda2.safetensors
3,59
chilloutmix_NiPrunedFp32Fix.safetensors
3,97
flux1-dev.safetensors
22,2
revAnimated_v122.safetensors
5,13
sd_xl_base_1.0.safetensors
6,46
Resultados
Na figura a seguir, o eixo vertical representa o tempo de carregamento e o horizontal representa os diferentes modelos e os três métodos de armazenamento: ossfs,accel, ossfs e nas.
|
Cor da barra |
Método de armazenamento |
Característica técnica |
|
Azul |
ossfs,accel |
Endpoint do acelerador OSS |
|
Laranja |
ossfs |
Endpoint padrão do OSS |
|
Cinza |
nas |
Ponto de montagem do sistema de arquivos NAS |

Conclusão do teste
Throughput: a principal vantagem do OSS sobre o NAS é o desempenho de throughput. Dados do teste mostram que o throughput de leitura de um Endpoint padrão do OSS frequentemente atinge 600 MB/s ou mais.
Impacto das leituras aleatórias: para alguns arquivos, como o grande flux1-dev.safetensors e o menor revAnimated_v122.safetensors, o tempo de carregamento no OSS padrão é significativamente maior que no acelerador OSS e no NAS. Isso ocorre porque a plataforma otimiza leituras aleatórias para o acelerador OSS, e o NAS tem desempenho mais previsível que o OSS padrão nesses cenários.
Método 2: Tempo de carregamento de arquivos sob diferentes níveis de concorrência
Este teste usa o modelo grande flux1-dev.safetensors de 22,2 GB para avaliar a distribuição de latência ao carregar o arquivo na memória da GPU sob níveis de concorrência de 4, 8 e 16.
Ambiente de teste
Tipo de instância: Ada.3, 8 núcleos, 64 GB de memória
Capacidade do acelerador OSS: 80 TB, com throughput máximo de 24.000 MB/s
Especificações do NAS: sistema de arquivos Performance NAS, com capacidade correspondente a throughput máximo de 600 MB/s
Versão do safetensors
0.5.3
Resultados
A Figura 1 mostra os tempos de carregamento máximo, médio e mediano para diferentes métodos de armazenamento, incluindo ossfs,accel,N, ossfs,N e nas,N, sob diferentes níveis de concorrência. N indica o número mínimo de instâncias.
|
Método de armazenamento |
Característica técnica |
|
ossfs,accel,N |
Endpoint do acelerador OSS |
|
ossfs,N |
Endpoint padrão do OSS |
|
nas,N |
Ponto de montagem do sistema de arquivos NAS |
|
Cor da barra |
Valor representado |
|
Azul |
Tempo médio |
|
Laranja |
Tempo mediano |
|
Cinza |
Tempo máximo |

A Figura 2 mostra o desvio padrão para diferentes métodos de armazenamento, incluindo ossfs,accel,N, ossfs,N e nas,N, sob diferentes níveis de concorrência. N indica o número mínimo de instâncias.

Conclusão do teste
Throughput: a principal vantagem do OSS sobre o NAS é o desempenho de throughput, e a vantagem do acelerador OSS é ainda mais significativa. O throughput do OSS padrão frequentemente excede 600 MB/s, e o do acelerador OSS pode atingir o valor esperado (veja a Figura 1).
Estabilidade: em cenários de alta concorrência, o OSS padrão oferece latência média de carregamento menor que o NAS, mas com desempenho menos consistente, conforme indica o desvio padrão maior. Nesse caso, o throughput do NAS é mais previsível que o do OSS padrão (veja a Figura 2).
Observação: a E/S aleatória gerada ao carregar diferentes arquivos safetensors varia. Isso impacta mais significativamente os tempos de carregamento a partir de um ponto de montagem padrão do OSS do que a partir de um ponto de montagem do NAS.