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

1:30 · Przedstawienie gościa Remka 2

I zamiast tego tworzymy system, który uczy się jak rozwiązywać dany problem poprzez to, że my mu pokazujemy bardzo, bardzo dużo przykładów i mamy nadzieję, że na podstawie tych przykładów, które mu pokażemy, Na podstawie tego, jaki jest tam zaimplementowany ten mechanizm uczenia tego systemu, że on będzie w stanie zgeneralizować jakby ten problem, który mu przedstawiamy i będzie w stanie następnie rozwiązywać ten problem dla nowych danych, już nie dla tych, na których go uczyliśmy, tylko przychodzą jakieś rzeczywiste dane i on nam daje odpowiedzi. Powiedziałbym, że to jest ta główna różnica. Okej, a jeżeli chodzi o modele, no bo to też dość popularne stwierdzenie, jakbyśmy powiedzmy wytłumaczył właśnie czym są modele, może kilka wymienić i czym one się od siebie różnią.

Tak ogólnie modelem nazywamy właśnie ten system, który uczy się na danych i potem rozwiązuje jakiś problem. Jeżeli miałbym wprowadzić gruby podział na dwie części, to powiedziałbym, że mamy świat machine learningu i mamy świat rozwiązań opartych o sieci neuronowe, przy czym w tej chwili najpopularniejszy to jest deep learning. To są bardzo złożone, głębokie sieci neuronowe. Jeżeli chodzi o tę pierwszą część, o ten machine learning, Tam mamy głównie dwa typy modeli, którymi się posługujemy. Są modele predykcyjne.

6:38 · Temat testowania AI 1

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?

17:54 · Adversarial attacks i techniki testowania AI 1

Tak, zdecydowanie. To chciałbym nawet się odnieść do tego, co Tomku powiedziałeś, bo swojego drogu bardzo fajnie rozebrałeś modele na czynniki pierwsze, w sensie jak mogłoby być przeprowadzane tam testowanie, bo uważam jednocześnie, że brakuje trochę tej informacji, gdzieś ona jest mało dostępna w danym czasie. Na internecie, także w ten sposób sobie będziemy tutaj dyskutować i ja słuchając was panowie wyodrębniłem, zastosowałem pewien podział. Mamy techniki testowania i pewien podział sobie tutaj zastosujemy, żeby się do nich odnieść. I pierwszą, jaką bym wyodrębnił, to będzie takie specyficzne techniki testowania. Drugie będą dosyć klasyczne. Spoiler prawdopodobnie większość już znamy.

25:28 · Automatyzacja testów AI 1

I to jest coś, co on robi najlepiej. Możemy sobie wziąć taki zwykły przykład Oceny tłumaczenia. Jeśli będziemy mieli zdanie w języku angielskim, takie nawet zwykłe, Tom has a cat, i tutaj jakby nasza odpowiedź wzorcowa, idąc tą pierwszą metodą, mogłaby być po prostu, że jakby Tom ma kota, czy Tomek ma kota, I jeśli chodzi o jakby próbę przetłumaczenia, no to może jakby model mógłby przetłumaczyć na polski, że Tomek posiada kota. No i wtedy my już z automatu narażamy się na to, że jakby ta odpowiedź nie jest w 100% identyczna, jakby porównując to znak do znaku czy słowo do słowa. Więc musielibyśmy sobie spróbować jakby zbudować jakiś taki leksykon tych wszystkich słów, co nawet dla takiego prostego problemu tłumaczenia jest jakby no nierealne, żeby zbudować jakby słownik synonimów i próbować jakby sprawdzić, czy ta odpowiedź na pewno jest jakby prawidłowa takim klasycznym algorytmem.

35:56 · Outliers i bajasy w testowaniu AI 3

Ja sam jak prowadzę gdzieś tam zajęcia z teorii testerskiej, to często mówię o psychologii testowania, o bajasach wszelakich. Jakoś łatwiej było mi w to wejść głową. Ale tak, żeby wrócić i powiedzieć chwilę o tych outlierach. W zasadzie te dane odstające możemy zarówno identyfikować, żeby starać się, żeby nigdy nie wystąpiły, a wręcz w zasadzie ich z jednej strony identyfikujemy, a z drugiej strony staramy się, żeby one nam nie przeniknęły. Jakby jedną z kluczowych tutaj rzeczy, o których trzeba pamiętać jest to, żeby w zasadzie nie podpowiadać tak naprawdę nawet temu modelowi Które to będą te outlierowe wartości, nazwijmy to. Ale też nie byłbym sobą, gdybym nie wszedł w trochę zbyt duży, w zbyt dużą szczegółowość, bo mnie kusi tutaj, żeby powiedzieć, bo tak od strony testerskiej, bo okej, jakby opowiedziałem wam o pewnej koncepcji, ale teraz jak do tego podejść w ogóle?

To, co zwróciło moją uwagę i co mi się spodobało, jakoś łatwiej mi było się zahaczyć w tym problemie, to jest użycie jednego z modeli do przetestowania naszego modelu. A ten model nazywa się Isolation Forest. Są to drzewa izolacji. Polega to na tym, że tak naprawdę dobieramy sobie, identyfikujemy pewne wartości, szukamy jej pary, więc budujemy już pierwsze takie gałązki naszego drzewa i idziemy w głąb w głowarz. Tam się buduje pewne takie drzewozależności i w tym momencie bardzo ewidentnie widać odstające, tak od strony bardzo technicznej, teraz to opowiedziałem, ale jakby jednoznacznie widać, które są outlierami. Myślę, że tutaj akurat Tomek by jakimś takim ciekawszym przykładem, mniej nerdowskim poleciał, żeby o tym opowiedzieć.

Ale tak, panowie, tak bym zapytał, jakieś problemy wy byście też zauważali, które z was zainteresowały? To, co jeszcze wpada tak mi do głowy od razu, to w tych machine learningowych rozwiązaniach, gdzie mamy te modele predykcyjne, tam bardzo często możemy zauważyć albo niedopasowanie modelu lub zbyt dokładne dopasowanie modelu. To jest underfitting i overfitting. Underfitting To jest problem, kiedy badamy jakieś zjawisko, którego reprezentacja jest bardziej złożona niż liniowa. Czyli mamy do czynienia z jakąś krzywą, próbujemy tą krzywą sobie zaproksymować, ucząc nasz model.

38:34 · Podsumowanie i dziękowania 1

Jeżeli chodzi o ten overfitting, to to jest problem, kiedy mamy te zbiór tych danych historycznych, no i te zawsze dane są w jakiś sposób zaburzone, czy to przez pomiar, czy to przez to, że po prostu mają jakiś tam swój rozkład te dane. I nie chcemy doprowadzić do sytuacji, w której mamy model na tyle skomplikowany, że on spróbuje nam przeprowadzić tą aproksymowaną krzywą przez wszystkie punkty nasze pomiarowe. Bo to nam zależy na tym, żeby model zgeneralizował ten problem. Żeby on był w stanie poprawnie odpowiadać z niewielkim błędem na każde nasze pytanie, na każdą wartość.

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