Код професії: чим займається Machine Learning Engineer, плюси та мінуси професії

Machine Learning Engineer — це фахівець, який розгортає, тренує та підтримує моделі машинного навчання.

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

ML Engineer — професія, яка дуже популярна на Заході й продовжує розвиватися в Україні. За даними всесвітньої мережі з пошуку зайнятості Indeed, у США такий спеціаліст у середньому заробляє за рік $148 тис., а в топових компаніях — $200–300 тис. В Україні, згідно зі статистикою DOU, ML Engineer у середньому отримує $2900 щомісяця.

Вакансій ML Engineer на українському ринку відкрито небагато, вони зосереджені переважно у Києві або Львові, часом це віддалений формат роботи. Озвучена заробітна плата — від $800 для Strong Junior до $7000 для досвідченого фахівця.

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

Наші співрозмовники — ML-інженери Антон Бенедюк, Вячеслав Стаднічук, Дмитро Самчук, Олексій Бабич, Богдан Лукащук, Евеліна Алексютенко та засновниця аутсорсингової ІТ-компанії HUSPI Ольга Провотар, яка має досвід у розробці систем на базі машинного навчання.

У статті розглянемо такі питання:

— Хто такий Machine Learning Engineer і чим він займається?
— Як ви потрапили у цю професію?
— Які знання та досвід потрібні Machine Learning Engineer?
— Як стати Machine Learning Engineer?
— Які книги варто прочитати майбутньому Machine Learning Engineer?
— Етапи роботи над проєктом. Як працює ML Engineer в аутсорс-компанії, на аутстафі та у продуктовій компанії?
— Опишіть робочий день Machine Learning Engineer.
— Плюси та мінуси професії.
— Найскладніший та найцікавіший проєкт.

🤖 Хто такий Machine Learning Engineer і чим він займається

Антон: Machine Learning Engineer — це людина, яка здатна з необроблених даних створити модель, що зможе розв’язувати задачі, поставлені замовником. Під моделлю мається на увазі програмне рішення на основі різних математичних практик. Окрім самої розробки, одне з найголовніших завдань ML Engineer — впровадити отриману модель у продакшн та забезпечити її стабільну роботу.

Ольга: ML Engineer працює зі складними алгоритмами для створення прогнозних моделей або розробки інтелектуальних систем. Він розробляє чи підтримує ці системи та вдосконалює їх. Ця роль часто передбачає багато експериментів, аналізу даних і суперечок.

Інженери тісно співпрацюють з розробниками ПЗ і Data Scientists. Кінцевою метою ML-інженера є розроблення масштабованих і ефективних систем на основі машинного навчання, які можуть розвʼязувати практичні проблеми.

Вячеслав: Machine Learning Engineer спеціалізується на алгоритмах машинного та глибокого навчання. Інженер пише, адаптує алгоритми машинного навчання під конкретну задачу та набір даних, а також тренує ML-моделі.

Дмитро: Загалом це питання доволі дискусійне, адже сфера Data Science [до якої входить Machine Learning] вважається молодою. Певні компанії залучають людей на позицію Data Scientist і пропонують як працювати з аналітикою та інжинірингом даних, так і будувати моделі. Інші ж розділяють цей великий обсяг роботи за окремими напрямами. Тож можна знайти більш вузькоспеціалізовані позиції, як-то Data Engineer, Data Analyst (Data Science), ML Engineer, ML Researcher і навіть MLOps Engineer.

На мою думку, ML Engineer — це людина, яка може проаналізувати дані, підготувати їх, провести експерименти, натренувати модель і впровадити рішення у продакшн.

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

Деякі з типових завдань, за які може бути відповідальний ML Engineer, охоплюють data cleaning та preprocessing, feature engineering, algorithm selection, model training і optimization, testing і validation, а також deployment моделі.

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

Богдан: Мабуть, найкраще охарактеризувати ML-інженера як спеціаліста, що займається R&D у сфері машинного навчання.

Але ключовим для розуміння специфіки є R&D, адже частина роботи завжди полягатиме у дослідженні розборі, розробці й пошуку даних/методів/алгоритмів/моделей/потреб бізнесу тощо, а інша частина — це інженерія в найкращих традиціях software engineering. Залежно від проєкту, чогось може бути більше, а чогось — менше.

💼 Як потрапляють у цю професію

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

Вячеслав: Почав з Embedded, потім потрапив на проєкт, пов’язаний з обробкою зображень, комп’ютерним зором. Це було цікаво, тож вирішив розвиватися в цьому далі. Значну роль у становленні мене як інженера відіграв ментор на проєкті.

