Im więcej danych, tym więcej trzeba mocy procesorów. To zużywa energię i podgrzewa planetę. Przetwarzanie danych w dobie globalnego ocieplenia jest po prostu nieetyczne. Czy da się inaczej?
Sztuczna inteligencja tak naprawdę nie istnieje – fizycznie. Sztuczne sieci neuronowe są tylko symulacją działania prawdziwych neuronów, zapisami w komputerowej pamięci. Symulacja działania pojedynczego neuronu w komputerze wymaga przeniesienia danych do procesora, przemnożenia ich, zapisania uzyskanego wyniku. W przypadku sieci neuronowej trzeba te operacje powtórzyć miliony razy.
Tymczasem praca procesora, pamięci (i układu chłodzenia, bowiem procesor się nagrzewa) wymaga energii, a współczesne komputery nie są przy tym szczególnie energooszczędne. Nawet zwykły domowy, na którym można uruchomić prostą sieć neuronową, potrzebuje kilkuset watów. Silniejsze obliczeniowo maszyny zużywają już znacznie więcej. Cray XC40 (który ma na przykład warszawskie Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego UW) zużywa prawie dwa megawaty – czyli miliony watów.
Naturalnie, jeszcze więcej energii wymaga przetwarzanie danych na serwerach gigantów. Google ma ich dwa i pół miliona i oficjalnie podaje, że jego centra obliczeniowe zużywają ponad pół tysiąca gigawatów mocy (gigawaty to już miliardy watów). Dla przykładu moc największej w Polsce elektrowni Bełchatów wynosi 5 gigawatów, więc Google potrzebowałoby stu takich elektrowni. Przy czym Google chwali się, że jego serwery bardzo energooszczędne – zużywają o połowę mniej prądu niż średnia w branży przetwarzania danych.
Głodni energii
Szacuje się, że wszystkie centra obliczeniowe na świecie potrzebują już 200 terawatogodzin (TWh) energii rocznie – to nieco więcej niż zużywamy w całym kraju (170 TWh). Ale dane do przetwarzania trzeba jeszcze przesłać. Za każdym razem, gdy korzystamy z map Google czy wrzucamy zdjęcie na Facebooka, nasz telefon lub komputer przesyła dane. Jeśli brać pod uwagę także telekomunikację, na przesyłanie i przetwarzanie danych pochłania już ponad dwa procent energii, mniej więcej tyle, co transport lotniczy.
Google podaje, że jego centra obliczeniowe zużywają ponad pół tysiąca megawatów mocy. Dla przykładu moc największej w Polsce elektrowni Bełchatów wynosi 5 megawatów, więc Google potrzebowałoby stu takich elektrowni. Przy czym Google chwali się, że jego serwery bardzo energooszczędne – zużywają o połowę mniej prądu niż średnia w branży przetwarzania danych
Pewnym sposobem jest tworzenie olbrzymich ośrodków przetwarzania danych, obsługiwanych przez tworzone na zamówienie serwery o mocno uproszczonej (w porównaniu z seryjnie produkowanymi) architekturze. To potrafi ograniczyć zużycie energii o mniej więcej jedną czwartą. Ale sporą część energii zużywa też chłodzenie serwerów (nawet domowe komputery mocno się nagrzewają). Tu oszczędności przynosi chłodzenie ich wodą (zamiast klimatyzowanym powietrzem).
Microsoft nawet zatopił swoje serwery w oceanie u wybrzeży Szkocji, by je chłodzić. Trzeba jednak przyznać, że zrobił to w ramach testów (serwery zatopione w oceanie trudno naprawiać, gdy się zepsują) i akcji wizerunkowej (znakomita większość energii elektrycznej w Szkocji pochodzi z wiatru).
Rosnący apetyt na dane
Tymczasem, jak wylicza ubiegłoroczne „Nature”, nasz apetyt na przetwarzanie danych stale rośnie. Pod koniec ubiegłego wieku ruch w internecie nie przekraczał kilkudziesięciu petabajtów (10 do potęgi piętnastej) danych, pod koniec pierwszej dekady tego wieku osiągnął kilkadziesiąt eksabajtów (10 do potęgi osiemnastej) by obecnie sięgać zetabajtów (10 do potęgi dwudziestej pierwszej). Jak prognozują autorzy pracy opublikowanej w „Challenges” już za dziesięć lat na przesyłanie i przetwarzanie danych w ciągu dekady ludzkość może poświęcać nawet jedną piątą globalnego zużycia energii, przy czym centra obliczeniowe będą zużywać jedną trzecią z tego.
Dlaczego dotychczas ilość przetwarzanych danych rosła mniej więcej tysiąckrotnie na dekadę, a zużycie energii znacznie wolniej? Rosła bowiem też wydajność obliczeniowa komputerów. Liczba operacji, jakie może wykonać komputer w przeliczeniu na jednostkę energii podwajała się co mniej więcej dwa lata i od lat czterdziestych ubiegłego wieku wzrosła dziesięć miliardów razy. Ale od początku tego wieku tempo to zwolniło.
Być może dotarliśmy już do fizycznych granic miniaturyzacji i możliwości współczesnej technologii procesorów – komentował dla „Nature” autor pracy na ten temat Jonathan Koomey.
Chyba, że zrewolucjonizujemy same procesory i sieci neuronowe.
Nasze naturalne sieci neuronowe, składające się z miliardów neuronów połączonych kilkoma bilionami (to milion milionów) synaps, są bardzo oszczędne, jeśli chodzi o zużycie energii. Ludzkie mózgi potrzebują tylko dwunastu watów (to dziesięciokrotnie mniej niż przeciętny procesor graficzny). Czy da się stworzyć sieci neuronowe, które będą równie wydajne?
Zwierzęta spalają mniej (a mogą więcej)
Teoretycznie tak. Badacze z Argonne National Laboratory (ANL) należącego do amerykańskiego Departamentu Energii mają nawet projekt. Zainspirowani mózgami owadów zaprojektowali sieć neuronową opartą na dynamicznych filtrach i wagach, które zmieniają siłę połączeń między elementami obliczeniowymi w czasie rzeczywistym. Procesor oparty na opracowanej przez nich nowej technologii (tlenkach glinu i wolframu) mógłby zużywać zaledwie jeden procent energii wykorzystywanej przez klasyczne procesory oparte na krzemie.
Już za dziesięć lat na przesyłanie i przetwarzanie danych w ciągu dekady ludzkość może poświęcać nawet jedną piątą globalnego zużycia energii
Na razie to tylko komputerowe symulacje inżynierów, które obliczeniowo udowadniają słuszność ich założeń. Ale ich praca została nagrodzona na zorganizowanej przez amerykańskie stowarzyszenie inżynierów (Institute of Electrical and Electronics Engineers) konferencji poświęconej technologiom obliczeniowym w przemyśle kosmicznym (Computer Society’s Space Computing Conference). Dlaczego technologiom kosmicznym? Bo w podróż w kosmos źródło energii trzeba zabrać ze sobą. Jeśli sonda kosmiczna ma służyć przez setki lub tysiące lat, liczy się oszczędność prądu.
Na razie to komputerowe symulacje projektantów, ale warto je wziąć na poważnie. Projekt częściowo finansuje DARPA (czyli amerykańska Agencja Zaawansowanych Projektów Badawczych w Obszarze Obronności). Finansuje głównie projekty zbrojeniowe, ale część z finansowanych przez nią badań znajduje szerokie zastosowania cywilne. Bez nich nie było by komputerowej myszy, systemu GPS, ani systemów rozpoznawania mowy – ale przede wszystkim nie było by dzisiejszego internetu, który powstał na wzór wojskowej sieci ARPANET.
Podgrzewanie świata (danymi)
Niestety, większość produkowanej przez ludzkość energii pochodzi nadal ze spalania paliw kopalnych (głównie węgla lub gazu). Wysyłając zdjęcia z wakacji gdzieś na serwer w chmurze, który opatrzy je opisami, korzystając z nawigacji ostrzegającej przed korkami, czy kupując w internetowym sklepie, który podpowiada nam towary, dokładamy też swój wkład do globalnego ocieplenia. To wszystko robią algorytmy na serwerach w energożernych obliczeniowych centrach.
Można do tego wszystkiego, oczywiście, czerpać energię z odnawialnych źródeł. Ale dopóki nie przejdziemy na nią całkiem i nie będzie komercyjnie dostępnej technologii, która przyniosłaby przełom w kwestii energożerności przetwarzania danych, to jesteśmy ugotowani.
Według szacunków szwedzkiego instytutu techniki (KTH) sam internet już teraz zużywa jedną dziesiątą prądu na świecie. Z najnowszych badań wynika zaś, że globalne ocieplenie będzie postępowało szybciej, niż przypuszczamy. Do końca wieku może być nawet o 6-7 stopni cieplej w porównaniu z epoką przedprzemysłową.
Chip, który zjada mniej prądu
Badacze z Massachusetts Institute of Technology w ubiegłym roku opracowali układ scalony, który pozwoli ograniczyć zużycie energii przez sieci neuronowe o 95 procent i kilkukrotnie przyspieszyć wykonywane przez nie obliczenia.
W tradycyjnych układach scalonych informacje bezustannie wędrują między procesorem a pamięcią, a przesyłanie danych zużywa energię. Sieci neuronowe, które składają się z setek tysięcy lub milionów elementów obliczeniowych, są przez to bardzo energożerne. Naukowcy zaczęli się więc zastanawiać, czy nie można jakoś tego problemu obejść.
Sieci neuronowe działają w ten sposób, że pojedynczy element obliczeniowy otrzymuje dane z kilku innych elementów, mnoży je przez pewną liczbę (zwaną wagą) i przekazuje wynik (zwany iloczynem skalarnym) dalej. Ale uruchamiane na komputerach są abstrakcyjnymi symulacjami, a ich węzły są tylko liczbami zapisywanymi w pamięci komputera.
W nowym układzie scalonym opracowanym przez badaczy z MIT wartości wejściowe kodowane są w sposób analogowy, w natężeniu napięcia elektrycznego i dopiero wtedy mnożone przez wagę. Połączone wartości napięcia (iloczyny skalarne) są zaś przetwarzane na wyniki liczbowe. W ten sposób jeden chip może wykonać obliczenia symulujące szesnaście węzłów sieci w jednym „kroku”.
Minusem tego jest, że oparta na takich procesorach sieć traci na dokładności. Różnica nie jest jednak wielka, około 2 do 3 proc. w porównaniu z siecią opartą na konwencjonalnych procesorach.