LLM Training

Αυτές είναι οι σημειώσεις μου από το πολύ προτεινόμενο βιβλίο https://www.manning.com/books/build-a-large-language-model-from-scratch με κάποιες επιπλέον πληροφορίες.

Basic Information

Πρέπει να ξεκινήσετε διαβάζοντας αυτή την ανάρτηση για κάποιες βασικές έννοιες που πρέπει να γνωρίζετε:

0. Basic LLM Concepts

1. Tokenization

Ο στόχος αυτής της αρχικής φάσης είναι πολύ απλός: Διαιρέστε την είσοδο σε tokens (ids) με κάποιον τρόπο που έχει νόημα.

1. Tokenizing

2. Data Sampling

Ο στόχος αυτής της δεύτερης φάσης είναι πολύ απλός: Δειγματοληψία των δεδομένων εισόδου και προετοιμασία τους για τη φάση εκπαίδευσης, συνήθως διαχωρίζοντας το σύνολο δεδομένων σε προτάσεις συγκεκριμένου μήκους και δημιουργώντας επίσης την αναμενόμενη απάντηση.

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

3. Token Embeddings

Ο στόχος αυτής της τρίτης φάσης είναι πολύ απλός: Αναθέστε σε κάθε από τα προηγούμενα tokens στο λεξιλόγιο έναν διανύσμα των επιθυμητών διαστάσεων για να εκπαιδεύσετε το μοντέλο. Κάθε λέξη στο λεξιλόγιο θα είναι ένα σημείο σε έναν χώρο X διαστάσεων. Σημειώστε ότι αρχικά η θέση κάθε λέξης στο χώρο είναι απλώς αρχικοποιημένη "τυχαία" και αυτές οι θέσεις είναι εκπαιδεύσιμες παράμετροι (θα βελτιωθούν κατά τη διάρκεια της εκπαίδευσης).

Επιπλέον, κατά τη διάρκεια της ενσωμάτωσης tokens δημιουργείται ένα άλλο επίπεδο ενσωματώσεων που αντιπροσωπεύει (σε αυτή την περίπτωση) τη απόλυτη θέση της λέξης στην προτασούλα εκπαίδευσης. Με αυτόν τον τρόπο, μια λέξη σε διαφορετικές θέσεις στην πρόταση θα έχει διαφορετική αναπαράσταση (νόημα).

3. Token Embeddings

4. Attention Mechanisms

Ο στόχος αυτής της τέταρτης φάσης είναι πολύ απλός: Εφαρμόστε κάποιους μηχανισμούς προσοχής. Αυτοί θα είναι πολλά επανερχόμενα επίπεδα που θα συλλαμβάνουν τη σχέση μιας λέξης στο λεξιλόγιο με τους γείτονές της στην τρέχουσα πρόταση που χρησιμοποιείται για την εκπαίδευση του LLM. Χρησιμοποιούνται πολλά επίπεδα γι' αυτό, οπότε πολλές εκπαιδεύσιμες παράμετροι θα συλλαμβάνουν αυτές τις πληροφορίες.

4. Attention Mechanisms

5. LLM Architecture

Ο στόχος αυτής της πέμπτης φάσης είναι πολύ απλός: Αναπτύξτε την αρχιτεκτονική του πλήρους LLM. Συνδυάστε τα πάντα, εφαρμόστε όλα τα επίπεδα και δημιουργήστε όλες τις λειτουργίες για να παράγετε κείμενο ή να μετατρέπετε κείμενο σε IDs και αντίστροφα.

Αυτή η αρχιτεκτονική θα χρησιμοποιηθεί και για την εκπαίδευση και για την πρόβλεψη κειμένου μετά την εκπαίδευση.

5. LLM Architecture

6. Pre-training & Loading models

Ο στόχος αυτής της έκτης φάσης είναι πολύ απλός: Εκπαιδεύστε το μοντέλο από την αρχή. Για αυτό θα χρησιμοποιηθεί η προηγούμενη αρχιτεκτονική LLM με κάποιους βρόχους που θα διατρέχουν τα σύνολα δεδομένων χρησιμοποιώντας τις καθορισμένες συναρτήσεις απώλειας και τον βελτιστοποιητή για να εκπαιδεύσουν όλες τις παραμέτρους του μοντέλου.

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

7.0. LoRA Improvements in fine-tuning

Η χρήση του LoRA μειώνει πολύ την υπολογιστική ισχύ που απαιτείται για να βελτιώσετε ήδη εκπαιδευμένα μοντέλα.

7.0. LoRA Improvements in fine-tuning

7.1. Fine-Tuning for Classification

Ο στόχος αυτής της ενότητας είναι να δείξει πώς να βελτιώσετε ένα ήδη προεκπαιδευμένο μοντέλο έτσι ώστε αντί να παράγει νέο κείμενο, το LLM θα επιλέγει να δώσει τις πιθανότητες του δεδομένου κειμένου να κατηγοριοποιηθεί σε κάθε μία από τις δεδομένες κατηγορίες (όπως αν ένα κείμενο είναι spam ή όχι).

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

7.2. Fine-Tuning to follow instructions

Ο στόχος αυτής της ενότητας είναι να δείξει πώς να βελτιώσετε ένα ήδη προεκπαιδευμένο μοντέλο για να ακολουθεί οδηγίες αντί να παράγει απλώς κείμενο, για παράδειγμα, απαντώντας σε καθήκοντα ως chatbot.

7.2. Fine-Tuning to follow instructions

Last updated