Як влаштовані великі мовні моделі (LLM): від токенізації до генерації тексту

Привіт:) Сучасні великі мовні моделі (Large Language Models, або LLM), такі як GPT-X, Claude X.X, Gemini чи Llama X, за останні роки кардинально змінили підхід до розробки програмного забезпечення, аналізу даних та створення контенту. Для користувача взаємодія зі штучним інтелектом виглядає як діалог із живим співрозмовником: ви надсилаєте запит (промпт) — і за частки секунди отримуєте зв'язаний текст, готовий код чи розв'язок логічної задачі. Проте за цим стоїть чітка математика та алгоритми.

LLM не "мислять" у людському розумінні — це потужні статистичні машини, передбачувальний механізм яких зводиться до одного: визначити, яке слово (або частина слова) має йти наступним. Всередині LLM немає свідомості чи розуміння суті речей. З технічного погляду велика мовна модель — це складний, високопараметризований імовірнісний авторегресійний алгоритм. Головна математична задача LLM зводиться до одного: обчислити ймовірність появи наступного токена на основі всього попереднього контексту.

Contents:

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

1. Токенізація: Перетворення тексту на математичні ідентифікатори ✂️

Обчислювальні процесори (CPU/GPU) та нейронні мережі не здатні напряму опрацьовувати символи чи слова. Першим етапом обробки будь-якого вхідного тексту є токенізація — процес розбиття суцільного рядка на окремі смислові фрагменти (токени) та їх заміна на числові ідентифікатори (ID).

Алгоритм BPE (Byte Pair Encoding)

Більшість сучасних LLM використовують різновиди алгоритму BPE (Byte Pair Encoding) або WordPiece. Принцип роботи BPE полягає в наступному:

  1. Створюється базовий словник, що складається з усіх окремих символів (літер, розділових знаків, спецсимволів).
  2. Алгоритм підраховує найпоширеніші пари послідовних символів і об'єднує їх у нові токени.
  3. Процес повторюється до досягнення заданого розміру словника (зазвичай від 32,000 до 128,000 унікальних токенів).

Це дозволяє моделі ефективно кодувати поширені слова цілком, а рідкісні або незнайомі терміни ділити на підслова (subwords).

Вхідне слово / ФразаТокени (Subword Split)Numeric ID (Приклад)
програмуванняпрограм, ування[14205, 8812]
LLML, LM[43, 981]
оптимізаціяоптиміз, ація[22104, 5102]

💡 Особливості токенізації для кирилиці. Оскільки більшість відкритих мовних моделей тренувалися переважно на англомовному сегменті інтернету, їхні словники містять менше готових кириличних слів. Через це, наприклад, українські тексти часто розбиваються на дрібніші токени, що збільшує витрати токенів на один запит та зменшує ефективне контекстне вікно.

back to contents ↑

2. Векторні ембеддінги та Positional Encoding: Надання токенам значення 📍

Після токенізації ми отримуємо вектор із цілих чисел [14205, 8812]. Проте самі по собі ID не несуть жодної інформації про значення слів. Для моделі ID 14205 та ID 14206 — це просто два довільних номери, між якими немає математичного зв'язку.

Щоб надати токенам семантичного сенсу, застосовуються векторні ембеддінги (Word Embeddings).

back to contents ↑

Семантичний векторний простір

Кожен ID токена відображається у вектор високої розмірності (наприклад, 4096, 8192 або 12288 чисел у сучасних моделях). У цьому багатовимірному просторі векторні координати відображають смислові властивості слова.

Знаменита семантична арифметика ембеддінгів чудово ілюструє цей принцип:

Vector("Король")Vector("Чоловік")+Vector("Жінка")Vector("Королева")Vector("Король") — Vector("Чоловік") + Vector("Жінка") ≈ Vector("Королева")

Слова зі схожим контекстом використання (наприклад, "кіт" і "собака", "розробник" і "програміст") розташовуються у векторному просторі близько одне до одного.

back to contents ↑

Позиційне кодування (Positional Encoding)

За своєю природою нейромережа обробляє всі ембеддінги у вхідній послідовності паралельно і не має вродженого розуміння порядку слів. Проте порядок докорінно змінює зміст:

  • "Кіт їсть мишу"
  • "Миша їсть кота"

Щоб зберегти структуру речення, до кожного вектора ембеддінгу додається вектор позиційного кодування (Positional Encoding). Сучасні архітектури використовують просунуті методи позиціонування, такі як RoPE (Rotary Position Embedding) або ALiBi, які дозволяють моделям ефективно працювати з контекстними вікнами розміром у сотні тисяч і мільйони токенів.

back to contents ↑

3. Серце LLM: Архітектура Transformer та механізм Self-Attention 🧠

Революція в галузі штучного інтелекту відбулася у 2017 році з виходом фундаментальної праці науковців Google — "Attention Is All You Need". До цього в обробці природної мови (NLP) панували рекурентні нейронні мережі (RNN та LSTM), які обробляли текст послідовно (слово за словом), що робило їх повільними та непридатними для паралельного навчання на тисячах GPU.

