Efektywność przetwarzania danych
Kluczowym wyzwaniem w pracy z dużymi zbiorami danych, takimi jak Fashion-MNIST, jest optymalizacja zużycia pamięci. W opisywanym modelu zastosowano mechanizm leniwego ładowania (lazy loading), co oznacza, że dane nie są wczytywane do pamięci operacyjnej w całości. Zamiast tego, system pobiera je fragmentami (chunkami) dopiero w momencie, gdy są faktycznie potrzebne do obliczeń.
Dodatkową optymalizacją jest funkcja pomijania zerowych pikseli. W przypadku obrazów z ciemnym tłem, piksele o wartości zero nie wnoszą informacji do procesu mnożenia macierzy. Ich ignorowanie pozwala na znaczące przyspieszenie obliczeń. Testy wykazały, że w przypadku zbioru Fashion-MNIST, gdzie około połowa pikseli to zera, czas wykonania pojedynczego kroku treningowego skrócił się z 2,56 sekundy do 1,45 sekundy, co stanowi wzrost wydajności o blisko 80%.
Architektura modelu wewnątrz SQL
Model sieci neuronowej w tym podejściu jest reprezentowany jako zbiór tabel. Każda warstwa sieci składa się z dwóch głównych elementów:
Proces uczenia, czyli tzw. propagacja wsteczna (backpropagation), odbywa się poprzez serię zapytań SQL. Zamiast korzystać z dedykowanych bibliotek do głębokiego uczenia, system wykonuje operacje matematyczne, takie jak mnożenie macierzy czy obliczanie gradientów, za pomocą standardowych instrukcji SQL, takich jak JOIN, SUM czy GROUP BY. Dzięki temu cały cykl życia modelu – od przygotowania danych, przez trening, aż po ewaluację – odbywa się w jednym, spójnym środowisku.
Proces treningowy i weryfikacja
W trakcie 60 kroków treningowych system nieustannie aktualizuje wagi modelu. Proces ten jest podzielony na dwa etapy:
Co istotne, system pozwala na jednoczesne przetwarzanie danych treningowych i testowych. Podczas gdy dane treningowe napędzają proces uczenia, dane testowe są wykorzystywane do bieżącej oceny skuteczności modelu bez wpływu na jego parametry. Wyniki, takie jak utrata (loss) oraz dokładność (accuracy), są raportowane co 5 kroków, co pozwala na monitorowanie postępów w czasie rzeczywistym. Po zakończeniu treningu, wytrenowane parametry są eksportowane do formatu Zarr, co umożliwia ich łatwe wykorzystanie w innych systemach analitycznych.

