Nowy sposób sortowania obiektów przez sztuczną inteligencję DeepMind może przyspieszyć globalne obliczenia

HOT

Nowy sposób sortowania obiektów przez sztuczną inteligencję DeepMind może przyspieszyć globalne obliczenia

Sztuczna inteligencja gry Google DeepMind właśnie znalazła inny sposób na przyspieszenie kodu

Ciąg odkryć DeepMind w fundamentalnej informatyce trwa. W zeszłym roku firma wykorzystała wersję swojej gry AI AlphaZero, aby znaleźć nowe sposoby przyspieszenia obliczeń kluczowego elementu matematyki w sercu wielu różnych rodzajów kodu, pobijając 50-letni rekord.

Teraz ponownie zastosował tę samą sztuczkę — dwukrotnie. Korzystając z nowej wersji AlphaZero o nazwie AlphaDev, brytyjska firma (ostatnio przemianowana na Google DeepMind po fuzji z laboratorium sztucznej inteligencji swojej siostrzanej firmy w kwietniu) odkryła sposób sortowania elementów na liście do 70% szybciej niż najlepsze istniejące metoda.

Znalazł również sposób na przyspieszenie kluczowego algorytmu stosowanego w kryptografii o 30%. Algorytmy te należą do najpowszechniejszych elementów konstrukcyjnych oprogramowania. Małe przyspieszenia mogą mieć ogromne znaczenie, obniżając koszty i oszczędzając energię.

„Prawo Moore’a dobiega końca, a chipy zbliżają się do swoich fizycznych granic” — mówi Daniel Mankowitz, naukowiec z Google DeepMind. „Musimy znaleźć nowe i innowacyjne sposoby optymalizacji obliczeń”.

„To interesujące nowe podejście” — mówi Peter Sanders, który studiuje projektowanie i wdrażanie wydajnych algorytmów w Instytucie Technologii w Karlsruhe w Niemczech i który nie był zaangażowany w te prace. „Sortowanie jest nadal jednym z najczęściej używanych podprogramów w informatyce” — mówi.

DeepMind opublikował dziś swoje wyniki w Nature. Ale techniki odkryte przez AlphaDev są już używane przez miliony programistów. W styczniu 2022 roku firma DeepMind przekazała swoje nowe algorytmy sortowania organizacji zarządzającej C++, jednym z najpopularniejszych języków programowania na świecie, a po dwóch miesiącach rygorystycznej niezależnej weryfikacji algorytmy AlphaDev zostały dodane do języka. Była to pierwsza zmiana w algorytmach sortowania C++ od ponad dekady i pierwsza aktualizacja obejmująca algorytm odkryty przy użyciu sztucznej inteligencji.

Firma DeepMind dodała swoje inne nowe algorytmy do Abseil, otwartej kolekcji wstępnie napisanych algorytmów C++, z których może korzystać każdy, kto koduje w C++. Te algorytmy kryptograficzne obliczają liczby zwane skrótami, które mogą być używane jako unikalne identyfikatory dla dowolnego rodzaju danych. DeepMind szacuje, że jego nowe algorytmy są obecnie używane biliony razy dziennie.

AlphaDev opiera się na AlphaZero, modelu uczenia się ze wzmacnianiem, który DeepMind wyszkolił, aby opanować gry takie jak Go i szachy. Przełomem DeepMind było potraktowanie problemu znalezienia szybszego algorytmu jako gry, a następnie sprawienie, by jego sztuczna inteligencja go wygrała — tą samą metodą, której użyto do przyspieszenia obliczeń w zeszłorocznych badaniach.

W przypadku AlphaDev zabawa polega na wybieraniu instrukcji komputera i układaniu ich w takiej kolejności, aby powstałe linijki kodu tworzyły algorytm. AlphaDev wygrywa grę, jeśli algorytm jest zarówno poprawny, jak i szybszy od istniejących. Brzmi prosto, ale aby dobrze grać, AlphaDev musi przeszukać astronomiczną liczbę możliwych ruchów.

Firma DeepMind zdecydowała się na pracę z asemblerem, językiem programowania, którego można użyć do podania szczegółowych instrukcji dotyczących przenoszenia liczb na chipie komputerowym. Niewielu ludzi pisze w asemblerze; jest to język, na który kod napisany w językach takich jak C++ jest tłumaczony przed uruchomieniem. Zaletą asemblera jest możliwość podziału algorytmów na szczegółowe kroki — dobry punkt wyjścia, jeśli szukasz skrótów.

