Аб прадузятасці штучнага інтэлекту

Аб прадузятасці штучнага інтэлекту

ТЛ; інш:

  • Машыннае навучанне шукае заканамернасці ў дадзеных. Але штучны інтэлект можа быць «прадузяты» - гэта значыць, знаходзіць няслушныя патэрны. Напрыклад, сістэма выяўлення раку скуры па фатаграфіі можа звяртаць асаблівую ўвагу на здымкі, зробленыя ў урачэбным кабінеце. Машыннае навучанне не ўмее разумець: яго алгарытмы толькі выяўляюць заканамернасці ў ліках, і калі дадзеныя не рэпрэзентатыўныя, такім будзе і вынік іх апрацоўкі. А адлоўліваць такія багі можа быць няпроста з-за самой механікі машыннага навучання.
  • Самая відавочная і палохалая праблемная вобласць - гэта чалавечая разнастайнасць. Ёсць мноства чыннікаў, чаму дадзеныя аб людзях могуць губляць аб'ектыўнасць яшчэ на этапе збору. Але не варта думаць, што гэтая праблема дакранаецца толькі людзей: сапраўды такія ж складанасці ўзнікаюць пры спробе выявіць патоп на складзе ці газавую турбіну, якая выйшла са строю. Адны сістэмы могуць мець прадузятасці наконт колеру скуры, іншыя будуць прадузята ставіцца да датчыкаў Siemens.
  • Такія праблемы не новыя для машыннага навучання, ды і ўласцівы далёка не толькі яму. Няправільныя здагадкі робяцца ў любых складаных структурах, а зразумець, чаму было прынята тое ці іншае рашэнне, заўсёды няпроста. Змагацца з гэтым трэба комплексна: ствараць інструменты і працэсы для праверкі - і ўтвараць карыстальнікаў, каб яны не слепа прытрымліваліся рэкамендацый ІІ. Машыннае навучанне сапраўды робіць некаторыя рэчы нашмат лепш за нас, — але сабакі, напрыклад, нашмат больш эфектыўна людзей у выяўленні наркотыкаў, што зусім не падстава прыцягваць іх у якасці сведак і выносіць прысуды на падставе іх паказанняў. А сабакі, дарэчы, нашмат разумнейшыя за любую сістэму машыннага навучання.

Машыннае навучанне сёння - адзін з самых важных фундаментальных тэхналагічных трэндаў. Гэта адзін з асноўных спосабаў, якімі тэхналогія будзе мяняць навакольны свет у наступнае дзесяцігоддзе. Некаторыя аспекты гэтых змен выклікаюць турботу. Напрыклад, патэнцыйны ўплыў машыннага навучання на рынак працы, або яго выкарыстанне для неэтычных мэт (дапусцім, аўтарытарнымі рэжымамі). Ёсць яшчэ адна праблема, якой і прысвечаны гэты пост: прадузятасць штучнага інтэлекту.

Гэта няпростая гісторыя.

Аб прадузятасці штучнага інтэлекту
ІІ ад Google умее знаходзіць коцікаў. Гэтая навіна з 2012-га года была тады нечым асаблівым.

Што такое «прадузятасць ІІ»?

"Сырыя дадзеныя" - гэта адначасова і аксюмарон, і дрэнная ідэя; дадзеныя трэба добра і клапатліва рыхтаваць. -Джэфры Бакерыя

Дзесьці да 2013 года, каб зрабіць сістэму, якая, скажам, распазнае катоў на фатаграфіях, вам трэба было апісваць лагічныя крокі. Як знайсці на малюнку куты, распазнаць вочы, прааналізаваць тэкстуры на наяўнасць меха, палічыць лапы, і гэтак далей. Затым сабраць усе кампаненты - і выявіць, што гэта ўсё толкам не працуе. Прыкладна як механічны конь - тэарэтычна яе можна зрабіць, але на практыцы яна занадта складаная для апісання. На выхадзе ў вас сотні (ці нават тысячы) рукапісных правіл. І ніводнай працавальнай мадэлі.

З з'яўленнем машыннага навучання мы перасталі выкарыстоўваць ручныя правілы па распазнанні таго ці іншага аб'екта. Замест гэтага мы бярэм XNUMX узораў «таго», Х, XNUMX узораў «іншага», Y, і прымушаем кампутар пабудаваць мадэль на аснове іх статыстычнага аналізу. Затым мы даем гэтай мадэлі некаторы прыклад даных, і яна з нейкай дакладнасцю вызначае, ці падыходзіць ён да аднаго з набораў. Машыннае навучанне генеруе мадэль на аснове даных, а не з дапамогай чалавека, які яе піша. Вынікі ўражваюць, асабліва ў галіне распазнання малюнкаў і патэрнаў, і менавіта таму ўся тых індустрыя зараз пераходзіць на машыннае навучанне (ML).

Але не ўсё так проста. У рэальным свеце вашыя тысячы прыкладаў X ці Y таксама ўтрымоўваюць А, B, J, L, O, R і нават L. Яны могуць быць нераўнамерна размеркаваны, і некаторыя з іх могуць сустракацца настолькі часта, што сістэма зверне на іх больш увагі, чым на аб'екты, якія вас цікавяць.

Што гэта значыць на практыцы? Мой любімы прыклад - гэта калі сістэмы распазнання малюнкаў глядзяць на травяністы груд і кажуць: авечка. Зразумела, чаму: большасць фатаграфій-прыкладаў «авечкі» зроблена на лугах, дзе яны жывуць, і на гэтых малюнках трава займае нашмат больш месца, чым маленькія беленькія пушыстыкі, і менавіта траву сістэмы лічаць самай важнай.

Ёсць прыклады і больш сур'ёзны. З нядаўняга - адзін праект па выяўленні раку скуры на фатаграфіях. Аказалася, што дэрматолагі часта фатаграфуюць лінейку разам з праявамі раку скуры, каб зафіксаваць памер утварэнняў. На прыкладах фатаграфій здаровай скуры лінеек няма. Для сістэмы ІІ такія лінейкі (дакладней, пікселі, якія намі вызначаюцца як "лінейка") сталі адным з адрозненняў паміж наборамі прыкладаў, і часам важнейшымі, чым невялікі сып на скуры. Так сістэма, створаная для апазнавання раку скуры, часам замест яго апазнавала лінейкі.

Ключавы момант тут тое, што сістэма не мае семантычнага разумення таго, на што яна глядзіць. Мы глядзім на набор пікселяў і бачым у іх авечку, скуру ці лінейкі, а сістэма - толькі лікавы радок. Яна не бачыць трохмерную прастору, не бачыць ні аб'ектаў, ні тэкстур, ні авечак. Яна проста бачыць патэрны ў дадзеных.

Складанасць дыягностыкі такіх праблем у тым, што нейронавая сетка (мадэль, згенераваная вашай сістэмай машыннага навучання) складаецца з тысяч сотняў тысяч вузлоў. Няма простага спосабу зазірнуць у мадэль і ўбачыць, як яна прымае рашэнне. Наяўнасць такога спосабу азначала б, што працэс дастаткова просты, каб апісаць усе правілы ўручную, без выкарыстання машыннага навучання. Людзі турбуюцца, што машыннае навучанне стала нейкай «чорнай скрыняй». (Я растлумачу крыху пазней, чаму гэта параўнанне ўсё ж такі перабор.)

Гэта, у агульных словах, і ёсць праблема прадузятасці штучнага інтэлекту або машыннага навучання: сістэма для знаходжання патэрнаў у дадзеных можа знаходзіць няслушныя патэрны, а вы можаце гэтага не заўважыць. Гэта фундаментальная характарыстыка тэхналогіі, і гэта відавочна ўсім, хто працуе з ей у навуковых колах і ў вялікіх тэхналагічных кампаніях. Але яе наступствы складаныя, і нашы магчымыя рашэнні гэтых наступстваў - таксама.

Пагаворым спачатку аб наступствах.

Аб прадузятасці штучнага інтэлекту
ІІ можа няяўна для нас рабіць выбар на карысць тых ці іншых катэгорый людзей, засноўваючыся на вялікай колькасці незаўважных сігналаў.

Сцэнары прадузятасці ІІ

Самае відавочнае і страшнае, што гэтая праблема можа праявіцца, калі гаворка ідзе пра чалавечую разнастайнасць. Нядаўна прайшоў слых, што Амазон паспрабаваў пабудаваць сістэму машыннага навучання для першаснага скрынінга кандыдатаў на працу. Бо сярод працаўнікоў Амазона больш мужчын, прыклады "удалага найму" таксама часцей мужчынскага полу, і ў падборцы рэзюмэ, прапанаванай сістэмай, было больш мужчын. Амазон заўважыў гэта і не стаў выпускаць сістэму ў прадакшн.

