Apache Ignite и ма­шин­ное обу­че­ние

Со­вре­мен­ные кор­по­ра­тив­ные ин­фор­ма­ци­он­ные си­сте­мы ге­не­ри­ру­ют огром­ные объ­е­мы дан­ных, ко­то­рые са­ми по се­бе бес­по­лез­ны, ес­ли их во­вре­мя не об­ра­бо­тать. Ме­то­ды ма­шин­но­го обу­че­ния поз­во­ля­ют ав­то­ма­ти­зи­ро­вать про­цесс об­ра­бот­ки, од­на­ко все дан­ные мо­гут не уме­стить

Otkrytye sistemy. SUBD. - - СОДЕРЖАНИЕ - Юрий Ба­бак

Со­вре­мен­ные кор­по­ра­тив­ные ин­фор­ма­ци­он­ные си­сте­мы ге­не­ри­ру­ют огром­ные объ­е­мы дан­ных, ко­то­рые са­ми по се­бе бес­по­лез­ны, ес­ли их во­вре­мя не об­ра­бо­тать. Ме­то­ды ма­шин­но­го обу­че­ния поз­во­ля­ют ав­то­ма­ти­зи­ро­вать про­цесс об­ра­бот­ки, од­на­ко все дан­ные мо­гут не уме­стить­ся на од­ной ма­шине.

Клю­че­вые сло­ва: рас­пре­де­лен­ная си­сте­ма ана­ли­за, хра­ни­ли­ща дан­ных, об­ра­бот­ка в па­мя­ти, глу­бин­ное обу­че­ние Keywords: Distributed analysis system, data warehouses, in-memory processing, deep learning

Се­год­ня кор­по­ра­тив­ные хра­ни­ли­ща стро­ят­ся на ба­зе как клас­си­че­ских ре­ля­ци­он­ных СУБД (Oracle DB, Postgresql) и Nosql-ре­ше­ний (Mongodb, Cassandra), так и слож­ных рас­пре­де­лен­ных си­стем (Apache Hadoop, Apache Ignite, Hazelcast, Oracle Coherence). Для об­ра­бот­ки дан­ных обыч­но ис­поль­зу­ют­ся спе­ци­а­ли­зи­ро­ван­ные под­хо­ды и си­сте­мы ре­ше­ния кон­крет­ных биз­нес-за­дач, в част­но­сти, на ос­но­ве ме­то­дов ма­шин­но­го обу­че­ния, поз­во­ля­ю­ще­го ав­то­ма­ти­зи­ро­вать ра­бо­ту с огром­ны­ми объ­е­ма­ми рас­пре­де­лен­ных меж­ду раз­лич­ны­ми хра­ни­ли­ща­ми дан­ных.

До­пу­стим, име­ет­ся си­сте­ма хра­не­ния и си­сте­ма об­ра­бот­ки дан­ных, а для вы­пол­не­ния про­гно­за — на­при­мер, на ос­но­ве ис­то­ри­че­ских дан­ных, об­ра­ба­ты­ва­е­мых с по­мо­щью тех­но­ло­гий ма­шин­но­го обу­че­ния, — тре­бу­ет­ся как ми­ни­мум пе­ре­дать дан­ные меж­ду двумя си­сте­ма­ми: вы­гру­зить дан­ные из хра­ни­ли­ща, пре­об­ра­зо­вать, а за­тем за­гру­зить в спе­ци­а­ли­зи­ро­ван­ную си­сте­му, ис­поль­зу­ю­щую, на­при­мер, тех­но­ло­гии ма­шин­но­го обу­че­ния. Наи­бо­лее по­пу­ляр­ным под­хо­дом яв­ля­ет­ся ETL (Extract Transform Load), ре­а­ли­зу­е­мый как с по­мо­щью са­мо­пис­ных bash-скрип­тов, так и сред­ства­ми мощ­ных ком­мер­че­ских ин­те­гра­ци­он­ных про­дук­тов от та­ких ком­па­ний, как Informatica или SAP.

Од­на­ко у это­го под­хо­да име­ют­ся недо­стат­ки (рис. 1). На­при­мер, дан­ные, вы­гру­жа­е­мые из хра­ни­ли­ща, обыч­но пе­ре­да­ют по се­ти, и ес­ли их дей­стви­тель­но мно­го, то пе­ре­да­ча зай­мет боль­ше вре­ме­ни, чем обу­че­ние ней­рон­ной се­ти, ис­поль­зу­е­мой в мо­де­ли ана­ли­за ис­то­ри­че­ских дан­ных. К то­му же вы­груз­ка боль­ших объ­е­мов дан­ных мо­жет су­ще­ствен­но сни­зить про­из­во­ди­тель­ность кор­по­ра­тив­ных се­тей ком­па­нии, до­ба­вить про­блем с до­сту­пом к дан­ным из дру­гих внеш­них и внут­рен­них си­стем. Все это озна­ча­ет необ­хо­ди­мость раз­вер­ты­ва­ния зна­чи­тель­ных вы­чис­ли­тель­ных и се­те­вых ре­сур­сов, боль­шие за­тра­ты на ин­фра­струк­ту­ру, пер­со­нал и, как след­ствие, сдер­жи­ва­ет рост биз­не­са — ин­фор­ма­ци­он­ная си­сте­ма ока­зы­ва­ет­ся не го­то­ва как к рез­ко­му уве­ли­че­нию объ­е­мов дан­ных (на­при­мер, в случае на­плы­ва кли­ен­тов), так и к раз­вер­ты­ва­нию и ис­пы­та­нию но­вых биз­нес-мо­де­лей.

Хра­не­ние дан­ных от­дель­но от си­сте­мы ма­шин­но­го обу­че­ния, где они об­ра­ба­ты­ва­ют­ся и где вы­пол­ня­ет­ся обу­че­ние мо­де­ли, мо­жет све­сти на нет уси­лия по уско­ре­нию про­цес­са обу­че­ния ней­рон­ной се­ти, осо­бен­но ко­гда дан­ных так мно­го, что они не уме­ща­ют­ся на од­ной ма­шине. За­да­чу мож­но ре­шить, ес­ли со­сре­до­то­чить­ся на про­бле­ме дол­го­го ETL и тре­ни­ро­вать мо­дель глу­бин­но­го обу­че­ния на кла­сте­ре, обес­пе­чив не па­рал­лель­ную, а рас­пре­де­лен­ную си­сте­му обу­че­ния.

В рас­пре­де­лен­ных си­сте­мах не дан­ные до­став­ля­ют­ся к вы­чис­ли­те­лям, а, на­обо­рот, ана­лиз дан­ных вы­пол­ня­ет­ся по ме­сту их хра­не­ния (рис. 2).

Та­кую рас­пре­де­лен­ную си­сте­му хра­не­ния и об­ра­бот­ки мож­но построить на ба­зе ре­ше­ния с от­кры­тым ко­дом Apache Ignite [1], ко­то­рое обес­пе­чи­ва­ет го­ри­зон­таль­ное мас­шта­би­ро­ва­ние, под­дер­жи­ва­ет рас­пре­де­лен­ное, преду­смат­ри­ва­ю­щее об­ра­бот­ку в па­мя­ти (in-memory) хра­ни­ли­ще «ключ-зна­че­ние» с со­блю­де­ни­ем тре­бо­ва­ний ACID, пер­си­стент­но­сти и ANSI SQL, а та­к­же имеет встро­ен­ные сред­ства под­держ­ки та­ких ме­то­дов ма­шин­но­го обу­че­ния, как ли­ней­ная и ло­ги­сти­че­ская ре­грес­сия, ал­го­рит­мы кла­сте­ри­за­ции, де­ре­вья ре­ше­ний, слу­чай­ный лес, гра­ди­ент­ный бу­стинг де­ре­вьев и ряд дру­гих. Кро­ме то­го, в Apache Ignite преду­смот­ре­на под­держ­ка Tensorflow — од­ной из по­пу­ляр­ных плат­форм для ре­ше­ния за­дач ме­то­да­ми глу­бин­но­го обу­че­ния.

