Введение в Большие Языковые Модели (LLM)

Этот курс систематизирует базовые знания об искусственном интеллекте и знакомит с эволюцией больших языковых моделей. Вы получите необходимый фундамент для дальнейшего изучения архитектуры и технических деталей нейросетей.

1. От алгоритмов к нейросетям: базовые концепции машинного обучения

От алгоритмов к нейросетям: базовые концепции машинного обучения

Каждый раз, когда вы открываете поисковик, переводите текст в онлайн-переводчике или просите голосового помощника поставить будильник, вы взаимодействуете с искусственным интеллектом. Эти системы кажутся невероятно умными: они понимают контекст, исправляют опечатки и даже шутят. Однако под капотом у них нет ни сознания, ни понимания мира в человеческом смысле. Там работает математика.

Чтобы понять, как мыслят современные Большие Языковые Модели (LLM), необходимо сделать шаг назад и разобраться в фундаменте. Невозможно понять устройство двигателя спорткара, не зная принципов работы колеса. Этим колесом в мире искусственного интеллекта является машинное обучение.

Пределы жестких правил

Исторически компьютеры были просто очень быстрыми калькуляторами. Чтобы заставить компьютер что-то сделать, человек должен был написать подробную инструкцию — алгоритм. Этот подход называется классическим программированием.

В классическом программировании разработчик сам изучает проблему, придумывает логику ее решения и переводит эту логику в код.

