Що може робити ШІ на вашому проєкті — горизонтально і вертикально. Досвід архітектора

Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!

Ви ж також нещодавно експериментували з інструментами ШІ і думали, як їх застосувати у повсякденній роботі? Останнім часом ми з колегами активно займаємось вивченням і напрацюванням практичних рішень для використання штучного інтелекту в проєктах. Мене звати Вадим Власенко, я співпрацюю з «ЕРАМ Україна» у ролі архітектора рішень.

В цьому матеріалі я поділюсь своїм досвідом і думками про те, в яких напрямках ШІ буде доречним. Доповнюйте в коментарях, сподіваюсь на конструктивну дискусію.

ШІ — вдалий інструмент для пошуку і виокремлення потрібної інформації з великого обсягу даних. Саме тому він корисний в багатьох аспектах проєктної роботи. При цьому, на мою думку, неважливо, хто саме його буде запроваджувати.

Якщо у спеціаліста є цікавість і певні цілі, він чи вона відчуває, що витрачає багато часу на рутину, яка може бути автоматизована, то починає пошук рішень. Керівництву проєкту варто підтримувати такі ініціативи, адже вони сприяють не лише покращенню процесів, але й загальному росту команди.

Давайте розберемо декілька напрямків, де ШІ гарантовано приносить користь. Спершу підемо за горизонтальною шкалою: тобто різними зонами відповідальності одного проєкту. По кожному напрямку я наведу кейс з реального робочого життя.

SDLС процес, або Software Development Lifecycle

Управління командою, проєктний менеджмент, розробка і аналіз вимог до різних задач і відстеження їхнього виконання, загальний моніторинг процесу розробки в Jira, створення документації — все це можна зробити ефективнішим завдяки штучному інтелекту і зекономити багато часу.

Я із задоволенням спостерігав, як майже пів року тому, коли розпочався певний бум ШІ, багато колег тестували і вивчали напрямки, де він може допомагати. Спільними зусиллями ми описали багато кейсів. Наведу їх в загальних рисах, з огляду на NDA.

Кейс

Під час масштабування та оптимізації гнучких процесів доставки (agile delivery process) ми бачимо випадки, коли рекомендовані методологіями практики в конкретній команді не вдається застосувати. Мова йде про оптимізацію потоку, керування беклогом, показники ефективності тощо.

ChatGPT може допомогти зекономити час на визначення індивідуальних підходів для запровадження потрібних процесів.

Пишіть промпт якомога детальніше, описуйте свій блокер, специфіку середовища/ робочої групи, цілі, яких треба досягти. Корисно запитати ШІ про плюси та мінуси кожного запропонованого сценарію. Це допоможе обрати найоптимальнішу опцію.

Software development

Цей напрям я навмисно відокремлюю, адже в розробці є безліч прикладів використання штучного інтелекту у різних мовах програмування і для різних задач. Зокрема завдяки ШІ можна описати, як працює кодова база доступною і зрозумілою мовою. Це допомагає новачкам на проєкті швидше розібратись з тим, що вже написано і як воно працює. Час на онбординг завдяки цьому зменшується.

Також штучний інтелект певною мірою допомагає писати код. Інженери використовують декілька популярних інструментів як асистентів для прискорення роботи: один з найпопулярніших — Github Copilot.

Також штучному інтелекту можна «делегувати» рутину: написання unit-тестів, тест-кейсів, сценаріїв тестування на основі бізнес-вимог, рефакторинг коду тощо. Дехто розбирається з новими технологіями чи завданнями не за допомогою Google, а просить пояснення у ChatGPT.

Кейс

Дуже якісно описав свій досвід використання інструментів ШІ у роботі мій колега Олег Васильєв. Рекомендую його статтю про Github Copilot, ChatGPT та інші тули у технічному розділі DOU.

Розробка архітектури

У власній повсякденній роботі я неодноразово переконувався, яким корисним може бути штучний інтелект для оптимізації задач архітектора рішень.

