Wbudowany PaddleOCR z Amazon SageMaker Projects dla MLOps do wykonywania optycznego rozpoznawania znaków na dokumentach tożsamości PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wbudowany PaddleOCR z Amazon SageMaker Projects dla MLOps do optycznego rozpoznawania znaków w dokumentach tożsamości

Optyczne rozpoznawanie znaków (OCR) to zadanie polegające na konwersji tekstu drukowanego lub pisanego odręcznie na tekst zakodowany maszynowo. OCR jest szeroko stosowany w różnych scenariuszach, takich jak elektronizacja dokumentów i uwierzytelnianie tożsamości. Ponieważ OCR może znacznie zmniejszyć ręczne nakłady na rejestrację kluczowych informacji i służyć jako krok wejściowy do zrozumienia dużej ilości dokumentów, dokładny system OCR odgrywa kluczową rolę w erze cyfrowej transformacji.

Społeczność open-source i badacze koncentrują się na tym, jak poprawić dokładność OCR, łatwość użycia, integrację ze wstępnie wytrenowanymi modelami, rozszerzenie i elastyczność. Wśród wielu proponowanych frameworków, PaddleOCR zyskał ostatnio coraz większą uwagę. Proponowany framework koncentruje się na uzyskaniu wysokiej dokładności przy równoczesnym zrównoważeniu wydajności obliczeniowej. Ponadto wstępnie wytrenowane modele dla języka chińskiego i angielskiego sprawiają, że jest popularny na rynku opartym na języku chińskim. Zobacz Repozytorium GitHub PaddleOCR by uzyskać więcej szczegółów.

W AWS zaproponowaliśmy również zintegrowane usługi AI, które są gotowe do użycia bez doświadczenia w uczeniu maszynowym (ML). Aby wyodrębnić z dokumentów tekst i dane strukturalne, takie jak tabele i formularze, możesz użyć Ekstrakt z amazonki. Wykorzystuje techniki ML do odczytywania i przetwarzania dowolnego rodzaju dokumentów, dokładnie wyodrębniając tekst, pismo odręczne, tabele i inne dane bez wysiłku ręcznego.

Dla naukowców zajmujących się danymi, którzy chcą mieć swobodę korzystania z platformy open source w celu opracowania własnego modelu OCR, oferujemy również w pełni zarządzaną usługę ML Amazon Sage Maker. SageMaker umożliwia wdrażanie najlepszych praktyk MLOps w całym cyklu życia ML i zapewnia szablony i zestawy narzędzi, aby zmniejszyć niezróżnicowane obciążenie, aby wprowadzić projekty ML do produkcji.

W tym poście koncentrujemy się na opracowywaniu niestandardowych modeli w ramach PaddleOCR w SageMaker. Przechodzimy przez cykl życia programowania ML, aby zilustrować, w jaki sposób SageMaker może pomóc w tworzeniu i trenowaniu modelu, a ostatecznie wdrożeniu modelu jako usługi sieci Web. Chociaż ilustrujemy to rozwiązanie za pomocą PaddleOCR, ogólne wskazówki są prawdziwe dla arbitralnych frameworków, które mają być używane w SageMaker. Aby dołączyć do tego posta, udostępniamy również przykładowy kod w Repozytorium GitHub.

Platforma PaddleOCR

Jako szeroko przyjęta platforma OCR, PaddleOCR zawiera bogate wykrywanie tekstu, rozpoznawanie tekstu i kompleksowe algorytmy. Jako podstawowe modele wykrywania i rozpoznawania wybiera zróżnicowaną Binaryzację (DB) i Konwolucyjną Rekurencyjną Sieć Neuronową (CRNN) oraz proponuje serię modeli, nazwanych PP-OCR, do zastosowań przemysłowych po serii strategii optymalizacji.

Model PP-OCR jest ukierunkowany na ogólne scenariusze i tworzy bibliotekę modeli w różnych językach. Składa się z trzech części: wykrywania tekstu, wykrywania i korygowania pudełek oraz rozpoznawania tekstu, zilustrowanych na poniższym rysunku w PaddleOCR oficjalne repozytorium GitHub. Możesz również zapoznać się z artykułem badawczym PP-OCR: Praktyczny ultralekki system OCR po więcej informacji.

