Repolode
DLLXW

DLLXW/baby-llama2-chinese

Pipeline de pré-treinamento do zero e SFT para um modelo pequeno no estilo LLaMA2 em chinês, executável em uma única GPU de 24 GB.

Estrelas
2,923
Forks
354
Issues abertas
42
Último commit
há 2 meses

O que é?

Baby-Llama2-Chinese é um projeto voltado ao aprendizado que cria, de ponta a ponta, um modelo de linguagem pequeno no estilo LLaMA2 em chinês. Ele abrange a tokenização de corpora, o pré-treinamento, o fine-tuning supervisionado (SFT) com conjuntos de dados de instruções e a inferência. O objetivo declarado é produzir um modelo de chat com capacidade básica de responder a perguntas em chinês, usando uma única GPU de 24 GB.

O pipeline usa o tokenizer do ChatGLM2-6B, cujo vocabulário de 64.793 tokens pode ser armazenado em uint16, e processa corpora de pré-treinamento como Wikipedia-zh, BaiduBaiKe, C4_zh e WuDaoCorpora em arquivos binários. O pré-treinamento é executado com torchrun em várias GPUs, e os scripts de SFT criam amostras de prompt e resposta, calculando a loss apenas sobre a resposta. Há checkpoints pré-treinados de 92M a 218M de parâmetros disponíveis para download, além de várias versões de SFT para conversas gerais e médicas.

O repositório também inclui scripts de limpeza de dados para filtrar textos curtos e deduplicar com MinHash ou SimHash, além de um infer.py unificado que carrega checkpoints antigos e detecta automaticamente as dimensões do modelo. Um modelo de recompensa e uma etapa de aprendizado por reforço estão listados como planejados, mas ainda não foram implementados.

Recursos principais

  • 01Reúne em um único repositório a configuração do tokenizer, o pré-treinamento e o SFT com todos os parâmetros.
  • 02Pré-treina um modelo em chinês de 92M a 218M de parâmetros usando uma única GPU de 24 GB.
  • 03Pré-processa corpora em arquivos binários uint16 com o tokenizer do ChatGLM2-6B.
  • 04Inclui scripts de deduplicação com MinHash e SimHash para limpeza de corpora.
  • 05Oferece o infer.py, que carrega checkpoints de pré-treinamento e SFT e detecta as dimensões automaticamente.
  • 06Disponibiliza para download pesos pré-treinados e ajustados por fine-tuning.

Casos de uso

  • Aprender como um modelo pequeno no estilo LLaMA é pré-treinado e ajustado por fine-tuning do zero.
  • Experimentar com corpora de pré-treinamento em chinês em hardware com recursos limitados de GPU.
  • Comparar como o tamanho do modelo e o do vocabulário afetam a loss de pré-treinamento.
  • Criar um modelo de chat pequeno e especializado em um domínio, como um modelo de perguntas e respostas médicas, a partir de dados de SFT existentes.

Início rápido

  1. 1

    Baixe o corpus de pré-treinamento tokenizado pelo link do Baidu Netdisk (cerca de 118 GB).

  2. 2

    Coloque os dados baixados no diretório ./data e execute o script de processamento de dados.

    python data_process.py
  3. 3

    Execute o pré-treinamento com torchrun em 4 GPUs (configuração de exemplo do README).

    torchrun --standalone --nproc_per_node=4 pretrain.py
  4. 4

    Execute o fine-tuning SFT.

    python sft.py

Antes de usar

  • A configuração de exemplo de pré-treinamento do README pressupõe várias GPUs, e o autor observa que o hardware com 4 3090 limita o tamanho do modelo e do corpus.
  • O corpus completo de pré-treinamento tem cerca de 118 GB e precisa ser baixado pelo Baidu Netdisk.
  • A maioria dos downloads de dados e modelos está hospedada no Baidu Netdisk, o que pode ser inconveniente fora da China.
  • A documentação está principalmente em chinês, e a etapa de aprendizado por reforço ainda está marcada como pendente.

Tópicos

Perguntas frequentes

O que é baby-llama2-chinese?
Pipeline de pré-treinamento do zero e SFT para um modelo pequeno no estilo LLaMA2 em chinês, executável em uma única GPU de 24 GB. Baby-Llama2-Chinese é um projeto voltado ao aprendizado que cria, de ponta a ponta, um modelo de linguagem pequeno no estilo LLaMA2 em chinês. Ele abrange a tokenização de corpora, o pré-treinamento, o fine-tuning supervisionado (SFT) com conjuntos de dados de instruções e a inferência. O objetivo declarado é produzir um modelo de chat com capacidade básica de responder a perguntas em chinês, usando uma única GPU de 24 GB.
baby-llama2-chinese é gratuito? Qual é a licença?
baby-llama2-chinese é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
baby-llama2-chinese ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de baby-llama2-chinese foi em 13 de ago. de 2026.
Para que posso usar baby-llama2-chinese?
Aprender como um modelo pequeno no estilo LLaMA é pré-treinado e ajustado por fine-tuning do zero. Experimentar com corpora de pré-treinamento em chinês em hardware com recursos limitados de GPU. Comparar como o tamanho do modelo e o do vocabulário afetam a loss de pré-treinamento. Criar um modelo de chat pequeno e especializado em um domínio, como um modelo de perguntas e respostas médicas, a partir de dados de SFT existentes.
Como instalar baby-llama2-chinese?
Baixe o corpus de pré-treinamento tokenizado pelo link do Baidu Netdisk (cerca de 118 GB). Coloque os dados baixados no diretório ./data e execute o script de processamento de dados.: python data_process.py Execute o pré-treinamento com torchrun em 4 GPUs (configuração de exemplo do README).: torchrun --standalone --nproc_per_node=4 pretrain.py Execute o fine-tuning SFT.: python sft.py
Onde consigo baby-llama2-chinese?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/DLLXW/baby-llama2-chinese

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados