Tym razem edycja będzie samo wideo… no, prawie samo.
A zacznę, od nowego znaleziska. Tech Talks Weekly to nowy substackowy newsletter, agregujący prelekcje z konferencji technologicznych. Bardzo lubię takie źródła, bo choć moja lista „To Watch” na YouTube ostatnimi czasy nieco się rozrosła (choć jak na razie ciągle mam wrażenie, że w tym pojedynku to ja jestem Sprite), to jednak wewnętrzne FOMO bardzo się z Tech Talks Weekly cieszy. Nareszcie w bardziej batchowy sposób mogę się zapoznawać z nowo opublikowanymi talkami, bez potrzeby subskrybowania wszystkich kanałów konferencyjnych tylko po to, by większość z filmików potem ręcznie ukrywać, aby uzyskać youtubowy „zero-inbox”
Ale fakt, że jest on rozwiązaniem zbioru moich prywatnych problemów (głownie z samym sobą) pewnie nie byłoby wystarczającym powodem, aby się z Wami Tech Talks Weekly podzielić, ale Newsletter przygotował bardzo interesującą edycję „specjalną”. Jego twórca zebrał bowiem listę wszystkich (z gwiazdką, o tym za chwilę) prelekcji na temat Javy z 2023 roku ze znaczących konferencji takich jak Devoxx, GOTO, Spring I/O i innych, porządkując ją według liczby wyświetleń. Życia nie starczy, żeby to wszystko oglądnąć, ale już samo skanowanie nagłówków (do czego nie zachęcam, polecam włączyć sobie jednak czasem jakiegoś Venkata Subramaniana do obiadu), pozwoli zrozumieć, czym żyła społeczność w roku 2023. Mamy więc masę Springa, dużo Wirtualnych Wątków, sporo GraalVM, ale też kilka mniej oczywistych tematów, jak np. kwestie związane z Observability czy Johannes Bechberger pokazujący, jak napisać własny profilera Javy w niecałych 300 linijkach (mój osobisty faworyt z listy). Ogólnie wiele nazwisk na szczycie listy przewija się wielokrotnie, ale ogólnie polecam spojrzeć też na jej dół – znajdziecie tam pewnie sporo ciekawych, nieoczywistych i nieodkrytych perełek.
Lista oczywiście nie pokrywa wszystkich prezentacji, ponieważ autor posiłkował się tylko wycinkiem konferencji (i to tych bardziej „generycznych”), ale dyskusja w komentarzach sugeruje, że i on skorzystał na swojej publikacji, ponieważ community podsunęło mu kolejną listę kanałów do śledzenia.
A jak już mowa o Fosdem, tydzień temu dzieliłem się wideo dotyczącym przyszłości Wirtualnych Wątków, a teraz mam dla Was kolejne …
Na kanale konferencji ukazało się wystąpienie The State of OpenJDK. Całość jest niezwykle pozwala dowiedzieć się wielu detali pracy nad projektem „od kuchni”, takich jak choćby wpływ pandemii COVID-19 na rozwój OpenJDK podczas tworzenia JDK 14. Możemy dowiedzieć się też dowiedzieć, jak wiele decyzji musiało zostać podjętych przy ewolucji modelu wydawniczego OpenJDK i jak wiele zmian nastąpiło wewnętrzne podczas przechodzenia z modelu „dużych” wydań na bardziej elastyczny model „tip and tail”, który priorytetyzuje gotowość funkcji i stabilność. Mimo początkowego sceptycyzmu społeczności wobec przejścia na cykl sześciomiesięczny, ostatecznie okazał się on sukcesem, przynosząc korzyści w zakresie zarządzania obciążeniem pracą, jakości wydań i częstotliwości aktualizacji. Sporo miejsca poświęcono też wkładowi zarówno społeczności, jak i dużych firm, czy roli, jaką adopcja GitHuba (nawet w formie mirrora) miała na aktywizacje społeczności. Ogólnie jest to mocno afirmacyjna rzecz, całkiem ciekawa dla wszystkich tych, którzy chcieliby lepiej zrozumieć co dzieje się w tle kolejnych wydań JDK.
Ale to jeszcze nie koniec dzisiejszej przygody z wideo, mam bowiem dla Was kolejne, tym razem dotyczące największej szajby ostatniego roku, czyli LLM-ów, a precyzyjniej wsparciu dla „narzędzi” w Langchain4j.
Sam LangChain to otwarte oprogramowanie do orkiestracji, przeznaczone do tworzenia aplikacji wykorzystujących duże modele językowe (LLMs). LangChain działa jako generyczna abstrakcja do łączenia zewnętrznych źródeł danych i obliczeń z LLM, ułatwiając budowanie aplikacji wykorzystujących możliwości modeli językowych do szerokiego zakresu zadań, od analizy dokumentów po analizę kodu czy wszelkiej maści chatboty. Langchain4j to zaś jego wariant Javowy, stworzony przez Dmytro Liubarskyiego. Sam się od pewnego czasu nim bawię w połączeniu z Gemini, i używa się go naprawdę przyjemnie, zarówno langchain4j jak i samego Gemini, który nie działa aż tak źle jak niektórzy to przedstawiają.
Ale do meritum: Ken Kousen opublikował w zeszłym tygodniu wideo „The Definitive Guide to Tool Support in LangChain4J” prezentuje możliwości LangChain4J w kontekście tak zwanych Narzędzi (Tools). Narzędzia umożliwiają agentom (bo tak w nomenklaturze Langchaina nazywają się aplikacje) interakcję ze światem zewnętrznym, na przykład możliwość robienia zapytań HTTP.
Całość jest o tyle przyjemna, że sam zaczynając przygodę z Langchainem musiałem sporo pogrzebać, żeby lepiej zrozumieć jakie możliwości daje, a tutaj de facto dostajecie wszystko od razu na tacy, a Ken przeprowadza Was przez proces tworzenia aplikacji, która wymaga wzbogacenia LLM-a o umiejętność używania API do konwersji walut do porównania cen MacBooka między różnymi lokalnymi wersjami sklepu Amazon.
A jak już dotknęliśmy tematu LLM-ów, to na sam koniec podzielę się małym eksperymentem, który przeprowadził Jakub Narloch, a który to polegał na automatycznym generowaniu komentarzy do kodu Spring Framework, za pomocą narzędzia AI o nazwie CodeMaker AI. Miało na celu sprawdzenie jakości i wydajności generowania dokumentacji przez AI. Narzędzie przetworzyło 5001 plików, dodając 173 466 nowych linii komentarzy, co kosztowało mniej niż 100 dolarów. Cały proces przetwarzania repozytorium zajął 371 minut.
Rezultaty eksperymentu były zaskakujące nawet dla jego twórców. Okazało się, że CodeMaker AI jest w stanie skutecznie generować komentarze. Mimo że w 18 plikach pojawiły się niepoprawne tagi @deprecated
, a niektóre komentarze były źle sformatowane ze względu na specyficzne zasady formatowania projektu, problemy te uznano za możliwe do rozwiązania w stosunkowo krótkim czasie. Jakość dodanych komentarzy była ponoć generalnie wysoka, choć Jakub zauważył potrzebę dalszego dostosowywania modelu AI do poprawy dokładności i formy komentarzy. Sam przebiłem się przez część wygenerowanych docsów i jako narzędzie wsparcia dla IDE – wygląda to nawet interesująco, aczkolwiek chyba wolałbym, aby komentarze na takie potrzeby zeksternalizoywane zostały do jakiegoś zewnętrznego „cache”/indexu i nie mieszały się z plikami – ja wiem, że generowanie w locie pewnie nie wchodzi w grę, ale warto by było zadbać o czytelność, a w obecnym wersji kod staje się straszliwie przegadany.
Tak czy siak, sam eksperyment jest ciekawy. Zobaczymy, w którą stronę ewoluować nam będą narzędzia..
Mam nadzieje, że podobała Wam się taka nieco inna, oparta na różnych wideo edycja. A skąd w ogóle dzisiejszy tytuł? Z nostalgii, do lepszych, prostszych czasów, gdy modele AI były używane w sposób odpowiedzialny i w służbie ludzkości.
A skąd w ogóle tytuł taki? Wpiszcie sobie w wyszukiwarkę „Video killed the radio star deepfake” i przekonacie się, że biorąc pod uwagę pojawiające się dzisiaj tematy GenAI, to nie jest on tak zupełnie przypadkowy.