Przegląd modeli ogrodów

Ogród modeli TensorFlow zapewnia implementacje wielu najnowocześniejszych modeli uczenia maszynowego (ML) do przetwarzania wizji i języka naturalnego (NLP), a także narzędzia przepływu pracy, które umożliwiają szybkie konfigurowanie i uruchamianie tych modeli na standardowych zestawach danych. Niezależnie od tego, czy chcesz porównać wydajność dobrze znanego modelu, zweryfikować wyniki niedawno opublikowanych badań, czy rozszerzyć istniejące modele, Model Garden może pomóc w rozwoju badań i aplikacji ML.

Model Garden zawiera następujące zasoby dla deweloperów uczenia maszynowego:

Zasoby te są przeznaczone do użytku ze strukturą TensorFlow Core i do integracji z istniejącymi projektami programistycznymi TensorFlow. Zasoby Model Garden są również udostępniane na licencji open source , dzięki czemu można swobodnie rozszerzać i rozpowszechniać modele i narzędzia.

Praktyczne modele uczenia maszynowego wymagają intensywnych obliczeń do trenowania i uruchamiania oraz mogą wymagać akceleratorów, takich jak jednostki przetwarzania graficznego (GPU) i jednostki przetwarzania tensorowego (TPU). Większość modeli w Model Garden została przeszkolona na dużych zestawach danych przy użyciu TPU. Można jednak również trenować i uruchamiać te modele na procesorach GPU i CPU.

Modele Modele ogrodowe

Modele uczenia maszynowego w Model Garden zawierają pełny kod, dzięki czemu można je testować, trenować lub ponownie szkolić na potrzeby badań i eksperymentów. Model Garden obejmuje dwie podstawowe kategorie modeli: modele oficjalne i modele badawcze .

Oficjalne modele

Oficjalne repozytorium modeli to zbiór najnowocześniejszych modeli, z naciskiem na przetwarzanie wizji i języka naturalnego (NLP). Modele te są implementowane przy użyciu aktualnych interfejsów API wysokiego poziomu TensorFlow 2.x. Biblioteki modeli w tym repozytorium są zoptymalizowane pod kątem wysokiej wydajności i aktywnie utrzymywane przez inżynierów Google. Oficjalne modele zawierają dodatkowe metadane, których można użyć do szybkiego konfigurowania eksperymentów przy użyciu struktury eksperymentów szkoleniowych Model Garden.

Modele badawcze

Repozytorium modeli badawczych to zbiór modeli opublikowanych jako zasoby kodu dla artykułów naukowych. Modele te są implementowane przy użyciu zarówno TensorFlow 1.x, jak i 2.x. Biblioteki modeli w folderze badawczym są obsługiwane przez właścicieli kodu i społeczność badawczą.

Ramy eksperymentu szkoleniowego

Struktura eksperymentów szkoleniowych Model Garden umożliwia szybkie tworzenie i przeprowadzanie eksperymentów szkoleniowych przy użyciu oficjalnych modeli i standardowych zestawów danych. Ramy szkoleniowe wykorzystują dodatkowe metadane zawarte w oficjalnych modelach Model Garden, aby umożliwić szybkie konfigurowanie modeli przy użyciu deklaratywnego modelu programowania. Eksperyment szkoleniowy można zdefiniować za pomocą poleceń języka Python w bibliotece modelu TensorFlow lub skonfigurować trening przy użyciu pliku konfiguracyjnego YAML, tak jak w tym przykładzie .

Środowisko szkoleniowe używa tfm.core.base_trainer.ExperimentConfig jako obiektu konfiguracyjnego, który zawiera następujące obiekty konfiguracyjne najwyższego poziomu:

  • runtime : definiuje sprzęt przetwarzający, strategię dystrybucji i inne optymalizacje wydajności
  • task : Definiuje model, dane treningowe, straty i inicjalizację
  • trainer : definiuje optymalizator, pętle treningowe, pętle ewaluacyjne, podsumowania i punkty kontrolne

Aby zapoznać się z pełnym przykładem użycia struktury eksperymentu szkoleniowego Model Garden, zobacz samouczek Klasyfikacja obrazu za pomocą modelu Garden . Aby uzyskać informacje na temat struktury eksperymentu szkoleniowego, zapoznaj się z dokumentacją interfejsu API TensorFlow Models . Jeśli szukasz rozwiązania do zarządzania pętlami szkoleniowymi dla swoich eksperymentów szkoleniowych na modelach, sprawdź Orbit .

Wyspecjalizowane operacje ML

Model Garden zawiera wiele operacji wizyjnych i NLP zaprojektowanych specjalnie do wykonywania najnowocześniejszych modeli, które działają wydajnie na GPU i TPU. Przejrzyj dokumentację interfejsu API biblioteki TensorFlow Models Vision, aby zapoznać się z listą wyspecjalizowanych operacji wizyjnych . Przejrzyj dokumentację interfejsu API biblioteki NLP TensorFlow Models, aby uzyskać listę operacji NLP . Biblioteki te zawierają również dodatkowe funkcje użytkowe wykorzystywane do przetwarzania danych wizyjnych i NLP, szkolenia i wykonywania modeli.

Pętle treningowe z orbitą

Istnieją dwie domyślne opcje uczenia modeli TensorFlow:

  • Użyj funkcji wysokiego poziomu Keras Model.fit . Jeśli Twój model i procedura treningowa pasują do założeń metody Model.fit (incremental gradient descent on batch of data), może to być bardzo wygodne.
  • Napisz niestandardową pętlę treningową z keras lub bez . Możesz napisać niestandardową pętlę szkoleniową za pomocą niskopoziomowych metod TensorFlow, takich jak tf.GradientTape lub tf.function . Jednak to podejście wymaga dużej ilości kodu standardowego i nie robi nic, aby uprościć szkolenie rozproszone.

Orbit stara się zapewnić trzecią opcję pomiędzy tymi dwoma skrajnościami.

Orbit to elastyczna, lekka biblioteka zaprojektowana w celu ułatwienia pisania niestandardowych pętli szkoleniowych w TensorFlow 2.x i dobrze współpracuje z platformą eksperymentów szkoleniowych Model Garden. Orbit obsługuje typowe zadania uczenia modelu, takie jak zapisywanie punktów kontrolnych, przeprowadzanie ocen modeli i konfigurowanie pisania podsumowań. Bezproblemowo integruje się z tf.distribute i obsługuje różne typy urządzeń, w tym CPU, GPU i sprzęt TPU. Narzędzie Orbit jest również oprogramowaniem typu open source , więc można je rozszerzać i dostosowywać do potrzeb szkolenia modeli.

Przewodnik po orbicie jest dostępny tutaj .