DeepSeek-V3/resumen.md
2025-03-25 17:29:28 -03:00

3.5 KiB

Resumen del Proyecto DeepSeek-V3

Estructura del Proyecto

  1. README.md: Proporciona una descripción general del modelo, su arquitectura, pre-entrenamiento, post-entrenamiento, resultados de evaluación, y cómo ejecutar el modelo localmente.

  2. README_WEIGHTS.md: Documenta la estructura de los archivos de pesos del modelo, incluyendo los nuevos campos en config.json, la estructura de los pesos del modelo principal y los módulos de predicción de múltiples tokens (MTP).

  3. README_WEIGHTS_ES.md: Versión en español de README_WEIGHTS.md.

  4. README_ES.md: Versión en español de README.md.

  5. LICENSE-MODEL: Licencia del modelo DeepSeek, que incluye restricciones de uso y condiciones de distribución.

  6. LICENSE-CODE: Licencia MIT para el código del proyecto.

  7. .gitignore: Lista de archivos y directorios que deben ser ignorados por Git.

  8. requirements.txt: Lista de dependencias necesarias para ejecutar el proyecto.

Código Principal

inference/model.py

Define la arquitectura del modelo Transformer, incluyendo capas de atención, capas de feed-forward, y mecanismos de mezcla de expertos (MoE). Algunas clases y funciones clave incluyen:

  • ModelArgs: Clase de datos que define los argumentos y parámetros del modelo.
  • ParallelEmbedding: Capa de embedding con soporte para paralelismo distribuido.
  • Linear, ColumnParallelLinear, RowParallelLinear: Capas lineales personalizadas con soporte para pesos cuantizados y paralelismo.
  • RMSNorm: Normalización de capa basada en la raíz cuadrada media.
  • MLA: Capa de atención multi-cabeza.
  • MLP: Perceptrón multicapa utilizado como capa de feed-forward.
  • Gate: Mecanismo de enrutamiento para MoE.
  • Expert: Capa de experto para MoE.
  • MoE: Módulo de mezcla de expertos.
  • Block: Bloque Transformer que combina atención y capas de feed-forward.
  • Transformer: Modelo Transformer completo con embeddings posicionales, múltiples capas y proyección de salida.

inference/kernel.py

Define funciones y kernels de Triton para operaciones de cuantización y des-cuantización, así como para multiplicación de matrices en precisión FP8.

  • act_quant_kernel: Kernel para cuantización de activaciones.
  • weight_dequant_kernel: Kernel para des-cuantización de pesos.
  • fp8_gemm_kernel: Kernel para multiplicación de matrices en precisión FP8.

inference/generate.py

Proporciona funciones para generar texto utilizando el modelo Transformer.

  • sample: Función para muestrear un token a partir de logits utilizando escalado de temperatura.
  • generate: Función para generar nuevos tokens basados en tokens de entrada proporcionados.
  • main: Función principal para cargar el modelo y realizar generación de texto interactiva o por lotes.

inference/fp8_cast_bf16.py

Convierte pesos en formato FP8 a BF16 y guarda los pesos convertidos.

inference/convert.py

Convierte y guarda archivos de puntos de control del modelo en un formato específico.

Configuraciones

  • configs/config_671B.json: Configuración del modelo con 671 mil millones de parámetros.
  • configs/config_236B.json: Configuración del modelo con 236 mil millones de parámetros.
  • configs/config_16B.json: Configuración del modelo con 16 mil millones de parámetros.

Este resumen proporciona una visión general del funcionamiento del proyecto DeepSeek-V3, destacando las principales clases, funciones y archivos involucrados en la implementación y ejecución del modelo.