Biblioteka Javy dla sztucznej inteligencji.
Czym jest Deeplearning4j?
Mając na celu integrację modeli z aplikacjami Java, Deeplearning4j oferuje zestaw komponentów do tworzenia takich aplikacji opartych na JVM, które implementują czy opierają się na sztucznej inteligencji.
Od strony technicznej Eclipse Deeplearning4j jest rozproszoną biblioteką do głębokiego uczenia (deep learning) o otwartym kodzie źródłowym dla wirtualnej maszyny Javy. Deeplearning4j został napisany w Javie i jest kompatybilny z dowolnym językiem JVM, takim jak Scala, Clojure czy Kotlin. Podstawowe metody obliczeniowe są zaś napisane w językach C, C ++ i Cuda. Keras będzie służyć jako API Pythona. Zintegrowany z Hadoop i Apache Spark, Deeplearning4j wprowadza sztuczną inteligencję do środowisk biznesowych do użytku na rozproszonych CPU i GPU.
Tylko biblioteka? Nie.
Deeplearning4j to w rzeczywistości zestaw projektów przeznaczonych do obsługi wszystkich potrzeb aplikacji polegających na deep learningu a opartych na JVM. Poza samym Deeplearning4j (interfejs API wysokiego poziomu), zawiera ND4J (algebra liniowa ogólnego przeznaczenia), SameDiff (oparte na wykresach automatyczne różnicowanie), DataVec (ETL), Arbiter (wyszukiwanie hiperparametrów) oraz C ++ LibND4J (stanowi podstawę dla wszystkich wcześniej wymienionych). LibND4J z kolei odwołuje się do standardowych bibliotek do obsługi procesorów i GPU, takich jak OpenBLAS, OneDNN (MKL-DNN), cuDNN czy cuBLAS.
Inne rozwiązania
Deeplearning4j konkuruje z innymi platformami głębokiego uczenia. Najbardziej porównywalnym projektem jest TensorFlow - wiodąca platforma do głębokiego uczenia się od końca do końca do produkcji. TensorFlow ma obecnie interfejsy dla Pythona, C ++ i Java (eksperymentalne) oraz oddzielną implementację dla JavaScript. TensorFlow wykorzystuje dwa sposoby uczenia: oparte na wykresach i tryb natychmiastowy (przyspieszone wykonanie). Deeplearning4j obecnie obsługuje tylko wykonywanie oparte na grafach.
Także PyTorch, platforma głębokiego uczenia do badań naukowych, obsługuje tylko tryb natychmiastowy. Posiada ona interfejsy dla Pythona, C ++ i Java. Z kolei H2O Sparkling Water integruje platformę uczenia maszynowego typu open source o nazwie H2O z platformą Spark. H2O ma z kolei interfejsy do Java i Scala, Python, R i H2O Flow.
Korzystanie z Deeplearning4j
Mimo otwartego kodu źródłowego jest także dostępne komercyjne wsparcie dla Deeplearning4j. Można je wykupić od Konduit, który obsługuje również wielu programistów pracujących nad projektem.
Zasadniczo Deeplearning4j traktuje zadania ładowania danych i algorytmów uczących jako oddzielne procesy. Ładujesz i transformujesz dane przy użyciu biblioteki DataVec oraz trenujesz modele przy użyciu tensorów i biblioteki ND4J.
Na chwilę obecną najprościej jest wypróbować Deeplearning4j przez skorzystania z oficjalnego quick startu. Jest on dostępny tutaj. Wymaga w miarę aktualnej wersji Javy, instalacji Mavena, działającego Gita i jakiegoś IDE (preferowany jest IntelliJ IDEA ale może być także Eclipse). Przygoda zaczyna się od sklonowania repozytorium eclipse/deeplearning4j-examples z pomocą Gita lub GitHuba Desktop. Wtedy można już zainstalować z poziomu Mavena przykładowe projekty z katalogu dl4j-examples.
Oficjalna strona projektu znajduje się tutaj.