Время от времени попадаются презентации, которые не просто учат чему-то новому, но и дают вам ключ к пониманию хаоса, происходящего вокруг.
Карпатый — не просто очередной эксперт по искусственному интеллекту. Будучи бывшим директором по искусственному интеллекту в Tesla и одним из основателей OpenAI, он принимал активное участие в создании технологий, которые сейчас меняют мир. Когда он говорит, стоит внимательно слушать — не только то, что он говорит, но и те связи, которые он проводит.
Его центральный аргумент одновременно прост и убедителен: на протяжении почти 70 лет процесс создания программного обеспечения оставался принципиально неизменным. Однако за последнее десятилетие он дважды претерпел революционные изменения.
Первая революция была незаметной. Вторая происходит прямо сейчас, переворачивая с ног на голову само понятие «кодирования». Она создаёт новый тип компьютера, новый тип программирования и открывает огромные возможности для всех, кто готов это увидеть.
Подробный брифинг-документ: Изменение парадигм программного обеспечения и эра ИИ
Данный документ представляет собой обзор ключевых идей, представленных Андреем Карпатым в его выступлении "Andrej Karpathy: Software Is Changing (Again)". В нем рассматриваются фундаментальные изменения в разработке программного обеспечения, роль больших языковых моделей (LLM) как новой операционной системы, их характеристики, а также возможности и вызовы, связанные с созданием частично автономных приложений и адаптацией инфраструктуры для взаимодействия с ИИ-агентами.
1. Эволюция программного обеспечения: От Software 1.0 к Software 3.0
Андрей Карпатый утверждает, что программное обеспечение претерпевает фундаментальные изменения, которые не наблюдались на протяжении 70 лет. Он выделяет три основные парадигмы:
Software 1.0: Код, написанный человеком. Это традиционное программирование, где "вы пишете код для компьютера". Примером может служить код на C++ в автопилоте Tesla.
Software 2.0: Нейронные сети и их веса. В этой парадигме программист не пишет код напрямую, а "настраивает наборы данных, а затем запускает оптимизатор для создания параметров этой нейронной сети". Карпатый сравнивает Hugging Face с "эквивалентом GitHub в Software 2.0". Он отмечает, что в Tesla значительная часть функциональности автопилота, изначально написанная на C++ (Software 1.0), была "мигрирована в 2.0", что привело к "буквально поеданию стека программного обеспечения автопилота".
Software 3.0: Программирование больших языковых моделей с помощью промтов. Это новое и уникальное изменение, где "нейронные сети стали программируемыми с помощью больших языковых моделей". Карпатый называет это "новым видом компьютера", где "ваши промты теперь являются программами, которые программируют LLM". Примечательно, что эти "промты написаны на английском языке", что делает его "очень интересным языком программирования". Это означает, что "теперь мы программируем компьютеры на английском языке".
Автор подчеркивает, что специалисты, входящие в индустрию, должны быть "свободно владеть всеми [парадигмами]", поскольку "у всех них есть небольшие плюсы и минусы".
2. LLM как новая операционная система и утилита
Карпатый проводит множество аналогий для объяснения сущности LLM:
ИИ как новая электроэнергия: Следуя мысли Эндрю "ИИ — это новая электроэнергия", Карпатый утверждает, что LLM "определенно ощущаются так, будто обладают свойствами коммунальных услуг". LLM-лаборатории тратят капитал на обучение моделей (строительство сети) и операционные расходы на предоставление доступа через API (подача интеллекта). Он отмечает, что сбои в работе LLM-провайдеров могут привести к "понижению интеллекта в мире", подобно "когда напряжение ненадежно в сети".
LLM как фабрики (Fabless/Intel Model): Большие капиталовложения, необходимые для создания LLM, напоминают фабрики по производству полупроводников. Использование Nvidia GPU без собственного аппаратного обеспечения похоже на "fabless модель", тогда как разработка собственного оборудования (как Google с TPU) напоминает "модель Intel".
LLM как операционные системы: Это наиболее сильная аналогия. LLM "не просто электричество или вода... это все более сложные программные экосистемы".
Параллели с ранними компьютерами (1960-е): LLM-вычисления "все еще очень дороги", что приводит к их централизации в облаке. Пользователи являются "тонкими клиентами", взаимодействующими по сети, а время работы распределяется с помощью "разделения времени (time sharing)". Это очень похоже на то, "как выглядели компьютеры в то время".
Аналогии с компонентами ОС: LLM является "эквивалентом ЦП", контекстные окна — "памятью", а LLM "оркестрирует память и вычисления для решения проблем".
Приложения и пользовательский интерфейс: Подобно тому, как приложение работает на Windows/Linux/Mac, "приложение LLM, такое как Cursor, можно запустить на GPT, Claude или Gemini". Автор отмечает, что "графический интерфейс (GUI) еще не был изобретен в общем виде" для прямого взаимодействия с LLM, как это было с появлением GUI для операционных систем.
Реверс диффузии технологий: В отличие от большинства технологий (электричество, криптография, интернет), которые сначала используются правительствами и корпорациями, а затем распространяются на потребителей, LLM "перевернуты". Они "в руках всех нас", и люди используют их для повседневных задач, в то время как "корпорации и правительства отстают в принятии всех этих технологий".
3. "Психология" LLM и их ограничения
Карпатый предлагает рассматривать LLM как "стохастические симуляции людей", обладающие "возникшей психологией, похожей на человеческую".
Сверхчеловеческие способности: LLM обладают "энциклопедическими знаниями и памятью" и могут "запоминать гораздо больше вещей, чем любой отдельный человек".
Когнитивные дефициты: Галлюцинации: Они "галлюцинируют довольно много" и "придумывают вещи", не имея достаточной "внутренней модели самопознания".
Скачкообразный интеллект (Jagged intelligence): LLM могут быть "сверхчеловеческими в некоторых областях решения проблем", но при этом "допускать ошибки, которые в принципе не допустит ни один человек" (например, 9.11 > 9.9).
Антероградная амнезия: LLM "не делают этого по умолчанию" и не "умнеют по умолчанию", а их контекстные окна "очищаются каждое утро", подобно героям фильмов "Помни" и "50 первых поцелуев". Это означает, что "контекстные окна — это действительно своего рода рабочая память, и вам нужно довольно прямо программировать рабочую память".
Уязвимости безопасности: LLM "достаточно доверчивы" и "подвержены рискам внедрения промтов", могут "утечь ваши данные".
Взаимодействие с LLM требует одновременного учета их "сверхчеловеческих" способностей и "когнитивных дефицитов".
4. Возможности: Частично автономные приложения
Большая возможность заключается в создании "частично автономных приложений", которые интегрируют LLM.
Пример Cursor и Perplexity: Эти приложения демонстрируют ключевые свойства:
Управление контекстом: LLM выполняют "тонны управления контекстом".
Оркестровка множественных вызовов LLM: Приложение управляет различными моделями (встраивание, чат, применение изменений).
Специфический для приложения GUI: Графический интерфейс критически важен для "человека для аудита работы этих ошибочных систем и для ускорения работы". Визуальные представления "чрезвычайно важны" для ускорения "цикла генерации и верификации".
Ползунок автономности (Autonomy Slider): Пользователь может регулировать уровень автономности, от автодополнения до полной автономности (например, изменение части кода, целого файла или всего репозитория). Это позволяет "настраивать объем автономности, который вы готовы предоставить для этой задачи".
Кооперация человека и ИИ: В таких приложениях ИИ выполняет "генерацию", а люди — "верификацию". Цель — "сделать этот цикл как можно более быстрым".
Ограничение ИИ ("Keep the AI on the leash"): Карпатый предостерегает от чрезмерного восторга по поводу полностью автономных агентов. "Неполезно получать diff в 10 000 строк кода в мой репозиторий", поскольку человек все равно является "узким местом" для проверки. Важно "держать ИИ на поводке", чтобы он не был "чрезмерно реактивным". Это означает "работу с небольшими, инкрементальными частями" и "более конкретные промты", чтобы повысить вероятность успешной верификации.
Урок из самоуправляемых автомобилей: Опыт Tesla с автопилотом показывает, что полная автономность занимает "долгое время". "Мы все еще работаем над автономностью", и даже в 2024 году "все еще много телеуправления и много человека в цикле". Это приводит к выводу, что "2025 год — это год агентов" вызывает "очень большую озабоченность", и "это будет десятилетие агентов", требующее "людей в цикле" и осторожности.
Костюм Железного человека (Iron Man Suit): Эта аналогия суммирует желаемый подход: "меньше роботов Железного человека и больше костюмов Железного человека", которые являются "как дополнением, так и агентом". Фокус должен быть на "частично автономных продуктах" с настраиваемыми GUI и UI/UX, чтобы ускорить цикл верификации, но при этом сохранять возможность увеличения автономности со временем.
5. Революция "Vibe Coding" и адаптация инфраструктуры для агентов
Появление LLM делает "каждого программистом", потому что "каждый говорит на естественном языке, таком как английский".
Vibe Coding: Термин "vibe coding" описывает процесс создания программного обеспечения без глубоких знаний традиционных языков программирования, просто описывая желаемое поведение LLM. Карпатый демонстрирует, как он смог создать простое приложение iOS на Swift, не зная Swift, и приложение Menu Genen.
Проблема "реализации" (Making it real): Хотя "код был на самом деле легкой частью", "большая часть заключалась в том, чтобы сделать его реальным", включая "аутентификацию, платежи, доменное имя и развертывание". Это было "действительно трудно", поскольку "все это было не кодом, все это devops было в браузере, кликая по вещам".
Построение для агентов: Это приводит к заключительной мысли: "можем ли мы просто строить для агентов?" Агенты — это "компьютеры, но они похожи на людей... они должны взаимодействовать с нашей программной инфраструктурой".
lm.txt и LLM-ориентированная документация: Подобно robots.txt, можно создать lm.txt для инструкций LLM. Важно переводить документацию, предназначенную для людей (списки, жирный шрифт, картинки), в формат, легко читаемый LLM, такой как Markdown. Компании, такие как Vercel и Stripe, уже "переводят большую часть своей документации специально для LLM".
Переход от "кликай" к действиям: Документация должна быть адаптирована так, чтобы вместо инструкций типа "нажмите здесь" предлагались прямые команды, которые может выполнить LLM-агент (например, команды curl).
Инструменты для ингестии данных, дружественные LLM: Появляются инструменты (например, get-ingest для GitHub, deep.wiki), которые преобразуют человеко-ориентированный контент (например, репозитории GitHub) в форматы, легко усваиваемые LLM (например, один гигантский текст с древовидной структурой). Это значительно упрощает взаимодействие LLM с существующей цифровой инфраструктурой.
Заключение
Андрей Карпатый подчеркивает, что сейчас "удивительное время для входа в индустрию". Предстоит "переписать тонну кода", и эта работа будет выполняться как профессионалами, так и "vibe-кодерами". LLM, функционирующие как операционные системы 1960-х годов, представляют собой "ошибочные духи людей", с которыми нужно научиться эффективно работать. Это требует адаптации инфраструктуры, создания частично автономных продуктов с настраиваемыми GUI и ползунком автономности, чтобы оптимизировать цикл генерации-верификации. В конечном итоге, по аналогии с костюмом Железного человека, цель состоит в том, чтобы постепенно "передвигать ползунок от левого к правому", увеличивая автономность программного обеспечения на протяжении следующего десятилетия, сохраняя при этом человека в цикле из-за текущих ограничений ИИ.