Mówiąc dokładniej, PaddleOCR składa się z trzech następujących po sobie zadań:

  • Wykrywanie tekstu – Celem wykrywania tekstu jest zlokalizowanie obszaru tekstu na obrazie. Takie zadania mogą opierać się na prostej sieci segmentacji.
  • Wykrywanie i rektyfikacja pudełek – Każde pole tekstowe musi zostać przekształcone w poziome pole prostokąta w celu późniejszego rozpoznawania tekstu. Aby to zrobić, PaddleOCR proponuje wytrenowanie klasyfikatora kierunku tekstu (zadanie klasyfikacji obrazu) w celu określenia kierunku tekstu.
  • Rozpoznawanie tekstu – Po wykryciu pola tekstowego model aparatu rozpoznawania tekstu przeprowadza wnioskowanie na każdym polu tekstowym i wyświetla wyniki zgodnie z lokalizacją pola tekstowego. PaddleOCR przyjmuje szeroko stosowaną metodę CRNN.

PaddleOCR zapewnia wysokiej jakości wstępnie wytrenowane modele, które są porównywalne z efektami komercyjnymi. Możesz użyć wstępnie wytrenowanego modelu jako modelu wykrywania, klasyfikatora kierunku lub modelu rozpoznawania lub możesz dostroić i ponownie przeszkolić każdy indywidualny model, aby służył do Twojego przypadku użycia. Aby zwiększyć wydajność i skuteczność wykrywania tradycyjnego chińskiego i angielskiego, ilustrujemy, jak dostroić model rozpoznawania tekstu. Wybrany przez nas wstępnie wytrenowany model to ch_ppocr_mobile_v2.0_rec_train, który jest lekkim modelem obsługującym rozpoznawanie języka chińskiego, angielskiego i liczb. Poniżej znajduje się przykładowy wynik wnioskowania przy użyciu dowodu tożsamości z Hongkongu.

Wbudowany PaddleOCR z Amazon SageMaker Projects dla MLOps do wykonywania optycznego rozpoznawania znaków na dokumentach tożsamości PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

W kolejnych sekcjach omówimy, jak dostroić wstępnie wytrenowany model za pomocą programu SageMaker.

Najlepsze praktyki MLOps z SageMaker

SageMaker to w pełni zarządzana usługa ML. Dzięki SageMaker, analitycy danych i programiści mogą szybko i łatwo tworzyć i trenować modele ML, a następnie bezpośrednio wdrażać je w zarządzanym środowisku gotowym do produkcji.

Wielu analityków danych używa SageMaker do przyspieszenia cyklu życia ML. W tej sekcji ilustrujemy, w jaki sposób SageMaker może pomóc Ci od eksperymentowania po produkcyjną ML. Postępując zgodnie ze standardowymi krokami projektu ML, od frazy eksperymentalnej (rozwój kodu i eksperymenty), do frazy operacyjnej (automatyzacja przepływu pracy budowania modelu i potoków wdrożeniowych), SageMaker może zapewnić wydajność w następujących krokach:

  1. Przeglądaj dane i buduj kod ML za pomocą Studio Amazon SageMaker zeszyty
  2. Wytrenuj i dostosuj model za pomocą zadania szkoleniowego SageMaker.
  3. Wdróż model z punktem końcowym SageMaker do udostępniania modelu.
  4. Zorganizuj przepływ pracy za pomocą Rurociągi Amazon SageMaker.

Poniższy diagram ilustruje tę architekturę i przepływ pracy.

Wbudowany PaddleOCR z Amazon SageMaker Projects dla MLOps do wykonywania optycznego rozpoznawania znaków na dokumentach tożsamości PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Należy zauważyć, że SageMaker można używać w sposób modułowy. Na przykład możesz skompilować kod za pomocą lokalnego zintegrowanego środowiska programistycznego (IDE) oraz trenować i wdrażać model w programie SageMaker lub opracowywać i trenować model we własnych źródłach obliczeniowych klastra i używać potoku SageMaker do aranżacji przepływu pracy i wdrożyć na punkcie końcowym SageMaker. Oznacza to, że SageMaker zapewnia otwartą platformę, którą można dostosować do własnych wymagań.

Zobacz kod w naszym Repozytorium GitHub i README, aby zrozumieć strukturę kodu.