Але необхідно завжди пам’ятати про безпеку і відокремлювати приватні LLM-моделі від публічних. Публічні — як от ChatGPT — категорично не можна використовувати, якщо маємо справу з комерційною таємницею чи даними, що знаходяться під NDA. Водночас можна доручати їм персональні задачі, які не несуть ніяких ризиків, або абстрактні питання.

В нашій компанії, наприклад, ми частіше використовуємо OpenAI сервіси в хмарі Microsoft Azure. Ця приватна LLM-модель створюється і використовується в проєктних цілях, безпеку гарантує клауд Microsoft-у. У будь-якому разі використання таких сервісів ми попередньо узгоджуємо з клієнтом, вносимо зміни в NDA та інші документи, адже все має бути прозоро.

Майте на увазі, що деякі замовники можуть відмовитись від використання ШІ через певні перестороги. Поважайте це рішення і не порушуйте його навіть з приватною LLM-моделлю.

Кейс

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

Якщо нотатки зустрічі достатньо розгорнуті і мій запит-промпт буде точним, то я за лічені хвилини отримаю результат, на який раніше витрачав би години: хорошу базу документації з усією необхідною інформацією і невеликим, але змістовним резюме на початку.

Так само доречним буде використання штучного інтелекту на фазах presale та discovery. В першому випадку він допоможе проаналізувати наявну інформацію і зробити це швидко: 100 сторінок запиту на пропозицію для впровадження ШІ опрацює за декілька хвилин.

Нам залишиться опрацювати інформацію і сформувати резюме, яке допоможе сфокусуватись. У другому випадку штучний інтелект полегшить опрацювання поточної архітектури, кодової бази тощо.

У будь-якому разі важливо наводити якомога повніший контекст і ставити конкретні задачі ШІ, адже від цього напряму залежить результат.

Тестування і тест-автоматизація

Можливості використання ШІ для тестувальників дуже широкі — так само як і для інженерів. Для автоматизації тестування він може пропонувати сценарії, покривати більшість з них тест-кейсами і створювати чек-лісти.

Це окрема велика тема, яку вивчають профільні фахівці. Рекомендую експериментувати.

Кейс

ШI може аналізувати вимоги до програмного забезпечення і автоматично генерувати тести для перевірки функціональності застосунку або компонента. Це значно прискорює процес їхньої підготовки і забезпечує повніше покриття.

Штучний інтелект також може використовувати аналітику і машинне навчання для побудови ефективних стратегій тестування, які враховують різні фактори: історію помилок, специфікацію вимог, архітектуру системи тощо.

Крім того, ШІ здатен автоматично створювати сценарії тестів на основі вимог користувачів, забезпечуючи відповідність продукту їхнім очікуванням і працюючи коректно в реальних умовах. Також ШI може генерувати автоматизовані тестові скрипти для перевірки функціональності та нефункціонального тестування (наприклад, для API або вебінтерфейсу).

Це не тільки прискорює процес тестування, але й забезпечує вищу коректність результатів.

Бізнес-аналіз

Бізнес-аналітикам штучний інтелект допомагає з узагальненням і систематизацією контенту, якого у цих фахівців завжди дуже багато.

Інструменти ШІ можна використовувати для створення формальнішого ТЗ, аналізу вимог, наведення сценаріїв, створення критеріїв прийому тощо.

Кейс

Штучний інтелект може неабияк допомогти, коли бізнес-аналітик починає працювати в новій для себе сфері і має визначити основні аспекти і кроки в плануванні виявлення вимог.

В даному випадку в промпті необхідно надати контекст ситуації і попросити підказок, які треба врахувати на ранньому етапі. По кожному кроку варто пошукати додаткову інформацію, заглибитись в тему, поставити ШІ додаткові запитання.

Також можна попросити вивести резюме у вигляді таблиці або сформувати невеликий опитувальник.