Архітектура Transformer вирішила цю проблему завдяки відмові від рекурентності на користь механізму Self-Attention (самоувага).

back to contents ↑

Як працює механізм Self-Attention?

Self-Attention дозволяє кожному токену під час обробки "звертати увагу" на всі інші токени у реченні та зважувати їхню важливість для розуміння контексту.

Розглянемо речення:

Сервер відхилив запит розробника, тому що він був перевантажений.

До чого відноситься займенник "він"? До сервера чи до розробника? Завдяки Self-Attention модель розраховує математичні коефіцієнти зв'язку (ваги уваги). У даному контексті вага зв'язку між "він" та "сервер" буде значно вищою, ніж між "він" та "розробник". Якщо ж змінити кінець речення на "...тому що він припустився помилки в синтаксисі", ваги уваги миттєво перерозподіляться на слово "розробник".

Математично для кожного токена створюються три вектори:

  1. Query (Запит, $Q$): що токен шукає в контексті.
  2. Key (Ключ, K): яку інформацію пропонує токен.
  3. Value (Значення, V): змістовна інформація, яка передається далі.

Формула розрахунку уваги (Scaled Dot-Product Attention):

back to contents ↑

Multi-Head Attention (Багатоголовочна увага)

LLM виконують цей процес не один раз, а паралельно через десятки "голів уваги" (Multi-Head Attention). Одна голова може відстежувати граматичні зв'язки, друга — хронологію подій, третя — синонімічні відношення, четверта — тип об'єкта що описується. Сума цих результатів дає глибоке об'ємне розуміння контексту.

4. Основні типи архітектур Transformer 🏛️

Залежно від задачі, трансформери поділяються на три основні родини:

Тип архітектуриПредставникиПринцип роботиОсновні задачі
Encoder-OnlyBERT, RoBERTaДвонаправлена обробка (бачить контекст і зліва, і справа).Класифікація текстів, аналіз тональності, пошуковий індекс.
Decoder-OnlyGPT-4, Llama 3, Claude, MistralОднонаправлена авторегресійна обробка (бачить лише попередні токени).Генеративні задачі, написання коду, діалогові системи, написання текстів.
Encoder-DecoderT5, BART, WhisperЕнкодер стискає вхідний текст, декодер ґенерує новий текст на його основі.Машинний переклад, сумаризація, розпізнавання мовлення.

Більшість сучасних чат-ботів та універсальних штучних інтелектів побудовані саме на архітектурі Decoder-Only.

back to contents ↑

5. Три етапи навчання великих мовних моделей (Training Pipeline) 🎓

Створення сучасної LLM — це багатомільйонний процес, який вимагає гігаватів електроенергії, кластерів із тисяч відеокарт (наприклад, Nvidia H100/B200) та трьох послідовних етапів підготовки.

back to contents ↑

Етап 1: Pre-training (Попереднє навчання)

  • Мета: навчити модель мови, структури світу, фактів та базової логіки.
  • Дані: терабайти текстових даних (веб-сторінки, бази даних, Вікіпедії, відкриті репозиторії коду, книги).
  • Процес: модель навчається в режимі Unsupervised Learning (без вчителя). Їй дають початок тексту і вимагають вгадати наступне слово. Порівнюючи своє передбачення з реальним текстом, модель коригує мільярди своїх внутрішніх ваг (параметрів).

⚠️ На виході з етапу Pre-training ми отримуємо так звану Base Model (Базову модель). Вона чудово продовжує тексти, але ще не вміє відповідати на запитання. Якщо ви спитаєте таку модель: "Яка столиця Франції?", вона може не відповісти "Париж", а продовжити списком: "Яка столиця Іспанії? Яка столиця Італії?", бо сприйме ваш запит як початок тест-вікторини.

back to contents ↑

Етап 2: Supervised Fine-Tuning (SFT / Інструктивне донавчання)

  • Мета: навчити модель працювати в режимі "запитання-відповідь" (Instruction Following) та дотримуватися діалогового формату.
  • Дані: сотні тисяч високоякісних розмічених пар Prompt - Ideal Response, створених експертами-анотаторами.
  • Процес: модель перенавчається на якісних діалогах. Після SFT вона стає Instruct-моделлю і вже розуміє, що від неї вимагають виконання конкретної інструкції.
back to contents ↑

Етап 3: RLHF (Reinforcement Learning from Human Feedback) та DPO

  • Мета: узгодити відповіді моделі з людськими вподобаннями, зробити її корисною, точною та безпечною (усунути токсичність, шкідливі поради та відверту брехню).
  • Процес:
    1. Модель генерує кілька варіантів відповідей на один промпт.
    2. Люди-оцінювачі (або спеціальна оціночна модель у випадку RLAIF) ранжують варіанти від найкращого до найгіршого.
    3. На цих оцінках тренується Reward Model (Модель винагороди).
    4. Початкова LLM коригує свої ваги за допомогою алгоритмів оптимізації (наприклад, PPO або DPO — Direct Preference Optimization), щоб отримувати максимальну винагороду за якісні відповіді.
back to contents ↑

6. Процес генерації тексту та керування відбором токенів 🎲