Zapewnij projekt SageMaker

Możesz użyć Projekty Amazon SageMaker rozpocząć podróż. Dzięki projektowi SageMaker możesz zarządzać wersjami swoich repozytoriów Git, dzięki czemu możesz wydajniej współpracować między zespołami, zapewnić spójność kodu oraz umożliwić ciągłą integrację i ciągłe dostarczanie (CI/CD). Chociaż notesy są przydatne do tworzenia modeli i eksperymentowania, gdy masz zespół naukowców zajmujących się danymi i inżynierów ML pracujących nad problemem ML, potrzebujesz bardziej skalowalnego sposobu zachowania spójności kodu i ściślejszej kontroli wersji.

Projekty SageMaker tworzą wstępnie skonfigurowany szablon MLOps, który zawiera podstawowe komponenty upraszczające integrację PaddleOCR:

  • Repozytorium kodu do tworzenia niestandardowych obrazów kontenerów do przetwarzania, szkolenia i wnioskowania, zintegrowane z narzędziami CI/CD. Dzięki temu możemy skonfigurować nasz niestandardowy obraz platformy Docker i nacisnąć przycisk Rejestr elastycznego pojemnika Amazon (Amazon ECR), aby był gotowy do użycia.
  • Potok SageMaker, który definiuje kroki przygotowania danych, szkolenia, oceny modelu i rejestracji modelu. To przygotowuje nas do przygotowania MLOps, gdy projekt ML trafi do produkcji.
  • Inne przydatne zasoby, takie jak repozytorium Git do kontroli wersji kodu, grupa modeli zawierająca wersje modeli, wyzwalacz zmiany kodu dla potoku kompilacji modelu i wyzwalacz oparty na zdarzeniach dla potoku wdrażania modelu.

Możesz użyć kodu źródłowego SageMaker do tworzenia standardowych projektów SageMaker lub określonego szablonu utworzonego przez Twoją organizację dla członków zespołu. W tym poście używamy standardu Szablon MLOps do budowania obrazu, budowania modelu i wdrażania modelu. Aby uzyskać więcej informacji o tworzeniu projektu w Studio, zobacz Utwórz projekt MLOps za pomocą Amazon SageMaker Studio.

Eksploruj dane i twórz kod ML za pomocą notatników SageMaker Studio

Notatniki SageMaker Studio to notatniki umożliwiające współpracę, które można szybko uruchomić, ponieważ nie trzeba wcześniej konfigurować instancji obliczeniowych i przechowywania plików. Wielu analityków danych woli używać tego internetowego środowiska IDE do opracowywania kodu ML, szybkiego debugowania interfejsu API biblioteki i uruchamiania rzeczy z niewielką próbką danych w celu sprawdzenia poprawności skryptu szkoleniowego.

W notatnikach programu Studio można używać wstępnie zbudowanego środowiska dla typowych platform, takich jak TensorFlow, PyTorch, Pandas i Scikit-Learn. Możesz zainstalować zależności we wstępnie zbudowanym jądrze lub zbudować własny trwały obraz jądra. Aby uzyskać więcej informacji, zobacz Zainstaluj zewnętrzne biblioteki i jądra w Amazon SageMaker Studio. Notatniki Studio udostępniają również środowisko Python do uruchamiania zadań szkoleniowych, wdrażania lub innych usług AWS w programie SageMaker. W poniższych sekcjach ilustrujemy, jak używać notatników Studio jako środowiska do wyzwalania zadań szkolenia i wdrażania.

SageMaker zapewnia potężne IDE; jest to otwarta platforma ML, na której analitycy danych mogą elastycznie korzystać z preferowanego środowiska programistycznego. W przypadku analityków danych, którzy preferują lokalne środowisko IDE, takie jak PyCharm lub Visual Studio Code, można użyć lokalnego środowiska Python do opracowania kodu ML i użyć programu SageMaker do szkolenia w zarządzanym skalowalnym środowisku. Aby uzyskać więcej informacji, zobacz Uruchom swoje zadanie TensorFlow na Amazon SageMaker z PyCharm IDE. Po utworzeniu modelu bryłowego możesz zastosować najlepsze praktyki MLOps w programie SageMaker.

