Я рад представить «Карту навыков AI-инжиниринга». AI позволяет нам создавать программное обеспечение совсем иначе, чем в 2022 году, и у каждого, кто обладает навыками, позволяющими воспользоваться этим сдвигом, появляется множество интересных проектных и карьерных возможностей. Но вокруг AI — шумная, переполненная хайпом информационная среда. Как же понять, какие навыки вам стоит осваивать в первую очередь? Вместе с командой я работал над созданием карты навыков AI-инжиниринга, чтобы помочь (i) разработчикам расставить приоритеты в обучении и (ii) работодателям — нанимать квалифицированных разработчиков.
На основе анализа более 10 000 вакансий, десятков структурированных интервью с AI-экспертами, менеджерами по найму и рекрутерами, результатов опросов и других онлайн-данных мы выделили четыре самых важных навыка AI-инжиниринга:
- Создание и развёртывание AI-приложений
- Основы программной инженерии
- Использование кодинг-агентов
- Формирование продукта
Наш процесс можно неформально представить как кластеризацию огромного массива данных о вакансиях и экспертных интервью с целью выявить самые важные навыки — не только на сегодня, но и на ближайшее будущее.
Примечание по терминологии: я говорю о навыках AI-инжиниринга, а не о роли «AI-инженера» (человека, чья работа — создавать AI-системы), потому что первое понятие гораздо шире. Сегодня все разработчики должны уметь работать с облаком, и лишь у немногих есть должность «облачный инженер». Точно так же всем разработчикам — full-stack инженерам, data-инженерам, DevOps-инженерам, инженерам машинного обучения и, разумеется, AI-инженерам — понадобятся навыки AI-инжиниринга.
Создание и развёртывание AI-приложений. Ключевое отличие AI-приложений от обычных в том, что первые дают непредсказуемые результаты. Отправляя запрос LLM, вы не знаете заранее, что получите в ответ. Обучая алгоритм глубокого обучения, вы не знаете, какой прогноз он сделает на новых данных. Традиционное ПО ведёт себя гораздо более предсказуемо.
Специалисты, умеющие создавать и развёртывать AI-приложения, понимают базовые компоненты AI (такие как LLM, контекстная инженерия, RAG, агентные рабочие процессы, машинное и глубокое обучение) и — что важно — умеют с помощью статистических методов измерять, направлять и контролировать AI-системы, делая их поведение более предсказуемым. Ключевой навык здесь — умение выстраивать дисциплинированные циклы оценки (evals) и анализа ошибок.
Основы программной инженерии. Когда вы глубоко понимаете, как работает ПО, вы можете создавать гораздо более эффективно. Разработка ПО требует поиска компромиссов между стоимостью, масштабируемостью, надёжностью, скоростью и многим другим. Безопасность и конфиденциальность добавляют ещё больше сложности.
Понимание основ ПО позволяет увидеть, какие компромиссы вообще возможны. Это ведёт к более взвешенным решениям при выборе технологического стека, проектировании системной архитектуры и хранилища данных, тестировании и так далее. Результат оказывается намного лучше, чем у неопытного разработчика, который вайбкодит решение, не понимая, какие компромиссы закладывает его кодинг-агент, — а они часто оказываются неудачными, потому что он не знает, какой контекст дать агенту. Понимание основ программной инженерии позволяет находить правильные компромиссы, направляя кодинг-агентов на точном языке программной инженерии.
Использование кодинг-агентов. Эффективное использование агентного кодинга — теперь ключевой навык для каждого разработчика. Когда вы владеете этим навыком, у вас есть хорошая ментальная модель того, как работают агенты. Вы понимаете ограничения агентов и умеете их обходить, а также быстро направлять их — зная, когда вмешаться, а когда оставить в покое, — чтобы создавать надёжное ПО без лишней траты времени и токенов.
Для этого нужно уметь управлять контекстом кодинг-агента, находить баланс между планированием и исполнением и помогать агенту самостоятельно замыкать циклы, предоставляя верификаторы или эвалы. Также нужно уметь работать с чёткой спецификацией (и понимать, когда можно обойтись без неё), оркестрировать совместную работу нескольких агентов и избегать таких рисков, как повреждение агентом вашей продакшн-базы данных. Поскольку агентный кодинг быстро развивается, умелое использование кодинг-агентов — это не только владение передовыми практиками, но и привычка постоянно пробовать новые инструменты и обновлять свои рабочие процессы по мере изменения этих практик.
Формирование продукта. При наличии чёткой спецификации кодинг-агенты стремительно становятся всё лучше в её исполнении. Поэтому наша работа как инженеров всё больше смещается в сторону решения, что именно должно быть в спецификации. Инженерам больше не стоит ждать, что им дадут дизайн до пикселя и попросят лишь реализовать его. Напротив, эффективный AI-инжиниринг требует продуктового мышления, понимания бизнес-контекста и целей клиентов, чтобы вы могли участвовать в формировании продукта и продвигать разработку.
AI также даёт вам возможность брать на себя больше ответственности и проявлять больше инициативы, чем раньше. Вы можете находить интересные проблемы и возможности и действовать так, чтобы ответственно ими воспользоваться. Чтобы воспользоваться этой возможностью, нужно уметь продвигать проекты. Например, понимать, когда стоит быстро собрать MVP и отдать его пользователям на тестирование, а когда — замедлиться и потратить больше времени на более тщательную проработку.
В основе всех этих навыков лежит установка на непрерывное обучение. AI продолжает быстро меняться, поэтому мы все должны продолжать учиться и развивать свои навыки, осваивая новые лучшие практики по мере их появления.
Основной фокус DeepLearning.AI — помогать разработчикам осваивать эти навыки AI-инжиниринга. Мне есть что рассказать о каждом из этих четырёх навыков, и в ближайших публикациях я подробно раскрою каждый из них, а также представлю более детальную карту навыков AI-инжиниринга. Глядя на то, куда движется AI-инжиниринг, я невероятно воодушевлён тем, что мы все сможем создать. Надеюсь, вы сыграете в этом будущем захватывающую роль.