Антон: У 2018 році мене зацікавила тема штучного інтелекту й того, як він влаштований усередині. До цього я довгий час працював як Software Engineer. Це якоюсь мірою допомогло самостійно опанувати основні інструменти та підходи в машинному навчанні. Далі мені пощастило: на проєкті були задачі, які треба було розвʼязати саме за допомогою машинного навчання. Так я здобув перший досвід у цій сфері.

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

Олексій: У випускних класах я готувався стати програмістом, але вступив до фізичного факультету КНУ імені Тараса Шевченка за випадковим вибором поміж вишами. Завдяки кафедрі оптики та відносно активній участі в житті SPIE (Міжнародна організація з оптики і фотоніки — ред.) мені вдалося презентувати дипломну роботу на Photonics West конференції і побувати на кількох інших.

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

🧠 Які знання і досвід потрібні Machine Learning Engineer

Евеліна: Щоб потрапити у професію, потрібно знати базу вищої математики (лінійну алгебру, математичний аналіз, методи оптимізації), а також мати досвід з мовами програмування (Python, плюсом буде досвід з C++). Знати базові бібліотеки Python (pandas, NumPy, SciPy тощо) і мати досвід з набором базових методів для ML (LogReg, KNN, Decision Tree, Random Forest, XGBoost тощо), з базою нейронок (ResNet, U-Net, Mask R-CNN, YOLOv5, CLIP, Siamese Networks та OpenCV) і базою NLP (TF-IDF, Word2vec, BERT, RNN, LSTM тощо). Звісно, ще треба опанувати бази даних.

Багато чого з переліченого я дізналася в університеті, коли навчалася за спеціальністю «Прикладна математика». Але головну підготовку я пройшла на стажуванні, на менторській програмі. Було складно через конкуренцію, яка існувала ще до появи ChatGPT і гайпу довкола ML. А нині вимоги до кандидатів зросли й продовжують зростати.

Антон: На сьогодні ML Engineer має, з одного боку, розуміти, під які задачі та дані яку модель можна використати, вміти адаптувати таку модель під вимоги проєкту.

З іншого боку, бути MLOps — могти налаштувати всю інфраструктуру, яка потрібна для роботи моделі. Тут важливо розділяти інфраструктуру для моделі й даних. Інфраструктурою для даних займається Data Engineer.

Перелік конкретних інструментів досить просто знайти, наприклад, тут. Гарна новина в тому, що вони змінюються не з такою ж швидкістю, як, наприклад, у JS.

Вячеслав: Потрібні знання з математики, статистики й часто з Python. Також варто розбиратися у бібліотеках машинного навчання: TensorFlow, PyTorch, Keras. Якщо говорити про задачі з Computer Vision, необхідний досвід роботи з OpenCV.

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

Олексій: Безумовно, потрібно приділити увагу математиці: лінійна алгебра, теорія оптимізації, теорія ймовірностей і математична статистика, теорія графів.

Однозначно треба володіти мовою програмування, вміти писати production ready код. Знати основні алгоритми ML, як заматчити бізнес-задачу з ML-проблемою.

Важливо вміти подати замовнику результат роботи своєї моделі, описати вдалі метрики. Оскільки зростає кількість даних і ми все частіше стикаємося з Big Data, то знати Apache Spark, Apache Hadoop теж не завадить.

І оскільки обсяги даних збільшуються, розробка дедалі частіше переноситься в хмару, раджу навчитись працювати з хмарними технологіями: AWS, Google Cloud та Microsoft Azure.

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

🧑🏻‍💻 Як стати Machine Learning Engineer

Антон: У Machine Learning зазвичай приходять або з інженерного, або з академічного напряму (це люди, які здобули дотичну освіту, наприклад, на факультеті прикладної математики або фізико-математичному факультеті). Зазвичай і перед першими, і перед другими постає проблема браку досвіду. Я б радив шукати задачі з машинного навчання та пробувати їх розв’язувати. Мені пощастило, я знайшов їх на проєкті, де вже працював. Але якщо такої можливості немає, для цього може підійти і Kaggle, і курси на Coursera чи Udemy, де є домашні завдання.

Вячеслав: Отримати теоретичні основи з цього напряму, спробувати реалізувати свій нескладний концепт і розвиватись у ньому.

