Зачем Стэнфорд убрал классические задачи ради PyTorch и Einops?

Stanford Online 22,4 тыс. 1 ч 6 мин 12 мин 09.03.2026
Главное

Стэнфордский университет представил обновленный курс CS221 «Искусственный интеллект: принципы и методы» под руководством профессора Перси Лянга (Percy Liang). В лекции подробно разбираются фундаментальные основы ИИ через призму трех исторических парадигм, масштабные изменения в программе обучения 2025 года, а также практическое введение в тензорные вычисления с использованием современных библиотек. Главный акцент сделан на переходе курса к концепции «tensor-native» и глубоком анализе влияния технологий на современное общество.

🛠️ Обновление классики: новый формат курса CS221 0:06

Профессор Перси Лянг преподает курс CS221 в Стэнфордском университете уже в 13-й раз за свои 14 лет работы в этом учебном заведении. Однако осенью 2025 года программа претерпела самые масштабные изменения за всю историю из-за стремительной эволюции технологий искусственного интеллекта. По словам Лянга, ключевые изменения направлены на модернизацию обучения и адаптацию к современным инженерным реалиям.

Главным нововведением стал полный переход курса на парадигму «tensor-native». Теперь все практические задания и лекционные примеры реализуются с использованием библиотек NumPy и PyTorch. Профессор поясняет, что тензоры — это универсальный математический инструмент, позволяющий описывать не только глубокое обучение, но и классические алгоритмы ИИ, такие как итерация ценности (value iteration) в Марковских процессах принятия решений или логический вывод в байесовских сетях.

Ради интеграции современных тем создателям курса пришлось пойти на компромиссы. Из программы были полностью исключены задачи удовлетворения ограничений (Constraint Satisfaction Problems, CSP). Профессор признает, что это решение далось ему нелегко, однако освободившееся время было перенаправлено на глубокое изучение социального воздействия ИИ (societal impact). Лянг подчеркивает, что сегодня ИИ оказывает беспрецедентное влияние на повседневную жизнь и публичный дискурс, поэтому детальное обсуждение его этических и социальных аспектов в рамках технического курса стало необходимостью.

Еще одной уникальной особенностью обновленного курса является формат «исполняемых лекций» (executable lectures). Все лекционные материалы представляют собой полноценные программы, исходный код которых размещен в репозитории на GitHub. При демонстрации этот код компилируется и визуализируется на веб-странице, что позволяет пошагово разбирать алгоритмы с абсолютной точностью. Профессор аргументирует этот подход тем, что в отличие от математических символов, которые могут интерпретироваться двояко, исполняемый код обладает строго определенной семантикой, а создание реальных систем ИИ в любом случае требует написания программного кода.

🧠 Что такое интеллект: четыре столпа ИИ 0:48

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

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

Профессор обращает внимание на то, что функционирование этих четырех компонентов всегда ограничено жесткими ресурсами:

  1. Вычислительные ресурсы (Compute): алгоритмы должны завершать работу вовремя. Например, система управления беспилотного автомобиля обязана принимать решения за доли секунды, она не может думать целый час. Сюда же относятся ограничения по памяти и затраты на передачу данных.
  2. Информационные ресурсы (Information): любой агент действует в условиях неполной информации и ограниченного опыта. Невозможно заглянуть за угол дома, поэтому алгоритмы должны уметь принимать разумные решения на основе дефицитных данных.

⚖️ Проблема выравнивания и вызовы для общества 7:48

Создание систем искусственного интеллекта ставит перед разработчиками глубокие этические вопросы. Любой интеллектуальный агент явно или неявно кодирует определенные ценности, цели или функции полезности. Проблема соответствия ценностей ИИ намерениям создателей называется выравниванием (alignment).

В качестве примера Лянг приводит ChatGPT от компании OpenAI. Разработчики стремятся заложить в модель вполне конкретные ценности: информативность, отсутствие галлюцинаций и отказ от выполнения вредоносных запросов. Однако профессор указывает на риски несоответствия (misalignment), когда вопреки лучшим намерениям инженеров система совершает непредвиденные и нежелательные действия.

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

Основная сложность, по утверждению Лянга, заключается в фундаментальном компромиссе между ценностями разных групп людей: в политике и общественной жизни различные сообщества часто хотят противоположных вещей, и этот конфликт неизбежно переносится на ИИ. Ситуация усугубляется частым возникновением непредвиденных последствий при развертывании ИИ-систем в реальном мире.

📜 Три дороги к современному ИИ: исторический экскурс 17:18

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

Профессор Лянг делит дальнейшую историю ИИ на три независимых сюжета:

1. Символьный ИИ (Symbolic AI)

Рождением этого направления считается 1956 год, когда Джон Маккарти (впоследствии основавший лабораторию ИИ в Стэнфорде) организовал знаменитый Дартмутский семинар и ввел в обиход сам термин «искусственный интеллект». Пятидесятые годы были эпохой огромного оптимизма. Артур Самуэль создал программу для игры в шашки, способную играть на хорошем любительском уровне, а Ньюэлл и Саймон разработали «Логический теоретик» (Logic Theorist) — программу, доказавшую теоремы из книги Principia Mathematica Уайтхеда и Рассела. Любопытно, что их научная статья с более элегантным, чем у человека, доказательством была отклонена рецензентами, которые даже не заметили, что третьим соавтором являлась компьютерная программа.

