SlideShare a Scribd company logo
1 of 56
1
Задачі AI-розробника:
як застосовується штучний інтелект
Олександр Мірошниченко, Senior Software Engineer, GlobalLogic
2
Лектор
● Senior Software Engineer, GlobalLogic
● понад 7 років досвіду в ІТ
● основний напрям діяльності – нейронні мережі та глибоке
навчання
● тренер та ментор навчальних ініціатив для студентів
Олександр Мірошниченко
3
Visual similarity
Пошук схожих предметів по фотографіям
4
План
1. Задача
2. Дані
3. Фічеризація данних
4. Кольорова схожість
5. Приклади роботи алгоритму
6. Проблема перевірки якості
5
Задача
Покупець в
онлайн
магазині хоче
купити взуття
але воно вже продане
Задача ШІ знайти
схожі товари до
бажаного і
порекомендувати
покупцеві
6
Дані
Вхід: 250 000 унікальних картинок з
товарами.
На щастя ми маємо інформацію
по товарам в магазині.
В номенклатурі присутні 700
різних категорій
250 000
Треба розрахувати:
250000*249999/2 попарних
статистик.
Матриця оцінок
схожості
2 000
500
1 000
250 000
a
b
c
Для товару з категорії А ми
шукаємо схожі лише в категорії А Немає потреби
рахувати
абсолютно всі
попарні схожості
7
Фічеризація данних Autoencoder
8
Фічеризація данних Autoencoder
Encoder
[0,1,0,1,0,1,0, …, 1,1,0]
512 фіч в латентному просторі
[0,1,0,1,0,1,0, …, 1,1,0]
Decoder
фічі
Латентний простір
shoes
bra
coat
9
Фічеризація данних: OpenAI CLIP model
Вектор фіч v1
CLIP
10
Як знайти схожі товари
Вектор фіч v1
v1
v2
v3
Латентний простір
Cosine similarity v1
and v2 ~ 0.92
Cosine similarity v1
and v3 ~ 0.86
encoding
Вектор фіч v2
Вектор фіч v3
11
Схожість
Після використання функції схожості було отримано 9
фото, товари на ньому схожі лише за формою
Що робити з кольором?
12
Кольорова схожість
Давайте порахуємо кількість пікселів кожного кольору, для спрощення нехай ми
маємо лише 4096 кольори
Значення пікселів картинки RGB від [0-255, 0-255,0-255] але ми ці значення зменшили
до [0-15, 0-15, 0-15] (розкидали по коробкам) 16^3=4096
Після цього утворили з картинки вектор, просто “розрівняли” матрицю
Щільність розподілу
кольорів
Гарною ідеєю
виявилось знайти
абсолютну різницю
щільностей:
1) Blue and orange
2) Blue and green
13
Загальний показник схожості
Color score 0.86
Color score 0.73
Cosine similarity 0.92
Cosine similarity 0.86
Similarity score
f(s1, s2)
0.70
0.84
s1 s2
14
Як швидко розрахувати наші статистики?
Якщо є доступ до кластеру
Якщо є доступ до кластеру немає, то
● або збирайте свій кластер
● або чекайте розрахунки на python
● або імплементуйте розрахунки на
мові яка підтримує паралелизацію
15
Результат: good
Наш
алгоритм
Старий
алгоритм
16
Результат: good
Наш
алгоритм
Старий
алгоритм
17
Результат: good
Наш
алгоритм
Старий
алгоритм
18
Результат: average
Наш
алгоритм
Старий
алгоритм
19
Результат: bad
Наш
алгоритм
Старий
алгоритм
20
Результат: bad
Наш
алгоритм
Старий
алгоритм
21
Результат: bad
Наш
алгоритм
Старий
алгоритм
22
Результат: good
Наш
алгоритм
Старий
алгоритм
23
МЛ сегментація
Обробка зображень для онлайн магазину
24
1. Задача
2. Дані
3. Модель
4. Результат
5. Приклади
6. Труднощі
План
25
- Тисячі фотографій одежі обробляються фотостудією в онлайн
магазині
- Задній фон предметів - дуже різний і не підходить для розміщені на
сайті
- Видаляти задній фон руками дуже довгий та дорогий процес
- Розв’язок - створити автоматичний процес за допомогою ШІ
Дано: Датасет картинок ~ 32.000 картинок та масок для
фотографій
Ціль: Створити маски для картинок щоб використовувати їх для
видалення заднього фону
Задача
26
Рішення
27
- Тип даних: картинка – маска
- 32 000 картинок розподілені в 6 категорій для
балансування даних (для 5 категорій ми використаємо
PCA + Kmeans)
- Дані для тренування: 25 600 пар картинок
- Дані для валідації: 6 400 пар картинок
Дані
28
Сирі картинки та
картинки після
застосування
масок
Наша ціль
29
● Аналіз
● Чистка даних
● Кластеризація по типам (PCA + Kmeans)
● Довгі штани
● Короткі штани
● Одежа з коротким рукавом
● Одежа з довгим рукавом
● Пляж, спорт, аксесуари
● Біла одежа (кластеризовано вручну)
● Зменшити картинки до 320x320
● Аугментація
● Original image
● Vertical flip
● Cropping
● Combination of images
Обробка даних
30
За основу ми взяли модель з статті: U2-Net: Going Deeper
with Nested U-Structure for Salient Object Detection
Ми транували нейронку за допомогою фреймворку
Horovod, що дозволяє робити розподіленні розрахунки та
навчання ШІ на відеокартах та за допомогою Pytorch. Протягом
кожної епохи різні батчі розподіляються на різних воркерах у
кластері (Потужний комп’ютер).
Модель
31
Харакеристики:
- Параметри (Adam optimizer, dynamic learning rate,
batch_size=10*GPUs, epochs=30)
- Навчання на батчах
- Час: 9 годин при використанні 20 воркері з
фреймворком Horovod на кластері
- Метрика оцінки: Intersection over Union (IoU) metric
- TensorBoard метрики: losses, learning rate, IoU
metric/epoch для валідації.
Модель
32
Метрика оцінки: Intersection over Union (IoU)
Маска зроблена людиною Видача моделі
Модель
33
Good
Poor Excellent
IoU: 0.4036 IoU: 0.7330 IoU: 0.9857
IoU =
Area of Intersection
Area of Union
Модель
Маска Видача моделі
34
= 0.9899
IoU =
Area of Intersection
Area of Union
Модель
Маска зроблена людиною
Видача моделі
35
Середня метрика на валідації: 99.435%
Класс IoU score (%)
Long pants 99.428
Shorts 99.617
Short-sleeve tops,
dresses
99.502
Long-sleeve tops,
dresses
99.588
Beachwear,
sportswear,
nightwear,
accessories
98.815
White color clothes 98.868
Результат
36
Real image Hand made mask ML mask
99.297%
Score
Приклад
37
Real image Hand made mask ML mask
99.508%
Score
38
Real image Hand made mask ML mask
99.417%
Score
39
Real image Hand made mask ML mask
88.189%
Score
40
Real image Hand made mask ML mask
99.695%
Score
41
Real image Hand made mask ML mask
97.875%
Score
42
Real image Hand made mask ML mask
99.828%
Score
43
Real image Hand made mask ML mask
81.311%
Score
44
Real image Hand made mask ML mask
98.104%
Score
45
Real image Hand made mask ML mask
99.742%
Score
46
Real image Hand made mask ML mask
99.590%
Score
47
Real image Hand made mask ML mask
77.020%
Score
48
● Чистка та кластеризація датасету
● Пошук сильної архітектури (MaskRCNN (93.7%) та BASNet (94.4%)).
● Паралелізація Horovod на відеокартах
● Пошук підходящої аугментації датасету
● Маска продуктів коли задній фон та одежа схожих відтінків
● Перевірка масок моделі після ШІ
Труднощі
49
Як працювати з великим датасетом
50
Ви маєте 100 000 фотографій і вам треба навчити модель ШІ
● Як грузити фотографії швидко у оперативну пам’ять:
○ Multiprocessing Pool in Python
■ Паралелізація для бідних
Як працювати з великим датасетом
51
Ви маєте 100 000 фотографій і вам треба навчити модель ШІ
● Що робити у випадку нестачі оперативної пам’яті
○ Ви можете створити “swap memory”
■ HDD - але дуже повільно
■ SSD - дуже швидкий варіант, але ви вбиваєте ваш SSD.
○ Навчати модель не на всіх даних, а на батчах
■ Загрузити батч і навчити модель
■ Загрузити наступний батч і навчити модель
■ -----------------------повторити багато разів--------------------------
■ Це працює але ваша модель перенавчається під нові батчі, а минулі батчі поступово забуваються
Як працювати з великим датасетом
52
Ви маєте 100 000 фотографій і вам треба навчити модель ШІ
● Написати даталоадер (для прикладу TF or Pytorch) - правильний розв’язок
○ Ви можете обробляти необмежені датасети і не перегружать оперативну пам’ять.
○ Дані загружаються під час навчання
■ Так, 1 картинка може бути загружена 5 разів протягом 5 епох, ви втрачаєте час на обробку
фотографій дуже сильно але маєте змогу навчати модель без oom помилок!
● Це абсолютно нормально якщо вам не вистачає оперативної пам’яті під час роботи з картинками.
● Більш того, якщо ваші дані для моделі ШІ поміщаються в оперативну пам’ять - у вас дуже мало даних!
Як працювати з великим датасетом
53
Даталоадери грузять дані для навчання батч за батчем під час навчання моделі і не нагружают
оперативну пам’ять
1) tf.data.Dataset
2) tf.keras.preprocessing.image.ImageDataGenerator - потребує спеціальної структури файлів на
комп’ютері
● Train
○ Class1
■ Img 1
■ ………
■ Img n
○ Class2
○ Class3
● Test
○ Class1
○ Class2
○ Class3
TensorFlow даталоадери
54
54
Користуйтесь даталоадерами!
55
Thank You
56
56
Q&A