Ольга: Єдиних курсів, книги чи інтернет-ресурсу, що могло б стати «чарівною пігулкою», не існує. Але все ж можна виділити те, що точно допоможе в опануванні такої складної професії:

  • Створити міцну базу знань з математики та інформатики (як варіант, здобути ступінь у галузі комп’ютерних наук або в суміжній галузі).
  • Опанувати мови програмування, такі як Python, Java або C++.
  • Ознайомитися з інструментами аналізу та візуалізації даних, як-от Pandas, matplotlib, методами обробки даних.
  • Приєднатися до онлайн-спільнот. Спілкуватися з досвідченими людьми, брати участь у хакатонах.
  • Шукати можливості стажування.

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

Дмитро: Щоб стати інженером з машинного навчання, я рекомендую передусім визначитися, чи подобається вам математика і штучний інтелект. Далі варто зрозуміти, яка проблематика вам ближча: табличні дані й традиційне машинне навчання, комп’ютерний зір, обробка/генерація/розуміння природних мов, робота зі звуком, reinforcement learning тощо. Найкращий спосіб — спробувати все. І додати цей ресурс на домашню сторінку.

Найголовніше — це практика. Правило 10 тисяч годин досі працює ;)

Олексій: Нині надзвичайно багато відкритих курсів, починаючи від фундаментальних від Stanford, Google і Coursera до плейлистів на YouTube: Machine Learning A-Z на каналі The Geek’s Academy або Course: Machine Learning A-Z від Udemy. Генеративні алгоритми та моделі є у швидкому доступі майже для всіх, тож подивіться, на що спроможні deep learning моделі та чим хочеться безпосередньо зайнятися. Коли оберете курс, раджу спробувати пет-проєкт.

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

Богдан: Навчання, практика, спілкування, відпочинок. У відкритому доступі є безліч матеріалу і немає сенсу витрачати дні на пошук найкращого, основне — робити хоч щось. Корисно знайти спільноту за інтересами (на щастя, досить уже й українських — як-то Ukrainian Data Science Club чи Data Science UA), де можна шукати поради, ментора та просто почитати всілякий спам.

📚 Які книги варто прочитати майбутньому Machine Learning Engineer

Антон: Непоганими для загального огляду є книжки Hands-On Machine Learning with Scikit-Learn Keras and Tensorflow і Practical MLOps: Operationalizing Machine Learning Models. Для вивчення нейронних мереж основним виданням є Deep Learning.

Для більш фундаментальних знань раджу The Elements of Statistical Learning. А тим, кого цікавить NLP, — Natural Language Processing with Transformers: Building Language Applications with Hugging Face.

Дмитро: Я б рекомендував Machine Learning Yearning, Deep Learning Book, Machine Learning Design Interview та інші наукові праці.

Олексій: Перша рекомендація — The Hundred-Page Machine Learning Book. Тут цікаво й коротко описані ключові концепти. Це ідеальна книжка, щоб ознайомитися з галуззю.

Доволі класична книжка, що слугує вступом до ML, — Python Machine Learning. Вона розкриває такі теми, як supervised і unsupervised learning, Deep Learning і natural language processing.

Гарно мати під рукою Mathematics for Machine Learning. Тут конкретно описані математичні структури за лаштунками того чи іншого алгоритму.

Дехто вивчає лише основи Python і відразу переходить до інструментів. Але важливо глибше розуміти Python і шаблони проєктування та писати структурно чистий код. Книжка Clean Code in Python охоплює теми шаблонів проєктування, архітектури програмного забезпечення, декораторів тощо й допоможе вам покращити навички програмування. Ще одна рекомендація — Designing Machine Learning Systems.

Вячеслав: Раджу Machine Learning Yearning, Make Your Own Neural Network і Machine Learning for Absolute Beginners.

🖱️ Етапи роботи над проєктом. Як працює ML Engineer в аутсорс-компанії, на аутстафі та у продуктовій компанії?

Ольга: Загальними етапами роботи над проєктом я б назвала:

1. Розуміння проблеми та визначення обсягу проєкту.

2. Збір і підготовка даних.

4. Вибір і навчання моделі.

5. Оцінка моделі та її валідація (перевірка на вірогідність передбачень з використанням тестових даних).

6. Розгортання і підтримка моделі.

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

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

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

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

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

Щодо типу компанії, то часто ML Engineer потрібен саме на аутстафі чи в продуктовій компанії. Такий спеціаліст має справу з даними. Це важливий актив компанії, і зазвичай роботодавець не готовий ділитися даними назовні та віддавати задачу на аутсорс.

Вячеслав: Я б виділив такі основні етапи роботи над проєктом:

1. Discovery-фаза, коли уточнюються задачі, дані, критерії приймання.

2. Збір даних для навчання моделі, анотація даних.