Хороший варіант — давати запит на наведення прикладів. Вони допоможуть заглибитись в тему ВА, який або яка тільки розбирається в домені. Також спробуйте використати додатковий ШІ інструмент, щоб порівняти результати, точність, глибину відповідей і таке інше.

DevOps-задачі

Зараз ми спостерігаємо тенденцію, коли для DevOps використовується підхід Infrastructure-as-a-Code. Тобто системний інженер пише код, який відтворює задачі в хмарі.

ШІ в даному випадку може переформатовувати запит людською мовою в формат такого коду, а ще — створить інструкції для упорядкування набору компонентів, з яких будуються IaaС-рішення, з урахуванням вимог і завдань.

Кейс

ШІ може допомогти створити добре структурований і готовий до використання сценарій PowerShell, який використовує Azure Pipelines для порівняння дочірнього модуля Terraform і версій постачальника з однаковим кореневим модулем.

Загалом штучний інтелект швидко й ефективно, лише за декілька ітерацій створює майже готові сценарії для оптимізації роботи. Водночас варто стежити, щоб ШІ їх не ускладнював. Традиційно — що конкретніша задача, то краще.

Існує ще багато сценаріїв і сфер, де можна використовувати ШІ: продажі, дослідження ринку, дизайн користувацького досвіду. Головне — не мати завищених очікувань. Все ж таки штучний інтелект ще не настільки розумний, щоб повністю замінити фахівців. Всі, хто хоча б трохи розуміє принцип роботи LLM, усвідомлюють це.

До речі, щоб заглибитись в тему не лише за допомогою самонавчання, статей і практичних спроб і помилок, можна відвідати онлайн-конференцію Devoxx Ukraine, яка відбудеться 22 вересня. Адже цьогорічна тема якраз стосується штучного інтелекту і експерти розглядатимуть найрізноманітніші сценарії і способи використання ШІ. Особисто я зареєструвався.

Наступні рівні використання ШІ. Вертикальна шкала

Отже, як бачимо, для багатьох напрямків штучний інтелект може буде непоганим помічником, який покриває низку завдань.

Окрім перелічених прикладів він може лягти в основу чат-ботів, асистентів та інтегруватись в різноманітні бізнес-потреби клієнтів, як-от підтримка користувачів чи ШІ-помічники. Багато бізнесів приходять до того, щоб зменшити кількість працівників кол-центру або консультантів, віддаючи перевагу цифровим інструментам.

Але що далі, то складнішими можуть бути запити користувачів: наприклад, порівняти декілька видів товарів, відповісти на персональне запитання тощо. Це потребуватиме глибшого аналізу, тому для заміни людини знадобляться додаткові ресурси.

Ще один розповсюджений запит зі сфери електронної комерції — генерування звітів для оцінки ефективності бізнесу. Раніше для автоматизації цієї задачі був необхідний досить потужний інструмент або ж додатковий агент, під’єднаний до бази даних клієнта.

Плюс, додаткової роботи потребував аналіз середньої кількості і вартості замовлень і надсилання результатів на пошту. Зараз це можна робити завдяки ШІ. Але як саме?

Варто мати на увазі, що існує декілька вертикальних рівнів використання ШІ. Раніше ми обговорили перший рівень, де в чистому вигляді можна підключати ChatGPT, Azure Open AI тощо, надаючи інструкції прямо і конкретно, але з огляду на безпеку.

Другий рівень — це коли до LLM-моделі ми додаємо певні корпоративні знання. Коли мова стосується конкретного проєкту, то це може бути додаткова інформація з документації, кодової бази тощо. Це дозволяє використовувати можливості штучного інтелекту прицільніше до реалій, з меншою часткою абстракції.

Третій рівень — використання ШІ за допомогою агентів. Напрям не те щоб новий, але дуже потужний зараз. На цьому етапі ШІ вже може створювати ілюзію того, що працює самостійно: він більше не консультант, а виконавець, який аналізує свою задачу.