Однако завышенные ожидания привели к краху. Известен фольклорный пример времен Холодной войны, когда фразу «Дух бодр, плоть же немощна» перевели на русский язык и обратно, получив результат: «Водка хороша, но мясо протухло». В 1966 году официальный отчет о неэффективности машинного перевода привел к прекращению финансирования и началу первой «зимы ИИ». Причинами неудачи стали нехватка вычислительных мощностей для экспоненциально растущего пространства поиска и критический дефицит знаний о мире внутри программ. Тем не менее, символьный ИИ оставил ценное наследие: язык Lisp, технологии сборки мусора (garbage collection) и концепцию разделения времени (time sharing).

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

2. Нейросетевой ИИ (Neural AI)

Математический фундамент был заложен еще в 1943 году Маккалохом и Питтсом, описавшими модель искусственного нейрона без механизмов обучения. В 1949 году Дональд Хебб сформулировал правило обучения («клетки, которые активируются вместе, связываются вместе»). За ним последовал алгоритм перцептрона Фрэнка Розенблатта и система ADALINE для линейной регрессии. Однако в 1969 году книга Марвина Минского и Сеймура Пейперта «Перцептроны» математически доказала ограниченность линейных моделей, что практически уничтожило исследования нейросетей на десятилетие. Минский, который сам писал диссертацию по нейросетям, перешел в лагерь символьного ИИ.

Возрождение началось в 1980-х годах с популяризацией алгоритма обратного распространения ошибки (backpropagation) Румельхартом, Хинтоном и Уильямсом в 1986 году и созданием сверточных сетей (ConvNets). Несмотря на локальные успехи (распознавание индексов для почты США), вплоть до середины 2000-х нейросети оставались непопулярными из-за сложности обучения. Перелом наступил в 2006 году после публикации работы Джеффри Хинтона о методах тренировки глубоких сетей. Последовал лавинообразный прогресс: триумф глубокого обучения в распознавании речи (2009), победа сети AlexNet в компьютерном зрении, внедрение seq-to-seq архитектур в перевод, триумф AlphaGo в 2016 году и, наконец, появление архитектуры Transformer в 2017 году.

3. Статистический ИИ (Statistical AI)

Многие математические инструменты развивались вообще вне контекста ИИ. Линейная регрессия была предложена Карлом Гауссом в 1801 году для решения метода наименьших квадратов вручную. Метод стохастического градиентного спуска (SGD) появился в 1950-х годах, равно как и алгоритмы поиска из теории графов и концепции контроля из теории управления (MDP).

В 1980–2000-х годах в машинном обучении доминировала строгая статистика: байесовские сети, метод опорных векторов (SVM), условные случайные поля (CRF) и тематические модели. В этот период нейросети составляли крошечную долю публикаций из-за отсутствия красивых математических гарантий. Сегодня математическая строгость статистического ИИ легла в основу концепций оптимизации и генерализации современных моделей.

🏭 Новейшая история: эпоха базовых моделей и индустриализация ИИ 32:09

Последние пять лет ознаменовались переходом к эпохе базовых моделей (foundation models), начавшейся с предобученных языковых алгоритмов, таких как ELMo, BERT и T5 от Google. Идея обучения модели предсказанию следующего слова на гигантских массивах неразмеченного текста позволила извлекать универсальные представления языка.

Масштабирование этих систем такими компаниями, как OpenAI, Google, Meta и DeepSeek, привело к современному буму генеративного ИИ. Важным витком эволюции стали рассуждающие модели (reasoning models), которые генерируют внутренние цепочки токенов-мыслей перед выдачей ответа. Это позволило алгоритмам завоевывать золотые медали на Международных математических (IMO) и ИТ-олимпиадах (IOI).

Параллельно произошла беспрецедентная индустриализация ИИ, превратившая его из нишевой академической забавы в сектор с сотнями миллиардов долларов инвестиций. Модель GPT-4, по неофициальным данным, содержит 1,8 триллиона параметров и потребовала сотен миллионов долларов на обучение, а компания xAI строит кластеры из 200 000 графических процессоров NVIDIA H100.

Следствием коммерциализации стало резкое снижение открытости науки. Профессор обращает внимание на технический отчет GPT-4, где прямо заявлено: из-за конкурентной среды и соображений безопасности компания не раскрывает никаких деталей об архитектуре и обучении модели. Тем не менее Лянг констатирует, что фундаментальные открытые проблемы ИИ все еще не решены и требуют глубоких академических исследований.

📊 Математический базис: тензорные вычисления в NumPy 37:53

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

В рамках лекции профессор демонстрирует иерархию тензоров на примерах кода в NumPy:

В машинном обучении типичные структуры данных кодируются тензорами следующих конфигураций:

Профессор строго предупреждает о специфике работы с операциями срезов и транспонирования в NumPy и PyTorch: эти команды создают новые «представления» (views), а не физические копии данных в памяти. Изменение значений в транспонированном тензоре автоматически мутирует исходный тензор, что может приводить к опасным логическим ошибкам в коде.

