LLM Training

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

Basic Information

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

1. Tokenization

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

2. Data Sampling

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

3. Token Embeddings

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

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

4. Attention Mechanisms

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

5. LLM Architecture

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

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

6. Pre-training & Loading models

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

7.0. LoRA Improvements in fine-tuning

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

7.1. Fine-Tuning for Classification

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

7.2. Fine-Tuning to follow instructions

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

Last updated