Машинное обучение (НЛП) на AWS. Облако 9? SageMaker? EC2-AMI?
Я наконец прибыл в облако, чтобы вывести свою работу по НЛП на новый уровень, но я немного ошеломлен всеми возможностями, которые у меня есть. Так что я иду к вам за советом.
В настоящее время я вижу три возможности:
- SageMaker
- Ноутбуки Jupyter великолепны
- Это быстро и просто
- экономит много времени, затрачиваемого на управление всем, вы можете очень легко получить модель в производство
- стоит дороже
- нет контроля версий
- Облако 9
- ЕС2(-AMI)
Ну, вот где я сейчас. Мне очень нравится SageMaker, хотя мне не нравится отсутствие контроля версий (по крайней мере, я пока ничего не нашел).
Cloud9 кажется просто IDE для экземпляра EC2. Я не нашел никаких сравнений Cloud9 и SageMaker для машинного обучения. Возможно, потому что Cloud9 не рекламируется как решение ML. Но, похоже, это вариант.
Что вы думаете по этому вопросу? Что я пропустил? Что бы вы посоветовали мне пойти? Каков ваш рабочий процесс и почему?
2 ответа
Я ищу легкую рабочую среду, где я могу быстро протестировать свои модели. И над этим будет работать не только я, это командная работа.
Поскольку вы работаете как команда, я бы рекомендовал использовать sagemaker с пользовательскими образами докеров. Таким образом, вы получаете полную свободу над своим алгоритмом. Изображения докера хранятся в ecr. Здесь вы можете загрузить много версий одного и того же изображения и отметить их, чтобы сохранить контроль над различными версиями (которые вы создаете из git-репо).
Sagemaker также предоставляет роль исполнения внутри образа докера. Таким образом, у вас все еще есть полный доступ к другим ресурсам aws(если у роли выполнения есть нужные разрешения)
https://github.com/awslabs/amazon-sagemaker-examples/blob/master/advanced_functionality/scikit_bring_your_own/scikit_bring_your_own.ipynb По моему мнению, это хороший пример для начала, поскольку он показывает, как sagemaker взаимодействует с вашим изображением.
Некоторые заметки о других решениях:
Проблема любого другого решения, которое вы опубликовали, заключается в том, что вы хотите собрать и выполнить его на одном компьютере. Конечно, вы можете сделать это, но имейте в виду, что экземпляры gpu дороги, и поэтому вы можете переключаться в облако только тогда, когда код готов к запуску.
Некоторые другие заметки
Ноутбуки Jupyter вообще не предназначены для совместного программирования. Я думаю, что они хотят изменить это с лабораторией Jupyter, но это все еще находится в разработке, и Sagemaker использует только ноутбук в настоящее время.
EC2 дешевле, как Sagemaker, но вы должны сделать больше работы. Особенно, если вы хотите запустить вашу модель как образ докера. Также с помощью sagemaker вы можете легко создать конечную точку для вывода модели, которую было бы еще сложнее реализовать с помощью ec2.
Cloud 9 Я никогда не пользовался этим сервисом, но, на первый взгляд, кажется, что его стоит развивать, но остается вопрос, хотите ли вы сделать это на компьютере с графическим процессором. Поскольку вы используете ec2 в качестве примера, у вас есть такое же преимущество / недостаток.
Прежде всего я хотел бы отметить, что ноутбук SageMaker - не единственная среда IDE, в которой вы можете взаимодействовать с другими компонентами SageMaker, такими как обучение и хостинг. Фактически вы можете выполнять вызовы API для обучения / хостинга SageMaker через Cloud9 или любые IDE, которые вы установили на EC2 или даже на своем ноутбуке, если у вас установлен AWS SDK или SageMaker Python SDK.
Что касается выбора IDE, это действительно зависит от ваших конкретных потребностей. Ноутбук SageMaker основан на Jupyter (теперь также поддерживает бета-версию JupyterLab), ориентирован на ML и полностью управляется. Сотни пакетов Python, которые обычно используются в ML, а также Tensorflow, Keras, MxNet, SageMaker Python SDK и т. Д., Предварительно установлены и автоматически поддерживаются для вас. Он также более тесно интегрируется с другими компонентами SageMaker, как можно себе представить.
Cloud9 также является управляемой IDE, но она предназначена для общего назначения, а не для конкретных ML. Если вы хотите использовать Jupyter в облаке9, это потребует дополнительной работы с вашей стороны. Он не устанавливает и не поддерживает версию общих пакетов, относящихся к ML/DL, как это делает ноутбук SageMaker.