Pull to refresh

Comments 39

Возможно я что то не понимаю, но пока можно взять нормальную виртуалку 2 Core CPU 8 GB RAM 200 GB SSD на фултайм за 20 долларов в месяц, зачем мне платить 36 долларов в тот же месяц, даже если это по 0,05 долл в час?
Скорее всего в такой виртуалке вы не сможете использовать ресурсы CPU и RAM на полную, а только 20-30% от номинальной(в лучшем случае), если это OpenVZ.
KVM точно не будут стоить таких денег
В DO за 20 баксов 2Gb RAM и 40Gb SSD а не 8Gb & 200Gb соответственно
Спот-инстансы (да и вообще подобные серверы с многоядерными процессорами и гигабайтами памяти) — это хороший выбор для тех, кто либо для себя, либо по работе занимается всякой бигдатой, когда нужно, например, тренировать модель, которая в «жалкие» 8 гигабайт просто не влезает и когда объем данных зашкаливает за десятки тысяч элементов. Если такого спроса у Вас нет — то, естественно, и платить любые деньги за это будет бессмысленно.
Буду очень признателен, если бы Вы смогли рассказать как можно натренировать модель где-то (как Вы указываете на спотах), а потом использовать слабенький локальный сервачок для предикта не гоняя по сети гигабайты трафика взяд-вперед, что обычно занимает между серваками крайне большое время.
Пример из жизни: предположительно, Вам нужно натренировать качественную Named Entity Recognition модель, используя Conditional Random Fields в любой имплементации, для примера — CRF++. При большом количестве признаков и широких контекстах, память даже для небольшого (3-4 тысячи двух-трёх абзацевых документов), потребление памяти будет легко зашкаливать за 8Гб, однако, если использовать L1-регуляризацию и/или поставить отсечки по встречаемости признаков — то итоговая модель выберет наиболее успешные признаки и будет успешно обрабатывать новые тексты, потребляя гораздо более скромные 300-500Мб.
Пример из нашей жизни: постоянно переобучается классификатор текста. Объем модели 1,9 гигов и растет. Переобучается три-четыре раза в сутки примерно час на машине с 4гигами и всеми данными на винте. Задача обуславливается большим объемом текста и рубрик. Эта же машина делает предикты. Задача применить ваши методы и использовать спотовое обучение мощным инстансом на час несколько раз в день и предикты слабым инстансом в течение дня. Как это сделать не гоняя базу с инстанса на инстанс? Ведь даже если вынести данные на отдельный SQL инстанс, то для обучения модель все равно физически окажется на другом инстансе, а это потянет всю ту же перегонку данных взад-вперед и возврат модели на слабый инстанс. Перегонка туда-сюда данных\модели убивает все плюшки от раздельных вычислений. Поправьте пожалуйста где я не прав и что упускаю из виду.
Напрямую, без хаков, никак — считайте, что вы тренируете модель на одном физическом сервере, а запускаете — на другом. Флешка, передача по сети, переставить жесткие диски — какой-то поток траффика понадобится.
Никогда так не делал, но в разрезе AWS можно поступить таким способом: http://stackoverflow.com/a/19870935/1628088.
Вкратце: в определенный момент (по окончании тренировки модели), создаётся Amazon Machine Image (AMI) из спот-инстанса и потом создаётся новый инстанс, с использованием созданного AMI (что подтянет дисковую систему и там будет лежать свежая модель).
Хотя что-то мне подсказывает, что так подход (копия, подъём инстанса с новой моделью) будет едва ли не дольше, чем просто скопировать модель с инстанса на инстанс. Судя по данным амазона, тот же Elastic Block Storage может дать производительность от ~35 до ~340 Мб/с (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html), что для вашей модели и данных даст время загрузки данных в две минуты, а вызгрузки модели — в минуту в худшем случае.
Большое спасибо! :) С меня пиво :)
На здоровье, лишь бы заработало как вам надо!
Ещё можно выгружать модель на s3 и забирать другим инстансом/своим сервером.
Я просто оставлю это здесь:
https://aws.amazon.com/efs/ — elastic file system (aka NSF от амазона)
https://www.gluster.org — распределения файловая система с недавнего времени принадлежит redhat
Делается следующим образом:
  1. создаем свой образ со всем установленным софтом который только и умеет что брать заданный файл и считать
  2. в тот момент когда обновить модель,
    а. пишем данные в локальный файл в распределенной файловой системе
    b. запускаем инстанс из сохраненного образа и считаем все что нужно
    c. тушим инстанс который занимался расчетом
Расскажите, пожалуйста, где можно заказать 2 Core CPU 8 GB RAM 200 GB SSD виртуалку за 20 долларов?
Все зависит от Ваших потребностей. Вы описали сценарий, когда машина работает круглые сутки. Но если она Вам нужна, скажем, по 4 часа в день в будни для анализа данных, то за те же ~ $20 Вы можете использовать c3.4xlarge. На самом деле даже меньше, поскольку Вы платите по рыночной стоимости инстанса ($0.16-$0.2), а не заявленные $0.25.
Последний раз когда пробовал Jupyter в Azure ML с ним было тяжело работать:

