Як я створюю AI: поради для тих, хто хоче будувати, а не просто користуватись

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

Якщо вас цікавить не поверхневе користування, а реальне створення AI, що розв’язує конкретні задачі, ви потрапили за адресою. Мене звати Тадеуш Муратов, і я — CEO компанії RAI, AI-продукту у складі венчур білдеру Spalah. Хочу поділитися своїм досвідом у створенні AI-рішень, прикладами інструментів та конкретними промптами, які активно використовує наша команда.

Крок за кроком: чи є найпростіше — найважливішим

Коли я починаю новий проєкт, перше, що роблю, — формулюю чіткі цілі. Замість того, щоб створювати якісь продукти просто «тому, що це тренд», я завжди питаю себе: яку реальну проблему можна вирішити за допомогою цієї технології? І що конкретніше визначена ця проблема, то легше побудувати під неї рішення на базі AI. Що краще ми розуміємо потреби та деталі завдання, то точнішою і продуктивнішою буде модель.

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

Адже іноді виявляється, що складні архітектури не додають значної користі, і базові моделі можуть краще справлятися з роботою. Головне — розуміти, що сучасні рішення повинні розв’язувати конкретну задачу з мінімальними витратами.

Ще один важливий принцип — жоден AI-продукт не створюється за один раз. Я постійно питаю себе: що саме можна поліпшити, які слабкі місця видно в реальному використанні?

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

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

Приклади інструментів для створення AI-продуктів

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

TensorFlow

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

Приклад використання для Data Scientist

Data Scientist може використовувати TensorFlow для створення моделі, що прогнозує поведінку користувача на сайті.

Промпт для початку проєкту в TensorFlow

«Розробити модель класифікації для прогнозування ймовірності конверсії на основі дій користувача на сайті.»

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

Як застосовуємо ми

Ми застосували TensorFlow для оптимізації робочих графіків. Розроблена нейронна мережа оцінює завантаженість працівників та пріоритети завдань, допомагаючи нашим клієнтам ефективніше керувати ресурсами. Завдяки API для нейронних мереж TensorFlow підтримує високопродуктивні обчислення на GPU і TPU. Це робить його ідеальним для складних задач.

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

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

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

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

PyTorch

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

Приклад використання для Machine Learning Researcher

Machine Learning Researcher може використовувати PyTorch для розробки моделей, що ідентифікують зображення або розпізнають мову.

Промпт для початку роботи над NLP-моделлю в PyTorch

«Створити NLP-модель, яка аналізує відгуки клієнтів і визначає їх емоційний тон».

Чому це корисно: PyTorch дозволяє швидко створювати моделі та тестувати різні архітектури, що особливо зручно на етапі дослідження.

Як застосовуємо ми

PyTorch став ключовим інструментом у створенні NLP-моделі, яка трансформувала обробку текстових запитів у сфері HoReCa, консалтингу та фінансах.

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

Це дозволило значно скоротити час обробки запитів — на 40%, та підвищити точність відповідей клієнтам до 90%. Тепер автоматизована система ефективно обробляє запити, чим знижуює навантаження на операторів ресторану і забезпечує швидке та якісне обслуговування.

PyTorch ефективний у реалізації прототипних і експериментальних проєктів, демонструє особливу зручність для задач, пов’язаних з аналізом природної мови. Наприклад, коли клієнт хоче замовити певну страву, називає кілька інгредієнтів (паста з мʼясом у томатному соусі), але не називає чітку назву (болоньєзе).

Hugging Face

Hugging Face пропонує бібліотеки для роботи з текстовими даними та різноманітними моделями NLP. Особливо добре підходить для побудови чат-ботів, текстових класифікаторів або інтелектуальних систем обробки тексту.

Приклад використання для NLP Engineer

NLP Engineer може використовувати Hugging Face для побудови інтелектуального чат-бота, що відповідає на запити користувачів у режимі реального часу.

Промпт для побудови класифікатора в Hugging Face

