Co wiedzą modele językowe oraz "epickie" plany
Skąd modele językowe biorą wiedzę? Epic (firma z branży healthtech) idzie w GenAI.
“Wiedza” w modelach językowych
Uczenie maszynowe to dziedzina informatyki zajmująca się opracowywaniem algorytmów, które poprawiają się automatycznie przez “doświadczenie”, czyli kontakty z danymi. Wyobraź sobie zadanie, w którym masz rozróżnić jabłka od pomarańczy na podstawie obrazu. Model matematyczny, który powstanie w wyniku zaaplikowania algorytmów uczenia maszynowego do zbioru treningowego (zawierającego zdjęcia jabłek i zdjęcia pomarańczy) nie rozumie faktu, że są to owoce. Albo tego, że różnią się w smaku. Ale bardzo precyzyjnie nauczy się rozróżniać jedne od drugich, bo jedne są pomarańczowe a drugie nie. Z generatywnymi modelami językowymi jest podobnie, z tym, że dane treningowe do tych modeli obejmowały terabajty tekstów z różnych źródeł.
A jakie to źródła możesz zapytać. “I to, detektywie, jest doskonałe pytanie” mógłby powiedzieć dr Lanning z filmu Ja, Robot. Na przykład, model wytrenowany na tekstach dotyczących makijażu będzie miał znikomą wiedzę z dziedziny genetyki. A model trenowany na tekstach forów internetowych raczej nie będzie w stanie wypowiadać się pięknym literackim językiem. Najlepsze modele obecnie dostępne dla konsumentów trenowane były na książkach, publikacjach naukowych, portalach informacyjnych, ale także na kodzie źródłowym różnych aplikacji (który to sam w sobie jest dość formalnie napisanym tekstem), często w wielu językach, aby zapewnić wysoką jakość i różnorodność tekstu.
Duże modele językowe działają na zasadzie przewidywania najbardziej prawdopodobnych ciągów słów zaczynając od podanej przez użytkownika instrukcji czy też początku tekstu. Są to systemy, które "widziały" setki miliardów stron tekstu, dzięki czemu mogą generować odpowiedzi wiele różnych zapytań. Dlatego też niektórzy nazywają tę technologię “stochastyczną papugą”, czyli tworem, który powtarza z grubsza coś co już “słyszał” wcześniej wielokrotnie. Metafora nietrafiona (m.in. dlatego, że modele GenAI potrafią dokonywać transferu wiedzy pomiędzy językami), ale wyjaśniam po prostu skąd się wzięła.
Z tego mechanizmu uczenia się wynika oczywista wada - ich odpowiedzi mogą czasami być nieprecyzyjne, zwłaszcza w obszarach słabo reprezentowanych w danych treningowych. Ponadto, modele te nie potrafią zawsze odpowiedzieć „nie wiem”, co może prowadzić do generowania mylących lub nieistotnych odpowiedzi. Dla przykładu, model, w którego danych treningowych nie było zbyt dużo polskich tekstów naukowych (np. Yi, do odkopania na stronie LMSys) na pytanie “Wymień biomarkery kłamania” wymyśla nazwy nieistniejących związków i wymienia biomarkery niezwiązane w ogóle z reakcjami organizmu na stres wywołany mówieniem nieprawdy. Jeśli masz wrażenie, że taki model zachowuje się jak uczeń/student podczas odpytywania, gdzie usiłuje wydobyć z siebie szereg słów, licząc na to, że zostaną uznane za poprawną odpowiedź (zamiast przyznać się do niewiedzy), to znaczy, że dobrze zrozumiałeś ograniczenia tej technologii.
Istnieje dość spora różnica pomiędzy “wiedzą” różnych modeli językowych w języku polskim, bo nie każda firma opracowująca swój model stara się o dobrą reprezentację języka polskiego w danych treningowych. Ponadto, jeśli chodzi o informacje, które często się zmieniają (dokumentacja często aktualizowanego oprogramowania, stanowiska osób, kondycja finansowa firm, itp.) trzeba liczyć się z tym, że trenowanie trwa wiele miesięcy, więc żaden model nie widział informacji chociażby nt. ostatnich zmian polskiego rządu. Na przykład francuski model Mixtral podaje, że w Polsce ministrem finansów jest Tadeusz Kościński, który przestał pełnić tę funkcję w lutym 2022, ponad dwa lata temu, a Gemini firmy Google wskazuje na Magdalenę Rzeczkowską (a od tamtego momentu minister finansów zmienił się już dwukrotnie).
Podsumowując: miej realistyczne oczekiwania co do “wiedzy” modeli językowych, zwłaszcza w języku polskim. Specjalistyczne informacje, specyficzne do sytuacji w Polsce (na przykład stawki celne) nie trafiają w ogóle do danych treningowych.
Epic stawia na AI
Epic to firma zajmująca się tworzeniem i wdrażaniem oprogramowania potrzebnego w praktyce klinicznej do 2700 amerykańskich szpitali (zarządzanie danymi medycznymi, obsługa ubezpieczeń, notatki lekarzy, itd.). Ostatnio Forbes opublikował artykuł nt. tego, że firma przygotowuje 60 (słownie sześćdziesiąt) narzędzi opartych o sztuczną inteligencję (w większości GenAI). Artykuł wart przeczytania, zwłaszcza pod kątem iteracyjnego podejścia firmy do tworzenia tych narzędzi (samo tworzenie aplikacji było wtórne do rozpoznania dobrego podejścia do integracji GenAI).
Rzeczą, która nie jest dyskutowana w artykule, natomiast moim zdaniem ma dość istotne znaczenie to liczba narzędzi, które tworzone są w danym momencie - sześćdziesiąt. To sugeruje kilka rzeczy:
Epic jest przekonany, że GenAI przyniesie oczekiwane korzyści biznesowe (inaczej nie szedłby tak szeroko).
Epic zdaje sobie sprawę z elastyczności tej technologii (inaczej nie szedłby tak szeroko).
Epic rozumie również, że jest dużo nieodkrytych zastosowań GenAI, bo technologia jest bardzo nowa (i dlatego idzie tak szeroko).
I to wszystko odbywa się bez trenowania od zera własnych modeli. Epic póki co opiera swoje narzędzia na tym co dostarcza OpenAI (GPT-4 jako model do analizy i generowania tekstu, Whisper do transkrypcji głosu). Jak widać, wystarczy. Nie ma też wątpliwości od strony prawnej - OpenAI podpisuje (co najmniej od grudnia 2023) odpowiednie porozumienia ze swoimi klientami zgodnie z amerykańskimi wymaganiami odnośnie przetwarzania danych medycznych (HIPAA).
To jest strategia biznesowa warta rozważenia - koszty jednostkowe wymyślenia nowego zastosowania i zbudowania “narzędzia” wokół GenAI są już stosunkowo niskie i będą spadać dalej.
Ciekawe niusy
Firma Cognition AI udostępniła ostatnio wybranym beta-testerom swoje narzędzie Devin, które jest kolejnym podejściem do automatyzacji tworzenia kodu źródłowego przy pomocy modeli językowych. Idea wszystkich tych narzędzi jest stosunkowo prosta - model otrzymuje zadanie, rozbija je samodzielnie na mniejsze kawałki, ma do dyspozycji interpreter kodu, terminal, przeglądarkę i możliwość poprawiania swoich błędów. Podobnych prób było już kilka (zaczynając od bardzo prymitywnych pomysłów w postaci AutoGPT), tym razem jednak Devin wywołał duże poruszenie w środowisku IT.
Różnica w stosunku do poprzedników nie polegała tylko na tym, że pewne zadania Devin wykonał lepiej. Spora część “magii” wynikała z innowacyjnego interfejsu i możliwości intuicyjnej interakcji z działającym w tle procesem. Warto spojrzeć na ciekawe przykłady na kanale YouTube firmy.
Devin doczeka się wkrótce sporej konkurencji - wyznaczył nowe ścieżki tworzenia interfejsów użytkownik-AI i pewne rozwiązania zostaną skopiowane do innych produktów. Zainteresowanie automatyzacją tworzenia oprogramowania jest gigantyczne i podobnie gigantyczne pieniądze inwestorów pompowane są w ten sektor (chwilę po premierze programu Devin firma Meta przyznała, że pracuje nad dedykowanymi narzędziami do automatyzacji tworzenia kodu w zastosowaniach wewnętrznych).
Oczywiście pojawienie się programu Devin wywołało dyskusję nt. tego, czy programiści zostaną zastąpieni przez AI, czy też nie, z zaskakująco dużą grupą, która twierdziła, że absolutnie to się nie wydarzy.
Moim zdaniem jest to źle postawione pytanie. Jest rzeczą oczywistą, że modele językowe będą stosowane przy tworzeniu nowego oprogramowania na ogromną skalę. Zwiększy się też ilość tworzonego oprogramowania (ze wszystkimi tego konsekwencjami). Lepszym pytaniem jest zatem: jakie kompetencje obecnego programisty będą wciąż kluczowe, a jakie zostaną zautomatyzowane. I można zgeneralizować to pytanie na inne zawody: jakie kompetencje w zawodzie X pozostaną kluczowe, a jakie zostaną zautomatyzowane?
Pojawienie się tak innowacyjnego (za wcześnie, żeby mówić o "jakości") produktu jak Devin wskazuje na to, że w przypadku programistów dowiemy się tego najpóźniej do końca roku.