3.5 KiB
Resumen del Proyecto DeepSeek-V3
Estructura del Proyecto
-
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.
-
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). -
README_WEIGHTS_ES.md: Versión en español de
README_WEIGHTS.md
. -
README_ES.md: Versión en español de
README.md
. -
LICENSE-MODEL: Licencia del modelo DeepSeek, que incluye restricciones de uso y condiciones de distribución.
-
LICENSE-CODE: Licencia MIT para el código del proyecto.
-
.gitignore: Lista de archivos y directorios que deben ser ignorados por Git.
-
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.