Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


26.08.2021

Firma Fortinet rozszerzyła...

Firma Fortinet rozszerzyła ofertę o usługę FortiTrust, która dołączyła do innych usług...
26.08.2021

Aplikacje biznesowe

Ready_™ AppStore
26.08.2021

Automatyzacja chmur...

Integracja z Red Hat Ansible
26.08.2021

Backup kodu źródłowego

GitProtect.io dostępny na Github
26.08.2021

Wsparcie pracy hybrydowej

Zdalny SD WAN
26.08.2021

Nowy monitor Philips 498P9Z

Nowy monitor Philips 498P9Z to model wyposażony w 49-calowy, zakrzywiony panel VA o...
26.08.2021

Wytrzymały punkt dostępowy

D-Link DIS-2650AP
26.08.2021

Ekonomiczne dyski

SSD bez DRAM
26.08.2021

Petabajty pojemności

Serwery QNAP

Język R w uczeniu maszynowym SQL Server

Data publikacji: 14-07-2021 Autor: Marcin Szeliga

W pierwszej części artykułu poznaliśmy usługi uczenia maszynowego serwera SQL Server 2017 i 2019. Przekonaliśmy się, że pozwalają one w wydajny i bezpieczny sposób uruchamiać dowolne instrukcje języków R i Python po stronie bazy danych. Czas poświęcić uwagę bibliotekom przetwarzania danych i bibliotekom uczenia maszynowego firmy Microsoft dostępnych w ramach usługi uczenia maszynowego serwera SQL Server. Tym razem dokładniej przyjrzymy się integracji z językiem R.

 

Pierwsza wersja języka R została udostępniona publicznie w 1995 roku, pięć lat później pojawiła się jego pierwsza stabilna wersja. Język ten szybko zyskał popularność na uczelniach całego świata i do dziś jest podstawowym językiem analizy danych na uczelniach ekonomicznych i matematycznych. Największą siłą języka R jest ogromny, ponad dwudziestotysięczny, zbiór ogólnodostępnych bibliotek zawierających rozwiązania wszystkich typowych problemów, na jakie można natrafić, pracując z danymi.

Język R nie jest pozbawiony wad. Jego niska wydajność wynika z tego, że większość funkcji napisanych jest w samym języku R, a nie języku niższego poziomu, i wykonywanych jest jednowątkowo. Brak skalowalności jest efektem tego, że przetwarzane dane oraz tymczasowe wyniki muszą znajdować się w pamięci operacyjnej, czyli ilość pamięci RAM komputera ogranicza wielkość analizowanych zbiorów danych. A jako że język R nie jest, w przeciwieństwie do Pythona, językiem programowania ogólnego przeznaczenia, integracja z pozostałymi elementami systemu BI (np. publikowanie modelu maszynowego) może być problematyczne.

Decydując się na integrację języka R z serwerem SQL, Microsoft postanowił rozwiązać wszystkie te problemy. W 2015 roku, gdy to R, a nie Python, był jeszcze najpopularniejszym językiem danych, Microsoft dołączył do fundacji rozwijającej go i przejął firmę Revolution Analytics. Efektem tych prac są trzy specjalistyczne dystrybucje języka R.

 

> Microsoft R Open, R Client i R Server

 

Microsoft R Open jest otwartą i darmową dystrybucją języka R. MRO jest w pełni kompatybilny z oryginalnym językiem R, czyli wszystkie skrypty działające w Open R można bez jakichkolwiek zmian w kodzie uruchomić w dystrybucji MRO. Microsoft R Open zawiera jednak w stosunku do Open R kilka udoskonaleń:

 

  • Używa do obliczeń biblioteki Intel MKL Library. Sprzętowa akceleracja operacji matematycznych pozwoliła wielokrotnie skrócić czas ich wykonywania. Na przykład mnożenie macierzy wykonywane jest 50 razy szybciej, a analiza głównych składowych (PCA) – dwadzieścia razy szybciej.
  • Jako domyślnego repozytorium pakietów używa strony Microsoft R Application Network (mran.microsoft.com). MRAN zawiera dzienne kopie strony projektu CRAN, czyli znajdziemy na niej wcześniejsze wersje wszystkich dostępnych na stronie projektu CRAN pakietów. Dana wersja MRO domyślnie pobiera kopie pakietów z jednego, zawsze tego samego dnia.
  • Zawiera kilka dodatkowych bibliotek do współpracy z systemami Big Data i produktami firmy Microsoft.


