O conetor do Cloud Storage para o PyTorch é um produto de código aberto suportado pela Google que oferece uma integração direta do Cloud Storage com o PyTorch.
Vista geral
O conetor para PyTorch oferece vantagens para o carregamento de dados na preparação e para a criação de pontos de verificação e o carregamento de modelos:
Para o carregamento de dados na preparação, o conetor para PyTorch oferece as seguintes vantagens:
- O conetor para PyTorch contém otimizações para tornar o treino até três vezes mais rápido do que o PyTorch predefinido em conjuntos de dados compostos principalmente por ficheiros com menos de 1 MB.
- O conetor para o PyTorch implementa a primitiva de conjunto de dados do PyTorch que pode ser usada para ajudar a carregar de forma eficiente dados de preparação de contentores do Cloud Storage.
- Suporte para conjuntos de dados de estilo de mapa para padrões de acesso a dados aleatórios e conjuntos de dados de estilo iterável para padrões de acesso a dados de streaming.
- A capacidade de transformar os bytes não processados de dados transferidos no formato à sua escolha, o que permite que o PyTorch DataLoader funcione de forma flexível com matrizes NumPy ou tensores PyTorch.
Para a criação de pontos de verificação e o carregamento de modelos, o conector para o PyTorch oferece as seguintes vantagens:
- Uma interface de criação de pontos de verificação para guardar de forma conveniente e direta os pontos de verificação do modelo num contentor do Cloud Storage e carregar os pontos de verificação do modelo a partir do contentor.
- O conetor para PyTorch suporta a criação de pontos de verificação do PyTorch Lightning através da implementação
DatafluxLightningCheckpointdoCheckpointIOdo PyTorch Lightning. - O conector para PyTorch oferece implementações
StorageWritereStorageReaderpara utilização com a criação de pontos de verificação distribuídos do PyTorch. A biblioteca de demonstração do conetor para PyTorch inclui código de exemplo para usar isto numa carga de trabalho FSDP do PyTorch Lightning. - A criação de pontos de verificação de conetores inclui suporte para guardar pontos de verificação assíncronos com o Lightning e o PyTorch base.
Para mais informações, consulte a página de destino do GitHub do conetor para PyTorch.
Frameworks
O conetor para PyTorch é suportado nas seguintes versões do framework:
- Python 3.8 ou superior
- PyTorch Lightning 2.0 ou superior
- PyTorch 2.3.1 ou superior
Começar
Para usar o conector para PyTorch, tem de ter o seguinte:
- Um contentor do Cloud Storage que contém os dados com os quais quer trabalhar.
- Consulte a utilização de objetos compostos para ver definições recomendadas adicionais para o contentor.
- As seguintes autorizações para trabalhar com os dados armazenados no contentor:
storage.objects.createstorage.objects.liststorage.objects.getstorage.objects.delete, se pretender usar transferências compostas
Estas autorizações têm de ser concedidas à conta que o conector para PyTorch vai usar para autenticação através de uma função do IAM, como utilizador de objetos de armazenamento.
Instalação
Para instalar o conetor para PyTorch, use o seguinte comando:
pip install gcs-torch-dataflux
Configuração
Tem de fornecer a autenticação para usar o conector para PyTorch Credenciais predefinidas da aplicação através de um dos seguintes métodos:
- Ao executar o conetor para PyTorch numa VM do Compute Engine, as credenciais predefinidas da aplicação usam automaticamente a conta de serviço anexada à VM por predefinição. Para mais informações, consulte o artigo Escolha um método de autenticação de cargas de trabalho.
- As Credenciais padrão da aplicação também podem ser configuradas manualmente. Pode iniciar sessão diretamente através da Google Cloud CLI:
gcloud auth application-default login
Exemplos
Pode encontrar um conjunto completo de exemplos para trabalhar com o conetor para PyTorch no diretório de demonstração do repositório GitHub do conetor para PyTorch. Os exemplos incluem:
- Um Jupyter Notebook básico inicial (alojado pelo Google Colab).
- Uma explicação detalhada da carga de trabalho de preparação da segmentação de imagens integral.
- Um exemplo ponto a ponto e o bloco de notas para a integração do PyTorch Lightning.