A generatív AI és az LLM működése
A Generatív AI egy olyan mesterséges intelligenciatípus, amely képes eredeti tartalom, például természetes nyelv, képek, hang és kód létrehozására. A generatív AI kimenete a felhasználó által megadott bemeneteken alapul. A felhasználók gyakran használják a generatív AI-t olyan csevegőalkalmazásokon keresztül, amelyek természetes nyelvet használnak bemenetként. Erre népszerű példa az OpenAI által kifejlesztett ChatGPT. A természetes nyelvet bemenetként használó generatív AI-alkalmazásokat nagy nyelvi modellek (LLM-ek) hajtják végre a természetes nyelvi feldolgozás (NLP) végrehajtásához.
A generatív AI működése
Minden generatív AI a modellekre épül. Ezek a modellek nagy adatkészletekkel vannak betanítve tartalom, például természetes nyelv, képek, hang és kód formájában. A Generatív AI-modellek a betanítási adatokban azonosított mintákat használják új, statisztikailag hasonló tartalom előállításához.
A felhasználó által megadott bemenetet az AI-modell használja a kimenet létrehozásához. A bemenet először egy olyan adatformává lesz elemezve, amelyet a modell megért. A modell ezután ezeket az adatokat felhasználva azonosítja a betanításból származó egyező mintákat, amelyeket a végső kimenet létrehozásához egyesít. A Generatív AI-modellek egyedi tartalom előállítására lettek tervezve, így nem fognak ugyanazt a kimenetet létrehozni azonos bemenetekhez.
A természetes nyelvet bemenetként vagy kimenetként támogató generatív AI-alkalmazások ehhez LLM-eket használnak. Az LLM az NLP végrehajtására szolgál, amely osztályozza a bemeneti szöveget, és meghatározza a hangulatát. A generatív AI-modell ezt a besorolást és hangulatelemzést használja a minták azonosítására és a kimenet összeállítására. Ha a kimenet szöveg, akkor csak az LLM használható a létrehozáshoz. Ha a kimenet hang vagy kép, a rendszer további modelleket használ a kimenetek ilyen formátumú előállításához szükséges adatok és minták megadására.
A generatív AI gyakori alkalmazásai
A Generatív AI-alkalmazások számos lehetséges használati esetet és lehetséges kimenetet támogatnak, amelyeket a következő szakaszokban ismerünk meg.
Természetes nyelvi generáció
Egyes generatív AI-alkalmazások természetes nyelvi kimeneteket hozhatnak létre, például:
- Egy LinkedIn-profil professzionálisan formázott összefoglalói
- Az online áruház elemeinek részletes leírása
- Ötletek az egészséges ételekhez
A felhasználói bemenet alapján például három ötletet adhat az egészséges reggelihez, beleértve a paprikát is, egy generatív AI-alkalmazás a következő kimenetet hozhatja létre:
Oké, itt van három egészséges reggeli, amelyek tartalmazzák a paprikát:
Tojás és bors scramble: kockára fel néhány paprikát, és sauté őket egy serpenyőben, amíg nem enyhén lágyított. Ezután adjunk hozzá néhány megvert tojást, és mindent összefirkálunk. Egész kiőrlésű pirítóssal szolgáljuk fel tápláló reggelire.
Bors és avokádó pirítós: Pirítson fel egy szelet teljes kiőrlésű kenyeret, és teteje szeletelt paprikával, avokádóval és sóval és borssal. Ez egy nagyszerű módja annak, hogy néhány egészséges zsírt az avokádóból, valamint a C-vitamint a paprikából.
Reggeli Burrito a peppers: Sauté néhány kockás paprika, hagyma, és rántott tojás együtt egy serpenyőben. Ezután kanáljuk a keveréket egy teljes kiőrlésű tortillára, és felül egy kis salsa vagy forró mártással. Roll fel, és élvezze a kielégítő és tápláló reggeli.
Képgenerálás
Egyes generatív AI-alkalmazások természetes nyelvi bemenetekből származó képkimeneteket hoznak létre. Az alkalmazástól és modelljeitől függően a felhasználók meg tudják adni a következőket:
- A képeket megjeleníteni kívánt személyek vagy dolgok
- A kép létrehozásához használt művészi stílus
- Hasonló képek létrehozására szolgáló hivatkozások
A képgenerálás virtuális avatarokat hozhat létre online fiókokhoz, emblémákat tervezhet egy vállalat számára, vagy művészi ihletet biztosíthat az alkotók számára. Egy felhasználó például beírhatja a kérést, és létrehozhat egy képet egy hamburgert evő elefántról. Egy generatív AI-alkalmazás a következő kimenetet hozhatja létre:
Hanggenerálás
Egyes generatív AI-alkalmazások természetes nyelvi bemenetekből származó hangkimeneteket hoznak létre. Az alkalmazástól és modelljeitől függően a felhasználók a következőket teheti:
- Természetes hangzású hangok szintetizálása bemeneti szövegből
- Zene létrehozása adott stílusban vagy bizonyos hangszerekkel
- Bemeneti hangfájlok módosítása a természetes nyelven megadott feltételek alapján
A hanggenerálás képes a digitális hangsegédektől származó beszélt válaszok megadására, háttérhangszerek hozzáadására a zeneszámokhoz, vagy a felhasználó eredeti hangjának reprodukálása referenciafelvételekből.
Kódgenerálás
Néhány generatív AI-alkalmazás természetes nyelvi bemenetekből állít elő kódot. Az alkalmazástól és modelljeitől függően a felhasználók létrehozhatnak olyan kódot, amely:
- A választott nyelven van
- Egy adott bemeneti és kimeneti struktúrát fogad el
- Konkrét technológiákat használ referenciadokumentációjuk alapján
A kódlétrehozás lehetővé teheti a gyakori műveletek gyors implementálását, például az adatok rendezését vagy szűrését, a kód fordításának felgyorsítását egyik nyelvről a másikra, vagy megválaszolhatja egy adott referenciadokumentáción alapuló technológiával kapcsolatos kérdéseket. Például a "Show me to code a game of tic-tac-toe with C#" (Show me to code a game of tic-tac-toe with C#) bemenet alapján egy generatív AI-alkalmazás a következő kimenetet hozhatja létre:
Íme egy egyszerű példa a tic-tac-toe játék C#-ban való kódolására:
using System;
namespace TicTacToe
{
class Program
{
static char[] board = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
static int player = 1; // Player 1 will start
static int choice; // The number the player chooses
static int flag = 0; // Set the flag value to 0
// Check if the position is already marked or not
private static int CheckPosition(char mark)
{
for (int i = 0; i < 9; i++)
{
if (board[i] == mark)
{
return 1;
}
}
return 0;
}
// The rest of the generated code has been omitted for brevity
// ...
}
}
Ez a kód létrehoz egy egyszerű konzolalapú tic-tac-toe játékot C#-ban. Egydimenziós tömböt használ a tábla ábrázolására, és minden lépés után ellenőrzi a nyerést vagy a döntetlent.
Az LLM-k működése
LlM betanításakor a betanítási szöveg először jogkivonatokra lesz bontva. Minden jogkivonat egyedi szöveges értéket azonosít. A jogkivonat lehet különálló szó, részleges szó vagy szavak és írásjelek kombinációja. Minden jogkivonathoz hozzá van rendelve egy azonosító, amely lehetővé teszi a szöveg tokenazonosítók sorozataként való ábrázolását.
Miután a szöveg jogkivonatokra lett bontva, a rendszer minden jogkivonathoz hozzárendel egy környezetfüggő vektort , más néven beágyazást. Ezek a beágyazási vektorok többértékű numerikus adatok, amelyekben a token vektorának minden eleme a jogkivonat szemantikai attribútumát jelöli. A tokenek vektorának elemeit a tokenek együttes vagy hasonló környezetekben való használata alapján határozzuk meg.
A cél a következő token előrejelzése a sorozatban az előző jogkivonatok alapján. A meglévő sorrendben minden jogkivonathoz súly van rendelve, amely a következő jogkivonatra gyakorolt relatív befolyását jelzi. Ezután olyan számítást hajtunk végre, amely az előző tokenek súlyát és beágyazását használja a következő vektorérték előrejelzéséhez. A modell ezután kiválasztja a legvalószínűbb jogkivonatot a sorozat előrejelzett vektor alapján történő folytatásához.
Ez a folyamat iteratív módon folytatódik a sorozat minden tokenje esetében, és a kimeneti sorozat regresszív módon lesz felhasználva a következő iteráció bemeneteként. A kimenet egyszerre egy jogkivonatot hoz létre. Ez a stratégia hasonló az automatikus kiegészítés működéséhez, ahol a javaslatok az eddig beírt adatokon alapulnak, és minden új bemenettel frissülnek.
A betanítás során a jogkivonatok teljes sorozata ismert, de a jelenleg figyelembe vett jogkivonatok figyelmen kívül lesznek hagyva. A következő jogkivonat vektorának előrejelzett értékét összehasonlítjuk a tényleges értékkel, és kiszámítjuk a veszteséget. A súlyokat ezután növekményesen módosítjuk a veszteség csökkentése és a modell javítása érdekében.