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. Escolha 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 consiste em empacotar modelos treinados e o 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, além de aumentar o tempo necessário para aceleração e pré-processamento.
Para obter informações sobre os limites de tamanho de imagem da plataforma, consulte Qual é o limite de tamanho para imagens de GPU?
Para obter informações sobre pré-processamento de imagens e status da função, consulte Status e invocação de função para imagens personalizadas.
Casos de uso
Modelos relativamente pequenos, com 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. Essa configuração exige permissões em vários produtos de nuvem. Além disso, durante a inicialização a frio de uma instância de função, a plataforma leva alguns segundos para estabelecer o acesso à VPC.
Gerenciamento de conteúdo limitado: Monte o sistema de arquivos NAS antes do uso. Esse método exige um fluxo de trabalho empresarial para distribuir arquivos de modelo à instância do NAS.
Sem suporte para implantações ativo-ativo ou multizona de disponibilidade (AZ). Para obter mais informações, consulte Perguntas frequentes sobre o NAS.
Descrição
Em cenários com muitos contêineres iniciando e carregando 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 determinados sistemas de arquivos NAS ao expandir sua capacidade.
Ao usar o NAS para armazenar arquivos de modelo, utilize um sistema de arquivos NAS Performance. Esse tipo fornece alta largura de banda inicial de leitura, cerca de 600 MB/s. Para obter mais informações, consulte Sistemas de arquivos NAS de uso geral.
Casos de uso
Indicado quando há necessidade de desempenho rápido de inicialização 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 possui limite de largura de banda superior ao do NAS, o que reduz a probabilidade de contenção entre instâncias de função. Para obter mais informações, consulte Limites. Ative também o OSS加速器 para obter maior throughput.
-
Múltiplos métodos de gerenciamento:
Oferece canais de acesso como console e APIs.
Disponibiliza diversas ferramentas locais de gerenciamento de armazenamento de objetos. Para obter mais informações, consulte Ferramentas de desenvolvedor.
Utilize o recurso de replicação entre regiões do OSS para sincronizar e gerenciar modelos.
Configuração simples: Diferentemente de um sistema de arquivos NAS, montar um bucket do OSS em uma instância de função não exige 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 de 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, cujo throughput e latência dependem desse serviço. Tal característica torna o método mais adequado para acessar poucos arquivos grandes, cenário comum no carregamento de modelos, mas inadequado para muitos arquivos pequenos.
-
A montagem do OSS é mais adequada para leituras e gravações sequenciais do que para operações aleatórias. Ao carregar arquivos grandes, as leituras sequenciais aproveitam totalmente 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 a partir de um ponto de montagem do OSS. Para obter mais informações, consulte load_file: load tensors ordered by their offsets.
Caso não seja possível ajustar o padrão de E/S da aplicação, leia o arquivo sequencialmente uma vez antes de carregá-lo. Essa ação pré-carrega o conteúdo no PageCache do sistema, permitindo que a aplicação carregue o arquivo a partir dele.
Casos de uso
Muitas instâncias carregam modelos em paralelo, exigindo maior throughput de armazenamento para evitar contenção de largura de banda.
Necessidade de armazenamento localmente redundante ou implantação em várias regiões.
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 de 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 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 produto.
| |
Com base nessa comparação, seguem 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:
Caso necessite de alta compatibilidade com APIs de sistema de arquivos, ou se a aplicação usar leituras aleatórias sem possibilidade de modificação para acessar o PageCache de memória, utilize um sistema de arquivos NAS Performance.
Em cenários com muitos contêineres de GPU iniciando simultaneamente, use o OSS加速器 para evitar o gargalo de largura de banda de ponto único do NAS.
Para implantações em várias regiões, utilize o OSS e o OSS加速器 a fim de 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 ao comparar o tempo de carregamento de arquivos em diferentes cenários. Um tempo menor indica melhor desempenho.
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 NAS Performance, com capacidade correspondente a um throughput máximo de 600 MB/s
Versão do safetensors
0.5.3-
A tabela a seguir lista os modelos e respectivos tamanhos utilizados 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 mostra 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 de teste mostram que o throughput de leitura de um Endpoint padrão do OSS frequentemente atinge 600 MB/s ou mais.
Impacto de leituras aleatórias: Para alguns arquivos, como o relativamente grande flux1-dev.safetensors e o menor revAnimated_v122.safetensors, o tempo de carregamento no OSS padrão é significativamente maior do que no acelerador OSS e no NAS. Isso ocorre porque a plataforma otimiza leituras aleatórias para o acelerador OSS, enquanto o NAS apresenta 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 simultaneidade
Este teste utiliza 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 simultaneidade 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 NAS Performance, com capacidade correspondente a um 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 simultaneidade. 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 simultaneidade. 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, sendo a do acelerador OSS ainda mais significativa. O throughput do OSS padrão frequentemente ultrapassa 600 MB/s, e o do acelerador OSS atinge o valor esperado (veja a Figura 1).
Estabilidade: Em cenários de alta simultaneidade, 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.