You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/bg/5-Data-Science-In-Cloud/18-Low-Code
leestott 7373a19c39
🌐 Update translations via Co-op Translator
2 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 2 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 4 weeks ago

README.md

Наука за данни в облака: Методът "Малко код/Без код"

 Скица от (@sketchthedocs)
Наука за данни в облака: Малко код - Скица от @nitya

Съдържание:

Тест преди лекцията

1. Въведение

1.1 Какво е Azure Machine Learning?

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

Azure ML е облачна платформа за създаване и управление на решения за машинно обучение в Azure. Тя включва широк набор от функции и възможности, които помагат на специалистите по данни да подготвят данни, обучават модели, публикуват предсказателни услуги и наблюдават тяхното използване. Най-важното е, че платформата увеличава ефективността, като автоматизира много от трудоемките задачи, свързани с обучението на модели, и позволява използването на облачни изчислителни ресурси, които се мащабират ефективно, за да обработват големи обеми данни, като разходите се начисляват само при реално използване.

Azure ML предоставя всички инструменти, необходими на разработчиците и специалистите по данни за техните работни процеси за машинно обучение. Те включват:

  • Azure Machine Learning Studio: уеб портал в Azure Machine Learning за опции с малко код и без код за обучение на модели, разгръщане, автоматизация, проследяване и управление на активи. Studio се интегрира с Azure Machine Learning SDK за безпроблемно изживяване.
  • Jupyter Notebooks: бързо прототипиране и тестване на ML модели.
  • Azure Machine Learning Designer: позволява влачене и пускане на модули за създаване на експерименти и разгръщане на конвейери в среда с малко код.
  • Автоматизирано машинно обучение (AutoML): автоматизира итеративните задачи при разработването на модели за машинно обучение, позволявайки създаване на ML модели с висока ефективност и продуктивност, като същевременно се поддържа качеството на модела.
  • Етикетиране на данни: инструмент за подпомагане на ML, който автоматично етикетира данни.
  • Разширение за машинно обучение за Visual Studio Code: предоставя пълнофункционална среда за разработка за създаване и управление на ML проекти.
  • CLI за машинно обучение: предоставя команди за управление на ресурси в Azure ML от командния ред.
  • Интеграция с рамки с отворен код като PyTorch, TensorFlow, Scikit-learn и много други за обучение, разгръщане и управление на целия процес на машинно обучение.
  • MLflow: библиотека с отворен код за управление на жизнения цикъл на вашите експерименти за машинно обучение. MLFlow Tracking е компонент на MLflow, който записва и проследява метриките на вашите тренировъчни изпълнения и артефакти на модела, независимо от средата на вашия експеримент.

1.2 Проект за прогнозиране на сърдечна недостатъчност:

Няма съмнение, че създаването и разработването на проекти е най-добрият начин да тествате своите умения и знания. В този урок ще разгледаме два различни начина за създаване на проект за наука за данни за прогнозиране на сърдечни атаки в Azure ML Studio: чрез методите "Малко код/Без код" и чрез Azure ML SDK, както е показано на следната схема:

project-schema

Всеки метод има своите предимства и недостатъци. Методът "Малко код/Без код" е по-лесен за започване, тъй като включва работа с графичен потребителски интерфейс (GUI), без да е необходимо предварително познаване на код. Този метод позволява бързо тестване на жизнеспособността на проекта и създаване на POC (доказателство за концепция). Въпреки това, когато проектът се разраства и трябва да бъде готов за производство, не е практично да се създават ресурси чрез GUI. Тогава става необходимо програмно автоматизиране на всичко - от създаването на ресурси до разгръщането на модел. Тук познанията за използване на Azure ML SDK стават от решаващо значение.

Малко код/Без код Azure ML SDK
Познания по код Не се изискват Изискват се
Време за разработка Бързо и лесно Зависи от познанията по код
Готовност за производство Не Да

1.3 Наборът от данни за сърдечна недостатъчност:

