Implemente modelos de IA de vanguardia en AWS Trainium con SGLang-Neuron

Hoy, Amazon anunció que SGLang-Neuron está disponible públicamente y se puede acceder a él a través de un contenedor de aprendizaje profundo de AWS, lanzado por RadixArk en colaboración con Annapurna Labs. Con SGLang-Neuron, puede servir modelos y generar implementaciones de aprendizaje por refuerzo (RL) con SGLang en AWS Trainium utilizando la misma interfaz SGLang que utiliza hoy. Trainium es una cartera de chips de IA de AWS que ofrece una sólida economía para el entrenamiento y la inferencia de IA a escala. Ahora, ejecutar SGLang en Trainium sigue el flujo de trabajo de SGLang que ya conoce: inicia modelos a través de la interfaz del servidor de SGLang e invoca el punto final utilizando las API de la misma generación. Debajo de esa interfaz, SGLang-Neuron se ejecuta en PyTorch nativo. Con su diseño de complemento fuera del árbol, la compatibilidad con Trainium y el núcleo SGLang se desarrollan de forma independiente y se iteran más rápido.

Cómo se ejecuta SGLang en Trainium

SGLang-Neuron es un complemento fuera del árbol que conecta SGLang con AWS Trainium. La instalación del complemento registra la plataforma neuronal a través de los puntos de entrada del complemento de SGLang, y la configuración SGLANG_PLATFORM=neuron la selecciona cuando se inicia el servidor. SGLang core continúa proporcionando el servidor API, el ciclo de vida de las solicitudes, RadixAttention y la contabilidad de caché de prefijos. El complemento implementa los modelos específicos de Trainium, la atención, la combinación de expertos (MoE) y el corredor de gráficos.

Figura 1: SGLang-Neuron en AWS Trainium

TorchNeuron registra Trainium como un dispositivo PyTorch nativo. SGLang-Neuron utiliza operaciones estándar de PyTorch para la ruta de ejecución del modelo e incorpora núcleos escritos con Neuron Kernel Interface (NKI) para mejorar el rendimiento. Compila estas operaciones y núcleos en programas ejecutables utilizando torch.compile, que el corredor de gráficos prepara y ejecuta durante el servicio.

SGLang-Neuron también admite la desagregación de PD. En esta configuración, un servidor de precarga calcula el caché KV del mensaje y lo transfiere a un servidor de decodificación usando NIXL sobre Elastic Fabric Adapter (EFA). Luego, el servidor de decodificación genera los tokens restantes. Cada servidor todavía utiliza el programador de SGLang y el ciclo de vida de las solicitudes, mientras que el complemento administra la ejecución de Trainium y la ruta de transferencia de caché KV.

Sirviendo modelos en AWS Trainium usando SGLang-Neuron

Para seguir este tutorial, utilice una instancia de Trainium3 Amazon Elastic Compute Cloud (Amazon EC2) con un contenedor pytorch-inference-sglang-neuronx. Aquí están los pasos:

Inicie el contenedor.

docker run –rm -it \ –privileged –ipc=host \ -v /path/to/work:/work \ public.ecr.aws/neuron/pytorch-inference-sglang-neuron:v0.1.0-neuron-py314-sdk-2.33.0-ubuntu26.04 \ /bin/bash

Inicie el servidor del modelo SGLang dentro del contenedor.

SGLANG_PLATFORM=neuron \ python -m sglang.launch_server \ –model-path openai/gpt-oss-120b \ –tp-size 8 \ –ep-size 8 \ –kv-cache-dtype fp8_e4m3 \ –context-length 10240 \ –chunked-prefill-size 8192 \ –max-running-requests 64 \ –max-total-tokens 655360 \ –mem-fraction-static 0.8 \ –host 127.0.0.1 \ –port 30000

Envíe una solicitud al servidor modelo.

curl -s http://127.0.0.1:30000/v1/chat/completions \ -H ‘Tipo de contenido: aplicación/json’ \ -d ‘{ “modelo”: “openai/gpt-oss-120b”, “mensajes”: [
{“role”: “user”, “content”: “Explain why the sky appears blue.”}
]”temperatura”: 0, “max_tokens”: 128 }’

Para obtener información adicional, consulte la guía de introducción de SGLang-Neuron para obtener instrucciones de configuración y explore la documentación del repositorio para conocer los modelos compatibles, las funciones y las configuraciones validadas.

Conclusión

SGLang-Neuron trae el flujo de trabajo de servicio familiar de SGLang a AWS Trainium a través de PyTorch nativo. Puede comenzar iniciando el contenedor SGLang-Neuron y siguiendo el inicio rápido para ofrecer un modelo compatible. Pruébelo con sus cargas de trabajo, contribuya a través del repositorio de proyectos y comparta comentarios para ayudar a dar forma a futuros modelos y compatibilidad con funciones.

Sobre los autores

Alex Nails

Alex Nails

Alex es miembro del personal técnico de RadixArk. Dirige MultiHardware y es desarrollador principal de SGLang.

Yihao Wang

Yihao Wang

Yihao es miembro del personal técnico de RadixArk. Trabaja tanto en modelos multimodales/difusión como en multihardware.

Lingyan Hao

Lingyan Hao

Lingyan es gerente de producto en RadixArk. Trabaja en la adopción de SGLang y la habilitación de múltiples hardware.

Selvam Srecharan

Selvam Srecharan

Srecharan es un ingeniero de software que trabaja en tecnología de inferencia de IA en Annapurna Labs, Amazon.

Zeyu Wang

Zeyu Wang

Zeyu es un ingeniero de software que trabaja en tecnología de inferencia de IA en Annapurna Labs, Amazon.

Vinesh Ravuri

Vinesh Ravuri

Vinesh es un ingeniero de software que trabaja en tecnología de inferencia de IA en Annapurna Labs, Amazon.

Yuchen Jiang

Yuchen Jiang

Yuchen es un ingeniero de software que trabaja en tecnología de inferencia de IA en Annapurna Labs, Amazon.

Panigrahi rosa

Panigrahi rosa

Pinak trabaja en la optimización del rendimiento de modelos de IA en AWS Trainium en Annapurna Labs, Amazon.

Chi Wang

Chi Wang

Chi es gerente de desarrollo de software y trabaja en tecnología de inferencia de inteligencia artificial en Annapurna Labs, Amazon.