Robocikowo>ROBOCIKOWO
Trening

Instruction Tuning

Metoda treningu modeli AI polegająca na uczeniu ich wykonywania instrukcji użytkownika.
Kluczowa innowacja
Instruction Tuning wykazał, że dostrajanie dużego pretrenowanego modelu językowego na zbiorze zadań NLP sformułowanych jako instrukcje w języku naturalnym znacząco poprawia jego zdolność do wykonywania niewidzianych wcześniej zadań w trybie zero-shot.
Kategoria
Trening
Poziom abstrakcji
Wzorzec
Poziom operacji
TreningPo-trening
Zastosowania
Asystenci konwersacyjni (ChatGPT, Claude)Modele ogólnego przeznaczenia reagujące na poleceniaAutomatyzacja zadań tekstowychTłumaczenie, streszczanie, klasyfikacja na żądanieModele specjalistyczne (medyczne, prawne, kodujące)

Jak działa

Model jest fine-tuningowany na zbiorze danych par (instrukcja, odpowiedź) obejmujących różnorodne zadania. Dzięki temu model uczy się wzorca: "wykonaj zadanie opisane w instrukcji". Może być łączony z RLHF dla lepszej jakości.

Rozwiązany problem

Pretrenowane modele językowe są dobre w przewidywaniu kolejnego tokenu, ale słabo reagują na polecenia użytkownika. Instruction tuning dostosowuje model do podążania za instrukcjami w naturalnym języku.

Komponenty

Instruction DatasetZbiór przykładów treningowych w formacie (instrukcja, [wejście], oczekiwane wyjście), pokrywający zróżnicowane typy zadań. Jakość, różnorodność i liczba zadań bezpośrednio wpływają na zdolność generalizacji modelu.
Multi-task instruction dataset
Human demonstration dataset
Synthetic instruction dataset

Oficjalna

Pretrained Base ModelModel językowy wstępnie wytrenowany na dużym korpusie tekstowym, który jest dostrajany na zbiorze instrukcji. Jakość i rozmiar modelu bazowego determinują górną granicę efektywności instruction tuning.

Oficjalna

Supervised Fine-Tuning ObjectiveCel treningowy: minimalizacja straty entropii krzyżowej na tokenach odpowiedzi, przy maskowaniu straty na tokenach instrukcji. Gradient jest propagowany wyłącznie przez tokeny wyjściowe.
Instruction TemplateFormat tekstowy lub szablon przekształcający przykłady z oryginalnych zbiorów danych na postać instrukcji w języku naturalnym. Różnorodność szablonów poprawia generalizację modelu.

Oficjalna

Implementacja

Pułapki implementacyjne
Katastrofalne zapominanie wiedzy pretrenowanejWysoka
Rozwiązanie:Stosuj odpowiednio duży i zróżnicowany zbiór danych instrukcji obejmujący wiele typów zadań. Włącz niewielką część danych w stylu pre-treningu do mieszanki fine-tuningu (regularyzacja pre-treningiem, jak w InstructGPT PPO-ptx). Stosuj metody PEFT (LoRA), aby ograniczyć aktualizacje parametrów.
Niewystarczająca różnorodność zadańWysoka
Rozwiązanie:Uwzględniaj przykłady z możliwie wielu różnych typów zadań. Stosuj wiele szablonów promptów na zadanie, aby zwiększyć różnorodność. W przypadkach wymagających rozumowania dołączaj przykłady chain-of-thought.
Niska jakość danych instrukcyjnychKrytyczna
Rozwiązanie:Stosuj ręcznie opracowane lub starannie filtrowane zbiory danych instrukcji. Filtruj pod kątem jakości syntetyczne zbiory generowane przez LLM. Preferuj zróżnicowane, wysokiej jakości przykłady zamiast dużych ilości przykładów niższej jakości.
Nieprawidłowe maskowanie straty na tokenach instrukcjiŚrednia
Rozwiązanie:Zastosuj maskę straty (np. indeks etykiety -100) do wszystkich tokenów instrukcji/wejścia, aby gradienty były obliczane wyłącznie na podstawie predykcji tokenów odpowiedzi.
Niespójny format szablonów instrukcjiŚrednia
Rozwiązanie:Wybierz jeden szablon promptu zgodny z oczekiwanym formatem docelowego modelu (np. oficjalny szablon czatu modelu) i stosuj go jednolicie we wszystkich przykładach treningowych.

Ewolucja

Oryginalny paper · 2022 · ICLR 2022 · Jason Wei
Finetuned Language Models Are Zero-Shot Learners
Jason Wei, Maarten Bosma, Vincent Y. Zhao, Kelvin Guu, Adams Wei Yu, Brian Lester, Nan Du, Andrew M. Dai, Quoc V. Le
2021
FLAN — pierwsze formalne zdefiniowanie instruction tuning na dużą skalę (Wei et al.)
Punkt przełomowy
2022
InstructGPT — instruction tuning z feedbackiem ludzkim (Ouyang et al., OpenAI)
Punkt przełomowy
2022
Scaling instruction fine-tuning — Flan-T5 i Flan-PaLM (Chung et al.)
Punkt przełomowy
2023
Stanford Alpaca — instrukcyjne dostrajanie modeli open-source przy użyciu danych syntetycznych

Hiperparametry (konfigurowalne osie)

Liczba i różnorodność typów zadańKrytyczna

Liczba i różnorodność typów zadań uwzględnionych w zbiorze danych instrukcji. Badania ablacyjne przedstawione w Wei et al. (2021) oraz Chung et al. (2022) wykazują, że większa liczba klastrów zadań systematycznie poprawia generalizację zero-shot na niewidzianych wcześniej zadaniach.

62 task clusters (FLAN 2021)Original FLAN paper: 62 NLP datasets across 12 task clusters
1836 tasks (Flan 2022/Flan-T5)Scaling instruction fine-tuning: Chung et al. 2022
Model scaleKrytyczna

Liczba parametrów wstępnie wytrenowanego modelu bazowego. Wei et al. (2021) wykazali, że korzyści płynące z uogólniania podczas dostrajania przez instrukcje rosną wraz ze skalą modelu, przy czym mniejsze modele wykazują minimalne usprawnienia.

8B parametersCommon scale for open instruction-tuned models (e.g., Llama-3-8B-Instruct)
137B parametersScale used in original FLAN experiments (LaMDA-PT)
Liczba przykładów treningowychWysoka

Łączna liczba przykładów (instrukcja, odpowiedź) wykorzystanych do fine-tuningu. Instruction tuning może być skuteczny przy stosunkowo niewielkich zbiorach danych (od tysięcy do setek tysięcy przykładów) w porównaniu z pretrainingiem.

~13,000InstructGPT SFT dataset (Ouyang et al. 2022)
~52,000Stanford Alpaca dataset
~1,000,000+Large-scale instruction datasets (e.g., FLAN mixture)
Włączanie danych chain-of-thoughtWysoka

Określa, czy przykłady chain-of-thought (CoT) są uwzględniane w mieszance danych do instruction tuningu. Chung et al. (2022) wykazali, że włączenie danych CoT znacząco poprawia zdolności rozumowania oraz wydajność zero-shot CoT, nie obniżając przy tym wyników na innych benchmarkach.

No CoTStandard task-instruction pairs only
With CoT examplesMix of standard instructions and step-by-step reasoning examples
Learning rateWysoka

Rozmiar kroku aktualizacji gradientu podczas SFT. Dostrajanie na instrukcjach zazwyczaj wykorzystuje mniejsze współczynniki uczenia niż pretrening, aby uniknąć katastrofalnego zapominania wiedzy zdobytej podczas pretreningu.

1e-5 to 3e-5Typical range for full fine-tuning of large LLMs
2e-4 to 1e-3Typical range for LoRA/PEFT-based instruction tuning

Równoległość

Poziom równoległości
W pełni równoległy

Instruction tuning to standardowa procedura nadzorowanego fine-tuningu. Przykłady treningowe są niezależne i mogą być przetwarzane równolegle na GPU/TPU z wykorzystaniem data parallelism i tensor parallelism. Między przykładami treningowymi nie występują żadne zależności sekwencyjne.

Zakres
Trening

Wymagania sprzętowe

Podstawowe

Instruction tuning jest obliczeniowo równoważne nadzorowanemu dostrajaniu (supervised fine-tuning) dużego modelu językowego. Dominującym sprzętem dla tego typu obciążeń są GPU Tensor Cores, obsługujące mieszaną precyzję (BF16/FP16) operacji macierzowych wymaganych przy dostrajaniu transformerów.

Dobry fit

Eksperymenty z instruction tuning na dużą skalę (np. Flan-PaLM 540B, Flan-T5) były przeprowadzane na klastrach TPU w Google. TPU zapewniają wysoką przepustowość dla wielkoskalowego SFT i są dobrze wspierane przez JAX/Flax oraz PyTorch XLA.