Chipy komputerowe mają różne gniazda, w których umieszczane i przetwarzane są liczby. Asembler zawiera podstawowe instrukcje dotyczące manipulowania tym, co znajduje się w tych gniazdach, takie jak mov(A,B), które mówi komputerowi, aby przeniósł liczbę znajdującą się w gnieździe A do gniazda B, oraz cmp(A,B), które mówi komputerowi, aby sprawdził, czy to, co jest w gnieździe A, jest mniejsze, równe lub większe niż to, co jest w gnieździe B. Długie sekwencje takich instrukcji mogą wykonać wszystko, co robią komputery.

AlphaDev odgrywa ruch w grze, dodając nową instrukcję asemblera do budowanego algorytmu. Na początek AlphaDev losowo dodawał instrukcje, generując algorytmy, które nie działały. Z biegiem czasu, podobnie jak AlphaZero z grami planszowymi, nauczył się wygrywać ruchy. Dodał instrukcje, które doprowadziły do ​​​​algorytmów, które nie tylko działały, ale były poprawne i szybkie.

DeepMind skupił się na algorytmach sortowania krótkich list zawierających od trzech do pięciu pozycji. Takie algorytmy są wielokrotnie wywoływane w programach sortujących dłuższe listy. Przyspieszenie tych krótkich algorytmów będzie zatem miało łączny efekt domina.

Ale krótkie algorytmy były również badane i optymalizowane przez ludzi od dziesięcioleci. Mankowitz i jego współpracownicy zaczęli od algorytmu sortowania listy trzech elementów, jako dowodu słuszności koncepcji. Najlepsza opracowana przez człowieka wersja tego algorytmu zawiera 18 instrukcji. Nie wierzyli, że uda im się to poprawić.

„Szczerze mówiąc, nie spodziewaliśmy się, że uda nam się osiągnąć coś lepszego” — mówi. „Jednak ku naszemu zdziwieniu udało nam się to przyspieszyć. Początkowo myśleliśmy, że to pomyłka, błąd lub coś w tym rodzaju, ale kiedy przeanalizowaliśmy program, zdaliśmy sobie sprawę, że AlphaDev rzeczywiście coś odkrył”.

AlphaDev znalazł sposób na posortowanie listy trzech pozycji w 17 instrukcjach zamiast 18. Odkrył, że pewne kroki można pominąć. „Kiedy spojrzeliśmy na to później, pomyśleliśmy:„ Wow, to zdecydowanie ma sens ”- mówi Mankowitz. „Ale odkrycie czegoś takiego wymaga ludzi, którzy są ekspertami w języku asemblera”.

AlphaDev nie mógł pokonać najlepszej ludzkiej wersji algorytmu do sortowania listy czterech elementów, co wymaga 28 instrukcji. Ale pokonał najlepszą ludzką wersję dla pięciu pozycji, zmniejszając liczbę instrukcji z 46 do 42.

Oznacza to znaczne przyspieszenie. Istniejący algorytm C++ do sortowania listy pięciu elementów zajmował około 6,91 nanosekund na typowym układzie Intel Skylake. AlphaDev zajęło 2,01 nanosekundy, około 70% szybciej.

DeepMind porównuje odkrycie AlphaDev do jednego z dziwnych, ale zwycięskich ruchów AlphaGo w meczu Go z arcymistrzem Lee Sedolem w 2016 roku. „Wszyscy eksperci spojrzeli na ten ruch i powiedzieli:„ To nie jest właściwa rzecz. To kiepskie posunięcie” — mówi Mankowitz. „Ale tak naprawdę było to właściwe posunięcie, a AlphaGo nie tylko wygrało grę, ale także wpłynęło na strategie, z których zaczęli korzystać profesjonalni gracze w Go”.

Sanders jest pod wrażeniem, ale nie uważa, że ​​wyniki powinny być wyprzedane. „Zgadzam się, że techniki uczenia maszynowego w coraz większym stopniu zmieniają reguły gry w programowaniu i wszyscy oczekują, że sztuczna inteligencja wkrótce będzie w stanie wymyślić nowe, lepsze algorytmy” — mówi. „Ale jeszcze nie jesteśmy na miejscu”.

Po pierwsze, Sanders zwraca uwagę, że AlphaDev używa tylko podzbioru instrukcji dostępnych w asemblerze. Mówi, że wiele istniejących algorytmów sortowania używa instrukcji, których AlphaDev nie wypróbował. Utrudnia to porównanie AlphaDev z najlepszymi konkurencyjnymi podejściami.

To prawda, że ​​AlphaDev ma swoje ograniczenia. Najdłuższy wygenerowany algorytm miał długość 130 instrukcji i pozwalał na sortowanie listy składającej się z maksymalnie pięciu elementów. Na każdym etapie AlphaDev wybierał spośród 297 możliwych instrukcji montażu (spośród wielu innych). „Poza 297 instrukcjami i grami montażowymi o długości ponad 130 instrukcji nauka stała się powolna” — mówi Mankowitz.

