course
Każdy projekt uczenia maszynowego w końcu dochodzi do momentu, w którym potrzebne są oznaczone dane, a ich etykietowanie kosztuje więcej czasu i pieniędzy, niż większość zespołów może sobie pozwolić.
Zatrudnienie zespołu do oznaczenia miliona obrazów lub transkrypcji miliona nagrań audio może kosztować sześciocyfrowe kwoty. Jednocześnie internet jest pełen nieoznaczonego tekstu, obrazów, dźwięku i wideo. Zespoły ML mają więcej surowych danych, niż kiedykolwiek wykorzystają, ale prawie żadne z nich nie są opatrzone etykietami potrzebnymi do wytrenowania modelu.
Uczenie samonadzorowane nie wymaga kroku etykietowania. Zamienia strukturę samych danych w informację treningową. Zamiast płacić ludziom za opisanie, co jest na obrazie lub co znaczy zdanie, ustawiasz zadanie, na które dane już potrafią same odpowiedzieć – na przykład ukrywasz słowo i prosisz model, by odgadł je z kontekstu.
W tym artykule wyjaśnię, jak działa uczenie samonadzorowane, omówię jego główne techniki i pokażę, jak wypada na tle uczenia nadzorowanego, nienadzorowanego oraz półnadzorowanego.
Czym jest uczenie samonadzorowane?
Uczenie samonadzorowane to sposób trenowania modeli bez ręcznego etykietowania danych.
Zamiast człowieka, który oznacza każdy przykład, dane zawierają własny klucz odpowiedzi. Model patrzy na część wejścia, ukrywa inną część i uczy się, próbując wypełnić lukę. Nie ma potrzeby interwencji człowieka.
Na przykład możesz wziąć zdanie, ukryć jedno słowo i poprosić model, by odgadł je na podstawie otaczających słów. „The engineer pushed the ___ to the main branch” daje modelowi dość kontekstu, by zgadł „code” lub „changes” bez podawania poprawnej odpowiedzi. Samo zdanie pełni rolę etykiety.
Uczenie samonadzorowane stoi w nietypowym miejscu między dwiema kategoriami. Jego cel treningowy wygląda jak w uczeniu nadzorowanym – mamy wyraźne wejście, wyraźny cel i funkcję straty mierzącą błąd prognozy. Ale ponieważ żaden człowiek nie tworzy tych celów, zwykle zalicza się je do uczenia nienadzorowanego, które także działa na surowych, nieoznaczonych danych. Uczenie samonadzorowane zapożycza mechanikę jednego i źródło danych drugiego.
Jak działa uczenie samonadzorowane?
Proces przebiega według powtarzalnego schematu, niezależnie od rodzaju danych. Oto kroki:
- Zacznij od nieoznaczonych danych: Tekst, obrazy, audio, wideo – to bez znaczenia, o ile masz ich dużo.
- Utwórz zadanie uczące z samych danych: To tzw. zadanie pretekstowe. Nie jest to zadanie, na którym ci zależy; to wymyślony problem, który zmusza model do nauczenia się czegoś użytecznego. Ukrywanie słowa i przewidywanie go to jeden z przykładów.
- Wytrenuj model, by rozwiązał to zadanie: Model zgaduje, porównuje z wartością rzeczywistą i koryguje się.
- Naucz się użytecznych reprezentacji: Rozwiązując zadanie pretekstowe, model buduje wewnętrzne rozumienie struktury danych, takie jak gramatyka, kontekst, kształty i wzorce.
- Dostosuj te reprezentacje do zadań docelowych: Gdy model opanuje solidne reprezentacje, kierujesz go na zadanie, które faktycznie chcesz rozwiązać. To zadanie docelowe.
Zadanie pretekstowe to tylko ćwiczenie treningowe. Nikt nie wdraża modelu, który zgaduje ukryte słowa dla zabawy – wartość pochodzi z reprezentacji, jakie model przyswaja po drodze i przenosi na realne problemy.
Uczenie samonadzorowane a inne metody uczenia
Najłatwiej zrozumieć uczenie samonadzorowane, patrząc, gdzie pokrywa się i gdzie różni od innych paradygmatów treningowych.
Samonadzorowane vs nadzorowane
Uczenie nadzorowane wymaga oznaczonego przykładu dla każdego wejścia, np. obrazu z tagiem „dog” lub recenzji z tagiem „negative”. Ktoś musi stworzyć te etykiety ręcznie, co oznacza koszty, czas i limit tego, jak dużo danych realnie możesz użyć.
W uczeniu samonadzorowanym model nadal dostaje cel do przewidzenia, ale cel pochodzi z samych danych – ukrytego słowa lub następnego tokenu w sekwencji. Do wytworzenia sygnału treningowego nie potrzeba ludzkich adnotacji.
Samonadzorowane vs nienadzorowane
Obie metody działają na nieoznaczonych danych, więc często się je myli. Różnica tkwi w celu.
Uczenie nienadzorowane szuka struktury bez konkretnego celu predykcyjnego, np. grupując podobnych klientów czy redukując wymiarowość zbioru. Uczenie samonadzorowane buduje z danych jawne zadanie predykcyjne, a następnie trenuje model, by je rozwiązać. Ten cel predykcyjny nadaje uczeniu samonadzorowanemu pętlę treningową w stylu nadzorowanym, mimo że etykiety generują się same.
Samonadzorowane vs półnadzorowane
Uczenie półnadzorowane celowo miesza mały oznaczony zbiór z większym nieoznaczonym, używając obu naraz, by poprawić model.
Pretrenowanie samonadzorowane nie potrzebuje na starcie żadnych etykiet. Może pretrenować się w całości na nieoznaczonych danych, a później opcjonalnie przejść do oznaczonego zbioru w celu dostrojenia. Etykiety, jeśli się pojawią, wchodzą do gry po pretrenowaniu.
| Wymagane etykiety | Źródło sygnału uczącego | Typowe zastosowanie | |
|---|---|---|---|
| Nadzorowane | Tak, dla każdego przykładu | Etykiety tworzone przez ludzi | Trenowanie modelu bezpośrednio na zadaniu docelowym |
| Nienadzorowane | Nie | Struktura w danych (klastry, wzorce) | Grupowanie, redukcja wymiarowości |
| Półnadzorowane | Częściowo, zmieszane z danymi nieoznaczonymi | Przykłady z etykietami plus wzorce w danych nieoznaczonych | Zwiększanie dokładności, gdy mało jest oznaczonych danych |
| Samonadzorowane | Nie, na etapie pretrenowania | Zadanie pretekstowe zbudowane z samych danych | Pretrenowanie przed dostrajaniem do zadania docelowego |
Uczenie samonadzorowane na tle innych metod
Rodzaje uczenia samonadzorowanego
Metody samonadzorowane dzielą się na kilka szerokich rodzin, każda oparta na innym typie zadania pretekstowego.
Uczenie kontrastowe
Uczenie kontrastowe trenuje model, by odróżniał przykłady powiązane od niepowiązanych. Zbliża reprezentacje podobnych przykładów i oddala niepodobne, nigdy nie używając ręcznej etykiety do zdefiniowania „podobieństwa”.
Za powiązane uznaje się dwie zaugmentowane wersje tego samego obrazu. Obraz i pasujący podpis także są powiązane. SimCLR stosuje tę ideę w obrębie jednej modalności, porównując różne przycięcia lub transformacje tego samego obrazu. CLIP stosuje ją między modalnościami, dopasowując obrazy do opisującego je tekstu.
Modelowanie maskowane
Modelowanie maskowane ukrywa część wejścia i trenuje model do jego rekonstrukcji. To ten sam pomysł co wcześniej – wypełnianie luk – tylko zastosowany szerzej.
W języku przejawia się to jako maskowane modelowanie języka, czyli ukrywanie kilku słów w zdaniu i przewidywanie ich z reszty. W wizji – jako maskowane modelowanie obrazu, czyli ukrywanie łatek obrazu i proszenie modelu o odtworzenie brakujących pikseli lub ich wewnętrznej reprezentacji.
Uczenie autoregresyjne
Uczenie autoregresyjne przewiduje kolejny element w sekwencji, wykorzystując wszystko, co było przed nim. Mając początek zdania, model przewiduje następne słowo. Mając to słowo, przewiduje kolejne i tak dalej.
To cel stojący za większością współczesnego pretrenowania modeli językowych. Naturalnie pasuje do tekstu, bo język jest sekwencją od lewej do prawej, i dobrze się skaluje do ogromnych korpusów bez dodatkowej konfiguracji.
Samodystylacja
Samodystylacja trenuje model, używając jego własnych predykcji jako celu, zamiast stałej odpowiedzi ukrytej w danych.
Częsty schemat uruchamia dwie wersje tej samej sieci – „ucznia” i „nauczyciela” – na różnych widokach tego samego wejścia. Uczeń uczy się dopasowywać wyjście nauczyciela, a nauczyciel jest aktualizowany jako wolno zmieniająca się średnia ucznia. DINO i BYOL to reprezentatywne podejścia. Nie ma potrzeby negatywnych przykładów ani maskowanych wejść, bo model pozyskuje nadzór z własnej spójności między widokami.
Uczenie samonadzorowane w dużych modelach językowych
Samonadzór to cały etap pretrenowania dużych modeli językowych. Każdy duży LLM, którego używasz, nauczył się struktury języka, faktów i wzorców rozumowania bez ani jednej ludzkiej etykiety – wyłącznie przez rozwiązywanie samonadzorowanych zadań pretekstowych na surowym tekście.
Przewidywanie następnego tokenu
Większość współczesnych LLM-ów pretrenuje się na przewidywaniu następnego tokenu: mając sekwencję tokenów, przewidują ten, który pojawi się dalej. Model czyta wszystko przed daną pozycją, zgaduje, co nastąpi, sprawdza się na tle faktycznego następnego tokenu i się koryguje.
Uruchomione na bilionach tokenów zebranych ze stron i repozytoriów kodu buduje po drodze działający model gramatyki, faktów, a nawet wzorców rozumowania. To ten sam cel autoregresyjny, tylko zastosowany na dużą skalę.
Maskowane modelowanie języka
Zanim pretrenowanie autoregresyjne przejęło prym, modele takie jak BERT używały innego zadania pretekstowego. Zamiast przewidywać, co będzie dalej, BERT ukrywa losowe tokeny w zdaniu i przewiduje je, korzystając z kontekstu z obu stron.
Ten dwukierunkowy kontekst sprawia, że modele maskowane dobrze rozumieją zadania takie jak klasyfikacja i odpowiadanie na pytania, choć nie generują tekstu tak jak modele przewidujące następny token.
Uczenie się z wielkich korpusów tekstu
Nic z tego nie działa bez wolumenu. Pretrenowanie czerpie dane ze stron, książek, repozytoriów kodu i forów, filtrowanych i deduplikowanych do korpusów zawierających miliardy lub biliony tokenów. Im większy i bardziej zróżnicowany korpus, tym bardziej ogólne stają się uzyskane reprezentacje.
Pretrenowanie to miejsce, gdzie działa samonadzór, ale nie jest to ostatni etap. Dostrajanie na ludzkich instrukcjach uczy model podążać za poleceniami, a metody optymalizacji preferencji, takie jak RLHF czy DPO, wykorzystują uszeregowane preferencje ludzi do kształtowania odpowiedzi. Oba te późniejsze etapy wymagają oznaczonych danych. Samonadzorowane pretrenowanie jest jedynym etapem, który ich nie potrzebuje.
Uczenie samonadzorowane w wizji komputerowej
Wizja komputerowa to idealny obszar z niedostatkiem oznaczonych danych. Ramki ograniczające i maski segmentacji wymagają znacznie więcej pracy niż pojedynczy tag przy tekście, co czyni metody samonadzorowane szczególnie cennymi.
Kontrastowe uczenie obrazów stosuje opisane wcześniej podejście „zbliż-oddal”, obejmujące wzięcie dwóch zaugmentowanych wersji tego samego zdjęcia (przycięcie lub odwrócenie) i trenowanie modelu, by rozpoznawał je jako powiązane, traktując inne obrazy w batchu jako niepowiązane. SimCLR to znany przykład tego podejścia do obrazów.
Maskowane modelowanie obrazu przenosi pomysł „wypełnij lukę” z języka na piksele. Chodzi o ukrywanie łatek obrazu i trenowanie modelu, by odtworzył brakującą treść – jako surowe piksele lub jako wyuczoną reprezentację cech. To cel stojący za MAE (Masked Autoencoders).
Dopasowywanie obraz-tekst trenuje model do parowania obrazów z opisującymi je podpisami, zbliżając pasujące pary w wspólnej przestrzeni osadzeń i rozdzielając niepasujące. CLIP to najbardziej znany przykład i część powodu, dla którego modele trenowane w ten sposób wspierają klasyfikację zero-shot – potrafią rozpoznawać kategorie, na których nie były explicite trenowane, porównując obraz z opisem tekstowym.
Uczenie samonadzorowane poza tekstem i obrazami
Zadanie pretekstowe zawsze podąża za kształtem danych, więc tam, gdzie masz dużo nieoznaczonych danych, zwykle da się zaprojektować wokół nich zadanie samonadzorowane.
W mowie i audio modele przewidują maskowane segmenty dźwięku lub kontrastują różne klipy podobnie jak modele wizji kontrastują wycinki obrazu, ucząc się reprezentacji przydatnych do zadań takich jak rozpoznawanie mowy bez potrzeby transkrybowanych danych na starcie.
W wideo zadanie pretekstowe może polegać na przewidywaniu przyszłych klatek lub dopasowywaniu klipów pochodzących z tego samego źródłowego nagrania, dając modelowi poczucie ruchu i struktury czasowej, której pojedynczy obraz nie zapewnia.
Modele multimodalne łączą jednocześnie dwie lub więcej z tych idei, wyrównując tekst, obrazy, audio i wideo we wspólnej przestrzeni reprezentacji, podobnie jak CLIP wyrównuje obrazy i tekst, tylko rozszerzone na więcej typów danych.
Samonadzór pojawia się nawet w danych naukowych i sensorowych – takich jak sekwencje genomowe czy szeregi czasowe z czujników – gdzie maskowanie lub przewidywanie części sygnału pozwala modelowi uczyć się struktury z pomiarów, które nigdy nie miały być „etykietowane”.
Jak wykorzystuje się modele samonadzorowane w zadaniach docelowych
Pretrenowanie daje model dobry w rozwiązywaniu zadania pretekstowego. Nikt tego tak naprawdę nie potrzebuje – liczy się to, co zrobisz z nim później.
Dostrajanie (fine-tuning)
Dostrajanie bierze wstępnie wytrenowany model i kontynuuje trening wszystkich jego wag, tym razem na oznaczonych danych dla zadania, na którym ci zależy. Ponieważ model rozumie już strukturę domeny, zwykle potrzeba znacznie mniej oznaczonych danych niż przy treningu od zera.
Linear probing
Linear probing zamraża całkowicie model po pretrenowaniu i trenuje tylko pojedynczą warstwę liniową na jego wyjściu. Jeśli prosty klasyfikator liniowy potrafi rozdzielić klasy na tych zamrożonych cechach, to znaczy, że reprezentacje uchwyciły realną strukturę. Dlatego linear probing jest powszechnym sposobem testowania jakości reprezentacji samych w sobie, niezależnie od tego, jak dobrze da się dostroić pełny model.
Ekstrakcja cech
Ekstrakcja cech działa podobnie jak linear probing, ale bez części liniowej. Bierzesz zamrożone reprezentacje i karmisz nimi dowolny algorytm docelowy. Jedyną rolą pretrenowanego modelu jest generowanie dobrych osadzeń, a wszystko dalej zależy od ciebie.
Użycie zero-shot i few-shot
Niektóre reprezentacje są tak dobre, że da się z nich korzystać bez żadnego dalszego treningu. CLIP robi to, osadzając obraz i zestaw kandydackich etykiet tekstowych w tej samej przestrzeni, a potem wybierając etykietę najbliższą obrazowi. Uczenie few-shot opiera się na tym samym pomyśle, dodając małą liczbę oznaczonych przykładów, co często wystarcza, bo reprezentacje niosą już większość potrzebnej struktury.
Dzięki uczeniu samonadzorowanemu uzyskujesz wielokrotnego użytku reprezentacje. Pretrenujesz raz, a potem dostrajasz, sondasz liniowo, wyciągasz cechy lub odpytujesz ten sam rdzeń w tylu zadaniach docelowych, ilu potrzebujesz. Większość kosztownej pracy dzieje się raz – podczas pretrenowania, a nie osobno dla każdego zadania.
Uczenie samonadzorowane w Pythonie
Oto lekkim przykładem posłużymy się modelem wstępnie wytrenowanym, a nie systemem samonadzorowanym zbudowanym od zera – żeby pokazać sam przepływ pracy.
all-MiniLM-L6-v2, dostępny przez pakiet sentence-transformers, został wstępnie wytrenowany z celem maskowanego modelowania języka, a następnie dalej trenowany kontrastowo na parach zdań. To część samonadzorowana wykonana za ciebie – twoim zadaniem jest tylko wykorzystać powstałe reprezentacje w praktyce.
Na początek upewnij się, że masz zainstalowane zależności:
pip install sentence-transformers scikit-learn
Przejdźmy do kodu:
from sentence_transformers import SentenceTransformer
from sklearn.linear_model import LogisticRegression
# Create unlabeled data
support_tickets = [
"My order arrived damaged and I need a replacement.",
"The app crashes every time I try to upload a photo.",
"I love how fast the checkout process is now.",
"Can you tell me when my refund will be processed?",
"The new dashboard layout is so much easier to use.",
"I can't log in, it keeps saying my password is wrong.",
]
# Load a model pretrained with a self-supervised objective
model = SentenceTransformer("all-MiniLM-L6-v2")
# Obtain learned representations
embeddings = model.encode(support_tickets)
print(embeddings.shape)