Самае важнае ў гэтым прыкладзе тое, што сістэма, па чутках, аддавала перавагу кандыдатам мужчынскай падлогі, нягледзячы на ​​тое, што крысоў не быў паказаны ў рэзюмэ. Сістэма бачыла іншыя патэрны ў прыкладах "удалага найму": напрыклад, жанчыны могуць выкарыстоўваць асаблівыя словы для апісання дасягненняў, або мець асаблівыя хобі. Вядома, сістэма не ведала ні што такое "хакей", ні хто такія "людзі", ні што такое "поспех", - яна проста праводзіла статыстычны аналіз тэксту. Але заканамернасці, якія яна бачыла, засталіся б хутчэй за ўсё не заўважанымі чалавекам, а некаторыя з іх (напрыклад, тое, што людзі рознай падлогі па-рознаму апісваюць поспех) нам, верагодна, складана было б убачыць, нават гледзячы на ​​іх.

Далей - горш. Сістэма машыннага навучання, якая вельмі добрае знаходзіць рак на бледнай скуры, можа горш працаваць з цёмнай скурай, ці наадварот. Не абавязкова з-за прадузятасці, а таму што вам, верагодна, трэба пабудаваць для іншага колеру скуры асобную мадэль, абраўшы іншыя характарыстыкі. Сістэмы машыннага навучання не ўзаемазаменныя нават у такой вузкай сферы, як распазнанне малюнкаў. Вам трэба наладзіць сістэму, часам проста шляхам спроб і памылак, каб добра прыкмячаць асаблівасці ў якія цікавяць вас дадзеных, пакуль вы не дасягнеце жаданай дакладнасці. Але вы можаце не заўважыць, што сістэма ў 98% выпадкаў дакладная пры працы з адной групай і толькі ў 91% (хай гэта і дакладней, чым аналіз, праведзены чалавекам) - з іншай.

Я пакуль выкарыстоўваў у асноўным прыклады, якія тычацца людзей і іх характарыстык. На гэтай тэме ў асноўным і факусуюць дыскусіі вакол гэтай праблемы. Але важна разумець, што прадузятасць у адносінах да людзей - толькі частка праблемы. Мы будзем выкарыстоўваць машыннае навучанне для мноства рэчаў, і памылка выбаркі будзе рэлевантна для ўсіх іх. З іншага боку, калі вы працуеце з людзьмі, прадузятасць дадзеных можа быць злучана не з імі.

Каб зразумець гэта, вернемся да прыкладу з ракам скуры і разгледзім тры гіпатэтычныя магчымасці паломкі сістэмы.

  1. Неаднароднае размеркаванне людзей: незбалансаванае колькасць фатаграфій скуры розных тонаў, што вядзе да ілжывым станоўчым або ложноотрицательным вынікаў, звязаных з пігментацыяй.
  2. Дадзеныя, на якіх трэніруецца сістэма, утрымоўваюць часта сустракаемую і неаднародна размеркаваную характарыстыку, не злучаную з людзьмі і не мелую дыягнастычнай каштоўнасці: лінейку на фатаграфіях праяў раку скуры ці траву на фатаграфіях авечак. У гэтым выпадку вынік будзе адрознівацца, калі на малюнку сістэма знойдзе пікселі чагосьці, што чалавечае вока вызначыць як "лінейку".
  3. Дадзеныя змяшчаюць іншую характарыстыку, якую чалавек не можа ўбачыць, нават калі будзе яе шукаць.

Што гэта значыць? Мы апрыёры ведаем, што дадзеныя могуць па-рознаму прадстаўляць розныя групы людзей, і прынамсі можам запланаваць пошук падобных выключэнняў. Іншымі словамі, ёсць куча сацыяльных прычын меркаваць, што дадзеныя аб групах людзей ужо змяшчаюць некаторую прадузятасць. Калі мы паглядзім на фота з лінейкай, мы ўбачым гэтую лінейку - мы проста ігнаравалі яе раней, ведаючы, што яна не мае значэння, і забыўшыся, што сістэме нічога не вядома.

