Як використовувати OpenAI для вирішення бізнес-задач
Як змінився штучний інтелект за останні роки? Як використовувати його в роботі розробникам? Відповідями на ці питання на ефірі з SoloWay Tech поділився Андрій Босий — Tech Lead MindCraft. Андрій — фахівець з
Чим відрізняються генеративні та дискримінативні моделі ШІ
Аналітика даних починалася з дискримінативних моделей: ми надаємо мережі багато вхідних даних і отримуємо конкретний результат. Такі моделі працюють за принципом воронки: дискримінують, тобто зменшують обсяг інформації, щоби дати відповідь.
У дискримінативних моделях розрізняють:
- Object Detection. Визначення об’єктів: зображення, тексту тощо. Наприклад, задавши параметри будинку або машини, можна дізнатися їхню ціну.
- Semantic Segmentation. Визначання на рівні точок, до якого об’єкта ця точка належить.
- Named Entity Recognition. Визначення певних тегів, лейблів, ключових слів у текстах, наприклад, назви організацій або локації.
Генеративні моделі почали розвиватися відносно недавно — у
Із цього почалися генеративні мережі: можна було дати на вхід випадкові, але керовані речі, виокремивши всередині Encoder певну сутність. Якщо ви запаковували зображення, то можете сказати, який нейрон відповідає за руки, який за ноги, а який за очі. Моделюючи варіативності, легко генерувати нові зображення. Якщо ви завантажили обличчя, то можете попросити згенерувати більше волосся.
Другим варіантом генеративних моделей були Generative Adversarial Network, де сперечалися між собою дві мережі: одна з них генерувала всякі дурниці, але вчилася робити це так, щоби друга мережа-дискримінатор (той, хто зводить усе до відповідей так / ні) могла сказати, правдиве чи фейкове певне зображення.
Як розвивався ШІ останніми роками
У 2018 році з’явилися так звані Transformers — архітектури моделі, на яких побудовані GPT, Lam, Alpaca і решта подібних інструментів. У 2020 році, завдяки зростанню обчислювальних потужностей, у гру вступили Large Models: моделі, які починають доходити до меж пізнання людства. Як-от GPT-2.
Раніше треба було десятки тисяч разів показати мережі зразки (наприклад, зображення паспорта), щоби пояснити, що ти хочеш, та отримати релевантний результат. З Large Models стало достатньо показати декілька разів — і комп’ютер, виходячи з набутих знань, починав відповідати. Це був прорив.
До GPT-2 були ще кілька способів роботи з нейронними мережами. Більша частина аналітики даних брала готові моделі та дотягувала до своїх потреб: це називається Transfer Learning. Припустимо, потрібно зробити систему, яка розпізнає дорожні знаки. Ми маємо знімки з карти вулиць і готову модель, яка розпізнає машини. Залишається зробити її Fine Tuning: розширити уявлення моделі, яка мала інформацію про вигляд машин, до знаків.
Також ми могли попросити якусь мережу нагенерувати дані, а далі створити невелику нейронну мережу та навчити її на зібраних даних розв’язувати просту задачу. За такий підхід, зокрема, виступає ресурс Hugging Face, який можна використовувати для отримання великого масиву інформації.
У 2022 році Transfer Learning почав розвиватися в напрямі застосування всіх цих моделей у повсякденному житті. Мета в тому, аби програміст міг використовувати модель одразу, а не займатися довгим тренінгом, архітектурою та аналітикою даних. Це можливість передавати сенси від однієї бази знать до іншої — так, як спілкуються люди.
Які є типи навчань ШІ
Крім класичного Fine Tuning, де нейронній мережі потрібно давати десятки тисяч прикладів, з’явилися декілька крутих способів навчання:
- Zero Shot Learning. Ми не даємо мережі жодної інформації, а одразу її питаємо. Вона сама має здогадатися, відштовхнувшись від меж власних знань про людство.
- One Shot Learning. Ми не тільки ставимо питання, але й даємо одну правильну відповідь. Так мережа набагато швидше розуміє, що від неї хочуть. Найпростіший приклад — показати фотографію, щоби система навчилася шукати її серед інших.
- Few Shot Learning. Те саме, що One Shot Learning, тільки з кількома варіантами правильних відповідей: так мережа почне розуміти варіативність того, що ми хочемо.
Сім кейсів роботи з OpenAI для розробників
Кейси MindCraft пов’язані не стільки з аналітикою і розробкою власних архітектур моделей, скільки з OpenAI та використанням даних.
1. Задача: класифікувати оцифровані документи у 80 категоріях.
Раніше така задача потребувала надзвичайно багато даних, з якими доводилося довго працювати. Зараз ми використали передтреновані BERD-моделі від Google та Ada embeddings: машина перетворює тексти на числа, які мають певну логіку (наприклад, якщо 35 — огірок, то 36 — якийсь інший овоч).
Отримавши таким способом семантичні зв’язки текстами, ми доповнили наш датасет, використовуючи GPT 3.5. Ми попросили цю модель нагенерувати тексти на певні теми й зробили нейронну мережу, яка їх класифікувала.
2. Задача: серед великої кількості фінансових транзакцій знаходити підозрілі.
Ми дали GPT вхідні дані: ти — експерт з виявлення шахрайства. Дай нам списки типів транзакцій у JSON-форматі. Також ми використали One Shot Learning: дали приклад транзакції на велику суму, яку можна вважати підозрілою. Після цього система сама почала визначати подібні операції серед запропонованих.
3. Задача: розробити чат-бот, який робить прості речі на кшталт надання шаблонних відповідей або перенаправлення на потрібну сторінку.
Ми мали сет з приблизно двома тисячами питань і відповідей. Тому вирішили використати Fine Tuning, тобто навчити модель на власних даних. Таку модель можна розмістити на сайті OpenAI та вільно користуватися. На навчання ми витратили близько 300 доларів — і отримали бота, який відповідав на питання на задану тему.
4. Задача: витягувати з документів інформацію про номери паспортів.
Якщо всі дані пропускати через OpenAI, виконання буде досить дорогим. Тому ми шукали потрібні патерни, використовуючи RegEx. Коли ми знаходили щось подібне на паспорт, то запитували в OpenAI, чи щось у такому-то контексті та з таким-то номером є схожим на паспорт, і він відповідав.
5. Задача: визначити, чи повний документ, який прийшов в довільному форматі. Наприклад, декларація, комерційна пропозиція, розписка тощо.
Кожен документ створюється за шаблоном. Ми створили такі шаблони за допомогою GPT-3 (потім перейшли на четверту версію, яка дозволяє працювати з більшими обсягами інформації). Для цього використовували вектори embeddings з токенів. Потім попросили GPT розписати структуру документа та порівняти її зі змістом поданого файлу. Система була здатна сказати, наприклад: «У вашому документі відсутній розділ про відповідальність сторін». Це кейс, що зекономив багато ресурсів клієнту.
6. Задача: відповідно до тексту впізнавати відсутній UNSPSC (код, який використовується в e-commerce для ідентифікації конкретного товару).
Спочатку ми побудували систему rule-based: якщо в тексті згадані слова Samsung і смартфон, то йдеться про мобільний телефон, що вимагає певного коду.
Ми використали embeddings, пропустивши тексти через BERT та Ada (дали текст та отримали числа, які характеризують його зміст). Після цього числа подавали на просту нейронну мережу: ми використовували XGBoost, яка ділила їх на більше ніж 400 класів з
7. Задача: нормалізація і редублікація адрес.
У нас були адреси, які треба було привести до уніфікованого формату. Це прекрасно робить GPT за допомогою One Shot Learning. Показавши, що саме ми хочемо (наприклад, не Rd., а Road), ми отримали потрібний результат.
Яке майбутнє чекає на ШІ
З того, наскільки стрімко розвивається штучний інтелект і розширюється коло бізнес-задач, які він допомагає виконувати, можна зробити два висновки.
По-перше, бізнесу досі потрібні не тільки генеративні, але й дискримінативні моделі, адже саме вони дають конкретну, концентровану відповідь. Лише після цього варто працювати з генеративними моделями, аби креативно перекласти цю відповідь на людську мову.По-друге, робота аналітиків даних тепер буде зводитися до підготування даних, до Fine Tuning, до моделей, які використовуються на Edge-девайсах (смартфонах, дронах тощо). Усім доведеться навчатися Prompt Engineering: як спитати у мережі так, щоби вона релевантно та грамотно відповіла. Так само колись уже було з пошуком Google. З даними працюють зараз усі, а отже, всі є аналітиками даних.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів