LLM Training
Це мої нотатки з дуже рекомендованої книги https://www.manning.com/books/build-a-large-language-model-from-scratch з деякою додатковою інформацією.
Basic Information
Вам слід почати з читання цього посту для деяких базових концепцій, які ви повинні знати:
0. Basic LLM Concepts1. 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