Aprendizagem pessoal com IA
e orientação prática
Sapo pintado em alumínio

DualPipe: um algoritmo paralelo bidirecional em pipeline para melhorar a eficiência do treinamento de modelos de IA em grande escala (DeepSeek Open Source Week Day 4)

Introdução geral

O DualPipe é uma tecnologia de código aberto desenvolvida pela equipe do DeepSeek-AI com o objetivo de melhorar a eficiência do treinamento de modelos de IA em grande escala. Trata-se de um inovador algoritmo paralelo bidirecional em pipeline, usado principalmente para obter uma sobreposição completa de computação e comunicação no treinamento de modelos DeepSeek-V3 e R1, reduzindo efetivamente as "bolhas" (ou seja, o tempo de espera) no pipeline e, assim, acelerando o processo de treinamento. Desenvolvido por Jiashi Li, Chengqi Deng e Wenfeng Liang, o projeto tem código aberto no GitHub e está atraindo a atenção da comunidade de IA. A principal vantagem do DualPipe é que ele permite que o treinamento de modelos seja executado com eficiência em clusters de GPUs de vários nós por meio de agendamento otimizado, tornando-o adequado para cenários de treinamento de modelos de trilhões de parâmetros e oferecendo novas possibilidades para pesquisadores e desenvolvedores de IA. O DualPipe oferece um novo paradigma paralelo para pesquisadores e desenvolvedores de IA.

Lista de funções

  • Programação em pipeline bidirecionalSuporte à entrada simultânea de micro lotes de ambas as extremidades do pipeline, permitindo um alto grau de sobreposição entre computação e comunicação.
  • Redução de bolhas de ar na linha de montagemRedução do tempo de espera ocioso durante o treinamento por meio de otimização algorítmica.
  • Oferece suporte ao treinamento de modelos em larga escalaA versão mais recente do DeepSeek-V3 é a primeira de seu tipo no mundo e pode ser usada para treinar trilhões de parâmetros em modelos muito grandes, como o DeepSeek-V3.
  • Sobreposição de computação e comunicaçãoProcessamento paralelo de tarefas de computação e comunicação em forward e backpropagation para melhorar a utilização da GPU.
  • Suporte a código abertoImplementação completa do Python: é fornecida uma implementação completa do Python, que os desenvolvedores podem baixar, modificar e integrar.

Usando a Ajuda

O DualPipe é uma ferramenta avançada para desenvolvedores e, como um projeto de código aberto do GitHub, não tem uma interface gráfica autônoma, mas está disponível como uma base de código. Abaixo está um guia de uso detalhado para ajudar os desenvolvedores a começar rapidamente e integrá-lo em seus projetos de treinamento de IA.

Processo de instalação

A instalação do DualPipe requer um ambiente básico de Python e de aprendizagem profunda. Aqui estão as etapas:

  1. Preparação ambiental
    • Certifique-se de que o Python 3.8 ou posterior esteja instalado em seu sistema.
    • Instale o Git para fazer download do código do GitHub.
    • Recomenda-se usar um ambiente virtual para evitar conflitos de dependência com o seguinte comando:
      python -m venv dualpipe_env
      source dualpipe_env/bin/activate # Linux/Mac
      dualpipe_env\Scripts\activate # Windows
      
  2. Repositório de código clone
    Faça o download do repositório DualPipe localmente digitando o seguinte comando no terminal:

    git clone https://github.com/deepseek-ai/DualPipe.git
    cd DualPipe
  1. Instalação de dependências
    O DualPipe depende de bibliotecas comuns de aprendizagem profunda; as dependências específicas não estão listadas explicitamente no repositório, mas, com base em sua funcionalidade, presume-se que ele exija um ambiente como o PyTorch. Você pode tentar o seguinte comando para instalar as dependências básicas:

    pip install torch torchvision
    

    Se você encontrar erros sobre a falta de bibliotecas específicas, siga as instruções para continuar a instalação.

  2. Verificar a instalação
    Como o DualPipe é um código algorítmico e não um aplicativo autônomo, não é possível executar a verificação diretamente. No entanto, ela pode ser verificada examinando os arquivos de código (por exemplo dualpipe.py) para confirmar que o download foi concluído.

