Generatív mesterséges intelligencia

A 2022-es évben robbant be a mesterséges intelligencia igazán a köztudatba. Az év eljén jelent meg a DALL-E, ami néhány kulcsszó alapján legenerál egy olyan képet, ami még korábban nem létezett. Az év végén pedig kijött a ChatGPT, ami szöveges utasításokra szöveget generál. Mindeközben a szoftverkódot generáló megoldások is (pl Github Copilot) is felhívták magukra a figyelmet.

Ezeknek a szöveget, képet vagy szoftverkódot genereló megoldásoknak a felépítése teljesen azonos gépi tanulási szemszögből. Mindegyik lelke egy óriási jelöletlen adaton előtanított beágyzás. A beágyazást kódoló neurális hálókat pedig finomhangolták generálási feladatokra (azaz felügyelt gépi tanulást használtak). Például a szöveggenerálás visszavezethető arra az osztályozási feladatra, hogy adott egy szöveg és a gépnek meg kell jósolnia, hogy a 100 ezer leggyakoribb angol szó közül melyikkel folytatódik a szöveg. Vagy ha egy képrészlet legenerálása visszavezethető egy regressziós feladatra, hogy az első generálnadó pixelnek mennyi legyen az RGB értéke a szomszédos, ismert pixelek, mint jellemzők alapján. Az olvasólecke hátralévő részében három generatív alkalmazással megismerkedünk egy kicsit részletesebben.

Szöveggenerálás

A ChatGPT alapja a GPT-3.x nagy nyelvi modell család. A GPT típusú beágyazásokat az interneten elérhető (de gondosan szűrt) szövegeken előatanították arra a feladatra, hogy adott egy bizonyos hosszúságú szósorozat, akkor lehetséges angol szavak szótárából meg tudja jósolni, hogy melyik szó követi a szósorozatot. Ehhez az internetről gyűjtött jelöletlen szövegekből önfelügyelt módon fogalmazták meg azt az osztályozási feladatot. Az osztályozót utána lehet arra használni, hogy tetszőleges szósorozat után legenerálja a legvalószínűbb következő szót.

gpt
A generatív LLMek egy szósorozatot követő szót predikálják. Forrás: Medium

A ChatGPT a GPT finomhangolt verziója, ami egy olyan tanító adatbázist használ a finomhangolásra, ahol emberi instrukcióra emberek válaszoltak (a generatív LLMek instrukció-megoldás párokkal történő finomhangolását instruct-tuningnak is szokták hívni). Így a szöveggenerálás nyelvtanilag és tartalmilag helyes szövegeket generál szavanként a GPT nyelvi modellnek köszönhetően, miközben az instrukciókra adott emberi válaszok alapján finomhangoljuk a válaszok stílusára, a különböző típusú instrukciókra adott válasz formátumára és az etikai problémákba ütköző kérdések kikerülésére.

chatgpt
A ChatGPT a GPT 3.5 finomhangolt verziója. Forrás: InstructGPT

Képrészlet generálása

Hogyan működnek a képekről objektumot eltávolító megoldások? Egy felismert vagy kijelölt objektumot el akarunk távolítani egy képről, akkor le kell generálnunk az objektum által kitakart képrészletet. Ez a kép megmaradó részei alapján történik:

object removal
Objektum által kitakart képrész generálása. Forrás: Rombach et al. 2021

Ennek alapja is egy képeket hatékonyan kódoló beágyazás, amit finomhangolhatunk egy generálási feladatra. Finomhangolási tanító adatbázist könnyedén elő tudunk állítani, hiszen ha igazi képekből letakarunk egy részletet, akkor a predikció célja, hogy a letakart képrészletet (vagy ahhoz minél hasonlóbbat) generálja le. Az egyszerűség kedvéért elképzelhetjük a generálási folyamatot úgy, hogy pixeleket egyessével generálva töltjük fel a kitakart képrészletet (a gyakorlatban ez szofisztikáltabban működik).

Képgenerálás szövegből

Ha egy szöveges utasításra szeretnénk teljesen új képet generáltatni (pl. DALL-E) akkor ott a szövegbeágyazásoknak (LLMek) és a képbeágyazásoknak együtt kell tudni működnie. Ezt egy speciális önfelügyelt tanítási módszerrel (contrastive learning) érhetjük el, ahol az internetről letöltött óriási mennyiségű kép-képaláírás párt használhatunk arra, hogy egy előtanított LLM és egy előtanított képbeágyazás közti átjárást megteremtsük.

CLIP
Szöveg- és képbeágyazások összehangolása (contrastive learning) Forrás: CLIP

Maga a szövegből kép generálás ezen összehangolt beágyazások felett működik. A diffúziós modellek a képgenerálást visszavezetik képzajmentesítési feladatra. Az alapgondolat az, hogy van egy zajos képünk, de tudjuk annak tartalmát (szövegesen megadva), akkor a szöveges leírás alapján még a nagyon zajos képekből is helyre tudunk állítani egy képet, ami megfelel a leírásnak. Ha ez működik, akkor véletlenszerűen generált képzajból kiindulva is tudunk a tartalmi leírás alapján "zajt csökkenteni", azaz egy teljesen véletlen zajképből egy olyan képet generálni, ami megfelel a tartalmi leírásnak.

A zajcsökkentés megint egy finomhangolási megoldás. Tanító adatbázist építhetünk úgy, hogy képekhez mesterségesen, több lépésben, zajt adunk, egészen addig amíg már felismerhetetlen lesz az eredeti kép (encoder). A képhez tartozó képaláírás leírja, hogy mi volt a kép vizuális tartalma, azaz ha visszafordítjuk a folyamatot, akkor lesznek felügyelt tanító példáink arra, hogy egy tartalmi leírás és egy zajos képből mi az elvárt zajcsökkentett kép (decoder).

DALL-E-2
Diffúziós modellek. Forrás: StableDiffusion

Ellenörző kérdések

  1. Mi a kapcsolat a finomhangolás és a instrukció-hangolás (instruct tuning) fogalmak között?
  2. Hogyan gyárthatunk önfelügyelt módon képrészlet generálási adatbázist?
  3. Ugyanolyan beágyazást használnak a képrészlet és a szövegből képet generáló megoldások?

További ajánlott irodalom