Сърдечно-съдовите заболявания (CVDs) са водещата причина за смърт в световен мащаб, като представляват 31% от всички смъртни случаи. Екологични и поведенчески рискови фактори като употреба на тютюн, нездравословна диета и затлъстяване, физическа неактивност и вредна употреба на алкохол могат да бъдат използвани като характеристики за модели за оценка. Възможността за оценка на вероятността за развитие на CVD може да бъде от голяма полза за предотвратяване на атаки при хора с висок риск.

Kaggle предоставя набор от данни за сърдечна недостатъчност, който ще използваме за този проект. Можете да изтеглите набора от данни сега. Това е табличен набор от данни с 13 колони (12 характеристики и 1 целева променлива) и 299 реда.

Име на променливата Тип Описание Пример
1 age числов възраст на пациента 25
2 anaemia булев Намаляване на червените кръвни клетки или хемоглобина 0 или 1
3 creatinine_phosphokinase числов Ниво на ензима CPK в кръвта 542
4 diabetes булев Дали пациентът има диабет 0 или 1
5 ejection_fraction числов Процент кръв, напускаща сърцето при всяка контракция 45
6 high_blood_pressure булев Дали пациентът има хипертония 0 или 1
7 platelets числов Тромбоцити в кръвта 149000
8 serum_creatinine числов Ниво на серумния креатинин в кръвта 0.5
9 serum_sodium числов Ниво на серумния натрий в кръвта jun
10 sex булев жена или мъж 0 или 1
11 smoking булев Дали пациентът пуши 0 или 1
12 time числов период на проследяване (дни) 4
---- --------------------------- ----------------- ----------------------------------------------------------- -------------------
21 DEATH_EVENT [Цел] булев дали пациентът умира по време на периода на проследяване 0 или 1

След като имате набора от данни, можем да започнем проекта в Azure.

2. Обучение на модел с малко код/без код в Azure ML Studio

2.1 Създаване на работно пространство в Azure ML

За да обучите модел в Azure ML, първо трябва да създадете работно пространство в Azure ML. Работното пространство е основният ресурс за Azure Machine Learning, предоставящ централизирано място за работа с всички артефакти, които създавате, когато използвате Azure Machine Learning. Работното пространство съхранява историята на всички тренировъчни изпълнения, включително дневници, метрики, изходни данни и моментна снимка на вашите скриптове. Използвате тази информация, за да определите кое тренировъчно изпълнение произвежда най-добрия модел. Научете повече

Препоръчително е да използвате най-актуалния браузър, който е съвместим с вашата операционна система. Поддържаните браузъри са:

  • Microsoft Edge (новият Microsoft Edge, последна версия. Не Microsoft Edge legacy)
  • Safari (последна версия, само за Mac)
  • Chrome (последна версия)
  • Firefox (последна версия)

За да използвате Azure Machine Learning, създайте работно пространство във вашия Azure абонамент. След това можете да използвате това работно пространство за управление на данни, изчислителни ресурси, код, модели и други артефакти, свързани с вашите работни процеси за машинно обучение.