«Розробити чат-бота, що розуміє питання користувачів і надає відповіді, використовуючи модель DistilBERT.»

Чому це корисно: Hugging Face містить готові моделі та дозволяє швидко інтегрувати NLP-рішення в продукти, що особливо зручно для прискореного запуску MVP.

Як застосовуємо ми

Hugging Face став фундаментом для створення чат-бота, що автоматизував обробку запитів у сфері beauty.

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

Це рішення дозволило скоротити час обробки запитів на 50% і значно збільшити кількість успішних бронювань.

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

OpenAI Codex

Codex — це інструмент для автоматизації написання коду за допомогою AI, створений на базі GPT-3 від OpenAI. Він може допомогти розробникам писати код або пропонувати рішення для складних алгоритмічних завдань.

Приклад використання для Software Engineer

Software Engineer може використовувати Codex для генерації коду або пропозицій щодо складних функцій під час розробки застосунків.

Промпт для OpenAI Codex

«Написати функцію на Python, яка сортує список чисел і видаляє всі дублікатні значення.»

Чому це корисно: Codex допомагає автоматизувати рутинні задачі програмування, що дозволяє розробникам швидше працювати над основними завданняями.

Як застосовуємо ми

Ми використовували Codex для автоматизації написання складних функцій API, що потрібні для інтеграцій з платформами, як-то Bitrix24 і Telegram API. Цей інструмент не обмежується конкретною галуззю в нашому випадку, але ми з необхідністю його використання ми стикнулися у галузі beauty — з салоном краси у Варшаві.

Codex став ключовим інструментом для автоматизації написання функцій API, значно полегшив процес інтеграції з платформами. Все почалося з формулювання задачі: було визначено потреби в інтеграції з CRM-системою Bitrix24 і месенджером Telegram. Codex використовувався для генерації базового коду, який згодом адаптували під конкретні технічні вимоги.

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

DataRobot

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

Приклад використання для Business Analyst

Business Analyst може використовувати DataRobot для створення моделей прогнозування продажів або інших бізнес-показників.

Промпт для побудови моделі в DataRobot

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

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

Як застосовуємо ми

DataRobot чудово працює у наших клієнтів зі сфери HoReCa, e-commerce та фінансів.

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

Після тестування на реальних даних модель інтегрували в систему управління завданнями. Це допомогло збільшити точність оцінки часу виконання на 20% і значно скоротити витрати на планування.

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

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

У фінансових та HoReCa-секторах ця модель стала потужним рішенням для прогнозування. Вона підвищує якість обслуговування клієнтів і дозволяє бізнесу гнучко реагувати на виклики.


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

Які інструменти краще поєднуються з тою чи іншою нішею, та чому варто створювати, а не лише користуватись

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

TensorFlow і Hugging Face є фаворитами для складних моделей і NLP відповідно, тоді як DataRobot — ідеальний для швидкого старту з AutoML моделями, PyTorch — для прототипування, а Codex гарно оптимізує роботу з кодом для великих інтеграцій.

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

Сподіваюся, мої поради стануть вам у пригоді. Будьте новаторами, а не лише користувачами!

👍ПодобаєтьсяСподобалось13
До обраногоВ обраному7
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

Да еще такое замечание хлопцы, тензорфлов он не на всех компах запускается без танцец с бубном!

Танцы с бубном обычно возникают на Windows, но у нас есть собственные сервера с большими мощностями на Ubuntu. Я не думаю, что для хорошего разработчика будет проблемой установить драйвера для видеокарт и это всё сдружить с Tensorflow🤩

А если видеокарты AMD например ? ROCm — есть и поддержка как по стороны Tensorflow так і PyTorch. Танцы с бубном, с заклинанием Кутулху, на самом деле можно получить с любой технологией. С AI вообще другие игры, с нейронами смешения например или вообще сменой функций активации, или даже топологией всей нейронної сети. Большинство народу использует готовые модели.

Мы не используем видеокарты от AMD. Нас более чем устраивают мощности от Nvidia, в роли A6000, RTX4090, A100

Ну так, замечание выходит верным — не на всем запускается без танцев с бубном. Скажем когда этот компьютер это — Apple особенно актуально, положим оно запускается но работает на процессоре — что неприемлемо, особенно с ARM. Конечно кучей бабла и арендованными серверами можно решить множество проблем, так их и получить можно точно так же. Да и вообще, растрата бабла без видимой отдачи, например, когда надо : исследовать, учится и тренироваться — сама по себе проблема.

А Чи можна на JavaScript в ML? Чи краще вивчити Python?

Привіт, краще вивчити Пайтон але якщо на один раз й ви знаєте JavaScript тоді його але Пайтон топ!

а що js уже має в лібах пітримку векторизованих операції десь та підтримує хоч базово багатомірні структури та операції з ними десь подобні до sparse matrixes та тензорів(мовчу про всю іншу екосистему)?
ну і інший момент — що может навіть эксперт в python/js зробити в ml з цими знаннями на один раз(практично нічого для вирішення тих сам бізнесс проблем хіба, що написати клінєт для виклику готової моделі).

JavaScript может быть полезным для выполнения определённых задач, таких как работа с ML в браузере или интеграция предобученных моделей, но его возможности для глубокого анализа данных и построения моделей остаются ограниченными. Хотя в последнее время JavaScript определённую поддержку для работы с векторизованными операциями и многомерными структурами данных, хотя его экосистема в этой области значительно уступает Python, т.е. можно заюзать если это не слишком тяжелые операции, то производительность этих решений будет ограничена возможностями JavaScript и браузеров.

Python так само викликає код на С/С++.

нет не топ! Интерпретируемый язык с глобальной блокировкой интерпретатора (GIL), как в пайтон ограничивает параллельное выполнение потоков!Это может в значительной мере замедлять выполнение ресурсоемких операций, особенно если они не используют библиотеки, написанные на C/C++ (например, NumPy). Другое дело Руст! Код выполняется быстро, с минимальными накладными расходами. Для ML-задач, где требуется высокая скорость вычислений (например, обработка данных в реальном времени или глубокое обучение на больших наборах данных), Rust будет более эффективным. кроме того там отсутствует виртуальная машина, т.е. она там больше не нужна!

Критиковать Python за GIL — это как жаловаться на пробки на трассе, но игнорировать, что именно эти дороги ведут к лучшим направлениям (решениям). Мощные библиотеки/модули, которые могут помочь в решении ML-задач написаны на C/С++, а благодаря этому Python всё ещё остается королём машинного обучения.

Управляючий код все равно в один поток, так что пофиг. SIMD делается как раз темы самисмт ядрами написанными на С++ которые м вызываются из скриптового языка, Python по факту тоже компромисс так как изначально вообще был Matlab. Сама по себе работа с нейронными сетями — это прикладная математика в чистой своей форме и к программированию имеет только косвенное отношение. Тут именно в математике все дело. В чем проблема всех компилируемых решений типа Caffe — на каждый эксперимент надо перекомпилировать, это снижает производительность труда аналитика данных.

да вроде есть там в нпм тензорфлов, сам применял для крипты на фронте, например: TensorFlow.js: фреймворк для машинного обучения, который поддерживает операции с тензорами и позволяет запускать модели прямо в браузере или Node.js.
numjs: небольшая библиотека, типа NumPy, но только для базовых линейных алгебраических операций. math.js: универсальная библиотека для работы с числами, матрицами и функциями
Уверен шё там еще есть

Можна, дуже багато на чому можна, але не треба доки не засвоїли базис. Простіше засвоїти Python, коли вже на чомусь програмуєш це набагато простіше ніж здається. Там усе те саме, тільки десь та щось трохи по іншому, скажімо тут yarn та npm — тут pip ну і т.п. В AI тут інша справа — знання в мат статистиці та математичній базі яка лежить під капотом. Візьміть книгу Таріка Рашида там якраз для початківців. Якщо починати одразу із Tensorflow наприклад — то втрачається розуміння як це працює.

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