LLM Training

Це мої нотатки з дуже рекомендованої книги https://www.manning.com/books/build-a-large-language-model-from-scratch з деякою додатковою інформацією.

Basic Information

Вам слід почати з читання цього посту для деяких базових концепцій, які ви повинні знати:

0. Basic LLM Concepts

1. Tokenization

Мета цього початкового етапу дуже проста: Розділіть вхідні дані на токени (ідентифікатори) таким чином, щоб це мало сенс.

1. Tokenizing

2. Data Sampling

Мета цього другого етапу дуже проста: Вибірка вхідних даних і підготовка їх до етапу навчання, зазвичай шляхом розділення набору даних на речення певної довжини та також генерування очікуваної відповіді.

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

3. Token Embeddings

Мета цього третього етапу дуже проста: Призначити кожному з попередніх токенів у словнику вектор бажаних розмірів для навчання моделі. Кожне слово в словнику буде точкою в просторі X вимірів. Зверніть увагу, що спочатку позиція кожного слова в просторі просто ініціалізується "випадковим чином", і ці позиції є навчальними параметрами (будуть покращені під час навчання).

Більше того, під час вбудовування токенів створюється ще один шар вбудовувань, який представляє (в цьому випадку) абсолютну позицію слова в навчальному реченні. Таким чином, слово в різних позиціях у реченні матиме різне представлення (значення).

3. Token Embeddings

4. Attention Mechanisms

Мета цього четвертого етапу дуже проста: Застосувати деякі механізми уваги. Це будуть багато повторюваних шарів, які будуть фіксувати зв'язок слова в словнику з його сусідами в поточному реченні, що використовується для навчання LLM. Для цього використовується багато шарів, тому багато навчальних параметрів будуть фіксувати цю інформацію.

4. Attention Mechanisms

5. LLM Architecture

Мета цього п'ятого етапу дуже проста: Розробити архітектуру повного LLM. З'єднайте все разом, застосуйте всі шари та створіть усі функції для генерації тексту або перетворення тексту в ідентифікатори і назад.

Ця архітектура буде використовуватися як для навчання, так і для прогнозування тексту після його навчання.

5. LLM Architecture

6. Pre-training & Loading models

Мета цього шостого етапу дуже проста: Навчити модель з нуля. Для цього буде використана попередня архітектура LLM з деякими циклами, що проходять через набори даних, використовуючи визначені функції втрат і оптимізатор для навчання всіх параметрів моделі.

https://github.com/HackTricks-wiki/hacktricks/blob/ua/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 вибирав ймовірності того, що даний текст буде класифікований у кожну з наданих категорій (наприклад, чи є текст спамом чи ні).

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

7.2. Fine-Tuning to follow instructions

Мета цього розділу - показати, як тонко налаштувати вже попередньо навчена модель, щоб слідувати інструкціям, а не просто генерувати текст, наприклад, відповідати на завдання як чат-бот.

7.2. Fine-Tuning to follow instructions

Last updated