Upowszechnienie się LLM-ów, a w szczególności powstanie Chat GPT spowodował wysyp „ekspertów” od AI i wątpliwej jakości materiałów edukacyjnych. Do AI_Devs początkowo podchodziłem również dość sceptycznie. Jednak spośród zalewu treści edukacyjnych o AI to właśnie AI_Devs sprawiało najlepsze wrażenie. Dlatego też z zaciekawieniem na bieżąco obserwowałem nowe informacje o kursie oraz działalność autorów. Ostatecznie do podjęcia decyzji o wzięciu udziału w AI_Devs 2 Reloaded nakłonił mnie bardzo pozytywny feedback innych uczestników.
Jeśli nie wiesz, czym jest AI_Devs, to spieszę z wyjaśnieniem. AI_Devs to 5-tygodniowy kurs łączenia narzędzi Generative AI z logiką aplikacji oraz narzędziami do automatyzacji. Autorami kursu są: Adam Gospodarczyk, Jakub Mrugalski oraz Mateusz Chrobok.
Przed wzięciem udziału w AI_Devs mój zakres wiedzy o Generative AI myślę, że był poniżej przeciętnej. Znałem podstawowe założenia teoretyczne, jak działa Generative AI i potrafiłem za jej pomocą rozwiązywać mniejsze problemy, takie jak pisanie prostych funkcji w PHP czy JavaScript. Korzystałem również z Generative AI jako „towarzysza rozmów”, którego zadaniem była analiza moich pomysłów i wzmocnienie kreatywności. Będzie to istotne z punktu widzenia wyrażanych przeze mnie opinii i wniosków.
W AI_Devs najbardziej czekałem na wiedzę, która pozwoli mi robić więcej w krótszym czasie i z lepszymi rezultatami. Chciałem dowiedzieć się więcej, jak mogę uwolnić trochę czasu przez automatyzację niektórych zadań lub by w tym samym czasie robić więcej niż obecnie. Jednym z moich celów do realizacji po ukończeniu szkolenia jest przygotowanie własnego asystenta AI, skrojonego pod swoje potrzeby.
UWAGA — w tym artykule NIE znajdziesz materiałów ze szkolenia i wiedzy, którą Jakub, Adam i Mateusz przedstawiają w ramach kursu. Być może w przyszłości pojawią się na blogu treści bazujące na wiedzy, którą pozyskałem w trakcie programu. Z pewnością nie będzie to opisywanie zdobytej wiedzy, a raczej pokazanie jak można wykorzystać ją w praktyce. Jeśli chcesz zdobyć wiedzę zawartą w szkoleniu, to odsyłam na stronę kursu 😉
W tym artykule znajdziesz natomiast informacje o formie szkolenia o tym, czego możesz dowiedzieć się w trakcie AI_Devs oraz poznasz moje wrażenia po ukończeniu szkolenia.
Platforma i forma kursu
Kurs opublikowany jest na platformie Circle. Daje to tę sporą zaletę, że zarówno materiały, jak i społeczność kursantów znajduje się w jednym miejscu. Dzięki temu można dyskutować bezpośrednio pod treściami ze szkolenia. Według mnie o wiele lepsza opcja niż Slack czy Discord.
Większość treści kursu jest w formie tekstowej. Do niektórych lekcji dołączone zostały wprowadzenia do tematu lub uzupełnienie w formie video. Pod lekcjami znaleźć można podsumowania lekcji w postaci audio. Częścią kursu były również transmisje live, których jednak z uwagi na ograniczenia czasowe nie byłem w stanie obejrzeć, więc nie jestem w stanie wypowiedzieć się na ich temat.
W AI_Devs 2 duży nacisk został położony na zadania. Jestem ogromnym fanem nauki przez praktykę. Zadania są krótkie i skupione tylko na tym, co było omówione w danej lekcji. Podobny format kursów można też znaleźć np. na DataCamp. Zadania dzielą się na trzy typy:
- Quizy zawierające pytania zamknięte dotyczące treści zawartych w lekcjach lub dotyczące zagadnień poruszanych w lekcji. Większość pytań miała naprawdę sporo sensu i sprawdzała informacje zawarte w tekście lub dodatkowych materiałach. Znalazły się też takie, które wymagały szukania informacji poza kursem, bazując na wiedzy z kursu (chyba że odpowiedź jednak była w kursie i ją przeoczyłem 😉).
Było jednak kilka takich, które przypomniały mi niektóre zaliczenia na studiach polegające na pamięciówce pytań z lat poprzednich. Przykładem takiego pytania jest „Od czego skrótem jest RAG?”. Fajnie to wiedzieć, ale pytanie brzmi czy jeśli będę umieć wykorzystać RAG w praktyce bez umiejętności rozwinięcia tego skrótu, to czy jest to duży problem? Ciekawym urozmaiceniem kursów mogłyby być pytania otwarte… sprawdzane przez AI 😉. W ostatecznym rachunku tę część kursu uważam za najmniej udaną. - Zadania prompt, czyli zadania uruchamiane w aplikacji webowej przygotowanej na potrzeby AI_Devs. Polegają na przygotowaniu prompta realizującego określone zadanie. Bardzo przypadł mi do gustu ten typ zadań i niektóre wymagały pogłówkowania. Jeśli chcesz sprawdzić przykładowe zadanie samodzielnie, to możesz zagrać w grę Psychiatryk przygotowaną przez ekipę AI_Devs. Forma zadań w kursie jest zbliżona do tej z gry.
- Ostatnim typem zadań są zadania API, które wymagały zdecydowanie najwięcej czasu. Zadania polegają na wysłaniu zapytania do API AI_Devs w celu odebrania zadania, a następnie rozwiązaniu go i odesłaniu odpowiedzi. Początkowo chciałem wyklikać je ręcznie w Postmanie, ale zadania są tak skonstruowane, by nie było to możliwe.
Dla własnej wygody postawiłem na pisanie skryptów w Node.js i wykorzystaniu Open AI SDK. Zadania można również rozwiązać z wykorzystaniem platform no-code np. make.com. Po szkoleniu wielu uczestników deklarowało, że wszystkie zadania idzie zrealizować korzystając z no-code, więc jeśli z programowaniem jesteś na bakier, to nic straconego.
Zadania są tak skonstruowane, by nie były zbyt łatwe, ale też nie są killerami na cały dzień. Uśredniając, realizacja zadań z jednego dnia zajmowała mi ok. godziny.
Tydzień 1
Program zaczyna się teoretycznym wprowadzeniem do obszaru sztucznej inteligencji. Zostało to na tyle prosto wytłumaczone, że do zrozumienia nie potrzeba doktoratu z informatyki. Następnie otrzymujemy wprowadzenie do tematyki Generative AI i LLM. Już na samym początku dowiedziałem się np. dlaczego moje próby pisania postów na media społecznościowe, których celem było zachęcanie odbiorców do czytania treści na blogu, brzmiały jak teksty na pokazach garnków lub telezakupy. Poznanie charakterstyki działania LLM pomogło mi zrozumieć, dlaczego dostawałem takie odpowiedzi a nie inne. Fajnie też było dowiedzieć się, do czego NIE zostały stworzone LLM i czego od nich oczekiwać.
Pojawiły się tu też pierwsze schody. W miarę brnięcia przez materiał z pierwszego dnia pojawiały się kolejne nazwy produktów, aplikacji, modeli, które mogę wykorzystać i prawdę mówiąc, trochę zacząłem się gubić. Nie wiedziałem, czy te technologie powinienem już znać, czy to jest moment, by je poznać, czy poznam je za chwilę w ramach szkolenia. Na szczęście im dalej w las, tym prościej, a początkowe zagubienie wynikało raczej z ilości nowych treści do przyswojenia.
Bardzo cieszy mnie wspomnienie w kursie aspektów bezpieczeństwa, prywatności i wątpliwości związanych z etyką gromadzenia danych uczących np. przez Open AI. Omówiony został również aspekt moderacji danych wchodzących do LLM-ów, niedoskonałości i specyfiki moderacji w odniesieniu do języka i kultury.
Kolejne lekcje to już nieco bardziej praktyczne podejście do tematu pracy z LLM, w szczególności z modelami GPT od Open AI. Pokazane zostało, jak w praktyce działają LLM i jak wygląda proces generowania przez nich odpowiedzi. Kolejne lekcje w pierwszym tygodniu opisują:
- jak zostały zbudowane LLM-y;
- jakie dane zostały wykorzystane do ich zbudowania;
- jakie mają ograniczenia;
- jaka jest charakterystyka zwracanych wyników;
- jak wygląda struktura promptów oraz omówienie w szczegółach konkretnych składowych;
- typy promptów i wskazówki pomagające projektować lepsze prompty;
- sposoby na odpytywanie modeli GPT (no-code, API, Playground);
- wprowadzenie do LangChain;
- kiedy NIE wykorzystywać integracji z LLM;
- sposoby dostosowania danych wejściowych do intregracji z LLM;
- techniki sterowania zachowaniem modelu.
Ogromną zaletą jest tona treści dodatkowych w postaci linków do zewnętrznych źródeł. Podsumowując, pierwszy tydzień to solidne podstawy, konieczne by ruszyć dalej.
Tydzień 2
W drugim tygodniu szkolenia pojawiła się zajawka tematu, na który czekałem najbardziej, czyli tworzenie własnego asystenta AI. Fajnie, że pokazane zostały nie tylko możliwości, ale też ograniczenia takich asystentów. Od razu było widać też, ile pracy będzie wymagało przygotowanie własnego asystenta.
Bardzo spodobał mi się podrozdział o zastosowaniach biznesowych asystentów AI, szczególnie dlatego, że pokazano, co się nie sprawdziło i dlaczego. W głowie został mi też cytat zapożyczony z wywiadu Andreja Karpathyego u Lexa Friedmana:
„Początkujący są zwykle skupieni na tym, 'co robić’, niż na tym, aby 'robić dużo'”
W drugim tygodniu pojawia się również temat ograniczeń LLM-ów. Co równie ważne, równie szybko pojawiło się omówienie sposobów jak sobie z nimi radzić. Dużo uwagi zostało poświęcone optymalizacji promptów i zwiększaniu ich efektywności. Kolejne lekcje to pokaz możliwości integracji modeli LLM z zewnętrznymi źródłami. Kilka ciekawych przykładów:
- integracja z kalendarzem;
- praca z zewnętrznymi źródłami danych;
- praca z repozytoriami Gita.
Znacznie bardziej zainteresowała mnie jednak możliwość integracji LLM z takimi danymi jak notatki, linki, przemyślenia itd. Pokazane zostały praktyczne przykłady integracji, które będę mógł wykorzystać przy tworzeniu własnego asystenta AI.
Tydzień 3
Tydzień 3 to dalsze eksplorowanie możliwości LLM-ów. Pokazane zostały techniki zmuszenia AI do zwrócenia odpowiedzi we wskazanej formie. Poruszony został również aspekt prywatności danych przekazywanych do Open AI. Poświęcono też kilka słów Copilotom i modelom Open Source.
Pokazano też bardzo ciekawe rozwiązanie – ReAct (nawet w AI tego Reacta wcisną 😉). W skrócie rozwiązanie to rozszerza możliwości LLM-ów o możliwość zadawania pytań i zadań modelowi przez niego samego. Innymi słowy, model staje się zdolny do samodzielnego wyciągania wniosków z danych i przeprowadzenie procesu dedukcji od A do Z. Demo pokazuje, że nadal istnieje w nim spore pole do poprawy. Mimo to ReAct wygląda bardzo obiecująco.
Pojawiły się również treści związane z integracją LLM-ów z kodem, organizacją i utrzymaniem wykorzystywanych promptów, aspektami bezpieczeństwa w przekazywaniu treści przez użytkownika do modelu oraz reagowaniu na błędy. Autorzy pokazali też listę wyzwań do rozwiązania przed wdrożeniem LLM-ów do aplikacji produkcyjnej. A lista ta jest całkiem spora…
Kolejnym ciekawym przedstawionym zagadnieniem jest długoterminowa pamięć modelu. Pokazane zostały metody i techniki pracy z bazą wiedzy służącej do personalizacji modelu. Wiele uwagi zostało poświęcone pracy z dużymi dokumentami i ich odpowiedniej obróbce, a także bazom wektorowym.
Dalsza część tego tygodnia porusza zagadnienie pracy z tekstem i aspekty takie jak korekta tekstu, tłumaczenia, kategoryzowanie i streszczanie tekstów. Poświęcono też sporo uwagi embeddingom, ich charakterystyce i zastosowaniu. Tydzień wieńczy lekcja skupiająca się na tym, co trzeba wiedzieć przed wdrożeniem LLM-ów na produkcję.
Tydzień 4
Tydzień skupia się wokół integracji no-code (na przykładzie make.com) z Open AI, własnym API i innymi narzędziami. Przez długi czas byłem bardzo oporny tego typu rozwiązaniom. Od jakiegoś czasu drastycznie zmieniłem swoje zdanie. Liczba automatyzacji, jakie chciałbym wdrożyć za pomocą no-code na razie nie jest długa, ale być może w trakcie tworzenia pierwszych automatyzacji będą pojawiały się kolejne pomysły. Z chęcią podzielę się swoimi wrażeniami i doświadczeniami z wykorzystania no-code w dedykowanym artykule.
W lekcjach pokazane zostało wiele przykładów automatyzacji codziennych zadań. Znalazło się też miejsce na stworzenie i deployment własnego API wykorzystującego pod spodem Open AI oraz omówienie jego zadań.
Tydzień 5
Ostatni tydzień skupia się na pracy nad własnym asystentem AI. Na przykładzie Alice pokazany został schemat przykładowego asystenta, jak również jego komponenty i architektura. To tutaj następuje połączenie w całość wiedzy zgromadzonej przez poprzednie tygodnie. Dużo uwagi zostało poświęcone możliwościom Alice oraz sposobom jak można wchodzić w interakcję z asystentem. Dedykowaną lekcję poświęcono pracy z pamięcią długoterminową i technikom pracy z obszernymi treściami. Z uwagi na limit kontekstu i ograniczone możliwości utrzymania uwagi modelu techniki umiejętność pracy z obszernymi dokumentami jest szczególnie użyteczna.
Na duży plus jest też omówienie problemów, na jakie natknął się Adam w trakcie pracy z asystentem. Dobrze uczyć się na błędach, ale jeszcze lepiej na cudzych 😉
Na sam koniec szkolenia przedstawona została przykładowa aplikacja, która może stanowić punkt wyjścia w procesie tworzenia własnego asystenta.
Jako bonus pojawiła się nadprogramowa lekcja o bazach wektorowych w ramach rozwinięcia tematów poruszonych w głównych lekcjach szkolenia. To tylko pokazuje, jak duże jest zaangażowanie autorów w szkolenie i jak im zależy na zadowoleniu uczestników.
Podsumowanie i moja opinia
Wiedza zawarta w kursie nie jest wiedzą tajemną, niedostępną nigdzie indziej. Podczas uczestnictwa w kursie i przeglądania materiałów znalezionych na własną rękę część wiedzy z kursu znalazłem poza nim. W kursie jednak największą wartością jest to, że ktoś tę wiedzę znalazł, uporządkował, przekształcił na przyjemną w odbiorze formę oraz przygotował sporo zadań pozwalających utrwalić wiedzę. Chcąc dowiedzieć się na własną rękę tego, co przedstawiono w kursie, czas nauki zdecydowanie przekroczyłby 5 tygodni, na które zostało przewidziane AI_Devs.
Średnio poświęcałem na kurs godzinę dziennie (1 lekcja) oraz drugie tyle na rozwiązanie zadań, co w skali całego kursu daje około 50 godzin. Moim zdaniem, szukając wiedzy na własną rękę i testując dostępne rozwiązania, nie ma szans, by być w tym miejscu co po ukończeniu kursu po 50 godzinach.
Dodatkowo dostajemy zestawy zadań nakierowanych na najistotniejsze umiejętności oraz dostęp do społeczności.
Jeśli miałbym wskazać czy czegoś mi zabrakło, to chętnie dowiedziałbym się więcej o tworzeniu grafik z wykorzystaniem AI. Możliwości Midjourney i DALL·E są ogromne. Rezultaty moich pierwszych eksprymentów z DALL·E możesz zobaczyć w miniaturce do tego artykułu 😊
Podsumowując, kurs spełnił moje oczekiwania i z czystym sumieniem mogę Ci go zarekomendować. Adam, Jakub i Mateusz stanęli na wysokości zadania i stworzyli świetny produkt, który stanowi dobry punkt wyjścia do dalszej samodzielnej nauki i pracy z AI. Forma kursu sprawiła, że dawno nie byłem tak zaangażowany w uczestnictwo jak w AI_Devs.
Kolejnym moim krokiem będzie praktyczne wykorzystanie wiedzy z kursu i przygotowanie własnego asystenta AI. O rezultatach moich prac z pewnością przygotuję dedykowany artykuł.
Jeśli masz jakieś pytania, to zachęcam do zostawienia komentarza pod artykułem. A jeśli również miałeś/aś okazję uczestniczyć w AI_Devs, to jestem ciekaw Twojej opinii. Na deser zostawiam dwa linki do podcastów, gdzie poruszane są zagadnienia omawiane w trakcie kursu. Załączam również link do darmowego kursu od Google wprowadzającego do tematyki Generative AI.
AKTUALIZACJA:
Obecnie trwają zapisy do AI_Devs 3 Agents, czyli zupełnie nowej odsłony szkolenia, która jeszcze bardziej pomoże Ci zgłębić tajniki Dużych Modeli Językowych. Gorąco zachęcam Cię do wzięcia udziału w nadchodzącej edycji. Mam nadzieję, że moja recenzja przekonała Cię, że zdecydowanie warto! 💪
Zapisz się na mailing i odbierz e-booka
Odbierz darmowy egzemplarz e-booka 106 Pytań Rekrutacyjnych Junior JavaScript Developer i realnie zwiększ swoje szanse na rozmowie rekrutacyjnej! Będziesz też otrzymywać wartościowe treści i powiadomienia o nowych wpisach na skrzynkę e-mail.