More Related Content

Similar to Задачі AI-розробника як застосовується штучний інтелект.pptx

Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.Василь Тереховський
 
конспект уроку
конспект урокуконспект уроку
конспект урокуCshkilniy
 
10 информ сизоненко_пособ_2009_укр
10 информ сизоненко_пособ_2009_укр10 информ сизоненко_пособ_2009_укр
10 информ сизоненко_пособ_2009_укрAira_Roo
 
Lesson #11. computer modeling of objects and processes. computer experiment
Lesson #11. computer modeling of objects and processes. computer experimentLesson #11. computer modeling of objects and processes. computer experiment
Lesson #11. computer modeling of objects and processes. computer experimentNikolay Shaygorodskiy
 
Вибір і експлуатація систем керування автоматизованим виробництвом
Вибір і експлуатація систем керування автоматизованим виробництвомВибір і експлуатація систем керування автоматизованим виробництвом
Вибір і експлуатація систем керування автоматизованим виробництвомirko514
 
7 in b_2020
7 in b_20207 in b_2020
7 in b_20204book
 
Informatyka 7-klas-bondarenko-2020
Informatyka 7-klas-bondarenko-2020Informatyka 7-klas-bondarenko-2020
Informatyka 7-klas-bondarenko-2020kreidaros1
 
Mka python jr-urok_04_ua_1563258855
Mka python jr-urok_04_ua_1563258855Mka python jr-urok_04_ua_1563258855
Mka python jr-urok_04_ua_1563258855PavloTsiura
 

Similar to Задачі AI-розробника як застосовується штучний інтелект.pptx (20)

7
77
7
 
3 клас урок 2 алгоритми та програми.
3 клас урок 2 алгоритми та програми.3 клас урок 2 алгоритми та програми.
3 клас урок 2 алгоритми та програми.
 
18.ppsx
18.ppsx18.ppsx
18.ppsx
 
7klas urok15
7klas urok157klas urok15
7klas urok15
 
Sql db
Sql dbSql db
Sql db
 
ктп 5-9-а
ктп 5-9-актп 5-9-а
ктп 5-9-а
 
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
 
192,23.pdf
192,23.pdf192,23.pdf
192,23.pdf
 
інформатика 2017 2018
інформатика 2017 2018інформатика 2017 2018
інформатика 2017 2018
 
конспект уроку
конспект урокуконспект уроку
конспект уроку
 
10 информ сизоненко_пособ_2009_укр
10 информ сизоненко_пособ_2009_укр10 информ сизоненко_пособ_2009_укр
10 информ сизоненко_пособ_2009_укр
 
Lesson #11. computer modeling of objects and processes. computer experiment
Lesson #11. computer modeling of objects and processes. computer experimentLesson #11. computer modeling of objects and processes. computer experiment
Lesson #11. computer modeling of objects and processes. computer experiment
 
7 9 класи
7 9 класи7 9 класи
7 9 класи
 
Вибір і експлуатація систем керування автоматизованим виробництвом
Вибір і експлуатація систем керування автоматизованим виробництвомВибір і експлуатація систем керування автоматизованим виробництвом
Вибір і експлуатація систем керування автоматизованим виробництвом
 
1
11
1
 
7 in b_2020
7 in b_20207 in b_2020
7 in b_2020
 
Informatyka 7-klas-bondarenko-2020
Informatyka 7-klas-bondarenko-2020Informatyka 7-klas-bondarenko-2020
Informatyka 7-klas-bondarenko-2020
 
Mka python jr-urok_04_ua_1563258855
Mka python jr-urok_04_ua_1563258855Mka python jr-urok_04_ua_1563258855
Mka python jr-urok_04_ua_1563258855
 
Less19
Less19Less19
Less19
 
7
77
7
 

More from GlobalLogic Ukraine

GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic Ukraine
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxШтучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxGlobalLogic Ukraine
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxЩо треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxGlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Ukraine
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"GlobalLogic Ukraine
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic Ukraine
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationСтрах і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationGlobalLogic Ukraine
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic Ukraine
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic Ukraine
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Ukraine
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic Ukraine
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"GlobalLogic Ukraine
 
GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Ukraine
 
C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"GlobalLogic Ukraine
 
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Ukraine
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Ukraine
 
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”GlobalLogic Ukraine
 
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”GlobalLogic Ukraine
 

More from GlobalLogic Ukraine (20)

GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxШтучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptx
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxЩо треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationСтрах і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic Education
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
 
GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"GlobalLogic Webinar "Introduction to Embedded QA"
GlobalLogic Webinar "Introduction to Embedded QA"
 
C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"
 
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing...
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
 
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
 
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”
 

