Головна / Статті / Практичні нотатки: Як насправді працюють LLM: токени, Transformerи та наступний токен

Практичні нотатки: Як насправді працюють LLM: токени, Transformerи та наступний токен

Покрокове керівництво з практичних нотаток: Як насправді працюють LLM: токени, Трансформери та наступний токен: контракти, перевірки та слоти для коду для команд, які використовують цю схему.

1391 слів

Цей посібник описує процес створення системи від сировини до готового продукту для книги «Як насправді працюють LLM: токени, Трансформери та прогнозування наступного токену!». Основна увага приділяється конкретним крокам виконання, чітким перевіркам та коду, який можна просто додати до репозиторію без необхідності здогадуватися щодо його призначення. На етапі огляду необхідно визначити вхідні дані, виконавця кроку та критерії завершення перед зміною коду. Виконавці мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись зрозуміти прихований стан системи. Краще використовувати невеликі, перевірювані одиниці коду замість об’ємних скриптів. Якщо крок завершується невдачею, причина має бути пов’язана з конкретною функцією, а не з ускладненою структурою процесу.

Що таке LLM?

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

Крок 1: Текст перетворюється на токени

Коли ви працюєте над етапом 1, спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Запишіть час виконання та витрати на токени або запити поруч із функціональними результатами. Чітке бачення витрат заздалегідь запобігає несподіваним рахункам, коли процес переходить від демо-версії до спільних середовищ. Зберігайте у кеші стабільні інструкції системи та схеми інструментів. Повторна передача ідентичних даних є поширеною причиною зайвих витрат.

"I" → token 1
"love" → token 2
"AI" → token 3
"unbelievable"
"un" + "believ" + "able"

Етап 2: Токени перетворюються на числа

Під час виконання кроку 2, коли токени перетворюються на етапи, спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність подальших змін у коді. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища секретів та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Зберігайте у кеші стабільні інструкції системи та схеми інструментів. Повторна передача ідентичних даних є поширеною причиною витрат ресурсів. Під час виконання кроку 2, коли токени перетворюються на етапи, спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність подальших змін у коді. Віддавайте перевагу невеликим, тестованим одиницям коду перед об’ємними скриптами. Коли якийсь крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на заплутану послідовність операцій.

"I"       → [0.12, -0.45, 0.78, ...]
"love"    → [0.91,  0.13, -0.22, ...]
"AI"      → [0.31,  0.72,  0.04, ...]

Крок 3: Transformer розуміє контекст

Етап Крок 3 у роботі Transformer працює найкраще, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок невдачі та примітку про скасування перед розширенням обсягу роботи. Розглядайте цей етап як угоду між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте мовчазного часткового виконання завдань. Встановіть ліміт токенів на кожен хід та сесію. Інструменти типу агентів активно розширюють контекст; жорсткі обмеження запобігають тому, щоб демонстрації перетворювалися на несподівані рахунки.

The dog chased the ball because it was excited.
 ↑                                      ↑
 └──────────── related ─────────────────┘

Крок 4: Прогнозування наступного токена

Крок 4 «Прогнозування етапу» найкраще функціонує, якщо його розглядати як вимірювану поверхню. Запишіть один ідеальний приклад роботи, один випадок збою та примітки щодо скасування змін перед розширенням обсягу завдань. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Візуалізація витрат заздалегідь запобігає несподіваним рахункам під час переходу від демо-версії до спільних середовищ. Визначте бюджет на токени на кожен хід та сеанс. Інструменти з агентним підходом активно розширюють контекст; жорсткі ліміти не дозволяють демо-версіям перетворюватися на несподівані рахунки.

mat       → 45%
floor     → 20%
chair     → 10%
table     → 5%
...
Read context
     ↓
Predict next token
     ↓
Add token to text
     ↓
Read updated context
     ↓
Predict next token
     ↓
Repeat...

Як же ШІ відповідає на складні запитання?

Отже, як найкраще функціонує етап роботи з ШІ, якщо ставитися до нього як до вимірюваної поверхні? Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Встановіть ліміти на кількість токенів за хід та за сеанс. Інструменти з агентним підходом активно розширюють контекст; жорсткі ліміти запобігають тому, що демонстрації перетворюються на несподівані рахунки. Отже, як найкраще функціонує етап роботи з ШІ, якщо ставитися до нього як до вимірюваної поверхні? Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Віддавайте перевагу малим, тестованим одиницям перед величезними скриптами. Коли якийсь крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на заплутану послідовність дій.

Повна картина

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

Your text
   ↓
Tokenization
   ↓
Tokens
   ↓
Numbers / Embeddings
   ↓
Transformer
   ↓
Understand relationships + context
   ↓
Predict next token
   ↓
Add token to response
   ↓
Predict again
   ↓
Repeat until the answer is complete

Одна важлива річ, яку потрібно пам’ятати

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

Щасливого програмування

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

Чек-лист операцій

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

Документуйте як шлях успішної роботи, так і шлях відновлення одночасно. Повторні спроби, людські контролі та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки.

Бюджет на токени за хід та за сеанс. Інструменти типу агентів активно розширюють контекст; жорсткі ліміти запобігають тому, щоб демонстрації перетворювалися на несподівані рахунки.

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

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

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

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

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