Dane są przechowywane przez modele językowe AI w postaci kolumn tabelarycznych. Jak dokładnie działa to i dlaczego jest to odkrycie funkcji inteligencji ludzkiej? Czy w modelu AI po treningu znajdują się dane osobowe lub nawet chronione prawem autorskim?
Wprowadzenie
Zwycięski marsz współczesnej AI rozpoczął się w 2017 roku, kiedy został wynaleziony model Transformer. On działa z kodowaniem i dekodowaniem oraz wykorzystuje tak zwane wcielenia jako nośniki znaczenia (semantyki). Wcielenie to jest ciąg liczb, który nazywa się wektorem.
W modelach języka istnieje idea, aby znaczenie słowa można było ustalić na podstawie jego kontekstu, a następnie zapisać jako wektor. Kontekstem słowa są przede wszystkim inne słowa w tym samym zdaniu. Znaczenie powstaje więc dzięki analizie powszechnego występowania kilku pojęć (kookkurrencja).
Obecne AI działa tak, że każdy rodzaj danych jest przekształcany w cyfrowe serie. Rodzaje danych to np. teksty (w modelach językowych), mowa, obrazy, filmy, muzyka, dane temperatury, dane meteorologiczne, kursy akcji, wartości sejsmograficzne, dane z czujników zapachu, wartości UV i wszystko to, co może być wyrażone w cyfrach, czyli digitalizowane.
W modelach językowych AI czasem przechowywane są całe słowa.
Ma zastosowanie również do nowszych modeli ChatGPT, zobacz wpis.
To odpowiada moim zdaniem jakościowo dokładnie tym, jak działa ludzkie mózg. Mózg działa początkowo analogicznie, komputer digitalnie. Ponieważ neurony biologiczne u człowieka działają przy pomocy potencjału aktywacyjnego, to z analogu szybko przechodzi się do cyfry.
Dla modeli językowych AI teksty są więc dzielone na jednostki takie jak zdania i następnie przekształcane w ciągi liczbowe obciążone semantyką. To jest np. osiągane za pomocą algorytmu o nazwie Word2Vec, który dla każdego słowa w kontekście oblicza wektor. W miarę upływu czasu istnieją lepsze procedury niż Word2Vec, które zewnętrznie działają w sposób identyczny (patrz np. tak zwane Sentence Transformer).
Obliczenia wektorów macierzystych
Dwa wektory mogą być od siebie odejmowane za pomocą klasycznej matematyki. Tak samo można obliczyć ich różnicę. Różnica jest tutaj podobieństwem lub różnicą semantyczną dwóch pojęć, wyrażonymi przez wektory tych pojęć.
Dla dużego zbioru dokumentów można wykorzystać Word2Vec do obliczenia wektorów dla wszystkich możliwych słów występujących w zbiorze (korpusie). System ten nie ma żadnego zrozumienia niemieckiej (lub angielskiej) gramatyki. Niemniej jednak "wie" system poprzez porównania wektorów, które słowa się semantycznie odnoszą do siebie.
Niektóre popularne wnioski, które są możliwe dzięki Word2Vec, to:
- _Polska odnosi się do Warszawy tak samo jak Hiszpania do Madryt (wytłumaczone wytłuszczenie oznacza słowo, które Word2Vec sam wyliczył, kiedy wprowadziłeś pierwsze trzy kursywowe słowa).
- Niemieckie słowo Katze odpowiada angielskiemu słowu Kot (z użyciem Word2Vec można dokonać tłumaczeń, a także kontekstowych: „Schnecke” może być zwierzęciem, ale również urządzeniem do podawania).
- _Premier plus kobieta minus mężczyzna = premierka
Baza dla wszystkiego są tylko słowa, które występują w kontekście, czyli w zdaniach. Tak samo ludzie mogą zrozumieć teksty, z tym różnicą, że maszyny mają znacznie mniej doświadczenia środowiskowego niż ludzie. To się niedługo na pewno zmieni i spowoduje, że roboty będą najbardziej inteligentnymi istotami na tej planecie (i innych planetach). Jeśli zaś człowiek nie wykasuje się sam z siebie w innym miejscu, to te roboty nie będą mogły zostać stworzone.
Z powrotem do pytania, jak model językowy oparty na sztucznej inteligencji przechowuje dane, czyli pojęcia i czy te pojęcia mogą być związane z osobami. Związek z osobą byłby wtedy potwierdzony, gdy nazwiska lub identyfikatory takie jak numery telefonów, tablice rejestracyjne samochodów lub numery identyfikacji podatkowej rekonstruowalne byłyby przechowywane w modelu językowym opartym na sztucznej inteligencji.
Przykład danych przechowywanych w modelu AI
Poniższy zrzut ekranu przedstawia wybór słówek z niemieckiego modelu AI, który opiera się na architekturze GPT-2 firmy OpenAI. GPT-2 jest dostępny publicznie w przeciwieństwie do jego następców.