To dlatego, że nawet przy 297 instrukcjach (lub ruchach w grze) liczba możliwych algorytmów, które AlphaDev może skonstruować, jest większa niż możliwa liczba partii w szachy (10120) i liczba atomów we wszechświecie (około 1080).

Nowy sposób sortowania obiektów przez sztuczną inteligencję DeepMind może przyspieszyć globalne obliczenia

Algorytmy sortowania to podstawowe funkcje stale używane przez komputery na całym świecie, więc udoskonalony algorytm stworzony przez sztuczną inteligencję mógłby przyspieszyć działanie milionów programów

Algorytm używany biliony razy dziennie na całym świecie może działać nawet o 70 procent szybciej dzięki sztucznej inteligencji stworzonej przez brytyjską firmę DeepMind. Znalazł ulepszony sposób sortowania danych przez komputery, który przez dziesięciolecia był pomijany przez programistów.

„Szczerze mówiąc, nie spodziewaliśmy się, że osiągniemy coś lepszego: to bardzo krótki program, tego typu programy były badane od dziesięcioleci” — mówi Daniel Mankowitz z DeepMind.

Znane jako algorytmy sortowania, są jednymi z koni roboczych obliczeń, służącymi do organizowania danych poprzez alfabetyczne klasyfikowanie słów lub liczb w kolejności od najmniejszej do największej. Istnieje wiele różnych algorytmów sortowania, ale innowacje są ograniczone, ponieważ były one wysoce optymalizowane przez dziesięciolecia.

Teraz DeepMind stworzył model sztucznej inteligencji o nazwie AlphaDev, który ma na celu odkrywanie nowych algorytmów do wykonania danego zadania, z nadzieją na pokonanie naszych obecnych wysiłków. Zamiast poprawiać obecne algorytmy, AlphaDev zaczyna od zera.

Używa kodu asemblera, który jest pośrednim językiem komputerowym, który znajduje się pomiędzy kodem napisanym przez człowieka a sekwencjami instrukcji binarnych zakodowanych w 0 i 1. Kod asemblera może być żmudnie odczytywany i rozumiany przez ludzi, ale większość oprogramowania jest napisana w języku wyższego poziomu, który jest bardziej intuicyjny przed przetłumaczeniem lub „kompilacją” na kod asemblera. DeepMind twierdzi, że kod asemblera daje AlphaDev większą swobodę tworzenia bardziej wydajnych algorytmów.

Sztuczna inteligencja ma zbudować algorytm po jednej instrukcji na raz i przetestować swoje dane wyjściowe ze znanym poprawnym rozwiązaniem, aby upewnić się, że tworzy skuteczną metodę. Mówi się również, aby stworzyć jak najkrótszy algorytm. DeepMind mówi, że zadanie staje się coraz trudniejsze przy większych problemach, ponieważ liczba możliwych kombinacji instrukcji może szybko zbliżyć się do liczby cząstek we wszechświecie.

hot Film koncertowy członka BTS Sugi D-Day zostanie wydany w…


hot Harmonogram wydawniczy Shoguna: Kiedy ukaże się odcinek 4? |…


hot Fortnite Rozdział 5 Sezon 2: Mityczna broń, bossowie i…


hot Hades przybywa do Fortnite | Początek gry


hot Co się stanie, gdy dezaktywuję Messengera?


hot Jak grać w Rainbow Six Siege za pomocą myszy i klawiatury na PS4 bez adaptera?


hot Dlaczego nie mogę usunąć mojego konta Quora?


hot Jak usunąć moje konto Warface?


hot Awarie na Instagramie, Facebooku i wątkach: co się dzieje?


hot Jak zmienić prędkość wiadomości audio Whatsapp?



Bradley Gervais

Poznaj Bradleya Gervaisa, mistrza modów do gier i magii IT. Dzięki głębokiemu zrozumieniu zawiłości gier Bradley przekształca cyfrowe krajobrazy, przesuwając granice wrażeń w grach poprzez innowacyjne modyfikacje. Jego wiedza wykracza poza sferę wirtualną, płynnie splatając się ze złożonością technologii informatycznych. Umiejętności Bradleya stanowią połączenie kreatywności i sprawności technicznej, dzięki czemu zyskał reputację autorytetu w społeczności moderów gier. Niezależnie od tego, czy tworzysz wciągające ulepszenia gier, czy poruszasz się po labiryncie IT, Bradley Gervais jest Twoim przewodnikiem po płynnie połączonym świecie, w którym wydajność gry łączy się z technologiczną finezją.