Mis on CLIP?
CLIP ehk Contrastive Language-Image Pre-Training on OpenAI nägemise ja keele uurimismudel, mis avaldati 5. jaanuaril 2021. Seda treeniti suurte piltide ja tekstikirjelduste paaride kogumite põhjal, et õppida, millised pildid ja kirjeldused omavahel kokku sobivad. Tulemuseks on mudel, mis teisendab pildid ja teksti ühisesse matemaatilisse ruumi, võimaldades tarkvaral mõõta, kui hästi pilt mingi fraasiga kokku sobib.
See ülesehitus eristab CLIP-i tavapärasest pildiklassifitseerijast. Traditsiooniline klassifitseerija treenitakse tavaliselt kindla kategoorialoendi, näiteks kasside, koerte ja autode jaoks. CLIP saab aga võrrelda pilti loomulikus keeles esitatud kandidaatidega, mis antakse mudelile kasutamise ajal. Näiteks võib rakendus hinnata pilti viipade „foto koerast” ja „foto kassist” põhjal ning valida kirjelduse, mis pildiga paremini sobib. Seda nimetatakse nullnäitega klassifitseerimiseks (zero-shot classification), sest mudel suudab kategooriaid hinnata ilma uue, konkreetse ülesande jaoks mõeldud treeninguta.
Siin on põhitähelepanu CLIP-il, mitte OpenAI praegusel majutataval vestlusmudelil. OpenAI avaldas selle koodi ja mudelite kaalud teadusuuringuteks ning kohapealseks või ühilduva kolmanda osapoole juurutuseks. Esitatud uurimismaterjal ei kinnita, et CLIP oleks praegu OpenAI majutatava API kataloogis saadaval.
Kuidas CLIP pilte ja teksti seostab
CLIP koosneb kahest põhilisest kodeerijast: pildikodeerijast ja tekstikodeerijast. Pildikodeerija teisendab pildi vektoriks ning tekstikodeerija teisendab fraasi sama üldise esitlusruumi vektoriks. Treeningu ajal suunatakse omavahel sobivate pildi-teksti paaride vektorid suurema sarnasuse poole, samal ajal kui omavahel mitteseotud paarid lükatakse üksteisest kaugemale.
Kasutamise ajal saab rakendus kodeerida ühe pildi ja mitu võimalikku tekstikirjeldust ning seejärel nende vektoreid võrrelda. Suurim sarnasusskoor näitab, milline kirjeldus mudeli hinnangul kõige paremini sobib. Seega ei pea süsteem genereerima selgitust ega kirjutama tekstilist vastust. Selle põhiväljund on piltide ja teksti esituste kogum koos sarnasusskooridega, mida muu tarkvara saab kasutada.
Avaldatud teostus kasutab fikseeritud 77 märgi pikkust tekstikonteksti. Praktikas piirab see tekstijada pikkust, mida avaldatud teostuse tekstikodeerija suudab töödelda. Täpne pildi eraldusvõime ja arvutusvajadus sõltuvad valitud kontrollpunktist (checkpoint) ja selle pildikodeerijast.
Avalikud CLIP-i variandid ja arvutuslikud kompromissid
OpenAI avalik repositoorium sisaldab mitut erineva pildikodeerijaga CLIP-i kontrollpunkti. Loetletud variandid on RN50, RN101, RN50x4, RN50x16, RN50x64, ViT-B/32, ViT-B/16, ViT-L/14 ja ViT-L/14@336px.
Nimetused viitavad erinevatele arhitektuuri- ja mastaabivalikutele. RN-variandid kasutavad ResNeti-põhiseid pildikodeerijaid, ViT-variandid aga Vision Transformeri pildikodeerijaid. Väiksemaid kontrollpunkte, näiteks RN50 ja ViT-B/32, on üldiselt lihtsam käitada, sest need vajavad vähem mälu ja arvutusvõimsust. Suuremad variandid, sealhulgas RN50x64 ja ViT-L/14@336px, pakuvad üldiselt kvaliteetsemat esitust, kuid nõuavad rohkem ressursse. Need on mudeliperekonnaga seotud praktilised kompromissid; esitatud uurimismaterjal ei paku ühtainsat võrdlusskoori, mille põhjal saaks kõiki variante iga ülesande puhul järjestada.
Seega on kontrollpunkti valik insenertehniline otsus. Kerge variant võib olla eelistatav kiireks katsetamiseks, suure läbilaskevõimega indekseerimiseks või piiratud mäluga riistvara puhul. Suuremat varianti võib olla mõistlik hinnata siis, kui esituse kvaliteet on järeldamise kulust olulisem. Parim valik võib sõltuda ka piltide valdkonnast, eeltöötlusest, viipade kujundusest ning kavandatavast otsingu- või klassifitseerimisülesandest.
Mida CLIP suudab teha
CLIP-i peamine võimekus on ristmodaalne esitus: see paigutab pildid ja teksti ruumi, kus omavahel seotud elemente saab võrrelda. Levinud kasutusviisid on järgmised:
- Nullnäitega pildiklassifitseerimine: pildi võrdlemine loomulikus keeles sõnastatud klassiviipadega, ilma et iga sildikomplekti jaoks tuleks treenida uus klassifitseerija.
- Pildi ja teksti sarnasus: hinnata, kui hästi kirjeldus pildile vastab.
- Semantiline pildiotsing: otsida pildikogust tekstipäringute abil või leida viitepildiga seotud pilte.
- Ristmodaalne järjestamine: järjestada kirjelduse põhjal kandidaatpilte või pildi põhjal kandidaatkirjeldusi.
- Piltide korraldamine ja sildistamine: kasutada viipade põhist sarnasust visuaalsete andmekogumite rühmitamiseks, märgendamiseks või uurimiseks.
- Multimodaalsuse uurimine: uurida visuaalsete ja keeleandmete ühiseid esitusi.
CLIP väljastab piltide manuseid, teksti manuseid ja sarnasusskoore. See ei genereeri loomulikus keeles vastuseid, pilte, heli ega videot. Samuti ei paku see sisseehitatud vestlusliidest, üldotstarbelist arutlusvastust ega garanteeritud struktureeritud vastusevormingut. Need erinevused on olulised, kui võrrelda CLIP-i genereerivate multimodaalsete mudelitega.
Viipade kasutamine nullnäitega klassifitseerimisel
CLIP-iga loodud nullnäitega klassifitseerija määrab tavaliselt kindlaks kandidaatkirjelduste komplekti, kodeerib need kirjeldused, kodeerib sisendpildi ja võrdleb saadud vektoreid. Selle asemel et käsitleda klassi üksnes palja sildina, näiteks „koer”, võib rakendus kasutada fraasi „foto koerast”. Sõnastus võib mõjutada sarnasusskoore, mistõttu on viipade valik ja testimine rakenduse kujundamise osa.
See lähenemine on kasulik siis, kui kategooriad muutuvad sageli või kui märgendatud treeningnäidete kogumine pole praktiline. Näiteks võib jaemüüja uurida, kas tootepildid sarnanevad rohkem kirjeldusele „punane jooksujalats” või „must matkasaabas”. Andmekogumi eest vastutav meeskond võib kasutada tekstipäringuid suure pildikogu uurimiseks enne spetsialiseerituma töötlusvoo loomist.
Nullnäitega klassifitseerimist ei tohiks siiski käsitleda usaldusväärse klassifitseerimise garantiina igas valdkonnas. Tulemused võivad sõltuda viipade sõnastusest, piltide jaotusest, eeltöötlusest ning valitud kontrollpunktist. Valdkonnaspetsiifilised pildid, ebatavalised kategooriad, mitmetimõistetavad stseenid ja tundlikud otsused nõuavad hindamist, mitte eeldust, et suur sarnasusskoor on usaldusväärne tõene märgend.
Tugevused ja piirangud
CLIP-i peamine tugevus on paindlikkus ilma konkreetse ülesande jaoks mõeldud klassifitseerija treenimiseta. Samad pildi- ja tekstikodeerijad võivad toetada klassifitseerimist, otsingut, järjestamist ja andmekogumite uurimist. Kuna võrdluse sihtmärgid määratakse tekstikirjeldustega, saavad kasutajad kandidaatkontseptsioone muuta ilma kogu mudelit uuesti üles ehitamata.
Selle peamine piirang on see, et tegu on esitusmudeliga, mitte tervikliku rakenduse ega vastuseid genereeriva assistendiga. CLIP ei selgita, miks pilt konkreetse skoori sai, ei kirjuta üksikasjalikku kirjeldust, ei järgi tööriistade kasutamise juhiseid ega genereeri vestluslikku vastust. Samuti ei asenda see hallatavat järeldamisteenust: juurutamine hõlmab üldjuhul avaldatud teostuse ja kaalude ise käitamist või ühilduva kolmanda osapoole teostuse kasutamist.
Mudelikaart kirjeldab seda väljalaset peamiselt teadusuuringuteks mõelduna ja hoiatab, et kasutajad peaksid hindama selle kallutatust ning sobivust oma kontekstis. Kuna CLIP õpib pildi-teksti andmetest, võib see peegeldada nende andmete piiranguid ja kallutatusi. Töökindlus võib samuti erineda sõltuvalt piltide valdkonnast, viipade stiilist ja kategooriatest. Olulisi otsuseid toetavad rakendused peaksid tegema ülesandespetsiifilisi teste ning kehtestama sobiva inimkontrolli ja kaitsemeetmed.
Saadavus, hinnakujundus ja API-positsioneerimine
Esitatud uurimismaterjal kirjeldab CLIP-i avaliku teadusväljaandena, mille allalaaditavad kaalud ja ametlik avatud lähtekoodiga repositoorium on avalikult kättesaadavad. CLIP-i praegust OpenAI majutatava API hinda ei ole kinnitatud ning majutatava järeldamise korduvat hinda ei ole esitatud. Seetõttu ei ole sellel lehel usaldusväärset teenusepakkuja hinda, mida tsiteerida pildi- või märgipõhise kasutuse kohta.
See ei tähenda, et juurutamine oleks tasuta. Ise majutatav teostus võib nõuda sobivat arvutusvõimsust, salvestusruumi, inseneritööd, seiret ja hooldust. Kolmanda osapoole teenus võib lisada oma kasutustasud ja käitamispiirangud, kuid need tingimused on ametlikust OpenAI CLIP-i väljalaskest eraldiseisvad ning esitatud uurimismaterjal neid ei kinnita.
CLIP-il puuduvad ka selles andmekogumis tavaliselt majutatava genereeriva API-mudeliga seostatavad omadused: tööriistade kasutamine, voogedastusvastused, vestluslik tekstiväljund ja garanteeritud JSON-väljund ei ole avaldatud mudeli kinnitatud võimekused. Selle väljund koosneb peamiselt manustest ja sarnasusteabest.
Millal valida CLIP
Vali CLIP siis, kui põhiprobleem on visuaalse sisu võrdlemine keelega või teiste visuaalsete esitustega. See sobib hästi järgmisteks eesmärkideks:
- tekstipõhise pildiotsingu prototüüpimine privaatses kogus;
- pildiandmekogumite uurimine ja korraldamine;
- nullnäitega siltide katsetamine enne juhendatud treeningusse investeerimist;
- pildi-teksti järjestamis- või sarnasuselementide loomine;
- nägemise ja keele manuste uurimine; ning
- allalaaditava teadusmudeli käitamine olukorras, kus kohalik kontroll on hallatavast lõpp-punktist olulisem.
Kontrollpunktide perekond annab inseneridele ka kiiruse ja kulu vahel valiku. Väiksemad variandid on praktilisemad siis, kui oluline on läbilaskevõime, latentsus või piiratud riistvara. Suuremaid variante võib kaaluda siis, kui esituse kvaliteet õigustab täiendavat arvutusvõimsust, kuigi sobiv valik tuleks sihtandmetel valideerida.
Millal võib teine lahendus olla sobivam
Genereeriv multimodaalne mudel on sobivam siis, kui rakendus peab vastama pildi kohta käivatele küsimustele loomulikus keeles, pidama vestlust, genereerima teksti või ühendama nägemise tööriistakutsetega. Piltide loomise või muutmise eesmärgil sobib spetsiaalne pildigeneratsiooni mudel. Kõne- või videoülesanded nõuavad neid modaalsusi toetavaid mudeleid, mida CLIP ei ole.
Juhendatud nägemisklassifitseerija võib olla eelistatav siis, kui sildikomplekt on stabiilne, märgendatud näited on olemas ning ühtlane ülesandespetsiifiline täpsus on paindlikust loomulikus keeles viipamisest olulisem. Hallatav manuste- või nägemisteenus võib samuti olla töökorralduslikult sobivam, kui meeskond ei soovi ise majutada mudelite kaalusid ja järeldamise taristut.
CLIP on kõige kasulikum siis, kui süsteem vajabki täpselt selle tegelikku väljundit – ühiseid pildi-teksti esitusi ja sarnasusskoore. See tuleks valida sellesse fokuseeritud rolli, mitte käsitleda seda üldotstarbelise assistendi või praeguse OpenAI API-mudelina.

