Нейронки то! Нейронки сё!

DTF, хей-йоу! Как дела, как настроение? Ну что, нейронки скоро нас поглотят? Хочу поделиться своими соображениями.

В общем, как и все инженеры, изначально я скептически отнёсся к AI. Подумал, что это очередная маркетинговая уловка. Однако опыт использования показывает, что тема довольно интересная. Первый опыт свёлся к использованию ChatGPT как очень быстрого поисковика, и уже даже это стало заметно ускорять работу. Единственной существенной проблемой была недостоверность выдачи. Чат часто выдаёт кашу из разных движков и технологий как нечто цельное. Указание контекста разработки в виде перечисления стека не сильно помогало.

В итоге работа сводится к постоянным уточнениям, и в какой-то момент начинаешь задаваться вопросом: «Чем я вообще занимаюсь? Может, проще было бы пойти и почитать доку?» Однако благодаря упорству и усидчивости удалось-таки справиться с поставленной задачей. А это уже результат!

Следующим этапом стало использование специализированных агентов, заточенных под код. Это стало уже интереснее, так как добавило интерактивности в работу. Теперь можно было с помощью нейронки генерировать не только код, но и создавать архитектуру проекта (папки, файлы).

Но этим всё не ограничилось, и в голову пришла мысль: а давай-ка попробуем развернуть необходимый стек для разработки. Опыт был достаточно интересным. Нейронка смогла развернуть на базе Docker контейнеры, настроить healthcheck и взаимосвязь между отдельными сервисами. В ходе поднятия контейнеров она отлавливала исключения, возникающие при падении отдельных сервисов, обрабатывала их, вносила коррекцию в конфиги и добивалась работоспособности контейнера. Результат меня порадовал: я получил полностью рабочую среду для мониторинга, тестирования и дальнейшей разработки проекта.

Этот базовый пример показывает, что нейросети в будущем будут оказывать на работу программиста ещё большее влияние, и похоже, что программирование в том виде, в котором мы его знаем, перестанет существовать подобно перфокартам.

Многие задаются вопросом, чего дальше ожидать от нейронок? Для себя я пока нашёл ответ, в основе которого лежит понимание технической реализации нейронок.

Помните, у вас в 2000-х была такая замечательная штука, как T9, подставляющая за вас слова при вводе? Алгоритм позволял угадывать, какое слово вы собираетесь ввести следующим, основываясь на различного рода метриках вашего ввода. Ну так вот, текущие нейронки (если упрощать) — это T9, прокачанная на огромном объёме информации.

Получаем закономерный вывод: нейронка — это не ИИ, это натренированный алгоритм. Она не способна к созданию чего-либо нового.

Под капотом она создаёт систему весов, которые определяют, какой результат наиболее близок к заданному вопросу. Тренировка нейросетей — это, по сути, бесконечные итерации скармливания информации с указанием ошибок и стремлением к идеальным весам.

Из этого следует, что для тренировки нейронки нам необходимо иметь довольно качественную информацию. Сейчас топовые компании активно используют GitHub и всю информацию в сети Интернет для тренировки своих LLM, но если информации в сети нет, то и тренировать не на чем. Раньше новый код создавался людьми и их воображением — это вело к росту компетенций и позволяло двигать прогресс. Теперь код будет создаваться генерацией, что скажется на компетенциях и приведёт к падению качества кода, так как разработчик всё меньше понимает, что делает.

Внедрение новых решений сначала ускорится до небес, а потом станет существенно замедляться. Переизбыток приложений уже сейчас приводит к громадной конкуренции на рынке и итоговой стоимости одного лида. Маркетинг станет ещё навязчивее и агрессивнее, а всем нам и так довольно сильно докучает повсеместная реклама.

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

В любом случае я не планирую оставлять развитие в плане computer science. Я продолжу развиваться, так как важно понимать, как это работает. Однако так же важно понимать, что в будущем задач, связанных с нейронками, будет становиться всё больше, и полностью игнорировать этот инструмент не получится. Даже эта статья стала возможна, благодаря тому, что мне не нужно тратить много времени на форматирование текста и ошибки.

Нейросеть сняла с меня эту рутину, но стал ли я умнее или грамотнее — остаётся за кадром...

1
1