Pärast transformer-mudelite edu NLP-ülesannete lahendamisel on sama või sarnaseid arhitektuure rakendatud ka arvutinägemise ülesannetes. Kasvab huvi luua mudeleid, mis ühendaksid nägemise ja loomuliku keele võimekused. Üks sellistest katsetest tehti OpenAI poolt ja seda nimetatakse CLIP ja DALL.E.
CLIP-i peamine idee on võrrelda tekstilisi juhiseid pildiga ja määrata, kui hästi pilt vastab juhisele.
Mudelit treenitakse internetist saadud piltide ja nende pealkirjade põhjal. Iga partii jaoks võtame N paari (pilt, tekst) ja teisendame need vektorrepresentatsioonideks I1,..., IN / T1, ..., TN. Need representatsioonid sobitatakse seejärel omavahel. Kaotusefunktsioon on määratletud nii, et maksimeeritakse kosinussarnasus ühe paari vektorite vahel (nt Ii ja Ti) ning minimeeritakse kosinussarnasus kõigi teiste paaride vahel. Seetõttu nimetatakse seda lähenemist kontrastiivseks.
CLIP mudel/teek on saadaval OpenAI GitHubis. Lähenemist kirjeldatakse selles blogipostituses ja detailsemalt selles artiklis.
Kui mudel on eelnevalt treenitud, saame anda sellele pildipartii ja tekstiliste juhiste partii, ning see tagastab tensoriga tõenäosused. CLIP-i saab kasutada mitmel ülesandel:
Pildiklassifikatsioon
Oletame, et peame klassifitseerima pilte näiteks kasside, koerte ja inimeste vahel. Sel juhul saame mudelile anda pildi ja rea tekstilisi juhiseid: "kassi pilt", "koera pilt", "inimese pilt". Kolme tõenäosuse vektoris peame lihtsalt valima indeksi, mille väärtus on kõige suurem.
Tekstipõhine pildiotsing
Saame teha ka vastupidist. Kui meil on piltide kogu, saame selle mudelile edastada koos tekstilise juhisega – see annab meile pildi, mis vastab juhisele kõige paremini.
Avage Clip.ipynb märkmik, et näha CLIP-i tegevuses.
CLIP-i saab kasutada ka pildigeneratsiooniks tekstilise juhise põhjal. Selleks on vaja generaatorimudelit, mis suudab genereerida pilte mingi vektorsisendi põhjal. Üks sellistest mudelitest on VQGAN (Vector-Quantized GAN).
VQGAN-i peamised ideed, mis eristavad seda tavalisest GAN-ist, on järgmised:
- Autoregressiivse transformeri arhitektuuri kasutamine, et genereerida konteksti-rikkaid visuaalseid osi, mis moodustavad pildi. Need visuaalsed osad õpitakse omakorda CNN-i abil.
- Alampildi diskriminaatori kasutamine, mis tuvastab, kas pildi osad on "päris" või "võlts" (erinevalt traditsioonilise GAN-i "kõik-või-mitte-midagi" lähenemisest).
Lisateavet VQGAN-i kohta leiate Taming Transformers veebisaidilt.
Üks oluline erinevus VQGAN-i ja traditsioonilise GAN-i vahel on see, et viimane suudab genereerida korraliku pildi mis tahes sisendvektorist, samas kui VQGAN-i puhul on tõenäoline, et pilt ei ole koherentne. Seetõttu peame pildiloome protsessi täiendavalt suunama, mida saab teha CLIP-i abil.
Tekstijuhisele vastava pildi genereerimiseks alustame juhusliku kodeerimisvektoriga, mis edastatakse VQGAN-ile, et luua pilt. Seejärel kasutatakse CLIP-i kaotusefunktsiooni loomiseks, mis näitab, kui hästi pilt vastab tekstilisele juhisele. Eesmärk on seejärel minimeerida kaotus, kasutades tagasipropageerimist sisendvektori parameetrite kohandamiseks.
Suurepärane teek, mis rakendab VQGAN+CLIP-i, on Pixray.
Pildid Artificial Teachers kollektsioonist, autor Dmitry Soshnikov
DALL-E on GPT-3 versioon, mis on treenitud genereerima pilte juhiste põhjal. Seda on treenitud 12 miljardi parameetriga.
Erinevalt CLIP-ist võtab DALL-E vastu nii teksti kui pilti ühe tokenite voona. Seega saab mitme juhise põhjal genereerida pilte vastavalt tekstile.
Peamine erinevus DALL.E 1 ja 2 vahel on see, et viimane genereerib realistlikumaid pilte ja kunsti.
Näited DALL-E abil genereeritud piltidest:
- VQGAN artikkel: Taming Transformers for High-Resolution Image Synthesis
- CLIP artikkel: Learning Transferable Visual Models From Natural Language Supervision
Lahtiütlus:
See dokument on tõlgitud AI tõlketeenuse Co-op Translator abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.








