Upoznajte generativnu veštačku inteligenciju sa PyTorch-om - knjiga koju bismo voleli da imamo
Uvod u knjigu: Upoznajte generativnu veštačku inteligenciju sa PyTorch-om
Ilustracija za korice
Dobrodošli u knjigu koja će vas provesti kroz fascinantni svet generativne veštačke inteligencije koristeći PyTorch, jednu od vodećih biblioteka za duboko učenje. U vreme kada tehnološki napredak eksponencijalno raste, generativna veštačka inteligencija (GVI) se izdvaja kao jedan od najuzbudljivijih i najrevolucionarnijih aspekata mašinskog učenja. Od generisanja umetničkih dela, muzike i literature, do kreiranja sintetičkih podataka za naučna istraživanja i inovativnih rešenja u industriji – mogućnosti generativnih modela su gotovo neograničene.
Zašto generativna veštačka inteligencija?
Generativna veštačka inteligencija predstavlja posebnu podoblast veštačke inteligencije koja se bavi sistemima koji mogu stvarati nove sadržaje. Za razliku od tradicionalnih algoritama koji analiziraju i klasifikuju postojeće podatke, generativni modeli uče distribuciju stvarnih podataka i mogu kreirati nove primere koji odražavaju svojstva podataka na kojima su trenirani. Ovo predstavlja fundamentalni pomak u načinu na koji koristimo računare za rešavanje problema – od analitičkih alata do kreativnih partnera.
Tokom poslednjih nekoliko godina, svedoci smo izuzetnog napretka u ovoj oblasti. Generativni modeli su napredovali od jednostavnih algoritama koji proizvode mutne slike ili nekoherentan tekst, do sofisticiranih sistema koji mogu kreirati fotorealistične slike, komponovati muziku koja zvuči kao da ju je napisao ljudski kompozitor, ili generisati tekst koji je teško razlikovati od onog koji je napisao čovek. Ovi pomaci otvaraju nova pitanja o prirodi kreativnosti, autorstvu i budućnosti ljudskog stvaralaštva.
Zašto PyTorch?
PyTorch se nametnuo kao jedan od najpopularnijih okvira za duboko učenje, posebno u istraživačkoj zajednici, zbog svoje fleksibilnosti, intuitivnog dizajna i odlične podrške za rad sa generativnim modelima. Njegova filozofija "Python-first" omogućava da implementacija složenih modela bude jasnija i bliža matematičkim formulacijama koje stoje iza njih. PyTorch nudi dinamički računski graf koji omogućava fleksibilne arhitekture potrebne za najsavremenije generativne modele, zajedno sa efikasnim bibliotekama za GPU ubrzanje koje omogućavaju treniranje složenih modela u razumnom vremenu.
Kome je ova knjiga namenjena?
Ova knjiga je napisana za sve one koji žele da dublje razumeju i praktično primene generativne modele koristeći PyTorch. Pretpostavljamo da čitalac ima osnovno znanje Pythona i razumevanje koncepata mašinskog učenja. Međutim, knjiga je strukturirana tako da postepeno gradi znanje – od osnovnih koncepata do naprednih tehnika. Za čitaoce kojima su potrebne dodatne informacije, dodaci na kraju knjige pružaju osvrt na matematičke koncepte i osnove dubokog učenja.
Konkretno, ova knjiga će koristiti:
Studentima koji žele da prošire svoje znanje iz oblasti veštačke inteligencije
Istraživačima koji traže praktičan vodič za implementaciju najnovijih generativnih arhitektura
Inženjerima i programerima koji žele da integrišu generativne modele u svoje projekte
Entuzijastima koji su fascinirani mogućnostima generativne veštačke inteligencije
Šta ćete naučiti?
Kroz ovu knjigu, napredovaćete od razumevanja osnovnih principa generativnih modela do implementacije najsavremenijih arhitektura. Specifično, naučićete:
Osnovne principe generativne veštačke inteligencije – teorijske osnove, matematičke koncepte i različite pristupe generativnom modeliranju
Implementaciju ključnih arhitektura – od osnovnih GAN-ova i VAE, preko flow-based modela, do najsavremenijih difuznih modela
Rad sa različitim tipovima podataka – generisanje slika, teksta, muzike i drugih kompleksnih struktura
Praktične aspekte treniranja i optimizacije modela – kako efikasno trenirati složene generativne modele i rešavati česte probleme
Napredne tehnike – uslovljavanje generativnih modela, multimodalno generisanje i druge savremene strategije
Produkcijsku primenu – kako primeniti generativne modele u stvarnim aplikacijama
Struktura knjige
Knjiga je organizovana u pet glavnih delova koji čitaoca vode kroz sve aspekte generativne veštačke inteligencije, od osnova do najsavremenijih tehnika i praktičnih primena.
Deo I: Uvod u generativnu veštačku inteligenciju postavlja temelje na kojima se gradi ostatak knjige. Upoznaje čitaoca sa osnovnim konceptima generativne veštačke inteligencije, matematičkim osnovama i osnovama rada sa PyTorch-om.
Deo II: Osnovne arhitekture generativnih modela detaljno obrađuje fundamentalne modele generativne veštačke inteligencije, uključujući GAN-ove, autoenkodere i modele zasnovane na protoku. Ovi modeli predstavljaju osnovu za razumevanje složenijih arhitektura koje slede.
Deo III: Obrada prirodnog jezika i Transformeri fokusira se na generisanje teksta i rad sa sekvencijalnim podacima. Detaljno se objašnjavaju rekurentne neuronske mreže, mehanizam pažnje i Transformer arhitektura koja je revolucionarizovala obradu prirodnog jezika.
Deo IV: Napredni modeli i praktične primene uvodi čitaoca u najsavremenije generativne modele i njihove primene u različitim domenima. Poseban naglasak stavljen je na difuzne modele, multimodalno generisanje i primene u stvarnim sistemima.
Deo V: Budućnost generativne veštačke inteligencije razmatra etičke izazove, trenutne granice i buduće pravce razvoja ove uzbudljive oblasti.
Praktičan pristup
Ova knjiga stavlja snažan naglasak na praktičnu primenu. Svako poglavlje sadrži implementacije koncepata koje se diskutuju, a mnogi delovi knjige strukturirani su oko specifičnih projekata koji ilustruju primenu generativnih modela na realne probleme. Kod je detaljno objašnjen i organizovan tako da bude čitljiv i pristupačan, sa naglaskom na razumevanje, a ne samo na implementaciju.
Putovanje koje počinje
Generativna veštačka inteligencija predstavlja fascinantno područje koje neprestano evoluira. Ova knjiga ima za cilj da vam pruži čvrst temelj i praktične veštine koje možete primeniti u svojim projektima, istraživanjima ili daljem učenju. Dok se krećemo kroz različite arhitekture i primene, fokusiraćemo se na razumevanje principa koji omogućavaju ovim modelima da stvaraju nove sadržaje, a ne samo na mehaničko reprodukovanje koda.
Nadam se da će vas ovo putovanje kroz generativnu veštačku inteligenciju inspirisati i opremiti znanjem i veštinama potrebnim za istraživanje ovog uzbudljivog područja. Bilo da je vaš cilj razvoj inovativnih aplikacija, naučno istraživanje ili jednostavno želite da razumete tehnologiju koja sve više oblikuje naš svet, ova knjiga će vam pružiti alate i znanje za to.
DETALJAN SADRŽAJ
Upoznajte generativnu veštačku inteligenciju sa PyTorch-om
Uvodne stranice
Autorska prava
Posveta
Predgovor
Zahvalnice
O ovoj knjizi
Kome je namenjena ova knjiga?
Kako je knjiga organizovana: mapa puta
O kodu
O autoru
O ilustraciji na naslovnoj strani
Deo I: Uvod u generativnu veštačku inteligenciju
Poglavlje 1: Šta je generativna veštačka inteligencija i zašto PyTorch?
Upoznavanje sa generativnom veštačkom inteligencijom i PyTorch-om
Šta je generativna veštačka inteligencija?
Programski jezik Python
Korišćenje PyTorch-a kao AI okvira
Generativne suparničke mreže (GAN)
Pregled GAN-ova na visokom nivou
Ilustrativni primer: Generisanje anime lica
Zašto bi vas trebalo da zanimaju GAN-ovi?
Transformeri
Mehanizam pažnje
Arhitektura Transformera
Multimodalni Transformeri i predtrenirani LLM-ovi
Zašto graditi generativne modele od nule?
Zaključak
Poglavlje 2: Matematičke osnove za generativne modele
Verovatnoća i statistika za generativne modele
Linearna algebra za generativne modele
Optimizacione metode
Informaciona teorija
Zaključak
Poglavlje 3: Duboko učenje sa PyTorch-om
Tipovi podataka u PyTorch-u
Kreiranje PyTorch tenzora
Indeksiranje i slajšovanje PyTorch tenzora
Oblici PyTorch tenzora
Matematičke operacije na PyTorch tenzorima
End-to-end projekat dubokog učenja sa PyTorch-om
Duboko učenje u PyTorch-u: pregled na visokom nivou
Predprocesiranje podataka
Binarna klasifikacija
Kreiranje grupa (batches)
Izgradnja i treniranje modela binarne klasifikacije
Testiranje modela binarne klasifikacije
Klasifikacija sa više kategorija
Validacioni skup i rano zaustavljanje
Izgradnja i treniranje modela za klasifikaciju sa više kategorija
Zaključak
Deo II: Osnovne arhitekture generativnih modela
Poglavlje 4: Generativne suparničke mreže: Generisanje oblika i brojeva
Koraci uključeni u treniranje GAN-ova
Priprema podataka za trening
Skup podataka za treniranje koji formira krivu eksponencijalnog rasta
Priprema skupa podataka za treniranje
Kreiranje GAN-ova
Mreža diskriminatora
Mreža generatora
Funkcije gubitka, optimizatori i rano zaustavljanje
Treniranje i korišćenje GAN-ova za generisanje oblika
Treniranje GAN-ova
Čuvanje i korišćenje treniranog generatora
Generisanje brojeva sa obrascima
Šta su one-hot promenljive?
GAN-ovi za generisanje brojeva sa obrascima
Treniranje GAN-ova za generisanje brojeva sa obrascima
Čuvanje i korišćenje treniranog modela
Zaključak
Poglavlje 5: Generisanje slika sa generativnim suparničkim mrežama
GAN-ovi za generisanje crno-belih slika odeće
Uzorci za treniranje i diskriminator
Generator za kreiranje crno-belih slika
Treniranje GAN-ova za generisanje slika odeće
Konvolucijski slojevi
Kako funkcionišu konvolucijske operacije?
Kako korak (stride) i popunjavanje (padding) utiču na konvolucijske operacije?
Transponovana konvolucija i normalizacija grupa
Kako funkcionišu transponovani konvolucijski slojevi?
Normalizacija grupa (Batch normalization)
Slike anime lica u boji
Preuzimanje slika anime lica
Slike u boji sa kanalima na prvom mestu u PyTorch-u
Duboka konvolucijska GAN (DCGAN)
Izgradnja DCGAN-a
Treniranje i korišćenje DCGAN-a
Zaključak
Poglavlje 6: Odabir karakteristika u generisanim slikama
Skup podataka sa naočarima
Preuzimanje skupa podataka sa naočarima
Vizualizacija slika u skupu podataka sa naočarima
cGAN i Wasserstein distanca
WGAN sa kaznenom funkcijom za gradijent
cGAN-ovi
Kreiranje cGAN-a
Kritičar u cGAN-u
Generator u cGAN-u
Inicijalizacija težina i funkcija kaznenog gradijenta
Treniranje cGAN-a
Dodavanje oznaka ulazima
Treniranje cGAN-a
Odabir karakteristika u generisanim slikama
Odabir slika sa ili bez naočara
Vektorska aritmetika u latentnom prostoru
Istovremeni odabir dve karakteristike
Zaključak
Poglavlje 7: CycleGAN: Pretvaranje plave kose u crnu kosu
CycleGAN i gubitak ciklične konzistencije
Šta je CycleGAN?
Gubitak ciklične konzistencije
Skup podataka sa licima poznatih ličnosti
Preuzimanje skupa podataka sa licima poznatih ličnosti
Obrada podataka o slikama sa crnom i plavom kosom
Izgradnja CycleGAN modela
Kreiranje dva diskriminatora
Kreiranje dva generatora
Korišćenje CycleGAN-a za prevođenje između crne i plave kose
Treniranje CycleGAN-a za prevođenje između crne i plave kose
Povratne konverzije slika sa crnom kosom i slika sa plavom kosom
Zaključak
Poglavlje 8: Generisanje slika sa varijacionim autoenkoderima
Pregled autoenkoder-a (AE)
Šta je autoenkoder?
Koraci u izgradnji i treniranju autoenkoder-a
Izgradnja i treniranje autoenkoder-a za generisanje cifara
Prikupljanje rukom pisanih cifara
Izgradnja i treniranje autoenkoder-a
Čuvanje i korišćenje treniranog autoenkoder-a
Šta su varijacioni autoenkoder-i (VAE)?
Razlike između AE i VAE
Plan za treniranje VAE za generisanje slika ljudskih lica
VAE za generisanje slika ljudskih lica
Izgradnja VAE
Treniranje VAE
Generisanje slika sa treniranim VAE
Kodna aritmetika sa treniranim VAE
Zaključak
Poglavlje 9: Modeli zasnovani na protoku (Flow-based Models)
Teorija normalizacionih tokova
Implementacija osnovnih flow modela u PyTorch-u
RealNVP i Glow arhitekture
Prednosti i ograničenja modela zasnovanih na protoku
Praktični primeri i primene
Zaključak
Deo III: Obrada prirodnog jezika i Transformeri
Poglavlje 10: Generisanje teksta sa rekurentnim neuronskim mrežama
Uvod u RNN
Izazovi u generisanju teksta
Kako funkcionišu RNN?
Koraci u treniranju LSTM modela
Osnove obrade prirodnog jezika (NLP)
Različite metode tokenizacije
Vektorsko predstavljanje reči (Word embedding)
Priprema podataka za treniranje LSTM modela
Preuzimanje i čišćenje teksta
Kreiranje grupa podataka za trening
Izgradnja i treniranje LSTM modela
Izgradnja LSTM modela
Treniranje LSTM modela
Generisanje teksta sa treniranim LSTM modelom
Generisanje teksta predviđanjem sledećeg tokena
Temperatura i top-K uzorkovanje u generisanju teksta
Zaključak
Poglavlje 11: Implementacija mehanizma pažnje i Transformera red po red
Uvod u mehanizam pažnje i Transformer
Mehanizam pažnje
Arhitektura Transformera
Različite vrste Transformera
Izgradnja enkodera
Mehanizam pažnje
Kreiranje enkodera
Izgradnja enkoder-dekoder Transformera
Kreiranje sloja dekodera
Kreiranje enkoder-dekoder Transformera
Povezivanje svih delova
Definisanje generatora
Kreiranje modela za prevođenje između dva jezika
Zaključak
Poglavlje 12: Treniranje Transformera za prevođenje sa engleskog na francuski
Tokenizacija na nivou subword-a
Tokenizacija engleskih i francuskih fraza
Popunjavanje sekvenci i kreiranje grupa
Vektorsko predstavljanje reči i poziciono kodiranje
Vektorsko predstavljanje reči
Poziciono kodiranje
Treniranje Transformera za prevođenje sa engleskog na francuski
Funkcija gubitka i optimizator
Petlja treniranja
Prevođenje sa engleskog na francuski sa treniranim modelom
Zaključak
Poglavlje 13: Izgradnja generativnog predtreniranog Transformera od nule
Arhitektura GPT-2 i kauzalna samo-pažnja
Arhitektura GPT-2
Vektorsko predstavljanje reči i poziciono kodiranje u GPT-2
Kauzalna samo-pažnja u GPT-2
Izgradnja GPT-2XL od nule
BPE tokenizacija
Aktivaciona funkcija Gaussian error linear unit
Kauzalna samo-pažnja
Konstrukcija GPT-2XL modela
Učitavanje predtreniranih težina i generisanje teksta
Učitavanje predtreniranih parametara u GPT-2XL
Definisanje funkcije generate() za proizvodnju teksta
Generisanje teksta sa GPT-2XL
Zaključak
Poglavlje 14: Treniranje Transformera za generisanje teksta
Izgradnja i treniranje GPT-a od nule
Arhitektura GPT-a za generisanje teksta
Proces treniranja GPT modela za generisanje teksta
Tokenizacija teksta romana Hemingway-a
Tokenizacija teksta
Kreiranje grupa za treniranje
Izgradnja GPT-a za generisanje teksta
Hiperparametri modela
Modeliranje mehanizma kauzalne samo-pažnje
Izgradnja GPT modela
Treniranje GPT modela za generisanje teksta
Treniranje GPT modela
Funkcija za generisanje teksta
Generisanje teksta sa različitim verzijama treniranog modela
Zaključak
Poglavlje 15: Multimodalno generisanje
Povezivanje teksta i slika
CLIP model i njegove primene
Implementacija jednostavnih multimodalnih generatora
Primeri generisanja slika na osnovu teksta
Multimodalni Transformer modeli
Zaključak
Deo IV: Napredni modeli i praktične primene
Poglavlje 16: Generisanje muzike sa MuseGAN-om
Digitalno predstavljanje muzike
Muzičke note, oktave i ton
Uvod u muziku sa više traka
Digitalno predstavljanje muzike: Piano rolls
Plan za generisanje muzike
Konstruisanje muzike sa akordima, stilom, melodijom i groove-om
Plan za treniranje MuseGAN-a
Priprema podataka za treniranje MuseGAN-a
Preuzimanje podataka za treniranje
Pretvaranje višedimenzionalnih objekata u muzičke komade
Izgradnja MuseGAN-a
Kritičar u MuseGAN-u
Generator u MuseGAN-u
Optimizatori i funkcija gubitka
Treniranje MuseGAN-a za generisanje muzike
Treniranje MuseGAN-a
Generisanje muzike sa treniranim MuseGAN-om
Zaključak
Poglavlje 17: Izgradnja i treniranje muzičkog Transformera
Uvod u muzički Transformer
Predstavljanje muzike zasnovano na izvođenju
Arhitektura muzičkog Transformera
Treniranje muzičkog Transformera
Tokenizacija muzičkih komada
Preuzimanje podataka za treniranje
Tokenizacija MIDI datoteka
Priprema podataka za treniranje
Izgradnja GPT-a za generisanje muzike
Hiperparametri u muzičkom Transformeru
Izgradnja muzičkog Transformera
Treniranje i korišćenje muzičkog Transformera
Treniranje muzičkog Transformera
Generisanje muzike sa treniranim Transformerom
Zaključak
Poglavlje 18: Difuzni modeli i Transformeri za tekst-u-sliku
Uvod u modele za razšumljavanje difuzije
Proces napredne difuzije
Korišćenje U-Net modela za razšumljavanje slika
Plan za treniranje modela za razšumljavanje U-Net
Priprema podataka za treniranje
Slike cveća kao podaci za treniranje
Vizualizacija procesa napredne difuzije
Izgradnja modela za razšumljavanje U-Net
Mehanizam pažnje u modelu za razšumljavanje U-Net
Model za razšumljavanje U-Net
Treniranje i korišćenje modela za razšumljavanje U-Net
Treniranje modela za razšumljavanje U-Net
Korišćenje treniranog modela za generisanje slika cveća
Transformeri za tekst-u-sliku
CLIP: Multimodalni Transformer
Generisanje slika iz teksta sa DALL-E 2
Zaključak
Poglavlje 19: Latentni difuzni modeli
Arhitektura Stable Diffusion
Implementacija i fino podešavanje
Uslovljeno generisanje
ControlNet i druge ekstenzije
Primeri primene i generisanja
Zaključak
Poglavlje 20: Predtrenirani veliki jezički modeli i LangChain biblioteka
Generisanje sadržaja sa OpenAI API-jem
Zadaci generisanja teksta sa OpenAI API-jem
Generisanje koda sa OpenAI API-jem
Generisanje slika sa OpenAI DALL-E 2
Generisanje govora sa OpenAI API-jem
Uvod u LangChain
Potreba za LangChain bibliotekom
Korišćenje OpenAI API-ja u LangChain-u
Zero-shot, one-shot i few-shot promptovanje
Zero-shot agent koji sve zna u LangChain-u
Prijava za Wolfram Alpha API ključ
Kreiranje agenta u LangChain-u
Dodavanje alata korišćenjem OpenAI GPT-ova
Dodavanje alata za generisanje koda i slika
Ograničenja i etička pitanja velikih jezičkih modela
Ograničenja velikih jezičkih modela
Etička pitanja za velike jezičke modele
Zaključak
Poglavlje 21: Generativna veštačka inteligencija u produkciji
Izgradnja API-ja za generativne modele
Integracija sa veb i mobilnim aplikacijama
Praćenje performansi i održavanje modela
Razmatranja troškova i skalabilnosti
Primeri primene u industriji
Zaključak
Deo V: Budućnost generativne veštačke inteligencije
Poglavlje 22: Izazovi i otvoreni problemi
Etička pitanja i odgovorna primena
Autorska prava i vlasništvo nad generisanim sadržajem
Bezbednost i privatnost
Potencijalne zloupotrebe i prevencija
Zaključak
Poglavlje 23: Istraživački trendovi i budući pravci
Multimodalni modeli velikih razmera
Efikasnije arhitekture i metode treninga
Integracija sa drugim granama veštačke inteligencije
Specijalizovani generativni modeli za vertikalne industrije
Zaključak
Dodatak A: Instalacija Python-a, Jupyter Notebook-a i PyTorch-a
Instalacija Python-a i podešavanje virtualnog okruženja
Instalacija Anaconda-e
Podešavanje Python virtualnog okruženja
Instalacija Jupyter Notebook-a
Instalacija PyTorch-a
Instalacija PyTorch-a bez CUDA-e
Instalacija PyTorch-a sa CUDA-om
Dodatak B: Minimalno kvalifikovani čitaoci i osnove dubokog učenja
Duboko učenje i duboke neuronske mreže
Anatomija neuronske mreže
Različite vrste slojeva u neuronskim mrežama
Aktivacione funkcije
Treniranje duboke neuronske mreže
Proces treniranja
Funkcije gubitka
Optimizatori
Dodatak C: Matematički koncepti
Vektorski prostori i linearna preslikavanja
Statistika i teorija verovatnoće
Optimizacione metode
Dodatak D: Skupovi podataka i resursi za treniranje
Popularne kolekcije podataka za generativne modele
Priprema i pretprocesiranje podataka
Augmentacija podataka
Rečnik pojmova
Bibliografija
Indeks