Obecnie SageMaker zapewnia również: Instancje notatników SageMaker jako nasze starsze rozwiązanie dla środowiska Jupyter Notebook. Masz swobodę uruchamiania polecenia Docker build i użyj trybu lokalnego SageMaker, aby trenować na instancji notebooka. Udostępniamy również przykładowy kod dla PaddleOCR w naszym repozytorium kodu: ./train_and_deploy/notebook.ipynb.

Zbuduj własny obraz za pomocą szablonu projektu SageMaker

SageMaker w szerokim zakresie wykorzystuje kontenery Docker do zadań kompilacji i wykonywania. Możesz łatwo uruchomić własny kontener za pomocą SageMaker. Zobacz więcej szczegółów technicznych na Użyj własnych algorytmów szkoleniowych.

Jednak jako naukowiec zajmujący się danymi tworzenie kontenera może nie być proste. Projekty SageMaker zapewniają prosty sposób zarządzania niestandardowymi zależnościami za pomocą potoku CI/CD budowania obrazów. Korzystając z projektu SageMaker, możesz aktualizować obraz szkoleniowy za pomocą niestandardowego pliku Dockerfile kontenera. Aby uzyskać szczegółowe instrukcje, patrz Twórz projekty Amazon SageMaker z potokami CI/CD do budowania obrazów. Dzięki strukturze dostarczonej w szablonie możesz zmodyfikować dostarczony kod w tym repozytorium, aby zbudować kontener treningowy PaddleOCR.

W tym poście prezentujemy prostotę budowania niestandardowego obrazu do przetwarzania, szkolenia i wnioskowania. Repozytorium GitHub zawiera trzy foldery:

Projekty te mają podobną strukturę. Jako przykład weźmy obraz kontenera szkoleniowego; ten image-build-train/ repozytorium zawiera następujące pliki:

  • Plik codebuild-buildspec.yml, który jest używany do konfiguracji Tworzenie kodu AWS aby obraz mógł być budowany i przesyłany do Amazon ECR.
  • Plik Dockerfile używany do kompilacji platformy Docker, który zawiera wszystkie zależności i kod szkoleniowy.
  • Punkt wejścia train.py dla skryptu szkoleniowego ze wszystkimi hiperparametrami (takimi jak szybkość uczenia i rozmiar partii), które można skonfigurować jako argument. Te argumenty są określane podczas rozpoczynania zadania szkoleniowego.
  • Zależności.

Kiedy wpychasz kod do odpowiedniego repozytorium, uruchamia się AWS Code Pipeline by zbudować dla Ciebie kontener treningowy. Obraz niestandardowego kontenera jest przechowywany w repozytorium Amazon ECR, jak pokazano na poprzednim rysunku. Podobna procedura jest stosowana do generowania obrazu wnioskowania.

Trenuj model za pomocą zestawu SDK szkoleniowego SageMaker

Po zweryfikowaniu kodu algorytmu i spakowaniu go do kontenera można użyć zadania szkoleniowego programu SageMaker, aby udostępnić zarządzane środowisko do trenowania modelu. To środowisko jest efemeryczne, co oznacza, że ​​możesz mieć oddzielne, bezpieczne zasoby obliczeniowe (takie jak GPU) lub rozproszone środowisko Multi-GPU do uruchamiania kodu. Po zakończeniu szkolenia SageMaker zapisuje powstałe artefakty modelu w Usługa Amazon Simple Storage (Amazon S3) lokalizacja, którą określisz. Wszystkie dane dziennika i metadane pozostają w Konsola zarządzania AWS, Studio i Amazon Cloud Watch.

Praca szkoleniowa zawiera kilka ważnych informacji:

  • Adres URL zasobnika S3, w którym zapisałeś dane treningowe
  • Adres URL zasobnika S3, w którym chcesz przechowywać dane wyjściowe zadania
  • Zarządzane zasoby obliczeniowe, których program SageMaker ma używać do trenowania modeli
  • Ścieżka Amazon ECR, w której przechowywany jest kontener treningowy

Aby uzyskać więcej informacji na temat pracy szkoleniowej, zobacz Trenuj modele. Przykładowy kod pracy szkoleniowej jest dostępny pod adresem eksperymenty-pociąg-notebook.ipynb.