ЗАБЕЛЕЖКА: Вашият Azure абонамент ще бъде таксуван с малка сума за съхранение на данни, докато работното пространство за Azure Machine Learning съществува във вашия абонамент, затова препоръчваме да изтриете работното пространство за Azure Machine Learning, когато вече не го използвате.

  1. Влезте в Azure портала с Microsoft идентификационните данни, свързани с вашия Azure абонамент.

  2. Изберете +Създаване на ресурс

    workspace-1

    Потърсете Machine Learning и изберете плочката Machine Learning

    workspace-2

    Натиснете бутона за създаване

    workspace-3

    Попълнете настройките, както следва:

    • Абонамент: Вашият Azure абонамент
    • Група ресурси: Създайте или изберете група ресурси
    • Име на работното пространство: Въведете уникално име за вашето работно пространство
    • Регион: Изберете географския регион, най-близък до вас
    • Акаунт за съхранение: Обърнете внимание на новия акаунт за съхранение, който ще бъде създаден за вашето работно пространство
    • Key vault: Обърнете внимание на новия key vault, който ще бъде създаден за вашето работно пространство
    • Application insights: Обърнете внимание на новия ресурс за application insights, който ще бъде създаден за вашето работно пространство
    • Регистър на контейнери: Няма (един ще бъде създаден автоматично при първото разгръщане на модел в контейнер)

    workspace-4

    • Натиснете бутона за създаване + преглед и след това бутона за създаване
  3. Изчакайте вашето работно пространство да бъде създадено (това може да отнеме няколко минути). След това отидете до него в портала. Можете да го намерите чрез Azure услугата Machine Learning.

  4. На страницата за преглед на вашето работно пространство стартирайте Azure Machine Learning Studio (или отворете нов раздел в браузъра и навигирайте до https://ml.azure.com), и влезте в Azure Machine Learning Studio с вашия Microsoft акаунт. Ако бъдете подканени, изберете вашия Azure директория и абонамент, както и вашето работно пространство за Azure Machine Learning.

workspace-5

  1. В Azure Machine Learning Studio, превключете иконата ☰ в горния ляв ъгъл, за да видите различните страници в интерфейса. Можете да използвате тези страници за управление на ресурсите във вашето работно пространство.

workspace-6

Можете да управлявате вашето работно пространство чрез Azure портала, но за специалистите по данни и инженерите по операции за машинно обучение, Azure Machine Learning Studio предоставя по-фокусиран потребителски интерфейс за управление на ресурсите в работното пространство.

2.2 Изчислителни ресурси

Изчислителните ресурси са облачни ресурси, на които можете да изпълнявате процеси за обучение на модели и изследване на данни. Има четири вида изчислителни ресурси, които можете да създадете:

  • Изчислителни инстанции: Работни станции за разработка, които специалистите по данни могат да използват за работа с данни и модели. Това включва създаване на виртуална машина (VM) и стартиране на инстанция на notebook. След това можете да обучите модел, като извикате изчислителен клъстер от notebook.
  • Изчислителни клъстери: Скалиращи се клъстери от виртуални машини за обработка на експериментален код при поискване. Ще ви е необходим, когато обучавате модел. Изчислителните клъстери могат също да използват специализирани GPU или CPU ресурси.
  • Клъстери за инференция: Цели за разгръщане на предсказателни услуги, които използват вашите обучени модели.
  • Свързани изчисления: Свързва съществуващи Azure изчислителни ресурси, като виртуални машини или клъстери на Azure Databricks.

2.2.1 Избор на правилните опции за вашите изчислителни ресурси

Има няколко ключови фактора, които трябва да се вземат предвид при създаването на изчислителен ресурс, и тези избори могат да бъдат критични решения.

Нуждаете ли се от CPU или GPU?

CPU (Централен процесор) е електронна схема, която изпълнява инструкции, съставляващи компютърна програма. GPU (Графичен процесор) е специализирана електронна схема, която може да изпълнява графичен код с много висока скорост.

Основната разлика между архитектурата на CPU и GPU е, че CPU е проектиран да обработва широк спектър от задачи бързо (измерено чрез скоростта на тактовата честота на CPU), но е ограничен в броя на задачите, които могат да се изпълняват едновременно. GPU е проектиран за паралелни изчисления и следователно е много по-добър за задачи, свързани с дълбоко обучение.

CPU GPU
По-евтин По-скъп
По-ниско ниво на паралелност По-високо ниво на паралелност
По-бавен при обучение на модели за дълбоко обучение Оптимален за дълбоко обучение

Размер на клъстера

По-големите клъстери са по-скъпи, но осигуряват по-добра отзивчивост. Следователно, ако имате време, но ограничен бюджет, трябва да започнете с малък клъстер. Обратно, ако имате средства, но малко време, трябва да започнете с по-голям клъстер.

Размер на виртуалната машина (VM)

В зависимост от времевите и бюджетните ограничения, можете да променяте размера на RAM, диска, броя на ядрата и тактовата честота. Увеличаването на всички тези параметри ще бъде по-скъпо, но ще доведе до по-добра производителност.

Посветени или нископриоритетни инстанции?

Нископриоритетна инстанция означава, че тя може да бъде прекъсната: Microsoft Azure може да вземе тези ресурси и да ги пренасочи към друга задача, прекъсвайки текущата работа. Посветена инстанция, или непрекъсваема, означава, че задачата никога няма да бъде прекратена без ваше разрешение. Това е още един аспект на времето срещу парите, тъй като прекъсваемите инстанции са по-евтини от посветените.

2.2.2 Създаване на изчислителен клъстер

В Azure ML workspace, който създадохме по-рано, отидете на "Compute" и ще видите различните изчислителни ресурси, които обсъдихме (например изчислителни инстанции, изчислителни клъстери, клъстери за инференция и свързани изчисления). За този проект ще ни е необходим изчислителен клъстер за обучение на модела. В Studio, кликнете върху менюто "Compute", след това върху таба "Compute cluster" и натиснете бутона "+ New", за да създадете изчислителен клъстер.

22

  1. Изберете вашите опции: Посветени срещу нископриоритетни, CPU или GPU, размер на VM и брой ядра (можете да оставите настройките по подразбиране за този проект).
  2. Натиснете бутона "Next".

23

  1. Дайте име на клъстера.
  2. Изберете вашите опции: Минимален/максимален брой възли, време на бездействие преди мащабиране надолу, SSH достъп. Забележете, че ако минималният брой възли е 0, ще спестите средства, когато клъстерът е в режим на бездействие. Забележете, че колкото по-голям е максималният брой възли, толкова по-кратко ще бъде обучението. Препоръчителният максимален брой възли е 3.
  3. Натиснете бутона "Create". Тази стъпка може да отнеме няколко минути.

29

Чудесно! Сега, когато имаме изчислителен клъстер, трябва да заредим данните в Azure ML Studio.

2.3 Зареждане на набора от данни

  1. В Azure ML workspace, който създадохме по-рано, кликнете върху "Datasets" в лявото меню и натиснете бутона "+ Create dataset", за да създадете набор от данни. Изберете опцията "From local files" и изберете набора от данни от Kaggle, който изтеглихме по-рано.

    24

  2. Дайте име, тип и описание на вашия набор от данни. Натиснете "Next". Качете данните от файловете. Натиснете "Next".

    25

  3. В схемата променете типа данни на Boolean за следните характеристики: анемия, диабет, високо кръвно налягане, пол, пушене и DEATH_EVENT. Натиснете "Next" и "Create".

    26

Чудесно! Сега, когато наборът от данни е на място и изчислителният клъстер е създаден, можем да започнем обучението на модела!

2.4 Обучение с малко или без код чрез AutoML

Традиционното разработване на модели за машинно обучение изисква значителни ресурси, значителни познания в областта и време за създаване и сравнение на десетки модели. Автоматизираното машинно обучение (AutoML) автоматизира времезатруднителните, итеративни задачи на разработването на модели за машинно обучение. То позволява на специалисти по данни, анализатори и разработчици да създават ML модели с висока мащабируемост, ефективност и продуктивност, като същевременно поддържат качеството на модела. Това намалява времето, необходимо за създаване на готови за производство ML модели, с голяма лекота и ефективност. Научете повече

  1. В Azure ML workspace, който създадохме по-рано, кликнете върху "Automated ML" в лявото меню и изберете набора от данни, който току-що качихте. Натиснете "Next".

    27

  2. Въведете ново име на експеримент, целевата колона (DEATH_EVENT) и изчислителния клъстер, който създадохме. Натиснете "Next".

    28

  3. Изберете "Classification" и натиснете "Finish". Тази стъпка може да отнеме между 30 минути и 1 час, в зависимост от размера на вашия изчислителен клъстер.

    30

  4. След като изпълнението приключи, кликнете върху таба "Automated ML", изберете вашето изпълнение и кликнете върху алгоритъма в картата "Best model summary".

    31

Тук можете да видите подробна информация за най-добрия модел, който AutoML е генерирал. Можете също така да разгледате други модели в таба "Models". Отделете няколко минути, за да разгледате моделите в бутона "Explanations (preview)". След като изберете модела, който искате да използвате (тук ще изберем най-добрия модел, избран от AutoML), ще видим как можем да го внедрим.

3. Внедряване на модел с малко или без код и консумация на крайна точка

3.1 Внедряване на модела

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

В описанието на най-добрия модел кликнете върху бутона "Deploy".

deploy-1

  1. Дайте име, описание, тип изчисления (Azure Container Instance), активирайте автентикация и натиснете "Deploy". Тази стъпка може да отнеме около 20 минути. Процесът на внедряване включва няколко стъпки, включително регистриране на модела, генериране на ресурси и конфигурирането им за уеб услугата. Статусно съобщение се появява под "Deploy status". Изберете "Refresh" периодично, за да проверите статуса на внедряването. То е внедрено и работи, когато статусът е "Healthy".

deploy-2

  1. След като бъде внедрено, кликнете върху таба "Endpoint" и изберете крайната точка, която току-що внедрихте. Тук можете да намерите всички подробности, които трябва да знаете за крайната точка.

deploy-3

Чудесно! Сега, когато имаме внедрен модел, можем да започнем консумацията на крайна точка.

3.2 Консумация на крайна точка

Кликнете върху таба "Consume". Тук можете да намерите REST крайна точка и Python скрипт в опцията за консумация. Отделете време, за да прочетете Python кода.

Този скрипт може да бъде изпълнен директно от вашата локална машина и ще консумира вашата крайна точка.

35

Отделете момент, за да проверите тези два реда код:

url = 'http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score'
api_key = '' # Replace this with the API key for the web service

Променливата url е REST крайна точка, намерена в таба "Consume", а променливата api_key е основният ключ, също намерен в таба "Consume" (само ако сте активирали автентикация). Това е начинът, по който скриптът може да консумира крайна точка.

  1. При изпълнение на скрипта трябва да видите следния изход:
    b'"{\\"result\\": [true]}"'
    

Това означава, че прогнозата за сърдечна недостатъчност за дадените данни е вярна. Това има смисъл, защото ако погледнете по-отблизо данните, автоматично генерирани в скрипта, всичко е на 0 и false по подразбиране. Можете да промените данните със следния примерен вход:

data = {
    "data":
    [
        {
            'age': "0",
            'anaemia': "false",
            'creatinine_phosphokinase': "0",
            'diabetes': "false",
            'ejection_fraction': "0",
            'high_blood_pressure': "false",
            'platelets': "0",
            'serum_creatinine': "0",
            'serum_sodium': "0",
            'sex': "false",
            'smoking': "false",
            'time': "0",
        },
        {
            'age': "60",
            'anaemia': "false",
            'creatinine_phosphokinase': "500",
            'diabetes': "false",
            'ejection_fraction': "38",
            'high_blood_pressure': "false",
            'platelets': "260000",
            'serum_creatinine': "1.40",
            'serum_sodium': "137",
            'sex': "false",
            'smoking': "false",
            'time': "130",
        },
    ],
}

Скриптът трябва да върне: python b'"{\\"result\\": [true, false]}"'

Поздравления! Току-що консумирахте модела, който беше внедрен и обучен в Azure ML!

ЗАБЕЛЕЖКА: След като приключите с проекта, не забравяйте да изтриете всички ресурси.

🚀 Предизвикателство

Разгледайте внимателно обясненията на модела и подробностите, които AutoML генерира за най-добрите модели. Опитайте се да разберете защо най-добрият модел е по-добър от останалите. Какви алгоритми са били сравнени? Какви са разликите между тях? Защо най-добрият модел се представя по-добре в този случай?

Тест след лекцията

Преглед и самостоятелно обучение

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

Можете да се задълбочите в AutoML с малко или без код, като прочетете тази документация.

Задание

Проект за наука за данни с малко или без код в Azure ML


Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.