LLM Training

Ovo su moje beleške iz veoma preporučene knjige https://www.manning.com/books/build-a-large-language-model-from-scratch sa dodatnim informacijama.

Osnovne informacije

Trebalo bi da počnete čitanjem ovog posta za neke osnovne koncepte koje treba da znate:

0. Basic LLM Concepts

1. Tokenizacija

Cilj ove inicijalne faze je veoma jednostavan: Podeliti ulaz u tokene (id-ove) na način koji ima smisla.

1. Tokenizing

2. Uzorkovanje podataka

Cilj ove druge faze je veoma jednostavan: Uzorkovati ulazne podatke i pripremiti ih za fazu obuke obično razdvajanjem skupa podataka na rečenice određene dužine i generisanjem očekivanog odgovora.

https://github.com/HackTricks-wiki/hacktricks/blob/rs/todo/llm-training-data-preparation/2.-data-sampling.md

3. Token Umetanja

Cilj ove treće faze je veoma jednostavan: Dodeliti svakom od prethodnih tokena u rečniku vektor željenih dimenzija za obuku modela. Svaka reč u rečniku će biti tačka u prostoru X dimenzija. Napomena: inicijalno je pozicija svake reči u prostoru "nasumično" inicijalizovana i te pozicije su parametri koji se mogu obučavati (biće poboljšani tokom obuke).

Pored toga, tokom umetanja tokena stvara se još jedan sloj umetanja koji predstavlja (u ovom slučaju) apsolutnu poziciju reči u rečenici za obuku. Na ovaj način, reč na različitim pozicijama u rečenici će imati različitu reprezentaciju (značenje).

3. Token Embeddings

4. Mehanizmi pažnje

Cilj ove četvrte faze je veoma jednostavan: Primena nekih mehanizama pažnje. Ovi mehanizmi će biti mnogo ponovljenih slojeva koji će uhvatiti odnos reči u rečniku sa njenim susedima u trenutnoj rečenici koja se koristi za obuku LLM-a. Za ovo se koristi mnogo slojeva, tako da će mnogo parametara koji se mogu obučavati uhvatiti ove informacije.

4. Attention Mechanisms

5. LLM Arhitektura

Cilj ove pete faze je veoma jednostavan: Razviti arhitekturu celog LLM-a. Spojiti sve, primeniti sve slojeve i kreirati sve funkcije za generisanje teksta ili transformaciju teksta u ID-ove i obrnuto.

Ova arhitektura će se koristiti i za obuku i za predikciju teksta nakon što je obučena.

5. LLM Architecture

6. Predobuka i učitavanje modela

Cilj ove šeste faze je veoma jednostavan: Obučiti model od nule. Za ovo će se koristiti prethodna LLM arhitektura sa nekim petljama koje prolaze kroz skupove podataka koristeći definisane funkcije gubitka i optimizator za obuku svih parametara modela.

https://github.com/HackTricks-wiki/hacktricks/blob/rs/todo/llm-training-data-preparation/6.-pre-training-and-loading-models.md

7.0. LoRA poboljšanja u finom podešavanju

Korišćenje LoRA značajno smanjuje računarske resurse potrebne za fino podešavanje već obučenih modela.

7.0. LoRA Improvements in fine-tuning

7.1. Fino podešavanje za klasifikaciju

Cilj ovog dela je pokazati kako fino podešavati već prethodno obučeni model tako da umesto generisanja novog teksta, LLM daje verovatnoće da dati tekst bude kategorizovan u svaku od datih kategorija (kao što je da li je tekst spam ili ne).

https://github.com/HackTricks-wiki/hacktricks/blob/rs/todo/llm-training-data-preparation/7.1.-fine-tuning-for-classification.md

7.2. Fino podešavanje za praćenje uputstava

Cilj ovog dela je pokazati kako fino podešavati već prethodno obučeni model da prati uputstva umesto samo generisanja teksta, na primer, odgovaranje na zadatke kao chatbot.

7.2. Fine-Tuning to follow instructions

Last updated