Duży model na małym komputerze (cz. 1)
- Tomasz Dyrda

- 18 cze
- 11 minut(y) czytania
TL;DR
To pierwsza część cyklu o „suwerenności AI": fundamenty — czym są duże modele językowe (LLM), jak działają i jak z nich korzystać.
LLM generuje odpowiedź, przewidując tekst; nie jest deterministycznym algorytmem, więc te same dane wejściowe dają podobne, lecz nie identyczne wyniki.
Model jest „pretrained" — jego wagi są zamrożone, a Twój prompt nie douczy modelu (to, czy dostawca wykorzysta dane do kolejnej wersji, reguluje polityka lub umowa, np. DPA).
Halucynacje to nieodłączne ograniczenie LLM — dobry prompt i źródła je ograniczają, ale nie eliminują; wynik zawsze wymaga weryfikacji.
Z modelami pracujemy na trzy sposoby: przez przeglądarkę, aplikację na komputerze (np. Claude Cowork) i przetwarzanie w tle przez API.
Większość tych rozwiązań działa „w chmurze", a dostawca może odciąć dostęp z dnia na dzień — w kolejnych wpisach pokażemy, jak częściowo się uniezależnić i zachować poufność danych.
***
Zgodnie z tym co napisałem kilka dni temu na LinkedIn przy okazji odcięcia przez Anthropic dostępu do modelu Fable 5 dla użytkowników (https://tinyurl.com/y3m9r57y), podjęliśmy decyzję o opublikowaniu na naszym blogu serii postów, przybliżających jak (przynajmniej do pewnego stopnia) zapewnić sobie AIową suwerenność.
Jednocześnie w międzyczasie uczestniczyłem w spotkaniu z zespołem bardzo zaangażowanych (i bardzo inteligentnych) osób, które były zainteresowane dowiedzeniem się, jak wdrożyć używanie AI (przede wszystkim dużych modeli językowych – LLM) w ich codzienne obowiązki.
Stąd też zanim przejdziemy w kolejnych postach do konkretów co i jak zorganizować, zainstalować i skonfigurować żeby mieć LLMa pod ręką, poświęcamy ten wpis przybliżeniu czytelnikom czym są LLMy, jak działają (również z perspektywy bezpieczeństwa i poufności danych), kto te modele udostępnia i w końcu jak można z nich korzystać.
W ten sposób nakreślimy pewne ramy , dzięki czemu będzie łatwiej zrozumieć proponowane w kolejnych postach i wykorzystywane przez nas rozwiązania techniczne, zmierzające do "AIowej suwerenności".
Prawdy i mity o LLMach
Zacznijmy od produktu opartego o model językowy, który zaczął obecną globalną rewolucję AI – ChatGPT. Już sama nazwa rozwiązuje szereg zagadek i mitów dotyczących AI i LLMów, więc rozłóżmy ją na składowe.

Chat – oznacza że możemy komunikować się z modelem za pośrednictwem interfejsu użytkownika z wykorzystaniem naturalnego, ludzkiego języka. Na dodatek ta komunikacja przebiega w ten sam sposób w obie strony – my piszemy (lub mówimy) do modelu w naszym rodzimym języku, a model odpowiada nam w taki sam sposób.
G jak Generative – model co do zasady nie odtwarza gotowych treści, lecz tworzy (generuje – stąd „generative”) nową treść – choć może też powtórzyć fragmenty danych treningowych niemal dosłownie. Model tworzy treści w oparciu o to czego się nauczył (więcej w punkcie poniżej), przewidując bardziej lub mniej prawdopodobną treść wypowiedzi w oparciu o kontekst który mu dostarczyliśmy. Z tym wiążą się odmieniane przez wszystkie przypadki „halucynacje” i stwierdzenia że „chat wymyśla” – nie wymyśla, ale o tym później.
P jak Pretrained – „Jak wczytam do czata moje dane to on będzie się na tym uczył!” – jest to dość częste twierdzenie, czasami zadawane w postaci pytania. Właściwa odpowiedź jest taka, że model nie będzie się uczył. Modele LLM są już nauczone (wytrenowane, wyszkolone). Model, gdy otrzymuje nasze dane, to przetwarza je w swojej strukturze i generuje odpowiedź, ale nie zmienia swojej struktury wewnętrznej – ona pozostaje stała. Na etapie wnioskowania wagi są zamrożone, a dane są przetwarzane w charakterze „tylko do odczytu". Może się zdarzyć (o tym też będzie później), że dostawca modelu zapisze nasze dane i może wykorzystać je w przyszłości do wytrenowania kolejnej wersji modelu. Ale to jest już zupełnie inne zagadnienie. Podsumowując – model nie wykorzystuje naszych danych żeby się wytrenować.
T jak Transformer – najtrudniejsze do wytłumaczenia i przybliżenia. Transformer to architektura sieci neuronowej na której bazuje ten model, z kluczowym w tym przypadku mechanizmem uwagi („attention”). Mechanizm ten pozwala modelowi na zidentyfikowanie i skoncentrowanie się na tych częściach treści które są istotne, a następnie rozpatrywanie i przetwarzanie ich w prawidłowym kontekście. Dobrym przykładem jest słowo „ostry”: w zdaniu „Kucharz wziął ostry nóż i pokroił pomidory” oznacza ono dosłownie fizyczną cechę przedmiotu, czyli krawędź zdolną do cięcia, natomiast w zdaniu „Prawnik wygłosił ostry komentarz do opinii biegłego” ma znaczenie metaforyczne i oznacza komentarz zdecydowany, krytyczny lub konfrontacyjny. Model nie przypisuje słowu jednego stałego znaczenia, lecz interpretuje je przez kontekst i relacje z innymi słowami: „ostry nóż”, „ostra papryka”, „ostry komentarz” i „ostra konkurencja” uruchamiają różne znaczenia tego samego słowa. Mechanizm uwagi („attention”) pozwala modelowi zwrócić uwagę na te elementy zdania, które są najważniejsze dla ustalenia właściwego sensu słowa w danym użyciu.
Poznanie co kryje się za skrótem-akronimem ChatGPT jest przydatne, żeby zrozumieć kilka innych, często poruszanych kwestii dotyczących AI i LLM.
Algorytm vs model – (Bardzo) często słyszę o algorytmach AI lub algorytmach ChatGPT. LLM to są modele. Algorytm określa jak przetwarzane są dane, jest powtarzalny i przewidywalny i często jest deterministyczny – dla tych samych danych na wejściu, otrzymamy ten sam wynik na wyjściu (co wcale nie jest złe). W przypadku LLM jest inaczej – dla tych samych danych na wejściu zwykle otrzymamy podobny co do jakości i zakresu (ale nie taki sam) wynik na wyjściu. Wynika to z tego, że dla danego wejścia model wyznacza rozkład prawdopodobieństwa kolejnych słów (tokenów), a sposób losowania z tego rozkładu zależy od parametrów próbkowania – w tym tzw. „temperatury” (wartości, która określa, ile „swobody” ma model przy wyborze odpowiedzi). Temperatura określa jak losowany jest wynik. Stąd też rezultat może być mniej lub bardziej nieprzewidywalny.
Halucynacje AI – Halucynacja to zjawisko generowania treści które brzmią wiarygodnie i spójnie, ale są fałszywe lub wymyślone (np. nieistniejący wyrok, fikcyjna publikacja, sfabrykowana statystyka, błędny cytat). Halucynacja jest nieodłącznym ograniczeniem LLM, wynikającym ze sposobu ich trenowania i generowania tekstu. W ograniczaniu halucynacji bardzo dużą rolę odgrywa użytkownik. Dobry prompt oraz dostarczenie źródeł, wymóg cytowań, weryfikacja istotnie ograniczają ryzyko halucynacji, ale niestety go nie eliminują – stąd konieczność weryfikacji wyników przez człowieka.
Szkolenie na „moich” danych – to zagadnienie wymaga rozbicia na trzy części. Jedna dotyczy tego, jak skonstruowane i trenowane są LLM (vide co kryje się za „GPT”). Druga dotyczy kwestii technicznej implementacji przetwarzania danych w modelu a trzecia powiązanych z tym zagadnień formalno-prawnych:
Zacznijmy od pierwszego zagadnienia – konstrukcji LLM. Model którego używamy jest już wytrenowany. Jego struktura wewnętrzna (wagi) są zamrożone po fazie trenowania i dostrajania. Nasze dane są przetwarzane przez model w trybie „do odczytu” i nie zmieniają wartości wag (w pewnym uproszczeniu waga w modelu odpowiada sile połączenia synaptycznego między neuronami w mózgu – temu, jak silnie jeden neuron oddziałuje na drugi). Rezultat - zamrożone wagi przypominają umysł, który potrafi myśleć całą zgromadzoną wiedzą, lecz nie zapisuje już nowych wspomnień.
Drugie zagadnienie dotyczy tego jak technicznie zorganizowane jest przetwarzanie danych – samo wnioskowanie odbywa się w pamięci (RAM). Kluczowe jest to, czy dostawca dodatkowo zapisuje (loguje) nasze dane. Domyślnie wielu dostawców czasowo je przechowuje (np. na potrzeby monitorowania nadużyć), ale część usług oferuje tryb bez retencji danych („Zero Data Retention”): nasze dane są ładowane do modelu, przetwarzane, wynik jest przekazywany do nas, po czym dane nie są zapisywane i nie zostają po stronie dostawcy.
Trzecie zagadnienie ma charakter formalno-prawny – w przypadku wykupienia dostępu do modeli dostarczanych przez Anthropic, OpenAI itp. przez firmy (lub szerzej osoby prawne) można podpisać z dostawcą umowę o przetwarzaniu danych („Data Processing Agreement – DPA”), która reguluje gdzie i jak są przetwarzane i przechowywane dane, co na bazie umownej zabezpiecza właściciela danych (nas) przed wykorzystywaniem ich do trenowania nowych modeli (obecne modele są już wytrenowane). Dla osób fizycznych z wykupionym abonamentem opcja podpisania DPA nie jest dostępna (przynajmniej ja się z tym nie spotkałem), natomiast można skonfigurować ustawienia użytkownika w taki sposób, że nie wyrażamy zgody na wykorzystywanie naszych danych do trenowania modeli dostawcy w przyszłości.
Przeszliśmy przez kluczowe zagadnienia dotyczące dużych modeli językowych (LLM) o które pytają właściwie wszyscy, którzy są ciekawi tego czym jest AI a nie mają w tym doświadczenia.
Czas na omówienie, jak w praktyce można korzystać z dużych modeli językowych.
Jak możemy pracować z modelami językowymi
Jako użytkownicy mamy trzy podstawowe modele pracy z modelami językowymi:
możemy korzystać z nich bezpośrednio przez aplikację w przeglądarce internetowej;
z wykorzystaniem aplikacji zainstalowanej na naszym komputerze;
korzystać z wyników przetwarzania w tle („backend”).

Każdy z tych modeli ma swoje zalety ale też pewne ograniczenia. W praktyce najczęściej będzie zdarzać się tak, że będziemy korzystali z kilku z nich równocześnie lub przełączając się między nimi w zależności od zadań i potrzeb.
Aplikacja w przeglądarce – dostęp do modelu językowego mamy za pośrednictwem aplikacji uruchamianej na stronie internetowej w przeglądarce internetowej (przykładowo – ChatGPT). Z modelem komunikujemy się za pośrednictwem chat’u w naturalnym języku. Możemy zwykle dodawać do chat’a dodatkowe materiały (dokumenty, zdjęcia itp.) które będą wykorzystywane do analizy lub będą nadawały kontekst naszym poleceniom lub pytaniom. Możemy też mieć możliwość uruchomienia dostępu do przeszukiwania Internetu, lub też zlecenie przygotowania pogłębionej analizy w oparciu o wgrane źródła i dostęp do danych zewnętrznych (wtedy chat może przełączyć się w tryb „agentowy”, zyskując pewną samodzielność w działaniu, np. decydując z których źródeł danych będzie korzystał). W tym trybie wynikiem działania modelu może być treść wyświetlona w oknie chat’u, dokument do ściągnięcia na lokalny dysk lub np. wygenerowany obraz który możemy skopiować lub zapisać. Przykładowy wygląd takiej aplikacji w przeglądarce jest załączony poniżej.

Aplikacja ChatGPT w przeglądarce Aplikacja na komputerze – drugą opcją którą mamy dostępną jako użytkownicy jest aplikacja udostępniana przez dostawców danego modelu. Przykładem takiej popularnej aplikacji jest Claude. Aplikacja jest instalowana na naszym komputerze (Claude jest dostępny na Windows i Mac) i daje nam dostęp do trzech sposobów pracy z modelem. Skupię się na „Cowork” - opcji, która z perspektywy użytkownika daje dużo więcej możliwości niż korzystanie z aplikacji w przeglądarce:
Cowork pozwala na pracę z danymi na naszym komputerze – możemy dać dostęp do naszych folderów i plików, zezwolić na ich odczyt oraz tworzenie i zapisywanie plików bezpośrednio na naszym urządzeniu;
Cowork ma własny „komputer w komputerze” – wbudowaną maszynę wirtualną, w której może wykonywać kod programów, zapisywać i testować pliki, weryfikować i testować obliczenia, formuły, sprawdzać przygotowane grafiki i wykonywać inne zadania, zanim przedstawi nam końcową wersję wyniku swojej pracy;
Cowork udostępnia wielu rozszerzeń i powiązanych narzędzi, m.in.:
Skills – rozbudowane, predefiniowane prompty z instrukcjami dla modelu oraz odwołaniami do narzędzi, które umożliwiają wykonanie pewnych zadań (przykładowo – programik uruchamiany w wirtualnej maszynie Cowork generujący interaktywną mapę)
Connectors – umożliwiają podłączenie się do zewnętrznych serwisów (repozytoria danych, CRMy, programy pocztowe, bazy danych i setki innych serwisów dostępnych w Internecie) zapewniając dwustronną komunikację (wysyłanie i pobieranie danych) oraz umożliwiającą podejmowanie różnych działań w tych serwisach
Add-ins – osobne dodatki „Claude for Microsoft 365”, instalowane bezpośrednio w aplikacjach MS Office (Word, Excel, PowerPoint, Outlook) umożliwiające pracę modelu z dokumentami i danymi bezpośrednio z tych aplikacji, z wykorzystaniem predefiniowanych umiejętności (punkt pierwszy – skills)
MCP (Model Context Protocol) – protokół umożliwiający komunikację między modelem za pośrednictwem aplikacji Cowork a innymi serwisami. Tymi serwisami mogą być bazy danych, systemy finansowo-księgowe, systemy do zarządzania projektami i setki innych systemów.

Aplikacja Cowork od Anthropic Cowork od Anthropic nie jest jedyną aplikacją na komputer. OpenAI oferuje podobne rozwiązanie z Codex (nastawione bardziej na programowanie, ale możliwe do dostosowania do innych zadań), czy od niedawna Microsoft dla pakietu M365 w postaci Copilot Cowork.
Przetwarzanie w tle – w tym modelu użytkownik nie tyle wchodzi w interakcje z modelem, co korzysta z wyniku pracy modelu, który stanowi element (etap) procesu pracy z danymi lub dokumentami. Ten sposób pracy z modelem jest wykorzystywany głównie w przypadku ustalonych, predefiniowanych procesów, gdzie jeden lub kilka etapów wykonywanych dotychczas przez pracowników, zastępujemy wykonywaniem ich przez model. Takie zorganizowanie pracy z modelem ma sens przy pracy z dużymi wolumenami danych:
przetwarzanie setek lub tysięcy umów, procedur lub innych dokumentów w celu anonimizacji;
analiza dziesiątek tysięcy e-maili w zakresie identyfikowania określonych danych, tłumaczenia, podsumowywania, kategoryzowania itp.;
kategoryzacja dziesiątek lub setek tysięcy zdjęć w celu identyfikacji tych, które zawierają interesujące nas obrazy.
Ten sposób pracy z modelem jest możliwy za pośrednictwem API – interfejsu który pozwala na przekazywanie danych do modelu i odbieranie wyników prac z modelu i wykorzystywanie na nasze potrzeby, w naszych systemach. Takie zorganizowanie pracy pozwala na usystematyzowane, powtarzalne przetwarzanie bardzo dużych wolumenów danych, przy czym odbiorca ma ograniczoną możliwość szybkiego wpływania na to, co i jak model analizuje. Z drugiej strony ogromną zaletą takiego zorganizowania procesu jest to, że zadania które wcześniej wymagały dni lub tygodni i dużych zespołów, można wykonać na przestrzeni minut lub godzin bez angażowania pracowników. Nawet biorąc pod uwagę koszt „tokenów” (jednostek które stanowią podstawę rozliczeń za korzystanie z modeli dostarczanych przez dostawców jeśli korzysta się z API), oszczędności czasu i kosztów są kolosalne.
***
Gratuluję wszystkim którzy dotarli do końca. Przybliżyłem czym są duże modele językowe, do czego i jak można je wykorzystywać, oraz jakie mamy opcje i modele pracy z LLM. Natomiast jak dobrze widać z tego opisu, w wielu sytuacjach polega to na modelach dostępnych w „chmurze”.
Jak przekonaliśmy się niedawno, rodzi to pewne ryzyko – mianowicie dostawca modelu może nas od niego odciąć z dnia na dzień, bez uprzedzenia i bez alternatywy. W kolejnych postach z tego cyklu opiszemy, jak można częściowo uniezależnić się od modeli „chmurowych”, uzyskać pewną autonomię działania, przy okazji zapewniając pełną poufność danych i ograniczając koszty.
Będziemy informować o kolejnych postach. Miłej lektury!
Słowniczek pojęć wykorzystanych w tekście
Add-ins (dodatki) — wtyczki integrujące model bezpośrednio z aplikacjami pakietu MS Office (Word, Excel, PowerPoint, Outlook), pozwalające pracować z dokumentami bez przechodzenia do osobnej aplikacji.
Algorytm — ściśle określony, powtarzalny ciąg instrukcji przetwarzania danych; często deterministyczny (te same dane wejściowe dają ten sam wynik). LLM jest modelem, którego działanie realizują algorytmy.
API — interfejs programistyczny pozwalający przekazywać dane do modelu i odbierać wyniki w sposób zautomatyzowany, we własnych systemach (np. do masowego przetwarzania danych).
Connectors (konektory) — rozszerzenia łączące model z zewnętrznymi serwisami (bazy danych, CRM, poczta itp.), umożliwiające pobieranie i wysyłanie danych oraz wykonywanie w nich działań.
Cowork — aplikacja na komputer (np. Claude), w której model może pracować na plikach użytkownika, uruchamiać kod we wbudowanym środowisku i korzystać z rozszerzeń.
Dostrajanie (fine-tuning) — etap trenowania następujący po wstępnym trenowaniu; dostosowuje model do konkretnych zadań i oczekiwań (np. wykonywania poleceń).
DPA (Data Processing Agreement) — umowa o przetwarzaniu danych (na gruncie RODO) regulująca, gdzie i jak dostawca przetwarza dane; może m.in. wykluczać wykorzystanie danych do trenowania modeli.
Generowanie (model generatywny) — tworzenie nowej treści przez przewidywanie kolejnych tokenów (stąd „G" w GPT), a nie pobieranie gotowych odpowiedzi z bazy.
Halucynacja — wygenerowana treść, która brzmi wiarygodnie, lecz jest fałszywa lub zmyślona (np. nieistniejący wyrok czy cytat). Nieodłączne ograniczenie LLM — można je ograniczać, ale nie wyeliminować, stąd konieczność weryfikacji wyników.
LLM (duży model językowy) — model AI wytrenowany na ogromnych zbiorach tekstu, generujący odpowiedzi przez przewidywanie kolejnych fragmentów tekstu (tokenów).
MCP (Model Context Protocol) — protokół komunikacji między modelem (za pośrednictwem aplikacji typu Cowork) a zewnętrznymi systemami: bazami danych, systemami finansowo-księgowymi, narzędziami do zarządzania projektami itp.
Mechanizm uwagi (attention) — kluczowy element architektury Transformer; pozwala modelowi skupić się na tych fragmentach tekstu, które są istotne dla właściwego zrozumienia kontekstu.
Model — struktura z „nauczonymi" parametrami (wagami), która generuje wynik probabilistycznie; w odróżnieniu od algorytmu nie jest w pełni przewidywalna.
Prompt — polecenie lub pytanie (wraz z kontekstem) przekazywane modelowi; jego jakość silnie wpływa na jakość odpowiedzi.
Retencja danych / Zero Data Retention (ZDR) — polityka określająca, czy i jak długo dostawca przechowuje przekazane dane; ZDR oznacza brak ich trwałego zapisu. O poufności decyduje właśnie retencja (a nie samo „przetwarzanie w pamięci").
Skills (umiejętności) — predefiniowane zestawy instrukcji i odwołań do narzędzi, dzięki którym model wykonuje określone zadania w powtarzalny sposób.
Temperatura — parametr próbkowania sterujący „swobodą" modelu przy wyborze kolejnego tokena (wyższa temperatura = większa losowość wyniku). Nie zmienia samej predykcji, lecz sposób losowania z niej.
Token — podstawowa jednostka tekstu przetwarzanego przez model (fragment słowa, słowo lub znak); tokeny są też jednostką rozliczeń przy korzystaniu z API.
Transformer — architektura sieci neuronowej, na której opierają się współczesne LLM; jej kluczowym elementem jest mechanizm uwagi.
Tryb agentowy — sposób pracy, w którym model zyskuje pewną samodzielność: sam decyduje o kolejnych krokach i źródłach danych potrzebnych do wykonania zadania.
Wagi (parametry) — liczbowe parametry modelu kodujące to, czego się nauczył; w uproszczeniu odpowiadają sile połączeń synaptycznych w mózgu. Na etapie wnioskowania są zamrożone (stałe).
Wnioskowanie (inference) — etap korzystania z gotowego modelu: model przetwarza prompt i generuje odpowiedź, nie zmieniając swoich wag.
Wstępne trenowanie (pre-training) — pierwsza, najobszerniejsza faza budowy modelu: nauka na ogromnym zbiorze tekstu (stąd „P" w GPT). Model jest „pretrained", czyli wytrenowany, zanim zaczniemy z niego korzystać.
Uwaga 1: ilustracje (ale nie zrzuty ekranu) zostały wygenerowane w ChatGPT na podstawie tekstu
Uwaga 2: słowniczek pojęć został przygotowany z Claude na podstawie tekstu



Komentarze