Uso

No centro do DualPipe está um algoritmo de agendamento que os desenvolvedores precisam integrar às estruturas de treinamento de modelos existentes (como PyTorch ou DeepSpeed). Veja como ele funciona:

1. compreensão da estrutura do código

  • show (um ingresso) DualPipe o código principal pode estar localizado na pasta dualpipe.py ou em um documento semelhante.
  • Leia os comentários do código e o relatório técnico do DeepSeek-V3 (link na descrição do repositório GitHub) para entender a lógica do algoritmo. O relatório menciona exemplos de agendamento do DualPipe (por exemplo, 8 níveis de pipeline e 20 microbatches).

2. integração à estrutura de treinamento

  • Preparação de modelos e dadosSupondo que você já tenha um modelo e um conjunto de dados baseados no PyTorch.
  • Modificação do ciclo de treinamentoIncorporar a lógica de programação do DualPipe no código de treinamento. Aqui está um exemplo simplificado:
    Exemplo de pseudocódigo do #
    from dualpipe import DualPipeScheduler # nome hipotético do módulo
    import torch
    # Inicializar o modelo e os dados
    model = MyModel().cuda()
    otimizador = torch.optim.Adam(model.parameters())
    data_loader = MyDataLoader()
    O # inicializa o agendador DualPipe
    scheduler = DualPipeScheduler(num_ranks=8, num_micro_batches=20)
    Loop de treinamento do #
    for epoch in range(num_epochs):
    scheduler.schedule(model, data_loader, optimizer) # call DualPipe scheduler
    
  • A implementação precisa ser adaptada ao código real, e é recomendável consultar os exemplos no repositório do GitHub (se houver).

3. configuração do ambiente de hardware

  • O DualPipe foi projetado para clusters de GPUs de vários nós e é recomendado para uso com pelo menos 8 GPUs (por exemplo, NVIDIA H800).
  • Certifique-se de que o cluster seja compatível com InfiniBand ou NVLink para aproveitar ao máximo a otimização da comunicação.

4. operação e comissionamento

  • Execute o script de treinamento no terminal:
    python train_with_dualpipe.py
    
  • Observe a saída do registro e verifique se a computação e a comunicação se sobrepõem com sucesso. Se houver um gargalo de desempenho, ajuste o número de micro lotes ou o nível do pipeline.

Operação da função em destaque

Programação em pipeline bidirecional

  • Configuração no arquivo de configuração ou no código num_ranks(número de níveis de pipeline) e num_micro_batches(Número de micro-lotes).
  • Exemplo de configuração: 8 níveis, 20 micro lotes, consulte o diagrama de programação no relatório técnico.

sobreposição de comunicações computacionais

  • Sem a necessidade de intervenção manual, o DualPipe faz automaticamente os cálculos positivos (por exemplo F) com o cálculo inverso (por exemplo B) de tarefas de comunicação sobrepostas.
  • Verifique os registros de data e hora nos logs para confirmar que o tempo de comunicação está oculto nos cálculos.

Redução de bolhas de ar na linha de montagem

  • A configuração ideal foi encontrada ajustando o tamanho do microlote (por exemplo, de 20 para 16) e observando a alteração no tempo de treinamento.

advertência

  • Requisitos de hardwareAs vantagens do DualPipe não podem ser totalmente utilizadas com uma única placa, portanto, recomenda-se um ambiente com várias GPUs.
  • Suporte à documentaçãoA página do GitHub está atualmente com poucas informações, portanto, recomenda-se estudá-la em profundidade em conjunto com o relatório técnico do DeepSeek-V3 (arXiv: 2412.19437).
  • Suporte à comunidadePerguntas: faça perguntas na página de problemas do GitHub ou consulte as discussões relacionadas na plataforma X (por exemplo, as postagens de @deepseek_ai).

Seguindo essas etapas, os desenvolvedores podem integrar o DualPipe em seus projetos e aumentar significativamente a eficiência do treinamento de modelos em grande escala.

CDN1
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " DualPipe: um algoritmo paralelo bidirecional em pipeline para melhorar a eficiência do treinamento de modelos de IA em grande escala (DeepSeek Open Source Week Day 4)

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil