ChatGPT, Bard та інші видатні великі мовні моделі (ВММ) домінували в наших новинних стрічках протягом останнього року. І це правильно. Ці захоплюючі технології дають нам змогу зазирнути в майбутнє, дізнатися про силу та можливості ШІ.
Хоча більша частина громадського інтересу зосереджена на створенні тексту, зображень і відео, ці інструменти можна використовувати для багатьох інших дисциплін, наприклад, для автоматизації програмного забезпечення.
Ця стаття буде глибоким зануренням у те, як оперативна інженерія може допомогти нам в автоматизації програмного забезпечення. Однак першим пунктом призначення має бути вивчення самої оперативної інженерії.
Що таке оперативний інжиніринг?
Великі мовні моделі, такі як ChatGPT, видають результати на основі підказок або речень, які ми їм надаємо. Однак результати сильно варіюються залежно від того, які слова чи інструкції ми використовуємо. Коли ми вводимо нечіткі та неточні інструкції, результат може не влучити в ціль.
Оперативний інжиніринг – це продуманий дизайн вхідних даних, які допомагають отримати більш точний, достовірний і, в кінцевому рахунку, корисний контент від цих захоплюючих систем штучного інтелекту.
Системи великих мовних моделей (LLM) використовують обробку природної мови (NLP) для інтерпретації висловлювань, які ми їм даємо. Машини перетворюють ці запитання або інструкції (тобто підказки) на код і проганяють його через свої величезні сховища даних, щоб створити контент у будь-якому форматі, який ми вкажемо (тобто текст, зображення, код).
ChatGPT було протестовано на більш ніж
570 ГБ даних
. Навчальний матеріал складається з книг, статей, веб-текстів тощо. Іншими словами, ці набори даних містять неймовірну кількість знань.
Хоча ми можемо розуміти процес, значна частина того, що відбувається під капотом цих систем, відбувається поза нашим зором. Звичайно, ми контролюємо входи і виходи, навчаємо систему, але як саме працюють ці алгоритми і приймають рішення – досі залишається загадкою. За словами Сема Боумена, професора штучного інтелекту з Нью-Йоркського університету, “Ми його побудували, ми його навчили, але ми не знаємо, що він робить”.
Оперативний інжиніринг допомагає нам керувати цим хаосом, використовуючи вихідні дані, які дають передбачувані та придатні для використання результати. Вони пропонують нам шлях до розкриття величезних обсягів знань, що містяться в цих додатках.
Дисципліна стає новою професією
Курси з’являються повсюдно, оскільки компанії працюють над тим, як використати цю потужну технологію.
Як може допомогти оперативна інженерія
з програмною автоматизацією?
Автоматизація програмного забезпечення та магістратура мають багато спільного. Обидва вони дають змогу зазирнути в майбутнє, де машини доповнюватимуть людську творчість, створюючи більш швидкі та продуктивні робочі місця.
Є кілька цікавих сфер, де обидві ці технології можуть об’єднатися. Ось три способи, як ми можемо використовувати швидку інженерію в автоматизації програмного забезпечення.
#1. Код генерації
Написання коду – одне з найперспективніших застосувань великих мовних моделей. Магістерські програми зі штучного інтелекту перебувають у зародковому стані. У наступні кілька років ця технологія повинна вдосконалюватися, оскільки більше ресурсів буде додано як до обчислень, так і до навчання.
У довгостроковій перспективі ці досягнення можуть призвести до того, що ШІ буде писати цілі програми з обмеженим втручанням людини або взагалі без нього. Однак, на сьогоднішній день LLM має певні обмеження. Якість результату LLM-кодування залежить головним чином від якості вхідних даних. Як то кажуть, сміття на вході, сміття на виході.
Звісно, не лише ефективна оперативна інженерія є перешкодою на шляху. Як зазначено в ChatGPT та великі мовні моделі в академічних колах: Можливості та виклики (Meyer, 2023), “Наразі ChatGPT, швидше за все, буде успішним для точного написання невеликих блоків коду, тоді як його надійність при написанні більших/складніших програм (наприклад, програмного пакету) є сумнівною”.
Крім того, в нещодавній статті в журналі Nature деякі вчені-комп’ютерники попередили, що до генерації коду за допомогою LLM слід підходити з певною обережністю. Ще одна сучасна газета,
Великі мовні моделі та прості, дурні помилки
(Jesse, 2023), продемонстрував, як популярний LLM, Codex, який використовується постачальником Copilot, створює “відомі, дослівні SStuB з імовірністю вдвічі більшою, ніж відомий, дослівно правильний код”.
Хоча ці проблеми не можна ігнорувати, все ще існує багато виправданого хвилювання щодо того, як ці програми можуть допомогти демократизувати розробку програмного забезпечення, підтримуючи як технічні, так і нетехнічні команди.
Мабуть, найбільш вражаючим є те, що такі інструменти, як ChatGPT, можуть створювати функціональний код дуже швидко. За допомогою правильних підказок інженери можуть скоротити час, необхідний для програмування певних типів коду, забезпечуючи прискорення життєвого циклу розробки програмного забезпечення.
Наприкінці 2022 року популярний програмний хаб
Заборонив переповнення стека, згенероване штучним інтелектом
відповідає на своєму форумі. Вони посилалися на високий рівень помилок і неточностей, пов’язаних з додатком. Однак технологія перебуває на стадії зародження; крім того, незадоволеність результатами роботи штучного інтелекту пояснюється не стільки самою технологією, скільки поганим оперативним проектуванням.
Незважаючи на побоювання щодо технологій, нещодавня
нещодавня робота McKinsey
висвітлює вплив, який швидка інженерія вже має на світ програмування. Консалтингова фірма Стан штучного інтелекту в 2023 році: Рік прориву генеративного ШІ поділився двома цікавими тенденціями. По-перше, 7% організацій, які інвестували в ШІ, наймають швидких інженерів. По-друге, компанії, які використовують ШІ, скоротили кількість посад, пов’язаних з розробкою програмного забезпечення, з 38% до 28%.
Один із способів інтерпретувати ці тенденції полягає в тому, що підприємствам комфортно з таким налаштуванням і вони готові передати програмну автоматизацію своїм машинам. Хоча ці цифри можуть налякати існуючих інженерів, опитування McKinsey показує, що “лише 8 відсотків стверджують, що розмір їхніх робочих груп зменшиться більш ніж на п’яту частину”. Загалом, інженерам, ймовірно, доведеться перекваліфікуватися, щоб скористатися перевагами тенденції до автоматизації програмного забезпечення, створеного штучним інтелектом.
Одне з очевидних застосувань автоматизації програмного забезпечення за допомогою ШІ – створення ботів-автоматизаторів. Однак, хоча оперативний інжиніринг є нібито зручним інтерфейсом завдяки тому, що він орієнтований на діалог, ще невідомо, чи зможе він витіснити існуючі рішення.
Багато в чому таке програмне забезпечення, як ZAPTEST, вже демократизувало ринок автоматизації програмного забезпечення. Зараз з’явилися інструменти без коду, які дозволяють нетехнічним командам створювати високоякісних RPA-ботів. Хоча таке програмне забезпечення, як ChatGPT, може створювати ботів, його впровадження та підтримка можуть виявитися складними для будь-кого, хто не є інженером-програмістом, і навіть для тих, хто ним є.
Запис взаємодії людини з комп’ютером з вашого графічного інтерфейсу та перетворення цих рухів у код набагато зручніше, ніж використання підказок. У поєднанні з потенціалом LLM створювати нестабільний і багатий на помилки код, можна з упевненістю сказати, що програмне забезпечення RPA нікуди не дінеться в осяжному майбутньому.
#2. Перетворення неструктурованих даних
Неструктуровані дані не є сильною стороною роботизованої автоматизації процесів. Технологія не була створена для обробки таких речей, як електронні листи, фотографії, аудіо тощо. Інструменти RPA потребують заздалегідь визначених моделей даних з організованими структурами.
Величезна частка неструктурованих даних включає в себе текст на природній мові. Великі мовні моделі будуються для того, щоб “розуміти” цю інформацію і витягувати з неї семантичне значення. Таким чином, це створює значні можливості для команд, які хочуть інтерпретувати ці тексти і перетворити їх у формат, сумісний з інструментами RPA.
Багато команд роками використовують обробку природної мови (NLP), щоб допомогти їм з аналізом настроїв. Цей процес, також відомий як “видобуток думок”, допомагає організаціям бути в курсі почуттів і ставлення споживачів до брендів. У більшості випадків ці інструменти використовуються для виявлення позитивних, негативних і нейтральних настроїв у тексті. Однак технологія здатна розпізнавати емоції набагато точніше.
Хоча на ринку є кілька інструментів, які пропонують таку функціональність, LLM надає шлях до більш універсального використання, що виходить за рамки розуміння того, як люди ставляться до продукту чи послуги. Наприклад, останніми роками популярність аналітики даних стрімко зросла. Великі дані дають компаніям перевагу, дозволяючи їм отримувати інсайти та розуміння, які допомагають у прийнятті рішень на основі даних.
Інструменти роботизованої автоматизації процесів можуть допомогти зі збором даних. Однак, як ми вже згадували вище, вони борються зі специфічними типами інформації. Однак у поєднанні з інструментами штучного інтелекту, які використовують великі мовні моделі, RPA може збирати великі обсяги даних і використовувати їх для генерації інформації, необхідної для інструментів бізнес-аналітики (BI).
Одним з найцікавіших аспектів генеративного ШІ є його здатність осмислювати вхідні дані. За допомогою правильного оперативного проектування команди можуть перетворити ці дані у формат, який підходить для їхніх інструментів RPA.
RPA може допомогти зробити робочі процеси з великими даними більш ефективними. Для початку, ви можете використовувати його як для введення, так і для вилучення даних. Однак, мабуть, найцінніші та найцікавіші випадки використання пов’язані з використанням інструментів RPA для перетворення, очищення та завантаження даних або забезпечення швидкої, ефективної та точної міграції даних.
Ще одним важливим моментом є управління даними. Автоматизація запитів даних допомагає організаціям дотримуватися нормативних вимог і тримає дані поза увагою працівників, які працюють вручну.
#3. Автоматизація тестування
Автоматизація тестування набула популярності в колах розробників програмного забезпечення, оскільки вона забезпечує швидший спосіб перевірки програмного забезпечення. Тестування та забезпечення якості традиційно були дорогими та трудомісткими процесами; автоматизація тестування забезпечує вирішення обох цих проблем.
Одна з перших речей, яку може зробити оперативна інженерія, – це покращити якість тестових кейсів. За допомогою правильних підказок ці машини можуть аналізувати тестові кейси, виявляти проблеми та способи їх усунення. Цей процес може розширити обсяг тестових кейсів і призвести до більш комплексних тестів.
Наприклад, ви можете подати код великої мовної моделі так само, як і людині-рецензенту. Ці машини можуть швидко прогнати код і виявити помилки, баги та навіть визначити проблеми з продуктивністю. Можливо, більш інтригуюче, що LLM також пропонують можливість завершення коду тестового кейсу з простих фрагментів, що прискорює створення тестових кейсів.
Оперативна інженерія спрямована на вирішення багатьох проблем, які спричинили появу підходу Agile/DevOps до розробки програмного забезпечення. Інженерам потрібні ефективні, легко повторювані тести, які можуть виявити проблеми ще до розгортання додатків. Ідея полягає в тому, що звільнивши час, розробники програмного забезпечення можуть зосередитися на більш творчих і ціннісних завданнях.
Як описано в класичній статті,
Технічний борг в автоматизації тестування
(K. Wiklund, 2012), команди розробників програмного забезпечення можуть зіткнутися з проблемами, якщо витрачатимуть занадто багато часу на ручне тестування та верифікацію свого програмного забезпечення. Початкові витрати на рішення для автоматизації тестування, брак досвіду автоматизації і навіть перевага старих методів можуть сприяти цим уповільненням.
Одним з найцікавіших аспектів гнучкої розробки програмного забезпечення є
Поведінково-орієнтовану розробку (Behavior-Driven Development, BDD).
Концепція стосується розробки програмного забезпечення з урахуванням очікуваної поведінки користувачів. Хоча впровадження такого підходу, безумовно, може заощадити час, багато команд намагаються втілити цю автоматизацію в життя. Однак, магістри права можуть запропонувати рішення.
Деякі з найпоширеніших симптомів технічної заборгованості включають погану документацію та відсутність надійного тестування. Саме ці проблеми можуть допомогти вирішити сучасні магістри права. Однак інші помітні симптоми, такі як рефакторинг, занадто складні для сучасного генеративного ШІ і можуть не призвести до економії часу.
Заключні думки
Генеративні програми ШІ мають величезний потенціал. Однак, зручний діалоговий інтерфейс може ввести в оману. Багато хто вважає, що отримати якісну продукцію на цих машинах дуже просто. Однак відмінна оперативна розробка – це складніше, ніж ви можете собі уявити.
Ефективна оперативна розробка вимагає багато спроб і помилок. Інженер також повинен добре подумати, щоб відповіді були корисними. Нарешті, перевірка і повторна перевірка роботи є важливою через широко розрекламований потенціал помилок.
Хоча швидкісні інженерні професії можуть бути на підйомі, не всі в цьому переконані. У статті в Harvard Business Review Огуз А. Акар (Oguz A. Acar) наводить захоплюючий аргумент, що “Майбутні покоління систем штучного інтелекту стануть більш інтуїтивно зрозумілими і здатними розуміти природну мову, що зменшить потребу в ретельно розроблених підказках”.
Яким би не було майбутнє, генеративний ШІ не залишиться осторонь. Хоча оперативна інженерія багатообіцяюча, важко сказати напевно, яку саме роль вона відіграватиме.
Цікаво, що програмне забезпечення для автоматизації тестування програмного забезпечення вже наповнене прикладами використання та історіями успіху, які демонструють його придатність для прискорення розробки програмного забезпечення без шкоди для точності або всебічної перевірки додатків.
Такі інструменти, як ZAPTEST, вже дозволяють розробникам вирішувати такі проблеми, як нестача часу і ресурсів, технічна заборгованість, документація, а також комплексне тестування і RPA. Крім того, ці інструменти зручніші у використанні, ніж швидка інженерія, що робить їх набагато більш придатними для нетехнічних команд. Як завжди, справжній потенціал лежить на перетині цих захоплюючих технологій автоматизації.