Наприклад, він здатен оркеструвати певну кількість інструментів. Завдяки цьому можна, скажімо, отримати звіт з порівнянням цін на певний товар в різних магазинах одразу в пошту. Такий формат залучення штучного інтелекту відкриває безліч можливостей і може надати бізнесу значну користь.

Саме тому ми з колегами зараз активно вивчаємо і напрацьовуємо можливі варіанти використання, розробляємо рішення і інтегруємо їх клієнтам, які погоджуються спробувати нові підходи до роботи. Цей підхід здатен значно покращити ефективність.

Тож хоча зараз фахівці частіше сприймають ШІ як асистента-консультанта, все ж таки варто пам’ятати, що він може керувати інструментами і виконувати складніші завдання. Звісно, для цього інженерам потрібні додаткові знання і навики. Рекомендую тренуватись та експериментувати.

Наприклад, існує плагін для пошуку авіаквитків. Спробуйте підключити його до ChatGPT — LLM зможе переформатувати ваш запит «Знайди і придбай квиток до Риму» у параметри, яких очікує плагін, і за відповідних нашалтувань зможе піти далі: замовити квиток і надіслати його вам на пошту.

В реальних робочих умовах будьте обережнішими: вкотре наголошу на безпеці даних і порекомендую створювати власні плагіни під потреби проєкта.

Дізнатись більше про практичне використання ШІ можна завдяки таким курсам. На мою думку, вони цілком вдалі:

Чи варто через ШІ непокоїтись за своє робоче місце

Це запитання хвилює багатьох, але здебільшого, на мою думку, воно бентежить людей, які далекі від розуміння того, що таке штучний інтелект і як він працює. З цього витікає порада опановувати хоча б базу ШІ, перш ніж він опанував вашу професію.

Щодо ІТ-галузі, то у короткотерміновій перспективі сплеск цікавості до штучного інтелекту, навпаки, може викликати збільшення кількості вакансій — спеціалісти знадобляться для інтеграції чи розробки ШІ-продуктів. Згодом, на мою думку, ситуація стабілізується.

Сумніваюсь я також у тому, що ШІ замінить джуніорів. Попри всі експерименти, штучний інтелект — хороший помічник, за яким завжди треба перевіряти результати роботи. Людина з досвідом у будь-якому разі генерує якісніші, глибші і нетривіальні результати.

Але вже зараз треба розширювати свій професійний обрій з класичної розробки до розробки чи інтегрування штучного інтелекту в системи.

Варто приділити час на покращення навиків промпт інжинірингу — створення коректних і точних запитів до ШІ. Вже існують досить непогані безкоштовні матеріали (як от цей довідник промптів для ChatGPT), а деякі компанії інвестують у розробку внутрішніх програм під свої потреби.

Проходьте навчання, спостерігайте за новою інформацією в мережі, розглядайте опенсорсні інструменти, які можуть допомогти з генерацією промптів (це своєрідні middleware для middleware). Все це буде корисно в практичній роботі. Слід також стежити за новою інформацією за темою, адже ваш поріг входу в неї може бути вище, ніж ви очікуєте.

Загалом я переконаний, що будь-яку нову технологію, бібліотеку, фреймворк тощо варто вивчати і хоча б поверхнево з нею знайомитися. Це допоможе залишатись в тренді, розширювати технологічне бачення і розуміння того, в якому напрямку розвиватимуться ІТ-технології.

Але чи потрібно кожну з них намагатись додати у свій поточний проєкт? Моя думка: якщо новий інструмент кардинально змінює картинку і вимагає оновлювати весь технологічний стек, то скоріш — ні. Проте у разі, коли долучити його легко і він значно покращить процеси, робити це варто. Так можна додати цінності бізнесу.

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному5
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Зі свого досвіду можу додати, що LLM 3.5 або 4 погано працюють, коли є багато версій чогось і треба використовувати останню. Наприклад, якщо питати про сервіси публічних клаудів, то він не завжди видасть відповідь, що відповідає поточному стану речей, і можна отримати застарілу інформацію, яка негативно вплине на архітектуру. З іншої сторони, з більш фундаментальними речами він допомагає набагато краще, наприклад, якщо ніколи не працював зі стрімінгом мультимедіа, то розмова з ChatGPT надасть дуже багато інформації для подальшого використання і гугління

