Jak dokładnie buduje się systemy sztucznej inteligencji?
- Jak wygląda ten proces ?
- Jakie wykonuje się kroki ?
- Ile danych jest potrzebnych ?
- Na co zwracać szczególną uwagę ?
- W jakich technologiach można wykonywać te rozwiązania ?
- Z jakich komponentów gotowych lub półgotowych możemy korzystać ?
Cześć, nazywam się Hania Gruzdowska i zajmuję się przybliżaniem technologii do rozwiązań biznesowych jako strategiczny analityk biznesowy. Słuchasz jednego z odcinków serii na temat sztucznej inteligencji.
W pierwszym odcinku mówiliśmy o tym, czym sztuczna inteligencja w ogóle jest, aby nie stawiać tylko i wyłącznie znaku równości z czatem GPT, ale trochę poszerzyliśmy sobie te pojęcia. W drugim odcinku z tej serii mówiliśmy o różnych klasach zastosowań, czyli do czego w ogóle sztuczna inteligencja może się przydać, w jakiego rodzaju wyzwaniach, w jakie rodzaje klas rozwiązań możemy znaleźć w sztucznej inteligencji. O tym było w poprzednim odcinku, więc jeśli to Cię szczególnie interesuje, to wróć do poprzedniego odcinka z tej serii.
W tym odcinku zajmiemy się tym, jak dokładnie budować systemy sztucznej inteligencji, jak się to robi krok po kroku, na co trzeba zwrócić szczególną uwagę, ile trzeba mieć danych, jak długo trwa ten proces, także zaczynamy.
Jak przygotować system sztucznej inteligencji?
Przede wszystkim musimy zrozumieć, jakie wyzwanie przed nami stoi, czyli jaki problem biznesowy próbujemy rozwiązać. To jest fundament naszej pracy.
Jest ważne, aby nie tworzyć systemów tylko dla samego tworzenia. Jako przedsiębiorcy powinniśmy sobie najpierw postawić pytanie, do czego ten system ma nam służyć, w jakim celu i jak może nam pomóc. To kluczowe, ponieważ to będzie nas prowadzić i pomagać w odpowiedzi na kolejne pytania.
Po pierwsze, musimy określić nasz cel i co chcemy osiągnąć. Odpowiedź na to pytanie bezpośrednio wpłynie na wybór odpowiedniej klasy rozwiązania.
Czy zależy nam na klasyfikacji, regresji, rozpoznawaniu obrazów czy przetwarzaniu mowy? Wybór klasy rozwiązania będzie zależał od specyfiki naszego problemu biznesowego.
No i tutaj, na przykład, chcielibyśmy stworzyć kalkulator zarobków analityków biznesowych opierający się na sztucznej inteligencji. Mamy zestaw danych z badań dotyczących zarobków i kompetencji analityków biznesowych. Posiadamy więc odpowiednią ilość danych, które mogą posłużyć jako dane uczące dla tego systemu. Następnie chcemy przewidywać, ile jest wart(a) osoba, która spełnia określone parametry, lub ile są warte jej umiejętności na rynku pracy dla konkretnych firm lub odbiorców.
Pierwszym krokiem jest określenie wyzwania, a następnie dobór odpowiedniej klasy rozwiązania. Wybraliśmy model regresji jako najlepiej pasujący do tego celu. Trzeci krok to sprawdzenie, czy mamy dostęp do wystarczającej ilości danych lub zdolność do ich zebrania, które będą potrzebne do nauczenia systemu sztucznej inteligencji.
Jeśli chodzi o te dane, istnieje kilka istotnych aspektów do uwzględnienia. Po pierwsze, ich ilość ma znaczenie. Musimy mieć odpowiednią ilość danych, aby móc wytrenować nasz model do udzielania dokładnych odpowiedzi na zadawane pytania. Ich ilość zależy od złożoności problemu i modelu, który będzie wykorzystywany.
Oczywiście, jakość danych jest również istotna. Czy dane są konkretne, czy wszystkie są uzupełnione i znajdują się we właściwych formatach? Musimy upewnić się, że te dane, które posiadamy, są wystarczająco dobrej jakości, aby umożliwić naukę naszego systemu sztucznej inteligencji.
Ile danych potrzebujemy?
To zależy od złożoności problemu oraz od poziomu dokładności, który chcemy osiągnąć. W przypadku kalkulatora, który oblicza wartość kompetencji analityka biznesowego na rynku pracy, jesteśmy ograniczeni przez dostępność danych. Musimy zadać sobie pytanie, jak dokładny model możemy stworzyć za pomocą tego zestawu uczącego.
Jeśli mamy określoną dokładność jako cel, na przykład +/- tysiąc złotych, możemy eksperymentować i iterować, aby sprawdzić, czy posiadamy wystarczającą ilość danych. Zbyt duża ilość danych może prowadzić do przetrenowania modelu, skutek może być taki, że np. przy rozpoznawaniu obrazów nauczymy ten system na rozpoznawanie danej liczby obiektów, No ale zamiast ten system uogólnić w pewien sposób (może to nie jest dokładnie taki kot, na którym się uczyłem, nie miałam żadnego takiego przykładu, no ale to nadal jest kot, ponieważ widać to poprzez podobieństwo pewnych atrybutów)
Jeśli danych uczących mamy zbyt wiele, możemy dojść do takiego poziomu, że ten system nie będzie w stanie wystarczająco uogólniać i radzić sobie z przypadkami, których bardzo podobnych nie miał w tym zestawie uczącym.
W zależności od stopnia skomplikowania problemu, ilość danych potrzebnych do nauki może w prostych przypadkach wynosić od kilkuset do kilku tysięcy. Taki zestaw danych może być wystarczający. Często przyjmuje się dziesięć tysięcy lub więcej jako dobrą miarę liczby obserwacji, które zostaną użyte do uczenia tego modelu. W bardzo zaawansowanych i skomplikowanych modelach możemy nawet mówić o milionach lub nawet miliardach danych, miliardach takich obserwacji. Istnieje więc znaczna rozbieżność, ale warto dążyć do jak największej ilości danych, jeśli to możliwe.
Jeśli chodzi o systemy sztucznej inteligencji, nie uczą się one tak samo jak człowiek. Na przykład, jeśli pokażemy kandydatowi na lekarza 6 obrazków USG, które sugerują obecność pewnej choroby, to osoba ta będzie w stanie rozpoznać podobieństwo do wcześniej widzianych przypadków już na siódmym obrazku. W przypadku uczenia systemów sztucznej inteligencji podobnych zachowań, konieczna jest znacznie większa ilość danych do nauki.
No więc jesteśmy teraz w punkcie, w którym zdajemy sobie sprawę, że te dane muszą zostać zebrane w odpowiedniej ilości i jakości. Zbieranie danych to jedno, ale później musimy je również odpowiednio przygotować. Istnieje możliwość, że dane, które już posiadasz w swoich systemach eksperckich w firmie, są dostępne, ale niekoniecznie w odpowiednim formacie. Być może będziemy musieli je przetworzyć, zmienić format liczbowy lub przetworzyć tekst, aby wydobyć z niego istotne informacje i lepiej je usystematyzować, aby mogły być użyte w zestawie danych uczących dla systemu sztucznej inteligencji. Dlatego może być potrzebna dodatkowa praca przygotowawcza.
Warto również konsultować się z inżynierami i osobami odpowiedzialnymi za przygotowanie systemu, ponieważ będą w stanie doradzić, czy dane, które posiadamy, są wystarczające, czy może potrzebna jest dalsza praca nad ich przygotowaniem. To cenne wskazówki, które można uzyskać od inżynierów.
Co jeszcze jest ważne? Nie wystarczy myśleć o danych w kontekście „posiadam dużo danych w firmie, więc zbuduję fajny system sztucznej inteligencji”. Musimy bardziej precyzyjnie zrozumieć problem, który próbujemy rozwiązać, a następnie przekształcić ten cel w konkretne potrzeby dotyczące danych, które są niezbędne do osiągnięcia tego celu. Na przykład, jeśli chcemy przewidzieć sprzedaż lub produkcję, musimy dokładnie określić, które dane z jakich systemów i w jakim kontekście będą potrzebne do dokładnego przewidywania tej wartości. Dopiero wtedy możemy zacząć szukać i oceniać jakość tych danych, aby ewentualnie wykorzystać je jako dane uczące.
Następnie jest etap uczenia, w którym przygotowane dane są wykorzystywane do szkolenia modelu, aby nauczył się wykonywać zadania, które przed nim stawiamy. To może obejmować klasyfikację, regresję (obliczanie wartości na podstawie danych), rozpoznawanie obrazów, tekstu, generowanie tekstu, mowy czy obrazów, w zależności od konkretnej klasy rozwiązań, która nas interesuje.
Jak długo trwa przygotowanie takiego modelu?
To oczywiście zależy. Od czego zależy? Zależy to od ilości danych. Czyli przygotowywanie modelu potrwa tak długo, ile danych będziemy musieli przetworzyć. Im więcej danych posiadasz, tym oczywiście proces przygotowywania modelu potrwa dłużej. Jednakże, jeśli masz prosty model, który operuje tylko kilkoma parametrami, to zostanie przygotowany znacznie szybciej.
Na pewno ma także znaczenie, jakie masz zasoby sprzętowe do dyspozycji, taki jak procesor, ilość dostępnego RAM-u, czy też ilość jednostek obliczeniowych na kartach graficznych (GPU). To wpłynie na szybkość przetwarzania danych. Osoby pracujące nad systemami sztucznej inteligencji często kierują swoją uwagę na karty graficzne, które oferują większe możliwości. Duże systemy sztucznej inteligencji wymagają również znacznej infrastruktury, aby przetwarzać wszystkie obliczenia w sensownym czasie. Im więcej zasobów, tym bardziej optymalny i szybszy będzie proces tworzenia modelu.
Czas potrzebny na przygotowanie modelu zależy również od optymalizacji hiperparametrów i od tego, czy model jest trenowany od podstaw, czy dostosowywany. Jeśli korzystamy z wcześniej wytrenowanego modelu i dostosowujemy go do naszych potrzeb, czas ten może być krótszy niż w przypadku treningu od zera, szczególnie jeśli model wstępnie został przeszkolony do rozpoznawania określonego rodzaju tekstu, który jest zbliżony do naszych potrzeb w konkretnej firmie i zastosowaniu.
Więc teraz wiesz, od czego to zależy. Jeśli spojrzymy na to w konkretnych wartościach, to ile czasu może trwać przygotowanie takiego modelu? To może być od kilku minut do kilku dni, a nawet kilku tygodni w bardzo złożonych przypadkach. Widzisz więc, że zakres czasowy jest bardzo rozległy, ale również czynników wpływających na ten proces jest wiele.
Jest coś szczególnego w systemach sztucznej inteligencji w porównaniu z tradycyjnym programowaniem i tworzeniem oprogramowania. To nie jest tak, że wykonujemy to jednorazowo i jest gotowe, co oznacza, że osiągnęliśmy 90% postępu w projekcie i możemy to odhaczyć. W przypadku systemów sztucznej inteligencji może się okazać, że model, który uzyskamy po wybraniu danych, nauczeniu go i wyborze odpowiedniego modelu do generowania odpowiedzi lub wykonywania zadań, nie spełnia naszych oczekiwań pod względem jakości wyników. Może pojawić się pytanie o błędy lub czy dane były odpowiednie do nauki systemu. Nie jesteśmy zadowoleni z jakości lub dokładności obliczeń. Wtedy konieczne jest przeprowadzenie kolejnej iteracji lub sprawdzenia. Możemy użyć innego modelu, zmienić zestaw danych lub dodać więcej danych, jeśli stwierdzimy, że ich brakuje. Po kolejnej iteracji oceniamy ponownie jakość modelu i pytamy, czy spełnia nasze oczekiwania.
Tak więc może się zdarzyć, że będziemy musieli powrócić do tego kroku kilka razy, przeprowadzać optymalizacje, dokonywać zmian, poprawiać jakość modelu, czy to poprzez dane, czy poprzez wybór innego modelu do dalszego uczenia. Ponadto, czas potrzebny na te iteracje zależy od złożoności modelu i ilości prób. Możesz osiągnąć sukces za pierwszym razem, ale jeśli dążysz do doskonałości i bardzo dobrych wyników, to liczba prób może być znaczna, co może wymagać wielu tygodni lub nawet miesięcy, jeśli będziesz powtarzać te próby.
Więc jest to ciekawostka i być może istnieje różnica w porównaniu do klasycznego procesu wytwarzania oprogramowania. Następnie pojawia się proces użytkowania systemu sztucznej inteligencji, który przechodzi do produkcji i wykonuje zadania, dla których został stworzony.
Więc jest to ciekawostka i być może różnica w porównaniu do klasycznego wytwarzania oprogramowania. Następnie pojawia się proces używania systemu sztucznej inteligencji, który wchodzi produkcyjnie i wykonuje zadania, dla których został stworzony.
Może się także pojawić kolejny etap, związany z czasem, kiedy używamy tego systemu sztucznej inteligencji. Środowisko wokół nas może ulec zmianie, dane mogą ulec modyfikacji, a nowe informacje mogą napłynąć. W związku z tym będziemy chcieli przebudować nasz system.
Podobnie jak w przypadku czata GPT. Na ten moment w 2023 roku, czat GPT korzysta z danych z 2021 roku. Wszystkie odpowiedzi których udziela ograniczone są do tych danych które wtedy zostały mu udostępnione. Jeśli chcemy zadać pytania dotyczące wydarzeń po 2021 roku, konieczne jest tak naprawdę przebudowanie modelu i stworzenie go od nowa.
W przypadku czatu GPT, wszelkie dane, które pojawiły się po 2021 roku, nowe systemy, rozwiązania czy odkrycia naukowe, cokolwiek się wydarzyło na świecie, pojawi się w internecie lub ma być uwzględnione w zestawie danych do nauki Chata GPT. Wtedy konieczne jest wygenerowanie nowej wersji modelu, który będzie zawierał już te dodatkowe informacje.
W przypadku na przykład tego kalkulatora zarobków dla analityków biznesowych, jeśli ten kalkulator zostanie nauczony danymi od 2001 do 2022 roku, to gdy minie rok, dwa lata lub trzy lata, te dane staną się przestarzałe. Model będzie nadal dobrze przewidywał, ale tylko na podstawie zarobków obowiązujących w okresie, kiedy został nauczony. Aby zaktualizować te dane, konieczne będzie przebudowanie i zaktualizowanie modelu, tak aby uwzględniał najnowsze informacje i mógł z nich korzystać.
Ile to może potrwać?
Wracając do kwestii tworzenia modelu, czas ten zależy od tego, czy będziesz musiał załadować dane, pozyskać je, przetworzyć, czy być może są już w dokładnie takim samym formacie jak wcześniejsze dane (wtedy czas będzie krótszy). Oczywiście, jeśli trzeba wykonać dodatkowe czynności, trzeba odpowiednio uwzględnić dodatkowy czas.
Następnie, proces przebudowy modelu, jak już wcześniej wspomniano, zależy od złożoności modelu, ilości przetwarzanych danych, liczby hiperparametrów i dostępnych zasobów sprzętowych. Wszystko to trzeba uwzględnić, aby stworzyć nową wersję systemu.
Jakie technologie mogą być używane przy tworzeniu systemów sztucznej inteligencji?
Tutaj mamy różnorodność możliwości, różniących się dostępnością. Z jednej strony są gotowe rozwiązania, które można po prostu wybrać spośród dostępnych na rynku albo rozwiązania dedykowane, tworzone od podstaw specjalnie dla konkretnej firmy, aby rozwiązywały jej unikalne problemy. Oczywiście, różnica ta wiąże się z kosztami. Systemy ogólnego przeznaczenia, dostępne na rynku, mogą być bardziej kosztowo efektywne, szczególnie w przypadku powszechnych problemów, które już zostały rozwiązane przez innych. Jednakże, jeśli potrzebujesz rozwiązania specyficznego dla swojej firmy, którego nikt inny jeszcze nie stworzył, koszty mogą wzrosnąć, ale zyskasz większą kontrolę nad projektem, w tym nad danymi, funkcjonalnościami i dostępem do nich.
Jeśli chodzi o gotowe aplikacje, to przykładem jest popularny czat GPT, który jest dostępny online i można go używać bez konieczności tworzenia własnego systemu. Kolejnym przykładem jest Midjourney, aplikacja do generowania obrazów na podstawie promptów. Korzystając z Midjourney, wprowadzasz prompt, otrzymujesz wygenerowany obraz i możesz go wykorzystać. Innym przykładem jest Interior AI, narzędzie do planowania wnętrz na podstawie zdjęć. Wprowadzając zdjęcie wnętrza i wybierając różne style architektoniczne, możesz otrzymać wskazówki dotyczące aranżacji pomieszczeń. To są przykłady gotowych aplikacji.
Możemy także rozważyć bardziej zaawansowane rozwiązania, które wymagają programowania od zera. W przypadku tworzenia dedykowanego rozwiązania sztucznej inteligencji dla Twojej firmy, będziesz prawdopodobnie musiał korzystać z języków programowania typowych dla tego rodzaju zastosowań. Najpopularniejszym i najczęściej wykorzystywanym językiem w dziedzinie sztucznej inteligencji jest Python. Jednak istnieją również inne języki, takie jak R i Java, która jest używana w systemach o większej skali. Python jest jednak najbardziej popularny i posiada wiele bibliotek wspierających rozwijanie rozwiązań w tej dziedzinie. Biblioteki stanowią zbiór gotowych narzędzi, które znacznie przyspieszają pracę. Dzięki nim można wybrać odpowiednią klasę rozwiązań, skorzystać z dostępnych funkcji i osiągnąć szybsze rezultaty. Przykładowymi bibliotekami do Pythona są PyTorch, TensorFlow, Scikit Learn i Keras. Istnieją także biblioteki do przetwarzania danych, takie jak Pandas i NumPy.
Jeśli jesteś przedsiębiorcą i potrzebujesz niestandardowego rozwiązania opartego na sztucznej inteligencji, możesz zdecydować się na zatrudnienie programisty, który zna język Python, lub nawiązanie współpracy z firmą, która dostarczy Ci odpowiednie rozwiązania oparte na tym języku. Istnieje możliwość korzystania z gotowych komponentów i rozwiązań, które znajdują się w Cloudzie. W Cloudzie dostępne są różne modele, które można wykorzystać w wielu rodzajach zastosowań, takich jak klasyfikacja, regresja, rozpoznawanie obrazów czy generowanie tekstu. Warto rozważyć użycie takich platform chmurowych jak AWS (Amazon Web Services), Google Cloud lub Microsoft Azure. Wybór odpowiedniego rozwiązania może przyspieszyć pracę, ale wiąże się także z kosztami, ponieważ będziesz musiał płacić za wykorzystane zasoby, obliczenia i operacje. Dlatego ważne jest dokładne oszacowanie kosztów związanych z wdrożeniem i utrzymaniem rozwiązania.
Istnieją różne możliwości związane z tworzeniem systemów sztucznej inteligencji. Jeśli chodzi na przykład o czat GPT, istnieje opcja wykorzystania pluginów. To klasyczny czat GPT, który pozwala na zadawanie pytań i otrzymywanie odpowiedzi w postaci tekstu. Jednak obecnie można zauważyć, że podczas nagrywania tego filmu pojawia się coraz więcej pluginów, które rozszerzają funkcjonalność czata GPT. Możemy wybrać konkretne pluginy, które chcielibyśmy aktywować, co pozwala na uzyskanie dodatkowych funkcji. Przykłady takich pluginów to przeszukiwanie PDF-ów, generowanie diagramów, korzystanie z Wolfram do wykonywania obliczeń, użycie Zapier do automatyzacji, Slides do robienia slajdów, czy też Scholar AI, który pomaga w wyszukiwaniu badań naukowych. Te pluginy pozwalają na rozszerzanie możliwości systemów AI.
Możemy również integrować się zarówno z czatem GPT jak i z innymi rozwiązaniami sztucznej inteligencji. Na przykład, jeśli posiadamy systemy finansowe i chcielibyśmy, aby pewne zadanie było wykonywane przez rozwiązanie oparte na AI, a następnie korzystać z wyników tego działania w naszym systemie finansowym, to możemy przeprowadzić integrację obu tych systemów. To samo dotyczy różnych rodzajów systemów, takich jak finansowe, medyczne, komunikacyjne, multimedialne czy edukacyjne. Istnieje wiele przykładów klas systemów, które można integrować z systemami sztucznej inteligencji.
To tyle jeśli chodzi o różne aspekty tworzenia systemów sztucznej inteligencji. Mam nadzieję, że teraz lepiej rozumiesz, jak podejść do tego zadania, co się z nim wiąże i jakie kroki można podjąć, aby go zrealizować. Warto zacząć od zdefiniowania celu i wyzwania, jakie chcemy osiągnąć przy użyciu systemu AI. Będzie to ogromnym wsparciem żeby dobrać odpowiednią klasę rozwiązań AI oraz dane. Następnie przystąpić do nauki i treningu modelu, co może wymagać wielu iteracji, aby osiągnąć pożądane wyniki. Pamiętaj także o aktualizacjach, jeśli otoczenie lub dane ulegną zmianom. W dziedzinie technologii możemy korzystać z aplikacji gotowych, pół gotowych lub tworzonych od zera. Wybór zależy od konkretnej sytuacji i potrzeb firmy. Dlatego warto rozważyć, czy opłaca się korzystać z gotowych rozwiązań czy zdecydować się na rozwiązania dedykowane, a także, czy integracja systemów AI może przynieść dodatkowe korzyści.
W kolejnym odcinku tej serii porozmawiamy o dokładnym rozumieniu inteligencji u ludzi i jego związku z inteligencją w kontekście sztucznej inteligencji. To podejście jest bardziej filozoficzne i definicyjne. Czy sztuczna inteligencja jest rzeczywiście inteligentna? Jak porównać inteligencję człowieka do tej w sztucznej inteligencji? Będziemy to omawiać.
W planach mamy także poruszenie tematu świadomości – co oznacza, że człowiek ma świadomość i czy sztuczna inteligencja może posiadać świadomość? Czy można porównywać te dwie koncepcje ze sobą?
Rozmawiać będziemy również o tym, jakie są dobre i złe zastosowania sztucznej inteligencji. Czy mamy pomysły na wykorzystanie sztucznej inteligencji w biznesie, czy to jest najlepszy sposób, czy istnieją inne bardziej efektywne sposoby osiągnięcia celu?
Następnie omówimy zastosowania w różnych branżach – jak obecnie wygląda wykorzystanie sztucznej inteligencji w różnych dziedzinach, jakie rozwiązania są tam stosowane i jakie wyniki są osiągane.
Dziękujemy za wysłuchanie dzisiejszego odcinka i do zobaczenia w kolejnych.
Prosimy o subskrypcję naszego kanału, jeśli ta seria przypadła Ci do gustu. Zachęcamy również do zostawienia łapki w górę i oceny naszego podcastu w aplikacji do podcastów. Dziękujemy i do usłyszenia. Cześć!