Але што, калі ўсе вашы фатаграфіі нездаровай скуры зроблены ў офісе, дзе выкарыстоўваюцца лямпы напальвання, а здаровай - пры флуарэсцэнтным святле? Што, калі, скончыўшы здымаць здаровую скуру, перад здымкай нездаровай вы абнавілі аперацыйную сістэму на тэлефоне, а Эпл або Гугл крыху змяніў алгарытм падаўлення шуму? Чалавеку гэтага не заўважыць, колькі б ён ні шукаў такія асаблівасці. А вось сістэма машыннага выкарыстання адразу ж убачыць і выкарыстоўвае гэта. Яна нічога не ведае.

Пакуль мы казалі аб ілжывых карэляцыях, але можа здарыцца і так, што і дадзеныя дакладныя, і вынікі правільныя, але вы не жадаеце іх выкарыстоўваць па этычных, юрыдычным ці кіраўнічым чыннікам. У некаторых юрысдыкцыях, напрыклад, нельга даваць жанчынам зніжку на страхоўку, нягледзячы на ​​тое, што жанчыны, магчыма, бяспечней водзяць машыну. Мы можам лёгка ўявіць сабе сістэму, якая пры аналізе гістарычных дадзеных прысвоіць жаночым імёнам меншы каэфіцыент рызыкі. Окей, давайце выдалім імёны з выбаркі. Але ўспомніце прыклад з Амазонам: сістэма можа вызначыць падлогу па іншых фактарах (хоць яна і не ведае, што такое падлога, ды і што такое машына), а вы гэтага не заўважыце, пакуль рэгулятар заднім лікам не прааналізуе прапанаваныя вамі тарыфы і не спагоніць з вас штраф.

Нарэшце, часта маецца на ўвазе, што мы будзем выкарыстоўваць такія сістэмы толькі для праектаў, звязаных з людзьмі і сацыяльнымі ўзаемадзеяннямі. Гэта не так. Калі вы робіце газавыя турбіны, вы напэўна захочаце ўжыць машыннае навучанне да тэлеметрыі, якая перадаецца дзясяткамі ці сотнямі датчыкаў на вашым прадукце (аўдыё-, відэа-, тэмпературныя, ды і любыя іншыя датчыкі генеруюць дадзеныя, якія можна вельмі лёгка прыстасаваць для стварэння мадэлі машыннага навучання ). Гіпатэтычна вы можаце сказаць: «Вось дадзеныя аб тысячы турбін, якія выйшлі са строю, атрыманыя перад іх паломкай, а вось дадзеныя з тысячы турбін, якія не ламаліся. Пабудуйце мадэль, каб сказаць, у чым паміж імі розніца». Ну а зараз прадстаўце сабе, што датчыкі Siemens каштуюць на 75% дрэнных турбін, і толькі на 12% добрых (сувязі са збоямі пры гэтым няма). Сістэма пабудуе мадэль, каб знаходзіць турбіны з датчыкамі Siemens. Упс!

Аб прадузятасці штучнага інтэлекту
Малюнак — Moritz Hardt, UC Berkeley

Кіраванне прадузятасцю ІІ

Што нам з гэтым зрабіць? Можна падысці да пытання з трох бакоў:

  1. Метадалагічная строгасць пры зборы і менеджменце даных для навучання сістэмы.
  2. Тэхнічныя інструменты для аналізу і дыягностыкі паводзінаў мадэлі.
  3. Трэнінг, навучанне і асцярожнасць пры ўкараненні машыннага навучання ў прадукты.

У кнізе «Мешчанін у дваранстве» Мальера ёсць жарт: аднаму мужчыну распавялі, што літаратура дзеліцца на прозу і паэзію, і ён з захапленнем выяўляе, што ўсё жыццё казаў прозай, сам таго не ведаючы. Мусіць, статыстыкі неяк так і пачуваюцца сёння: самі таго не заўважаючы, яны прысвяцілі свае кар'еры штучнаму інтэлекту і памылцы выбаркі. Шукаць памылку выбаркі і перажываць з-за яе - гэта не новая праблема, нам проста трэба сістэмна падысці да яе вырашэння. Як згадана вышэй, у некаторых выпадках гэта сапраўды прасцей рабіць, вывучаючы праблемы, злучаныя са дадзенымі аб людзях. Мы апрыёры мяркуем, што ў нас могуць быць прадузятасці адносна розных груп людзей, але вось прадузятасць наконт датчыкаў Siemens нам складана нават уявіць.

