Amazon ha incorporado la partición de GPU a SageMaker Inference, según una publicación del blog de Machine Learning de AWS. La función usa NVIDIA Multi-Instance GPU (MIG) para cortar una GPU física en particiones. Cada una recibe una cuota fija de cómputo y su propio bloque de memoria, y el aislamiento lo garantiza el hardware.
Qué cambia
Hasta ahora, la unidad mínima que se podía pedir era un acelerador completo, de modo que una instancia con ocho A100 alojaba como máximo ocho modelos. Quien quería particionar de verdad tenía que montar su propia pila de Kubernetes. Ahora SageMaker se encarga de la configuración de la GPU, la colocación y el escalado una vez que eliges un perfil de partición.
La función añade dos campos opcionales a la API, sin operaciones nuevas ni acciones de IAM nuevas. Un diseño definido en la variante de producción de la configuración del endpoint declara cómo se divide cada GPU. Después, cada inference component indica el tipo de partición en el que se ejecuta. La invocación sigue igual, y un endpoint que omite ambos campos se comporta como antes. AWS midió unos 17 segundos adicionales de aprovisionamiento por el paso de particionado.
Dónde está disponible
La partición funciona en las familias P4d, P5, G7 y G7e, en siete regiones: US East (Virginia del Norte y Ohio), US West (Oregón), Singapur, Tokio, Fráncfort e Irlanda. Una GPU da como máximo siete particiones; G7 se divide en dos y G7e en cuatro. El endpoint debe usar inference components. Quedan fuera los endpoints de un solo modelo, los serverless, los grupos de instancias heterogéneas y la invocación asíncrona.
Los límites
- El tipo de partición de un componente queda fijo durante toda su vida; para cambiar el reparto de un endpoint hay que crear otro y migrar el tráfico.
- Un componente que pide un perfil ausente del diseño es rechazado, sin recurso a una GPU entera.
- Los modelos que necesitan más de una GPU siguen requiriendo dispositivos completos.
- Se factura la instancia completa, así que el ahorro viene de usar mejor la GPU y el precio por hora no baja.
- El aislamiento de GPU no equivale a una frontera completa entre inquilinos, porque los modelos de una misma instancia comparten CPU del host, memoria, almacenamiento y red.
- En P4d, un perfil pequeño exige un controlador de NVIDIA más reciente que el de la imagen por defecto, y AWS avisa de que el error no nombra el perfil.
Qué midió AWS
AWS comparó una partición de H100 de tres unidades de cómputo y 40 GB con una A100 de 40 GB entera, ambas sirviendo Llama-3.1-8B-Instruct con una réplica cada una. La partición generó entre un 53 y un 89 % más de tokens de salida por segundo con la carga en la que su ventaja de coste alcanzaba el máximo, y con menor tiempo hasta el primer token en todos los casos. Resultó entre un 18 y un 34 % más barata por millón de tokens de salida por encima de una concurrencia de cruce. Ese cruce fue 64 con prompts de 100 tokens y 4 con prompts de 8.000. Por debajo, la A100 entera salía más barata. En el extremo alto de carga con prompts largos, la A100 falló entre un tercio y la mitad de las peticiones, y la partición no falló ninguna. Es una prueba de un solo proveedor con un solo modelo, así que conviene tomarla como un método que repetir con tu propio tráfico.
AWS recuerda además que una partición debe alojar los pesos, la caché KV y uno o dos gigabytes de sobrecarga del runtime. Un modelo de 8B en FP16 necesita unos 16 GB solo para los pesos.