У чому ШІ програє людям? Що взагалі таке програмування? І чи варто вже кидати ІТ і йти вчитися на токаря?
Відповіді у сьогоднішній статті.
Весь світ штучного інтелекту зараз стоїть догори ногами. У жорстокі перегони між OpenAI, Anthropic, Meta та Google вперед несподівано вирвався досі нікому не відомий китайський DeepSeek, зробивши конкуренцію ще завзятіше. Компанії випускають нові моделі, що відповідають ще точніше минулих і перевершують людей все більше.
Паралельно з розвитком мовних моделей розквітає зовсім новий напрямок: ШІ-агенти, нейромережі зі здатністю до самостійних дій.
Пару тижнів тому Цукерберг сказав, що вже наприкінці цього року Мета матиме «ШІ-інженерів рівня мідлів».
Тож це все? Програмістів витіснять ШІ, як колись ткачів витіснили ткацькі станки?
Зовсім ні. Ось три причини, чому це неможливо:
- Надійність.
Минулого року був неабиякий хайп навколо ШІ «Devin», який начебто мав замінити програмістів, бо зміг би самостійно створювати складні застосунки.
Проте за межами демонстрацій і презентацій він показав себе неймовірно погано: Devin виконав завдання успішно лише у 13.86% відсотках випадків.
Тобто, у 86.14% випадків він не виконав завдання, або виконав його невірно.
Це не просто погано — це надзвичайно погано.
Генеративний штучний інтелект має одну рису: результат його дій не є визначеним. Один і той самий запит може призвести до різних результатів на одній і тій самій моделі. І саме тому він має доволі низьку надійність у питаннях, які потребують дуже точних відповідей.
До того ж: уявіть, якби Devin успішно виконував завдання у 99% випадків. У 99% випадків він може з першої спроби створити потрібний застосунок. Але програмування — це ітеративний процес: завжди виявляються нові баги, які треба виправити, чи новий функціонал, якій треба додати. Або задачі стають такими складними, що виходять за межі одного застосунку (наприклад, якщо ми застосовуємо мікросервісний підхід до архітектури та розділяємо задачі між кількома застосунками).
У випадку, якщо Devin(у) треба буде виконати дві задачі, його надійність буде не 99%, а 99% від 99%, тобто 98.01% - саме така ймовірність того, що відбудеться спочатку одна подія, а потім інша. Три задачі — вже 97%, і так далі.
А кожна невдала спроба використати його — це витрати ресурсів. І тут ми підходимо до наступного аргументу.
- Витрати ресурсів.
Генеративний ШІ — це дуже складна й енергозатратна програма. Тим більше — передовий генеративний ШІ. Але проблема витрати ресурсів не тільки в електроенергії — великі компанії можуть дозволити себе платити по рахунках. ШІ витрачає найцінніший ресурс — час.
Devin думав над задачами по кілька годин — стільки поки що займає в ШІ процес аналізу (якщо його можна так назвати). Коли він завершував виконання, і зазнавав невдачі, кількагодинний процес треба було починати спочатку.
Ще одна фундаментальна проблема ШІ на додачу до невизначеності його результатів полягає у тому, що сучасний ШІ — це «чорна скриня», про внутрішній устрій якої ми не можемо знати точно. Сама суть алгоритмів самонавчання у тому, щоби вони ставали краще без нашої участі. Тому у разі помилки не можна зупинити ШІ на половині шляху (де він і зазнав помилки), і доводиться починати запит до нього спочатку.
Навіть джуніор-розробник виграє у ШІ в цьому питанні: якщо він помилився, можна знайти, де саме він помилився, і вказати йому на цю помилку. До того ж джун споживає значно менше електроенергії.
- Програмування — це не написання коду.
Це речення може показатися дивним, але воно правдиве. Так само як створення музики — це не написання нот. Музика може бути записана нотами, але ноти — це ще не музика. Програма записана за допомогою коду, але насамперед вона є логічною конструкцією, витвором розуму.
Великі мовні моделі аналізують лише мову. Ми поки що не навчили комп’ютер думати — тільки аналізувати текст і генерувати новий текст за знайденими патернами. І все, що роблять «ШІ-агенти для програмування» — це пишуть «ноти», схожі на ті, на яких їх тренували. Саме тому вони роблять великі помилки у проєктування, будують ненадійні рішення і притягують у код силу-силенну залежностей — вони лише генерують текст, схожий на той, що був у «data set» для тренування.
У XX сторіччі програмістам доводилося створювати свої власні програми майже з нуля — з чистої мови, або кількох бібліотек, якщо пощастило. У наш час з’явилася величезна кількість бібліотек на будь-який смак: від простого створення сайтів до математичних операцій над тензорами.
Чи знищило це програмістів? Ні! Просто фокус проблем змістився: задача програміста тепер — не «створити все з нічого», а «інтегрувати елементи для побудови гарного рішення».
Тож навіть якщо ШІ навчаться генерувати ідеальні застосунки, потрібні будуть люди, які знатимуть, які самі застосунки потрібно згенерувати. І потрібні будуть люди, які займатимуться інтеграцією цих застосунків у практичні рішення для бізнесу, держави чи суспільства.
За матеріалами:
1. https://venturebeat.com/ai/cognition-emerges-from-stealth-to-launch-ai-software-engineer-devin/
2. https://medium.com/@austin-starks/you-are-an-absolute-moron-for-believing-in-the-hype-of-ai-agents-c0f760e7e48e
Іван Синенко