Новае ва ўсім гэтым, вядома, тое, што людзі больш не займаюцца статыстычным аналізам напрамую. Яго праводзяць машыны, якія ствараюць вялікія комплексныя мадэлі, складаныя для разумення. Пытанне празрыстасці - адзін з асноўных аспектаў праблемы прадузятасці. Нам страшна, што сістэма не проста прадузята, але што няма ніякай магчымасці выявіць яе прадузятасць, і што машыннае навучанне гэтым адрозніваецца ад іншых формаў аўтаматызацыі, якія, як мяркуецца, складаюцца з дакладных лагічных крокаў, якія можна праверыць.

Тут ёсць дзве праблемы. Мы, магчыма, усё ж такі можам праводзіць нейкі аўдыт сістэм машыннага навучання. І аўдыт любой іншай сістэмы насамрэч ніколькі не лягчэй.

Па-першае, адзін з напрамкаў сучасных даследаванняў у галіне машыннага навучання - гэта пошук метадаў, як выяўляць важны функцыянал сістэм машыннага навучання. Пры гэтым, машыннае навучанне (у яго бягучым стане) - гэта зусім новая вобласць навукі, якая хутка мяняецца, так што не варта думаць, што немагчымыя сёння рэчы не могуць неўзабаве стаць цалкам рэальнымі. Праект OpenAI - Цікавы таму прыклад.

Па-другое, ідэя аб тым, што можна правяраць і разумець працэс прыняцця рашэнняў у існуючых сістэмах або арганізацыях, добрая ў тэорыі, але так сабе на практыцы. Зразумець, як прымаюцца рашэнні ў вялікай арганізацыі, зусім не проста. Нават калі там існуе фармальны працэс прыняцця рашэнняў, ён не адлюстроўвае тое, як людзі ўзаемадзейнічаюць насамрэч, ды і самі яны часта не маюць лагічнага сістэмнага падыходу да прыняцця сваіх рашэнняў. Як сказаў мой калега Віджэй Панда, людзі - гэта таксама чорныя скрыні.

Вазьміце тысячу людзей у некалькіх якія перасякаюцца кампаніях і інстытутах, і праблема стане яшчэ складаней. Мы ведаем постфактум, што "Спейс шатла" было наканавана распасціся на часткі пры вяртанні, і асобныя людзі ўнутры NASA мелі інфармацыю, якая давала ім нагода думаць, што можа адбыцца нешта дрэннае, але сістэма ў цэлым гэтага не ведала. NASA нават толькі што прайшла аналагічны аўдыт, страціўшы папярэдні шатл, і ўсё-такі яна страціла яшчэ адзін – па вельмі падобнай прычыне. Лёгка сцвярджаць, што арганізацыі і людзі прытрымліваюцца дакладных лагічных правілаў, якія можна праверыць, зразумець і памяняць - але вопыт даказвае адваротнае. Гэта «памылка Дзяржплана.

Я часта параўноўваю машыннае навучанне з базамі дадзеных, асабліва з рэляцыйнымі – новай фундаментальнай тэхналогіяй, якая змяніла магчымасці інфарматыкі і свет вакол яе, якая стала часткай усяго, якую мы ўвесь час выкарыстоўваем, не аддаючы сабе ў гэтым справаздачу. У баз дадзеных таксама ёсць праблемы, і яны падобнай уласцівасці: сістэма можа быць пабудавана на няслушных здагадках ці на дрэнных дадзеных, але гэта складана будзе заўважыць, і людзі, якія выкарыстоўваюць сістэму, будуць рабіць тое, што яна ім кажа, не задаючы пытанняў. Ёсць куча старых жартаў пра работнікаў падатковай, якія калісьці няправільна запісалі вашае імя, і пераканаць іх выправіць памылку нашмат складаней, чым насамрэч памяняць імя. Аб гэтым можна думаць па-рознаму, але незразумела як лепш: як аб тэхнічнай праблеме ў SQL, ці як аб памылцы ў рэлізе Oracle, ці як аб збоі бюракратычных інстытутаў? Наколькі складана знайсці памылку ў працэсе, які прывёў да таго, што сістэма не мае такой фічы, як выпраўленне памылак друку? Ці можна было зразумець гэта да таго, як людзі пачалі скардзіцца?

