Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

Chitu (Red Rabbit): uma estrutura de raciocínio de modelo de linguagem grande e de alto desempenho lançada pela equipe da Tsinghua

Introdução geral

Chitu é uma estrutura de raciocínio de código aberto desenvolvida pela equipe PACMAN da Universidade de Tsinghua, chamada "Red Rabbit", que foi especialmente projetada para executar modelos de linguagem grandes. O Chitu é compatível com uma variedade de hardware, como GPUs da NVIDIA e chips domésticos, e pode ser usado de forma autônoma a clusters de grande escala.Seu destaque é a inferência com modelos FP8, que pode reduzir drasticamente os custos, como a execução do DeepSeek-671B em um A800, que usa metade das GPUs e é mais de três vezes mais rápido que o vLLM.O código está disponível publicamente no GitHub e pode ser baixado e usado gratuitamente por empresas ou indivíduos. Essa é uma ferramenta pronta para uso em ambientes de produção e é adequada para equipes que desejam economizar dinheiro, mas também desejam desempenho.

Chitu (Red Rabbit): uma estrutura de raciocínio de modelo de linguagem grande e de alto desempenho da equipe Tsinghua-1


 

Lista de funções

  • Ele é compatível com a inferência de modelos FP8 e BF16 e pode ser executado em GPUs antigas e chips domésticos com baixo custo e alto desempenho.
  • Adapta-se a uma ampla variedade de hardware, de CPUs puras a GPUs, como NVIDIA A800, H20, etc., a clusters de grande escala.
  • Otimize a velocidade de inferência com o CUDA Graph para obter resultados mais rápidos em uma única solicitação.
  • Fornece uma interface de serviço que permite que os modelos sejam chamados diretamente por meio de solicitações HTTP.
  • Oferece suporte ao raciocínio distribuído de vários nós, adequado para o processamento de tarefas de alto volume.
  • Código-fonte aberto que as empresas podem alterar ou otimizar conforme necessário.

 

Usando a Ajuda

Processo de instalação

A instalação da Chitu não é complicada, mas requer alguma preparação. Abaixo estão as etapas detalhadas:

  1. Preparação do ambiente
    • Sistema: Ubuntu 22.04 recomendado, máquina com GPU NVIDIA (por exemplo, A800 ou H20).
    • Software: instale o Git, Python 3.10, CUDA 12.1 (ajustado para a versão de sua GPU), PyTorch 2.1.
    • Exemplo de comando:
      sudo apt update && sudo apt install -y git python3.10 python3-pip
      pip install -U torch==2.1 --index-url https://download.pytorch.org/whl/cu121
      
  2. Código de download
    • Clone o código de Chitu localmente usando o Git:
      git clone --recursive https://github.com/thu-pacman/chitu
      cd chitu
      
  3. Instalação de dependências
    • Instale os pacotes Python e o ambiente de compilação necessários:
      pip install -r requirements-build.txt
      pip install flash-attn
      
  4. compilar e instalar
    • Defina os parâmetros de compilação (ajuste TORCH_CUDA_ARCH_LIST de acordo com sua GPU, por exemplo, 8.0 para A800) e compile:
      TORCH_CUDA_ARCH_LIST=8.0 CHITU_SETUP_JOBS=4 MAX_JOBS=4 pip install --no-build-isolation .
      
  5. Verificação da instalação
    • Faça um teste para ter certeza de que está tudo bem:
      torchrun --nproc_per_node 1 test/single_req_test.py
      

Como usar

Depois que Chitu for carregado, você poderá iniciar o serviço a partir da linha de comando ou executar um único teste. Veja como fazer isso:

