Dowiedz się na czym polega praca DevRel i jak działają bazy wektorowe (QDrant i inne)
Czego się dowiesz z tego odcinka?
- praca jako DevRel/Dev Advocate, plusy minusy
- wektorowe bazy danych i ich zastosowania
- przyszłość modeli AI w open-source
- kiedy AI zastąpi programistów
- ulubione narzędzia
Gość programu:
- Kacper Łukawski, DevRel w Qdrant
- https://www.linkedin.com/in/kacperlukawski/
- https://twitter.com/LukawskiKacper
- https://www.embassy.ai/
Transkrypcja
Artur:
Witam wszystkich bardzo serdecznie w podcaście Fullstack. Ja nazywam się Artur Chmaro, a moim dzisiejszym gościem jest Kacper Łukawski z firmy Quadrant. Cześć Kacper.
Kacper:
Cześć, wielkie dzięki za zaproszenie.
Artur:
Będziemy dzisiaj rozmawiać o bazach wektorowych, o sztucznej inteligencji, o firmie Quadrant oraz o pracy jako DevRel. Muszę się przyznać, że rozmawiałem ostatnio z paroma osobami na temat pracy jako DevRel, jako Dev Advocate, developer advocate I dużo osób myślę z branży IT, takiej ze strony programistów, developerów nie do końca wie w ogóle czym jest DevRel, czym się zajmują devrelowie, czym się zajmują dev advocate. Także może zacznijmy od tego. Powiedz nam co właściwie robisz jako DevRel.
Kacper:
Jasne, Moją specjalizacją są wydarzenia. Akurat u nas w firmie jest tak, że to się dość naturalnie w pewnym momencie podzieliło, ale zdarza mi się też pisać różne treści, które docelowo mają edukować użytkowników Quadranta. Samo pojęcie DevRel jest bardzo szerokie. Są ludzie, którzy zajmują się budowaniem społeczności, wsparciem na Discordzie. Które docelowo mają w jakiś sposób edukować użytkowników w kwadrantach, ale samo pojęcie de ale też wiele, wiele innych. Generalnie wszystko, co podpada od swego rodzaju edukację, ale także zbieranie feedbacku od użytkowników I przekazywanie go do zespołu programistów, który w naszym przypadku rozwija bazę danych, jest też gdzieś w zakresie naszych obowiązków.
Artur:
Czyli w zasadzie DevRel ma rację bytu w firmach, w których wytwarza się coś, z czego mogą korzystać developerzy, tak? Czyli raczej nie mamy do czynienia z takimi def Relations w momencie, gdy robimy taki typowy soft B2B czy jakąś taką aplikację typowo kliencką?
Kacper:
Nie. Absolutnie nie, jakby to jest typowe dla firm, które właśnie robią coś w Open Source albo robią też nawet zamknięte oprogramowanie, które w jakiś sposób może być wykorzystywane przez deweloperów. W tym momencie chodzi właśnie o to, żeby edukować I żeby zbierać ten feedback, o którym wspomniałem. W przypadku aplikacji klienckiej nie do końca wyobrażam sobie właściwie, nie ma się tam interakcji z deweloperami, raczej z typowymi użytkownikami, więc ewentualnie tutaj może jakaś edukacja, ale raczej są to firmy technologiczne, które rzeczywiście kierują swoje produkty do programistów.
Artur:
A teraz chciałbym Cię podpytać, jak w ogóle zaczęła się twoja przygoda jako DevRel? Myślę, że taka częstsza ścieżka kariery to jest, że ktoś pracuje jako właśnie deweloper, project manager, jakiś lider zespołu. Teraz też mamy do czynienia z różnymi gałęziami wokół AI, maszynowego uczenia. I właśnie chciałem podpytać, jak to było u Ciebie. Skąd się to wzięło właśnie, że dbasz o tutaj relacje z dewelopera?
Kacper:
Jasne, dość naturalne przejście od programisty przez data science do właśnie tej pozycji w moim przypadku. Ogólnie zaczęło się to wszystko od firmy Quadrant, czyli tej, w której aktualnie również pracuję. W poprzedniej pracy bardzo często miałem okazję występować gdzieś publicznie na meetupach, jakichś konferencjach. Jeździłem też, żeby w pewnym sensie wesprzeć naszą sprzedaż. To był Software House, w którym po prostu chcieliśmy poszukiwać klientów na różnego rodzaju eventach. I w tym momencie okazało się, że to jest też część tej pracy, która mi się bardzo podoba, bo każde takie wystąpienie musi zostać poprzedzone też przygotowaniem jakiegoś projektu, który chcemy zaprezentować albo jakiegoś researchu, który robimy, a kład w tej poprzedniej pracy to były głównie rzeczy związane z data science, więc to wymagało chociażby zbudowania jakiegoś prototypu, analizy jakiejś informacji I dość naturalnie stwierdziłem, że byłoby dobrze kontynuować tą część, trochę też może wypalenie byciem programistą, plus jeszcze w międzyczasie założyłem fundację, która też zajmuje się edukacją w zakresie sztucznej inteligencji, więc też dość naturalnym krokiem było skierowanie się w tym kierunku. Okazało się, że są firmy, które chcą po prostu płacić za coś, co bardzo lubię robić, więc to dość naturalne, ale są też ludzie, którzy nie mają kompletnie doświadczenia w pracy z technologią, nie byli nigdy programistami. Szczerze mówiąc, pisanie kodu jest dla nich dość trudne, albo nawet niemożliwe, ale cały czas odnajdują się w Devrelu właśnie w tych dodatkowych aspektach. Jeśli na przykład chodzi o budowanie społeczności, sieci ambasadorów, którzy potencjalnie mogliby wesprzeć te działania I ogólny kontakt, to też jest część naszego odpowiedzialności. Ja pokrywam tą bardziej techniczną stronę.
Artur:
Wrócimy jeszcze do sztucznej inteligencji. Na pewno będę chciał cię podpytać o jakieś takie tutaj często zadawane pytania, zwłaszcza przez programistów, kiedy zostaniemy zastąpieni, kiedy sztuczna inteligencja zmniejszy zatrudnienie w różnych jakichś aspektach naszego życia. Tutaj jeszcze będę na pewno chciał cię tutaj trochę zaczepić, oto. Natomiast wróćmy jeszcze do Quadranta, bo Quadrant jest to firma, która z tego co zrozumiałem tworzy bazy wektorowe, czyli możemy stworzyć bazę danych wektorową z użyciem kwadranta, więc myślę, że warto tutaj wspomnieć, czym w ogóle są bazy wektorowe I czym one się różnią od takich typowych baz danych, które myślę, że większość deweloperów kojarzy, czyli na przykład MySQL czy Postgres. Co tutaj konkretnie możemy w nich zrobić innego, ciekawszego?
Kacper:
Pierwsza rzecz, którą powinienem tutaj wspomnieć, to jest to, że wektorowe bazy danych to nie do końca są bazy danych, ale środowisko przyjęło taką terminologię, więc niestety musieliśmy się dostosować. Kiedy my zaczynaliśmy mówić o kwadrancie, to raczej określaliśmy się jako wektorowy silnik poszukiwania, bo de facto tym jest kwadrant I tym są też inne produkty z tej kategorii. Z bazą danych my wiążemy pewne nadzieje, na przykład transakcyjność, chcielibyśmy, żeby nasze operacje wykonały się albo wszystkie, albo żadna z nich. I żadna z wektorowych baz danych tego nie zapewnia. Tutaj nie mamy też spójności, więc wszystkie te zasady ACID właściwie nie są spełnione.
To co gwarantujemy to eventual consistency, to znaczy te dane kiedyś będą spójne, ale niekoniecznie od razu, bo de facto jesteśmy silnikiem wyszukiwania, a w wyszukiwaniu nie mamy konieczności, aby nasze dane były zawsze w 100% aktualne. Nie mamy tych problemów, którymi mierzy mi się w bazach danych jakieś utracone aktualizacje itd. De facto silnik wyszukiwania ma taką funkcję trochę pomocniczą, w sensie dane transakcyjne. Będę trzymał się przykładów. Powiedzmy, że prowadzimy bardzo prosty sklep internetowy, w którym mamy swoje produkty.
Te trzy mamy w jednej tabeli w bazie danych, mamy użytkowników, których trzymamy w innej tabeli, no I są transakcje, które trzymamy jeszcze w kolejnej tabeli. I W tym przypadku te dane transakcyjne muszą być ze sobą powiązane. Mamy trzy tabele, które ze sobą łączymy, za pomocą kluczy obcych. Ale jeżeli chcielibyśmy wprowadzić silnik wyszukiwania produktów, to dane użytkowników I transakcji średnio będą nam do tego potrzebne. Być może jakieś agregaty, takie jak na przykład, że to jest najbardziej popularny produkt, albo ile tych produktów sprzedaliśmy w historii itd., ale dane użytkowników to już naprawdę jakiś bardzo zaawansowany analizie.
W przypadku silników wyszukiwania chodzi nam o to, żeby w jakiś sposób pozwolić użytkownikom znaleźć to, czego potrzebują. I do tego celu korzystaliśmy bardzo często z Elasticsearcha, czy z czegokolwiek, co jest zbudowane na Solarze. Te rozwiązania operowały bardzo często na słowach kluczowych. To znaczy, ja musiałem wiedzieć, jakimi słowami ten produkt został opisany. To było okej przez długi czas, ale okazało się, że da się wykorzystać sztuczną inteligencję czy też machine learning I stworzyć takie modele, które będą reprezentowały dane za pomocą wektorów.
Każdy z tych wektorów ma pewną określoną długość, to jest zależne od modelu. Na przykład załóżmy, że tysiąc wymiarów. Mamy tysiąc liczb I żadnej z nich nie jesteśmy w stanie interpretować indywidualnie. To, co nas interesuje, to porównanie odległości. Ja lubię ten przykład, jeżeli szukamy miejsca na wakacje albo hotelu, w którym chcielibyśmy spędzić wakacje I szukalibyśmy go wyłącznie po współrzędnych geograficznych, to mamy dużą szansę, że pogoda w tym miejscu będzie bardzo podobna, jeżeli współrzędne tych dwóch hoteli są blisko siebie.
I to są dwuwymiarowe wektory, mamy długość I szerokość geograficzną. W przypadku tysiącwymiarowym to jest w ogóle nieinterpretowalne, ale te zasady pozostają. Dwa punkty powinny być blisko siebie, w jakimś sensie, wtedy kiedy reprezentują bardzo podobne obiekty. I nie ma znaczenia jakie słowa użyjemy, bo te modele mają tą cenną właściwość, że obsługują na przykład synonimy, same z siebie po prostu uczą się tego na dużych zbiorach danych I wyciągają wnioski, że dwa różne określenia mogą oznaczać dokładnie to samo albo bardzo bliskie koncepty. I Podobnie wyszukiwanie oparte o słowa kluczowe jest ograniczone do tekstu, czyli dokumenty są tekstem, zapytania są tekstem I tylko w taki sposób możemy wyszukiwać, a w przypadku wyszukiwania wektorowego istnieją modele, które na przykład są w stanie konwertować obrazy do wektorów, tekst do wektorów, a niektóre z nich są w stanie konwertować I obrazy, I tekst jednocześnie do tej samej przestrzeni wektorowej.
Dzięki czemu możemy odpytywać tekstem I wyszukiwać obrazy, albo odpytywać obrazem I wyszukiwać obrazy albo tekst, co jest już bardzo ciekawą rzeczą. Na przykład Google Lens ma taki mechanizm. Więc de facto wektorowe silniki wyszukiwania, czy też wektorowe bazy danych dostarczają właśnie tego mechanizmu takiego wydajnego wyszukiwania najbliższych wektorów tej przestrzeni, co okazuje się być niełatwym problemem, bo gdybyśmy chcieli tak naiwnie po prostu poszukiwać najbliższe punkty przez porównywanie się za każdym razem do każdego dokumentu, który mamy w bazie, to to może działać dla tysiąca dokumentów, dla dwóch, trzech, ale jeżeli wejdziemy w dużą skalę, to wtedy wyszukiwanie I porównywanie się do miliona dokumentów za każdym zapytaniem przestaje się skalować. I wektorowe bazy danych w dużej części rozwiązują właśnie ten problem wydajnego odnajdywania najbliższych wektorów w tych wysoko wymiarowych przestrzeniach.
Artur:
Czyli to brzmi dla mnie w taki sposób, że właśnie trzymając się tego przykładu sklepu internetowego, no to mamy zwykle zwykłą bazę danych, gdzie trzymamy nasze transakcje, naszych klientów, nasze produkty I bazę wektorową, która wspiera nas właśnie w tym, w czym te bazy są dobre, czyli właśnie szukaniu jakichś takich powiązanych ze sobą elementów, na przykład jakąś frazą, tak, czyli jeżeli chcemy przeszukać naszą wielomilionową bazę z wieloma milionami produktów gdzieś tam w Amazonie czy w Allegro, no to bardzo możliwe, że oni pod spodem korzystają z bazy wektorowej, żeby po prostu przyspieszyć te wyszukiwania I po prostu zapewnić taką funkcję dla użytkowników w postaci szybkiego I dobrze działającego searcha. Ale teraz taka rzecz mi przyszła do głowy, bo Quadrant jak rozumiem jest to pewien silnik, pewien soft, który po prostu pozwala nam wrzucać te dane do tej bazy, tylko zastanawiam się, jak wygląda przygotowanie tych danych, czyli ja mam np. Bazę po prostu miliona różnych książek czy tam e-booków, czy jakiś tam artykułów. No I teraz chciałbym wrzucić to do bazy wektorowej I kompletnie nie wiem, jak za to się zabrać. Czy to już jest część tego silnika, że on mnie wspiera w tym, żeby przyjąć ode mnie dane I je sobie odpowiednio pogrupować, czy raczej jest to zadanie dla dewelopera, żeby po prostu te dane w odpowiedniej formie wrzucić?
Kacper:
Jasne, są różne podejścia do tego. Rzeczywiście, jeżeli przejrzymy ekosystem wektorowych baz danych, to różne firmy decydują się na różne tutaj funkcjonalności, które dostarczają użytkownikom. W przypadku Quadranta my dostarczamy bardzo wydajny silnik do wyszukiwania I budowania tych indeksów, żeby to wyszukiwanie rzeczywiście było wydajne, ale to od użytkownika, czyli od dewelopera zależy, w jaki sposób swoje wejściowe dane przerzuci do wektorów. Tych modeli jest bardzo dużo I to jest też część naszej pracy. My staramy się edukować I pokazywać, jak na przykład rozwiązać to za pomocą danego modelu, jak zbudować system chociażby właśnie wyszukiwania dla e-commerce'u takiego wizualnego, ale pokazujemy to na jakichś otwartych modelach.
Jest cała masa modeli open source, które możemy wykorzystać. Jest też bardzo dużo modeli zamkniętych, które możemy wykorzystywać jako API, ale cała integracja tego I przerzucenie danych przez model I następnie do kwadranta jest już po stronie do wyrópera. Owszem, możemy to ułatwić, pokazując pewne pewne rozwiązania. I może pokrótce dlaczego się zdecydowaliśmy na takie podejście, bo oczywiście znajdziecie alternatywy, w których te modele na przykład są zintegrowane z bazą danych. I owszem, w pewnych przypadkach to działa, ale samo tworzenie modeli sztucznej inteligencji, jakichś sieci neuronowych, które chociażby przeprowadzały klasyfikacje, to nie jest nowy problem.
Firmy, które potencjalnie mogą z tego korzystać, prawdopodobnie już wdrożyły w swojej historii jakieś modele. Wiedzą, że na przykład taki gotowy model wzięty prosto z półki, open source'owy model nie będzie działał dla jej konkretnej dziedziny, bo został przetrenowany na przykład na Wikipedii I bardzo dobrze działa w takim ogólnym zastosowaniu, ale jeżeli pracujemy w specyficznej dziedzinie, to będziemy mieli własną terminologię, być może chcielibyśmy obsługiwać więcej języków tym samym modelem, żebyśmy mogli znajdować angielskie dokumenty, a wyszukiwać językiem polskim. Więc jakby to jest bardzo specyficzne dla branży, dla firmy, dla projektu, więc pokrycie tego gotowymi modelami byłoby trochę bez sensu, bo one I tak nie będą działać w pewnych specyficznych przypadkach. one są super do budowania takiego POC, ale nie do końca sprawdzają się w konkretnych zastosowaniach, kiedy już rzeczywiście chcemy stworzyć wartościowy projekt. Co więcej, wektorowe bazy danych nie potrzebują kart graficznych do swojego działania.
Dla nas wystarczające są operacje Single Instruction Multiple Data, czyli SIMD na procesorze, Procesory są pod to zoptymalizowane I to jest absolutnie wystarczająco do tego, żeby efektywnie wyszukiwać najbliższych sąsiadów. Ale głębokie sieci neuronowe potrzebują procesorów graficznych, Potrzebują GPU, najczęściej od Nvidia, więc jakby jeżeli stworzylibyśmy system, który miałby w sobie wbudowane te modele, to musielibyśmy wymagać od naszych użytkowników, żeby korzystali zawsze z kart graficznych na każdym serwerze, na którym działa Quadrant. Co jest absolutnie zbędne? My tej karty graficznej I tak nie będziemy wykorzystywać, to są zupełnie inne wzorce skalowania. W momencie, kiedy mamy jakiś model, to uruchamiamy go na klatrze z kartami graficznymi, a kiedy chcemy wyszukiwać najbliższych sąsiadów w tych przestrzeniach wektorowych, to wystarczą nam procesory, więc zupełnie inne maszyny.
Więc jakby taki system z natury lepiej jest rozproszyć I skalować zupełnie inaczej. W momencie, kiedy indeksujemy dane I na przykład chcielibyśmy przeliczyć te wektory dla milionów danych, być może warto ten klaster zeskalować I użyć wielu różnych krawy kraftycznych w tym samym czasie, ale później, kiedy wyszukujemy, wystarczy nam tylko jedna albo dwie albo klaster, który będzie się autosfalował w zależności od ruchu. Więc jakby taka separacja przychodzi dość naturalnie. Zupełnie inne paradygmaty, zupełnie inne problemy I zupełnie inne środki potrzebne do rozwiązania, więc stąd takie podejście. Także to jest trochę moją rolą, żeby pokazać wszystkim w jaki sposób to zrobić.
Myślę, staramy się to robić, jeżeli zajrzycie na naszą stronę dokumentacji, to tam tych przykładów jest już cała masa I pokazujemy jak w różnych przypadkach to rozwiązywać, jakie modele są dostępne I jak to zrobić w taki najprostszy możliwy sposób dla tych, którzy dopiero zaczynają, ale też staramy się pokryć potrzeby tych, którzy mają już doświadczenie I teraz chcą na przykład ulepszyć to wyszukiwanie, bo widzą, że akurat dla ich danych te istniejące gotowe narzędzia nie do końca działają poprawnie.
Artur:
Myślę, że też jak wytłumaczyłeś w jaki sposób podchodzicie do obsługi właśnie różnych przypadków użycia, to nasunęło mi się takie pytanie, jak to wygląda statystycznie u Was, czy Wasi klienci głównie korzystają tutaj z kwadranta pod takie przypadki właśnie związane z użyciem sztucznej inteligencji, czy tutaj są właśnie raczej jesteście używani właśnie do takiego wyszukiwania jakichś dużych serwisów. No bo przyznam szczerze, że ja na przykład o bazach wektorowych usłyszałem przy okazji teraz tego boomu na AI I w ogóle Large Language Models, od powstania chat GPT, gdzieś tam się przewijają różne tutoriale, że można użyć bazy wektorową, np. Jak chce się właśnie nauczyć jakiegoś algorytmu, np. Do korzystania z takiej naszej własnej bazy wiedzy wewnątrz jakiejś organizacji, to wtedy często się mówi o bazach wektorowych. Natomiast wiem, że Quadrant jest na rynku dużo wcześniej niż powstał boom na Large Language Models. Zastanawiam się, jak to wyglądało w Waszym przypadku wcześniej, czy po prostu zawsze jesteście używani w większości przez takie zapotrzebowania dla AI.
Kacper:
Absolutnie nie mam gotowych statystyk, dlatego że Quadrant jest narzędziem typu Open Source I nie śledzimy tego, w jaki sposób nasi użytkownicy wykorzystują ten system. Biorąc jednak pod uwagę to, jak wiele pytań dotyczy właśnie wykorzystania wektorów w połączeniu z LLM-ami. Wydaje się, że 90% zastosowań to są właśnie tego rodzaju systemy. Dlatego, że sama metoda jest rzeczywiście dość uniwersalna, bo kiedy zaczynaliśmy mówić o kwadrancie, to de facto chcieliśmy rozwiązywać problem wyszukiwania. To jest po prostu inne podejście do wyszukiwania.
I w 2022 roku, kiedy dołączyłem do Quadranta, pozycjonowaliśmy się właśnie jako alternatywa chociażby dla Elastic Searcha. W momencie, kiedy nie chcesz konfigurować długich list synonimów, chcesz na przykład obsługiwać wiele języków, no to semantic search, uszukiwanie semantyczne jest tym, czego potrzebujesz. Później po całym boomie, związanym z czatem GPT, z wszystkimi modelami generatywnej śróżnityligencji, okazały się, że wektory dość naturalnie tutaj są pewnego rodzaju ulepszeniem. Ten problem, który mamy z LLM-ami, polega na tym, że one wymyślają pewne rzeczy. Wbrew pozorom to nie są maszyny, które przeprowadzają jakieś wnioskowanie, tam de facto przewidujemy kolejne tokeny, konsekwencje kolejnych tokenów.
I problem powstaje wtedy, kiedy chcemy te modele wykorzystać komercyjnie, bo jeszcze chcemy się po prostu pobawić, to nie jest duży problem, po prostu dostaniemy fałszywe informacje. Ale jeżeli chcemy to wykorzystać w jakiś sposób I chcemy, żeby to był system w miarę niezawodny, to on na pewno nie będzie wiedział wewnętrznych informacji naszej firmy, nie będzie wiedział nic o tobie czy o mnie, prawdopodobnie, dlatego że te informacje nie znalazły się w zbiorze treningowym I on nie ma żadnego połączenia z zewnętrznymi systemami, żeby móc sobie te informacje zaciągnąć, a już rzeczywiście, żeby zaciągać je w czasie rzeczywistym, to jest absolutnie niemożliwe. Powstał taki koncept, że właściwie jedynym komponentem, którym możemy sterować, to jest prompt, który wysyłamy do LLM. Bo w tym promptie, jeżeli nabyt tylko pytanie, to polegamy wyłącznie na wiedzy systemu, na tym, na czym on został nauczony, czym nie mamy zupełnej kontroli. Ale jeżeli do promptu wrzucimy też jakieś dane, które są potencjalnie potrzebne, żeby na nasze pytanie odpowiedzieć, to okazuje się, że zamiast korzystać z wiedzy modelu, wykorzystamy z jego zdolności językowych, to znaczy on jest w stanie wyciągać potrzebne nam informacje, jest w stanie robić podsumowania naszej informacji, któremu dostarczymy I wiele różnych rzeczy, ale 1 już to robią wyłącznie na wiedzy językowej I na tym, żeby wyciągać to, co istotne, co jest problemem dużo łatwiejszym.
I właśnie wyszukiwanie semantyczne stało się takim pomyślnym narzędziem do tego, żeby znaleźć to, co istotne. Prompty, które wysyłamy do czata GPT, to z natury rzeczy językiem naturalnym. My nie chcemy wpisywać tutaj fraz jak do Google poszczególnych słów kluczowych, tylko chcemy prowadzić naturalne interakcje. Więc oczywistym stało się to, że te prompty możemy traktować jako zapytania do wektorowej bazy danych, przerzucać je przez jakiś model embeddingowy I na tej podstawie znajdować pasujące fragmenty w naszej bazie wiedzy. I te fragmenty, które pasują, wrzucamy później do prompta.
Ten proces da się zautomatyzować, jest to dość proste. I w tym momencie te interakcje operujące na wiedzy modelu stały się interakcjami operującymi na jego zdolnościach językowych, dużo prostszymi. I nad naszą bazą wiedzy mamy kontrolę, możemy ten proces nazywać się Retrieval Argumented Generation I to, co wyszukiwanie semantyczne tutaj robi, to jest właśnie ten pierwszy człon, czyli retrieval. To jest jakiś mechanizm podnajdywania tego, co istotne. I tym możemy się bawić, to możemy poprawiać, to jest dość proste, możemy zmienić model do tworzenia embeddingów, możemy na przykład zwracać 10 najbardziej podobnych informacji, najbardziej istotnych dla tego zapytania, albo trzy, albo tylko jedną I na tej podstawie zwiększać jakość tego modelu.
Więc to jest tutaj bardzo istotne I podejrzewam, że to jest 90% aktualnych zastosowań, pomimo tego, że bardzo chętnie bym porozmawiał o tym, w jaki sposób te modele wykorzystać do detekcji anomalii, klasyfikacji, regresji czy systemów rekomendacji, bo do tego 1 też super się nadają. No ale niestety wszyscy budujemy teraz ragi.
Artur:
Tak, właśnie byłem ciekawy, czy trochę wam ten boom na LLM-y spadł po prostu z nieba, czyli że właśnie wcześniej rywalizowaliście bardziej z takimi produktami jak Elasticsearch itd., a tu nagle się okazało, że te bazy wektorowe świetnie się wpisują właśnie w ten trend, który mamy obecnie. I to widać właśnie też po tych wszystkich materiałach, które się przewijają gdzieś tam na Twitterze, gdzieś tam na YouTubie, że ten temat tego raga się przewija całkiem mocno. Chciałbym Cię jeszcze zapytać o to, jak ogólnie sobie radzisz właśnie z takimi dynamicznymi zmianami, które widać w naszej branży, ponieważ ja mam takie wrażenie, że kiedyś tak się patrzyło na wszystko w cyklach 10-letnich, później w cyklach 5-letnich, a teraz to chyba te cykle są już, nie wiem, półroczne, czy nawet szybsze, że można zobaczyć po prostu wysyp dużo różnych ciekawych narzędzi, algorytmów. I chciałem się zapytać, czy masz jakiś swój sposób, jak sobie radzić z byciem na bieżąco, czyli skąd czerpiesz wiedzę, jaki jest twój ulubiony sposób na to, żeby być na bieżąco.
Kacper:
Najprostsza odpowiedź jest taka, że sobie nie radzę, bo to jest absolutnie niemożliwe. W tej branży zdecydowanie dużo się zmienia I ciężko jest wiedzieć wszystko. Warto jest się pozbyć takiego podejścia, że muszę wiedzieć wszystko. To jest absolutnie zbędne I raczej liczy się tej umiejętności odnalezienia tej informacji. Ale to co ja robię, żeby być w miarę na bieżąco, żeby jednak wiedzieć co się dzieje I na co warto zwrócić swoją uwagę, to śledzenie różnych ludzi na profilach społecznościowych, LinkedIn czy Twitter.
Są osoby, które w tej branży publikują dość ciekawe materiały I to już przechodzi przez pewien filtr. Szczególnie ja sobie cenię ludzi pracujących chociażby w Hugging Face. Hugging Face to jest powiedzmy organizacja pokroju OpenAI z tym, że jest rzeczywiście otwarta. Hugging Face jest trochę GitHubem dla machine learningu. Mamy tam modele, zbiory danych, różne inne rzeczy I osoby, które tam pracują najczęściej mają też dość ciekawe spostrzeżenia czy też same starają się publikować materiały, które wydają się im potrzebne.
Więc, ale to nie jest jakby jedyna organizacja, śledzę też bardzo dużo innych osób I w jakiś sposób staram się to filtrować. Przyznam szczerze, że bardzo długi czas szukałem narzędzia, które pozwoliłoby mi to zautomatyzować opartego na AI-u. Jeszcze nie znalazłem, więc nie mogę niestety nic polecić. Cały czas właśnie śledzenie tych wiadomości, ale też ograniczanie widoczności tych ludzi, którzy starają się po prostu publikować cudze treści I trochę budować swoją markę na tym. Raczej staram się ograniczyć tutaj I gdzieś blokować takie osoby w swoich mediach społecznościowych, bo jeżeli coś czytam już wielokrotnie, to pewnie nie ma to żadnego sensu, żeby powtarzać, a ten zasób informacji jest oczywiście gigantyczny w aktualnych czasach.
Artur:
Tak, właśnie Hugging Face, świetny projekt. Ja może tutaj nie jestem jakimś ekspertem, ale sobie tak po prostu przeglądałem różne modele I faktycznie Hugging Face super się spisuje z mojego punktu widzenia, że są tam od razu takie przykłady, jak można użyć tego modelu I nawet czasami użyć sobie zwykłego restowego API I po prostu się pobawić tymi modelami. Także myślę, że na pewno podlinkujemy ten projekt w opisie do tego odcinka. Dotknąłeś trochę teraz tematu open source, w zasadzie tego, że OpenAI jest open w zasadzie na ten moment głównie z nazwy. I chciałem się zapytać właśnie jak widzisz przyszłość technologii open source w kontekście AI, bo Z jednej strony właśnie mamy wielkich graczy, którzy nie są zbyt otwarci, nie są zbyt w ruchu tej ideologii open source, ale z drugiej strony mamy takiego wielkiego gracza jak Meta I ich model LAMA, który jest open source, mamy różnego rodzaju modele, chyba jak Mistral I parę jeszcze innych.
Chciałem się Cię zapytać, co sądzisz o tych inicjatywach open source I czy one długofalowo mają możliwość wygrania z takimi wielkimi korporacjami, które po prostu mają dostęp do potężnych zasobów, jeżeli chodzi o dane, do zasobów, jeżeli chodzi o serwery, możliwość trenowania, dostęp do talentu. Jak myślisz, że tutaj czy open source dalej będzie w stanie rywalizować?
Kacper:
Tak, zdecydowanie. Wydaje mi się, że jakby ponownie zderzymy się z takim podzieleniem się rynku. To samo się wydarzyło z innymi rzeczami. Ja przez długi czas pracowałem z Big Data I tam rzeczywiście są organizacje, które preferują narzędzia otwarte, chociażby kawkę I wszystkie te narzędzia dookoła, takie jak Spark, Hadoop, czy Hadoop ktoś jeszcze używa, HBase itd. Ale istnieją też komercyjne rozwiązania, które są zamknięte I one są preferowane na przykład przez te duże organizacje.
Open Source ma dużo zalet. Po pierwsze możemy go uruchomić gdziekolwiek, co samo w sobie jest już zaletą dla tych firm, które nie mogą na przykład podzielić się swoimi danymi publicznie, nie mogą je wysyłać do jakiejś chmury, tylko są zmuszone, żeby je trzymać u siebie. Poza tym też ja bardzo wierzę w taki ruch, mówimy o dużych modelach językowych, ale istnieją też tzw. Małe modele językowe. One są dużo mniejsze, możemy je uruchomić chociażby na laptopie I do wielu zastosowań są wystarczające.
Więc jakby dużo też potencjału widzę w tego rodzaju narzędziach. De facto w większości z nas nie będzie stać na to, żeby używać najlepszego dostępnego modelu I żeby płacić za każdą interakcję, każde zapytanie, które wysyłamy, tym bardziej, że jesteśmy w stanie to osiągnąć za pomocą open source'a. Co więcej Open source de facto napędza cały ten rynek, jeśli chodzi o machine learning. Wszystkie najważniejsze biblioteki, takie jak PyTorch, czy właśnie to, co dostarcza Hanging Face, biblioteka Transformers, Tokenizers I tak dalej I tak dalej, one de facto są open source'em I na nich bazują też te duże organizacje. Więc wydaje mi się, że jest tutaj niezbędne.
Ciężko jest też budować pulę talentów, jeżeli całość oprogramowania, które budujemy, będzie oprogramowaniem zamkniętym. Jeśli wspomniałeś też dosyć ciekawy temat, jeśli chodzi o licencje. Larma od mety, tutaj cały czas się toczy dyskusja, czy to jest rzeczywiście otwarty model. Oni ogłosili swoją własną licencję, która teoretycznie jest otwarta, tylko że w przypadku modeli sztucznej kregencji ta otwartość powinna być bardziej wielopoziomowa, bo ta sieć neuronowa to jest de facto zbitka miliardów parametrów, które są po prostu jakimiś liczbami, wagami, które dobieramy w trakcie procesu uczenia. Jeżeli ja podzielę się wyłącznie wagami, to chyba nie do końca oznacza, że otworzyłem ten model.
Podzieliłem się tylko wyjściem, ale cały ten proces uczenia, dane, na które został wytrenowany, nie są otwarte. I to już jest problem w trakcie transparentności, bo może się okazać, że ten model został wytrenowany na danych, do którego autorzy tego modelu wcale nie mieli praw, nie mogli ich korzystywać. To się też Często dzieje, jakby wiemy o tym, różne eksperymenty pokazują, że na wtac.chat gbt jest w stanie wygenerować treści pochodzące z jakiegoś konkretnego bloga, który akurat zaciągnął. Ludzie robią takie eksperymenty na swoich treściach. Dodatkowo z LAM-u jest taki problem, przynajmniej z drugą wersją LAM-y był taki problem, że oni w licencji zabronili wykorzystywać tego modelu bez swojego pozwolenia, jeżeli miesięczna liczba naszych użytkowników czy roczna liczba użytkowników przekraczała ileś milionów.
To jest nieosiągalne dla większości organizacji absolutnie, ale drugi z zapisów mówił chyba o tym, że nie możemy wykorzystywać LAMy do ulepszania żadnego innego modelu. To już samo w sobie jest dość absurdalne, bo mocno ogranicza pole do wykorzystywania tych wyników. Mam też problemy natury etycznej, bo prawdopodobnie te modele zostały nauczone na tak zwanym całym internecie, czyli na wszystkim bez patrzenia na potencjalne zgody autorów tych treści, a następnie zabraniamy innym wykorzystywać wyjścia tego modelu do douczania ich własnych modelów, co jest dość absurdalne. Więc jakby ja akurat ze LAMO jestem w konflikcie, chociaż oni chyba jeszcze o tym nie wiedzą.
Artur:
A jak już jesteśmy właśnie przy takich projektach, z którymi jesteś, tak jak powiedziałeś, w konflikcie z uwagi na właśnie tutaj etyczne aspekty czy licencyjne, to może wspomniałbyś o narzędziach czy modelach, które przeciwne są do tego, co powiedziałeś, czyli że uważasz, na przykład, jest za bardzo ciekawe projekty wartościowe, etyczne, czy są tutaj takie modely, o których chciałbyś wspomnieć, czy też narzędzia?
Kacper:
Jasne, na początku nie chciałbym na pewno budować tutaj swojej pozycji eksperta, jeśli chodzi o etykę, bo wydaje mi się, że akurat zbieranie danych z Internetu na cele powiedzmy badawcze, jakby nie kryje się z etyką, co więcej, jeżeli są to treści, które są chociażby dostępne w Google'u, wynikają w szkliwaniu, no to ciężko mówić, że one są w jakiś sposób prywatne, ale bardziej chodzi mi o sam fakt, że jednocześnie zbieramy cudze informacji, nie dzielimy się zyskami z nich, a następnie zabraniamy innym wykorzystywania pewnych pochodnych instrumentów od tego. Ja na pewno polecam, jeśli chodzi o modele językowe, ostatnio bawiłem się modelem FII-2 od Microsoftu bodajże I on jest chyba upubliczniony na licencji Apache 2.0, czyli jest open sourcem, jakby w pełnym, w pewnym tego słowa znaczeniu. To jest mały model językowy, który generalnie dość mocno bredzi. Jeżeli zadamy mu jakiekolwiek pytanie, to właściwie najczęściej skłamię. Z czatem GPT na przykład z GPT-4 to już jest ciężko jakby tak systematycznie sprawić, że ten model będzie halucynował.
W przypadku FIDWA to jest banalnie proste, wystarczy zadać dowolne pytania, on zmyśli odpowiedź, ale jest bardzo przydatny dlatego, że po pierwsze jest bardzo mały, jestem w stanie go uruchomić na własnym laptopie bez jakiejś karty graficznej, właściwie mam procesor AMD, więc jakaś tam kartka graficzna chyba jest. Działa to całkiem ok, wystarczająco na własne potrzeby, plus jest otwarty I całkiem nieźle działa jeśli chodzi o te zdolności językowe, to znaczy w przypadku budowania raga sprawdza się idealnie I to jest dla mnie absolutnie wystarczające, bo ja nigdy tego nie traktowałem jako silnika wyszukiwania, ale też cała masa innych modeli. Jeśli chodzi o embeddingi, to ja staram się najczęściej korzystać z biblioteki Sentence Transformers, czy też lubię to, co produkuje Cohere, ale Cohere jest organizacją podobną do OpenAI trochę. Oni jakby są trochę bardziej otwarci, dużo rzeczy rzeczywiście publikują na zasadzie open source również, ale ich model biznesowy to sprzedaż tych usług przez jakieś API. Ale to są te narzędzia, z których ja najczęściej korzystam.
Wszystko, co znajdziecie na Having Face I jesteście w stanie przefiltrować na podstawie licencji, że akurat pasuje do Waszego zastosowania, plus te ludy dekio, o których wspomniałem. Plus jeszcze jedna rzecz, jeżeli mogę wspomnieć, Olamma, jeżeli uruchamiacie modele na własnym laptopie, czy na własnej maszynie, na serwerze, Olamma pozwala Wam to zrobić po prostu jak za dotknięcie magicznej ruszczki. Zajmuje to dosłownie kilka minut I możecie uruchamiać te modele w swojej infrastrukturze bez płacenia za każdy token, który wyślecie do chłopca.
Artur:
Czyli tutaj myślę, że warto wspomnieć, że ten projekt Olamma nie ma nic wspólnego z tą LAM-ą od mety, prawda? To jest zupełnie inna rzecz, tak?
Kacper:
Nie, nie, nie. Ale jakby Lama wzięło się chyba od liter L-L-M, jest to po prostu łatwiej wymówić. Mamy LamaIndex, które jest kompletnie powiązane, Lama od mety, to jest trochę takie... Chyba Lama od mety była później stworzona, niż chociażby LamaIndex, więc to jest takie trochę zawłaszczenie tej nazwy. Coś jak powiedzmy, jeżeli nazwa llama przyjmie się do nazywania dużych modeli językowych, to to już im daje przewagę, tak jak nazywamy wszystkie sportowe buty adidasami, tak samo chyba tutaj chcieli skorzystać z tego samego mechanizmu, ale absolutnie to są niepowiązane rzeczy.
Olama, Lama I Lama Index to są kompletnie trzy różne narzędzia.
Artur:
No tak, Facebook lubi chyba tutaj podłączać się pod jakieś trendy, tak samo było przecież ze zmianą nazwy z Facebook na Meta w momencie kiedy bardzo trendy było rozmawianie o wszechowetnym metawersie.
Kacper:
Nawet nie wiem Co to jest szczerze mówiąc do tej pory, niech nie potrafimy wytłumaczyć idei metawersu I dlaczego warto w nią inwestować, ale tak, tak, zgadzam się, zdecydowanie lubią trendy. Dziwię się, że nie skorzystali z blockchain jeszcze.
Artur:
Nie, no to a propos blockchainu, to tam były różne zapędy Facebooka, natomiast z tego co obserwuję to się na razie tak wycofują trochę z tego I różne rzeczy, które były np. Dla twórców przewidziane na Instagramie z użyciem blockchaina, wiem, że meta już się z tego wycofała. Chciałbym Cię jeszcze zapytać, praca jako Defrel kojarzy mi się z taką pracą trochę kompletnie inną niż praca dewelopera, gdzie masz konkretne taski, konkretne feature'y do dowiezienia, które ktoś może przetestować, przeklikać I powiedzieć na końcu, że no dobra robota, zadanie zostało ukończone. Tutaj w przypadku Defrela to myślę, że dużo jest takich zadań, które ciężko jest jasno powiedzieć, że Twoja praca została zakończona, prawda? No bo cały czas musisz przekonywać, budować relacje, zwiększać jakby waszą ekspozycję, słuchać feedbacku, developerów I to mam wrażenie, że to jest taka no robota, która nigdy się nie kończy, bo zawsze po prostu jest coś do zrobienia.
Chciałem Cię zapytać, jak sobie z tym radzisz, czy to nie jest czasami tak, że w zasadzie ciężko jest po prostu powiedzieć, że ok, jest 17, kończę pracę na dzisiaj, wszystko zrobiłem, czy masz jakieś właśnie tutaj techniki, być może rady, jak sobie radzić z taką pracą?
Kacper:
To jest dosyć ciekawe pytanie, bo my cały czas staramy się odpowiedzieć na to, jak wymiernie zmierzyć pracę I jak móc stwierdzić, że ona została zrobiona dobrze albo źle I nie mam na to jednej odpowiedzi. Na pewno część z tych rzeczy, które robimy, bo ja cały czas zajmuję się programowaniem, tylko to nie jest programowanie, w którym ja buduję projekty przez kilka miesięcy czy lat, to raczej jest wymyślanie kolejnych przypadków, uczycia, być może współpraca z inną biblioteką, która gdzieś się integruje z kwadrantem I budowanie jakiegoś przykładu, który pokaże jak to wykorzystać razem. Więc jakby to są takie malutkie projekciki, jakby je łatwo jest określić początek, koniec, mamy pewien cel tego projektu, publikujemy go, ale jeśli chodzi o pozostałe aspekty, to jest absolutnie niemierzalne, nie do końca jestem w stanie uwierzyć ludziom, którzy gdzieś starają się stwierdzić, że da się to zmierzyć. Regularnie jeżdżę na konferencje chociażby, na których pokazuję pewne rozwiązania, czy mówię o tym, jak zbudowaliśmy pewne rzeczy w kwadrancie, albo jak chociażby ulepszyć LLM, jak wykorzystać je do tego, żeby budować coś, na czym możemy polegać I wiele innych rzeczy. Jakby ciężko jest powiedzieć, że dana osoba zacznie korzystać z kwadranta właśnie po mojej prezentacji.
Albo właśnie po tym, że porozmawialiśmy na danym wydarzeniu, że się spotkaliśmy na meetupie I wymieniliśmy jakieś kilka zdań. Nie da się powiedzieć tego, nie da się tego zmierzyć. Więc dość ciekawym jest to, że w przypadku pracy DRL-a dużą częścią tego zawodu jest też komunikacja I ja otrzymuję bardzo dużo wiadomości, których ktoś pisze na przykład, że po moim po ostatnim wydarzeniu zaczął używać Quadranta, buduje jakiś projekt, z czym sobie nie może poradzić, co samo sobie daje mi jakiś wartościowy feedback, który mogę przekazać dalej, ale też pozwala mi gdzieś zbudować taką relację z taką osobą I ewentualnie pomóc jej, żeby zrobić coś po prostu w najlepszy możliwy sposób. Co też jest dosyć ciekawe, jakby jest to pewna rola edukatora, którą ja osobiście bardzo lubię, ale jest to zdecydowanie problem, nie da się tutaj określić od A do Z taki definition of done, dlatego że efekty niektórych z naszych aktywności możemy obserwować po naprawdę wielu, wielu miesiącach, albo nawet nie jesteśmy świadomi, bo nie każda z osób, która gdzieś usłyszała o kwadrancie chociażby dzięki mnie, przyjdzie I powie mi, że rzeczywiście tak się stało, że zaczęli z niego korzystać. Ja bardzo często zbieram takie komentarze gdzieś na wydarzeniach, że ktoś na przykład korzysta z naszych narzędzi od roku, ale po prostu nie miał żadnych pytań, bo było to dla niego oczywiste, co w sumie chyba powinno być celem samym sobie dla nas, ale przez to też staje się dość trudne, żeby powiedzieć, czy robimy dobrą robotę.
Artur:
Wspomniałeś tutaj o tym, co jest dla Ciebie ciekawe w pracy Defrela, czyli właśnie ten kontakt z deweloperami, pojawianie się na konferencjach, budowanie też takich przykładowych użyć Waszego rozwiązania, ale chciałbym tutaj z drugiej strony też Ciebie zahaczyć, co jest najtrudniejsze w takiej codziennej pracy Devrela, gdybyś miał powiedzieć o takiej ciemnej stronie Devrela, czy tutaj coś ci się nastąpi.
Kacper:
To nie jest praca, którą jesteście w stanie zaplanować, na przykład na kilka tygodni w przód. Bardzo wiele się dzieje. Oczywiście, jeżeli pracowalibyśmy na przykład dla relacyjnej bazy danych, jako Devrela, to wtedy prawdopodobnie tu nie będzie żadnej zmiany przez najbliższe parę miesięcy, a na pewno nie będzie jakiejś rewolucji, która spowoduje, że będziecie musieli zmodyfikować wszystkie swoje plany. Ale też przez to, że nie jesteście w stanie zaplanować, to też bardzo dużo rzeczy tych, rzeczy po prostu gdzieś schodzi w trakcie dnia I ciężko jest wyrobić się ze wszystkim, co chcieliście. Dodatkowo też dużą częścią naszej pracy jest komunikacja, którą bardzo sobie cenię oczywiście I zachęcam do wysyłania do mnie wiadomości, jeżeli ktokolwiek ma jakiekolwiek pytania, czy chciałby porozmawiać o jakimkolwiek temacie, który chociaż luźno będzie powiązany ze szczućą inteligencją czy wyszukiwaniem semantycznym.
Ale też bardzo dużo ludzi po prostu odzywa się do nas, bo traktuje nas jako swego rodzaju health test support naprawdę bardzo podstawowymi problemami. Więc jest to dosyć trudne, żeby ciągle odpowiadać na bardzo podstawowe pytania osobom, które nie chcą zajrzeć do dokumentacji z jakiegoś powodu. No I narzut tej komunikacji jest oczywiście dość duży. Cały czas staram się tą część zautomatyzować, ale to nie jest aż takie proste, jak się okazuje. Ale mimo wszystko, jakby nie ma tutaj zbyt dużo ciemnych stron, przynajmniej dla mnie.
Myślę, że to jest też idealna rola dla osoby, która chce się zajmować nie tylko developmentem, nie tylko pisaniem kodu, ale też mieć jakiś ogólny wgląd w to, co się dzieje w tym ekosystemie I być trochę frontmanem danej firmy. Więc jakby dla mnie jest to dość dobre dopasowanie, ale wiem, że nie każdy też chciałby się tym zajmować. Znam bardzo dużo ludzi, którzy po prostu wolą dostać dokładną definicję taska, który mają wykonać, dowieźć go I zamknąć dzień.
Artur:
No właśnie, tak, dla mnie to było właśnie ciekawe, jakie jest twoje podejście do tego I jakie tu właśnie widzisz takie ciemniejsze strony. Co do tego co powiedziałeś, odpowiadania często na takie same pytania, czy pytania związane bezpośrednio z dokumentacją, to ostatnio doświadczyłem tego będąc na serwerze Discord jednego z produktów właśnie związanego z Web3. Miałem tam pytanie dotyczące dokumenty, czegoś co było faktycznie w dokumentacji I oni sobie poradzili z tym tak, że mają jakiegoś bota na Discordzie, który właśnie chyba ma dostęp do ich dokumentacji I różnej bazy wiedzy I muszę przyznać, że ten bot całkiem nieźle mnie nakierował na to, co akurat pytałem, więc myślę, że coraz łatwiej będzie można sobie radzić z takimi częstymi pytaniami właśnie z użyciem różnych botów. Chciałem jeszcze zapytać o taki temat, który jest dosyć gorący, jeżeli chodzi o wszechobecne fora, redity, twitery, jakieś właśnie dyskordy, gdzie się znajdują programiści. Tak jak kiedyś myślano, że sztuczna inteligencja najszybciej zastąpi jakieś takie bardzo proste prace, powtarzalne prace, tak tutaj nagle się okazuje, że sztuczna inteligencja dosyć mocno pomaga programistom w codziennej pracy, przez to na przykład, że moje zdanie, może nie tylko moje, ale że naszą pracę programistów da się dosyć prosto zweryfikować, prawda, no bo jeżeli zadamy pytanie lekarzowi czy prawnikowi, no to każdy z nich może przedstawić różną opinię na dany temat I dosyć ciężko to 0 jedynkowo zweryfikować.
Natomiast w przypadku kodu, jeżeli jakiś LLM nam zwróci kod, no to możemy go dosyć szybko sprawdzić, czy on faktycznie robi to, o co go poprosiliśmy. I teraz pytanie, czy też sztuczna inteligencja Twoim zdaniem w niedalekiej przyszłości może faktycznie się przyczynić do po prostu zwalniania programistów albo do trochę zmienia tego rynku, że będzie potrzebnych dużo mniej osób do pracy.
Kacper:
Wydaje mi się, że zdecydowanie trochę może zmienić to rynek, aczkolwiek ja nie obawiam się tego, żebyśmy nagle zaczęli zostać zwalniani. Przed wynalezieniem, przed ogłoszeniem czata, GVT I wszystkich tych modeli dookoła, takich jak Copilot, mówiło się dość mocno o tym, że na rynku brakuje programistów, że właściwie polski rynek chociażby był w stanie wtedy wchłonąć kilkadziesiąt tysięcy dodatkowych osób, oczywiście na pewnym poziomie znajomości danych technologii. To, co te duże modele językowe zdecydowanie ułatwią, to na pewno pracę programistów, ale nigdy nie wyobrażam sobie zastąpienia programisty całkowicie przez model, po pierwsze, tak jak wspomniałeś, ten kod, który wypluwa taki system, musi ktoś zweryfikować. Co więcej, aktualne modele nie radzą sobie z tym, żeby tak całościowo objąć systemy, które piszemy. Jeżeli ktoś pisze bardzo proste rzeczy, nie wiem, aplikacje, która składa się z trzech klas I po prostu w jakiś sposób spina interakcje pomiędzy nimi, to być może taką aplikację rzeczywiście może napisać Sztuczna Inteligencja w tej chwili.
Ale jednocześnie jeżeli piszemy duże systemy, w których ta złożoność, jakby poziom wejścia do projektu jest liczony w miesiącach, w sensie sensowny onboarding I wymaga naprawdę wielu godzin spędzonych niekoniecznie nad kodem, ale też nad jakąś dokumentacją, nad jakąś bazą wiedzy. To też nie wydaje mi się, żeby LLM-y były w stanie to w jakiś sposób okargnąć, w tym nie te, które znamy. I co więcej, cały czas ta weryfikacja. Jak bardzo lubię korzystać z narzędzi typu Copilot, głównie do tego, żeby generować takie bardzo powtarzalne rzeczy, ale jeszcze nie udało mi się nigdy zmusić tego systemu, żeby stworzyć coś, co byłoby w miarę nowatorskie. To raczej tworzenie bardzo prostych jakichś obliczeń, być może wyciąganie danych z bazy, pisanie zapytanie Square dla ustrukturyzowanych tabeli, ale wydaje mi się jednak, że mimo wszystko LLM stają się narzędziem, które będzie wymagane do pracy, ale niekoniecznie zamiennikiem dla pracy programisty.
Tego akurat mu się nie obawiał. Z drugiej strony też LLM-y do tworzenia tej aplikacji wymagają też podania dość dokładnych instrukcji, więc musielibyśmy też zmusić osoby, które nam zlecają pracę aktualnie do tego, żeby te wymagania podawali rzeczywiście dobrze. Co raczej się szybko nie wydarzy, przynajmniej z mojego doświadczenia jeszcze nie miałem chyba okazji pracować nad projekcie, który rzeczywiście byłby od początku do końca zarządzany w taki sposób, że wszystko byłoby jasne I nie wymagałoby komunikacji z całym zespołem ludzi, którzy nad tym projektem pracowali.
Artur:
No tak, tutaj myślę, że mam podobne przemyślenia. Myślę, że od czasu jak mam co-pilota, to na pewno rzadziej googluję jakieś takie proste rzeczy, które człowiek po prostu zapomina. Jak tam na przykład, nie wiem, przeliczyć coś, czy jak na przykład jakiś obiekt w JSON-ie sobie sparsować na coś innego. No to są takie tematy, które wcześniej wpisywałem w Google I zwykle znajdowałem odpowiedź w pierwszym wyniku wyszukiwania albo w jakimś poście na Stack Overflow. I teraz tak naprawdę po prostu to się dzieje prosto z edytora I Copilot po prostu zwraca mi odpowiedź, którą pewnie gdzieś tam wcześniej znalazł w tym Stack Overflow czy na jakimś blogu.
Tutaj zastanawiam się w zasadzie na ile to może działać długofalowo, prawda? No bo już się mówi, że Stack Overflow ma dużo mniej wejść, dużo mniej odwiedzających przez to, że właśnie ludzie korzystają z Chata, GPT albo Scope Iota. I myślę, że to może doprowadzić do czegoś takiego, że coraz mniej ludzi będzie korzystało z Stack Overflow, coraz mniej osób będzie tam wrzucało nowe rzeczy. No I pytanie, skąd te algorytmy w pewnym momencie będą brały nową wiedzę, prawda? No bo jeżeli mniej ludzi będzie z tego korzystać, to będzie ciężej pokryć te nowe przypadki, które mogą się pojawić.
I tutaj zastanawiam się, czy masz jakieś swoje przemyślenia, jak można by było rozwiązać ten problem, żeby firmy, które tworzą te modele I zarabiają np. Poprzez jakąś opłatę miesięczną albo po prostu ilość wysłanych do nich zapytań, jak one mogą dzielić się tym zyskiem z osobami, które robią tę ciężką robotę w postaci właśnie pisania tych odpowiedzi na Stack Overflow albo dostarczania po prostu jakichś ciekawych artykułów? Czy tutaj masz jakiś pomysł, jak to mogłoby długofalowo działać?
Kacper:
Jasne, jakby ciężko jest znaleźć na to odpowiedź, bo de facto jeżeli Copilot wygeneruje ci jakąś podpowiedź, to on nie jest w stanie określić na podstawie, których dokumentów akurat w tym przypadku skorzystał. On po prostu przepuszcza dane przez jakąś sieć parametrów, mnoży pewne wartości liczbowe I na tej podstawie wypluwa najbardziej prawdopodobną sekwencję tokenów I tyle, ale nie ma świadomości tego, z czego korzystał w trakcie uczenia. Pewnie dałoby się to rozwiązać, ale ciężko by było to udowodnić, że akurat konkretny post pomógł rozwiązać dany problem. Zdecydowanie jest to coś, co trzeba będzie na jakimś poziomie uregulować, bo jako twórcy danej treści rzeczywiście powinniśmy dostawać swego rodzaju tantiemy, tak jak w przypadku muzyki chociażby się to rozwiązało. Tutaj jest to o wiele trudniejsze, tu jeszcze wchodzą w grę międzynarodowe korporacje I myślę, że to może być problem, którego raczej nie rozwiążemy.
Wydaje mi się, że w Unii Europejskiej może powstać jakaś regulacja. Tutaj ciężko mi powiedzieć, że jestem zwolennikiem albo przeciwnikiem, ale nasz europejski rynek jest chyba w tej chwili, czy planujemy, żeby był najbardziej regulowany na świecie. I z tego też powodu myślę, że niektóre firmy będą musiały się chociażby z tego rynku wycofać, bo nie będą chciały się zgodzić na jakąś transparentność I podobnie w przypadku też kodu, ale nie ma tutaj łatwego rozwiązania według mnie, bo pomimo tego, że moglibyśmy tego modelu spytać o to, żeby podał nam źródła danej informacji, to wcale nie mamy gwarancji, że poda nam informacji, które rzeczywiście są poprawne.
Artur:
No tak, to jest myślę, że ważna tematyka, szczególnie dla twórców, szczególnie dla osób, które są aktywne, chociażby na Stack Overflow. Nie wiem ile jest w tym prawdy, ale w jakimś podcastzie się spotkałem z opinią, że Stack Overflow ma około 60-70% mniej wejść na swoją stronę. Właśnie od czasu jak powstały Copiloty, Stack Overflow, JetGPT I inne narzędzia. Myślę, że to jest trochę podobne do tego problemu, co mają twórcy I blogerzy z wynikami wyszukiwań Google'a, które są w stanie ci już podać odpowiedź bezpośrednio na stronie z wynikami, czyli np. Wpisujesz tam przepis na schabowego I zamiast kliknąć w link I wejść do blogera, który zrobił fajny przepis na schabowego, to dostajesz ten przepis bezpośrednio na stronach Google, bez de facto wchodzenia na tę stronę, czyli pozbawiamy tego autora, tak naprawdę tego przepisu, jakiegoś tam potencjalnego zysku z reklam albo z jakichś innych usług, które oferuje na swojej stronie, no bo po prostu te dane Google sobie potrafi wyciągnąć I zaprezentować je bezpośrednio u siebie.
Także myślę, że to w jakiś sposób musi zostać uregulowane, no bo po prostu to się chyba skończy tak, że wszystko będzie za jakimś paywallem albo obwarowane jakimiś dodatkowymi zabezpieczeniami, żeby po prostu nie dało się tych danych łatwo wyciągać.
Kacper:
Jasne. Jeśli chodzi o ten mechanizm Google'a, to rzeczywiście musi być to bardzo irytujące dla kogoś, kto produkuje treści, bo de facto jakby odwala całą czarną robotę, a ktoś ściąga z tego wszystkie zyski. Nie wiem, czy nie da się z tego wypisać w jakiś sposób. To trzeba by na pewno przejrzeć, tak samo jak możemy zablokować Googlebot na naszych stronach przez odpowiedni wpis w pliku robots. Myślę, że tak samo może jest opcja, żeby wypisać się z generowania tych podpowiedzi, chociaż oczywiście twierdzę, że powinno to działać w inną stronę.
I to jest idealne miejsce, ponieważ akurat Google wie, że wyciąga treści z konkretnej witryny, więc to jest idealne narzędzie, które mogłoby dzielić się zyskami, z twórcami tych treści, co byłoby chyba rozwiązaniem idealnym, ale być może będzie wymagało to jakiejś regulacji I akurat trzymam kciuki za to, bo uważam, że byłoby to najbardziej etyczne rozwiązanie, ale zdecydowanie powinniśmy mieć jako twórcy kontrolę nad tym I ewentualnie zezwalać na wykorzystanie naszych informacji do produkowania tych automatycznych odpowiedzi, ale na pewno nie w drugą stronę, że musimy się z tego mechanizmu wypisywać, bo to raczej nie brzmi jak najlepsze rozwiązanie tego problemu.
Artur:
No Dobrze. Już takie mam ostatnie pytanie na deser. Dużo się mówi o wypaleniu wśród programistów, wśród osób, które z jednej strony bardzo lubią swoją pracę I dla których programowanie na przykład zawsze było wielką pasją, ale w momencie kiedy jest to już nie tylko pasja, ale też sposób na zarabianie każdego dnia po wiele godzin, no to często się słyszy, że jeżeli nie ma tego balansu między właśnie tym, co robimy na co dzień, co jest też naszą pasją, hobby, no to może to prowadzić do do wypalenia. No I teraz pytanie, czy ty Znalazłeś jakiś tutaj złoty środek, coś co u ciebie działa, żeby właśnie tak jak sam wspomniałeś, masz też fundację związaną z AI, na pewno ten temat dużo wcześniej cię interesował, gdzieś tam poświęcałeś swój wolny czas, żeby te wszystkie tematy ogarnąć I myślę, że w jakiś sposób musisz sobie z tym radzić, żeby móc jak najlepiej wykonywać swoją pracę, ale też przy okazji nie wypalić się I nie zwariować.
Kacper:
Jasne, w moim przypadku moja żona pełni rolę takiego wentyla bezpieczeństwa czy bezpiecznika, który wybucha w momencie, kiedy tej pracy jest za dużo. Ale zdecydowanie nie mam złotego rozwiązania na takie problemy. Sam wydaje mi się, że zderzyłem się z wypaleniem już kilka krotnie. Raczej to się zawsze wiązało z tym, że robiłem rzeczy, w których nie wierzyłem, które uważałem, że nie mają żadnego sensu albo po prostu coś, co było w jakiś sposób sprzeczne z tym, co uważam za słuszne. No niestety, rozwiązanie wtedy jest pewnie zmiana I o ile kiedyś mogliśmy sobie pozwolić na to, żeby tak po prostu przejść z firmy do firmy, to teraz chyba jest to trochę trudniejsze.
Cóż, ja na pewno zachęcam, żeby rzeczywiście skupić się na tym I samemu sobie odpowiedzieć na pytanie, co rzeczywiście mnie interesuje I co chciałbym robić, czy są jakieś wartości, nad którymi chciałbym się kierować, a może po prostu specyficzne tematy, które mnie interesują I praca, która sprawi mi więcej radości. W moim przypadku też ta fundacja jest dość ciekawa. W ogóle zachęcam też do kontaktu, jeżeli ktoś chciałby zbudować coś opartego o sztuczną inteligencję, pro bono, dla dobra wspólnego, to ja jestem zawsze chętny, żeby to wesprzeć I żeby w jakiś sposób może złączyć siłę. Wydaje mi się, że to jest dosyć ciekawe, bo jeżeli cały dzień budujemy systemy, które po prostu generują pieniądze dla kogoś innego I głównym celem jest wepchnięcie ludziom kolejnego towaru. Przepraszam, że tak mówię, ale bardzo często się tak dzieje niestety.
To może warto też spróbować budować coś swojego, w co będziemy bardziej wierzyć I co będzie być może realizować trochę bardziej górnolotne ideę niż tylko generowanie zarobków. Widzę, że dużo ludzi po prostu chciałoby też budować coś, co po prostu może zmienić świat na lepsze I wydaje mi się, że sztuczna inteligencja akurat jest dość wdzięcznym tematem, dość wdzięcznym zestawem technik, które może w tym pomóc.
Artur:
Zgadzam się w 100%. Bardzo mi się podoba, jeżeli chodzi o dostęp do sztucznej inteligencji w dzisiejszych czasach to, że To jest naprawdę taka technologia, która zmienia świat, ale nie jest też ona dostępna tylko dla wybranych. Bo kiedyś jak powstał silnik parowy, to musiałeś mieć naprawdę bardzo duże pokłady pieniężne, żeby sobie taki silnik kupić I go użyć w swojej firmie. Podobnie było z jakimiś innymi wynalazkami, jak samochód, jak nawet pewnie elektryczność. Ona też na początku nie była dostępna dla biednych.
Myślę, że są dalej rejony na świecie, gdzie tej elektryczności nie ma albo jest ona dosyć ograniczona, a jednak sztuczna inteligencja to jest coś, do czego możemy mieć dostęp naprawdę tanim kosztem I zrobić coś ciekawego. Oczywiście podlinkowane macie także fundację Kacpra, także będzie wszystko dostępne w opisie do tego nagrania, tam was Bardzo serdecznie zapraszam, znajdziecie tam wszystkie rzeczy, o których dzisiaj sobie porozmawialiśmy. Kacper, bardzo dziękuję za przyjęcie zaproszenia do podcastu Full Stack I życzę dużo satysfakcji z wykonywanej pracy na rzecz Quadranta, ale też fundacji I użycia sztucznej inteligencji w różnych ciekawych projektach.
Kacper:
Wielkie dzięki za zaproszenie I mam nadzieję, że do zobaczenia jeszcze nie raz.