Задачі AI-розробника як застосовується штучний інтелект.pptx

  • 1. 1 Задачі AI-розробника: як застосовується штучний інтелект Олександр Мірошниченко, Senior Software Engineer, GlobalLogic
  • 2. 2 Лектор ● Senior Software Engineer, GlobalLogic ● понад 7 років досвіду в ІТ ● основний напрям діяльності – нейронні мережі та глибоке навчання ● тренер та ментор навчальних ініціатив для студентів Олександр Мірошниченко
  • 3. 3 Visual similarity Пошук схожих предметів по фотографіям
  • 4. 4 План 1. Задача 2. Дані 3. Фічеризація данних 4. Кольорова схожість 5. Приклади роботи алгоритму 6. Проблема перевірки якості
  • 5. 5 Задача Покупець в онлайн магазині хоче купити взуття але воно вже продане Задача ШІ знайти схожі товари до бажаного і порекомендувати покупцеві
  • 6. 6 Дані Вхід: 250 000 унікальних картинок з товарами. На щастя ми маємо інформацію по товарам в магазині. В номенклатурі присутні 700 різних категорій 250 000 Треба розрахувати: 250000*249999/2 попарних статистик. Матриця оцінок схожості 2 000 500 1 000 250 000 a b c Для товару з категорії А ми шукаємо схожі лише в категорії А Немає потреби рахувати абсолютно всі попарні схожості
  • 8. 8 Фічеризація данних Autoencoder Encoder [0,1,0,1,0,1,0, …, 1,1,0] 512 фіч в латентному просторі [0,1,0,1,0,1,0, …, 1,1,0] Decoder фічі Латентний простір shoes bra coat
  • 9. 9 Фічеризація данних: OpenAI CLIP model Вектор фіч v1 CLIP
  • 10. 10 Як знайти схожі товари Вектор фіч v1 v1 v2 v3 Латентний простір Cosine similarity v1 and v2 ~ 0.92 Cosine similarity v1 and v3 ~ 0.86 encoding Вектор фіч v2 Вектор фіч v3
  • 11. 11 Схожість Після використання функції схожості було отримано 9 фото, товари на ньому схожі лише за формою Що робити з кольором?
  • 12. 12 Кольорова схожість Давайте порахуємо кількість пікселів кожного кольору, для спрощення нехай ми маємо лише 4096 кольори Значення пікселів картинки RGB від [0-255, 0-255,0-255] але ми ці значення зменшили до [0-15, 0-15, 0-15] (розкидали по коробкам) 16^3=4096 Після цього утворили з картинки вектор, просто “розрівняли” матрицю Щільність розподілу кольорів Гарною ідеєю виявилось знайти абсолютну різницю щільностей: 1) Blue and orange 2) Blue and green
  • 13. 13 Загальний показник схожості Color score 0.86 Color score 0.73 Cosine similarity 0.92 Cosine similarity 0.86 Similarity score f(s1, s2) 0.70 0.84 s1 s2
  • 14. 14 Як швидко розрахувати наші статистики? Якщо є доступ до кластеру Якщо є доступ до кластеру немає, то ● або збирайте свій кластер ● або чекайте розрахунки на python ● або імплементуйте розрахунки на мові яка підтримує паралелизацію
  • 24. 24 1. Задача 2. Дані 3. Модель 4. Результат 5. Приклади 6. Труднощі План
  • 25. 25 - Тисячі фотографій одежі обробляються фотостудією в онлайн магазині - Задній фон предметів - дуже різний і не підходить для розміщені на сайті - Видаляти задній фон руками дуже довгий та дорогий процес - Розв’язок - створити автоматичний процес за допомогою ШІ Дано: Датасет картинок ~ 32.000 картинок та масок для фотографій Ціль: Створити маски для картинок щоб використовувати їх для видалення заднього фону Задача
  • 27. 27 - Тип даних: картинка – маска - 32 000 картинок розподілені в 6 категорій для балансування даних (для 5 категорій ми використаємо PCA + Kmeans) - Дані для тренування: 25 600 пар картинок - Дані для валідації: 6 400 пар картинок Дані
  • 28. 28 Сирі картинки та картинки після застосування масок Наша ціль
  • 29. 29 ● Аналіз ● Чистка даних ● Кластеризація по типам (PCA + Kmeans) ● Довгі штани ● Короткі штани ● Одежа з коротким рукавом ● Одежа з довгим рукавом ● Пляж, спорт, аксесуари ● Біла одежа (кластеризовано вручну) ● Зменшити картинки до 320x320 ● Аугментація ● Original image ● Vertical flip ● Cropping ● Combination of images Обробка даних
  • 30. 30 За основу ми взяли модель з статті: U2-Net: Going Deeper with Nested U-Structure for Salient Object Detection Ми транували нейронку за допомогою фреймворку Horovod, що дозволяє робити розподіленні розрахунки та навчання ШІ на відеокартах та за допомогою Pytorch. Протягом кожної епохи різні батчі розподіляються на різних воркерах у кластері (Потужний комп’ютер). Модель
  • 31. 31 Харакеристики: - Параметри (Adam optimizer, dynamic learning rate, batch_size=10*GPUs, epochs=30) - Навчання на батчах - Час: 9 годин при використанні 20 воркері з фреймворком Horovod на кластері - Метрика оцінки: Intersection over Union (IoU) metric - TensorBoard метрики: losses, learning rate, IoU metric/epoch для валідації. Модель
  • 32. 32 Метрика оцінки: Intersection over Union (IoU) Маска зроблена людиною Видача моделі Модель
  • 33. 33 Good Poor Excellent IoU: 0.4036 IoU: 0.7330 IoU: 0.9857 IoU = Area of Intersection Area of Union Модель Маска Видача моделі
  • 34. 34 = 0.9899 IoU = Area of Intersection Area of Union Модель Маска зроблена людиною Видача моделі
  • 35. 35 Середня метрика на валідації: 99.435% Класс IoU score (%) Long pants 99.428 Shorts 99.617 Short-sleeve tops, dresses 99.502 Long-sleeve tops, dresses 99.588 Beachwear, sportswear, nightwear, accessories 98.815 White color clothes 98.868 Результат
  • 36. 36 Real image Hand made mask ML mask 99.297% Score Приклад
  • 37. 37 Real image Hand made mask ML mask 99.508% Score
  • 38. 38 Real image Hand made mask ML mask 99.417% Score
  • 39. 39 Real image Hand made mask ML mask 88.189% Score
  • 40. 40 Real image Hand made mask ML mask 99.695% Score
  • 41. 41 Real image Hand made mask ML mask 97.875% Score
  • 42. 42 Real image Hand made mask ML mask 99.828% Score
  • 43. 43 Real image Hand made mask ML mask 81.311% Score
  • 44. 44 Real image Hand made mask ML mask 98.104% Score
  • 45. 45 Real image Hand made mask ML mask 99.742% Score
  • 46. 46 Real image Hand made mask ML mask 99.590% Score
  • 47. 47 Real image Hand made mask ML mask 77.020% Score
  • 48. 48 ● Чистка та кластеризація датасету ● Пошук сильної архітектури (MaskRCNN (93.7%) та BASNet (94.4%)). ● Паралелізація Horovod на відеокартах ● Пошук підходящої аугментації датасету ● Маска продуктів коли задній фон та одежа схожих відтінків ● Перевірка масок моделі після ШІ Труднощі
  • 49. 49 Як працювати з великим датасетом
  • 50. 50 Ви маєте 100 000 фотографій і вам треба навчити модель ШІ ● Як грузити фотографії швидко у оперативну пам’ять: ○ Multiprocessing Pool in Python ■ Паралелізація для бідних Як працювати з великим датасетом
  • 51. 51 Ви маєте 100 000 фотографій і вам треба навчити модель ШІ ● Що робити у випадку нестачі оперативної пам’яті ○ Ви можете створити “swap memory” ■ HDD - але дуже повільно ■ SSD - дуже швидкий варіант, але ви вбиваєте ваш SSD. ○ Навчати модель не на всіх даних, а на батчах ■ Загрузити батч і навчити модель ■ Загрузити наступний батч і навчити модель ■ -----------------------повторити багато разів-------------------------- ■ Це працює але ваша модель перенавчається під нові батчі, а минулі батчі поступово забуваються Як працювати з великим датасетом
  • 52. 52 Ви маєте 100 000 фотографій і вам треба навчити модель ШІ ● Написати даталоадер (для прикладу TF or Pytorch) - правильний розв’язок ○ Ви можете обробляти необмежені датасети і не перегружать оперативну пам’ять. ○ Дані загружаються під час навчання ■ Так, 1 картинка може бути загружена 5 разів протягом 5 епох, ви втрачаєте час на обробку фотографій дуже сильно але маєте змогу навчати модель без oom помилок! ● Це абсолютно нормально якщо вам не вистачає оперативної пам’яті під час роботи з картинками. ● Більш того, якщо ваші дані для моделі ШІ поміщаються в оперативну пам’ять - у вас дуже мало даних! Як працювати з великим датасетом
  • 53. 53 Даталоадери грузять дані для навчання батч за батчем під час навчання моделі і не нагружают оперативну пам’ять 1) tf.data.Dataset 2) tf.keras.preprocessing.image.ImageDataGenerator - потребує спеціальної структури файлів на комп’ютері ● Train ○ Class1 ■ Img 1 ■ ……… ■ Img n ○ Class2 ○ Class3 ● Test ○ Class1 ○ Class2 ○ Class3 TensorFlow даталоадери