Mentionsy Mentionsy
Sii Talks
Sii Talks

Odc. 3: Testowanie rozwiązań AI | #TestArchitectsTalk

09.09.2024 ·43 min 26 s · 10 rozdziałów

Z okazji międzynarodowego Dnia Testera zapraszamy na serię odcinków #TestArchitectsTalk, w której eksperci #SiiPolska odpowiadają na gorące pytania, dzielą się wiedzą i przedstawiają swoje prognozy na przyszłość 🤔 Obejrzyj trzeci odcinek i dowiedz się: ✅ Jaką rolę odgrywa tester w procesie wytwórczym #AI i jakie umiejętności są niezbędne ✅ Jak wyglądają różnice w wymaganiach w poszczególnych fazach projektu ✅ Jak skutecznie podejść do testowania rozwiązań AI Uczestnicy debaty: 🎙️ Mateusz Tadla, Senior Test Architect 🎙️ Remigiusz Bednarczyk, Senior Test & Analysis Engineer 🎙️ Krzysztof Bednarski, Solution Architect 🎙️ Tomasz Kuran, Solution Architect

0:10 · Witamy i przedstawiamy gościa 1

Cześć, z tej strony Tomek. Ja w SIi jestem od 11 lat, z małą przerwą. Również jestem solution architectem. Moim konikiem jest Java i testowanie jakości danych. Tak, to chyba takie rzeczy najważniejsze. Dzięki. Dzięki wielkie. Ja nadal Mateusz Tadla, nadal prowadzący naszą dyskusję i o czym porozmawiamy sobie w tym naszym ostatnim odcinku. Będzie to dyskusja na turbo ważny temat, bo nie za bardzo poczytamy jeszcze o tym gdzieś w odmętach internetu. Niewiele jeszcze osób o tym mówi, bo to jest testowanie AI, czyli coś, z czym tak naprawdę staramy się przetrzeć szlaki,

1:30 · Przedstawienie gościa Remka 2

Ja osobiście Wam powiem, że pływam bardzo po powierzchni i mam nadzieję, że Wy tutaj mnie w głębie tego tematu ściągniecie i dużo ciekawych informacji zarówno ja, jak i nasi słuchacze i oglądający się dowiemy. Ale zanim wejdziemy rzeczywiście w to nasze testowanie AI, gdzie jest w tym wszystkim rola testera, pomówmy w ogóle jaka jest różnica między takim zwykłym algorytmem sprzed 10 lat, od tego jaka jest różnica w algorytmach opartych na AI. Wydaje mi się, że taką najbardziej oczywistą różnicą i tym co się będzie gdzieś rysowało ten podział najwyraźniej jest to, że w algorytmach, kiedy mówimy o takim klasycznym podejściu algorytmicznym,

Przygotowujemy jakąś ściśle określoną ścieżkę, którą będziemy przetwarzać dane, które wchodzą do naszego systemu. Wiemy dokładnie, że na kroku pierwszym wykonamy operację, pierwszą, potem jakiś krok, krok następny, następny, gdzieś na samym końcu mamy Wynik działania tego naszego algorytmu i to my jesteśmy odpowiedzialni za to, żeby te wszystkie kroki zdefiniować. Natomiast w momencie, kiedy zaczynamy mówić o AI, to pojawiamy się w sferze, w obszarze problemów, gdzie nie jesteśmy w stanie takiego algorytmu opisać, faktycznie powiedzieć, że to wymaga pięciu, pięćdziesięciu kroków, konkretnych bardzo.

6:38 · Temat testowania AI 3

Pamiętam taki Projekt zaliczeniowy ze studiów, gdzie musiałem zaimplementować klasyfikator bajesowski w oparciu o metodę bajesa, żeby zaklasyfikować pokerową rękę, czyli układ, jakby przyporządkować 5 kart do ich układów, No i ten algorytm jakby średnio sobie radził, to tak jakby mówiąc bardzo łagodnie, bo jakby przez to, że nie byliśmy zadowoleni z kolegą z jego skuteczności, no to postanowiliśmy jakby go challenge'ować i przez prostotę problemu, no my akurat byliśmy w stanie znaleźć taki algorytm, który to zadanie był w stanie rozwiązać. No ale to tutaj dalej mówimy właśnie jakby typowo o algorytmie, Nawet przy klasyfikatorze Bayesa, który ma jakieś określone kroki i jesteśmy w stanie je zidentyfikować, a nie mówimy o AI.

Tak, tak. W przypadku właśnie AI to raczej mamy algorytm uczenia tego naszego modelu, bo algorytmu na rozwiązanie problemu nie znamy. Mamy jakiś algorytm, w jaki sposób nasz model będzie się uczył. Natomiast to nie jest ten algorytm, który rzeczywiście nam rozwiązuje problem. Problem nam rozwiązuje już wytrenowany model. To wracając jeszcze teraz do tematu Ta druga noga, o której mówiłem, czyli deep learning, to jest to chyba, czym dzisiaj się wszyscy zachwycają. To są głównie systemy generatywne, tak to określmy, czyli duże modele językowe, modele, które generują obrazy, modele, które generują wideo.

Oraz modele segmentacyjne, to też jest bardzo jakby szeroka i bardzo ciekawa dziedzina, wszystkie pojazdy autonomiczne czy z bardziej takiego militarnego pola walki, to też śledzenie obiektów na przykład poruszających się gdzieś tam, to wszystko są też zastosowania sztucznej inteligencji w zakresie tych modeli segmentacyjnych. Ok, no ale jak już powiedzmy mówimy też o tworzeniu, trenowaniu tych rozwiązań, tych modeli, no to to też wygląda tak, że w sumie niezależnie od tego, o jakim mówimy modelu, no to jednak ten proces tworzenia tego naszego rozwiązania opartego na AI jest jednak dość podobny. I chciałbym, żebyśmy tak odpowiedzieli też na pytanie naszym widzom, gdzie w tym procesie jest właśnie rola testera?

