Blog

Як працюють LLM? Токенізація, вектори й генерація

Як працюють ChatGPT та інші великі мовні моделі? Зрозуміло про токенізацію, ембединги, attention, ймовірності та кращі промпти.
Як працюють LLM? Токенізація, вектори й генерація
8 min read

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

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

Токенізація: поділ мови на одиниці

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

Візьмімо українське речення:

Цю частину процесу легко пояснити.

Токенізатор OpenAI o200k_base ділить його на одинадцять токенів:

["Ц", "ю", " част", "ину", " процес", "у", " легко", " пояс", "н", "ити", "."]

Початкові пробіли в деяких елементах є частиною токена. Інша модель або інший токенізатор може поділити той самий текст інакше. Тому відоме правило «один токен – приблизно чотири символи» є лише приблизною оцінкою для англійської. Для української, чеської чи інших мов співвідношення може суттєво відрізнятися.

Можна поекспериментувати в Tokenizer від OpenAI. У своєму поясненні про токени OpenAI також нагадує, що на поділ впливають пробіли, регістр, частини слів і пунктуація.

Що варто запам’ятати?

  • Токен – не те саме, що слово.
  • Поділ залежить від конкретного токенізатора й точного рядка символів.
  • Велика літера, початковий пробіл або спеціальний знак можуть змінити токени.
  • Довгі або рідкісні в навчальних даних форми частіше діляться на кілька фрагментів.
  • Кількість токенів впливає на контекстне вікно, обчислювальні витрати й часто на вартість API.

Тут потрібне важливе уточнення. Токенізатор ще не розуміє значення. Українське слово «коса» може означати зачіску, інструмент або вузьку смугу суходолу. За однакового написання й положення воно не отримує автоматично інший токен лише через інший сенс. Це наступні шари моделі використовують контекст речення, щоб побудувати різні представлення.

Отже, токенізація не перекладає мову у значення. Вона розрізає сировину на пронумеровані частини.

Ембединги: від ідентифікаторів до точок у векторному просторі

ID токена спочатку є лише індексом. Число, пов’язане з фрагментом «Ц», саме собою нічого не означає. Щоб нейронна мережа могла з ним працювати, вона зіставляє токену вектор – список багатьох чисел. Таке представлення називається ембедингом.

Навіщо список замість одного числа? В алфавітному переліку «лампа» могла б опинитися ближче до «лама», ніж до «абажур». Для роботи з мовою від цього мало користі. У багатовимірному просторі система може навчитися представлень, у яких подібні способи використання утворюють схожі числові конфігурації.

Для уявного експерименту вигадуймо дві осі:

  • Наскільки щось конкретне або абстрактне?
  • Частіше воно з’являється в позитивному чи негативному контексті?

Тоді «лампа» й «абажур» могли б лежати ближче одне до одного, ніж до слова «надія». Але справжні моделі не отримують тисячі підписаних людьми осей. Під час навчання вони засвоюють числові характеристики, які допомагають зменшувати помилку прогнозування. Окремий вимір не означає просто «матеріальність» чи «доброзичливість».

І найважливіше: початковий ембединг – ще не остаточне значення. Токен «коса» стартує з того самого базового представлення. Проте під час проходження крізь шари Transformer його змінюють сусідні токени. У реченні «Вона заплела довгу косу» виникне інший контекстний патерн, ніж у реченні «Фермер нагострив косу».

Google у своєму матеріалі про статичні й контекстні ембединги пояснює саме цю різницю. Це точніше за уявлення, ніби кожне слово назавжди має одну зрозумілу людині точку в просторі.

Кількість вимірів залежить від моделі та шару. Немає загального правила, за яким сучасна LLM приписує кожному токену рівно 12 000 «параметрів значення».

Чому тут корисні GPU? Не тому, що вони «бачать простір», а тому, що здатні паралельно виконувати величезну кількість операцій із матрицями й векторами. Саме з таких обчислень значною мірою складаються навчання та інференс.

Transformer і attention: які частини контексту важливі?

Сам вектор не розв’язує мовну задачу. Модель повинна врахувати зв’язки між токенами.

Візьмімо речення:

Хлопець, чия бабуся позавчора купила мотоцикл Harley-Davidson, їде до школи на пагорбі.

Хто їде? Хлопець. Що купили? Мотоцикл. Хто купив? Бабуся. Пов’язані слова не завжди стоять поруч.

Тут працює self-attention, або механізм самоуваги. Для кожного токена Transformer обчислює запит, ключ і значення – query, key та value. Дуже спрощено: він визначає, яку вагу мають отримати інші позиції під час оновлення поточного представлення. Кілька голів attention можуть одночасно вивчати різні типи зв’язків.

Опублікована 2017 року стаття Attention Is All You Need не винайшла будь-яку увагу в нейронних мережах. Її проривом стала архітектура Transformer без рекурентності й згорток, яка дала змогу значно краще паралелізувати обробку послідовностей.

Transformer також не «читає» як редактор. Він обчислює ваги й перетворює вектори. Деякі патерни attention можна змістовно інтерпретувати після обчислення, але висока вага сама собою не пояснює повністю, чому модель дала саме таку відповідь.

Корисніша ментальна модель виглядає так:

  • токенізація дає фрагменти тексту;
  • ембединги перетворюють їх на числові представлення;
  • позиційна інформація показує місце кожного фрагмента;
  • self-attention домішує до кожного представлення релевантні частини контексту;
  • численні шари повторюють цей процес і будують дедалі багатші контекстні патерни.