Apache Ignite раз­во­ра­чи­ва­ет­ся ли­бо на кла­сте­ре из несколь­ких сер­ве­ров ка­те­го­рии bare metal (сер­вер, управ­ля­е­мый ги­пер­ви­зо­ром, за­гру­жа­е­мым пе­ред ОС), ли­бо в кон­тей­не­рах, а все дан­ные хра­нят­ся и об­ра­ба­ты­ва­ют­ся в опе­ра­тив­ной па­мя­ти, что су­ще­ствен­но быст­рее, чем у тра­ди­ци­он­ных ре­ше­ний, ис­поль­зу­ю­щих жест­кие дис­ки. Та­кая ар­хи­тек­ту­ра предъ­яв­ля­ет осо­бые тре­бо­ва­ния к мас­шта­би­ру­е­мо­сти и от­ка­зо­устой­чи­во­сти — для лю­бых рас­пре­де­лен­ных ре­ше­ний из­ме­не­ние то­по­ло­гии кла­сте­ра «на ле­ту» яв­ля­ет­ся штат­ной си­ту­а­ци­ей. Ина­че го­во­ря, си­сте­ма долж­на быть го­то­ва как к вво­ду но­вых уз­лов, на ко­то­рые необ­хо­ди­мо пе­ре­не­сти часть на­груз­ки, так и к вы­во­ду, в том чис­ле и нештат­но­му, из кла­сте­ра уз­лов, на ко­то­рых хра­ни­лись дан­ные или вы­пол­ня­лись вы­чис­ле­ния. Все эти же тре­бо­ва­ния спра­вед­ли­вы и для рас­пре­де­лен­ных плат­форм под­держ­ки си­стем на бе­зе тех­но­ло­гий ма­шин­но­го обу­че­ния.

В рас­пре­де­лен­ной си­сте­ме хра­не­ния и об­ра­бот­ки не тре­бу­ет­ся пе­ре­но­сить огром­ные объ­е­мы дан­ных во внеш­нюю си­сте­му — в Apache Ignite есть встро­ен­ные ме­ха­низ­мы для ана­ли­за и об­ра­бот­ки дан­ных как тра­ди­ци­он­ны­ми ме­то­да­ми, так и сред­ства­ми ма­шин­но­го обу­че­ния. От­па­да­ет необ­хо­ди­мость рас­хо­дов на до­пол­ни­тель­ные си­сте­мы и сер­вер­ные мощ­но­сти. Та­к­же в рас­пре­де­лен­ной си­сте­ме име­ет­ся воз­мож­ность немед­лен­но на­чать обу­че­ние пред­ска­за­тель­ных мо­де­лей, не до­жи­да­ясь вы­груз­ки дан­ных в от­дель­ные си­сте­мы. Ре­жим continuous learning оз- на­ча­ет, что мож­но при необ­хо­ди­мо­сти кор­рек­ти­ро­вать по­ве­де­ние мо­де­ли бук­валь­но «на ле­ту» — по­яв­ля­ет­ся воз­мож­ность быст­рой адап­та­ции мо­де­ли к из­ме­не­нию дан­ных и их объ­е­мов.

***

Для под­держ­ки ра­бо­ты с боль­ши­ми дан­ны­ми ме­то­да­ми глу­бин­но­го обу­че­ния все ча­ще при­ме­ня­ют­ся го­ри­зон­таль­но мас­шта­би­ру­е­мые ар­хи­тек­ту­ры: сто­и­мость вер­ти­каль­но­го мас­шта­би­ро­ва­ния рас­тет экс­по­нен­ци­аль­но, а го­ри­зон­таль­но­го — по­чти ли­ней­но. Кро­ме то­го, су­ще­ству­ют фи­зи­че­ские огра­ни­че­ния на вер­ти­каль­ный рост, а это озна­ча­ет, что тра­ди­ци­он­ные си­сте­мы хра­не­ния не мо­гут рас­ши­рять­ся бес­ко­неч­но или хо­тя бы до­ста­точ­но быст­ро. Это осо­бен­но кри­тич­но для за­дач глу­бин­но­го обу­че­ния в случае, ко­гда дан­ных боль­ше, чем мо­жет по­ме­стить­ся на од­ной ма­шине. По­яви­лись прин­ци­пи­аль­но но­вые си­сте­мы HTAP (Hybrid transaction/ analytical processing), со­че­та­ю­щие в се­бе функ­ци­о­наль­ность хра­не­ния и об­ра­бот­ки дан­ных. И со вре­ме­нем та­кие ре­ше­ния при­дут на сме­ну мо­но­лит­ным вер­ти­каль­но мас­шта­би­ру­е­мым ар­хи­тек­ту­рам.

Рис. 1. Уз­кое гор­ло тра­ди­ци­он­ных си­стем

Рис. 2. Вы­чис­ле­ния на ме­сте хра­не­ния дан­ных

Newspapers in Russian

Newspapers from Russia

© PressReader. All rights reserved.