W sumie słownictwo składa się z 52.000 słów, które zostały wybrane przypadkowo. Powód tej stosunkowo niewielkiej liczby (porównując ją do większej ilości istniejących niemieckich słów) jest opisany poniżej.
Pary danych są widoczne. Pierwszy element jest wizerunkowo oznaczony na ilustracji i reprezentuje pojęcie. Drugi element to indeks lub identyfikator pojęcia, który tutaj jest widoczny w kolorze niebieskim.
Podczas rozważania pojęć zauważyć można, że wielu z nich poprzedza nieprzyjemne znaki. To wynika z kodowania słownictwa i zostanie wyjaśnione dalej.
Znaczenia zostały ustalone, korzystając z wielu tekstów do szkolenia modelu językowego. Korpus tekstów został utworzony w istniejącym przykładzie modelu poprzez wyodrębnienie z Wikipedii, corpus Bookshop EU, Open Subtitles, _ CommonCrawl_, ParaCrawli Crawl News.
Teksty zostały następnie rozdzielone na słowa, co stanowi pewną wyzwanie. Ten problem należy do dziedziny NLP. NLP to skrót od Natural Language Processing, oznaczający przetwarzanie tekstów języka naturalnego (lub innych metod). Nawet szeroko rozpowszechnione i dobrze rozwinięte frameworky takie jak Scipy i Spacy często pozwalały na błędy, które doświadczony deweloper AIzaliczał sobie do łatwych tylko za pomocą własnych procedur korekcyjnych.
Modele języka AI mogą dokładnie powtórzyć całe zdania, które są w ten sposób przechowywane w modelu języka.
Dotyczy to również ChatGPT-3.5 i ChatGPT-4, zobacz wpis.
Podczas ustalania pojęć powstają wiele nieczystych wyników, jak pokazano poniżej. Pojęcia są ustalone w sposób konwencjonalny, czyli nie za pomocą nowych metod AI. Są one Przedmiar. Dopiero po ustaleniu pojęć jest stosowana nowa metodyka AI, poprzez użycie pojęć do tworzenia modelu językowego AI, co nazywa się Trainingiem. Modeli przeszkolone są określane jako wstępnie przeszkolone, a nie przeszkolone. Powód jest taki, że możliwe jest dalsze przeszkolenie modeli, co nazywa się Finetuningem. Ponadto można użyć raz przeszkolonych, czyli wytworzonych modeli bezpośrednio. Są one zatem przed-konfekcjonowane (pre-trained).
Niektóre z tych słów nie brzmią jak ważne słowa. Oto wybór z nich wraz krótkim komentarzem (szczegóły i uzasadnienia poniżej):
- praworządnpopul → Część słowa (słowo początkowe). Całe słowo prawdopodobnie brzmi „praworządnpopulistyczny“ (z opcjonalnymi sufiksemami „e“ lub „en”).
- Bemessungs → Możliwe, że powstało poprzez znak przecinka łączącego (Bemessungs-Grundlage(n)).
- Memmingen → Poprawna (przynajmniej istniejąca) nazwa niemieckiej miejscowości.
- Tasman → Podciąg słowa (początek słowa). Całe słowo nazywa się prawdopodobnie „Tasmania”.
- Zeilenbahnen → Ä, Ö, Ü i ß są nieczytelnie kodowane, co sprawia, że pojęcie wygląda tylko dziwnie dla ludzi, a nie dla interpretera maszynowego.
- Italian → Możliwe, że tekst niemiecki zawierał angielskie słowo. Nieprzypadkowo ChatGPT-3 może również mówić po niemiecku, chociaż zostało ono wychowane na języku angielskim. Możliwe jest również, że teksty przeczytane w innej niż niemiecka wersji języka zostały nieprawidłowo rozpoznane jako teksty po niemiecku.
Tokenizator jako generujący słowa lub słówka
Słowa są wyodrębniane z tekstów przy użyciu tzw. Tokenizera. Token jest jednostką semantyczną, tutaj słowem. Dla GPT2 istnieje tokenizer o technicznym nazwie GPT2Tokenizer.
Tokenizator nie tylko wykrywa słowa, czyli znajduje granice między nimi. W rzeczywistości tokenizator próbuje przypisać każdemu słowu pewien sens, który jest definiowany przez liczbę. Tokenizator GPT-2 przypisuje inną wartość słowu, jeśli znajduje się na początku zdania niż w środku lub na końcu zdania.
To wyniki są czasem tak źle, że nawet oficjalne przykłady, jak poniżej w przypadku Tokenizer (patrz poprzedni link dwa akapity wyżej), pokazują to:
Wejściowy zestaw "Cześć Świecie" prowadzi do następującego wyjścia z Tokenizer: [15496, 995]. Z dwóch słów obliczane są więc dwa numery, które mają uchwycić semantykę zdania.
Ze względu na to, że nowoczesne modele językowe AI przechowują słówka i całe słowa w postaci tokenów, nie jest to warunek konieczny do istnienia danych osobowych w modelu AI, ale zwiększa problem.
Podobny do "Czesc świecie" zestaw danych wejściowych, z którym przedstawione zostało tylko (niesensowne, ale dla człowieka nieistotne) spacje, generuje natomiast inną wyjściową wartość [18435, 995]. "Czesc" otrzymała więc wartość 15496, podczas gdy " Czesc" z przedstawioną spacją ma drugi wynik 18435.
Generowanie dla jednego i "tego samego" słowa dwóch różnych liczb oznacza tutaj wprowadzenie modelowi językowemu AI czegoś fałszywego.
Tokenizator GPT-2 jest tzw. Byte-Pair-Encoding tokenizatorem lub Tokenizatorem BPE. BPE koduje słowa w takie zwane tokeny. Tokeny reprezentują fragmety słów i mają również funkcję kompresyjną, ponieważ fragmety słów mogą występować w kilku wyrażeniach i te wyrażenia można zapisac bardziej gęsto. Wyrażenie może jednak zostać całkowicie zapamiętane, co oznacza że odpowiada dokładnie jednemu tokenowi.
Tak więc można wyjaśnić, dlaczego powyższe części słów istnieją. Prosta weryfikacja potwierdza co najmniej podstawowo, że fragment słowa "Bemessungs" został wyodrębniony z pełnego słowa "Bemessungsgrundlage", pełnego słowa "Bemessungs-Grundlage" lub pełnego słowa "Bemessungsgrundlagen". W celu uświadomienia tego przedstawiam następujące wpisy z wypowiedzi niemieckiego modelu językowego AI GPT-2:
- "Oceny"
- "Podstawa"
- "Podstawa"
- "Podstawy"
- "Podstawa"
Pierwszy pojęcie "ĠBemessungs" ma przed sobą pierwsze znak, który wygląda trochę dziwnie i został tu dla zrozumienia napisany wytłuszczone. Ten znak oznacza, że jest to początek słowa.
Terminy od dwóch do czterech nie są początkami słów, ponieważ ich pierwsze znaki nie są znakami sterującymi. Występuje wpis „podstawa” w słowniku, co wskazuje na to, że istnieje w korpusie danych szkoleniowych wyrażenie złożone przecinkiem, takie jak „podstawa obliczeniowa” („obliczeniowa” jako początek słowa plus „podstawa” jako koniec słowa).
Pojęcie piąte brzmi "podstawa" i jest zapisane w ten sposób, dlatego pierwsze znaki należy traktować jako początek słowa. Wpis dwa i pięć z tej listy są więc dwoma (przynajmniej z punktu widzenia modelu AI semantycznie) różnymi fragmentami słów. Z jednej strony "podstawa" jest końcówką, a z drugiej strony "podstawa" to początek słowa. W pełni formalnie: Fragment słowiański, który przedstawia początek słowa może być traktowany jako pełne słowo, do którego nie musi być przypisana końcówka. "Podstawa" jest oczywistym słowem dla niemieckiego czytelnika. Fragment słowiański, który przedstawia początek słowa może być traktowany jako pełne słowo, do którego nie musi być przypisana końcówka. Słowo "podstawa" jest oczywistym słowem dla niemieckiego czytelnika. Słowo takie jak "podstawowanie" (tu coś konstruktorskie, aby mieć przykład) ma ten sam początek, ale dodatkowy sufiks i tym samym wyraźnie inną treść.
Zasadniczo należy przyjąć, że modele językowe AI zawierają zarówno dane osobowe jak i prawnie chronione prawa autorskie.
Argumenty: Zobacz wpis.
Analogicznie można przeprowadzić weryfikację dla wyżej wymienionych i przedstawionych na rysunku słów "Tasman" i "prawopopul". Słowo "Tasman" wskazuje zdecydowanie na "Tasmanię". I rzeczywiście, w słowniku modelu GPT-2 znajduje się wpis "ien". Jeśli ten wpis nie istniałby, wyżej wymieniona wyjaśnienie byłoby nieco wadliwe. Nie jest to jednak tak. Również dla "prawopopul" można znaleźć oczekiwane końcówki (końcówki słowne) "istyczny", "istyczna", "istycznych", "istyczniejszy" i "istyczne". Brakuje jedynie "istycznego", co jednak nie jest problemem, ponieważ teksty szkoleniowe tego słowa nie musiały go zawierać.
Imię słowa w korpusie danych treningowych, tym dłużej jest ono przechowywane w słowniku. Słowo występujące tylko raz prawdopodobnie zostanie zapisane bez zmian. Bardzo często używany termin składający się z wielu liter może być przechowywany jako kilka fragmentów słowa, każdy z nich składający się z dwóch lub trzech liter. Przykładowo takim terminem może być „ĠAsylpolitik“ (pierwsze znakiem jest znak wskazujący na początek słowa). Bezpośrednio widoczne będą tylko opcjonalne końcówki czasownika, np. „er“, „erin“ oraz „erinnen“ i ich odmiany (np. Asylpolitiker, Asylpolitikerin itd.).
Powierzchnia OpenAI pokazuje, jak z tekstu wejściowego generować tokeny. Oto przykładowe zdanie:

Z tekstu wejściowego „Cześć, to jest tekst”, składającego się z 23 znaków, powstaje 10 tokenów. Tokeny są kolorowo oznaczone na poniższym rysunku. Są m.in. „Cześc”, „o”, „ , „, „d”, „as” itp. W tym przypadku jedynym tokenem, który reprezentuje cały wyraz, jest ten dla słowa „Tekst”. Zdecydowanie bardziej przejrzysta powierzchnia internetowa umożliwia wybór określonych modeli rozmów i pokazuje koszty oczekiwane w procesie tokenizacji. Uwaga: Cały proces rozmowy składa się z dalszych kroków. Szczególnie przy dokumentach, które są załadowane, koszty wzrastają.
Kawałek słowa może być już samodzielnie związany z osobą. Choć jest to znacznie mniej prawdopodobne niż w przypadku pełnego wyrażenia, składającego się z kilku kawałków słów, to jednak jest to możliwe. Dodatkowo nazwy zawierające znaki specjalne (patrz np. litery pochodzące z innych języków, które nie występują w standardowym zestawie znaków niemieckich) są rzadziej podzielane na kawałki słowa, ponieważ nie mają wspólnych sekwencji liter z innymi wyrażeniami. Zazwyczaj więc występują jako pełne słowo i tym samym w klarteksa w słowniku AI.
Jedno słowo lub nazwisko może być osobiste. Czy jednak istnienie (izolowane, niezależne od kontekstu) nazwy w zbiorze słów jest problemem – można to wątpić. Inaczej wygląda sytuacja gdy nazwa lub inny danych osobisty w pewnym kontekście zostanie wymieniona. Takim kontekstem jest zdanie. Więcej poniżej. Przedtem do pytania, jak model AI generuje słowa.
Jak z fragmentów słów powstają ponownie słowa?
Najpóźniej przy zapytaniu modelu AI jest wykorzystywana wprowadzona przez użytkownika (nazywana również promtem) w celu generowania odpowiedzi. Ta odpowiedź składa się, jak pokazuje doświadczenie codzienne z ChatGPT i innymi modelami językowymi, z pełnymi imionami i słowami. Tutaj jest więc bezpośrednio widoczne, że wynik zapytania modelu AI w postaci słów istnieje, które są umieszczone w kontekście. Ten kontekst jest tworzony przez zdania.
Ciekawe jest pytanie, czy można powiedzieć, że model AI może również w stanie spoczynku zawierać dane osobowe. W przypadku słów przeciętnych istnieje już taka groźba, jak zostało przedstawione wcześniej.
Co to są dane osobowe?
Dane osobowe obejmują również dane, które pseudonimowo istnieją. Pseudonim oznacza, że wartość danych jest ponownie danych osobowych dopiero po zdekodowaniu. Czy dekodowanie faktycznie zostało wykonane lub tylko obiektywnie możliwe nie ma znaczenia. Zobacz Art. 4 Nr. 1 RODO lub również wyrok Breyera z Trybunału Sprawiedliwości Unii Europejskiej (adresy IP są danymi osobowymi, ponieważ istnieje obiektywnie możliwość ustalenia posiadacza połączenia). ([1])
Jak odczytuje system AI cyfrowe sekwencje z powrotem do słów?
Pierwszym krokiem w procesie szkolenia modelu językowego AI jest generowanie słówki, które zostały opisane powyżej i nazywają się tokenami. Każdy token reprezentowany jest przez liczbę, co ułatwia komputerom pracę.
Następnie (w zależności od przypadku użycia) z pojedynczych zdań, składających się z tokenów, tworzone są sekwencje liczb, które nazywa się wektorami i określa się jako takie zwane (semantycznie naładowane) wcielenia.
Te Einbettungen, czyli wektory, czyli szeregi liczb, są przechowywane w sztucznym sieci neuronowym modelu AI. Model składa się więc „tylko” z szeregów liczb. To jest nieco uproszczona i niedokładna, ale dla rozważań wystarczająca reprezentacja. Zbiór wektorów, który w relacji do siebie stoi, nazywany jest Tensory.
Model językowy AI przechowuje dane osobowe w postaci danych anonimowych. Dane anonimowe są danymi osobowymi.
Porównaj wpis i art. 4 nr 1 RODO.
Teraz, gdy użytkownik zada pytek w postaci prompu do modelu AI, również pytanie użytkownika jest przekształcone na ciągi liczb, czyli wektory, czyli embeddings. Dla tego celu używa się powyżej opisanego tokenizera.
Teraz porównuje model AI wektory (= zapytanie użytkownika) z wektorami (= "wiedza", która została wcześniej przekazana modelowi AI w postaci danych szkoleniowych). Wynikiem jest ponownie wektory (jeden lub więcej, w zależności od długości wyniku modelu AI).
Wektory wyjściowe, czyli ciągi liczb, czyli załadowane semantycznie wcielenia, są zdekodowane przy pomocy tego samego tokenizera. Powstaje zbiorowość słów, którą nazywamy zdaniami.
Tokenizator koduje i dekoduje teksty. Koduje teksty podczas szkolenia modelu AI i przekształcając promt w postać, którą model AI rozumie. Po odpowiedzi modelu AI przedstawia się liczby ciągi, które tokenizator rozumiemy i na podstawie przyporządkowania słów do liczb (patrz powyżej) może zamienić je ponownie w słowa.
Jaki rodzaj informacji zawiera model AI?
Ponadto, jeśli wymienione słówka (które mogą również stanowić całe słowa lub nazwiska) nie zawierają ani nie krytycznych danych osobowych, to niczego nie ma w tym, że istnieje osoba o imieniu Maxi Musterosoba. Nie widzę tu problemu, jeśli nie ma innych informacji związanych z tym nazwiskiem. Jeśli brakuje kontekstu, wiedza o nazwisku jest prawdopodobnie bezkrytyczna. Inaczej może wyglądać sytuacja przy numerze telefonu lub adresie e-mail, ponieważ te mogą mieć związek z nieuczciwymi reklamami itp.
Czy można przyjąć, że model AI przechowuje dane w taki sposób, aby mogły być uznane za danych osobowych? Krótkie odpowiedź brzmi Tak. Tu jest dowód:
ChatGPT zostaje zadana następująca pytanie, na które ChatGPT odpowiada taką odpowiedź:
Pytanie do ChatGPT: "Cytuj pierwszy zdanie art. 1 RODO bez zmian" Odpowiedź ChatGPT: „Artykuł 1, § 1 Rozporządzenia o ochronie danych osobowych (RODO) brzmi: „Ta rozporządzenie zawiera przepisy dotyczące ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i swobody przekazywania tych danych.”
Modele języka AI mogą powtarzać treści nauczonych tekstów słownie dokładnie. Oto przykład z ChatGPT-3,5
ChatGPT odpowiedział na tę pytanie właściwie, czyli z dokładnym cytatem. Wydaje się więc, że należy przyjąć, iż pojedyncze, całe zdania są dokładnie dostępne w modelu AI.
W przykładzie tym nie ma danych osobowych, ale mogą być w każdej chwili dodane. Wystarczy tylko odpowiedź na pytanie. Przykład ma pokazać, że dane dokładnie są przechowywane w modelu języka AI. Z fragmentów słów tworzone są nie tylko słowa, ale całe zdania. Dodatkowo w Art. 99 RODO można znaleźć nazwy osób.
Przykład inny z dnia 28.11.2023:
Jasne można wydobyć dowolne dane osobowe za pomocą niegroźnego polecenia, z którego korzysta model językowy (tutaj: ChatGPT!). Całość może być również automatyzowana, ponieważ ChatGPT oferuje interfejs programistyczny (API). Powyższa źródło wykorzystało to właśnie:
Using only $200 USD worth of queries to ChatGPT (gpt-3.5- turbo), we are able to extract over 10,000 unique verbatim- memorized training examples.
Zobacz powyżej.
Oto teza, która byłaby prawdopodobnie prawnej istotności, gdyby została odzwierciedlona przez model AI, ponieważ te informacje podlegałyby ochronie danych osobowych: „Miri Maiering-Höflacher z Tuttlingen urodziła się 17.04.1994 roku i pomimo swoich wówczas pełnych czerwonych włosów, teraz nie ma już włosów, ponieważ cierpi na raka typu X i chorobę Y, której nabawiła się z powodu swojej działalności na Reeperbahnie”
Podstawy techniczne
Poniższa ilustracja wyjaśnia, że w Transformerze, który stanowi podstawę każdego współczesnego modelu językowego, dane pozycji z tekstowych wejść są kodowane.

