Преглед: Amazon SageMaker играе наваксване

Когато прегледах Amazon SageMaker през 2018 г., забелязах, че това е изключително мащабируема услуга за машинно обучение и дълбоко обучение, която поддържа 11 собствени алгоритма, както и всички други, които предоставяте. Оптимизацията на хиперпараметрите все още беше във визуализация и трябваше да направите свой собствен ETL и инженеринг на функции. 

Оттогава обхватът на SageMaker се разшири, като увеличи основните тетрадки с IDE (SageMaker Studio) и автоматизирано машинно обучение (SageMaker Autopilot) и добави куп важни услуги към цялостната екосистема, както е показано на диаграмата по-долу. Тази екосистема поддържа машинно обучение от подготовка чрез изграждане на модели, обучение и настройка до внедряване и управление - с други думи, от край до край.

Какво е новото в SageMaker?

Какво ново? Като се има предвид, че за последно разгледах SageMaker веднага след пускането му, списъкът е доста дълъг, но нека започнем с най-видимите услуги.

  • SageMaker Studio, IDE, базирана на JupyterLab
  • SageMaker Autopilot, който автоматично изгражда и обучава до 50 модела с конструирани функции, които могат да бъдат изследвани в SageMaker Studio
  • SageMaker Ground Truth, който помага за изграждането и управлението на набори от данни за обучение
  • Преносимите компютри SageMaker вече предлагат еластично споделяне на изчисления и едно кликване
  • SageMaker Experiments, който помага на разработчиците да визуализират и сравняват итерации на модели на машинно обучение, параметри на обучение и резултати
  • SageMaker Debugger, който осигурява наблюдение в реално време за модели на машинно обучение, за да подобри точността на предсказване, да намали времето за обучение и да улесни по-голямата обяснима
  • Монитор на SageMaker, който открива дрейфа на концепцията, за да открие кога работата на модела, работещ в производството, започва да се отклонява от оригиналния обучен модел

Други забележителни подобрения включват незадължителното използване на спот инстанции за преносими компютри за намаляване на разходите; нов тип екземпляр P3dn.24xl, който включва осем графични процесора V100; оптимизирана за AWS рамка TensorFlow, която постига близо до линейна мащабируемост при обучение на множество видове невронни мрежи; Amazon Elastic Inference, което може драстично да намали разходите за заключение; AWS Inferentia, който е високопроизводителен чип за извод за машинно обучение; и нови алгоритми, както вградени в SageMaker, така и налични в AWS Marketplace. В допълнение, SageMaker Neo компилира модели за дълбоко обучение, за да работи на крайни изчислителни устройства, а SageMaker RL (не е показано на диаграмата) предоставя услуга за управлявано усилване.

SageMaker Studio

JupyterLab е следващото поколение уеб базиран потребителски интерфейс за Project Jupyter. SageMaker Studio използва JupyterLab като основа за IDE, която е единна онлайн станция за машинно обучение и дълбоко обучение с функции за сътрудничество, управление на експерименти, интеграция на Git и автоматично генериране на модели.

Снимката по-долу показва как да инсталирате примери на SageMaker в екземпляр на SageMaker Studio, като използвате терминален раздел и командния ред на Git. Инструкциите за това са в README за този пример, който е нещо като Catch-22. Можете да ги прочетете, като прегледате примера „Първи стъпки“ на GitHub или като клонирате хранилището на собствената си машина и го прочетете там.

Примерът за начало на Amazon съдържа бележник, наречен xgboost_customer_churn_studio.ipynb, който е адаптиран от публикация в блог за прогнозиране на отклонението на клиентите. Тъй като тетрадките на Jupyter имат много обяснения, както можете да видите на екранните снимки по-долу.

Примерът продължава да изпълнява допълнително обучение с външен алгоритъм XGBoost, модифициран за запазване на информация за отстраняване на грешки в Amazon S3 и за извикване на три правила за отстраняване на грешки. Това е в така наречения рамков режим, което означава, че не е вграден алгоритъм.

Когато тренировките са готови, можете да сравните резултатите в раздела Експерименти.

След това примерът хоства модела, използвайки неговия deployметод, и тества внедрената крайна точка, използвайки неговия predictметод. И накрая, той създава базово задание с набор от данни за обучение и планирано задание за наблюдение, което съобщава за всички нарушения на ограниченията.

Между другото, XGBoost е само един от многото алгоритми, вградени в SageMaker. Пълен списък е показан в таблицата по-долу - и винаги можете да създадете свой собствен модел.

Автопилот на SageMaker

Да предположим, че не знаете как да правите инженеринг на функции и не сте добре запознати с различните алгоритми, налични за различните задачи за машинно обучение. Все още можете да използвате SageMaker - просто го оставете да работи на автопилот. SageMaker Autopilot е способен да обработва набори от данни до 5 GB.

