Конец 2022 года расколол IT-сообщество. Джуны судорожно обновляли резюме, ожидая неминуемого увольнения. Сеньоры, напротив, постили скриншоты, где языковая модель уверенно импортировала выдуманные классы вроде `java.util.Magic`, и резюмировали: «Жестянка не способна написать базовый CRUD, расходимся».
Индустрия сломалась. Классическая матрица компетенций, где грейд определялся знанием синтаксиса, паттернов и скоростью выдачи фичей, больше не работает. Техлиды смотрят на пулл-реквесты вчерашних стажеров и видят код крепкого мидла. Синтаксически безупречный, покрытый тестами, с правильной обработкой ошибок и даже с комментариями в нужных местах.
Службы информационной безопасности годами выстраивали непроницаемые периметры. Мы внедрили строгий IAM, развернули DLP-системы, настроили SIEM для отслеживания аномалий и запретили разработчикам копировать логи на локальные машины. Корпоративная сеть превратилась в зону с высокой гравитацией, из которой данные не могут просто так вырваться наружу.
Я помню этот момент предельно ясно. Два часа ночи. Вкладка IDE горит красным от синтаксических ошибок. Я только что попросил языковую модель написать слой кэширования для нашего шлюза, а она выдала мне монолитный кусок кода из эпохи раннего PHP 5, проигнорировав паттерн Репозиторий и жестко вбив SQL-запросы прямо в контроллер. Моя первая реакция? «Она тупая».
Еще недавно мы измеряли технический долг годами. Мы планировали миграции баз данных, переписывали монолитные приложения на микросервисную архитектуру, месяцами готовили масштабное обновление фреймворков. Эти процессы подчинялись понятным законам программирования: код старел предсказуемо и линейно. Сегодня время сжалось. Самое болезненное и трудноуловимое легаси в современных проектах прячется в бережно выверенных промптах для GPT-3.5, которые разработчики закоммитили в репозиторий прошлой…
Вы пишете код. Мысль летит быстрее, чем пальцы успевают нажимать на клавиши. Вы делаете паузу на долю секунды, ожидая, что AI-ассистент подхватит контекст и предложит элегантное автодополнение. Проходит двести миллисекунд. Триста. Пятьсот. Ничего не происходит. Вы вздыхаете, возвращаете руки на клавиатуру и начинаете печатать самостоятельно. И ровно в этот момент на экране всплывает серый текст подсказки, ломая вашу строку, сбивая фокус и вызывая глухое раздражение.
Я смотрю на экран, где светится промпт длиной в две с половиной тысячи токенов. Он тщательно структурирован. В нем есть блоки `<system_rules>`, `<user_context>`, `<negative_constraints>`. Я прописал семь примеров few-shot, каждый с пошаговым объяснением логики вывода. Я выстроил защиту от галлюцинаций, защиту от SQL-инъекций, защиту от излишней вежливости. Я потратил на эту монументальную текстовую архитектуру три дня, выверяя каждое слово, словно писал драйвер для ядра Linux.
В 2018 году моя команда потратила четыре месяца на разработку системы маршрутизации входящих обращений в техподдержку. Задача звучала тривиально: прочитать текст письма, понять суть проблемы и назначить тикет на нужный отдел. Мы собрали датасет из пятидесяти тысяч исторических писем. Наняли асессоров для разметки. Развернули пайплайн очистки данных: стемминг, лемматизация, удаление стоп-слов. Обучили несколько моделей — от наивного Байеса до кастомного BERT. Настроили MLOps-инфраструктуру для…
Год назад казалось, что разработка AI-приложений навсегда изменилась. Вслед за релизом ChatGPT появились специализированные библиотеки, обещавшие превратить интеграцию языковых моделей в сборку простейшего конструктора. Фреймворки вроде LangChain, LlamaIndex и десятки их аналогов кричали с главных страниц GitHub: «Создайте свой RAG за пять строк кода!», «Запустите автономного агента за десять минут!». Мы поверили этим обещаниям. Мы щедро внедряли эти инструменты во все новые микросервисы,…
Холодный пот проступает не тогда, когда код не работает. Он проступает, когда код работает с первого раза, а ты не написал ни строчки. Ты просто нажал Tab. Copilot выплюнул двести строк идеального бойлерплейта: контроллер, сервис, репозиторий, DTO с валидацией, интерфейсы и моки для тестов. То, на что раньше уходило полдня монотонной работы под подкаст, теперь материализуется за секунду.
Запуск поиска по каталогу товаров часто упирается в одну и ту же инфраструктурную проблему — внедрение ElasticSearch. Инженеры поднимают кластер, пишут маппинги, настраивают стеммеры и заливают словари синонимов. Настройка лексического поиска требует постоянного ручного тюнинга весов и правил. Пользователь пишет «ноут для кодинга», а поисковый движок выдает пустую страницу, так как в базе лежит только «Ноутбук Apple MacBook Pro 14». Поддержка такого решения обходится дорого. Для каталогов…