LLM Training - Przygotowanie Danych
Reading time: 3 minutes
To są moje notatki z bardzo polecanej książki https://www.manning.com/books/build-a-large-language-model-from-scratch z dodatkowymi informacjami.
Podstawowe Informacje
Powinieneś zacząć od przeczytania tego posta, aby poznać podstawowe pojęcia, które powinieneś znać:
1. Tokenizacja
tip
Cel tej początkowej fazy jest bardzo prosty: Podzielić dane wejściowe na tokeny (id) w sposób, który ma sens.
2. Próbkowanie Danych
tip
Cel tej drugiej fazy jest bardzo prosty: 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. Osadzenia Tokenów
tip
Cel tej trzeciej fazy jest bardzo prosty: 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 "losowo" inicjowana, 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 inną reprezentację (znaczenie).
4. Mechanizmy Uwagowe
tip
Cel tej czwartej fazy jest bardzo prosty: 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 aktualnym 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. Architektura LLM
tip
Cel tej piątej fazy jest bardzo prosty: Opracować architekturę całego 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 treningu, jak i przewidywania tekstu po jego wytrenowaniu.
6. Wstępne trenowanie i ładowanie modeli
tip
Cel tej szóstej fazy jest bardzo prosty: Wytrenować model od podstaw. W tym celu zostanie użyta wcześniejsza architektura LLM z pewnymi pętlami przechodzącymi przez zbiory danych, korzystając z określonych funkcji straty i optymalizatora do trenowania wszystkich parametrów modelu.
6. Pre-training & Loading models
7.0. Udoskonalenia LoRA w fine-tuningu
tip
Użycie LoRA znacznie redukuje obliczenia potrzebne do fine-tuningu już wytrenowanych modeli.
7.0. LoRA Improvements in fine-tuning
7.1. Fine-Tuning do Klasyfikacji
tip
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.1. Fine-Tuning for Classification
7.2. Fine-Tuning do wykonywania instrukcji
tip
Celem tej sekcji jest pokazanie, jak dostosować już wytrenowany model do wykonywania instrukcji zamiast tylko generować tekst, na przykład, odpowiadając na zadania jako chatbot.