W ramach tegorocznych praktyk w Fingoweb realizujemy projekt AI, w którym nasi praktykanci mierzą się z wyzwaniami implementacji modelu językowego i budowaniu od podstaw rozwiązania. Przeczytaj, jak wybieraliśmy model, czyściliśmy dane i przed jakimi wyzwaniami stanęliśmy.

W tym artykule znajdziesz:

  • Proces realizacji projektu AI.
  • Ograniczenia sprzętowe i wybór modelu.
  • Dobór sprzętu.
  • Przygotowanie danych.
  • Kolejne kroki.

Boom na AI z końcówki 2022 roku pokazał, że skomplikowaną technologią mogą zainteresować się nawet najmniej techniczne osoby. Rozwiązania oparte o AI dostępne są oczywiście od lat, ale to otwarty dostęp do modelu językowego OpenAI sprawił, że AI trafiło do mainstreamu (efektem ubocznym jest zatrzęsienie ekspertów od AI na LinkedIn).

Zainteresowanie genAI jest na tyle duże, że obok codziennych informacji w mediach głównego nurtu na temat sztucznej inteligencji, na telefonach naszych cioć i wujków pojawiła się aplikacja ChatGPT. Ilość apek korzystających z AI liczona jest w tysiącach, a kolejne modele open source stają się mocniejsze, bardziej dostępne i wyspecjalizowane.

To właśnie modele open source i budowa własnego rozwiązania opartego o AI interesowało nas najbardziej. Postanowiliśmy połączyć nasz premierowy program praktyk z pierwszym realizowanym wewnętrznie projektem opartym o AI.

Praktyki w Fingoweb

Chcemy dzielić się wiedzą i ekspertyzą ze studentami i współtworzyć kolejne generacje świetnych, polskich specjalistów IT. Stąd pomysł na praktyki, które skupią najlepszych kandydatów wokół ciekawego projektu.

Szukaliśmy ambitnych i chcących uczyć się studentów, którzy od praktyk wymagają więcej niż robienie kawy, przed którymi postawiliśmy poważne zadanie:

Stworzenie wirtualnego asystenta opartego o open source’owy model AI, który będzie pomagać klientom galerii handlowej znajdować sklepy i produkty.

Projektowi przyświecają dwa najważniejsze cele:

  • Budowa rozwiązania w oparciu o LLM.
  • Zrozumienie działania modeli LLM i genAI.

Oczywiście, nasi praktykanci mają wsparcie ze strony doświadczonych specjalistów pracujących w Fingoweb oraz swoich mentorów.

Proces realizacji projektu AI

W pierwszej kolejności celem projektu jest stworzenie prostego klasyfikatora, który będzie odpowiadał na pytania dotyczące produktów, a dokładniej kategorii produktów, dostępnych w galerii handlowej.

Model ma poradzić sobie z prostymi pytaniami typu:

q: Gdzie kupię bluzę z kapturem?
a: W sklepie Cropp.

Jeśli modele w podstawowej formie będzie działał poprawnie, zostanie rozbudowany w sposób, który pozwoli odpowiadać na bardziej skomplikowane pytania, na przykład: Gdzie kupię czapkę za 100 zł dla dziecka? Gdzie kupię czapkę, koszulkę i skarpetki?

To nie koniec. Kolejnym etapem może być wprowadzenie rozwiązania Seq2Seq, które pozwoli odpowiedzieć na złożone pytania z szerszym kontekstem, przykładowo: Czy do galerii mogę wejść z psem bez kagańca?

Ograniczenia sprzętowe i wybór modelu

Mając na uwadze założenia projektu i fakt, że na pierwszym etapie nasi praktykanci potrzebują prostego klasyfikatora, kluczowe było odpowiednie dobranie modelu. Tutaj z pomocą przychodzi Hugging Face – społeczności zrzeszającej specjalistów od AI.

Model musi spełniać określone wymogi:

  1. Open source z możliwością zastosowania w komercyjnych warunkach.
  2. Autorstwo znanej organizacji.
  3. Relatywnie lekki = mniejsze obciążenie sprzętowe.