Microsoft R Server, przemianowany po dodaniu integracji z językiem Python na Microsoft Machine Learning Server, to działający w środowiskach Windows, Linux, SQL Server oraz Hadoop wysokowydajny serwer analityczny:

 

  • Jest oparty na Microsoft R Open, więc jest w pełni kompatybilny z oryginalną wersją języka R. Umożliwia wydajne przetwarzanie dużych zbiorów danych. Dane przetwarzane są w blokach o dowolnej wielkości, czyli wystarczy, aby jednorazowo w RAM zmieścił się pojedynczy blok, a nie cały zbiór danych.
  • Udostępnia specjalistyczne biblioteki do przetwarzania i analizowania danych oraz tworzenia modeli uczenia maszynowego (biblioteki RevoscaleR, revoscalepy i Micro­softML). Funkcje tych bibliotek wykonywane są wielowątkowo.
  • Pozwala w prosty sposób wdrożyć modele – gotowe modele można opublikować jako zbiór bezstanowych interfejsów programistycznych (RESTful APIs) pozwalających w bezpieczny sposób zintegrować MLS z platformami Java, JavaScript i .NET.


Microsoft R Client to darmowa, zawierająca wszystkie funkcjonalności Microsoft R Server, dystrybucja języka R. Jego wydajność i skalowalność zostały ograniczone. Dane oraz tymczasowe wyniki ich przetwarzania muszą zmieścić się w pamięci RAM komputera, a stopień zrównoleglenia funkcji bibliotek RevoscaleR i microsoftML został ograniczony do dwóch wątków.

 

> Zastosowanie uczenia maszynowego do proaktywnej konserwacji urządzeń

 

Większość firm przeprowadza prace konserwacyjne na urządzeniach, które uległy już awarii. Strategia konserwacji korygującej zapewnia maksymalne wykorzystanie podzespołów urządzeń, bo są one wymieniane dopiero po całkowitym zużyciu. Z drugiej strony taka strategia naraża firmy na kosztowne przestoje i wysokie koszty niezaplanowanych napraw. Dlatego niektóre firmy stosują strategię konserwacji zapobiegawczej. Polega ona na przeprowadzaniu z góry zaplanowanych przeglądów urządzeń. Ta strategia pozwala uniknąć kosztownych przestojów i zmniejsza koszty napraw, bo zaplanowanie z wyprzedzeniem naprawy daje czas potrzebny do sprowadzenia na miejsce potrzebnych części i fachowców oraz urządzenia zapasowego, które zastąpi to naprawiane. Firma jednak ponosi wysokie koszty nie zawsze potrzebnych przeglądów i niepełnego wykorzystania podzespołów. Proaktywna konserwacja łączy zalety obu powyższych strategii, ale jest pozbawiona ich wad. Polega ona na przewidywaniu, kiedy urządzenie ulegnie awarii, i wymianie tylko tych podzespołów, których poprawne działanie nie jest już pewne.

Weźmy przykład linii lotniczych. Jednym z powodów opóźniania lotów są problemy przewoźnika z serwisowaniem silników samolotów. Ponieważ w firmie obowiązuje zasada zapobiegania awariom silników za wszelką cenę, ich stan techniczny jest regularnie sprawdzany. Jednak zużycie elementów silnika samolotowego zależy od wielu czynników, nie tylko od czasu jego pracy i przepracowanych kilometrów. W efekcie niektóre czynności serwisowe przeprowadzane są niepotrzebnie, a zdarza się, że przeciągający się przegląd powoduje opóźnienie odlotu. Załóżmy, że wszystkie samoloty naszej linii lotniczej wyposażone są w czujniki monitorujące pracę urządzeń pokładowych, w tym silników. Firma posiada przykładowe dane zarówno bezbłędnie działających silników, jak i silników, które uległy awarii. Naszym zadaniem jest zbudowanie modelu, który przewidzi czas pozostałej bezpiecznej eksploatacji RUL silników.

 

[...]

 

Pracownik naukowy Wyższej Szkoły Bankowej w Poznaniu Wydział Zamiejscowy w Chorzowie, jest autorem książek poświęconych analizie danych i posiada tytuł Microsoft Most Valuable Professional.

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"