Imagine tratar de renovar la pulvínulo de un imponente rascacielos sin pedirle a sus ocupantes que se vayan o pausen su trabajo. Eso es exactamente lo que hace el motor de punto de control de Moonshotai para los modelos AI. Permite que los modelos de lengua masivo actualicen sus cerebros, los pesos, mientras siguen funcionando, por lo que no hay tiempo de inactividad. Este avance permite a los desarrolladores mejorar su IA de modo rápida y capaz, incluso en modelos con más de un billón de parámetros que se ejecutan en miles de GPU. Es rápido, confiable y está diseñado para persistir los sistemas de IA funcionando sin problemas mientras evoluciona en tiempo actual, por lo que es una útil cardinal para aplicaciones de IA de vanguardia. Este artículo pasa por encima de lo que es, cómo funciona y por qué es importante para el futuro de los sistemas de IA a gran escalera.
¿Qué es el motor de control de lunarshot Ai?
El motor de control de control de Moonshot AI es un middleware especializado diseñado para desempolvar los pesos de Modelos de idiomas grandes (LLM) en tiempo actual durante la inferencia sin interrumpir las operaciones en curso. Esta capacidad es crítica en Estudios de refuerzo escenarios en los que los pesos del maniquí deben actualizarse con frecuencia. El motor de control de control actualmente se integra perfectamente con los marcos de inferencia de VLLM y ofrece un rendimiento optimizado a través de las técnicas de gobierno de tuberías y memoria. Incluso proporciona características como reutilizar pesos de las instancias existentes para compendiar la sobrecarga en los escenarios de escalera.
Cimentación
El núcleo del punto de control es la clase Parameterserver, que maneja la deducción de aggiornamento de peso y comparsa el flujo de datos.
- H2D (host al dispositivo): Mueve pesos actualizados de la memoria o el almacenamiento de la CPU a la memoria GPU, utilizando tuberías de transferencia optimizadas.
- Transmisión: Distribuye el peso en todas las instancias de motor de inferencia de modo capaz, aprovechando los buffers CUDA IPC para la comunicación de memoria compartida.
- Recargar: Cada motor de inferencia recarga selectivamente fragmentos de peso relevantes de los datos transmitidos de acuerdo con su patrón de fragmentación.
Estas tuberías de tres etapas aseguran una comunicación capaz y superpuesta y copia de velocidad.
Cuando la memoria de GPU es limitada, el sistema puede acudir a la ejecución en serie para persistir la confiabilidad.
Métodos utilizados
El motor de control de control utiliza dos métodos principales para desempolvar los pesos del maniquí durante la inferencia.
- Método de transmisión: Este es el enfoque más rápido y predeterminado. Esto es ideal cuando una gran cantidad de instancias de inferencia deben actualizarse simultáneamente. Transmite los pesos actualizados de la memoria de la CPU a todas las GPU de inferencia sincrónicamente, lo que garantiza que todas las instancias permanezcan perfectamente sincronizadas con un retraso imperceptible.
- Método P2P (Peer-to-Peer): Se usa cuando las instancias de inferencia se agregan o se eliminan dinámicamente durante el tiempo de ejecución. Evita interrumpir las cargas de trabajo de inferencia existentes enviando pesos directamente desde las CPU en instancias existentes a GPU en nuevas instancias a través de un sistema de transferencia de igual a igual, permitiendo actualizaciones suaves y flexibles.
Gremial
El motor de control de control comparsa todo el proceso de transferencia. Primero recopila los metadatos necesarios para crear un plan, incluida la audacia del tamaño del cubo adecuado para la transferencia de datos. Luego, ejecuta la transferencia, controlando el motor de inferencia a través de un enchufe ZEROMQ para maximizar el rendimiento. Organiza la transferencia de datos en tuberías con comunicación y copia superpuesta, lo que permite actualizaciones de peso rápidas y eficientes incluso bajo una carga de trabajo pesada.
Al implementar los métodos y la obra mencionados anteriormente, el motor de control de control permite actualizaciones de peso en vivo para LLM en miles de GPU con latencia mínima e interrupción del servicio.
Instalación y uso
Instalación
Para usar la transmisión más rápida
Use el código:
pip install checkpoint-engine
Para usar la implementación flexible de P2P:
Use el código:
pip install 'checkpoint-engine(p2p)'
Esto se instalará mooncake-transfer-engine para apoyar la transferencia de RDMA entre diferentes rangos.
Caso de uso de ejemplo
Paso 1:
Prepare una máquina H800 o H20 con 8 GPU con el postrero VLLM. Asegúrese de incluir /Collective_RPC API EndPoint Commit (adecuado en la rama principal) ya que Checkpoint-Engine utilizará este punto final para desempolvar los pesos.
Paso 2:
install checkpoint-engine
Código:
uv pip install 'checkpoint-engine(p2p)'
Paso 3:
Para nuestro caso de uso, vamos a usar QWEN/QWEN3-235B-A22B-INSTRUCT-2507 Como maniquí de prueba.
Código:
hf download Qwen/Qwen3-235B-A22B-Instruct-2507 --local-dir /opt/models/Qwen/Qwen3-235B-A22B-Instruct-2507/
Paso 4:
Inicie VLLM en modo Dev y establezca-Formato de carga de carga. Asegúrese de establecer-Worker-Extension-Cls = checkpoint_engine.worker.vllmcolocateworkerextension
Código:
VLLM_SERVER_DEV_MODE=1 python3 -m vllm.entrypoints.openai.api_server --host 0.0.0.0 --port 19730 --trust-remote-code
--tensor-parallel-size=8 --max-model-len 4096 --load-format dummy
--served-model-name checkpoint-engine-demo --model /opt/models/Qwen/Qwen3-235B-A22B-Instruct-2507/
--worker-extension-cls checkpoint_engine.worker.VllmColocateWorkerExtension
Para desempolvar los pesos por motor de control. No es necesario esperar a que VLLM se prepare. Use el código a continuación.
Código:
torchrun --nproc-per-node 8 examples/update.py --update-method all --checkpoint-path /opt/models/Qwen/Qwen3-235B-A22B-Instruct-2507/
Para reutilizar los pesos de las instancias existentes
Las nuevas instancias de motor de control pueden unir las instancias existentes y reutilizar sus pesos.
Usando el método a continuación:
Paso 1: Iniciar la instancia existente con –Save-Metas-File Global_Metas.pkl Para asegurar las metas globales en un archivo.
Paso 2: Usar –Tero de tiempo de duración 300 para cerciorarse de que se mantengan con vida.
Código:
torchrun --nproc-per-node 8 examples/update.py --checkpoint-path $MODEL_PATH
--sleep-time 300 --save-metas-file global_metas.pkl
Paso 3: Luego de registrarse un punto de control, las nuevas instancias pueden obtener una copia del punto de control configurando-Load-Metas-File Global_Metas.pkl
Código:
torchrun --nproc-per-node 8 examples/update.py --load-metas-file global_metas.pkl
Cuantificación FP8
Actualmente, la cuantización de FP8 no funciona en VLLM al desempolvar los pesos. Utiliza un parche simple en parches/vllm_fp8.patch Para manejar la aggiornamento de peso correcta. Por otra parte, este parche solo se prueba en Deepseek-V3.1 y Kimi-K2. Por lo tanto, hay posibilidades de tener algunos problemas de compatibilidad con otros modelos.
Prueba
Ejecute una prueba de corrección simple para Checkpoint_Engine
Código:
torchrun --nproc-per-node 8 tests/test_update.py
Punto de remisión
| Maniquí | Configuración del dispositivo | Reunión de metadatos | Puesta al día (transmisión) | Puesta al día (P2P) |
|---|---|---|---|---|
| GLM-4.5-AIR (BF16) | 8x H800 TP8 | 0.17 segundos | 3.94 segundos (1.42 GIB) | 8.83 segundos (4.77 GIB) |
| QWEN3-235B-A22B-INSTRUCT-25507 (BF16) | 8x H800 TP8 | 0.46 segundos | 6.75 segundos (2.69 GIB) | 16.47 segundos (4.05 GIB) |
| Deepseek-v3.1 (FP8) | 16x H20 TP16 | 1.44 segundos | 12.22 segundos (2.38 GIB) | 25.77 segundos (3.61 GIB) |
| Kimi-K2-Instructo (FP8) | 16x H20 TP16 | 1.81 segundos | 15.45 segundos (2.93 GIB) | 36.24 segundos (4.46 GIB) |
| Deepseek-v3.1 (FP8) | 256x H20 TP16 | 1.40 segundos | 13.88 segundos (2.54 GIB) | 33.30 segundos (3.86 GIB) |
| Kimi-K2-Instructo (FP8) | 256x H20 TP16 | 1.88 segundos | 21.50 segundos (2.99 GIB) | 34.49 segundos (4.57 GIB) |
Perspectivas
Aquí hay algunas observaciones que he hecho:
- El método de transmisión generalmente ofrece el tiempo de aggiornamento más rápido, optimizado para actualizaciones de peso síncronas en muchas instancias de inferencia.
- El método P2P lleva más tiempo, pero permite actualizaciones dinámicas cuando las instancias se unen o se van durante el tiempo de ejecución.
- Estos puntos de remisión muestran la escalabilidad del motor de punto de control, manejando un billón de modelos de parámetros de modo capaz en grupos que van de 8 a 256 GPU
Limitaciones del motor de punto de control
Si admisiblemente Checkpoint Engine es una decisión poderosa para actualizaciones de peso en vivo en LLMS, actualmente tiene algunas limitaciones.
- Funciona mejor con VLLM por ahora: El motor se prueba principalmente con el entorno VLLM. Si aplazamiento usarlo con otros marcos de IA o configuraciones personalizadas, es posible que necesite un trabajo adicional para que se ejecute sin problemas.
- La tubería sigue mejorando: La tubería perfecta ideal que superpone los datos de los datos perfectamente aún no está completamente terminado. Esto significa que todavía hay potencial para hacer que las actualizaciones sean aún más rápidas.
- La aggiornamento de P2P podría ser más suave: El método de igual a igual envía datos a través de un cuello de botella en un nodo principal antaño de compartirlo con otros, lo que puede frenar las cosas cuando tiene muchas GPU.
- Necesita memoria adicional de GPU: El inteligente sistema de transmisión utiliza más memoria de GPU para acelerar las cosas. En máquinas con menos memoria, cambia a un proceso más flemático y menos capaz.
- Soporte condicionado para modelos FP8: Si está trabajando con los nuevos modelos cuantificados FP8, necesitará algunos parches experimentales. E incluso entonces, no todos los modelos juegan admisiblemente, pero más allá de un par de probados.
Conclusión
El motor de control de control de la IA de Moonshot es un cambio de solaz para desempolvar enormes modelos de IA sin detenerlos. Mantiene todo funcionando sin problemas, incluso mientras el «cerebro» del maniquí se vuelve más inteligente en tiempo actual. Si admisiblemente todavía tiene algunas áreas para mejorar, el potencial es enorme. Si está trabajando con grandes sistemas de IA, definitivamente vale la pena ver esta útil. Está ayudando a que el futuro de la IA sea más rápido y más capaz, sin ningún tiempo de inactividad.
Preguntas frecuentes
R. Permite que los modelos de idiomas grandes actualicen mancuerna en tiempo actual durante la inferencia sin tiempo de inactividad, por lo que los sistemas de IA permanecen en bisectriz mientras mejoran.
R. En este momento, está principalmente integrado y probado con el entorno de inferencia VLLM.
A. La transmisión es más rápida para las actualizaciones sincronizadas en muchas GPU, mientras que P2P permite actualizaciones flexibles cuando las instancias se unen o se van.
Inicie sesión para continuar leyendo y disfrutando de contenido curado por expertos.