Среди базовых операций выделяются поэлементные вычисления (возведение в степень, извлечение корня, сложение и скалярное умножение), а также функции выделения треугольных матриц triu (верхняя) и tril (нижняя). Последние критически важны в архитектуре Transformer для наложения каузальных масок (causal masks), запрещающих модели подглядывать в будущие токены при генерации текста.

🏎️ Оптимизация вычислений и библиотека Einops 51:58

Основной вычислительной операцией в ИИ является матричное умножение. Для ускорения расчетов применяется векторизация и пакетная обработка данных (batching). Среда NumPy поддерживает механизм трансляции (broadcasting), автоматически копируя матрицы меньшего ранга вдоль пакетного измерения для выполнения параллельных операций.

Профессор Лянг наглядно доказывает преимущество тензорных операций перед стандартными циклами Python с помощью утилиты timeit. Умножение двух матриц размера $N \times N$ через встроенные циклы for i, j, k работает драматически медленнее, чем встроенная функция NumPy. Причина кроется в том, что Python является интерпретируемым языком, тогда как NumPy написан на оптимизированном C под CPU и поддерживает бесшовное ускорение на GPU, а также автоматическое распределение (sharding) вычислений по нескольким видеокартам в распределенных кластерах.

Однако сложные гимнастические манипуляции с осями тензоров (например, выражение x.multiply(y.transpose(-2, -1))) делают код нечитаемым и запутанным. Для решения этой проблемы в современный стек ИИ внедрена библиотека Einops, использующая именованные измерения на основе нотации Эйнштейна.

Einops предлагает три ключевые функции для прозрачной работы с многомерными массивами:

  1. einsum: Обобщенное матричное умножение с явным именованием осей. Вместо манипуляций с индексами разработчик передает строковую маску, например, 'seq1 hidden, hidden seq2 -> seq1 seq2', где измерения, отсутствующие в выходной части, автоматически суммируются. Это применимо и к пакетным вычислениям: 'batch seq1 hidden, batch seq2 hidden -> batch seq1 seq2'.
  2. reduce: Позволяет агрегировать данные с помощью математических операций (sum, min, max). Любая ось, не упомянутая в выходной строке, подвергается редукции.
  3. rearrange: Инструмент для изменения топологии тензора, незаменимый при разделении и слиянии внимания в многоголовых блоках (multi-head attention) Трансформеров. С помощью синтаксиса круглых скобок можно упаковывать и распаковывать секретные скрытые измерения (например, преобразовывать плоскую скрытую размерность матрицы $3 \times 8$ в тензор $3 \times 2 \times 4$, где 2 — количество голов, а 4 — размерность внутри головы).

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

💬 Цитаты

«Тензоры — это то, что я считаю атомами современного машинного обучения.»

Перси Лянг 38:07

«Без действия вы не узнаете, обладаете ли вы интеллектом или нет.»

Перси Лянг 5:38
👥 Спикер
📚 Упомянутые книги
🔗 Упомянутые сайты и проекты
📖 Термины
Тензор
Многомерный массив чисел, обобщающий понятия скаляра, вектора и матрицы до произвольного числа измерений.
Выравнивание ИИ (Alignment)
Процесс настройки систем искусственного интеллекта таким образом, чтобы их цели и поведение соответствовали человеческим ценностям и намерениям разработчиков.
Базовые модели (Foundation models)
Крупномасштабные модели ИИ (например, LLM), обученные на гигантских объемах неразмеченных данных, которые можно адаптировать под широкий спектр конечных задач.
Трансляция (Broadcasting)
Механизм в NumPy и PyTorch, позволяющий выполнять арифметические операции над тензорами разной формы путем автоматического виртуального копирования меньшего тензора.
Нотация Einops
Специальный синтаксический подход для манипулирования тензорами, основанный на именовании осей, что делает код более понятным по сравнению с классическими индексами.
📊 Цифры
🗓 Хронология
  1. 1801 Карл Гаусс изобретает метод наименьших квадратов для решения линейной регрессии вручную.
  2. 1943 Маккалох и Питтс публикуют первую теоретическую модель искусственного нейрона.
  3. 1950 Алан Тьюринг публикует статью с описанием «игры в имитацию» (теста Тьюринга).
  4. 1956 Джон Маккарти организует Дартмутский семинар, где рождается термин «искусственный интеллект».
  5. 1966 Публикация критического отчета о машинном переводе, спровоцировавшая первую зиму ИИ.
  6. 1969 Выход книги Минского и Пейперта «Перцептроны», остановившей исследования нейросетей.
  7. 1986 Румельхарт, Хинтон и Уильямс популяризируют алгоритм обратного распространения ошибки (backpropagation).
  8. 2006 Джеффри Хинтон публикует прорыввой метод эффективного обучения глубоких нейросетей.
  9. 2017 Google представляет архитектуру Transformer, заложившую основу современного генеративного ИИ.
⚖️ Другая сторона
Искусственный интеллект Stanford University NumPy PyTorch Einops Percy Liang