LLM Training - Data Preparation

Reading time: 3 minutes

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

Basic Information

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

0. Basic LLM Concepts

1. Tokenization

tip

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

1. Tokenizing

2. Data Sampling

tip

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

2. Data Sampling

3. Token Embeddings

tip

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

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

3. Token Embeddings

4. Attention Mechanisms

tip

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

4. Attention Mechanisms

5. LLM Architecture

tip

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

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

5. LLM Architecture

6. Pre-training & Loading models

tip

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

6. Pre-training & Loading models

7.0. LoRA Improvements in fine-tuning

tip

Використання LoRA значно зменшує обчислення, необхідні для тонкої настройки вже навчених моделей.

7.0. LoRA Improvements in fine-tuning

7.1. Fine-Tuning for Classification

tip

Мета цього розділу - показати, як тонко налаштувати вже попередньо навчену модель, щоб замість генерації нового тексту LLM вибирав ймовірності того, що даний текст буде класифікований у кожну з наданих категорій (наприклад, чи є текст спамом чи ні).

7.1. Fine-Tuning for Classification

7.2. Fine-Tuning to follow instructions

tip

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

7.2. Fine-Tuning to follow instructions