LLM Training
To są moje notatki z bardzo polecanej książki https://www.manning.com/books/build-a-large-language-model-from-scratch z dodatkowymi informacjami.
Basic Information
Powinieneś zacząć od przeczytania tego posta, aby poznać podstawowe pojęcia, które powinieneś znać:
0. Basic LLM Concepts1. Tokenization
Celem tej początkowej fazy jest bardzo proste: Podzielić dane wejściowe na tokeny (id) w sposób, który ma sens.
2. Data Sampling
Celem tej drugiej fazy jest bardzo proste: Próbkować dane wejściowe i przygotować je do fazy treningowej, zazwyczaj dzieląc zbiór danych na zdania o określonej długości i generując również oczekiwaną odpowiedź.
3. Token Embeddings
Celem tej trzeciej fazy jest bardzo proste: Przypisać każdemu z poprzednich tokenów w słowniku wektor o pożądanych wymiarach do trenowania modelu. Każde słowo w słowniku będzie punktem w przestrzeni o X wymiarach. Zauważ, że początkowo pozycja każdego słowa w przestrzeni jest po prostu inicjowana "losowo", a te pozycje są parametrami, które można trenować (będą poprawiane podczas treningu).
Ponadto, podczas osadzania tokenów tworzona jest kolejna warstwa osadzeń, która reprezentuje (w tym przypadku) absolutną pozycję słowa w zdaniu treningowym. W ten sposób słowo w różnych pozycjach w zdaniu będzie miało różne reprezentacje (znaczenia).
4. Attention Mechanisms
Celem tej czwartej fazy jest bardzo proste: Zastosować pewne mechanizmy uwagi. Będą to liczne powtarzające się warstwy, które będą uchwytywać relację słowa w słowniku z jego sąsiadami w bieżącym zdaniu używanym do trenowania LLM. Do tego celu używa się wielu warstw, więc wiele parametrów do trenowania będzie uchwytywać te informacje.
5. LLM Architecture
Celem tej piątej fazy jest bardzo proste: Opracować architekturę pełnego LLM. Połączyć wszystko, zastosować wszystkie warstwy i stworzyć wszystkie funkcje do generowania tekstu lub przekształcania tekstu na ID i odwrotnie.
Ta architektura będzie używana zarówno do trenowania, jak i przewidywania tekstu po jego wytrenowaniu.
6. Pre-training & Loading models
Celem tej szóstej fazy jest bardzo proste: Wytrenować model od podstaw. W tym celu zostanie użyta wcześniejsza architektura LLM z pewnymi pętlami przechodzącymi przez zbiory danych, używając zdefiniowanych funkcji straty i optymalizatora do trenowania wszystkich parametrów modelu.
7.0. LoRA Improvements in fine-tuning
Użycie LoRA znacznie redukuje obliczenia potrzebne do dostosowania już wytrenowanych modeli.
7.1. Fine-Tuning for Classification
Celem tej sekcji jest pokazanie, jak dostosować już wytrenowany model, aby zamiast generować nowy tekst, LLM podałby prawdopodobieństwa, że dany tekst zostanie zaklasyfikowany w każdej z podanych kategorii (na przykład, czy tekst jest spamem, czy nie).
7.2. Fine-Tuning to follow instructions
Celem tej sekcji jest pokazanie, jak dostosować już wytrenowany model do przestrzegania instrukcji zamiast tylko generować tekst, na przykład, odpowiadając na zadania jako chatbot.
Last updated