Статья про архитектуру без единой картинки — фигня

Стаття про життєві ситуації, де LLM може стати у нагоді

Чому люди повинні читати документацію, що написана ШІ?
А якщо її ніхто не читатиме — то йдіть у Lean, і викиньте той ШІ.

На мій погляд, я не бачу ніяких причин, чому люди не мають її читати, якщо вона добре написана, та ШІ як інструмент зекономив час, який може бути витрачений на інші активності.
Один із головних моментів мати документацію — це донести інформацію до зацікавлених сторін (стекхолдерів). Якщо вона задовільняє цьому, дає результат і не викликає питать — це вже успішний приклад.
А якщо питання про те, чому люди в принципі повинні читати документацію — то це вже інше)

А що, якщо у садок із мовними моделями помістити логічного ШІ? Хто переможе?

На мій погляд це не буде змагання, а комбінована команда з взаємодоповненням

Якось трохи нудновато читати. Єдине що зацікавило — "

Мова йде про оптимізацію потоку, керування беклогом, показники ефективності тощо.

ChatGPT може допомогти зекономити час на визначення індивідуальних підходів для запровадження потрібних процесів.

"

Можеш більш детально описати про це? І як гадаєш — чи реально використовувати ШІ не лише для допомоги в визначенні показників єффективності, а й для безпосереднього оцінювання по цим показникам?(Якщо забути про етичну частину цього питання)

Дав chatgpt кусок коду з мого пет проекту і задав кілька запитань.

— “How much time need an average senior developer to write this code? In format name of activity — time in minutes.”
— “Here’s a breakdown of the time an average senior developer might take to write the provided code:

1. Understanding the Task and Requirements: 5 minutes
2. Setting Up the Project: 5 minutes
3. Writing the Code: 15 minutes
4. Testing and Debugging: 10 minutes
5. Code Review and Refactoring: 10 minutes
6. Final Testing and Verification: 5 minutes
Total Estimated Time: 50 minutes

Please note that these time estimates are still approximate and can vary based on individual developer speed, familiarity with the technology, and the level of attention to detail and testing.”

— “How good is this code? Give answer in format — name of the evaluated parameter — number of points”
— “Certainly, here’s the evaluation of the code based on the provided format:

1. Clarity and Readability: 8/10
While variable names are concise, there are no comments explaining each step, which might affect readability.

2. Efficiency: 7/10
Combining ***** generation and ***** assignment could improve efficiency.

3. Error Handling: 6/10
No error handling for potential issue with null *****

4. Comments: 5/10
Lack of comments makes it harder to understand the purpose of each step.

5. Code Structure: 8/10
The code structure remains appropriate for this specific context.

6. Magic Numbers: 7/10
The magic numbers ***** and ***** could benefit from being replaced with named constants or comments explaining their significance.
Overall Score: 41/60

While the code still performs its task, the readability has decreased due to the absence of comments explaining the steps. Incorporating comments to provide context for each operation and addressing the other areas of improvement mentioned in previous evaluations would enhance the quality of the code.”

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

Стосовно безпосереднього оцінювання — так, це цілком можливо, більш того, ми це використовуємо також, наприклад для code review, оцінювання складності та релевантності рішення, допомога в discovery. А також можна піти далі для отримання практичного результату «вертикальний рівень», наприклад, для створення і оцінки плану імплементації задачі, автоматичний фікс code smells з sonar або за висновками на основі генеративної моделі та інше.

А ще може написати статтю на DOU

Підписатись на коментарі