На екранната снимка по-долу изпълняваме примера за Директен маркетинг с Amazon SageMaker Autopilot. Започва с изтегляне на данните, разархивиране, качване в сегмент S3 и стартиране на задача за автопилот чрез извикване на API на create_auto_ml_job. След това проследяваме напредъка на заданието, докато анализира данните, прави инженерство на функции и прави настройка на модела, както е показано по-долу.

След това примерът избира най-добрия модел, използва го за създаване и хостване на крайна точка и изпълнява задача за преобразуване, за да добави прогнозите на модела към копие на тестовите данни. Накрая намира двете тетрадки, създадени от заданието за автопилот.

Има потребителски интерфейс за резултатите от автопилота, въпреки че това не е очевидно. Ако щракнете с десния бутон на мишката върху експеримента automl, можете да видите всички опити с техните обективни стойности, както е показано по-долу.

SageMaker Ground Truth

Ако имате късмет, всички ваши данни ще бъдат етикетирани или по друг начин коментирани и готови за използване като набор от данни за обучение. Ако не, можете да анотирате данните ръчно (стандартната шега е, че давате задачата на вашите ученици), или можете да използвате полу-контролиран процес на обучение, който комбинира човешки анотации с автоматични анотации. SageMaker Ground Truth е такъв процес на етикетиране.

Както можете да видите на диаграмата по-долу, Ground Truth може да се приложи към редица различни задачи. С Ground Truth можете да използвате работници или от Amazon Mechanical Turk, или от фирма доставчик, която сте избрали, или от вътрешна частна работна сила заедно с машинно обучение, за да ви позволи да създадете етикетиран набор от данни.

Amazon предлага седем инструкции, които демонстрират различни начини за използване на SageMaker Ground Truth.

SageMaker Neo

Доскоро внедряването на обучени модели на крайни устройства - смартфони и IoT устройства например беше трудно. Има конкретни решения, като TensorFlow Lite за модели TensorFlow и TensorRT за устройства Nvidia, но SageMaker Neo компилира и автоматично оптимизира модели TensorFlow, Apache MXNet, PyTorch, ONNX и XGBoost за внедряване на процесори ARM, Intel и Nvidia, както и като устройства Qualcomm, Cadence и Xilinx.

Според AWS, Neo може да удвои производителността на моделите и да ги свие достатъчно, за да работи на крайни устройства с ограничено количество памет.

Опции за разполагане на извода на SageMaker

По отношение на изчисленията, съхранението, мрежовия трансфер и т.н., внедряването на модели за производствено заключение често представлява 90% от цената на задълбоченото обучение, докато обучението представлява само 10% от разходите. AWS предлага много начини за намаляване на разходите за извод.

Едно от тях е еластичното заключение. AWS казва, че Elastic Inference може да ускори пропускателната способност и да намали латентността на получаване на изводи в реално време от вашите модели за дълбоко обучение, които са внедрени като хоствани модели на Amazon SageMaker, но на малка част от цената на използването на екземпляр на GPU за вашата крайна точка. Elastic Inference ускорява извода, като ви позволява да прикачите частични графични процесори към всеки екземпляр на Amazon SageMaker.

Elastic Inference се поддържа във версиите на TensorFlow, Apache MXNet и PyTorch, поддържащи Elastic Inference. За да използвате друга рамка за дълбоко обучение, експортирайте модела си с помощта на ONNX и след това импортирайте модела си в MXNet.

Ако имате нужда от повече от 32 TFLOPS на ускорител, които можете да получите от Elastic Inference, можете да използвате екземпляри EC2 G4, които имат графични процесори Nvidia T4, или екземпляри EC2 Inf1, които имат персонализирани чипове за ускорител AWS Inferentia. Ако се нуждаете от скоростта на чиповете Inferentia, можете да използвате AWS Neuron SDK, за да компилирате своя модел за задълбочено обучение в Neuron Executable File Format (NEFF), който от своя страна се зарежда от драйвера за изпълнение на Neuron за изпълнение на заявки за въвеждане на изводи в Inferentia чипс.

На този етап визуализацията на Amazon SageMaker Studio е достатъчно добра, за да се използва за машинно обучение от край до край и задълбочено обучение: подготовка на данни, обучение на модели, внедряване на модели и мониторинг на модели. Докато потребителският опит все още оставя няколко неща за желание, като например по-добро откриване на функционалността, Amazon SageMaker вече е конкурентен на средите за машинно обучение, налични в други облаци.

-

Цена: $ 0,0464 до $ 34,272 на час екземпляр за изчисление, в зависимост от броя на процесорите и графичните процесори; SSD съхранение: $ 0,14 на GB на месец; Прехвърляне на данни: $ 0,016 на GB входящо или изходно. 

Платформа: Хоствана в Amazon Web Services.