Представьте, что вам нужно создать программу для фильтрации спама в электронной почте. Как бы вы решали эту задачу классическим методом? Вы бы начали писать правила:

  • Если письмо содержит слово «бесплатно», отправить в спам.
  • Если адрес отправителя содержит много цифр, отправить в спам.
  • Если в тексте много восклицательных знаков, отправить в спам.
  • Поначалу это работает. Но спамеры быстро адаптируются. Они начинают писать «б-е-с-п-л-а-т-н-о», заменять буквы на похожие символы или использовать другие слова. Вам придется постоянно дописывать новые правила. Вскоре ваш код превратится в бесконечный, запутанный лабиринт из условий, который невозможно поддерживать.

    Здесь на сцену выходит машинное обучение (Machine Learning, ML). Это кардинальная смена парадигмы. Вместо того чтобы писать правила вручную, мы позволяем компьютеру самому найти эти правила на основе предоставленных примеров.

    > В классическом программировании мы даем компьютеру данные и правила, чтобы получить ответы. В машинном обучении мы даем компьютеру данные и ответы, чтобы он сам создал правила.

    !Сравнение подходов: классическое программирование и машинное обучение

    | Характеристика | Классическое программирование | Машинное обучение | | :--- | :--- | :--- | | Роль человека | Пишет точные инструкции и логику | Собирает данные и выбирает алгоритм обучения | | Входные данные | Данные + Правила | Данные + Правильные ответы | | Результат работы | Готовые ответы | Модель (набор правил), способная давать ответы | | Адаптивность | Нулевая (нужно переписывать код) | Высокая (достаточно дообучить на новых данных) |

    Анатомия обучения: как машина находит закономерности

    Чтобы машина смогла чему-то научиться, ей нужны данные, структурированные особым образом. В базовом машинном обучении данные делятся на две категории:

  • Признаки (Features) — это характеристики объекта, которые мы можем измерить или описать.
  • Метки (Labels) — это правильные ответы или результат, который мы хотим научиться предсказывать.
  • Рассмотрим пример из сферы недвижимости. Мы хотим создать программу, которая оценивает стоимость квартир.

    Признаками здесь будут: площадь в квадратных метрах, этаж, расстояние до ближайшей станции метро в минутах, год постройки дома. Меткой будет реальная цена, за которую эта квартира была продана.

    Мы загружаем в алгоритм таблицу с тысячами таких проданных квартир. Процесс обучения — это поиск математической зависимости между признаками и меткой. Алгоритм пытается подобрать такие коэффициенты (веса) для каждого признака, чтобы при умножении признаков на эти веса получалась правильная цена.

    Например, алгоритм может обнаружить, что каждый дополнительный квадратный метр увеличивает цену, поэтому вес этого признака будет положительным. А каждая дополнительная минута пешком до метро — снижает цену, поэтому вес этого признака будет отрицательным.

    Сначала алгоритм расставляет веса случайно и делает предсказание. Конечно, первое предсказание оказывается ужасным. Квартира, стоящая 10 миллионов, оценивается в 2 рубля. Алгоритм вычисляет ошибку — разницу между своим предсказанием и правильным ответом. Затем он немного корректирует веса, чтобы в следующий раз ошибка стала меньше. Этот цикл (предсказание → оценка ошибки → корректировка) повторяется миллионы раз, пока ошибка не станет минимальной.

    Искусственные нейронные сети: вдохновленные природой

    Машинное обучение отлично справляется с табличными данными (цены, статистика, показатели). Но как быть с более сложными задачами? Как научить компьютер отличать фотографию кота от фотографии собаки? Или как заставить его понимать смысл прочитанного текста?

    Для таких задач традиционные алгоритмы машинного обучения оказались слишком слабыми. Решением стали искусственные нейронные сети (Artificial Neural Networks, ANN) — класс алгоритмов машинного обучения, архитектура которых отдаленно напоминает устройство человеческого мозга.

    Мозг состоит из миллиардов клеток — нейронов, соединенных между собой синапсами. Искусственная нейросеть состоит из математических функций, которые также называются нейронами (или узлами), соединенных виртуальными связями.

    Структура базовой нейронной сети включает три типа слоев:

  • Входной слой (Input layer): принимает сырые данные. Если мы анализируем картинку размером 10 на 10 пикселей, у нас будет 100 входных нейронов, каждый из которых получит цвет одного пикселя.
  • Скрытые слои (Hidden layers): выполняют основную вычислительную работу. Их может быть несколько. Каждый нейрон в скрытом слое принимает сигналы от предыдущего слоя, суммирует их с определенными весами и передает результат дальше.
  • Выходной слой (Output layer): выдает финальный результат. Например, вероятность того, что на картинке изображен кот.
  • !Интерактивная модель простой нейронной сети

    Сила нейросетей заключается в их способности выявлять нелинейные, невероятно сложные закономерности. В процессе обучения сеть сама решает, на какие детали обращать внимание.

    Глубокое обучение и иерархия признаков

    Когда скрытых слоев в нейронной сети становится много (обычно больше трех), мы начинаем говорить о глубоком обучении (Deep Learning). Слово «глубокое» относится именно к количеству слоев, а не к глубине «понимания» машины.

    Зачем нужно много слоев? Они позволяют сети выстраивать иерархию признаков — от самых простых к невероятно сложным.

    Представьте, что глубокая нейросеть учится распознавать лица на фотографиях:

  • Первый скрытый слой ищет базовые элементы: перепады света, вертикальные и горизонтальные линии, границы объектов.
  • Второй слой комбинирует эти линии, чтобы находить простые формы: круги, углы, овалы.
  • Третий слой собирает из форм части лица: глаза, носы, губы.
  • Четвертый слой комбинирует части лица, чтобы распознать конкретного человека.
  • Программист не объясняет сети, как выглядит глаз. Сеть сама формирует концепцию «глаза» в своих внутренних слоях, потому что эта концепция помогает ей минимизировать ошибку при распознавании лиц.

    От чисел к словам: как нейросети читают

    Мы разобрались, как нейросети работают с числами и картинками (которые тоже представляются как числа — значения пикселей). Но курс посвящен Большим Языковым Моделям. Как нейросеть может обрабатывать текст, если она понимает только математику?

    Ответ прост: мы должны превратить слова в числа.

    В современных LLM каждое слово (или часть слова) преобразуется в длинный список чисел — вектор. Этот процесс называется векторным представлением. Слова с похожим смыслом получают похожие списки чисел. Для нейросети слова «король» и «монарх» — это точки, расположенные очень близко друг к другу в многомерном математическом пространстве.

    Получив текст в виде чисел, языковая модель решает одну главную задачу: предсказание следующего элемента.

    Когда вы пишете в смартфоне фразу «Я иду в...», клавиатура предлагает вам варианты: «магазин», «кино», «школу». Она делает это на основе вероятностей.

    Большие языковые модели делают то же самое, но на неизмеримо более сложном уровне. Они анализируют весь предыдущий контекст (тысячи слов) и вычисляют вероятности для каждого возможного следующего слова в своем словаре.

    Если модель видит текст «Столица Франции — это», она рассчитывает вероятности:

    Модель выбирает слово с наибольшей вероятностью («Париж»), добавляет его к тексту и начинает процесс заново, предсказывая следующее слово уже для фразы «Столица Франции — это Париж».

    Именно этот простой принцип — предсказание следующего слова на основе глубокого обучения — лежит в основе систем, которые сегодня пишут стихи, программируют и сдают медицинские экзамены. В следующей статье мы заглянем под капот этих систем и изучим архитектуру Трансформеров, которая сделала революцию LLM возможной.

    2. Эволюция обработки естественного языка: от простых правил к векторным представлениям слов

    Эволюция обработки естественного языка: от простых правил к векторным представлениям слов

    В предыдущей статье мы выяснили, что нейронные сети — это математические функции. Они принимают на вход числа, умножают их на веса, складывают и выдают результат. С изображениями всё просто: картинка изначально состоит из пикселей, каждый из которых имеет числовое значение цвета. Но как быть с текстом?

    Компьютер не понимает концепций «любовь», «сарказм» или «ипотека». Для него текст — это просто набор символов. Область искусственного интеллекта, которая учит компьютеры понимать человеческий язык, называется обработкой естественного языка (Natural Language Processing, NLP).

    Чтобы современные Большие Языковые Модели (LLM) научились писать стихи и программировать, наука прошла долгий путь от наивных попыток объяснить машине правила грамматики до создания многомерных математических пространств смысла.

    Ловушка кодировок: почему буквы нельзя просто пронумеровать

    Первая мысль, которая приходит в голову при попытке передать текст нейросети: давайте просто присвоим каждой букве или слову порядковый номер. Например, в стандартной таблице кодировок буква «А» имеет номер 1040, а буква «Б» — 1041.

    Почему этот подход не работает для машинного обучения?

    Нейросеть ищет математические закономерности. Если мы присвоим слову «кошка» номер 1, слову «собака» — номер 2, а слову «автомобиль» — номер 3, алгоритм сделает ложный вывод. Он решит, что «автомобиль» в три раза больше или важнее «кошки», а «собака» является средним арифметическим между ними.

    Числа в машинном обучении должны отражать свойства объекта. Порядковый номер в словаре не несет никакой информации о смысле слова. Поэтому ученым пришлось искать другие пути.

    Эпоха первая: Символьный подход и жесткие правила

    В 1960-х и 1970-х годах доминировал символьный подход. Программисты пытались научить компьютер языку так же, как мы учим иностранный язык в школе: через словари и правила грамматики.

    Разработчики вручную писали огромные деревья синтаксического разбора:

  • Предложение состоит из подлежащего и сказуемого.
  • Подлежащее — это существительное или местоимение.
  • Если пользователь вводит слово «привет», нужно выбрать случайный ответ из списка: [«Здравствуйте», «Приветствую», «Добрый день»].
  • Самым известным примером того времени стала программа ELIZA, созданная в 1966 году. Она имитировала работу психотерапевта, используя поиск по ключевым словам. Если человек писал «Моя мама меня не понимает», программа находила слово «мама» и применяла шаблон: «Расскажите больше о вашей семье».

    Проблема символьного подхода заключалась в невероятной сложности и неоднозначности человеческого языка.

    Как написать правило для слова «замок»? Это строение или устройство на двери? А как объяснить машине идиомы вроде «бить баклуши»? Язык постоянно меняется, люди делают опечатки, используют сарказм и сленг. Попытка описать весь язык правилами привела к созданию неповоротливых систем, которые ломались при малейшем отклонении от шаблона.

    Эпоха вторая: Статистика и «Мешок слов»

    В 1990-х годах вычислительные мощности выросли, и на смену правилам пришло машинное обучение. Ученые перестали пытаться объяснить машине грамматику. Вместо этого они дали ей много текстов и заставили считать статистику.

    Самым популярным методом стал Мешок слов (Bag of Words).

    Представьте, что вы берете предложение, разрезаете его на отдельные слова и бросаете их в мешок. Порядок слов полностью теряется, остается только их количество.

    Рассмотрим два отзыва на ресторан:

  • «Еда хорошая, обслуживание не плохое».
  • «Еда не хорошая, обслуживание плохое».
  • Для алгоритма, использующего базовый «Мешок слов», эти два предложения абсолютно идентичны. В обоих случаях словарь будет выглядеть так: еда (1), хорошая (1), обслуживание (1), не (1), плохое/плохая (1).

    Чтобы немного улучшить ситуацию, придумали метрику TF-IDF (Term Frequency-Inverse Document Frequency). Она не просто считает слова, но и оценивает их важность. Если слово «и» встречается в тексте 100 раз, алгоритм понимает, что это частый предлог, который есть везде, и снижает его значимость. А если слово «квантовый» встречается 5 раз в одной статье и почти никогда в других, алгоритм признает его ключевым.

    Статистические методы отлично справлялись с фильтрацией спама или определением темы статьи. Но они страдали от двух критических недостатков:

  • Потеря контекста: игнорирование порядка слов убивало смысл.
  • Разреженность данных: если в языке 100 000 слов, то каждое предложение превращалось в массив из 100 000 чисел, где 99 990 из них — это нули (слова, которых нет в предложении). Это требовало огромных объемов памяти.
  • Эпоха третья: Векторные представления (Embeddings)

    Настоящая революция произошла в 2013 году, когда исследователи из Google представили алгоритм Word2Vec. Он навсегда изменил NLP, внедрив концепцию векторных представлений (Word Embeddings).

    Вместо того чтобы считать слова, ученые решили превратить их в координаты в многомерном пространстве.

    > Вы узнаете слово по компании, которую оно водит. > > Джон Руперт Фёрс, британский лингвист

    Алгоритм Word2Vec читал миллионы текстов и смотрел, какие слова стоят рядом. Если слова «кофе» и «чай» часто окружены одними и теми же словами («горячий», «пить», «чашка», «утро»), значит, они имеют похожий смысл.

    Каждое слово получило свой уникальный адрес — вектор (список чисел). В современных моделях этот список обычно состоит из 300 до 1000 чисел. Каждое число — это координата на определенной оси смысла.

    Давайте упростим это до двух измерений (двух чисел), чтобы это можно было представить визуально. Допустим, первая координата (ось X) отвечает за пол: от -1 (женский) до 1 (мужской). Вторая координата (ось Y) отвечает за статус: от -1 (обыватель) до 1 (монарх).

    Тогда наши слова получат следующие координаты:

  • «Король» = [0.9, 0.9] (мужчина, высокий статус)
  • «Королева» = [-0.9, 0.9] (женщина, высокий статус)
  • «Мужчина» = [0.9, -0.8] (мужчина, обычный статус)
  • «Женщина» = [-0.9, -0.8] (женщина, обычный статус)
  • !Векторное пространство слов

    Теперь слова — это не просто абстрактные номера. Это точки на карте смыслов. И самое поразительное: с этими смыслами можно совершать арифметические операции!

    Если мы возьмем координаты слова «Король», вычтем из них координаты слова «Мужчина» и прибавим координаты слова «Женщина», мы получим точку, которая находится ближе всего к слову «Королева».

    Где — это вектор (набор координат) соответствующего слова.

    Алгоритм вычел концепцию «мужского пола» и добавил концепцию «женского пола», сохранив при этом концепцию «монархии». Нейросеть никто не учил гендерным различиям или устройству государств. Она вывела эту математическую закономерность сама, просто анализируя частоту совместного появления слов в текстах Википедии и новостей.

    | Характеристика | Символьный подход (Правила) | Статистический (Мешок слов) | Векторный (Embeddings) | | :--- | :--- | :--- | :--- | | Как представлен текст | Текст как есть | Таблица частотности слов | Координаты в пространстве | | Понимание синонимов | Нет (нужно писать вручную) | Нет («хороший» и «отличный» — разные слова) | Да (векторы находятся рядом) | | Размерность данных | Зависит от длины текста | Огромная (размер всего словаря) | Фиксированная и плотная (например, 300 чисел) |

    От слов к контексту

    Векторные представления решили проблему синонимов и позволили нейросетям «понимать» смысл слов через математические расстояния. Слово «собака» теперь находилось в векторном пространстве рядом со словом «щенок» и далеко от слова «сковородка».

    Однако у базовых векторов оставалась одна нерешенная проблема — многозначность.

    Слово «коса» имеет один фиксированный вектор. Но в предложении «Девушка заплела русую косу» и «Крестьянин взял острую косу» смысл совершенно разный. Базовый Word2Vec усреднял эти значения, создавая вектор, который находился где-то посередине между прическами и сельскохозяйственными инструментами.

    Чтобы решить эту проблему и научить модель понимать смысл слова в зависимости от его окружения, потребовался еще один фундаментальный сдвиг в архитектуре нейросетей. Этим сдвигом стало изобретение механизма внимания и архитектуры Трансформеров, о которых мы подробно поговорим на следующем шаге нашего курса.

    3. Механика предсказания текста: как языковые модели угадывают следующее слово

    Механика предсказания текста: как языковые модели угадывают следующее слово

    В предыдущей статье мы разобрались, как нейросети научились понимать смысл слов, превращая их в многомерные векторы (координаты в математическом пространстве). Мы выяснили, что слова с похожим смыслом находятся рядом, и с ними можно совершать арифметические операции.

    Но понимание смысла — это лишь половина дела. Чтобы Большие Языковые Модели (Large Language Models, LLM) вроде ChatGPT или Claude могли писать эссе, программировать и вести диалог, они должны уметь генерировать связный текст.

    Удивительно, но в основе всех этих сложных способностей лежит один невероятно простой принцип. Современные LLM не «думают» абзацами или страницами. Вся их колоссальная вычислительная мощь направлена на решение одной-единственной задачи: предсказать следующее слово на основе предыдущих.

    Токенизация: из чего на самом деле состоит текст

    Прежде чем модель начнет что-то предсказывать, ей нужно «прочитать» ввод пользователя (промпт). Мы привыкли мыслить буквами и словами, но для нейросетей оба эти подхода неэффективны.

    Если заставить модель предсказывать текст по одной букве, ей будет слишком сложно улавливать смысл. Буква «к» сама по себе не значит ничего. Если же использовать целые слова, словарь модели станет неподъемным: придется хранить отдельные векторы для слов «кот», «кота», «коту», «котик», «котиком» и так далее, не говоря уже об опечатках и сленге.

    Поэтому исследователи пришли к компромиссу — токенизации (Tokenization).

    Токенизация — это процесс разбиения текста на фрагменты, которые называются токенами. Токеном может быть целое короткое слово, часть длинного слова или даже отдельный символ (например, знак препинания).

    > Токены можно сравнить с кубиками Lego. Из ограниченного набора стандартных деталей (около 50 000 – 100 000 токенов в словаре модели) можно собрать абсолютно любое, даже несуществующее слово.

    Рассмотрим пример того, как современный токенизатор может разбить фразу:

    «Невероятная кибербезопасность!»

  • [Невероят] — частый корень, становится отдельным токеном.
  • [ная] — популярное окончание.
  • [ ] — пробел (часто прикрепляется к началу следующего слова).
  • [кибер] — распространенная приставка в IT-текстах.
  • [безопасность] — целое слово, так как оно часто встречается в обучающих данных.
  • [!] — знак препинания.
  • В среднем, для английского языка 1 токен равен примерно 0,75 слова. Для русского языка из-за сложной морфологии одно слово часто разбивается на 2-3 токена.

    !Схема работы языковой модели: от входного текста к предсказанию следующего слова

    Контекстное окно: кратковременная память модели

    Когда вы отправляете текст нейросети, все эти токены выстраиваются в очередь и поступают на входные слои модели. Но у нейросети есть ограничение на то, сколько токенов она может «держать в голове» одновременно. Это ограничение называется контекстным окном (Context Window).

    Контекстное окно — это объем кратковременной памяти LLM. Если размер окна составляет 8 000 токенов (около 15 страниц текста), то при генерации 8 001-го токена модель навсегда «забудет» самое первое слово из начала диалога.

    Эволюция размера контекстного окна — один из главных трендов в развитии ИИ:

    | Поколение моделей | Примерный размер окна | Что помещается | Проблема | | :--- | :--- | :--- | :--- | | Ранние (GPT-2, 2019) | 1 024 токена | Короткая статья | Модель теряла нить разговора через пару абзацев | | Средние (GPT-3, 2020) | 4 096 токенов | Эссе, глава книги | Невозможно загрузить большой документ для анализа | | Современные (Claude 3, 2024) | 200 000+ токенов | Несколько книг, вся кодовая база | Требует колоссальных объемов оперативной памяти |

    Распределение вероятностей: как делается выбор

    Итак, модель получила токены и проанализировала их через свои скрытые слои. На выходе она должна выдать следующий токен. Но нейросеть не выдает готовое слово. Она выдает распределение вероятностей (Probability Distribution) для каждого токена из своего словаря.

    Представьте, что в словаре модели 50 000 токенов. На основе контекста «Мама мыла» модель математически оценивает, насколько уместен каждый из 50 000 вариантов в качестве следующего слова.

    Сумма вероятностей всех возможных токенов всегда равна единице (или 100%):

    Где — это вероятность конкретного токена, а — размер словаря.

    Для фразы «Мама мыла» верхушка этого списка вероятностей может выглядеть так:

  • [раму] — 85.0%
  • [посуду] — 10.2%
  • [окно] — 3.5%
  • [руки] — 1.1%
  • ... 50 000. [синхрофазотрон] — 0.0000001%

    Модель посчитала вероятности. Какое слово она выберет? Самое логичное — всегда брать вариант №1 (с максимальной вероятностью). Этот метод называется «жадным декодированием» (Greedy Decoding).

    Однако, если модель всегда будет выбирать только самые вероятные слова, ее текст станет сухим, роботизированным и зацикленным. Она будет писать банальности. Чтобы сделать речь естественной, в процесс выбора добавляют контролируемую случайность.

    Температура: градус креативности

    Для управления этой случайностью используется параметр, который разработчики назвали температурой (Temperature). Это числовое значение, которое меняет математический ландшафт вероятностей перед тем, как модель сделает окончательный бросок кубика.

    * Низкая температура (например, 0.1): Усиливает разрыв между вероятностями. Токен-лидер (85%) получает еще больший вес (например, 99%), а остальные варианты подавляются почти до нуля. Модель становится строгой, предсказуемой и точной. Это идеально подходит для написания программного кода, решения математических задач или извлечения фактов из текста. * Средняя температура (0.7 - 0.8): Стандартное значение для большинства чат-ботов. Сохраняет баланс: модель чаще выбирает логичные слова, но иногда позволяет себе использовать синонимы из топ-5 или топ-10. Текст получается живым и разнообразным. * Высокая температура (1.5 и выше): Сглаживает вероятности. Лидер (85%) может упасть до 30%, а маловероятные слова получают шанс быть выбранными. Модель начинает генерировать неожиданные метафоры, странные ассоциации, но при этом резко возрастает риск генерации бессмыслицы (галлюцинаций).

    Меняя температуру, мы не меняем знания модели (ее веса остаются прежними). Мы лишь меняем ее смелость при выборе следующего слова.

    Авторегрессия: бесконечный цикл генерации

    Мы поняли, как модель выбирает один токен. Но как она пишет целые статьи? Здесь вступает в игру механизм авторегрессии (Autoregression).

    Приставка «авто-» означает «само», а «регрессия» в данном контексте — опора на прошлые значения. Авторегрессионная генерация — это цикл, в котором каждый новый сгенерированный токен добавляется к исходному промпту, и весь этот обновленный текст снова подается на вход модели.

    Рассмотрим этот цикл пошагово. Допустим, пользователь ввел промпт: «Столица Франции — это».

    Шаг 1: * Вход: [Столица] [Франции] [—] [это] * Вычисление: Модель анализирует 4 токена. * Выход: Токен [Париж] (вероятность 98%).

    Шаг 2: Вход: [Столица] [Франции] [—] [это] [Париж] (сгенерированное слово стало частью ввода)* * Вычисление: Модель анализирует уже 5 токенов. * Выход: Токен [.] (вероятность 90%).

    Шаг 3: * Вход: [Столица] [Франции] [—] [это] [Париж] [.] * Вычисление: Модель анализирует 6 токенов. * Выход: Токен [Он] (вероятность 45%).

    Этот цикл повторяется десятки, сотни или тысячи раз со скоростью миллисекунд на каждый шаг. Вы видите, как текст плавно появляется на экране вашего устройства — это и есть визуализация авторегрессионного цикла.

    Цикл останавливается только в двух случаях: либо модель генерирует специальный скрытый токен [STOP], который означает логическое завершение мысли, либо достигается лимит длины ответа, установленный разработчиками.

    Иллюзия разума

    Понимание механики предсказания следующего слова часто вызывает у людей разочарование. Кажется, что если ChatGPT — это просто продвинутый аналог функции Т9 в смартфоне, который угадывает слова по статистике, то в нем нет никакого интеллекта.

    Однако разница кроется в масштабе. Чтобы точно предсказать следующее слово в предложении «Джон зашел в комнату, взял со стола яблоко, положил его в карман и вышел, поэтому сейчас яблоко находится в ___», модель должна обладать внутренней репрезентацией физического мира. Она должна «понимать» концепцию объектов, пространства и времени.

    Обучаясь на триллионах слов просто угадывать следующий токен, нейросети вынуждены формировать внутри себя сложнейшие логические модели нашего мира.

    Но как именно модель понимает, что слово «его» в длинном тексте относится к «яблоку», а не к «Джону» или «столу»? Как она связывает слова, находящиеся на расстоянии тысяч токенов друг от друга? За эту магию отвечает механизм Внимания (Attention) и архитектура Трансформеров, которые мы детально разберем на следующем шаге нашего курса.

    4. Революция Трансформеров: концепция механизма внимания и параллельная обработка данных

    Революция Трансформеров: концепция механизма внимания и параллельная обработка данных

    В конце предыдущей статьи мы остановились на интригующем вопросе: как языковая модель, предсказывающая текст слово за словом, умудряется не терять нить повествования на протяжении целых страниц? Как она понимает, что местоимение «он» в десятом абзаце относится к главному герою, упомянутому в самом начале текста?

    Долгое время это было главной нерешенной проблемой искусственного интеллекта. Нейросети умели генерировать короткие, грамматически правильные фразы, но при попытке написать эссе они быстро превращались в собеседника с тяжелой формой амнезии.

    Всё изменилось в 2017 году, когда исследователи из Google представили миру новую архитектуру нейросетей — Трансформер (Transformer). Эта технология не просто улучшила работу с текстом, она совершила настоящую революцию, став фундаментом для всех современных Больших Языковых Моделей (LLM), включая ChatGPT, Claude и GigaChat.

    Бутылочное горлышко прошлого: Рекуррентные нейросети

    Чтобы оценить гениальность Трансформеров, нужно понять, как ИИ читал тексты до их появления. До 2017 года стандартом в обработке естественного языка были Рекуррентные нейронные сети (Recurrent Neural Networks, RNN).

    Главная особенность RNN заключалась в том, что они обрабатывали текст строго последовательно — слово за словом, слева направо.

    Представьте, что вы читаете книгу через узкую подзорную трубу, в которую помещается только одно слово. Вы читаете первое слово, запоминаете его, сдвигаете трубу на второе слово, пытаетесь объединить смысл первого и второго, затем переходите к третьему.

    У этого подхода было два критических недостатка:

  • Проблема забывания (затухание градиента). К тому моменту, когда RNN доходила до сотого слова в абзаце, смысл первого слова уже стирался из ее «кратковременной памяти». Модель физически не могла связывать факты, разнесенные далеко друг от друга.
  • Невозможность ускорения. Поскольку каждое следующее слово можно было обработать только после предыдущего, процесс нельзя было распараллелить. Даже если у вас был суперкомпьютер с тысячами процессоров, 999 из них простаивали, ожидая, пока один процессор закончит шаг.
  • > Архитектура RNN была похожа на конвейерную ленту на заводе: пока деталь не пройдет первый этап сборки, она не может перейти на второй. Это делало обучение моделей на больших объемах данных невыносимо долгим.

    Механизм Внимания: как нейросети научились искать контекст

    Решением проблемы забывания стал Механизм Внимания (Attention Mechanism), а точнее его продвинутая версия — Самовнимание (Self-Attention), предложенная в архитектуре Трансформера.

    Вместо того чтобы пытаться сжать весь смысл прочитанного текста в одно тесное «воспоминание», Трансформер позволяет каждому слову в предложении напрямую посмотреть на все остальные слова и математически вычислить, насколько они важны друг для друга.

    Рассмотрим классический пример многозначности языка:

    «Замок был огромным, но ключ к нему давно потеряли».

    Слово «ключ» может означать инструмент для открывания двери, родник с водой или музыкальный знак. Как модель понимает правильный смысл?

    В процессе самовнимания токен [ключ] отправляет математический «запрос» ко всем остальным токенам в предложении. Он как бы спрашивает: «Кто из вас может помочь мне уточнить мой смысл?».

    Токены [Замок], [огромным], [потеряли] отвечают на этот запрос. Нейросеть вычисляет веса внимания — проценты важности. Для слова «ключ» вес внимания к слову «Замок» может составить 85%, к слову «потеряли» — 10%, а к союзу «но» — 0.1%.

    !Интерактивная визуализация механизма самовнимания

    Благодаря этому механизму, слово «ключ» перестает быть просто изолированным вектором в вакууме. Оно обогащается контекстом всего предложения. Модель динамически смешивает смыслы: итоговое математическое представление слова «ключ» будет на 85% состоять из концепции замка и дверей.

    Эффект коктейльной вечеринки

    Работу механизма самовнимания часто сравнивают с эффектом коктейльной вечеринки. Представьте, что вы находитесь в шумном зале, где одновременно говорят десятки людей. Физически ваши уши улавливают все звуки одинаково. Но ваш мозг способен сфокусировать внимание только на голосе вашего собеседника, игнорируя фоновый шум.

    Трансформер делает то же самое с текстом. При генерации ответа на сложный промпт из 5 000 слов, модель не пытается помнить всё одинаково хорошо. Она фокусирует свое математическое внимание только на тех 10-15 словах из промпта, которые критически важны для предсказания конкретного следующего токена.

    Параллельная обработка: скорость, изменившая всё

    Если механизм внимания дал моделям беспрецедентное понимание контекста, то второй компонент Трансформеров дал им невероятную скорость. Этим компонентом стала параллельная обработка данных.

    Создатели Трансформера полностью отказались от последовательного чтения текста (как это делали RNN). Трансформер загружает в себя всё предложение целиком и одновременно.

    !Сравнение последовательной и параллельной обработки данных

    Вернемся к аналогии с книгой. Если RNN — это один человек, читающий книгу слово за словом, то Трансформер — это команда из 10 000 редакторов. Вы раздаете каждому редактору по одному слову из книги. По команде каждый редактор одновременно смотрит на свое слово, затем они все вместе перекрикиваются (обмениваются контекстом через механизм внимания) и одновременно выдают результат.

    Почему это стало революцией?

    Современные видеокарты (GPU), на которых обучаются нейросети, состоят из тысяч мелких вычислительных ядер. Они плохо справляются со сложными последовательными задачами, но идеально подходят для выполнения тысяч простых математических операций одновременно.

    Трансформеры идеально легли на архитектуру GPU. То, на что у старых нейросетей уходили бы годы (последовательная обработка миллиардов текстов), Трансформеры на кластерах видеокарт стали делать за недели.

    | Характеристика | Рекуррентные сети (RNN) | Трансформеры | | :--- | :--- | :--- | | Способ чтения | Последовательно (слово за словом) | Параллельно (всё сразу) | | Скорость обучения | Низкая (нельзя распараллелить) | Экстремально высокая (идеально для GPU) | | Понимание контекста | Теряется на длинных дистанциях | Сохраняется на любых дистанциях | | Связь между словами | Опосредованная (через соседние слова) | Прямая (каждое слово связано с каждым) |

    Позиционное кодирование: как не потерять порядок

    Здесь внимательный читатель может заметить логическое противоречие. Если Трансформер загружает все слова одновременно, как мешок с кубиками, то как он понимает порядок слов?

    Для языковой модели фразы «Охотник выстрелил в медведя» и «Медведь выстрелил в охотника» состоят из абсолютно одинакового набора токенов. Если загрузить их одновременно, смысл должен смешаться.

    Чтобы решить эту проблему, инженеры добавили элегантный математический трюк — Позиционное кодирование (Positional Encoding).

    Прежде чем слова попадут в слои внимания, к вектору каждого слова прибавляется специальный математический ярлык — его порядковый номер. Это не просто цифра 1, 2 или 3. Это сложный волновой сигнал (использующий функции синуса и косинуса), который уникален для каждой позиции в тексте.

    В результате модель получает не просто слово «медведь», а «медведь-на-первом-месте» или «медведь-на-четвертом-месте». Механизм внимания учитывает эти позиционные метки. Он видит, что слово находится рядом с глаголом, и правильно определяет, кто совершает действие, а кто является объектом.

    Масштаб решает всё

    Статья «Attention Is All You Need», опубликованная в 2017 году, задумывалась как улучшение систем машинного перевода. Никто тогда не предполагал, что эта архитектура приведет к созданию ИИ, способного писать программный код, сдавать медицинские экзамены и сочинять стихи.

    Секрет успеха оказался в масштабировании. Поскольку Трансформеры можно было обучать параллельно, корпорации начали «скармливать» им весь интернет: Википедию, форумы, книги, репозитории кода.

    Выяснилось удивительное свойство: чем больше слоев внимания добавляли в Трансформер и чем больше текстов ему давали, тем более сложные закономерности он усваивал. Модель, обученная просто предсказывать пропущенные слова с помощью механизма внимания, внезапно начала демонстрировать зачатки логики, способность к переводу и анализу.

    Трансформеры стали двигателем, который позволил перейти от простых алгоритмов к Большим Языковым Моделям. Но как именно эти модели обучаются на терабайтах данных, прежде чем попасть к нам в виде удобного чат-бота? Об этом — огромном и ресурсоемком процессе предварительного обучения (Pre-training) — мы поговорим на следующем шаге нашего курса.

    5. Масштабирование нейросетей: параметры, закон масштабирования и эмерджентные свойства LLM

    Анатомия «мозга» ИИ: что такое параметры нейросети

    В предыдущей статье мы выяснили, что архитектура Трансформера позволила нейросетям обрабатывать текст параллельно и удерживать контекст с помощью механизма внимания. Это решило проблему скорости и памяти. Но чтобы модель начала понимать язык, писать стихи или программировать, ей нужен объемный «мозг», способный хранить колоссальное количество информации о мире. В машинном обучении размер этого мозга измеряется параметрами.

    Параметры (часто их называют весами и смещениями) — это внутренние настройки нейросети, которые изменяются в процессе обучения.

    Представьте себе гигантский звукорежиссерский пульт, на котором расположены миллиарды ползунков и тумблеров. Когда языковая модель только создана и еще ничего не знает, все эти ползунки установлены в случайные позиции. Если вы попросите такую модель продолжить фразу «Столица Франции — это...», она выдаст бессмысленный набор букв.

    В процессе обучения модель читает терабайты текстов. Встречая фразу «Столица Франции — это Париж», она сравнивает свое случайное предсказание с правильным ответом. Если она ошиблась, специальный математический алгоритм чуть-чуть сдвигает миллионы ползунков на пульте так, чтобы в следующий раз вероятность слова «Париж» стала выше.

    !Визуализация параметров нейросети как гигантского пульта управления смыслами

    Каждый параметр — это число (обычно дробное, например, или ), которое определяет силу связи между различными концепциями.

    > Параметры не хранят текст буквально. В нейросети нет файла, где записано «Париж — столица Франции». Вместо этого знания размазаны по миллионам числовых весов, которые вместе формируют математическое понимание того, как слова связаны друг с другом.

    Чтобы осознать масштаб современных Больших Языковых Моделей (LLM), посмотрим на цифры. Модель GPT-3, совершившая прорыв в 2020 году, имеет 175 миллиардов параметров. Если бы каждый параметр был физическим ползунком шириной в 1 сантиметр, этот пульт управления растянулся бы на 1 750 000 километров — это больше четырех расстояний от Земли до Луны.

    Законы масштабирования: рецепт идеального интеллекта

    Когда исследователи поняли, что Трансформеры отлично работают, возник логичный вопрос: что будет, если сделать модель еще больше?

    Долгое время создание нейросетей напоминало алхимию. Инженеры наугад меняли количество слоев, добавляли данные и надеялись на улучшение результата. Но в 2020 году исследователи из OpenAI опубликовали работу, которая превратила машинное обучение из алхимии в строгую науку. Они открыли Законы масштабирования (Scaling Laws).

    Выяснилось, что интеллект языковой модели (ее способность точно предсказывать текст) зависит от трех ключевых факторов, которые связаны жесткой математической зависимостью:

  • Количество параметров () — размер «мозга» модели.
  • Объем данных () — количество слов (токенов), которые модель прочитала при обучении.
  • Вычислительная мощность () — количество математических операций, затраченных на обучение (измеряется во флопсах — FLOPs).
  • Закон масштабирования гласит: если вы хотите улучшить модель, вам нужно одновременно и пропорционально увеличивать все эти показатели.

    В 2022 году компания DeepMind уточнила эти законы, опубликовав исследование модели Chinchilla. Они вывели оптимальную формулу баланса:

    Где — общий бюджет вычислений, — количество параметров, а — количество токенов обучающих данных.

    Эта формула показала миру критически важную вещь: нельзя просто раздувать размер модели (параметры), не давая ей пропорционально больше книг для чтения (данных).

    Представьте, что вы строите университет. Параметры — это вместимость здания (количество аудиторий и парт). Данные — это количество учебников в библиотеке. Если вы построите гигантский кампус на 100 000 студентов, но положите в библиотеку всего 10 книг, студенты ничему не научатся. Здание будет простаивать зря. Именно это произошло с некоторыми ранними моделями: они были огромными, но «недообученными» из-за нехватки текстов.

    !Интерактивный график закона масштабирования

    Согласно правилу Chinchilla, на каждый 1 параметр модели должно приходиться около 20 токенов обучающих данных. То есть модель размером в 70 миллиардов параметров (например, LLaMA 2 70B) должна прочитать как минимум 1.4 триллиона токенов, чтобы ее «мозг» был заполнен знаниями оптимально.

    Эмерджентные свойства: когда количество переходит в качество

    Самым поразительным открытием в эволюции LLM стали не сами законы масштабирования, а то, к чему это масштабирование привело.

    По мере того как корпорации вливали миллионы долларов в вычислительные мощности, увеличивая параметры и данные, графики показывали плавное, предсказуемое снижение количества ошибок. Модели просто становились лучше в угадывании следующего слова.

    Но внезапно исследователи заметили аномалию. При достижении определенного размера (обычно рубежа в 10-50 миллиардов параметров) у моделей начали появляться способности, которым их никто не учил. Этот феномен получил название эмерджентные свойства (Emergent Abilities).

    Эмерджентность — это свойство сложных систем, при котором количественные изменения приводят к качественному скачку.

    В физике отличным примером эмерджентности является агрегатное состояние воды. Если вы нагреваете лед от до , он остается твердым. Вы добавляете тепловую энергию, но визуально ничего не меняется. Однако при достижении ровно происходит фазовый переход — твердый лед внезапно становится жидкой водой. Жидкость обладает совершенно новыми свойствами (текучестью), которых не было у отдельных молекул .

    Точно так же ведут себя Большие Языковые Модели. Рассмотрим, как менялись их способности по мере роста масштаба:

    | Поколение модели | Примерное количество параметров | Что умела модель | Эмерджентные свойства (внезапные скачки) | | :--- | :--- | :--- | :--- | | GPT-1 (2018) | 117 миллионов | Генерировать короткие связные предложения. | Отсутствуют. Модель быстро теряла логику. | | GPT-2 (2019) | 1.5 миллиарда | Писать целые абзацы, выдерживать стиль текста. | Базовый перевод языков (без специального обучения), ответы на простые фактологические вопросы. | | GPT-3 (2020) | 175 миллиардов | Писать эссе, стихи, вести диалог. | Написание программного кода, решение математических задач, способность к логическому рассуждению (Chain-of-Thought). |

    Примеры эмерджентных способностей

    1. Логическое рассуждение (Chain-of-Thought) Маленькие модели не умеют решать текстовые математические задачи. Если спросить модель на 1 миллиард параметров: «У Пети было 5 яблок, он отдал 2 Маше, а потом купил еще 3. Сколько яблок у Пети?», она выдаст случайную цифру. Модель на 10 миллиардов параметров тоже ошибется. Но модель на 100 миллиардов параметров внезапно начинает рассуждать по шагам: «Сначала у Пети было 5. Отдал 2, осталось 3. Купил 3, стало 6. Ответ: 6». Никто не программировал в нее модуль математики — эта способность «выросла» сама из огромного массива прочитанных текстов.

    2. Обучение в контексте (Few-Shot Learning) До появления больших LLM, чтобы научить нейросеть определять тональность отзывов (позитивный/негативный), нужно было собрать датасет из десятков тысяч размеченных примеров и запустить долгий процесс дообучения. Эмерджентное свойство огромных моделей заключается в том, что им достаточно показать 2-3 примера прямо в текстовом запросе (промпте), и они мгновенно понимают задачу. Модель перестраивает свое поведение на лету, не меняя своих внутренних параметров.

    3. Теория разума (Theory of Mind) Это психологический термин, означающий способность понимать, что у других людей есть свои, отличные от ваших, знания и убеждения. Современные LLM способны решать задачи на теорию разума. Например: «Алиса положила ключи в ящик и вышла. Боб переложил ключи на стол. Где Алиса будет искать ключи, когда вернется?». Модель понимает, что Алиса не видела действий Боба, и правильно отвечает: «В ящике».

    Почему возникает эмерджентность?

    Ученые до сих пор ведут споры о природе этого явления. Главная гипотеза гласит, что для предсказания следующего слова в сложных текстах (например, в детективном романе или научном трактате) модели уже недостаточно просто знать статистику частоты слов.

    Чтобы угадать, кто убийца на последней странице детектива, нейросеть вынуждена сформировать внутри своих параметров сложную, многомерную модель нашего мира. Она должна усвоить законы физики, логики, человеческой психологии и математики. Эмерджентные свойства — это побочный эффект того, что модель пытается идеально сжать и структурировать весь человеческий опыт, заложенный в текстах интернета.

    Масштабирование параметров и данных доказало свою эффективность. Но как именно происходит процесс загрузки этих терабайтов знаний в пустую нейросеть? Как сырой текст из интернета превращается в структурированный интеллект? Этот ресурсоемкий этап называется предварительным обучением (Pre-training), и именно его мы разберем на следующем шаге нашего курса.