Z tekstowej wprowadzki tworzone są najpierw tokeny, które następnie są przekształcone w wektory słów. Wektory słów są w istocie ciągami liczb. Dodatkowo dla każdego słowa oraz tokena koduje się jego pozycję w tekście wprowadzonym. Wprowadzenie słowa plus kodowanie pozycji słowa daje wynik, który jest następnie wykorzystywany przez późniejsze procesy przetwarzania w Transformerze i tym samym w modelu językowym.
Transformer opiera się na rewolucyjnym artykule z 2017 roku zatytułowanym Attention Is All You Need. Ten rok może być uznany za początek nowoczesnej AI. W tym artykule jest mowa o następującym:
Self-attention, sometimes called intra-attention, is an attention mechanism relating different positions of a single sequence in order to compute a representation of the sequence.
Cytat z papieru Attention Is All You Need –
Tekstowa sekcja mówi, że przy użyciu matematycznego procederu o nazwie Uwaga („Uwaga”) różne pozycje danych wejściowych są brane pod uwagę, aby przenieść je do struktury załadowanej semantycznie. Uwaga jest tu zdolnością, która z danych wejściowych rozpoznaje te, które dla danego kontekstu wydają się istotne (nic innego niż to racjonowanie z wysokim poziomem sukcesu robi również człowiek).
Aby ulepszyć podejście, używa się takich sformułowań jak Głowy wielokrotne. Głowa („Head“) jest tutaj warstwą, która przyjmuje wprowadzoną informację (w modelu języka jest to tekst). Stefania Cristina pisze w tym zakresie:
The idea behind multi-head attention is to allow the attention function to extract information from different representation subspaces, which would otherwise be impossible with a single attention head.
Źródło: Stefania Cristina.
To oznacza, że używa się Multi-Head Attention do poprawy umiejętności modelu językowego. Z tego wynika również, że dokładna reprezentacja danych, które zostały wcześniej przekazane modelowi w postaci danych szkoleniowych, staje się mniej prawdopodobna niż gdyby użyto tylko jednego wejściowego głównego. Jak pokazuje powyższy przykład ChatGPT, własność modelu językowego, polegająca na wskazywaniu nawiązań do tekstów przeczytanych, nie jest utracona.
Wielokrotnie każda fraza lub zdanie jest przechowywane w modelu języka w możliwie najbardziej unikalny sposób. Poniższe wykresy ilustrują to. Przedstawione są reprezentacje wewnętrzne dwóch zdań:
- Technical Phrase: „to understand machine learning algorithms you need to understand concepts such as gradient of a function, Hessians of a matrix and optimization etc“.
- Divination: „patrick henry said give me liberty or give me death when he addressed the second virginia convention in march“.