постоянный самопроизвольный рестарт ядра
невозможность установить нужные пакеты, например, XGBoost
Я для этого cloud.sagemath.com использую. Там и ядро Apache Saprk есть, и свои пакеты можно ставить. Но не думаю, что это боевой вариант. Я плачу $7 в месяц, и для серьезных задач этого мало — то ядро отвалится, то памяти не хватает, и все такое… А $49 в месяц им платить — неохота даже пробовать.
Тем не менее, для хостинга своих блокнотов без серьезных вычислений — отличный вариант.
Также неплохо для знакомства с Apache Spark.
UFO just landed and posted this here
Именно потому что
больше 20 долларов с тебя не снимут если ты забудешь выключить.
Многие банки такую услугу предоставляют: карта, которой можно пользоваться только для онлайн платежей. Стоит обычно около 1 доллара в месяц, а то и бесплатно, если вы привилегированный клиент. Закидываете на эту карту ровно 20 долларов, в минус на ней нельзя уйти (впрочем читайте мануал вашего банка, мало ли что). Ну а пополнение онлайн с другой карты или счета в том же аккаунте это дело нескольких минут.
Это не решает проблему перерасхода. Просто у вас будет висеть неоплаченный счет.
Ааа. Т.е. в минус можно уйти. Да, ерунда какая-то.
Ну, да, просто с какого-то момента деньги с такой карты перестанут поступать провайдеру, но это не отменяет возможности его вставлять счета.
Почему бы не использовать vultr.com, например? Там тоже намного дешевле, чем в AWS, если програма не поддерживает GPGPU.
Еще бы добавить туда Spark\PySpark — вообще б классно было!
Это сам тоже делаю, расписывать пока лень, но в скором времени — возможно.
Изменения не такие большие будут, вот несколько тьюториалов: один, два, три.
Для конфигурации самого Spark можно использовать скрипт spark-ec2, входящий в дистрибутив (в каталоге ec2). Он написан с использованием boto, так что вручную запрашивать инстансы не придется.
Пример:
sudo ./spark-ec2 --key-pair=spark_key_pair --identity-file=spark_key_pair.pem --region=us-west-2 --zone=us-west-2c --instance-type=m4.large --slaves=3 --spot-price=0.02 launch m4largex3-cluster

Главное — не упустить аргумент spot-price. Иначе инстансы по требованию пойдут, и это будет намного дороже.
Но тут немало подводных камней. Если самому скрипт модифицировать, туда добавятся 2-3 костыля. Как руки дойдут, выложу на GitHub.
Но если прям совсем боевая машина не нужна, посмотрите вариант Databricks Community Edition. 6 Гб они уже бесплатно дают. Можно попытаться грант у них выиграть.
Также надо быть уверенным, что вам именно Spark нужен. Может, сойдет и просто Vowpal Wabbit или Xgboost на одной машине с 30 ядрами?
Вот статья по теме. Тут VW на 2 порядка быстрее Hadoop-кластера.
Я бы предостерег от необдуманных действий, особенно тех, кто раньше не управлял удаленными машинами.

Может к концу месяца придти счёт на несколько тысяч долларов и доказать что вы «не знали» «не хотели» «не думали» будет тяжеловато, скорее всего оплатить всё-таки придётся.
Я в свое время попался на их бесплатном варианте на год — побаловался и забыл, через год пришел счет на 12 что ли долларов за месяц. С точки зрения логики — сервер работал, так что оплатил и полностью удалил аккаунт, но могли бы и уведомления прислать о том что скоро окончание бесплатного года.(Перед окончанием подписки на Office Microsoft уведомление, кстати присылает).
А какие советы дадите?
Кроме тех предостережений Amazon — про пароли, IAM-пользователей, root-ключи, двухфакторную авторизацию и бережное хранение ключей.
использовать сервера с предоплатной системой. Заплатил — используешь, денег нет — сервер выключается.

Вполне реален путь, когда вы собрали какую-то платформу, запустили в реальный мир и легли спать. Утром будете должны 500 тысяч рублей. Верхнего порога нет, из коробки его нет, можно настроить конечно, но можно забыть, настроить не так, «случайно» отмениться порог и всё в таком духе.

Возможно это параноя, но можно за 1 ночь задолжать серьёзные деньги.
В AWS можно настроить уведомления. Когда счет превышает какой-то порог (скажем, $50), приходит письмо.
Несколько вопросов:
1. Можно ли как то автоматизировать сравнение цен на спот инстансы в разных регионах чтобы выбрать минимальную?
2. Можно ли сделать так чтобы не запускать каждый раз скрипт с установкой необходимых библиотек, а как то разворачивать уже готовый образ?
3. Можно ли как то сбрасывать промежуточные результаты расчетов на S3 и после того как спот интсанс вырубится, подождать пока цены опять упадут и перезапустить с того же момента?
4. Я так понимаю не учтены расходы на передачу данных и хранение и т.д.?
Это уже надо смотреть на возможности API к AWS — boto. Да, цены указаны только за сам инстанс.
Sign up to leave a comment.

Articles