Cuándo Usar Configuraciones Personalizadas
Considera la personalización avanzada cuando:- Tienes modelos fine-tuned optimizados para dominios o tareas específicas
- Necesitas parámetros de muestreo diferentes a los valores por defecto del preset
- Quieres ejecutar múltiples modelos especializados simultáneamente (ej., uno para visión, uno para texto, uno para razonamiento)
- Requieres modelos de familias de modelos alternativas no incluidas en los presets estándar
- Entender los principios de gestión de memoria GPU
- Tener acceso a repositorios de modelos HuggingFace compatibles
- Conocer las limitaciones de tu hardware
- Tener un entorno de prueba para validación
Familias de Modelos Soportadas
Zylon admite estas familias de modelos para configuraciones personalizadas:Solo los modelos de estas familias están oficialmente soportados. Usar familias no soportadas puede resultar en inestabilidad del sistema.
Entendiendo la Estructura de Configuración
Todas las configuraciones personalizadas siguen este patrón:- Cada configuración debe incluir modelos
llmyembed - Cada modelo necesita un
idúnico - La memoria GPU debe gestionarse manualmente al agregar/eliminar modelos
Caso de Uso 1: Personalizar Modelos Existentes
Objetivo: Modificar los modelos por defecto del preset sin agregar nuevos. Esto es útil para usar versiones fine-tuned de modelos existentes o ajustar parámetros de inferencia.Cuándo Usar Este Enfoque
- Intercambiar el modelo por defecto por una versión fine-tuned (ej.,
Qwen3-14B-Medicalen lugar deQwen3-14B) - Cambiar parámetros de muestreo (temperature, max tokens, etc.) para un comportamiento diferente
- Usar un modelo de embeddings diferente para búsqueda semántica mejorada
- Ajustar el tamaño de la ventana de contexto según tu caso de uso
Cómo Funciona
Como no estás agregando modelos, no necesitas preocuparte por la reasignación de memoria. Simplemente especifica los cambios del modelo en la secciónconfig, y el preset maneja la asignación de memoria automáticamente.
Esquema de Configuración
Ejemplos
Ejemplo 1: Usar un Modelo Fine-Tuned
Reemplaza el modelo por defecto con tu versión fine-tuned específica del dominio:Ejemplo 2: Ajustar Parámetros de Muestreo
Modifica el comportamiento de inferencia sin cambiar el modelo:Ejemplo 3: Usar Familia de Modelo Alternativa
Cambia a una familia de modelo diferente manteniendo la misma huella de memoria:Ejemplo 4: Modelo de Embeddings Personalizado
Usa embeddings especializados para búsqueda semántica específica del dominio:Caso de Uso 2: Agregar Nuevos Modelos
Objetivo: Ejecutar múltiples modelos especializados simultáneamente. Esto es más complejo porque debes gestionar manualmente la asignación de memoria GPU en todos los modelos.Cuándo Usar Este Enfoque
- Ejecutar un modelo de visión junto con tu modelo de texto principal
- Usar modelos diferentes para diferentes tareas (ej., modelo de razonamiento + modelo de respuesta rápida)
- Crear pipelines especializados que requieren múltiples tipos de modelos
- Construir sistemas multi-modales que procesan texto, imágenes, audio y otros tipos de datos
Entendiendo la Gestión de Memoria GPU
El concepto crítico: La memoria GPU es un recurso fijo que debe dividirse manualmente entre todos los modelos. Cada modelo usa una fracción de la memoria GPU total, controlada porgpuMemoryUtilization (un valor entre 0.0 y 1.0). La suma de todas las asignaciones de memoria de los modelos no puede exceder 0.95 (reservando 5% para sobrecarga del sistema).
Asignación por defecto para baseline-48g:
- Reducir las asignaciones de los modelos existentes para liberar memoria
- Asignar la memoria liberada al nuevo modelo
- Ajustar las ventanas de contexto si la memoria se reduce significativamente
Entendiendo KV Cache
Para entender por qué la asignación de memoria afecta las ventanas de contexto, necesitas saber sobre KV Cache. ¿Qué es KV Cache? Durante la inferencia, los modelos de lenguaje almacenan cálculos intermedios (Keys y Values) para cada token que procesan. Esto se llama KV Cache, y es lo que permite a los modelos mantener el contexto a través de una conversación o documento sin recalcular todo desde cero. El KV Cache crece con:- Longitud del contexto: Más tokens en contexto = más almacenamiento de caché necesario
- Tamaño del modelo: Modelos más grandes requieren más caché por token
- Tamaño del lote: Procesar múltiples solicitudes simultáneamente multiplica los requisitos de caché
- Pesos del modelo: Los parámetros del modelo (tamaño fijo, ~2 bytes por parámetro para FP16)
- KV Cache: Almacenamiento para tokens de contexto (crece con la longitud del contexto)
- Memoria de activación: Espacio de cálculo temporal durante la inferencia
contextWindow proporcionalmente para evitar errores de falta de memoria durante la inferencia.
Asignaciones de KV Cache por defecto de baseline:
Proceso Paso a Paso
Paso 1: Conoce tu Memoria GPU
Primero, identifica tu memoria GPU total disponible:- 24GB: RTX 4090, L4
- 48GB: RTX A6000, L40, L40s
- 80-96GB: A100, H100
- 24GB → 22.8GB utilizables
- 48GB → 45.6GB utilizables
- 96GB → 91.2GB utilizables
Paso 2: Calcula los Requisitos de Memoria del Modelo
La memoria del modelo depende del conteo de parámetros y la cuantización. Usa esta tabla para estimar:
Notas sobre cuantización:
- FP16: Precisión completa, mejor calidad, mayor memoria
- FP8: Reducción de memoria del 50%, pérdida mínima de calidad
- FP4/AWQ: Reducción de memoria del 70-75%, ligera degradación de calidad
- La mayoría de los modelos de HuggingFace usan FP16 por defecto a menos que se especifique (ej., sufijo
-AWQ,-GPTQ)
Paso 3: Convierte GB a Porcentajes de Utilización de Memoria
Una vez que conoces los requisitos en GB, convierte agpuMemoryUtilization:
Fórmula: gpuMemoryUtilization = (Model GB / Total GPU GB)
Ejemplo para GPU de 24GB:
Ejemplo para GPU de 48GB:
Paso 4: Ajusta las Ventanas de Contexto Basado en la Memoria
Cuando reduces la asignación de memoria de un modelo, también debes reducir sucontextWindow porque hay menos espacio disponible para KV Cache.
Regla general: La ventana de contexto escala aproximadamente linealmente con la huella de memoria.
Ejemplos:
Paso 5: Escribe la Configuración Completa
Ahora combina todos los modelos con sus asignaciones calculadas:Esquema de Configuración
Ejemplo Completo: Configuración Multi-Modelo
Este ejemplo demuestra agregar modelos de visión y razonamiento para manejar diferentes tipos de cargas de trabajo: Escenario: Quieres tres modelos:- LLM Principal para tareas de texto generales
- LLM de Visión para comprensión de imágenes
- Modelo de Audio Rápido para tareas de transcripción
Mejores Prácticas para Configuraciones Multi-Modelo
- Comienza mínimo: Empieza con asignaciones viables más pequeñas, aumenta basado en el uso real
- Monitorea continuamente: Usa
nvidia-smipara rastrear el consumo real de memoria - Prueba individualmente: Valida que cada modelo funciona antes de combinar. Es mejor aislar problemas en lugar de depurar múltiples modelos a la vez
- Planifica margen: No asignes toda la memoria. Deja algo de buffer para picos de memoria
- Prueba de estrés: Simula cargas de trabajo pico para asegurar estabilidad bajo carga
Referencia de Parámetros de Configuración
Referencia completa de todos los parámetros disponibles.Parámetros Principales (Todos los Modelos)
Parámetros Específicos de LLM
Parámetros Específicos de Embedding
Parámetros de Muestreo
Parámetros Multimodales (LLMs)
Lista de Verificación de Validación
Antes de desplegar configuraciones personalizadas:- Todos los valores de
idson únicos - Los modelos
llmyembedestán presentes - Suma de
gpuMemoryUtilization≤ 0.95 -
promptStylecoincide con la familia del modelo -
contextWindowapropiado para la asignación de memoria -
tokenizercoincide o es compatible con el modelo - Configuración probada en entorno de staging
- Monitoreo en su lugar para uso de memoria
Errores Comunes
- Exceder asignación de memoria de 1.0: Siempre verifica tus cálculos
- No reducir ventanas de contexto: Los contextos grandes necesitan más memoria, ajusta en consecuencia
- Tokenizers incompatibles: Usa tokenizers compatibles para cada modelo
- Estilo de prompt incorrecto: Cada familia de modelo requiere formato específico
- Sin pruebas: Siempre valida en no-producción primero