SlideShare a Scribd company logo
1 of 57
Download to read offline
Egyedi termék kreatívok tömeges gyártása
generatív AI segítségével
Hidasi Balázs
Generative AI | TECH MEETUP
2023. november 14.
Hidasi Balázs Czapp Ádám Jani Mátyás
• Ötletgazda
• Projekt vezetés
• Rendszer tervezés
• Kísérletek
• Modellezés
• Modell pipeline
• Kísérletek
• Éles keretrendszer tervezés
• Szolgáltatás implementáció
• Monitoring / üzemeltetés
Kéne egy jó kreatív
• Kreatív minősége korrelál a kattintási
valószínűséggel
▪ Hirdetési szegmensenként változó, hogy
mi a jó
▪ Közös jellemző: jól kinéző kép
• Több ember munkájának eredménye
▪ Tervezés
▪ Fotózás / megfelelő stock fotó keresés
▪ Grafikus alkalmazása
forrás: https://trends.Taboola.com/images?imageCategory=business
Kéne tízezer jó kreatív – az e-commerce use-case
• Termék szintű ajánlás
▪ Kereskedőként néhány ezertől akár milliós nagyságrendű különböző termék
• Kreatív minden termékhez 5-10 oldalaránnyal
▪ Drága
▪ Sok idő
• Változó termékkatalógus
▪ Folyamatosan szükség van új kreatívokra
• Egyszerű megoldás: kreatív = termékkép
▪ Egyszerű képek (pl. fehér háttér előtt)
?
Háttér generálás
1. Termék / háttér szeparálása
▪ Általában egyszerű fehér háttér, de más esetben is működik
2. Termék pozícionálása, skálázása és képarány beállítása
▪ Termék függő logika alapján
3. Háttér kitöltése (Stable Diffusion, inpainting)
▪ Termék helyére nem rajzolunk
4. Generált kép átméretezése
▪ Hirdetési hely méretéhez
Stable diffusion
• Diffúziós folyamat (diffusion process)
▪ Fehér zaj 𝜖~𝒩 0, 𝐼
▪ Kép zajosítása lépésenként egyre nagyobb mértékben
o 𝑥𝑡 = 1 − 𝛽𝑡𝑥𝑡−1 + 𝛽𝑡𝜖 0 < 𝛽1 < 𝛽2 < ⋯ < 𝛽𝑇
▪ Kép → 𝜖 zaj
• Fordított diffúziós folyamat
• Diffusion model (tanulás)
▪ Denoising autoencoder
o 𝑥𝑡-ből 𝑥𝑡−1 megbecslése (𝜖 becslése ekvivalens)
– 𝛽𝑡 ismert
o Közös denoising autoencoder az összes lépésre
– Lépés sorszáma mint input (positional embedding)
▪ Veszteségfüggvény: négyzetes hiba a becsült és a tényleges zaj között
500. lépés
200. lépés
100. lépés
50. lépés
20. lépés
10. lépés
2. lépés
1. lépés 5. lépés
eredeti
Stable diffusion
• Diffusion model (generálás)
▪ Betanult modell képes a tanító halmaz eloszlásából mintát generálni
▪ Zajból kiindulva denoising lépések sorozata
• Latent diffusion model
▪ A kép (pixel) tér helyett a diffusion modell egy alacsonyabb dimenziószámú látens térben működik
o Tömörítés: kép → látens kép → kép
o Emberi szem által nem érzékelhető részletek vesznek el
▪ Látens tér tanulása: autoencoder
o Előtanítás
– Együttes tanítás nem stabil
𝑥
෤
𝑥
pixel tér
látens tér
Diffúziós folyamat
Denoising U-Net
𝑧𝑇−1
𝑧 𝑧𝑇
𝑧
kondícionálás
ℰ
𝒟
*(T-1)
𝑧𝑇
𝑄
𝐾𝑉
𝑄
𝐾𝑉
𝑄
𝐾𝑉
𝑄
𝐾𝑉
𝜏𝜃
Stable diffusion
• Feltételes generálás (pl. text-to-image)
▪ Denoising háló: 𝑥𝑡, 𝑡 → 𝑥𝑡−1 ⇔ 𝑥𝑡, 𝑡 → 𝜖 ⇔ 𝑥𝑡, 𝑡 → ∇𝑥𝑡
log 𝑝 𝑥𝑡 (score)
o Intuitívan:
– hogyan kell módosítanom a zajos adaton, hogy növeljem a log likelihood-ot = távolítsam el a zajt = zaj irányával ellentétesen
o 𝑥𝑡 = 1 − 𝛽𝑡𝑥𝑡−1 + 𝛽𝑡𝜖 = ത
𝛼𝑡𝑥0 + 1 − ത
𝛼𝑡𝜖, ahol ത
𝛼𝑡 = ς𝑖=1
𝑡
1 − 𝛽𝑡
o 𝑥𝑡~𝒩 ത
𝛼𝑡𝑥0, 1 − ത
𝛼𝑡 𝐼
o ∇𝑥𝑡
log 𝑝 𝑥𝑡 = 𝔼𝑝 𝑥0
∇𝑥𝑡
𝑝 𝑥𝑡 𝑥0 = 𝔼𝑝 𝑥0
∇𝑥𝑡
−
𝑥𝑡− ഥ
𝛼𝑡𝑥0
2
2 1−ഥ
𝛼𝑡
= 𝔼𝑝(𝑥0) −
𝑥𝑡− ഥ
𝛼𝑡𝑥0
1−ഥ
𝛼𝑡
2 = 𝔼𝑝(𝑥0) −
𝜖
1−ഥ
𝛼𝑡
= −
𝜖
1−ഥ
𝛼𝑡
▪ Classifier guidance
o Predikciós időben kondicionálható a kimenet
– ∇𝑥 log 𝑝𝛾 𝑥 𝑦 = ∇𝑥 log 𝑝 𝑥 + 𝛾∇𝑥 log 𝑝 𝑦 𝑥
– Külön tanított osztályozó log 𝑝 𝑦 𝑥 modellezésére
▪ Tanítás során (kép, szöveg) párok
o Prompt dropout: az esetek egy részében a kondicionáláshoz használt szöveg eltávolítása
▪ Betanult modell megtanulja a feltételes és a feltétel nélküli eloszlás score függvényét is
o ∇𝑥 log 𝑝 𝑥 és ∇𝑥 log 𝑝 𝑥|𝑦
▪ CFG (classifier-free guidance)
o Bayes szabályból:
– 𝑝 𝑦 𝑥 =
𝑝 𝑥 𝑦 𝑝 𝑥
𝑝 𝑦
– log 𝑝 𝑦 𝑥 = log 𝑝 𝑥 𝑦 + log 𝑝 𝑦 − log 𝑝 𝑥
– ∇𝑥 log 𝑝 𝑦 𝑥 = ∇𝑥 log 𝑥 𝑦 − ∇𝑥 log 𝑝 𝑥
o Visszaírva ∇𝑥 log 𝑝𝛾 𝑥 𝑦 képletébe
– ∇𝑥 log 𝑝𝛾 𝑥 𝑦 = 1 − 𝛾 ∇𝑥 log 𝑝 𝑥 + 𝛾∇𝑥 log 𝑝 𝑦 𝑥
Stable diffusion
• Kondícionálás képen (pl. image-to-image, inpainting, stb)
▪ Minden lépésben
o Adott lépés bementi zajos képe (𝑥𝑡) helyett → zajos kép és kondícionáláshoz
használt kép súlyozott összege
Hogyan viselkedik a háttér generálás?
PROMPT: Túracipő
erdei talajon, mohás
kövekkel az előtérben
PROMPT: Papucs
strandon a homokban,
a tengerrel a háttérben
Kép méretének hatása
512x512
elvárt viselkedés
tanítás mérettartománya
Kép méretének hatása
256x256 512x512
384x384
absztrakt elvárt viselkedés
tanítás mérettartománya
Kép méretének hatása
256x256 512x512 1024x1024 2048x2048
384x384
absztrakt egyhangú
elvárt viselkedés
tanítás mérettartománya
Kép méretének hatása
• Melyik paraméter a fontos?
▪ Pixelek száma?
▪ Oldalarány?
▪ Kisebb/nagyobb oldal mérete?
Kép méretének hatása
• Melyik paraméter a fontos?
▪ Pixelek száma?
▪ Oldalarány?
▪ Kisebb/nagyobb oldal mérete?
1024x256
Kép méretének hatása
• Melyik paraméter a fontos?
▪ Pixelek száma?
▪ Oldalarány?
▪ Kisebb/nagyobb oldal mérete?
1024x256
2048x128
Generálás kiindulási pontja
• Véletlenszerű zaj (alapértelmezett)
▪ Szemcsés kép
• Egyszínű
▪ Elég ennyi variancia?
▪ Milyen színt használjunk?
• Folytonos színátmenet (gradiens)
▪ Folytonos = nem szemcsés kép?
▪ Milyen színeket használjunk?
• Statikus kép
▪ Éles kép = nem szemcsés kép ?
▪ Kell-e, hogy hasonló legyen az elvárt képhez?
Generálás kiindulási pontja – egyszínű
Generálás kiindulási pontja – egyszínű
Generálás kiindulási pontja – egyszínű
Generálás kiindulási pontja – egyszínű
• Főbb észrevételek
▪ Nem minden színből tud hátteret generálni
o Fekete és fehér nem jó ehhez
o Érdemes olyan színt választani, ahol az R/G/B közül egyik sem 0 vagy 255 közeli
▪ A háttér színe befolyásolja a színvilágot
▪ A színvilághoz igazodás eltérést eredményezhet a promptban kért környezettől
▪ Időnként nem generálja le a kért környezetet
▪ Több elmosódott rész a háttérben
o Nem feltétlenül baj
Generálás kiindulási pontja – gradiens
Generálás kiindulási pontja – gradiens
Generálás kiindulási pontja – gradiens
Generálás kiindulási pontja – gradiens
Generálás kiindulási pontja – gradiens
Generálás kiindulási pontja – gradiens
Generálás kiindulási pontja – gradiens
Generálás kiindulási pontja – gradiens
Generálás kiindulási pontja – gradiens
Generálás kiindulási pontja – gradiens
• Főbb észrevételek
▪ Háttér színe befolyásolja a színvilágot
▪ Bizonyos kombinációk megnehezítik a termék integrálását a környezetbe
▪ Az elvárt környezethez nem passzoló színek érdekes eredményt hozhatnak
o Pl. realisztikus helyett rajzolt, vagy a prompthoz csak lazán kapcsolódó
▪ A háttér gyakran elmosódott vagy elmosódott elemeket tartalmaz
o Nem feltétlenül baj
Generálás kiindulási pontja – kép
Generálás kiindulási pontja – kép
Generálás kiindulási pontja – kép
Generálás kiindulási pontja – kép
Generálás kiindulási pontja – kép
Generálás kiindulási pontja – kép
Generálás kiindulási pontja – kép
Generálás kiindulási pontja – kép
Generálás kiindulási pontja – kép
Generálás kiindulási pontja – kép
Generálás kiinduló pontja – kép
• Főbb észrevételek
▪ A modell képes jelentős mértékben eltérni az eredeti háttértől
▪ De az eredeti háttér színvilága befolyásolja a generált kép színvilágát
▪ Élesebb háttér elemek, mint a korábbi módszerekkel
▪ Termék pozícionálása befolyásolhatja, hogy milyen jól lesz integrálva a
generált környezetbe
Artifaktok – feliratok, logók
• Modell tanítóhalmaza az internetről gyűjtött képekből áll
▪ Nagy valószínűséggel kreatívokat is tartalmaz
▪ Ezeken gyakran szerepel felirat (pl. márka, kereskedő, stb.)
• A termékeink hasonlóak a tanítóhalmazban lévő
hirdetések termékihez
▪ Könnyen rákerülhet a generált képre is
• Megoldás: negatív prompt
Artifaktok – termék kiegészítése
• Az inpainting megoldás gyakran hozzárajzol a termékhez
▪ Néha kisebb mértékben: eddigi példák nagy része
▪ Néha könnyen észrevehető módon
Artifaktok – termék kiegészítése
• Az inpainting megoldás gyakran hozzárajzol a termékhez
▪ Néha kisebb mértékben: eddigi példák nagy része
▪ Néha könnyen észrevehető módon
▪ Néha egészen extrém módon
Artifaktok – termék kiegészítése
• Az inpainting megoldás gyakran hozzárajzol a termékhez
▪ Néha kisebb mértékben: eddigi példák nagy része
▪ Néha könnyen észrevehető módon
▪ Néha egészen extrém módon
Megoldás – Minőségellenőrző modell
• Osztályozó modell
▪ Kézzel gyűjtött jó/rossz példákon
▪ Néhány száz minta mellett is már 85+%-
os pontosság
• Újra generálás, ha rossznak ítéli
Alternatív megközelítés: ControlNet
1. Termék / háttér szeparálása
▪ Általában egyszerű fehér háttér, de más esetben is
működik
2. Termék pozícionálása, skálázása és képarány
beállítása
▪ Termék függő logika alapján
3. Élek detektálás
4. Kép generálás (Stable Diffusion)
▪ Teljes területre rajzolunk
▪ Élek figyelembe vételével (ControlNet)
5. Eredeti termék visszavágása a képre
6. Generált kép átméretezése
▪ Hirdetési hely méretéhez
ControlNet
• További kondicionálás
▪ Pl. élek, mélység, póz, stb
▪ Finomhangolás az új kondíciókat is hozzávéve
• Naív finomhangolás
▪ Elronthatjuk a modellt
o Catastrophical forgetting
• ControlNet
▪ Fixáljuk a súlyokat
▪ Hozzunk létre egy tanítható másolatot
▪ Ezt adjuk hozzá az eredetihez 1D konvolúcióval
o 0-val inicializálva
o Tanítás elején nem kerül káros zaj a rendszerbe
• Az U-net encoder részén ControlNet alkalmazása
forrás: Zhang et. al: Adding Control to Text-to-Image Diffusion Models, https://arxiv.org/pdf/2302.05543.pdf
ControlNet alapú megközelítés
• Termék kiegészítése és feliratok nem jellemzőek
• Termék rossz integrációja a környezetbe ritkább
▪ Pl. lebegő termék
• Gyakrabban fordul elő homályos háttér
▪ Élek megfeleltetése miatt
▪ Modell függő
▪ Prompt függő
▪ Nem feltétlenül gond
o Termék marad a fókuszban
Online A/B teszt
• Kontroll
▪ Nyers termékkép
átméretezve
▪ Termékek
jelentős részéhez
fehér hátterű kép
tartozik
• Fehér
▪ Termék
detektálás
▪ Pozícionálás,
skálázás
• Háttér
▪ Teljes
háttérgenerálás
folyamat
Online A/B teszt
0.00%
5.00%
10.00%
15.00%
20.00%
25.00%
30.00%
35.00%
40.00%
45.00%
50.00%
0.00%
5.00%
10.00%
15.00%
20.00%
25.00%
30.00%
35.00%
40.00%
45.00%
50.00%
Relatív CTR növekedés, kumulatív
Háttér Fehér
• CTR:
▪ Háttér: +16.85% ± 2.03%
▪ Fehér: +5.1% ± 1.99%
Online A/B teszt
0.00%
5.00%
10.00%
15.00%
20.00%
25.00%
30.00%
35.00%
40.00%
45.00%
50.00%
0.00%
5.00%
10.00%
15.00%
20.00%
25.00%
30.00%
35.00%
40.00%
45.00%
50.00%
Relatív CTR növekedés, kumulatív
Háttér Fehér
• CTR:
▪ Háttér: +16.85% ± 2.03%
▪ Fehér: +5.1% ± 1.99%
• Konverzió / 1000 megjelenítés
▪ Háttér: +12.92% ± 8.57%
▪ Fehér: +7.29% ± 8.52%
0.00%
10.00%
20.00%
30.00%
40.00%
50.00%
60.00%
70.00%
80.00%
Relatív 1000 megjelenítésre eső konverziószám
növekedés (Háttér/Kontroll), kumulatív
0.00%
10.00%
20.00%
30.00%
40.00%
50.00%
60.00%
70.00%
80.00%
Relatív 1000 megjelenítésre eső konverziószám
növekedés (Fehér/Kontroll), kumulatív
A teljes kép
Objektum
detektálás
Háttér generálás
Kép
Prompt
Masz
kolás
Minőségellenőr
modell
Tömeges generálás
AI modell
Emberi hozzájárulás
Kép
variánsok
Kép
variánsok
Összes
termék
kép
Generált
kreatívok
G
E
N
E
R
Á
L
Á
S
KONTROLL
OPTIMALIZÁLÁS
A teljes kép – személyre szabott kreatívok
• Melyik környezetben néz ki a legjobban a termék? → szubjektív
• Minden felhasználónak azt mutassuk, amire a legnagyobb
valószínűséggel kattint
▪ Témák definiálása termékcsoportokhoz → lefordítás prompt-okra
▪ Statikus felhasználói csoportok helyett jellemzők
▪ Dinamikus optimalizálás (pl. contextual multiarmed bandit)
A teljes kép – hírdetői kontroll
• Minőség felett
▪ Rossz képek letiltása / újra generálása
▪ Minőségellenőrző modell ezeket később figyelembe veszi
• Témák felett
▪ Termékcsoportonként mi legyen a környezet, milyen stílusban
▪ Támogatás a rendszertől: mi teljesít jól
• Részletek felett
▪ Milyen extrák (logó, terméknév, akció, stb) kerüljön a képre
▪ Prompt finomhangolása
Összefoglalás
• Termék szintű banner generálás automatikusan
• Stable diffusion
▪ Érdemes a modell natív pixelszáma körüli képekkel dolgozni
▪ Kondicionáláshoz használt háttérrel jól kontrollálható az eredmény
• Pipelineok
▪ Inpainting
o Élesebb hátterek, de artifaktok előfordulhatnak
▪ ControlNet
o Nincsenek artifaktok, de elmosódottabb a háttér
• Eredmények
▪ Jelentős növekedés a kattintások számában
▪ és konverzió növekedés ennek folyományaként
• A banner generálás csak egy része a teljes megoldásnak
Köszönöm a figyelmet!
Kérdések?