Kształt osadzeń
Metoda .encode() przepuszcza każdy ticket przez wstępnie wytrenowany model i zwraca gęsty wektor reprezentujący jego znaczenie. Od tego momentu zadanie docelowe potrzebuje tylko garści oznaczonych przykładów, bo osadzenia niosą już większość struktury:
# Use the representations for a downstream task, 1 = complaint, 0 = positive feedback
labels = [1, 1, 0, 1, 0, 1]
clf = LogisticRegression()
clf.fit(embeddings, labels)
new_ticket = ["The delivery was late and no one responded to my email."]
new_embedding = model.encode(new_ticket)
print(clf.predict(new_embedding))

Predykcja regresji logistycznej
Sześć oznaczonych ticketów i klasyfikator LogisticRegression wystarczą tutaj, ponieważ to reprezentacje, a nie klasyfikator, wykonują większość pracy.
Zalety i ograniczenia uczenia samonadzorowanego
Przejdźmy teraz przez plusy i minusy uczenia samonadzorowanego.
Zalety
- Zmniejsza zależność od ręcznie etykietowanych danych: Zadanie pretekstowe generuje własne cele, więc budżety na etykietowanie nie ograniczają już tak mocno skali treningu
- Wykorzystuje bardzo duże zbiory danych: Zbiory tekstu i audio w skali sieci stają się użyteczne do treningu, a nie tylko małe oznaczone podzbiory, na które zespoły było stać
- Daje przenośne reprezentacje: Jeden pretrenowany model może wspierać dostrajanie, linear probing, ekstrakcję cech i użycie zero-shot w kilku różnych zadaniach docelowych
- Umożliwia pretrenowanie na dużą skalę: To właśnie sprawia, że dzisiejsze modele bazowe w ogóle są możliwe.
Ograniczenia
- Znaczne wymagania obliczeniowe: Pretrenowanie na danych w skali internetu wymaga poważnego sprzętu i czasu, poza zasięgiem większości pojedynczych zespołów
- Projekt zadania pretekstowego ma znaczenie: Źle dobrane zadanie pretekstowe da reprezentacje, które słabo się przenoszą, niezależnie od ilości danych
- Wyuczone reprezentacje mogą dziedziczyć stronniczości: Wszelkie wzorce, luki czy skrzywienia obecne w danych treningowych pojawią się też w reprezentacjach, bo nic ich nie filtruje podczas pretrenowania
- Mocne wyniki w pretrenowaniu nie gwarantują sukcesu downstream: Model, który świetnie rozwiązuje zadanie pretekstowe, może nadal wypadać słabo w konkretnym zadaniu docelowym, do którego nie był bezpośrednio optymalizowany
Dlaczego uczenie samonadzorowane ma znaczenie dla współczesnej SI
Uczenie samonadzorowane to powód, dla którego modele bazowe w ogóle są możliwe.
Pretrenowanie na skalę wymaganą przez nowoczesne modele byłoby nieosiągalne, gdyby zależało od ręcznych etykiet. Nikt nie etykietuje biliona tokenów tekstu czy miliarda obrazów ręcznie. Samonadzór uczynił praktycznym pretrenowanie na zbiorach w skali internetu, a następnie ponowne użycie jednego modelu w szerokim zakresie zadań, zamiast trenowania osobnego modelu do każdego.
Ta zmiana – od wielu modeli specyficznych dla zadania do jednego modelu ogólnego, dostosowywanego do wielu zastosowań – to kierunek, w którym poszła większość współczesnej SI. Uczenie samonadzorowane jest mechanizmem, który to umożliwił.
Wnioski
Uczenie samonadzorowane pozyskuje nadzór z samej struktury nieoznaczonych danych, zamiast z etykiet napisanych przez człowieka. Typowy wzorzec to ukrycie słowa lub przewidywanie następnego tokenu. Dane odpowiadają na własne pytania, a model uczy się, próbując trafić w te odpowiedzi.
Główne podejścia opierają się na tym samym pomyśle, realizując go na różne sposoby. Uczenie kontrastowe zbliża powiązane przykłady i oddala niepowiązane. Modelowanie maskowane ukrywa część wejścia i uczy model rekonstrukcji. Uczenie autoregresyjne przewiduje kolejny element sekwencji z wszystkiego, co było przed nim. Mechanika jest różna, ale wspólna zasada – by struktura danych dostarczała sygnał treningowy – pozostaje ta sama.
Dlatego samonadzór stoi za większością modeli językowych, wizji i multimodalnych, z których już korzystasz. Przewidywanie następnego tokenu pretrenuje dzisiejsze LLM-y, kontrastowe i maskowane cele pretrenują modele wizji, a dopasowywanie obraz-tekst pretrenuje modele multimodalne łączące oba światy.
Jeśli chcesz nauczyć się tworzyć LLM od zera, zapisz się na naszą ścieżkę Developing Large Language Models, aby zobaczyć w akcji PyTorch, Hugging Face i najnowsze techniki NLP.
FAQs
Czym jest uczenie samonadzorowane?
Uczenie samonadzorowane to sposób trenowania modeli bez etykiet tworzonych przez ludzi. Model patrzy na część wejścia, ukrywa inną część i uczy się, próbując przewidzieć brakujący fragment. Dane dostarczają własny sygnał treningowy, co czyni je „samonadzorowanym”.
Czym uczenie samonadzorowane różni się od nienadzorowanego?
Obie metody działają na nieoznaczonych danych, ale podchodzą do nich inaczej. Uczenie nienadzorowane szuka struktury bez konkretnego celu predykcyjnego, np. grupując podobnych klientów. Uczenie samonadzorowane buduje z samych danych jawne zadanie predykcyjne, a następnie trenuje model, by je rozwiązać.
Dlaczego uczenie samonadzorowane ma znaczenie dla współczesnej SI?
To powód, dla którego modele bazowe w ogóle są możliwe. Pretrenowanie w dzisiejszej skali byłoby nieosiągalne, gdyby zależało od ręcznie etykietowanych danych, bo nikt nie etykietuje biliona tokenów tekstu ręcznie. Samonadzór pozwala ponownie wykorzystywać jeden pretrenowany model w kilku różnych zadaniach docelowych zamiast trenować oddzielny model do każdego zadań.
Jaka jest różnica między zadaniem pretekstowym a zadaniem docelowym?
Zadanie pretekstowe to wymyślony problem rozwiązywany podczas pretrenowania, np. przewidywanie ukrytego słowa. To nie jest zadanie, na którym ci zależy – ma jedynie zmusić model do nauczenia się użytecznych reprezentacji. Zadanie docelowe to realny problem, do którego później zastosujesz te reprezentacje, np. klasyfikacja czy wyszukiwanie.
Czy uczenie samonadzorowane może działać bez żadnych oznaczonych danych?
Tak, samo pretrenowanie nie potrzebuje żadnych etykiet. Gdy model nauczy się reprezentacji, niektóre zastosowania downstream, jak klasyfikacja zero-shot w CLIP, nadal nie potrzebują etykiet, by działać. Inne, jak dostrajanie czy few-shot, wprowadzają niewielką liczbę oznaczonych danych dopiero na tym późniejszym etapie.