Яшчэ прасцей гэтую праблему ілюструюць гісторыі, калі кіроўцы з-за састарэлых дадзеных у навігатары з'язджаюць у рэкі. Окей, карты павінны ўвесь час абнаўляцца. Але наколькі ТомТом вінаваты ў тым, што вашу машыну зносіць у моры?

Я гэта кажу да таго, што так - прадузятасць машыннага навучання створыць праблемы. Але праблемы гэтыя будуць падобныя да тых, з якімі мы сутыкаліся ў мінулым, і іх можна будзе заўважыць і вырашыць (ці не) прыкладна настолькі ж добра, наколькі гэта нам атрымоўвалася ў мінулым. Такім чынам, сцэнар, пры якім прадузятасць ІІ нанясе ўрон, наўрад ці здарыцца з вядучымі даследчыкамі, якія працуюць у вялікай арганізацыі. Хутчэй за ўсё, які-небудзь малазначны тэхналагічны падрадчык ці вендар ПА напіша нешта на каленцы, выкарыстаючы незразумелыя яму апенсорсныя кампаненты, бібліятэкі і прылады. А няўдачлівы кліент купіцца на словазлучэнне "штучны інтэлект" у апісанні прадукта і, не задаючы лішніх пытанняў, раздасць яго сваім нізкааплатным працаўнікам, пакараўшы ім рабіць тое, што скажа ІІ. Менавіта гэта і адбылося з базамі даных. Гэта не праблема штучнага інтэлекту, і нават не праблема праграмнага забесьпячэньня. Гэта чалавечы фактар.

Заключэнне

Машыннае навучанне можа зрабіць усё, чаму вы можаце навучыць сабаку, - але вы ніколі не можаце быць упэўнены, чаму ж менавіта вы гэтага сабаку навучылі.

Мне часта здаецца, што тэрмін «штучны інтэлект» толькі мяшае заходзіць у гутаркі накшталт гэтага. Гэты тэрмін стварае ілжывае ўражанне таго, што мы насамрэч стварылі яго - гэты інтэлект. Што мы на шляху да HAL9000 або Skynet — да чагосьці, што насамрэч разумее. Але не. Гэта проста машыны, і іх нашмат правільней параўноўваць, скажам, з пральнай машынай. Яна нашмат лепш за чалавека спраўляецца з мыццём, але калі вы пакладзеце ў яе посуд замест бялізны, яна яе… памыць. Посуд нават стане чыстым. Але гэта будзе не тое, на што вы разлічвалі, і адбудзецца гэта не таму, што сістэма мае нейкія прадузятасці адносна посуду. Пральная машына не ведае ні што такое посуд, ні што такое адзенне - гэта ўсяго толькі прыклад аўтаматызацыі, канцэптуальна не адрозны ад таго, як працэсы аўтаматызавалі раней.

Аб чым бы гаворка ні ішла, - аб машынах, самалётах або базах дадзеных - гэтыя сістэмы будуць адначасова вельмі магутнымі і вельмі абмежаванымі. Яны будуць цалкам залежаць ад таго, як людзі выкарыстоўваюць гэтыя сістэмы, добрыя ці кепскія ў іх пры гэтым намеры і наколькі яны разумеюць іх працу.

Такім чынам, казаць, што "штучны інтэлект - гэта матэматыка, таму ў яго не можа быць прадузятасцяў" зусім не дакладна. Але настолькі ж няслушна сцвярджаць, што машыннае навучанне "суб'ектыўна па сваёй прыродзе". Машыннае навучанне знаходзіць патэрны ў дадзеных, і якія патэрны яно знойдзе, залежыць ад дадзеных, а дадзеныя залежаць ад нас. Як і тое, што мы з імі робім. Машыннае навучанне сапраўды робіць некаторыя рэчы нашмат лепш за нас, — але сабакі, напрыклад, нашмат больш эфектыўна людзей у выяўленні наркотыкаў, што зусім не падстава прыцягваць іх у якасці сведак і выносіць прысуды на падставе іх паказанняў. А сабакі, дарэчы, нашмат разумнейшыя за любую сістэму машыннага навучання.

Пераклад на беларускую: Дыяна Лецкая.
Рэдактура: Аляксей Іваноў.
супольнасць: @PonchikNews.

Крыніца: habr.com

Дадаць каментар