3. Аналіз і вибір моделі (алгоритму) машинного навчання.

4. Навчання моделі.

5. Тестування моделі.

6. Деплой моделі.

Глобально різниці в роботі між різними типами компаній я не бачив, оскільки підхід до розвʼязання задач, що стоять перед інженером, аналогічний.

Дмитро: Загалом етапи роботи над проєктом для ML Engineer дещо відрізняються від традиційної розробки. У data-driven проєктах більше невизначеності, тому підхід більш гнучкий. Майже кожна фіча будується після спайку (метод розробки продукту, який визначає обсяг роботи, необхідний для розв’язання або усунення проблеми програмного забезпечення — ред.).

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

🗓️ Опишіть робочий день Machine Learning Engineer

Антон: Навіть у межах одного проєкту один день може бути не схожий на інший. На певному етапі ML Engineer глибоко занурений в експерименти та побудову моделі. Це більш дослідницька робота, в якій висуваєте гіпотези й перевіряєте їх — інколи це вдається зробити за день, а інколи це розтягується на тиждень, усе залежить від її складності.

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

Вячеслав: Яким є робочий день, залежить від проєкту та підходів у компанії. Загалом він складається з постановки й вирішення задач відповідно до етапів роботи. Найбільшу кількість часу займає збір даних, тренування, тестування та деплой моделі. Про це варто пам’ятати, щоб коректно розрахувати своє навантаження.

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

Щоб модель добре працювала у програмах реального часу, ML Engineer співпрацює з Data Analyst, Product Manager і розробниками ПЗ.

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

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

☺️😔 Плюси та мінуси професії

Антон: Почну з мінусів, а закінчу на гарній ноті, щоб зберегти мотивацію. Основний мінус — попри знання і досвід, ви не можете гарантувати виконання поставленого завдання, на відміну від традиційного програмування. Можна витратити пів року чи навіть рік, а досягнути бажаного результату виявиться неможливо. Зазвичай до цього призводить проблема з якістю даних або вимоги від замовника, які заганяють у жорсткі рамки. Серед мінусів і те, що зазвичай ML-команди невеликі, нерідко ви взагалі можете працювати на самоті. Менше нагод здобути новий досвід і перейняти знання від колег. Немає погляду збоку на те, що ви робите. Ще один мінус — у цій сфері мало позицій для джуніорів.

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

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

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

Мінуси тут очевидні. Machine Learning — це складно. Для такої роботи треба мати математичні знання, знати програмування.

Дмитро: Основні плюси — це велика цінність того, що ви створюєте. Це цікаво (майже завжди) і дає невпинний розвиток.

Мінуси:

  • немає чіткого шляху розвитку в професії;
  • РМ і Scrum-майстри не готові до високої невизначеності;
  • бізнес часто хоче впроваджувати ШІ-технології, бо це популярно, але не усвідомлює, що це зазвичай складно і дорого;
  • багато обробки даних і чисто інжинірингових задач;
  • складно встигати за темпами розвитку індустрії.

Олексій: Серед плюсів:

  • Високий попит на ML-спеціалістів;
  • різноманітність. Сфера машинного навчання міждисциплінарна, а це означає, що ML Engineers можуть працювати в різних галузях і з широким спектром програм.

Мінуси:

  • Якість даних. Точність і надійність моделей машинного навчання значною мірою залежать від якості даних, на яких вони навчаються, а отримати якісні дані — завдання не завжди з цікавих/легких/доступних. І досить часто важко пояснити бізнесу, чому і які самі дані важливі. Як то кажуть, garbage in, garbage out.

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

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

🦾 Найскладніший і найцікавіший проєкт

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

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

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

Олексій: Серед моїх останніх проєктів виділю співпрацю з потужним клієнтом зі США, якому потрібно було допомогти автоматизувати роботу з медичними документами. На перший погляд, завдання здавалося простим і вже майже розв’язаним. Однак у процесі я зіткнувся з проблемою, описаною в мінусах професії, — якістю даних. У нас була неконсистентна розмітка, невпевненість клієнта у кількості та взаємозвʼязках класів. Спираючись на все це, довелося шукати доволі нетиповий розв’язок цієї задачі, який я описав тут.

Евеліна: Цікавим проєктом був аналіз записів інтерв’ю. Необхідно було знайти інтерв’юерів і інтерв’юера, для кожного спікера відібрати всі сказані ним слова. Також зробити topic modelling і sentiment analysis.

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

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось24
До обраногоВ обраному18
LinkedIn



1 коментар

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Кльова стаття. Дякую.

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