Iniciar serviço de raciocínio

  1. Configuração de caminhos de modelo
    • Prepare os arquivos do modelo, por exemplo, DeepSeek-R1, em um diretório local (por exemplo /data/DeepSeek-R1).
    • no comando de edição models.ckpt_dir O parâmetro aponta para o caminho do modelo.
  2. Início dos serviços
    • Inicie o serviço autônomo com o torchrun, escutando na porta 21002:
      export WORLD_SIZE=1
      torchrun --nproc_per_node 1 chitu/serve.py \
      serve.port=21002 \\
      models=DeepSeek-R1 \\
      models.ckpt_dir=/data/DeepSeek-R1 \\
      infer.use_cuda_graph=True \\
      request.max_new_tokens=100
      
  3. Serviços de teste
    • Envie uma solicitação com curl e veja se o modelo responde corretamente:
      curl localhost:21002/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{"messages": [{"role": "user", "content": "Hello, what is Chitu?"}]}'
      
    • O resultado retornado estará no formato JSON, contendo a resposta do modelo.

Execução de um único teste de raciocínio

  • Se não quiser iniciar o serviço, você pode apenas testar a saída do modelo:
    torchrun --nproc_per_node 1 test/single_req_test.py \\
    models=DeepSeek-R1 \\
    models.ckpt_dir=/data/DeepSeek-R1 \\
    request.max_new_tokens=64
  • A saída é exibida no terminal, informando o que o modelo gerou.

Raciocínio distribuído em vários nós

  1. Preparar várias máquinas
    • Certifique-se de que o Chitu e as dependências sejam carregados em cada máquina e que os arquivos de modelo estejam no armazenamento compartilhado.
  2. Iniciando serviços distribuídos
    • Execute-o em 2 máquinas com 8 GPUs cada:
      torchrun --nnodes 2 --nproc_per_node 8 test/single_req_test.py \
      request.max_new_tokens=64 \
      infer.pp_size=2 \
      infer.tp_size=8 \\
      models=DeepSeek-R1 \ \ \
      models.ckpt_dir=/data/DeepSeek-R1
      
  3. Verificação do efeito
    • Após uma execução com vários nós, a saída será mais rápida do que em uma única máquina, o que é adequado para lidar com solicitações de grande volume.

Operação da função em destaque

Economize dinheiro e velocidade com os modelos FP8

  • O Chitu é compatível com modelos de formato FP8, que usam menos GPUs e são mais rápidos do que o BF16.
  • Operação: Adicionar na inicialização infer.soft_fp8=TruePor exemplo, se o modelo estiver no formato FP8, o modelo deverá estar no formato FP8. Por exemplo:
    torchrun --nproc_per_node 1 chitu/serve.py \
    serve.port=21002 \\
    models=DeepSeek-R1 \\
    models.ckpt_dir=/data/DeepSeek-R1 \\
    infer.soft_fp8=True
    

Acelerado com CUDA Graph

  • Solicitações únicas podem ser aceleradas com o CUDA Graph, com a adição do parâmetro infer.use_cuda_graph=True.
  • Efeito de teste: execute uma única inferência e compare a diferença de velocidade com e sem a adição.

teste de desempenho

  • A Chitu vem com ferramentas de benchmarking para medir a taxa de transferência e a latência:
    python benchmarks/benchmark_serving.py \
    --modelo "deepseek-r1" \
    --iterações 10 \
    --seq-len 10 \
    ---base-url http://localhost:21002
    
  • O resultado mostrará o número de token números para ajudá-lo a otimizar sua alocação.

advertência

  • Se você usar vários nós, a rede deverá ser estável ou cairá.
  • A memória insuficiente da GPU pode resultar em um erro de OOM, reduza-a. infer.max_seq_len ou com menos nós.
  • O suporte a chips domésticos ainda está em processo de otimização, talvez seja necessário alterar o código para se adaptar.

Chitu não é difícil de usar, basta seguir as etapas e você estará pronto para começar a trabalhar. Sua documentação e comunidade também estão no GitHub, portanto, você pode levantar uma questão se tiver dúvidas.

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Chitu (Red Rabbit): uma estrutura de raciocínio de modelo de linguagem grande e de alto desempenho lançada pela equipe da Tsinghua

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