Генерація: спочатку розподіл, потім вибір

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

Початок

Хороша рекламна кампанія – це…

може мати кілька правдоподібних завершень:

  • «… кампанія, яка продає»;
  • «… інвестиція, а не витрата»;
  • «… основа сталого зростання»;
  • «… рішення, не краще за проблему, яку воно розв’язує».

Цей список – навчальний приклад, а не вимірювання конкретної моделі. У справжній системі стратегія декодування або семплінгу вибирає токен із розрахованого розподілу. Новий токен додається до контексту, і розрахунок починається знову. Текст виникає токен за токеном.

Часто згадують два параметри:

  • Температура змінює форму розподілу. Нижче значення сильніше концентрує вибір на ймовірних токенах, вище робить доступнішими менш імовірні варіанти. Вона не додає моделі знань чи творчості, а змінює випадковість вибору.
  • top_p означає nucleus sampling. Кандидатами залишаються лише токени з найменшої множини, сукупна ймовірність якої сягає заданого порогу. За top_p: 0.9 лишається множина, що охоплює щонайменше 90% імовірності.

OpenAI описує обидва параметри в документації API. Звичайний інтерфейс ChatGPT не обов’язково показує їх користувачеві. Персоналії, стилі письма й рівні міркування не є просто іншими назвами температури та top_p: вони можуть залежати від додаткових системних інструкцій, моделей і процесів.

Що це означає для промптів?

Коли зрозуміло, що в основі модель генерує продовження токен за токеном, промптинг менше нагадує читання думок і більше – якісний бриф.

Якщо написати лише:

Створи стратегію бренду.

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

Конкретна вихідна ситуація змінює релевантний контекст:

Ви стратег бренду. Ви працюєте з українською B2B-компанією, що продає програмне забезпечення й після зміни позиціювання втратила 20% кваліфікованих лідів. Спершу проаналізуйте три можливі причини. Якщо бракує даних про аудиторію, процес купівлі або конкурентів, поставте уточнювальні запитання. Поки що не пишіть готову стратегію.

Модель не стала розумнішою. Але вона отримала більше інформації для вибору продовжень, що відповідають завданню.

Так само працює стиль:

Тон: предметний і точний, із легкою іронією. Без коучингової лексики, знаків оклику та фрази «у світі, що стрімко змінюється».

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

Межі важливіші за магічні формули

Коли модель чогось не знає, інструкція «Нічого не вигадуй» не гарантує правильної відповіді. Вона все одно може створити правдоподібне, але неіснуюче джерело, число чи визначення. Хороші обмеження знижують ризик, а не усувають його.

Корисніша інструкція, результат якої можна перевірити:

Використовуйте лише додані джерела. Кожне число підтверджуйте назвою документа й розділом. Якщо джерел недостатньо, прямо назвіть відсутню інформацію й не доповнюйте відповідь припущеннями.

Після цього правило незмінне: відкрити джерело, перевірити твердження, взяти на себе відповідальність.

Сучасні ШІ-продукти, крім того, складаються не лише з «голої» мовної моделі. На результат впливають системні інструкції, пошук у документах, вебпошук, інструменти, правила безпеки й додаткові етапи міркування. Базова модель і далі генерує токени, але продукт може виконувати іншу роботу до, під час і після генерації.

На практиці хороший бриф нагадує інструкції для дуже швидкого, начитаного й часом лячно самовпевненого співробітника:

  • Яке завдання?
  • Який контекст важливий?
  • Які джерела дозволено?
  • Якою має бути форма результату?
  • Коли система має зупинитися й запитати?
  • Хто перевірить результат?

Не штучний розум, а корисна модель

Історія штучного інтелекту – не розповідь про раптове пробудження машини. Це історія терплячого перетворення складності на форму, яку можна обчислити, перевірити й удосконалити.

Від простих штучних нейронів і правил IF–THEN через статистичні моделі та backpropagation до Transformer і мультимодальних систем – кожен етап виконував одні обіцянки й не виконував інших. Багато ідей потрапляли не у смітник, а на полицю з написом «надто рано».

Сучасні мовні моделі – не кінець цієї історії. Кілька старих ідей уперше працюють одночасно: величезні масиви даних, придатна архітектура, потужне обладнання й масштабне навчання. Через це статистика починає скидатися на компетентність.

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

Це пересуває межу між мисленням і виконанням. Там, де раніше людина вручну писала двадцять варіантів, система створює їх за секунди. Рішення від цього не стає менш важливим – воно стає видимішим: який варіант правдивий? Який належить бренду? Який узагалі варто публікувати?

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

Таке відлуння може відповідати напрочуд добре. Якщо ви поставите змістовне запитання й умієте перевірити відповідь.

Інші статті про співпрацю із ШІ

Paul Skah

Автор

Paul Skah

Бренд-стратег, письменник і публічний спікер. Уже 20 років допомагаю компаніям будувати сильні бренди через сторітелінг, гейміфікацію та психологію споживача.

ПоділитисяFacebookLinkedInThreads

Розсилка

Хочете більше таких текстів?

Одна корисна ідея за раз — про бренди, вибір, історії та штучний інтелект. Пишу тоді, коли є що розвивати, а не щоб заповнити календар.