
Ki az oktató (na csak röviden) és mi kell ahhoz, hogy programozó legyél?
Beírjuk az első programsort teljesen fájdalom mentesen és gyorsan. Rajzolunk pár alakzatot és színezünk is.
Mi a koordináta rendszer és minek ez nekünk? Jöhetnek a ciklusok, az minden programnyelvben alap. Plusz kiírunk már szöveget is. Bővítsd szabadon, amit eddig csináltál!
Kezdjük a legelején, felhasználunk (importálunk) pár fontos csomagot, sőt már megjelenik a játék háttere is.
Mozgassunk valamit a képernyőn és megértjük mitől tűnik úgy, mintha valóban mozogna a kígyó.
mozog a kígyó, sőt figyeljük a billentyűzetet és azzal irányítjuk. kezeljük a lehetséges hibákat is.
Csekkoljuk, hogy saját magába ne ütközzön, pályáról ne menjen ki. Már elég jól néz ki a játékunk!
Folyamatosan számoljuk és meg is mutatjuk a pontszámot, s erre függvényt írunk. Mindjárt almákat is megjelenítünk, amit meg kell enni.
Megjelenítjük véletlenszerűen a különböző almákat és játszunk a játékkal, teszteljük, ha kell finomítjuk, bővítjük. Javaslom pl. a háttér és az almák változtatását, esetleg egy bombát tenni a játékba, hogy izgalmasabb legyen.
Letöltjük a szükséges programokat, beállítjuk a környezetet, megmutatom mik azok a csomagok és melyik mire jó.
Elkezdünk kódolni és alap paramétereket állítunk be a játékhoz, pl. képek. Ezeket megtalálod ennél a leckénél csatolva is egy ZIP file-ba.
Mivel itt igyekszünk objektum orientáltan programozni, létrehozunk egy alap osztályt. Ez a madárka kezelő osztály, amit majd folyamatosan bővítünk is.
Folytatjuk további osztállyal, ez a cső. Ezt kell majd a kerülgetni a madárkáknak. A csövek paramétereit ki kell számolni, majd rajzolni és mozgatni kell.
Befejezzük a cső osztályt és beszélünk a használt koordináta rendszerről. Ütközés vizsgálatot is itt valósítjuk meg.
Tovább rajzolunk és létrehozzuk a játék fő ciklusát, ami addig fut, míg a játékból ki nem lépünk.
Meghívjuk a létrehozott objektumokat és már látszik a játék alapja, mert elindítjuk és örülünk :)
Hogy lássuk miként működik az ötletünk, kezeljük a billentyűzetet is. Ezt később kivesszük, hisz a gépi tanulásra hajtunk.
Ebben a leckében félretesszük a kódokat és megtanuljuk mit jelent a neurális hálózat és hogy működik a mögöttes matek. Nem vészes, ne aggódj, elmagyarázom érthetően.
A neurális hálózat helyes működéséhez be kell konfigurálni azt. Az alap konfigurálás jó is nekünk, pár fontos dolgot persze megmutatok a AI konfig file-ban.
Az eddig tanultakat felhasználva visszatérünk a kódhoz és beépítjük a neurális hálózatot. Ez lesz a madárka mesterséges agya, ami dönteni fog önállóan hamarosan.
Elkezdünk mindent egyszerre mozgatni a képernyőn. Sok madárka, több cső és felkészülünk a mesterséges agy fogadására :)
Elérjük, hogy a gép önállóan tanuljon és hozzon döntést. Ezáltal a szemünk előtt fog fejlődni és "magától" játszani. Alaposan megértjük egyúttal, hogy hol van a döntési pont és mi alapján hozza meg azt.
Elindítjuk a játékot, billentyűzet használatot kivesszük és figyeljük, ahogy -bár eleinte ügyetlenül- később egyre ügyesebben veszik az akadályokat a madárkáink a beépített mesterséges intelligenciának köszönhetően.
Mire jó a GPT4ALL ingyenes program? Hogyan lehet használni és milyen főbb részei vannak? Pár fontosabb alapfogalmat tisztázunk a nagy nyelvi modellekkel kapcsolatban.
Hol találunk ingyenesen használható és fizetős nagy nyelvi modelleket (LLM) ? Mi az a Huggingface közösség és mi mindent találunk ott? Magyar modelleket is keresünk és tisztázzuk a RAG fogalmát, plusz saját extra információval egészítjük ki az LLM már meglévő tudását.
Ismét előkerül az Anaconda Navigator és új környezetet ágyazunk meg a projecthez. Pár package-t feltelepítünk, majd rövid kódok kíséretében lekérdezzük, hogy milyen nagy nyelvi modellek érhetőek el számunkra Python alól. Létrehozunk egy "beszélgetős" objektumot, aminek később kérdéseket fogunk feltenni.
A pár soros AI chat botot befejezzük, hogy tudjunk vele beszélgetni. Ez már a mi gépünkön fog futni lokálisan, Internet nem kell hozzá. Tisztázzuk a session fogalmát, majd megbeszéljük mit jelent a "token" a nagy nyelvi modellekben. Kiderítjük mit jelent az igen fontos "temperature" paraméter és mit is jelent a büntetés a nagy nyelvi modellek esetében.
Bővítjük a mesterséges agyat (LLM) saját infóval, pl. saját PDF anyaggal. CPU VS GPU - mennyire számít vajon, hogy van-e grafikus processzorunk a gépben? Beolvassuk a PDF-t és feldaraboljuk a könnyebb kezelhetőség miatt. Megtanuljuk hogyan érti meg a gép a szavakat: ezek a vektorok (embeddings) és a hasonlóság keresés (similarity search).
Mi a különbség a nagy nyelvi modell (LLM) és a "sentence transformer" modell között? Írunk egy rövid Python programot, hogy lássuk hogy keres hasonlóságot a gép az egyes mondatok között.
Fizetős nagy modelleket is egyszerűen használhatunk, mutatom hogyan, pl: "ChatGPT" és "Gemini". Mit tud a "Langchain" Python package és hogyan használjuk? FAISS adatbázist építünk, ahol az extra PDF file-ban lévő saját tudást tároljuk vektorok formájában. Megbeszéljük az LLM kontextus ablak fogalmát is és bevezetjük a "kérdés-válasz" láncolat lényegét, amire az AI beszélgetések épülnek. Kitérünk a Python "dictionary" adat típusra is röviden.
Kész a RAG alapú program, tudunk vele beszélgetni. A FAISS db-ről ismét beszélünk pár szót, hogy miként talál meg gyorsan adatokat Megmutatom az NVIDIA új mini szuperszámítógépét, ami kiválóan alkalmas lehet ennek futtatására.
Átnézzük a végső és finomított kódot. Memóriát is teszünk hozzá, hogy emlékezzen és kielemezzük a válaszait.
Még ránézünk mivel lehet kreatívabbá, vagy épp konzervatívabbá tenni a gép "gondolkodását".
Ezzel most végeztünk, gratulálok Neked! :)
Még nem tudod hova tenni a programozást, de úgy hallottad érdekes? Esetleg mondta valaki, hogy sokat lehet keresni vele?Javaslom ne másra bízd ezt a döntést, hanem Te nézd meg, hogy tényleg neked való-e!
Ebben a kurzusban valóban a legelején kezdjük, tehát onnan, hogy mit használj programozáshoz. Hogy érthető legyen és gyorsan haladjunk, kezdetben elég egy webes felület, ami bármilyen gépen (akár tableten is) elérhető. Majd megtanuljuk hogyan kezdjünk neki a programozásnak, s a szokásos, unalmas "hello world" szavak kiírása helyett, mi rajzolni kezdünk a képernyőre, így látványos lesz a munkánk.
Aztán megnézzük milyen utasítások vannak, mi az elágazás, ciklus és hasonló "bűvös" szavak. Eközben eljutunk egy egyszerű kígyós játék fejlesztésig, ahol almákat kell enni, eközben persze gyorsul a játékmenet. A saját első játékunkat nem csak kipróbálhatjuk, de tovább is fejleszthetjük szabadon.
Utána robogunk tovább a mesterséges intelligencia megértéséig, ehhez még az emberi agy működéséhez kissé hasonlatos neurális hálózatokat is bemutatom, elmagyarázom gyakorlatiasan. Ne aggódj, a hiedelemmel szemben nincs benne kemény matek. Majd ezt a tudást is beépítjük egy szép játékba, ahol egy -majd több- madárkát fog a gép megtanulni irányítani a szemünk előtt.
Ezután robogunk tovább és nagy nyelvi modelleket fogunk díjmentesen használni helyileg a saját gépünkön. Sőt, saját kezüleg okosítjuk is fel ezeket a mesterséges agyakat, extra információval, hogy arról is lehessen beszélgetni és összefüggéseket lekérni.
Mivel a tanfolyam több részre van bontva és lassan haladunk, mindent ki tudsz próbálni. A végén pedig garantálom, hogy kényelmesen fogsz mozogni a Python programnyelvben és érteni fogod a mesterséges intelligencia alapjait is.