Recopilado de las preguntas que nos hacen los usuarios en el chat y en los tickets, aproximadamente en el orden en que las formulan. Las dos primeras son las que determinan si una compra se realiza correctamente.
- ¿Cuánta memoria de GPU necesita un modelo de lenguaje grande?
- Los pesos se calculan multiplicando el número de parámetros por los bytes que ocupan: dos bytes a 16 bits, uno a 8 bits y la mitad a 4 bits. Un modelo con entre 7 y 8 mil millones de parámetros requiere 16 GB de pesos a 16 bits, 8 GB a 8 bits y 5 GB a 4 bits; un modelo con 70 mil millones de parámetros requiere 140 GB, 70 GB y 38 GB, respectivamente. Estas cifras corresponden únicamente a los pesos y representan un mínimo, no un requisito. Se debe añadir entre un cuarto y la mitad más para el tiempo de ejecución, las activaciones y la caché de clave-valor.
- ¿Por qué mi modelo se carga pero no funciona?
- Porque los pesos no son lo único que se almacena en la memoria de la tarjeta. El entorno de ejecución y sus búferes son residentes, y cada token en una conversación deja una entrada en la caché de clave-valor para que no tenga que recalcularse. Esa caché crece con la longitud del contexto y de nuevo con cada solicitud atendida simultáneamente, por lo que un modelo cuyos pesos apenas caben almacenará aproximadamente una conversación corta. El tamaño de la tarjeta debe ser entre una vez y cuarto y una vez y media el de los pesos.
- ¿Qué entorno de ejecución de inferencia puedo instalar?
- Cualquiera de ellos. La máquina llega con un sistema operativo y raíz limpios, y no hay ningún servicio de inferencia del proveedor delante de ella. vLLM es la respuesta habitual para servir tráfico real porque el procesamiento por lotes continuo permite que una tarjeta responda a muchas solicitudes a la vez. llama.cpp es la respuesta habitual cuando la memoria es limitada o la tarjeta es antigua. TGI y SGLang se ejecutan sin cambios. Ollama es la ruta más corta desde una máquina vacía a un modelo que responde en un puerto. Debes fijar el controlador, la versión de CUDA o ROCm y el framework a las versiones con las que se probó tu código.
- ¿Cuántos tokens por segundo recibiré?
- No publicamos una cifra de tokens por segundo, ya que cada número depende del modelo, la cuantización, el entorno de ejecución y su versión, el tamaño del lote, la longitud de la solicitud, la longitud de la respuesta y la concurrencia, y cualquier cambio en estos parámetros la incrementa considerablemente. Lo que lo rige es lo siguiente: la lectura de la solicitud está limitada por la capacidad de procesamiento y se realiza una vez por solicitud; la generación de la respuesta está limitada por el ancho de banda de la memoria, ya que cada token requiere la lectura de los pesos; y el procesamiento por lotes amortiza esa lectura entre las solicitudes concurrentes, lo que hace que el servicio sea económico hasta que se agote el espacio en la caché de clave-valor. Consulte con el modelo, la cuantización y la concurrencia esperada para obtener una respuesta basada en lo que hemos observado.
- ¿La GPU se comparte con alguien más?
- No. Un inquilino por máquina física, y la tarjeta se asigna a su propio sistema operativo. No hay hipervisor, ni partición MIG, ni perfil vGPU, ni planificador de división de tiempo, por lo que no se ejecuta nada más en la tarjeta y la latencia de inferencia no varía debido a las tareas por lotes de otros usuarios.
- ¿Qué ocurre si el modelo no cabe en una sola tarjeta?
- Se trata de una configuración con varias tarjetas gráficas, cuyo precio se presupuesta en lugar de solicitarse en línea: la cantidad de tarjetas compatibles depende del ancho físico de cada tarjeta y del consumo energético del chasis. Dos tarjetas ofrecen la suma de su memoria solo si el entorno de ejecución puede distribuir el modelo entre ambas, algo que cualquier entorno de ejecución serio admite, aunque con una pérdida de rendimiento. Más de una tarjeta o máquina define cómo sería esa configuración.
- ¿La optimización requiere más memoria que el servicio?
- Mucho más. Para servir se necesitan los pesos; para entrenar se necesitan los pesos, los gradientes y el estado del optimizador para cada parámetro que se actualiza, todo almacenado simultáneamente, además de las activaciones que se conservan para la pasada hacia atrás. Un modelo que funciona cómodamente en una tarjeta puede ser varias veces demasiado grande para ajustarlo completamente en ella. Los métodos eficientes en parámetros actualizan una pequeña fracción de los parámetros y necesitan una fracción correspondientemente pequeña de la memoria adicional, razón por la cual la mayoría de los ajustes finos aquí utilizan una sola tarjeta.
- ¿Puedo usar una tarjeta AMD y funciona ROCm?
- Sí. Las tarjetas AMD Instinct se encuentran entre las de mayor capacidad de memoria que instalamos y suelen ofrecer la mejor relación calidad-precio por gigabyte, pero su sistema debe ser compatible con ROCm en lugar de CUDA. La mayoría de los entornos de ejecución de inferencia actuales lo son; algunas herramientas relacionadas aún no lo son. Consulte antes de realizar su pedido y lo comprobaremos con su entorno de ejecución específico en lugar de darle una respuesta general.