Odc. 3: Testowanie rozwiązań AI | #TestArchitectsTalk
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
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,
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.
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?
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.
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.
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
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.
Wprowadzenie do odcinka i przedstawienie gościa Remka, Krzyska i Tomka.
Tomasz przedstawia się i opisuje swoją rola w SIi.
Rozmowa na temat testowania AI i różnicy między tradycyjnymi algorytmami a AI.
Krzysztof opisuje fazy tworzenia modelu AI i rolę testera w każdej z nich.
Rozmowa na temat wymaganych kompetencji testera w różnych etapach tworzenia modelu AI.
Rozkłada się na techniki testowania AI, takie jak adversarial attacks, adversarial testing, testowanie metamorficzne, testowanie A-B i testowanie zbiorów danych. Omawiane są różne podejścia do testowania modeli AI, w tym techniki specyficzne dla deep learningu.
Rozkłada się na automatyzację testowania AI, w tym testowanie zbiorów danych, testowanie funkcjonalne i niefunkcjonalne, testowanie metamorficzne i testowanie funkcji wywoływania. Omawiane są narzędzia do testowania AI, takie jak evals od OpenAI i platforma Gizcart.
Rozkłada się na funkcje wywoływania i struktowana wyjście, które są dodatkowymi funkcjami, które zwiększają bezpieczeństwo i efektywność modeli AI. Omawiane są zabezpieczenia modeli i zastosowania funkcji wywoływania.
Rozkłada się na identyfikację i zarządzanie outliers i bajasy w testowaniu AI. Omawiane są techniki takie jak Isolation Forest, które pomagają w identyfikacji outlierów, oraz problemy underfitting i overfitting w modelach predykcyjnych.
Rezydent podzielił się swoim zadowoleniem z prowadzonej debaty i zaproponował ponowne posłuchanie odcinka z notatnikiem. Podziękował słuchaczom i uczestnikom.
Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.
Kliknij, aby znaleźć fragmenty, w których pada.
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