Коли модель навчена і ви надсилаєте їй запит, на кожному кроці авторегресійного циклу вона видає не один токен, а розподіл ймовірностей для кожного слова зі свого словника за допомогою функції Softmax.

Наприклад, для фрази "Найкраща мова для веб-розробки — це..." модель оцінить ймовірності наступного токена так:

  • JavaScript: 45%
  • Python: 25%
  • PHP: 15%
  • кавун: 0.00001%

Щоб керувати тим, який саме токен буде обрано, використовують три основні гіперпараметри інференсу:

back to contents ↑

Temperature (Температура)

Параметр, що масштабує розподіл ймовірностей перед вибором:

  • Temperature = 0.0 (Greedy Search): Модель завжди обирає токен із найвищою ймовірністю (100% детермінованість). Ідеально для програмування, математики та сухих фактів.
  • Temperature = 0.7–1.0: Розподіл стає більш плоским. Збільшується шанс вибору менш очевидних токенів. Відповіді стають різноманітнішими та креативнішими.
  • Temperature > 1.5: Модель починає обирати малоймовірні слова, що призводить до втрати логіки та згенерованого "марення".
back to contents ↑

Top-K Sampling

Обмежує вибір лише K найімовірнішими токенами. Якщо Top-K = 50, модель повністю ігнорує весь словник, крім 50 лідерів, і перерозподіляє ймовірності між ними.

Top-P Sampling (Nucleus Sampling)

Замість фіксованої кількості слів, модель відбирає мінімальний набір найімовірніших токенів, сумарна ймовірність яких досягає значення P (наприклад, 0.9 або 90%). Якщо перше слово вже має ймовірність 92%, вибиратиметься лише воно. Якщо ж є багато спірних варіантів, список вибору розширюється.

7. Чому LLM "галюцинують" та як це вирішують? ⚠️

Одна з найбільших проблем мовних моделей — галюцинації. Це ситуації, коли LLM із впевненим тоном генерує переконливо написані факти, які є повністю вигаданими або помилковими.

Причини галюцинацій

  1. Імовірнісна природа: Модель не перевіряє факти за базою даних — вона лише підбирає статистично правдоподібні послідовності токенів.
  2. Застарілі або суперечливі дані навчання: Якщо в навчальному корпусі містилася помилкова інформація, модель відтворить її.
  3. Ефект "придагоджування" (Sycoancy): Модель прагне догодити користувачеві й підтвердити його хибні припущення, закладені в запиті.
back to contents ↑

Як боротися з галюцинаціями?

  • RAG (Retrieval-Augmented Generation): Поєднання LLM із зовнішньою векторною базою даних. Перед генерацією відповіді система шукає реальні документи у вашій базі, вставляє їх у контекст промпту і вимагає від моделі відповідати виключно на основі наданих фактів.
  • System Prompts: Чіткі інструкції на кшталт: "Якщо ти не знаєш точної відповіді на основі наведеного тексту, відповідай: "Я не володію цією інформацією".
  • Chain-of-Thought (LRT / Reasoning models): Спонукання моделі розбивати задачу на послідовні кроки міркування перед видачею остаточної відповіді (наприклад, як це реалізовано в серії моделей OpenAI o1 / o3 чи DeepSeek R1).
back to contents ↑

8. FAQ: Часті запитання про роботу LLM ❓

Чим відрізняється LLM від звичайної бази даних?

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

Що таке контекстне вікно (Context Window)?

Контекстне вікно — це максимальний обсяг тексту (у токенах), який модель здатна утримувати в пам'яті одночасно під час обробки запиту (включаючи історію листування, системний промпт та згенеровану відповідь). У сучасних моделей розмір контекстного вікна варіюється від 8 000 до 2 000 000+ токенів.

Що означає кількість параметрів у назві моделі (наприклад, 7B, 70B, 405B)?

Параметри (Weights) — це числові коефіцієнти всередині нейронної мережі, які коригуються під час навчання. "7B" означає 7 мільярдів параметрів. Як правило, чим більше параметрів має модель, тим краще вона справляється зі складними логічними задачами, знає більше фактів та краще розуміє нюанси мови, але й вимагає значно більше обчислювальної пам'яті (VRAM) для запуску.

back to contents ↑

Чому LLM іноді погано рахують букви у словах або розв'язують прості математичні задачі?

Це прямий наслідок токенізації. Модель бачить слово не як набір окремих літер, а як цілісний токен-ідентифікатор. Наприклад, для моделі слово "програмування" — це два блоки [14205, 8812]. Вона буквально vне бачить" окремих літер всередині токена без додаткового побуквеного аналізу.

back to contents ↑

Висновки 🎯

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

Розуміння архітектури Transformer, механізмів Self-Attention, алгоритмів токенізації та етапів RLHF дозволяє розробникам та інженерам формулювати якісніші промпти, проектувати надійні RAG-системи, мінімізувати галюцинації та ефективно інтегрувати штучний інтелект у власні продуктові рішення.

Михайло Петров
Михайло Петров

Мене звати Михайло. Я — WordPress-розробник. Створюю візитки, корпоративні сайти, інтернет-магазини, блоги на WordPress. Надаю консультації з WordPress.