SageMaker tworzy hiperparametry w CreateTrainingJob żądanie dostępne w kontenerze Docker w /opt/ml/input/config/hyperparameters.json plik.

Używamy niestandardowego kontenera szkoleniowego jako punktu wejścia i określamy środowisko GPU dla infrastruktury. Wszystkie odpowiednie hiperparametry są wyszczególnione jako parametry, co pozwala nam śledzić każdą indywidualną konfigurację zadania i porównywać je ze śledzeniem eksperymentu.

Ponieważ proces analizy danych jest bardzo zorientowany na badania, często prowadzi się równolegle wiele eksperymentów. Wymaga to podejścia, które śledzi wszystkie różne eksperymenty, różne algorytmy i potencjalnie różne zestawy danych i próby hiperparametrów. Eksperymenty Amazon SageMaker pozwalają organizować, śledzić, porównywać i oceniać eksperymenty ML. Pokazujemy to również w eksperymenty-pociąg-notebook.ipynb. Aby uzyskać więcej informacji, zobacz Zarządzaj uczeniem maszynowym za pomocą eksperymentów Amazon SageMaker.

Wdróż model do obsługi modelu

Jeśli chodzi o wdrażanie, zwłaszcza w przypadku obsługi modelu w czasie rzeczywistym, wielu analityków danych może mieć trudności z obejściem się bez pomocy zespołów operacyjnych. SageMaker ułatwia wdrożenie wytrenowanego modelu w środowisku produkcyjnym za pomocą SageMaker SDK dla Pythona. Możesz wdrożyć swój model w usługach hostingowych SageMaker i uzyskać punkt końcowy do użycia do wnioskowania w czasie rzeczywistym.

W wielu organizacjach analitycy danych mogą nie być odpowiedzialni za utrzymanie infrastruktury punktów końcowych. Jednak testowanie modelu jako punktu końcowego i zagwarantowanie prawidłowych zachowań predykcyjnych jest w rzeczywistości obowiązkiem naukowców zajmujących się danymi. Dlatego SageMaker uprościł zadania związane z wdrażaniem, dodając do tego zestaw narzędzi i SDK.

W przypadku użycia w poście chcemy mieć interaktywne, działające w czasie rzeczywistym możliwości o niskim opóźnieniu. Wnioskowanie w czasie rzeczywistym jest idealny do tego obciążenia wnioskowania. Istnieje jednak wiele opcji dostosowujących się do każdego konkretnego wymagania. Aby uzyskać więcej informacji, zobacz Wdrażaj modele do wnioskowania.

Aby wdrożyć niestandardowy obraz, analitycy danych mogą użyć pakietu SageMaker SDK, zilustrowanego na

eksperymenty-deploy-notebook.ipynb.

W create_model żądanie, definicja kontenera zawiera ModelDataUrl parametr, który identyfikuje lokalizację Amazon S3, w której przechowywane są artefakty modelu. SageMaker wykorzystuje te informacje, aby określić, skąd skopiować artefakty modelu. Kopiuje artefakty do /opt/ml/model katalog do wykorzystania przez kod wnioskowania. The serve i predictor.py jest punktem wejścia do udostępniania z artefaktem modelu, który jest ładowany podczas uruchamiania wdrożenia. Aby uzyskać więcej informacji, zobacz Użyj własnego kodu wnioskowania z usługami hostingowymi.

Zorganizuj przepływ pracy dzięki SageMaker Pipelines

Ostatnim krokiem jest opakowanie kodu jako kompleksowe przepływy pracy ML i zastosowanie najlepszych praktyk MLOps. W programie SageMaker obciążeniem związanym z budowaniem modelu, ukierunkowanym grafem acyklicznym (DAG), zarządza SageMaker Pipelines. Pipelines to w pełni zarządzana usługa obsługująca orkiestrację i śledzenie linii danych. Ponadto, ponieważ Pipelines jest zintegrowany z pakietem SDK SageMaker Python, możesz tworzyć swoje potoki programowo przy użyciu interfejsu Pythona wysokiego poziomu, którego używaliśmy wcześniej na etapie szkolenia.

Podajemy przykładowy kod potoku, aby zilustrować implementację w potok.py.

