Skaičių pavertimas: kaip dirbtinis intelektas viską paverčia skaičiais
Skaičių problema
Kompiuteriai dirba su skaičiais. Tik su skaičiais. Neuroniniai tinklai? Taip pat. Tik matematika su skaičiais.
Bet pasaulis nėra skaičiai. Žodžiai. Vaizdai. Garsai. Sąvokos. Kaip DI visa tai apdoroja?
Įterptys. Jos viską paverčia skaičiais taip, kad išliktų prasmė. Esminė sąvoka. Ja grindžiamas visas šiuolaikinis DI.
Kas iš tikrųjų yra įterptys
Įterptis yra tankus skaičių vektorius, vaizduojantis kažką.
Žodžio įterptis: „katė" tampa [0.2, -0.5, 0.8, ...] (šimtai skaičių).
Vaizdo įterptis: nuotrauka tampa [0.1, 0.9, -0.3, ...] (tūkstančiai skaičių).
Skaičiai nėra atsitiktiniai. Jie išmokomi taip, kad užfiksuotų prasmę. Panašūs dalykai gauna panašias įterptis. Skirtingi dalykai gauna skirtingas įterptis.
Tai ir yra esmė: prasmės panašumas tampa skaičių panašumu. Matematinės operacijos su įterptimis atspindi semantinius ryšius.
Kam reikia įterpčių
Žodžius būtų galima vaizduoti vienetiniais vektoriais. „Katė" = [1,0,0,...,0]. „Šuo" = [0,1,0,...,0]. Kiekvienam žodžiui unikalus skaičius.
Problema: jokio ryšio neužfiksuojama. „Katė" ir „šuo" skiriasi taip pat, kaip „katė" ir „lėktuvas". Visi vektoriai statmeni. Jokios semantinės prasmės.
Įterptys tai išsprendžia. „Katė" ir „šuo" gauna panašias įterptis (abu gyvūnai). „Katė" ir „lėktuvas" gauna skirtingas įterptis. Panašumas vektorių erdvėje atspindi prasmės panašumą.
Dabar matematinės operacijos įgauna prasmę. Aritmetika su įterptimis atitinka samprotavimą apie prasmę.
Kaip išmokstamos įterptys
Įterptys nėra kuriamos ranka. Jos išmokstamos iš duomenų.
Žodžių įterptys (Word2Vec metodas):
Neuroninis tinklas treniruojamas atlikti paprastą užduotį: nuspėti konteksto žodžius pagal tikslinį žodį. Arba atvirkščiai.
Pavyzdys: sakinys „Katė sėdėjo ant kilimėlio". Tiksliniam žodžiui „katė" nuspėti „sėdėjo", „ant", „kilimėlio".
Tinklas išmoksta: norėdamas gerai nuspėti kontekstą, jis turi panašius žodžius vaizduoti panašiai. „Katė" ir „šuo" pasitaiko panašiuose kontekstuose. Jos gauna panašias įterptis.
Įterptys yra šalutinis produktas. Ne užduoties tikslas. Bet jos užfiksuoja semantinę prasmę.
Šiuolaikinis metodas (transformeriai):
Įterptys išmokstamos kaip didesnio modelio dalis. Kalbos modelis nuspėja kitą žodį. Vaizdo modelis klasifikuoja objektus. Įterptys atsiranda kaip vidiniai vaizdiniai.
Jos yra kontekstinės. Tas pats žodis skirtinguose kontekstuose gauna skirtingas įterptis. „Bankas" (finansų) ir „krantas" (upės) gauna skirtingus vaizdinius.
Semantinė erdvė
Įterptys sukuria geometrinę erdvę, kurioje prasmė yra geometrija.
- Similarity = Proximity: Similar concepts cluster. Animals cluster. Vehicles cluster. Abstract concepts cluster. Distance measures similarity.
- Relationships = Directions: Famous example: king - man + woman ≈ queen
Vector arithmetic captures relationships. The direction from "man" to "king" (gender to royalty) is similar to "woman" to "queen."
Analogies become vector operations. Mind-blowing but it works.
Dimensions = Attributes:
Each dimension captures some attribute. One dimension might be "animacy" (living vs non-living). Another might be "size." Another "abstractness."
Hundreds of dimensions capture hundreds of attributes. Combined, they represent meaning.
Different Types of Embeddings
- Word Embeddings: Words to vectors. Word2Vec, GloVe, FastText. Foundation of NLP.
- Sentence Embeddings: Entire sentences to vectors. Capture meaning of full sentences, not just words. Used for semantic search.
- Image Embeddings: Images to vectors. CNN features. Vision transformer outputs. Enable image search, similarity comparison.
- Multimodal Embeddings: Different modalities to the same space. Text and images get comparable embeddings. CLIP does this. Enables cross-modal search.
- Graph Embeddings: Nodes in graphs to vectors. Capture network structure. Used in social networks, knowledge graphs.
How Embeddings Are Used
- Panašumo paieška: Raskite panašius elementus. Artimiausi kaimynai įterpimų erdvėje. Paieškos sistemos, rekomendacijų sistemos.
- Klasifikavimas: Naudokite įterpimus kaip požymius klasifikavimui. Semantiniai požymiai, ne neapdoroti duomenys. Geresnis apibendrinimas.
- Klasterizavimas: Grupuokite panašius elementus. K-vidurkių metodas įterpimams. Temų modeliavimas, klientų segmentavimas.
- Perkeliamasis mokymasis: Naudokite didelio modelio įterpimus mažai užduočiai. Iš anksto išmoktos žinios perkeliamos. Dažna kompiuterinės regos ir NLP srityse.
- Generavimas su gavimu: Įterpkite užklausas ir dokumentus. Raskite aktualius dokumentus. Pateikite kalbos modeliui. Faktiniai AI atsakymai.
Dvejetainiai įterpimai (efektyvus alternatyvus būdas)
Tradiciniai įterpimai: slankiojo kablelio vektoriai. 32 bitai kiekvienam matmeniui. Didelė atminties apimtis.
Dvejetainiai įterpimai: 1 bitas kiekvienam matmeniui. Kiekvienas matmuo yra +1 arba -1. 32× mažiau atminties.
Kaip jie veikia:
Įterpimai mokomi įprastai. Tada jie suskaitmeninami: teigiami matmenys tampa +1, neigiami -1.
Panašumas: vietoj skaliarinės sandaugos naudojamas Hamingo atstumas arba XNOR-popcount. Daug greičiau.
Kompromisai:
Prarandama šiek tiek tikslumo. Tačiau daugeliui užduočių tai nesvarbu. Gavimas, artimiausio kaimyno paieška puikiai veikia su dvejetainiais įterpimais.
Įgyjama: didžiulis greitis ir atminties efektyvumas. Diegimas krašto įrenginiuose. Greitas milijardų vektorių apdorojimas.
Dweve metodas:
Apribojimai yra dvejetainiai šablonai. Iš prigimties dvejetainiai įterpimai. 65 536 bitų hipervektoriai. Efektyvus saugojimas, greitos operacijos.
Šablonų atitikimas naudojant XNOR ir popcount. Panašumas per sutapimų skaičiavimą. Dvejetainė viskas iki pat pagrindo.
Matmenų skaičius svarbus
Kiek matmenų? Daugiau ne visada geriau.
Per mažai matmenų: Negalima užfiksuoti sudėtingumo. Skirtingos sąvokos susiduria. Prarandami svarbūs skirtumai.
Per daug matmenų: Skaičiavimo sąnaudos. Atminties naudojimas. Perpratimas. Matmenų prakeiksmas (aukštuose matmenyse viskas tampa vienodai nutolę).
Įprasti dydžiai:
Žodžių įterpimai: 100-300 matmenų
Sakinių įterpimai: 384-1024 matmenys
Vaizdų įterpimai: 512-2048 matmenys
Dvejetainiai hipervektoriai: 1024-65536 bitai (dėl tvirtų savybių)
Pasirinkimas priklauso nuo užduoties sudėtingumo ir skaičiavimo išteklių.
Ką reikia įsiminti
- 1. Įterpimai paverčia viską skaičiais. Žodžiai, vaizdai, sąvokos tampa vektoriais. Įgalina AI apdorojimą.
- 2. Reikšmė tampa geometrija. Panašios sąvokos gauna panašius vektorius. Atstumas matuoja panašumą. Kryptys atspindi ryšius.
- 3. Išmokstama iš duomenų, ne sukuriama rankomis. Neuroniniai tinklai išmoksta įterpimus mokymo metu. Duomenų modeliai lemia atvaizdavimą.
- 4. Įgalina semantines operacijas. Matematika su vektoriais atspindi samprotavimą apie reikšmę. Vektorinė aritmetika atlieka analogijas.
- 5. Keli tipai skirtingiems duomenims. Žodžiai, sakiniai, vaizdai, grafai. Kiekvienas turi specializuotus įterpimo metodus.
- 6. Dvejetainiai įterpimai užtikrina efektyvumą. 1 bitas matmeniui vietoj 32. Didžiulis atminties ir greičio padidėjimas. Tinka daugeliui užduočių.
- 7. Matmenų skaičius yra kompromisas. Daugiau matmenų užfiksuoja daugiau sudėtingumo. Tačiau reikalauja skaičiavimo išteklių. Reikia pusiausvyros.
Esmė
Embeddings yra tai, kaip dirbtinis intelektas įveikia atotrūkį tarp žmogiškųjų sąvokų ir mašininio skaičiavimo. Viskas, kas prasminga, paverčiama vektoriais erdvėje, kur reikšmių panašumas tampa geometrijos panašumu.
Tai ne tik atvaizdavimas. Tai šiuolaikinio dirbtinio intelekto pamatas. Paieška, rekomendacijos, generavimas, supratimas. Visa tai remiasi embeddings.
Vektoriai nėra savavališki. Jie išmokomi taip, kad užfiksuotų semantinę struktūrą. Geometrija atspindi reikšmę. Matematinės operacijos atitinka samprotavimą.
Dvejetainiai embeddings parodo, kad semantinei reikšmei nereikia slankiojo kablelio tikslumo. Pakanka 1 bito atvaizdų. Efektyviai. Dideliu mastu. Įdiegiama bet kur.
Suprasti embeddings reiškia suprasti, kaip dirbtinis intelektas mato pasaulį. Ne kaip žodžius ar vaizdus. O kaip vektorius aukštamatėje erdvėje, kur reikšmė yra matematika.
Norite efektyvių embeddings? Išbandykite Dweve hipervektorių metodą. 65 536 bitų dvejetainiai šablonai. XNOR pagrįstas panašumas. Semantinė reikšmė dvejetainėje erdvėje. Toks atvaizdavimas, kuris veikia aparatinės įrangos greičiu.