More Related Content

More from Balázs Hidasi

Approximate modeling of continuous context in factorization algorithms (CaRR1...
Approximate modeling of continuous context in factorization algorithms (CaRR1...Approximate modeling of continuous context in factorization algorithms (CaRR1...
Approximate modeling of continuous context in factorization algorithms (CaRR1...Balázs Hidasi
 
Utilizing additional information in factorization methods (research overview,...
Utilizing additional information in factorization methods (research overview,...Utilizing additional information in factorization methods (research overview,...
Utilizing additional information in factorization methods (research overview,...Balázs Hidasi
 
Az implicit ajánlási probléma és néhány megoldása (BME TMIT szeminárium előad...
Az implicit ajánlási probléma és néhány megoldása (BME TMIT szeminárium előad...Az implicit ajánlási probléma és néhány megoldása (BME TMIT szeminárium előad...
Az implicit ajánlási probléma és néhány megoldása (BME TMIT szeminárium előad...Balázs Hidasi
 
Context-aware similarities within the factorization framework (CaRR 2013 pres...
Context-aware similarities within the factorization framework (CaRR 2013 pres...Context-aware similarities within the factorization framework (CaRR 2013 pres...
Context-aware similarities within the factorization framework (CaRR 2013 pres...Balázs Hidasi
 
iTALS: implicit tensor factorization for context-aware recommendations (ECML/...
iTALS: implicit tensor factorization for context-aware recommendations (ECML/...iTALS: implicit tensor factorization for context-aware recommendations (ECML/...
iTALS: implicit tensor factorization for context-aware recommendations (ECML/...Balázs Hidasi
 
Initialization of matrix factorization (CaRR 2012 presentation)
Initialization of matrix factorization (CaRR 2012 presentation)Initialization of matrix factorization (CaRR 2012 presentation)
Initialization of matrix factorization (CaRR 2012 presentation)Balázs Hidasi
 
ShiftTree: model alapú idősor-osztályozó (VK 2009 előadás)
ShiftTree: model alapú idősor-osztályozó (VK 2009 előadás)ShiftTree: model alapú idősor-osztályozó (VK 2009 előadás)
ShiftTree: model alapú idősor-osztályozó (VK 2009 előadás)Balázs Hidasi
 
ShiftTree: model alapú idősor-osztályozó (ML@BP előadás, 2012)
ShiftTree: model alapú idősor-osztályozó (ML@BP előadás, 2012)ShiftTree: model alapú idősor-osztályozó (ML@BP előadás, 2012)
ShiftTree: model alapú idősor-osztályozó (ML@BP előadás, 2012)Balázs Hidasi
 
ShiftTree: model based time series classifier (ECML/PKDD 2011 presentation)
ShiftTree: model based time series classifier (ECML/PKDD 2011 presentation)ShiftTree: model based time series classifier (ECML/PKDD 2011 presentation)
ShiftTree: model based time series classifier (ECML/PKDD 2011 presentation)Balázs Hidasi
 

More from Balázs Hidasi (9)

Approximate modeling of continuous context in factorization algorithms (CaRR1...
Approximate modeling of continuous context in factorization algorithms (CaRR1...Approximate modeling of continuous context in factorization algorithms (CaRR1...
Approximate modeling of continuous context in factorization algorithms (CaRR1...
 
Utilizing additional information in factorization methods (research overview,...
Utilizing additional information in factorization methods (research overview,...Utilizing additional information in factorization methods (research overview,...
Utilizing additional information in factorization methods (research overview,...
 
Az implicit ajánlási probléma és néhány megoldása (BME TMIT szeminárium előad...
Az implicit ajánlási probléma és néhány megoldása (BME TMIT szeminárium előad...Az implicit ajánlási probléma és néhány megoldása (BME TMIT szeminárium előad...
Az implicit ajánlási probléma és néhány megoldása (BME TMIT szeminárium előad...
 
Context-aware similarities within the factorization framework (CaRR 2013 pres...
Context-aware similarities within the factorization framework (CaRR 2013 pres...Context-aware similarities within the factorization framework (CaRR 2013 pres...
Context-aware similarities within the factorization framework (CaRR 2013 pres...
 
iTALS: implicit tensor factorization for context-aware recommendations (ECML/...
iTALS: implicit tensor factorization for context-aware recommendations (ECML/...iTALS: implicit tensor factorization for context-aware recommendations (ECML/...
iTALS: implicit tensor factorization for context-aware recommendations (ECML/...
 
Initialization of matrix factorization (CaRR 2012 presentation)
Initialization of matrix factorization (CaRR 2012 presentation)Initialization of matrix factorization (CaRR 2012 presentation)
Initialization of matrix factorization (CaRR 2012 presentation)
 
ShiftTree: model alapú idősor-osztályozó (VK 2009 előadás)
ShiftTree: model alapú idősor-osztályozó (VK 2009 előadás)ShiftTree: model alapú idősor-osztályozó (VK 2009 előadás)
ShiftTree: model alapú idősor-osztályozó (VK 2009 előadás)
 
ShiftTree: model alapú idősor-osztályozó (ML@BP előadás, 2012)
ShiftTree: model alapú idősor-osztályozó (ML@BP előadás, 2012)ShiftTree: model alapú idősor-osztályozó (ML@BP előadás, 2012)
ShiftTree: model alapú idősor-osztályozó (ML@BP előadás, 2012)
 
ShiftTree: model based time series classifier (ECML/PKDD 2011 presentation)
ShiftTree: model based time series classifier (ECML/PKDD 2011 presentation)ShiftTree: model based time series classifier (ECML/PKDD 2011 presentation)
ShiftTree: model based time series classifier (ECML/PKDD 2011 presentation)
 

Egyedi termék kreatívok tömeges gyártása generatív AI segítségével

  • 1. Egyedi termék kreatívok tömeges gyártása generatív AI segítségével Hidasi Balázs Generative AI | TECH MEETUP 2023. november 14.
  • 2. Hidasi Balázs Czapp Ádám Jani Mátyás • Ötletgazda • Projekt vezetés • Rendszer tervezés • Kísérletek • Modellezés • Modell pipeline • Kísérletek • Éles keretrendszer tervezés • Szolgáltatás implementáció • Monitoring / üzemeltetés
  • 3. Kéne egy jó kreatív • Kreatív minősége korrelál a kattintási valószínűséggel ▪ Hirdetési szegmensenként változó, hogy mi a jó ▪ Közös jellemző: jól kinéző kép • Több ember munkájának eredménye ▪ Tervezés ▪ Fotózás / megfelelő stock fotó keresés ▪ Grafikus alkalmazása forrás: https://trends.Taboola.com/images?imageCategory=business
  • 4. Kéne tízezer jó kreatív – az e-commerce use-case • Termék szintű ajánlás ▪ Kereskedőként néhány ezertől akár milliós nagyságrendű különböző termék • Kreatív minden termékhez 5-10 oldalaránnyal ▪ Drága ▪ Sok idő • Változó termékkatalógus ▪ Folyamatosan szükség van új kreatívokra • Egyszerű megoldás: kreatív = termékkép ▪ Egyszerű képek (pl. fehér háttér előtt) ?
  • 5. Háttér generálás 1. Termék / háttér szeparálása ▪ Általában egyszerű fehér háttér, de más esetben is működik 2. Termék pozícionálása, skálázása és képarány beállítása ▪ Termék függő logika alapján 3. Háttér kitöltése (Stable Diffusion, inpainting) ▪ Termék helyére nem rajzolunk 4. Generált kép átméretezése ▪ Hirdetési hely méretéhez
  • 6. Stable diffusion • Diffúziós folyamat (diffusion process) ▪ Fehér zaj 𝜖~𝒩 0, 𝐼 ▪ Kép zajosítása lépésenként egyre nagyobb mértékben o 𝑥𝑡 = 1 − 𝛽𝑡𝑥𝑡−1 + 𝛽𝑡𝜖 0 < 𝛽1 < 𝛽2 < ⋯ < 𝛽𝑇 ▪ Kép → 𝜖 zaj • Fordított diffúziós folyamat • Diffusion model (tanulás) ▪ Denoising autoencoder o 𝑥𝑡-ből 𝑥𝑡−1 megbecslése (𝜖 becslése ekvivalens) – 𝛽𝑡 ismert o Közös denoising autoencoder az összes lépésre – Lépés sorszáma mint input (positional embedding) ▪ Veszteségfüggvény: négyzetes hiba a becsült és a tényleges zaj között 500. lépés 200. lépés 100. lépés 50. lépés 20. lépés 10. lépés 2. lépés 1. lépés 5. lépés eredeti
  • 7. Stable diffusion • Diffusion model (generálás) ▪ Betanult modell képes a tanító halmaz eloszlásából mintát generálni ▪ Zajból kiindulva denoising lépések sorozata • Latent diffusion model ▪ A kép (pixel) tér helyett a diffusion modell egy alacsonyabb dimenziószámú látens térben működik o Tömörítés: kép → látens kép → kép o Emberi szem által nem érzékelhető részletek vesznek el ▪ Látens tér tanulása: autoencoder o Előtanítás – Együttes tanítás nem stabil 𝑥 ෤ 𝑥 pixel tér látens tér Diffúziós folyamat Denoising U-Net 𝑧𝑇−1 𝑧 𝑧𝑇 𝑧 kondícionálás ℰ 𝒟 *(T-1) 𝑧𝑇 𝑄 𝐾𝑉 𝑄 𝐾𝑉 𝑄 𝐾𝑉 𝑄 𝐾𝑉 𝜏𝜃
  • 8. Stable diffusion • Feltételes generálás (pl. text-to-image) ▪ Denoising háló: 𝑥𝑡, 𝑡 → 𝑥𝑡−1 ⇔ 𝑥𝑡, 𝑡 → 𝜖 ⇔ 𝑥𝑡, 𝑡 → ∇𝑥𝑡 log 𝑝 𝑥𝑡 (score) o Intuitívan: – hogyan kell módosítanom a zajos adaton, hogy növeljem a log likelihood-ot = távolítsam el a zajt = zaj irányával ellentétesen o 𝑥𝑡 = 1 − 𝛽𝑡𝑥𝑡−1 + 𝛽𝑡𝜖 = ത 𝛼𝑡𝑥0 + 1 − ത 𝛼𝑡𝜖, ahol ത 𝛼𝑡 = ς𝑖=1 𝑡 1 − 𝛽𝑡 o 𝑥𝑡~𝒩 ത 𝛼𝑡𝑥0, 1 − ത 𝛼𝑡 𝐼 o ∇𝑥𝑡 log 𝑝 𝑥𝑡 = 𝔼𝑝 𝑥0 ∇𝑥𝑡 𝑝 𝑥𝑡 𝑥0 = 𝔼𝑝 𝑥0 ∇𝑥𝑡 − 𝑥𝑡− ഥ 𝛼𝑡𝑥0 2 2 1−ഥ 𝛼𝑡 = 𝔼𝑝(𝑥0) − 𝑥𝑡− ഥ 𝛼𝑡𝑥0 1−ഥ 𝛼𝑡 2 = 𝔼𝑝(𝑥0) − 𝜖 1−ഥ 𝛼𝑡 = − 𝜖 1−ഥ 𝛼𝑡 ▪ Classifier guidance o Predikciós időben kondicionálható a kimenet – ∇𝑥 log 𝑝𝛾 𝑥 𝑦 = ∇𝑥 log 𝑝 𝑥 + 𝛾∇𝑥 log 𝑝 𝑦 𝑥 – Külön tanított osztályozó log 𝑝 𝑦 𝑥 modellezésére ▪ Tanítás során (kép, szöveg) párok o Prompt dropout: az esetek egy részében a kondicionáláshoz használt szöveg eltávolítása ▪ Betanult modell megtanulja a feltételes és a feltétel nélküli eloszlás score függvényét is o ∇𝑥 log 𝑝 𝑥 és ∇𝑥 log 𝑝 𝑥|𝑦 ▪ CFG (classifier-free guidance) o Bayes szabályból: – 𝑝 𝑦 𝑥 = 𝑝 𝑥 𝑦 𝑝 𝑥 𝑝 𝑦 – log 𝑝 𝑦 𝑥 = log 𝑝 𝑥 𝑦 + log 𝑝 𝑦 − log 𝑝 𝑥 – ∇𝑥 log 𝑝 𝑦 𝑥 = ∇𝑥 log 𝑥 𝑦 − ∇𝑥 log 𝑝 𝑥 o Visszaírva ∇𝑥 log 𝑝𝛾 𝑥 𝑦 képletébe – ∇𝑥 log 𝑝𝛾 𝑥 𝑦 = 1 − 𝛾 ∇𝑥 log 𝑝 𝑥 + 𝛾∇𝑥 log 𝑝 𝑦 𝑥
  • 9. Stable diffusion • Kondícionálás képen (pl. image-to-image, inpainting, stb) ▪ Minden lépésben o Adott lépés bementi zajos képe (𝑥𝑡) helyett → zajos kép és kondícionáláshoz használt kép súlyozott összege
  • 10. Hogyan viselkedik a háttér generálás? PROMPT: Túracipő erdei talajon, mohás kövekkel az előtérben PROMPT: Papucs strandon a homokban, a tengerrel a háttérben
  • 11. Kép méretének hatása 512x512 elvárt viselkedés tanítás mérettartománya
  • 12. Kép méretének hatása 256x256 512x512 384x384 absztrakt elvárt viselkedés tanítás mérettartománya
  • 13. Kép méretének hatása 256x256 512x512 1024x1024 2048x2048 384x384 absztrakt egyhangú elvárt viselkedés tanítás mérettartománya
  • 14. Kép méretének hatása • Melyik paraméter a fontos? ▪ Pixelek száma? ▪ Oldalarány? ▪ Kisebb/nagyobb oldal mérete?
  • 15. Kép méretének hatása • Melyik paraméter a fontos? ▪ Pixelek száma? ▪ Oldalarány? ▪ Kisebb/nagyobb oldal mérete? 1024x256
  • 16. Kép méretének hatása • Melyik paraméter a fontos? ▪ Pixelek száma? ▪ Oldalarány? ▪ Kisebb/nagyobb oldal mérete? 1024x256 2048x128
  • 17. Generálás kiindulási pontja • Véletlenszerű zaj (alapértelmezett) ▪ Szemcsés kép • Egyszínű ▪ Elég ennyi variancia? ▪ Milyen színt használjunk? • Folytonos színátmenet (gradiens) ▪ Folytonos = nem szemcsés kép? ▪ Milyen színeket használjunk? • Statikus kép ▪ Éles kép = nem szemcsés kép ? ▪ Kell-e, hogy hasonló legyen az elvárt képhez?
  • 21. Generálás kiindulási pontja – egyszínű • Főbb észrevételek ▪ Nem minden színből tud hátteret generálni o Fekete és fehér nem jó ehhez o Érdemes olyan színt választani, ahol az R/G/B közül egyik sem 0 vagy 255 közeli ▪ A háttér színe befolyásolja a színvilágot ▪ A színvilághoz igazodás eltérést eredményezhet a promptban kért környezettől ▪ Időnként nem generálja le a kért környezetet ▪ Több elmosódott rész a háttérben o Nem feltétlenül baj
  • 31. Generálás kiindulási pontja – gradiens • Főbb észrevételek ▪ Háttér színe befolyásolja a színvilágot ▪ Bizonyos kombinációk megnehezítik a termék integrálását a környezetbe ▪ Az elvárt környezethez nem passzoló színek érdekes eredményt hozhatnak o Pl. realisztikus helyett rajzolt, vagy a prompthoz csak lazán kapcsolódó ▪ A háttér gyakran elmosódott vagy elmosódott elemeket tartalmaz o Nem feltétlenül baj
  • 42. Generálás kiinduló pontja – kép • Főbb észrevételek ▪ A modell képes jelentős mértékben eltérni az eredeti háttértől ▪ De az eredeti háttér színvilága befolyásolja a generált kép színvilágát ▪ Élesebb háttér elemek, mint a korábbi módszerekkel ▪ Termék pozícionálása befolyásolhatja, hogy milyen jól lesz integrálva a generált környezetbe
  • 43. Artifaktok – feliratok, logók • Modell tanítóhalmaza az internetről gyűjtött képekből áll ▪ Nagy valószínűséggel kreatívokat is tartalmaz ▪ Ezeken gyakran szerepel felirat (pl. márka, kereskedő, stb.) • A termékeink hasonlóak a tanítóhalmazban lévő hirdetések termékihez ▪ Könnyen rákerülhet a generált képre is • Megoldás: negatív prompt
  • 44. Artifaktok – termék kiegészítése • Az inpainting megoldás gyakran hozzárajzol a termékhez ▪ Néha kisebb mértékben: eddigi példák nagy része ▪ Néha könnyen észrevehető módon
  • 45. Artifaktok – termék kiegészítése • Az inpainting megoldás gyakran hozzárajzol a termékhez ▪ Néha kisebb mértékben: eddigi példák nagy része ▪ Néha könnyen észrevehető módon ▪ Néha egészen extrém módon
  • 46. Artifaktok – termék kiegészítése • Az inpainting megoldás gyakran hozzárajzol a termékhez ▪ Néha kisebb mértékben: eddigi példák nagy része ▪ Néha könnyen észrevehető módon ▪ Néha egészen extrém módon Megoldás – Minőségellenőrző modell • Osztályozó modell ▪ Kézzel gyűjtött jó/rossz példákon ▪ Néhány száz minta mellett is már 85+%- os pontosság • Újra generálás, ha rossznak ítéli
  • 47. Alternatív megközelítés: ControlNet 1. Termék / háttér szeparálása ▪ Általában egyszerű fehér háttér, de más esetben is működik 2. Termék pozícionálása, skálázása és képarány beállítása ▪ Termék függő logika alapján 3. Élek detektálás 4. Kép generálás (Stable Diffusion) ▪ Teljes területre rajzolunk ▪ Élek figyelembe vételével (ControlNet) 5. Eredeti termék visszavágása a képre 6. Generált kép átméretezése ▪ Hirdetési hely méretéhez
  • 48. ControlNet • További kondicionálás ▪ Pl. élek, mélység, póz, stb ▪ Finomhangolás az új kondíciókat is hozzávéve • Naív finomhangolás ▪ Elronthatjuk a modellt o Catastrophical forgetting • ControlNet ▪ Fixáljuk a súlyokat ▪ Hozzunk létre egy tanítható másolatot ▪ Ezt adjuk hozzá az eredetihez 1D konvolúcióval o 0-val inicializálva o Tanítás elején nem kerül káros zaj a rendszerbe • Az U-net encoder részén ControlNet alkalmazása forrás: Zhang et. al: Adding Control to Text-to-Image Diffusion Models, https://arxiv.org/pdf/2302.05543.pdf
  • 49. ControlNet alapú megközelítés • Termék kiegészítése és feliratok nem jellemzőek • Termék rossz integrációja a környezetbe ritkább ▪ Pl. lebegő termék • Gyakrabban fordul elő homályos háttér ▪ Élek megfeleltetése miatt ▪ Modell függő ▪ Prompt függő ▪ Nem feltétlenül gond o Termék marad a fókuszban
  • 50. Online A/B teszt • Kontroll ▪ Nyers termékkép átméretezve ▪ Termékek jelentős részéhez fehér hátterű kép tartozik • Fehér ▪ Termék detektálás ▪ Pozícionálás, skálázás • Háttér ▪ Teljes háttérgenerálás folyamat
  • 52. Online A/B teszt 0.00% 5.00% 10.00% 15.00% 20.00% 25.00% 30.00% 35.00% 40.00% 45.00% 50.00% 0.00% 5.00% 10.00% 15.00% 20.00% 25.00% 30.00% 35.00% 40.00% 45.00% 50.00% Relatív CTR növekedés, kumulatív Háttér Fehér • CTR: ▪ Háttér: +16.85% ± 2.03% ▪ Fehér: +5.1% ± 1.99% • Konverzió / 1000 megjelenítés ▪ Háttér: +12.92% ± 8.57% ▪ Fehér: +7.29% ± 8.52% 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% Relatív 1000 megjelenítésre eső konverziószám növekedés (Háttér/Kontroll), kumulatív 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% Relatív 1000 megjelenítésre eső konverziószám növekedés (Fehér/Kontroll), kumulatív
  • 53. A teljes kép Objektum detektálás Háttér generálás Kép Prompt Masz kolás Minőségellenőr modell Tömeges generálás AI modell Emberi hozzájárulás Kép variánsok Kép variánsok Összes termék kép Generált kreatívok G E N E R Á L Á S KONTROLL OPTIMALIZÁLÁS
  • 54. A teljes kép – személyre szabott kreatívok • Melyik környezetben néz ki a legjobban a termék? → szubjektív • Minden felhasználónak azt mutassuk, amire a legnagyobb valószínűséggel kattint ▪ Témák definiálása termékcsoportokhoz → lefordítás prompt-okra ▪ Statikus felhasználói csoportok helyett jellemzők ▪ Dinamikus optimalizálás (pl. contextual multiarmed bandit)
  • 55. A teljes kép – hírdetői kontroll • Minőség felett ▪ Rossz képek letiltása / újra generálása ▪ Minőségellenőrző modell ezeket később figyelembe veszi • Témák felett ▪ Termékcsoportonként mi legyen a környezet, milyen stílusban ▪ Támogatás a rendszertől: mi teljesít jól • Részletek felett ▪ Milyen extrák (logó, terméknév, akció, stb) kerüljön a képre ▪ Prompt finomhangolása
  • 56. Összefoglalás • Termék szintű banner generálás automatikusan • Stable diffusion ▪ Érdemes a modell natív pixelszáma körüli képekkel dolgozni ▪ Kondicionáláshoz használt háttérrel jól kontrollálható az eredmény • Pipelineok ▪ Inpainting o Élesebb hátterek, de artifaktok előfordulhatnak ▪ ControlNet o Nincsenek artifaktok, de elmosódottabb a háttér • Eredmények ▪ Jelentős növekedés a kattintások számában ▪ és konverzió növekedés ennek folyományaként • A banner generálás csak egy része a teljes megoldásnak