1. От алгоритмов к нейросетям: базовые концепции машинного обучения
От алгоритмов к нейросетям: базовые концепции машинного обучения
Каждый раз, когда вы открываете поисковик, переводите текст в онлайн-переводчике или просите голосового помощника поставить будильник, вы взаимодействуете с искусственным интеллектом. Эти системы кажутся невероятно умными: они понимают контекст, исправляют опечатки и даже шутят. Однако под капотом у них нет ни сознания, ни понимания мира в человеческом смысле. Там работает математика.
Чтобы понять, как мыслят современные Большие Языковые Модели (LLM), необходимо сделать шаг назад и разобраться в фундаменте. Невозможно понять устройство двигателя спорткара, не зная принципов работы колеса. Этим колесом в мире искусственного интеллекта является машинное обучение.
Пределы жестких правил
Исторически компьютеры были просто очень быстрыми калькуляторами. Чтобы заставить компьютер что-то сделать, человек должен был написать подробную инструкцию — алгоритм. Этот подход называется классическим программированием.
В классическом программировании разработчик сам изучает проблему, придумывает логику ее решения и переводит эту логику в код.
Представьте, что вам нужно создать программу для фильтрации спама в электронной почте. Как бы вы решали эту задачу классическим методом? Вы бы начали писать правила:
Поначалу это работает. Но спамеры быстро адаптируются. Они начинают писать «б-е-с-п-л-а-т-н-о», заменять буквы на похожие символы или использовать другие слова. Вам придется постоянно дописывать новые правила. Вскоре ваш код превратится в бесконечный, запутанный лабиринт из условий, который невозможно поддерживать.
Здесь на сцену выходит машинное обучение (Machine Learning, ML). Это кардинальная смена парадигмы. Вместо того чтобы писать правила вручную, мы позволяем компьютеру самому найти эти правила на основе предоставленных примеров.
> В классическом программировании мы даем компьютеру данные и правила, чтобы получить ответы. В машинном обучении мы даем компьютеру данные и ответы, чтобы он сам создал правила.
!Сравнение подходов: классическое программирование и машинное обучение
| Характеристика | Классическое программирование | Машинное обучение | | :--- | :--- | :--- | | Роль человека | Пишет точные инструкции и логику | Собирает данные и выбирает алгоритм обучения | | Входные данные | Данные + Правила | Данные + Правильные ответы | | Результат работы | Готовые ответы | Модель (набор правил), способная давать ответы | | Адаптивность | Нулевая (нужно переписывать код) | Высокая (достаточно дообучить на новых данных) |
Анатомия обучения: как машина находит закономерности
Чтобы машина смогла чему-то научиться, ей нужны данные, структурированные особым образом. В базовом машинном обучении данные делятся на две категории:
Рассмотрим пример из сферы недвижимости. Мы хотим создать программу, которая оценивает стоимость квартир.
Признаками здесь будут: площадь в квадратных метрах, этаж, расстояние до ближайшей станции метро в минутах, год постройки дома. Меткой будет реальная цена, за которую эта квартира была продана.
Мы загружаем в алгоритм таблицу с тысячами таких проданных квартир. Процесс обучения — это поиск математической зависимости между признаками и меткой. Алгоритм пытается подобрать такие коэффициенты (веса) для каждого признака, чтобы при умножении признаков на эти веса получалась правильная цена.
Например, алгоритм может обнаружить, что каждый дополнительный квадратный метр увеличивает цену, поэтому вес этого признака будет положительным. А каждая дополнительная минута пешком до метро — снижает цену, поэтому вес этого признака будет отрицательным.
Сначала алгоритм расставляет веса случайно и делает предсказание. Конечно, первое предсказание оказывается ужасным. Квартира, стоящая 10 миллионов, оценивается в 2 рубля. Алгоритм вычисляет ошибку — разницу между своим предсказанием и правильным ответом. Затем он немного корректирует веса, чтобы в следующий раз ошибка стала меньше. Этот цикл (предсказание → оценка ошибки → корректировка) повторяется миллионы раз, пока ошибка не станет минимальной.
Искусственные нейронные сети: вдохновленные природой
Машинное обучение отлично справляется с табличными данными (цены, статистика, показатели). Но как быть с более сложными задачами? Как научить компьютер отличать фотографию кота от фотографии собаки? Или как заставить его понимать смысл прочитанного текста?
Для таких задач традиционные алгоритмы машинного обучения оказались слишком слабыми. Решением стали искусственные нейронные сети (Artificial Neural Networks, ANN) — класс алгоритмов машинного обучения, архитектура которых отдаленно напоминает устройство человеческого мозга.
Мозг состоит из миллиардов клеток — нейронов, соединенных между собой синапсами. Искусственная нейросеть состоит из математических функций, которые также называются нейронами (или узлами), соединенных виртуальными связями.
Структура базовой нейронной сети включает три типа слоев:
!Интерактивная модель простой нейронной сети
Сила нейросетей заключается в их способности выявлять нелинейные, невероятно сложные закономерности. В процессе обучения сеть сама решает, на какие детали обращать внимание.
Глубокое обучение и иерархия признаков
Когда скрытых слоев в нейронной сети становится много (обычно больше трех), мы начинаем говорить о глубоком обучении (Deep Learning). Слово «глубокое» относится именно к количеству слоев, а не к глубине «понимания» машины.
Зачем нужно много слоев? Они позволяют сети выстраивать иерархию признаков — от самых простых к невероятно сложным.
Представьте, что глубокая нейросеть учится распознавать лица на фотографиях:
Программист не объясняет сети, как выглядит глаз. Сеть сама формирует концепцию «глаза» в своих внутренних слоях, потому что эта концепция помогает ей минимизировать ошибку при распознавании лиц.
От чисел к словам: как нейросети читают
Мы разобрались, как нейросети работают с числами и картинками (которые тоже представляются как числа — значения пикселей). Но курс посвящен Большим Языковым Моделям. Как нейросеть может обрабатывать текст, если она понимает только математику?
Ответ прост: мы должны превратить слова в числа.
В современных LLM каждое слово (или часть слова) преобразуется в длинный список чисел — вектор. Этот процесс называется векторным представлением. Слова с похожим смыслом получают похожие списки чисел. Для нейросети слова «король» и «монарх» — это точки, расположенные очень близко друг к другу в многомерном математическом пространстве.
Получив текст в виде чисел, языковая модель решает одну главную задачу: предсказание следующего элемента.
Когда вы пишете в смартфоне фразу «Я иду в...», клавиатура предлагает вам варианты: «магазин», «кино», «школу». Она делает это на основе вероятностей.
Большие языковые модели делают то же самое, но на неизмеримо более сложном уровне. Они анализируют весь предыдущий контекст (тысячи слов) и вычисляют вероятности для каждого возможного следующего слова в своем словаре.
Если модель видит текст «Столица Франции — это», она рассчитывает вероятности:
Модель выбирает слово с наибольшей вероятностью («Париж»), добавляет его к тексту и начинает процесс заново, предсказывая следующее слово уже для фразы «Столица Франции — это Париж».
Именно этот простой принцип — предсказание следующего слова на основе глубокого обучения — лежит в основе систем, которые сегодня пишут стихи, программируют и сдают медицинские экзамены. В следующей статье мы заглянем под капот этих систем и изучим архитектуру Трансформеров, которая сделала революцию LLM возможной.