Repolode
DLLXW

DLLXW/baby-llama2-chinese

Pipeline desde cero de preentrenamiento y SFT para un modelo pequeño de estilo LLaMA2 en chino, ejecutable en una sola GPU de 24 GB.

Estrellas
2,923
Forks
354
Issues abiertos
42
Último commit
hace 2 meses

¿Qué es?

Baby-Llama2-Chinese es un proyecto educativo que construye de principio a fin un modelo de lenguaje pequeño en chino, de estilo LLaMA2. Abarca la tokenización de corpus, el preentrenamiento, el ajuste fino supervisado (SFT) con conjuntos de datos de instrucciones y la inferencia. El objetivo declarado es crear un modelo conversacional con capacidad básica para responder preguntas en chino usando una sola GPU de 24 GB.

El pipeline utiliza el tokenizador de ChatGLM2-6B, cuyo vocabulario de 64.793 tokens cabe en almacenamiento uint16, y procesa corpus de preentrenamiento como Wikipedia-zh, BaiduBaiKe, C4_zh y WuDaoCorpora para convertirlos en archivos binarios. El preentrenamiento se ejecuta mediante torchrun en varias GPU, y los scripts de SFT generan ejemplos de instrucciones y respuestas donde la pérdida se calcula únicamente sobre la respuesta. Se publican para descargar checkpoints preentrenados de entre 92 M y 218 M de parámetros, además de varias versiones SFT para conversaciones generales y médicas.

El repositorio también incluye scripts de limpieza de datos para filtrar textos cortos y deduplicar mediante MinHash o SimHash, además de un infer.py unificado que carga checkpoints históricos y detecta automáticamente las dimensiones del modelo. El modelo de recompensa y la etapa de aprendizaje por refuerzo figuran como planes, pero aún no están implementados.

Funciones clave

  • 01Abarca la configuración del tokenizador, el preentrenamiento y el SFT de todos los parámetros en un solo repositorio.
  • 02Preentrena un modelo en chino de entre 92 M y 218 M de parámetros con una sola GPU de 24 GB.
  • 03Preprocesa corpus y los convierte en archivos binarios uint16 con el tokenizador de ChatGLM2-6B.
  • 04Incluye scripts de deduplicación con MinHash y SimHash para limpiar corpus.
  • 05Proporciona infer.py, que carga checkpoints de preentrenamiento y SFT y detecta automáticamente sus dimensiones.
  • 06Publica pesos preentrenados y ajustados para descargar.

Casos de uso

  • Aprender cómo se preentrena y ajusta desde cero un modelo pequeño de estilo LLaMA.
  • Experimentar con corpus de preentrenamiento en chino con recursos de GPU limitados.
  • Comparar cómo afectan el tamaño del modelo y del vocabulario a la pérdida de preentrenamiento.
  • Crear un modelo conversacional pequeño y especializado en un dominio, como uno médico de preguntas y respuestas, a partir de datos SFT existentes.

Inicio rápido

  1. 1

    Descarga el corpus de preentrenamiento tokenizado desde el enlace de Baidu Netdisk (unos 118 GB).

  2. 2

    Coloca los datos descargados en el directorio ./data y ejecuta el script de procesamiento de datos.

    python data_process.py
  3. 3

    Ejecuta el preentrenamiento con torchrun en 4 GPU (configuración de ejemplo del README).

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

    Ejecuta el ajuste fino SFT.

    python sft.py

Antes de usarlo

  • La configuración de ejemplo para el preentrenamiento del README requiere varias GPU; el autor señala que el hardware con 4 3090 limita el tamaño del modelo y del corpus.
  • El corpus completo de preentrenamiento ocupa unos 118 GB y debe descargarse desde Baidu Netdisk.
  • La mayoría de las descargas de datos y modelos están alojadas en Baidu Netdisk, lo que puede resultar incómodo fuera de China.
  • La documentación está principalmente en chino y la etapa de aprendizaje por refuerzo sigue marcada como pendiente.

Temas

Preguntas frecuentes

¿Qué es baby-llama2-chinese?
Pipeline desde cero de preentrenamiento y SFT para un modelo pequeño de estilo LLaMA2 en chino, ejecutable en una sola GPU de 24 GB. Baby-Llama2-Chinese es un proyecto educativo que construye de principio a fin un modelo de lenguaje pequeño en chino, de estilo LLaMA2. Abarca la tokenización de corpus, el preentrenamiento, el ajuste fino supervisado (SFT) con conjuntos de datos de instrucciones y la inferencia. El objetivo declarado es crear un modelo conversacional con capacidad básica para responder preguntas en chino usando una sola GPU de 24 GB.
¿baby-llama2-chinese es gratuito? ¿Qué licencia tiene?
baby-llama2-chinese es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿baby-llama2-chinese sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de baby-llama2-chinese fue el 13 ago 2026.
¿Para qué puedo usar baby-llama2-chinese?
Aprender cómo se preentrena y ajusta desde cero un modelo pequeño de estilo LLaMA. Experimentar con corpus de preentrenamiento en chino con recursos de GPU limitados. Comparar cómo afectan el tamaño del modelo y del vocabulario a la pérdida de preentrenamiento. Crear un modelo conversacional pequeño y especializado en un dominio, como uno médico de preguntas y respuestas, a partir de datos SFT existentes.
¿Cómo se instala baby-llama2-chinese?
Descarga el corpus de preentrenamiento tokenizado desde el enlace de Baidu Netdisk (unos 118 GB). Coloca los datos descargados en el directorio ./data y ejecuta el script de procesamiento de datos.: python data_process.py Ejecuta el preentrenamiento con torchrun en 4 GPU (configuración de ejemplo del README).: torchrun --standalone --nproc_per_node=4 pretrain.py Ejecuta el ajuste fino SFT.: python sft.py
¿Dónde consigo baby-llama2-chinese?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/DLLXW/baby-llama2-chinese

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados