LLM Training - Data Preparation
Reading time: 3 minutes
Це мої нотатки з дуже рекомендованої книги https://www.manning.com/books/build-a-large-language-model-from-scratch з деякою додатковою інформацією.
Basic Information
Вам слід почати з прочитання цього посту для деяких базових концепцій, які ви повинні знати:
1. Tokenization
tip
Мета цього початкового етапу дуже проста: Розділіть вхідні дані на токени (ідентифікатори) таким чином, щоб це мало сенс.
2. Data Sampling
tip
Мета цього другого етапу дуже проста: Виберіть вхідні дані та підготуйте їх для етапу навчання, зазвичай розділяючи набір даних на речення певної довжини та також генеруючи очікувану відповідь.
3. Token Embeddings
tip
Мета цього третього етапу дуже проста: Призначте кожному з попередніх токенів у словнику вектор бажаних розмірів для навчання моделі. Кожне слово в словнику буде точкою в просторі X вимірів.
Зверніть увагу, що спочатку позиція кожного слова в просторі просто ініціалізується "випадковим чином", і ці позиції є параметрами, що підлягають навчання (будуть покращені під час навчання).
Більше того, під час вбудовування токенів створюється ще один шар вбудовувань, який представляє (в даному випадку) абсолютну позицію слова в навчальному реченні. Таким чином, слово в різних позиціях у реченні матиме різне представлення (значення).
4. Attention Mechanisms
tip
Мета цього четвертого етапу дуже проста: Застосувати деякі механізми уваги. Це будуть багато повторюваних шарів, які будуть фіксувати зв'язок слова в словнику з його сусідами в поточному реченні, що використовується для навчання LLM.
Для цього використовується багато шарів, тому багато параметрів, що підлягають навчання, будуть фіксувати цю інформацію.
5. LLM Architecture
tip
Мета цього п'ятого етапу дуже проста: Розробити архітектуру повного LLM. З'єднайте все разом, застосуйте всі шари та створіть усі функції для генерації тексту або перетворення тексту в ідентифікатори та назад.
Ця архітектура буде використовуватися як для навчання, так і для прогнозування тексту після його навчання.
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
Мета цього розділу - показати, як тонко налаштувати вже попередньо навчену модель для виконання інструкцій, а не просто генерувати текст, наприклад, відповідати на завдання як чат-бот.