12:26 · Kompetencje testera 1

Na tym pierwszym etapie, o którym Krzysiek mówił, gdzie naszym głównym zadaniem jest sprawdzenie jakości danych, To chyba taką rzeczą, którą bym powiedział najważniejszą dla testera manualnego, który by chciał jakby zacząć się zajmować tym tematem, to byłby SQL i nauka procesowania i przetwarzania danych, bo to jest klucz tak naprawdę. Wszystkie systemy te AI-owe są oparte na danych, to sobie jakby możemy powiedzieć, To jest niezmiennik. Niezależnie od tego, o jakim modelu będziemy mówić, wysokiej jakości dane są konieczne. Jeżeli mówimy o testerach automatyzujących, to tu bym mówił o bibliotekach NumPy, Pandas, Pythonowe biblioteki, które też doskonale by wspierały automatyzującego testera w weryfikacji jakości tych danych.

17:54 · Adversarial attacks i techniki testowania AI 3

I trzecia to będzie taka typowo wykorzystana pod AI. Rozpocząłbym dosyć przewrotnie od tego, co może się wydarzyć z modelem. Tak jak wspominałeś w przypadku tego accuracy i w jaki sposób to może się rozjechać, to równie dobrze ktoś może tak naprawdę celowo spróbować uszkodzić model. I to nazywałoby się adversarial attack, czyli kontradyktoryjne testowanie, można by powiedzieć. I tutaj jest to technika zdecydowanie szkodliwa, ale jednocześnie Zależnie od tego, kto z jaką intencją jej używa, albo może inżynierią wsteczną jakby wyodrębnić, co się dzieje w tym modelu i spróbować go sobie sklonować, na przykład ukraść jakąś wiedzę, albo wręcz móc go odtworzyć białoskrzynkowo, czyli wręcz właśnie od zera zbudować i nazwać, że to jest czyjeś.

Natomiast, słuchajcie, są też techniki klasyczne i tutaj znów Tomku już wspominałeś i Ty, Krzysiek, ale no chociażby ten zestaw testów opartych na doświadczeniu, czyli mamy nawet zgadywanie błędów, mamy testy eksploracyjne, Listy kontrolne. I w ten sposób podchodzimy do testowania. Listy kontrolne, myślę, że są tutaj też ciekawe do wspomnienia, bo zauważcie, że mamy też już oficjalny dokument, nie mówię o AI-akcie, mamy oficjalny dokument, który określa jakie AI i dlaczego AI jest trust-worthy. Więc mamy całą listę tak naprawdę punktów do spełnienia, dzięki której oszacowujemy czy model spełnia założenia czy nie.

I myślę, że jeszcze powinienem powiedzieć coś więcej i jednak bardziej nawiązać trochę do samego AI, do takiego typowego generatywnego AI. I tutaj właśnie będzie warstwa deep learningowa tego metamorficznego testowania. I użyjmy sobie innego przykładu, właśnie takiego deep learningowego. Wyobraźmy sobie, że nasz system ma zidentyfikować z obrazka liczbę 3. Trójeczkę zawsze ma złapać. No i okej, każdorazowo tą liczbę sobie identyfikuje, ale my chcemy Możemy mieć tutaj tak naprawdę różne podejścia. Albo chcemy sprawdzić tą skuteczność tego modelu, albo wręcz wzmacniać tak naprawdę te umiejętności identyfikowania.

25:28 · Automatyzacja testów AI 1

Więc prosimy model wprost, że jakby tu jest jedna odpowiedź, druga odpowiedź i jakby czy te odpowiedzi są ze sobą spójne, Biorąc pod uwagę jakby cały kontekst, na którym on został wytrenowany, więc dlatego jakby używamy tego modelu do oceny i analizy odpowiedzi. No i dodatkowo już istnieją, pomimo tak młodego, że tak powiem wieku AI, już istnieją frameworki, czy też narzędzia, które zostały odpowiednio jakby napisane w tym celu po to, żeby właśnie testować AI. Pierwszym takim przykładem będzie evals od samego OpenAI, który umożliwia obie te techniki. Możemy napisać serię tych evalsów. Dodatkowo oni udostępniają do różnych zastosowań już gotowe zestawy pytań plus taki moduł, który przeanalizuje to i odpowiada w postaci

38:34 · Podsumowanie i dziękowania 1

Ja bym powiedział, że to jest ryzykowne zaczynanie projektów AI-owych bez zdefiniowania bardzo konkretnych wymagań, do których na końcu będziemy dążyć, do tego, żeby określoną dokładność spełnić. Nie wiem, czy schodzić jeszcze trochę w bok od tego pytania, Czasami wystarczy, że model rozwiązuje tylko 5% przypadków poprawnie po to, żebyśmy już mieli jakieś korzyści finansowe z działania tego modelu, a czasami nie wystarczy 99%. Dlatego mówię, że jakby musimy to sobie powiedzieć na samym początku, bo jakby idąc do kogoś i mówiąc, że mamy 5% poprawnych odpowiedzi, to może być dobrze, a może być bardzo źle, tylko po prostu miejmy to na początku zdefiniowane.

Pokazano wszystkie 12 dopasowań. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.