¿Por qué debería obtener el doble de RAM que la memoria total de mi GPU para construir una plataforma de aprendizaje profundo?

Debería obtener mucha RAM porque una práctica común es almacenar una representación procesada de su conjunto de datos y cargarla con lotes directamente desde la memoria, lo que aumenta significativamente el rendimiento del modelo. Por supuesto, siempre puede almacenar los datos procesados ​​en SSD, que también está bien, pero no es tan bueno.

Un ejemplo más concreto, el conjunto de datos COCO es de aproximadamente 300k imágenes. Una práctica común es incrustar cada palabra en la dimensión característica, generalmente tomando la última capa antes de la capa completamente conectada de un modelo de clasificación previamente entrenado. En el caso de Res-net, la salida de incrustación es de 14x14x2048 tensor para cada imagen. Ahora, si toma 300k imágenes y genera un tensor de 14x14x2048, se necesitarán aproximadamente 256GB de memoria para cargarlo en la memoria o reducir la pérdida de caché usando lotes en caso de que almacene los datos en SSD.

Otro uso de la memoria es el entrenamiento de modelos de incrustación para grandes corpus. Por ejemplo, doc2vec (vectores de párrafo) guarda un vector para cada oración en su corpus, por lo que la representación se vuelve bastante grande muy rápidamente. Por lo tanto, la memoria también será importante para esa necesidad.

Realmente no veo esta asociación como algo significativo. Tengo una GPU de 11 GB con 16 GB de RAM y puedo asegurarle que todo funciona muy bien. Probablemente debería obtener 16 GB de RAM porque de vez en cuando tendrá que cargar un gran conjunto de datos (principalmente para la visión por computadora), pero nada le impide obtener 8 GB y simplemente agregar más RAM después.

En pocas palabras: no creo que exista tal regla, pero lo aliento a que cree un sistema que no tenga poca memoria.