Любой мало-мальский серьезный проект в сторону NLP сейчас так или иначе работает с трансформерами в виду того, что обучение LSTM не параллелится. Это значит, что важно запускать на чем-то, что может работать быстро. Тот же самый гугол использует свой самодельный фреймворк, который оперирует шустрыми типами и оптимизирован для того чтобы максимально эффективно скармливать тензору входящие данные для обучения. Сам же тензор умеет работать как с GPU, так и с TPU. На процессоре это считать практически нереально (реально, но очень-очень-очень медленно). Начиная со второй версии тензор поддерживает распределенные датасеты(с возможностью делать даже ручное шардирование) и разные стратегии для распределенного обучения. БЕРТ трансформер, даже если взять пре-трейнед на гигаворде, при размере инпута 120 и 5-10 миллионах примеров сжирает только в путь 300+ гиг ОЗУ. Одна эпоха на железяке с 30ю ядрами и 512 гб памяти занимает 55 часов.