Potok obejmuje etap wstępnego przetwarzania do generowania zestawu danych, etap uczenia, etap warunku i etap rejestracji modelu. Na końcu każdego uruchomienia potoku naukowcy zajmujący się danymi mogą chcieć zarejestrować swój model dla kontroli wersji i wdrożyć ten o najwyższej wydajności. Rejestr modeli SageMaker zapewnia centralne miejsce do zarządzania wersjami modeli, katalogowania modeli i wyzwalania automatycznego wdrażania modeli ze statusem zatwierdzenia określonego modelu. Aby uzyskać więcej informacji, zobacz Rejestruj i wdrażaj modele za pomocą Rejestru modeli.

W systemie ML zautomatyzowana orkiestracja przepływu pracy pomaga zapobiegać degradacji wydajności modelu, innymi słowy dryfowi modelu. Wczesne i proaktywne wykrywanie odchyleń danych umożliwia podejmowanie działań naprawczych, takich jak ponowne szkolenie modeli. Możesz wyzwolić potok SageMaker, aby ponownie nauczyć nową wersję modelu po wykryciu odchyleń. Wyzwolenie rurociągu można również określić przez: Monitor modelu Amazon SageMaker, która na bieżąco monitoruje jakość produkowanych modeli. Dzięki możliwości przechwytywania danych w celu rejestrowania informacji, Model Monitor obsługuje monitorowanie jakości danych i modelu, stronniczość i monitorowanie dryftu atrybucji cech. Aby uzyskać więcej informacji, zobacz Monitoruj modele pod kątem jakości danych i modeli, stronniczości i wyjaśnialności.

Wnioski

W tym poście zilustrowaliśmy, jak uruchomić framework PaddleOCR w SageMaker dla zadań OCR. Aby pomóc naukowcom danych w łatwym wdrażaniu SageMaker, przeszliśmy przez cykl rozwoju ML, od tworzenia algorytmów, przez szkolenie, po hostowanie modelu jako usługi sieciowej do wnioskowania w czasie rzeczywistym. Możesz użyć dostarczonego przez nas kodu szablonu do migracji dowolnego frameworka na platformę SageMaker. Wypróbuj go w swoim projekcie ML i daj nam znać o swoich historiach sukcesu.


O autorach

Wbudowany PaddleOCR z Amazon SageMaker Projects dla MLOps do wykonywania optycznego rozpoznawania znaków na dokumentach tożsamości PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Junyi (Jackie) LIU jest starszym naukowcem stosowanym w AWS. Posiada wieloletnie doświadczenie zawodowe w zakresie uczenia maszynowego. Posiada bogate doświadczenie praktyczne w opracowywaniu i wdrażaniu rozwiązań z zakresu budowy modeli uczenia maszynowego w algorytmach predykcji łańcucha dostaw, systemach rekomendacji reklamowych, obszarze OCR i NLP.

Wbudowany PaddleOCR z Amazon SageMaker Projects dla MLOps do wykonywania optycznego rozpoznawania znaków na dokumentach tożsamości PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Yanwei CuiDr , jest specjalistą ds. rozwiązań w zakresie uczenia maszynowego w AWS. Rozpoczął badania nad uczeniem maszynowym w IRISA (Instytut Badawczy Informatyki i Systemów Losowych) i ma kilkuletnie doświadczenie w budowaniu aplikacji przemysłowych wykorzystujących sztuczną inteligencję w zakresie wizji komputerowej, przetwarzania języka naturalnego i przewidywania zachowań użytkowników online. W AWS dzieli się wiedzą na temat domeny i pomaga klientom w odblokowaniu potencjału biznesowego oraz osiąganiu praktycznych wyników dzięki uczeniu maszynowemu na dużą skalę. Poza pracą lubi czytać i podróżować.

Wbudowany PaddleOCR z Amazon SageMaker Projects dla MLOps do wykonywania optycznego rozpoznawania znaków na dokumentach tożsamości PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Yi-An CHEN jest programistą w Amazon Lab 126. Ma ponad 10-letnie doświadczenie w opracowywaniu produktów opartych na uczeniu maszynowym w różnych dyscyplinach, w tym personalizacja, przetwarzanie języka naturalnego i wizja komputerowa. Poza pracą lubi biegać długo i jeździć na rowerze.

Znak czasu:

Więcej z Uczenie maszynowe AWS