Po analizie zespół zdecydował się na flan-t5-large. To bardzo popularny model udostępniany przez Google. Niewielki rozmiar (783 milionów parametrów) pozwala pracować bez dużego obciążenia sprzętowego. Innym plusem tego modelu text-to-text jest jego ogromna popularność – tylko w ostatnim miesiącu został pobrany ponad 1,3 miliona razy. Flan-t5 idealnie nadaje się na potrzeby naszego projektu.

Model, na którym aktualnie pracujemy to flan-t5-large, wybraliśmy go ze względu na jego małe rozmiary, dzięki czemu możemy stosunkowo szybko go uczyć i testować nowe mechaniki, całkiem możliwe, że model tej wielkości okaże się wystarczający żeby poradzić sobie z problemem klasyfikacji.

– dodaje Kuba, praktykant.

Sprzęt

Po doborze modelu, jednym z pierwszych problemów były ograniczenia sprzętowe. Trenowanie modeli językowych wymaga zasobów obliczeniowych, a dokładnie kart graficznych z wystarczającą liczbą VRAM-u.

Nasi praktykanci korzystają z dwóch niezależnych stacji roboczych – jednej do szykowania danych i testowania, drugiej do trenowania modeli. Ta druga wyposażona jest w dwie karty RTX 3090, które połączone są NVLinkiem. Pozwalają wczytywać modele nawet do 60B (60 miliardów parametrów). Ale model taki jak flan-5-large spokojnie można trenować na jednej karcie RTX 3090 z 24 GB VRAM-u.

Wybór mniej wymagającego sprzętowo modelu był celowy: dzięki temu zespół może szybko testować i wprowadzać zmiany.

Dane

Dane to nowa ropa naftowa – na takie sformułowanie można trafić w ostatnim czasie online. I zasadniczo jest prawdziwe. Warto byłoby dodać do tego, że najbardziej wartościowe są dobrej jakości dane. Bez względu na to, w jaki sposób uczony jest model, zasada jest taka sama: im lepsze dane, tym wyższa skuteczność.

Dane są najbardziej skomplikowanym zagadnieniem przy procesie uczenia modelu. Muszą być odpowiednio przygotowane oraz przewidywać różne możliwe pytania zadane przez klienta. Im gorsza jakość danych, tym gorsze wyniki modelu. Z drugiej strony im większa liczba danych, tym lepiej wyuczony model.

– komentuje Kuba

Rozwiązanie zaprojektowane przez praktykantów ma pomagać w odnajdywaniu sklepów, po typie produktów, jakie oferują. Z tego powodu, obok list produktów, które należało skategoryzować, potrzebne były przede wszystkim pytania, które będą zadawane przez użytkowników.

Zespół w pierwszej kolejności stworzył ręcznie kategorie produktów i przypisał je do sklepów, w których występują. Kolejnym etapem było stworzenie pytań. Zamiast pisać 120 000 pytań ręcznie, stworzono je automatycznie przy użyciu GPT (dane syntetyczne).

Plik CSV z danymi przygotowanymi do uczenia modelu.

To rozwiązanie ma też swoje minusy. ChatGPT nie jest narzędziem stworzonym w celu generowania datasetów i zazwyczaj dane, które generuje, potrzebują czyszczenia. Mimo to, w opinii zespołu to najefektywniejszy sposób na uczenie modelu.

Kolejne kroki

Projekty realizowane w ramach praktyk składają się z 3. zespołów po 2 praktykantów. O większej ilości projektów realizowanych w ramach praktyk w Fingoweb dowiesz się w następnych artykułach.

O Fingoweb

Jesteśmy krakowskim software housem i pomagamy przedsiębiorstwom z Polski oraz zagranicy wyróżnić się w sieci na tle konkurencji, budując dedykowane rozwiązania technologiczne sprzyjające rozwojowi marki. Fingoweb to ponad 50 osób, które specjalizują się w tworzeniu nowoczesnych aplikacji i systemów szytych na miarę. Budujemy aplikacje internetowe, tworzymy niezbędną dokumentację oraz projektujemy profesjonalną grafikę komputerową.