Меня зовут Александр, я fullstack разработчик с 20+ годами опыта (php+js+golang и всякое по-мелочи). Количество мифов и заблуждений о разработке через ИИ превысило, на мой взгляд, все разумные пределы.
Я хотел бы порассуждать о причинах таких заблуждений.
Типичные заблуждения не-разработчиков звучат так:
-
“ИИ вот-вот заменит почти всех разработчиков, они станут не нужны”
-
“С помощью ИИ я могу создать свой гугл, ура!”
-
“ИИ без проблем решает любые задачи уровня Junior и иногда даже Middle”
-
…и тому подобное…
Возникают они не на ровном месте: любой человек без опыта в программировании может словами описать, что нужно сделать, и чудо-ИИ выдаст работающий код.
Впечатляет? – Ещё как!
К этому добавляется цунами из хайпа, типа “в компании X теперь 70% кода пишется ИИ”, “мы внедрили ИИ и повысили эффективность на 146%” и т.д.
Заявления эти по большей части принципиально непроверяемые, и исходят, как правило, от:
а.) Продавцов всего, что связано с ИИ
б.) Топ-менеджмента любых компаний, желающих отчитаться, что у них теперь тоже стильно-модно-молодёжные технологии (то же самое ранее было с микросервисами, блокчейном, соцсетями и прочей бигдатой). Стоимость акций в конце квартала сама себя не поднимет.
Почему я называю это именно заблуждениями? Потому что пока мы не наблюдаем массовый переход и замену разработчиков на ИИ, мы не видим ни одного серьезного продукта (с капитализацией $50+ млн), написанного ИИ. Ключевые разработки в самих ведущих ИИ компаниях так же делаются людьми, а не ИИ. И так далее.
Каковы фундаментальные причины этих заблуждений? На мой взгляд, их две:
Первая причина заблуждений – Слабое понимание особенностей ИИ и окружающей инфраструктуры
Многие что-то слышали про лимит контекстного окна, стоимость токенов, проблему галлюцинаций, ограничения размеров и производительности языковых моделей и т.д.
И если судить исключительно по новостям, там сплошь позитив: “новая модель Y теперь имеет меньше галлюцинаций, размер контекстного окна увеличен до 1M+ токенов, поставлен очередной рекорд в бенчмарке таком-то”.
Складывается впечатление, что для любых проблем уже или скоро будет найдено решение, так что это и не проблемы даже.
В действительности, эффективная разработка с помощью ИИ требует понимания особенностей ИИ на уровне “выше среднего”, схожего с уровнем разработчика: например, при увеличении контекстного окна может падать качество ответов. Одинаковые по смыслу тексты на разных языках, переведённые в токены, могут иметь разный размер, что может негативно повлиять на затраченные ресурсы. А главное, на сегодняшний день существует фундаментальное ограничение точности моделей, не позволяющее им стать “сверхинтеллектом”.
Что насчёт галлюцинаций? Неточности ответов ИИ не вызывают у обывателей беспокойства, потому что всегда можно сказать “переделай”.
Но чем серьезнее проект и чем выше цена ошибки, тем меньше времени на такие “переделки”.
Вы вряд ли захотите летать на самолёте, где хотя бы 10% важных решений принимается таким ИИ.
Или чтобы вас представлял адвокат, который вместо самостоятельной подготовки к делу делегировал её на условный ChatGPT.
Что если ваша “международная криптобиржа” потеряет все деньги клиентов из-за дырки, небрежно оставленной “искусственным интеллектом”?
(потому что в его обучающей выборке была такая же, из чьего-нибудь студенческого проекта на гитхабе)
Скрытый текст
– Шеф, у нас дыра в безопасности!
– Ну слава Богу, хоть что-то у нас в безопасности…
Помимо вышеперечисленного, ИИ обычно представлен в виде облачного сервиса. Облачные сервисы имеют нюансы:
-
они могут изменить условия тарифа, например поднять стоимость услуг (вплоть до “неподъемной”)
-
могут заблокировать вас по любой причине, например потому что вы из неугодной страны
-
ваша страна может заблокировать их, потому что они неугодные
-
вы можете получить вендор лок (vendor lock): вплоть до полной невозможности замены одного сервиса другим ввиду сильной завязанности на конкретное решение
-
комплаенс (compliance): постоянно надо иметь в виду, какие данные каким сервисам можно скармливать в соответствии с законами каждой страны
-
плохо сконфигурированное решение может вызвать расходы, способные очень быстро обанкротить и вас, и ваш проект
-
и т.д.
Опытные разработчики регулярно сталкиваются с подобными проблемами.
Вам же ИИ про это может и не сказать, а узнаете – когда жареный петух клюнет.
Вторая причина заблуждений – Почти полное непонимание сложности программных систем
Не-разработчики обычно оценивают сложность сайтов и приложений по “современности дизайна”, качеству графики и анимаций, количеству экранов, всевозможных функций и т.д.
То есть чем больше визуальной “красоты” и возможностей ткнуть куда-то, тем как бы “сложнее” и, видимо, дороже это было сделать и поддерживать.
В соответствии с таким подходом, поисковая система гугла очень простая (поле ввода и две кнопки), а старый сайт-визитка Джима Керри на порядки сложнее.
Программный код тоже воспринимается “сложным”, потому что там много текста на непонятном “иностраном” языке.
И вот ИИ как будто решает эту проблему, позволяя по простому текстовому описанию создать как красивые картинки, так и “сложный” код.
Это ли не революция? Возможно, пора начинать избавляться от разработчиков?
Так вот, разработка – это не про код или текст.
Это не про то, как текст на русском перевести в код php, или текст на английском перевести в код golang.
Разработка – это про построение систем. Про их компоненты, характеристики, взаимосвязи, контексты, и то, как это всё сплести воедино, чтоб работало как надо.
Нет сомнений, ИИ способен написать технически выполняющийся код.
-
Но насколько этот код встраивается в остальную систему, соответствует принятым в конкретном проекте стандартам?
-
Насколько и как он масштабируется, какая его вычислительная сложность по времени и по памяти?
-
При имеющихся условиях и ограничениях, на каком железе его запускать и какую нагрузку он будет держать?
-
Для какой версии языка этот код, и как он поведёт себя при обновлении до следующей мажорной версии, или наоборот при даунгрейде?
-
Нет ли вы этом коде каких-то стрёмных зависимостей?
ИИ наверняка сможет правильно ответить и на эти вопросы. (если не сгаллюцинирует лол)
Но только при условии, что вы сами сначала будете про них знать, вспомните и зададите.
В противном случае вся такая “разработка через ИИ” вряд ли ли будет целенаправленным движением из точки А в Б.
А будет скорее набором случайных действий со случайными результатами. И с утомляющим количеством тупиков и “переделываний”.
Послесловие
В современном ИИ есть немало хорошего.
Если вы разбираетесь в какой-то теме, то ИИ будет иногда экономить вам время. Ибо вы способны проверить – не добавляет ли он лишнего, не забывает ли нужное.
Если не разбираетесь, то ИИ может быть грамотным, но очень ленивым учителем, которому придётся задавать много уточняющих вопросов.
В любом случае, существенную часть работы придётся делать именно вам, а не “волшебной палочке” в виде ИИ.
А ИИ будет скорее инструментом, полезным при определённых условиях и в правильных руках.
P.s.: Текст разрешается копировать только в неизменном оригинальном виде, с указанием авторства и ссылкой н�� оригинал.
Автор: tkutru


