Estoy pensando en entrenar word2vec en datos a gran escala de más de 10 TB + de tamaño en el volcado de rastreo web.
Personalmente entrené la implementación de GoogleNews-2012 dump (1.5 gb) en mi iMac, me tomó aproximadamente 3 horas entrenar y generar vectores (impresionados por la velocidad). Sin embargo, no probé la implementación de Python 🙁 Leí en algún lugar que generar vectores en un volcado de wiki (11 gb) de 300 vectores de longitud tarda aproximadamente 9 días en generarse.
¿Cómo acelerar word2vec? ¿Necesito usar modelos distribuidos o qué tipo de hardware necesito para hacerlo dentro de 2 a 3 días? Tengo iMac con 8gb ram.
¿Cuál es más rápido? Gensim python o C implemention?
Veo que la implementación de word2vec no admite la formación de GPU.
Hay una serie de oportunidades para crear modelos de Word2Vec a escala. Como señaló, las soluciones candidatas se distribuyen (y / o multiproceso) o GPU. Esta no es una lista exhaustiva, pero con suerte obtendrá algunas ideas sobre cómo proceder.
Opciones distribuidas / multihilo:
Existen varias implementaciones de GPU de Word2Vec. Dado el gran tamaño del conjunto de datos y la memoria limitada de la GPU, es posible que deba considerar una estrategia de agrupación en clústeres.
Existen otras implementaciones CUDA de Word2Vec, con diversos grados de madurez y soporte:
Creo que el equipo de SparkML ha implementado recientemente un prototipo de implementación de Word2Vec basada en cuBLAS. Es posible que desee investigar esto.