Назад | Перейти на главную страницу

Параллельное выполнение множества задач с интенсивным использованием ЦП в облаке - какой продукт AWS?

Я разрабатываю конвейер машинного обучения для обучения нейронной сети, который будет использоваться вместе с алгоритмом поиска по дереву Монте-Карло. Я хочу, чтобы мой ИИ воспроизводил сам себя десятки тысяч раз (или, возможно, больше) для генерации обучающих данных, я использую эти обучающие данные для улучшения нейронной сети, затем проделаю еще один цикл самостоятельной игры, чтобы сгенерировать более качественные обучающие данные и т. Д. и так далее.

Прямо сейчас я в первую очередь пытаюсь выяснить, как сгенерировать обучающие данные за разумный промежуток времени, хотя я полагаю, что могу обнаружить, что мне нужны ресурсы облачных вычислений для обучения нейронной сети.

Для генерации обучающих данных требуется запустить 10 тысяч процессов, интенсивно использующих ЦП, продолжительностью ~ 30 секунд и записать данные из этих процессов в файл или базу данных, чтобы впоследствии я мог получить доступ к объединенным данным из всех этих процессов. Каждый из этих процессов полностью независим от других, поэтому все они могут выполняться параллельно.

Это займет несколько дней на моем ноутбуке, но я надеюсь, что смогу использовать один из продуктов AWS для облачных вычислений, чтобы выполнять все 10 000+ симуляций параллельно или, по крайней мере, в основном параллельно. Я не очень хорошо знаком с предложениями AWS в этой области, поэтому у меня возникли некоторые проблемы с осмыслением всех их различных вариантов.

Моя первоначальная идея заключалась в использовании AWS Lambda для запуска каждого моделирования. Похоже, что это в основном сработает, хотя я думаю, что ограничусь 1000 одновременными исполнениями. Это не так уж и плохо, поскольку я мог бы делать все в пакетном режиме, что все равно было бы намного быстрее, чем обработка на моем ноутбуке. Другая сложность Lambda - объединение результатов каждого процесса вместе. Я хочу, чтобы каждый процесс записывал результаты в базу данных.

Эти недостатки побудили меня изучить пошаговые функции, которые, похоже, могут смягчить некоторые из этих проблем (за счет того, что их немного сложнее настроить). Но потом я также открыл для себя AWS Batch и AWS Sagemaker, так что теперь, похоже, у меня есть несколько продуктов на выбор.

Может ли кто-нибудь предложить подходящий инструмент для распараллеливания этой задачи в облаке?