Автор статьи — инженер с 25‑летним опытом — на примерах и метафорах объясняет, как устроены большие языковые модели (LLM). Он рассказывает, что суть работы LLM сводится к угадыванию следующего слова в предложении. Например, если ввести «Какая погода сегодня», модель переберёт варианты («солнечно», «дождливо» и т. д.) и выберет наиболее вероятный. Затем процесс повторяется: на основе уже полученного фрагмента строится следующий, и так формируется текст.
Ключевой механизм в LLM — механизм внимания (attention). Он помогает модели понять, на какие предыдущие слова стоит обратить особое внимание при выборе следующего. Например, в предложении «Я поставил вазу на полку, но она упала и разбилась» при использовании слова «она» модель акцентируется на слове «ваза», а не на «полка» или «расставленный».
Чтобы компьютер мог работать со словами, их преобразуют в координаты на «карте значений»: слова со схожим смыслом оказываются рядом, а далёкие по смыслу — на расстоянии. Например, «яблоки» и «апельсины» окажутся рядом, а «яблоки» и «самосвалы» — далеко друг от друга. Этот процесс называется встраиванием (embedding).
Сначала слова разбивают на фрагменты (токены) — процесс называется токенизацией (tokenization). Часто токен — это не целое слово, а его часть. Например, английское слово «невероятный» можно разбить на фрагменты, отражающие его составные части. Один из распространённых способов токенизации — BPE (парное кодирование байтов).
Модель многократно повторяет упражнение «угадай следующее слово» на огромном количестве текстов. В результате она самостоятельно выстраивает «карту значений»: слова, которые часто встречаются в схожем контексте, оказываются рядом. Например, фразы «ешьте яблоки», «ешьте апельсины» и «ешьте виноград» создают в модели общую область значений.
Работа LLM строится на взаимодействии двух компонентов: механизма внимания (который определяет, на что обратить внимание в предложении) и слоя памяти (который хранит знания и извлекает их для ответа). Автор сравнивает это с библиотекой: администратор (механизм внимания) указывает, на какую полку посмотреть, а библиотекарь (слой памяти) извлекает нужную информацию.
Знания в модели не хранятся в одном месте — они распределены по слоям и частям. Автор подчёркивает: его вклад заключается не в создании знаний, а в том, чтобы правильно обработать уже имеющееся содержимое и сделать механизм понятным. Он воссоздал небольшой LLM (llcore) и убедился, что его реализация даёт тот же результат, что и официальная версия (с нулевой ошибкой в пределах погрешности округления).
В следующих частях статьи автор планирует рассказать, как именно знания попадают в модель, почему длинные разговоры усложняют работу ИИ и как разработчики пытаются оптимизировать процесс.
あなたの文章
│
▼
① 言葉を細かく刻む(トークン化) ← 第1部
│
▼
② 言葉を「意味の座標」に変える(埋め込み) ← 第1部
│
▼
③ どの言葉に注目するか決める(注意機構) ← 第2部 ★心臓
│
▼
④ 知識を引き出して考える(順伝播層) ← 第3部
│
▼(③④を何十回も重ねる)
│
⑤ 「次の一語」の候補に点数をつけて選ぶ ← 第4部
│
▼
次の一語(そしてまた①へ戻って繰り返す)
あなたの文章 「今日はいい天気」
│
▼
① 言葉を細かく刻む(トークン化) … 「今日 / は / いい / 天気」みたいに、かけらに分ける
│
▼
② かけらを「意味の座標」に変える(埋め込み) … 各かけらを、意味の地図の上の一点にする
│
▼
(この座標たちが、③注意機構 以降へ流れていく → 第2部)