Автор статьи — инженер с 25‑летним опытом — на примерах и метафорах объясняет, как устроены большие языковые модели (LLM). Он рассказывает, что суть работы LLM сводится к угадыванию следующего слова в предложении. Например, если ввести «Какая погода сегодня», модель переберёт варианты («солнечно», «дождливо» и т. д.) и выберет наиболее вероятный. Затем процесс повторяется: на основе уже полученного фрагмента строится следующий, и так формируется текст.
Ключевой механизм в LLM — механизм внимания (attention). Он помогает модели понять, на какие предыдущие слова стоит обратить особое внимание при выборе следующего. Например, в предложении «Я поставил вазу на полку, но она упала и разбилась» при использовании слова «она» модель акцентируется на слове «ваза», а не на «полка» или «расставленный».
Чтобы компьютер мог работать со словами, их преобразуют в координаты на «карте значений»: слова со схожим смыслом оказываются рядом, а далёкие по смыслу — на расстоянии. Например, «яблоки» и «апельсины» окажутся рядом, а «яблоки» и «самосвалы» — далеко друг от друга. Этот процесс называется встраиванием (embedding).
Сначала слова разбивают на фрагменты (токены) — процесс называется токенизацией (tokenization). Часто токен — это не целое слово, а его часть. Например, английское слово «невероятный» можно разбить на фрагменты, отражающие его составные части. Один из распространённых способов токенизации — BPE (парное кодирование байтов).
Модель многократно повторяет упражнение «угадай следующее слово» на огромном количестве текстов. В результате она самостоятельно выстраивает «карту значений»: слова, которые часто встречаются в схожем контексте, оказываются рядом. Например, фразы «ешьте яблоки», «ешьте апельсины» и «ешьте виноград» создают в модели общую область значений.
Работа LLM строится на взаимодействии двух компонентов: механизма внимания (который определяет, на что обратить внимание в предложении) и слоя памяти (который хранит знания и извлекает их для ответа). Автор сравнивает это с библиотекой: администратор (механизм внимания) указывает, на какую полку посмотреть, а библиотекарь (слой памяти) извлекает нужную информацию.
Знания в модели не хранятся в одном месте — они распределены по слоям и частям. Автор подчёркивает: его вклад заключается не в создании знаний, а в том, чтобы правильно обработать уже имеющееся содержимое и сделать механизм понятным. Он воссоздал небольшой LLM (llcore) и убедился, что его реализация даёт тот же результат, что и официальная версия (с нулевой ошибкой в пределах погрешности округления).
В следующих частях статьи автор планирует рассказать, как именно знания попадают в модель, почему длинные разговоры усложняют работу ИИ и как разработчики пытаются оптимизировать процесс.
あなたの
│
▼
① をかくむトークン ← 1
│
▼
② をのにえるめみ ← 1
│
▼
③ どのにするかめる ← 2 ★
│
▼
④ をきしてえる ← 3
│
▼③④をもねる
│
⑤ ののにをつけてぶ ← 4
│
▼
のそしてまた①へってりす
あなたの はいい
│
▼
① をかくむトークン … / は / いい / みたいにかけらにける
│
▼
② かけらをのにえるめみ … かけらをのののにする
│
▼
このたちが③ へれていく → 2