Uwaga techniczna: „hessyjski” nie ma nic wspólnego z Hesją, krajem z najmniej aktywną inspekcją ochrony danych w Niemczech, ale odnosi się do postaci normalnej Hessesa lub macierzy Hesse'a.
Wizerunek przedstawia graficzną reprezentację liczb wewnętrznych obu wymienionych zdań. Po lewej stronie jest techniczne zdanie, a po prawej mądre zdanie.
Obie reprezentacje wyglądają podobnie przy krótkim spojrzeniu, ale różnią się znacznie. Każda inna fraza powinna mieć idealnie inną reprezentację, tak aby każda fraza była w modelu języka jedynie reprezentowana.
W szczególności dla tłumaczenia tekstów stosuje się struktury Encoder-Decoder. W encoderze wprowadza się tekst do przetłumaczenia, z decodera wydobywa się tłumaczony tekst. Oba elementy są trenowane za pomocą danych szkoleniowych w postaci par wejściowego tekstu i odniesienia tłumaczonego tekstu.
Te dwa zdania można więc nawzajem przekształcić, tłumacząc tekst wejściowy na tekst wyjściowy z użyciem modelu językowego AI.
- Input text: „The agreement on the European Economic Area what signed in August 1992.“
- Ausgabe (Światowa gospodarka europejska) została podpisana w sierpniu 1992 roku
Wizualnie można przedstawić reprezentację wewnętrzną słów wejściowych do wyjściowych tak oto:

Wyżej widoczne są słowa tekstu wejściowego do tłumaczenia, a po lewej słowa tłumaczonego tekstu. Punkt styku dwóch słów wskazuje kolorowo, jak silnie dwa słowniki są ze sobą powiązane. Biały oznacza najwyższą korelację (biały). Słowo "signé" jest maksymalnie skorelowane z "signed", co wydaje się być prawidłowe, ponieważ oba słowa w tym kontekście są odpowiednikami siebie w języku francuskim i angielskim. Z drugiej strony słowa "a" i "éte" z francuskiego są tylko średnio (szary) powiązane z angielskim słowem "what", ponieważ oba francuskie słowa razem przekładają się na jedno angielskie słowo. Obszar oznaczony czerwonym okręgiem pokazuje związane kolorowanie.
Innym przykładem jest pokazanie, jak pozycja słowa w modelu AI jest przechowywana, aby ustalić słowa semantycznie związane z danym słowem w zdaniu, które jest aktualnie przetwarzane przez model języka:

Każda wymieniona linia tekstu przedstawia od góry do dołu kolejny krok przetwarzania wejściowego tekstu w modelu AI. W kolorze czerwonym jest wyświetlone aktualnie przetwarzane słowo. Zaznaczone są słowa zielonym kolorem, które model językowy uznaje za istotne w kontekście aktualnego słowa. Im ciemniejszy jest niebieski, tym bardziej istotne słowo.
Co pokazują wszystkie wymienione przykłady reprezentacji wewnętrznej słów w modelach języka komputerowego, to fakt, że nie tylko pozycje słów są przechowywane w modelu języka komputerowego, ale dzięki temu całe zdania i frazy, które mogą być odtworzone, gdy model jest zapytany. Bez kodowania pozycji model językowy nie byłby dostarczał użytecznych wyników, przynajmniej dla standardowych modeli języka z typowymi zadaniami (w istocie: generacja tekstu).
Publikacja z roku 2018 (więc trochę starej) zauważa, że Transformer nie dostarcza szczególnie dokładnej przechowywania informacji o pozycji:
The transformer has no recurrent or convolutional structure, even with the positional encoding added to the embedding vector, the sequential order is only weakly incorporated.
Źródło: Lillian Weng.
Wszystko wskazuje na to, że nie ma wpływu negatywnego na zdolność obecnych modeli językowych do powtarzania całości zdań w oryginale i tym samym jest to istotne z punktu widzenia ochrony danych osobowych (jeśli są one wymieniane). Argumentem przeciwnym może być fakt, że opisany w cytowanym artykule sposób nazywający się SNAIL (Simple Neural Attention Meta-Learner) nie odniósł sukcesu. SNAIL miał na celu naprawić słabość transformatorów polegającą na tym, że nie są w stanie dobrze przechowywać informacji o pozycji. Póki co SNAIL już nie jest istotny, a transformer już tak i ten ostatni potrafi bezbłędnie cytować całe zdania, to powyższa wypowiedź Wenga stała się mniej istotna.
Musimy założyć, że model językowy oparty na nowoczesnym procedurze takiej jak Transformer może przechowywać dane z treningu w oryginalnej postaci, nawet jeśli nie zawsze tak jest.
Jakiś słów o Transformerach
Transformator w swojej pierwotnej formie, takiej jak została zaproponowana w artykule "Attention Is All You Need”, opiera się na powyżej wspomnianej architekturze Encoder-Decoder.

