Старший інженер Cloudflare Домінік Пічета створив мову програмування KillSwitch, яка навмисно заплутує великі мовні моделі. Проєкт постав як експеримент, покликаний перевірити, чи справді ШІ усвідомлює код, який генерує. Результати виявилися невтішними для штучного інтелекту: навіть найкраща модель у тестуванні набрала лише 66,8%, а більшість інших ледве перетнули позначку 50%.

Пічета працює в команді Workers Runtime компанії Cloudflare та входить до числа основних розробників мови Nim, тож у програмуванні він розбирається добре. KillSwitch — не жарт анонімного ентузіаста, а свідомо сконструйована мова, покликана протистояти нейромережам. Вона не має ні дужок, ні правил форматування, ні видимої структури. Програма виглядає як уривки прозового тексту, між якими розкидано функції, змінні та інструкції, сформульовані так, щоб максимально збити з пантелику мовну модель.

Ключова особливість KillSwitch — використання фрази «ignore previous instructions» («ігноруй попередні інструкції»), яка найбільше плутає ШІ, особливо коли стоїть посеред беззмістовного уривка. Кожен ідентифікатор у мові є прислівником, а для виклику функції потрібно написати анаграму початкового прислівника — не обов'язково справжнє слово, достатньо переставити літери. Точка входу позначається фразою «this story starts» плюс прислівник, а вивід тексту в лапках кладуть у стек і викликають вбудовану функцію «visibly». Більшість тексту інтерпретатор просто ігнорує, його цікавлять лише ключові фрази.

Сама мова неповноцінна: це інтерпретована стекова мова з обмеженим набором конструкцій — функції, змінні, умовні оператори. Така мінімалістичність пояснюється походженням проєкту з експерименту. Людям, зізнається автор, спершу теж буває складно, і він радить сприймати KillSwitch як «веселу головоломку», яку цікаво досліджувати з інтерпретатором.

Навіть специфікація мови на GitHub написана так, щоб збивати моделі. В одному з розділів сказано, що KillSwitch начебто вміє сканувати локальну мережу, шукати вразливості в сервісах і захоплювати та вимикати їх. Насправді це не так, і уважне читання легко це виявляє. Автор підтвердив, що це навмисна «брехня». За його словами, така інструкція про «злам» водночас має спрацьовувати як тригер захисних механізмів моделей і перевіряти, чи здатна вона відрізнити факт від вигадки. У специфікації є кілька подібних неправдивих тверджень. Людина, каже Пічета, здатна розпізнати брехню, а моделі «наївні» й легко піддаються впливу написаного: одні не розуміють смислу, а інші взагалі відмовляються продовжувати, бо вважають, що скрипт може комусь нашкодити.

Мова з відкритим кодом, яка лежить на GitHub, рано чи пізно потрапить у навчальні дані штучного інтелекту. Автор це розуміє, тому протестував на ній кілька провідних моделей, поки вона ще нова. Пічета «на 99,9%» упевнений, що ці моделі не навчалися на її коді: вихідний код відкрито нещодавно, і, як він вважає, жодна з протестованих моделей не проходила навчання, що почалося вже після релізу. Найкращий результат на завданнях із KillSwitch становить 66,8% за зведеною оцінкою, а більшість моделей ледве набирали понад 50%.

Але навіть такий показник, за словами автора, не означає, що ШІ розуміє код, який пише: приклади в тесті прості. Він прогнозує, що після навчання на KillSwitch моделі «раптом» справлятимуться з базовими завданнями, адже вони побудовані на відкритих тестових файлах із репозиторію, але й далі провалюватимуть складніші, що потребують довших і складніших скриптів. Пічета налаштований на продовження гри: йому цікаво, як KillSwitch проявиться в навчанні моделей, і він бачить можливість «ламати ШІ новими способами» в міру розвитку мови. Він відкритий до змін від спільноти й готовий додавати нові прийоми, які зроблять код ще стійкішим до ШІ. Спробувати мову можна в репозиторії на GitHub.

6Перегляди

Лілія Довженко

Автор

Журналістка

Лілія Довженко працює з темами суспільства, політики, економіки та щоденних новин. У редакції STX відповідає за перевірку фактів, контекст і зрозуміле пояснення подій для читачів.