Рубрики
Без рубрики

Зачем использовать AWS Lambda для науки о данных?

Мотивация Serverless – это способ развертывания кода, без необходимости управлять инфраструктурой … Tagged с помощью Python, DataScience, Serverless, AWS.

Мотивация

Serverless – это способ развертывания кода, без необходимости управлять инфраструктурой под ним. С точки зрения AWS это означает, что есть вычислительный экземпляр, который запускает ваш код, за исключением того, что вы не контролируете его, и это может быть хорошо. Это существует только тогда, когда его просят что -то еще, и поэтому вы платите только за работу, которую она выполняет. Если вам нужно выполнять работу одновременно, вы получите новый экземпляр, который также исчезнет, как только вам это не нужно, так что он масштабируется.

Для ученых данных это интересная перспектива по ряду причин. Первый – держать вас в чистоте. Не все люди в этой роли происходят из фона «операций». Многие из нас являются аналитиками в первую очередь и заканчивают роль. Однако это не должно означать, что мы не «не владеем нашим развертыванием». Тем не менее, это также означает, что у нас может не быть фона, времени или склонности, чтобы действительно попасть в придурок. Управляемая инфраструктура, которая может легко масштабироваться из коробки, является хорошей серединой. Мы все еще можем управлять нашим собственным развертыванием, но есть меньше беспокоиться, чем владение своими собственными экземплярами EC2, не говоря уже о том, чтобы их флот. То, как сами экземпляры умирают, также ценен. Мы можем выполнять работу, которая требует 24/7 обработки, но часто мы не так. Зачем платить за коробку, которая может иметь 50% требуемого времени использования, или даже меньше?

Ограничения

Как во всем, есть баланс. Есть физический ограничения к этому процессу. У меня был успех, развертывая активы науки о данных в этом Архитектура, но если вы не можете вписать свою работу в этих пределах, это уже не для вас. Конечно, Data Science может быть Гигантская машина Учебные модели на огромном оборудовании с огромными объемами данных, но у нас есть Если честно и признать, что это не всегда. ЦЕЛОВАТЬ. должен применить ко всему.

Если вы можете получить достаточно хорошие результаты бизнеса с линейной регрессией, Не прилагайте на 99% больше усилий, чтобы обучить новую жаркость нейронной сети Получите повышение производительности на 2%. Простота в расчете, развертывании, и объяснение иметь значение .

“Нет ML легче управлять, чем нет ML” © [@Julsimon ] ( https://twitter.com/julsimon/status/1124383078313537536 )

Начиная

from scipy import stats
import numpy as np

np.random.seed(12345678)

x = np.random.random(10)
y = 1.6*x + np.random.random(10)

slope, intercept, r_value, p_value, std_err = 
  stats.linregress(x, y)

Это бессмысленная линейная регрессия. ИМХО, это наука о данных «Привет, мир». Давайте сделаем это функцией AWS Lambda без сервера.

+ import json
from scipy import stats
import numpy as np
+ def lambda_handler(event, context):
  np.random.seed(12345678)

x = np.random.random(10)
y = 1.6*x + np.random.random(10)

slope, intercept, r_value, p_value, std_err = stats.linregress(x, y) 
+   return_body = {
  +       "m": slope, "c": intercept,"r2": r_value ** 2, 
  +       "p": p_value, "se": std_err
  +   }
+   return {"body": json.dumps(return_body)}

Эти изменения достигают 3 вещей:

  1. Поворот Скрипт в функция
  2. Предоставление аргументов функции событие и контекст
  3. Форматирование возврата как json

Они требуются, поскольку AWS Lambda нуждается в функция . Это так, что это Архитектура, управляемая событиями может подавать данные через событие и так что это json Форматированные данные могут быть получены вашей функцией, а затем также ответ будет возвращен этой функцией в остальную часть система.

Затем вы можете открыть консоль AWS в браузере, перейти к службе Lambda, а затем скопировать и вставить ее в этот экран:

Затем вы можете нажать на бег и…

Что случилось? Ну, потому что это управляемый экземпляр, функция не знает, что Scipy является. Он не установлен в облаке, это было Установлен на вашей машине …

Слои

AWS Lambda не PIP установка .... . Видя, как они бегут на вычислительном экземпляры, которые появляются, когда это необходимо, и уничтожаются, когда это не нужно, Без прилагаемого хранилища вам нужно найти способ сказать AWS, какой у вас Зависимости, или вам просто нужно написать Python Super Pur Base! Ну, это не может быть Строго истинный. json это Встроенный по умолчанию в Каждый экземпляр , как и Бото3 , но как насчет наших друзей по науке о данных? Numpy , Scipy являются Опубликовано AWS как слои Анкет Слои представляют собой пакеты кода, которые содержат зависимости, необходимые для запуска функций, которые вы пишете. Таким образом, в этом случае мы можем открыть представление «слоев» в AWS и прикрепить их к нашей функции.

Теперь, когда вы прикрепили все свои зависимости со слоями, продолжайте и запустите свою функцию снова.

Успех! Итак, теперь вы знаете основы того, как применить немного науки о данных Python на AWS Lambda.

Это сопутствующий пост для моего выступления об использовании науки о данных в AWS Lambda. Если вы заинтересованы в том, чтобы узнать больше и не можете дождаться, когда я напишу все здесь. Вы можете получить суть всех разговоров из этого репо 😄

Daveparr/snakes_and_lambdas

Поговорить за Pydata на Python DataScience Lambdas

Презентация об использовании AWS Lambda для задач по науке о данных.

Фундамент

  • Понять экосистему AWS из базовых «облачных концепций» POV
  • Некоторый опыт Python
  • Концепции науки о данных: линейная регрессия, анализ временных рядов, Обнаружение аномалий

Решает

  • Производство науки о данных Python
  • микросхар для науки о данных
  • локальный код -> Рабочий процесс развертывания облака

Требует

Доставлен в

Вклад

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

Оригинал: “https://dev.to/daveparr/why-use-aws-lambda-for-data-science-421”