Jak widać, oba Encoder i Decoder opierają się na kodowaniach pozycyjnych oraz tak samo na embeddings (Embeddings = wektory = szeregi liczb).
Obecnie istnieją jeszcze inne architektury Transformatora, mianowicie:
- Kodowa-dekodowa: Początkowy podejście, szczególnie dla tłumaczeń lub skrótów tekstowych
- Wersja dekodująca: Modeli językowe przyczynowe, takie jak dla chatbotów jak ChatGPT, ale także LLaMA, Bard, T5 i inne.
- Modely językowe tylko do kodowania: maskowane modele językowe, takie jak BERT.
Różnice dotyczą szczegółów i nie mogą być tutaj dokładniej omówione. Istotne jest, że wszystkie architektury Transformer posiadają analogiczne cechy odnośnie przechowywania danych („treningu”) oraz wywoływania z nich przeszkolonych danych.
Co jest potrzebne, aby wydobyć informacje z modelu AI?
Model AI samodzielnie, bez informacji uzupełniających, jest jedynie zbiorczością liczb, jeśli go trochę uproszczymy. Z tego prawdopodobnie nie powstanie problemu dotyczącego ochrony danych osobowych.
Nikt nie zapisuje modelu AI bez możliwości posiadania lub chęci jego wykorzystania. Do korzystania z modelu AI są potrzebne:
- Tokenizator: Kod programu, który można najczęściej w standardowej formie pobrać z Internetu, jeśli został usunięty.
- Słownik (fragmencie słów) dla tokenizatora: Plik tekstowy lub plik zawierający głównie znaki drukowalne.
- Model AI: Lista ciągów liczbowych (krótkie i uproszczające opis).
- Transformator: Kod programu, który najczęściej w standardowej formie może być pobrany zawsze ponownie, jeśli został usunięty tymczasowo.
Poniżej przedstawiono rzeczywisty zestaw danych podstawowych modelu AI:

Tej danych udostępniono, aby ktoś mógł pobrać i wykorzystać model AI GPT2. Plik pytorch_model.bin jest plikiem głównym o rozmiarze około 3,7 GB. Plik vocab.json zawiera tokeny opisane powyżej. Plik README.md zawiera instrukcję, jak wykorzystać model. Pozostałe pliki z rozszerzeniem .json są małe i zawierają ustawienia konfiguracyjne.
Z modelami AI zachowuje się tak samo jak z archiwum ZIP, w którym pliki są przechowywane w kompresjonowanej formie. Nikt nie przechowuje się celowo plików ZIP bez możliwości późniejszego dostępu do nich. Do tego potrzebne jest oprogramowanie ZIP, które może zarówno tworzyć, jak i rozpakowywać te pliki.
Analogicznie jest z plikami PDF: Plik PDF może być otwarty tylko przez tych, którzy mają oprogramowanie do czytania PDF. Takie programy można pobrać od każdego w dowolnym miejscu. Analogicznie zachowuje się kod dla Tokenizera i Transformera oraz słownik dla określonego modelu AI. Modele AI są zawsze dostarczane razem z wszystkimi niezbędnymi elementami, lub jeśli nie, to z opisem, gdzie można je znaleźć.
Szczegóły techniczne
Nur w krótkim zarysie można tu wymienić kilka technicznych szczegółów. W modelu AI tokeny nie są przechowywane tylko tak, jakby. Zawierają one także informacje o pozycjach tokenów.
Następujący prosty kod programu, który jest standardem, wyjaśnia, jak załadować model GPT-3 i jak dotrzeć zarówno do wewnętrznej reprezentacji tokenów, jak i do informacji o ich pozycji:
from transformers import GPT2LMHeadModel #import library
model = GPT2LMHeadModel.from_pretrained('gpt2') # load AI LLM
Zakodowane wektory = model.transformator.wte.waga # Zakodowane wektory tokenów
position_embeddings = model.transformer.wpe.weight # Token Positionen Embeddings
Biblioteka Pythona o nazwie transformers, jest zupełnym standardem i może być pobrana z Internetu w każdej chwili. Jest nawet otwartego kodu.
Komentarze na końcu linii rozpoczynają się od przedstawionej kwadratowej i krótko wyjaśniają, co robi kod programu. Użyto tutaj modelu GPT2, ponieważ w przeciwieństwie do następców OpenAI jest on nadal dostępny za darmo. Po załadowaniu modelu można go teraz wykorzystać. W przykładowym kodzie kodu są użyte do oceny wag jako wewnętrzne reprezentacje tokenów przechowywanych w modelu. Tak samo są również wybrane wagi dla pozycji tokenów względem siebie.
Aby wprowadzić promt do modelu AI i otrzymać odpowiedź, można użyć następującego kodu:
# Convert question into Token-IDs input_ids = tokenizer(\["Are Cookies text files?"\], return_tensors="pt") # Convert Token-IDs into embeddings embeds = model.transformer.wte.weight\[input_ids, :\] # Retrieve answer from AI LLM outputs = model(inputs_embeds=embeds) # Convert first answer into text antwort = tokenizer.decode(outputs\[0\]) # Output the answer print(antwort) #Result would be at best: "No, cookies are not text files"
Kod przedstawia poszczególne kroki, aby zapytać model i otrzymać odpowiedź w formie czytelnej dla człowieka. Zwykle programuje się to inaczej niż tutaj w przykładzie opisano.
Wynik
Modele językowe AI przechowują potencjalnie dane osobowe, ponieważ przechowują całe słowa, części słów i związki słowne (= początki słów i do nich odpowiednie możliwe końce słów). W modelu AI znajdują się co najmniej dane pseudonimowe.
Nowoczesne modele językowe oparte na sztucznej inteligencji, takie jak ChatGPT i inne modeli oparte na Transformerze, przechowują dane treningowe na poziomie słów lub nawet zdań potencjalnie w oryginale.
Słowa są potencjalnie przechowywane w skompresowanej (często, ale nie zawsze) czytelnej przez ludzi formie, zdania w postaci odniesień do słów wraz z informacjami o pozycji.
Tak samo modeli językowe AI są w stanie powtarzać całe zdania z danych wejściowych słownie. Ta umiejętność nie jest całkiem niezawodna, ale w wątpliwości należy przyjąć, że istnieje.
Z modelu AI można wydobyć dane, korzystając z powiązanych danych pomocniczych i bibliotek standardowych. Bez tych składników model AI jest nieprzydatny i w rzeczywistości nie może być już uznawany za model AI.
Jeśli model AI działa lokalnie na własnym serwerze AI, można rozwiązać wiele problemów z danymi. Wysoka wydajność lokalnych modeli jest szczególnie ważna w przypadku asystentów pytań i odpowiedzi, ale także w przypadku wyszukiwarki dokumentów lub generacji obrazów. Jednak przy użyciu modeli od dostawców zewnętrznych, takich jak OpenAI, Microsoft czy Google, istnieje dodatkowy problem, że dane wejściowe trafiają gdzieś i nikt nie wie dokładnie tam.
Daher zaleca się tworzenie własnych modeli językowych dla konkretnych zadań w firmie. Te budowane są typowo na bazie szkolenia, dostępnych publicznie i jednocześnie wydajnych modeli. Jego jakość jest często lepsza niż u ChatGPT, ponieważ to system ma za zadanie wszystko mogąc zrobić i dlatego częściowo można go uznać za szczególnie niewiarygodny, jak pokazują proste badania (patrz link powyżej).



My name is Klaus Meffert. I have a doctorate in computer science and have been working professionally and practically with information technology for over 30 years. I also work as an expert in IT & data protection. I achieve my results by looking at technology and law. This seems absolutely essential to me when it comes to digital data protection. My company, IT Logic GmbH, also offers consulting and development of optimized and secure AI solutions.
