A nyelvi modellek működésének egyik alapja az úgynevezett "in-context learning" – amikor a modell egy feladat megoldásához néhány példát kap bemenetként, és azok alapján próbálja kitalálni, mit kell tennie. Ha valaki jártas a szórejtvényekben, könnyedén megfejti, hogy például az asinoc „casino”, a yfrogg „froggy”, a plesim „simple”, az iggestb „biggest”, az astedro pedig „roasted”. Ez a technika – ahol jó példákat mutatunk a modellnek – sokszor meglepően hatékony, különösen egyszerű feladatok esetén.

A gyakorlatban azonban ez az eljárás korlátokba ütközik. Túl sok példa bemeneti promptként megnehezíti a modell számára a kontextus megtartását, és növeli az erőforrásigényt. Ráadásul, a példák sorrendje is befolyásolja a kimenetet, így a folyamat nem teljesen determinisztikus. Ha pedig sok ilyen lekérdezést végzünk, az anyagi költsége is jelentősen nőhet – akár magasabbra, mint ha a modellt egyszerűen finomhangolnánk.

Ennek felismerésére épült az IA3 (Infused Adapter by Inhibiting and Amplifying Inner Activations) nevű eljárás, amely a parametrikusan hatékony finomhangolás (PEFT – Parameter-Efficient Fine-Tuning) egyik formája. Az IA3 során a modell rétegeibe három új tanulható paraméter (Lk, Lv, Lf) kerül beillesztésre, valamint egy adapter is, amely a kimenetet módosítja. Ezzel az eljárással úgy lehet módosítani a modell működését, hogy közben a súlyok túlnyomó többsége változatlan marad. A veszteségfüggvény is módosul, hogy csökkentse a hibás válaszok valószínűségét.

A korábbi szakaszban említettük az ST-A (single-task adapter) és MT-A (multi-task adapter) megközelítéseket. Ezek közül az utóbbit viszi tovább a multitask prompt tuning (MPT), amely egyaránt tartalmaz feladatspecifikus és megosztott promptokat. Ennek az a lényege, hogy a különböző feladatokra tanított adapterek tudása kölcsönösen hasznosulhasson – például ha egy modell egyszerre old meg matematikai problémákat és fordít angolról németre.

Az MPT során két új vektor, u és v kerül bevezetésre, amelyek Hadamard-szorzaton keresztül alakítják a közös promptmátrixot egy-egy feladatra szabott "puha prompttá". A gyakorlatban ezeket a vektorokat normáleloszlás szerint inicializálják, majd a forward lépés során a megfelelő task ID-k szerint választják ki őket, szorozzák össze, és ezzel módosítják a prompt beágyazásokat. Ez lehetővé teszi a promptok testreszabását különféle feladatokhoz, miközben a közös komponens (P*) is tanulható marad, például tanár-diák típusú tanulással, ahol a tanári promptból (P_teacher) vezethető le a tanulói (P_student) komponens.

Az egyik legismertebb és leghatékonyabb PEFT megközelítés a LoRA (Low-Rank Adaptation). A LoRA alapja az a feltételezés, hogy a hatalmas paraméterszámú nyelvi modellek valójában alacsony dimenziós struktúrákat hordoznak, azaz csak viszonylag kevés paraméter szükséges a predikciókhoz. Ezért ahelyett, hogy a teljes súlymátrixot (W) módosítanánk, LoRA két kis mátrixot (A és B) tanul, amelyek szorzata (B × A) jól közelíti az eredeti mátrixot, de kevesebb paraméterrel.

A legfontosabb hiperparaméter a rang (r), amely A és B dimenzióit határozza meg. Tipikusan r sokkal kisebb, mint az eredeti mátrix dimenziója (d), így a tanuláshoz szükséges memória- és számítási erőforrás jelentősen csökken. Például a GPT-3 esetében a tanítás során használt VRAM-mennyiség 1,2 TB-ról 350 GB-ra esik vissza, miközben a checkpoint-méret is óriási mértékben zsugorodik – egyes esetekben akár tízezerszeresére, 350 GB-ról 3

Hogyan alakítják át a Nagy Nyelvi Modellek a pénzügyi szektort és miért fontos a költséghatékonyság?

A Bloomberg GPT projekt a mesterséges intelligencia (MI) területén történt jelentős előrelépést tükrözi, amely a pénzügyi szektor számára új, fejlettebb elemző eszközöket kínál. A modell egy új generációs funkcióval bővítette a Bloomberg szolgáltatásait, és képes mélyebb elemzéseket nyújtani, ezáltal biztosítva a vállalat ügyfeleinek, hogy még pontosabb döntéseket hozzanak a pénzügyi piacon. A Bloomberg GPT nem csupán a pénzügyi elemzés javítását célozza, hanem alapot biztosít számos belső és külső mesterséges intelligencia (MI) projekt számára is, ezáltal bemutatva a vállalat elkötelezettségét a mesterséges intelligencia alkalmazása mellett, mint a pénzügyi döntéshozatal elősegítője.

A projekt fontossága nemcsak az új eszközök és funkcionalitások bevezetésében rejlik, hanem a speciális nagyméretű nyelvi modellek fejlesztéséhez szükséges pénzügyi és számítási befektetésekben is. Ezen keresztül a Bloomberg GPT szemlélteti a mesterséges intelligencia stratégiai jelentőségét a pénzügyi szektorban. Az MI nem csupán a jobb elemzést biztosítja, hanem versenyelőnyt adhat a vállalatoknak egy olyan piacon, ahol az időszerű és pontos információk döntőek a siker szempontjából.

Az MI alkalmazások egyre nagyobb szerepet kapnak a különböző iparágakban, különösen a pénzügyek terén, ahol a döntéshozatal alapvetően a gyors és pontos információkra épül. A nagyméretű nyelvi modellek (LLM-ek) előnyei, mint a Bloomberg GPT, az automatizált, pontos elemzések, gyors adatfeldolgozás és az összetett trendek felismerésében való segítés. Mindezek kulcsfontosságúak egy olyan világban, ahol az adatok áramlása hatalmas sebességgel növekszik, és a versenyelőny megőrzése érdekében minden információnak naprakésznek és relevánsnak kell lennie.

Fontos megérteni, hogy míg a mesterséges intelligencia és a nagyméretű nyelvi modellek elterjedése a vállalatok számára rengeteg előnyt kínál, a költséghatékonyság továbbra is kiemelt kérdés marad. Az MI alkalmazások terjedése nemcsak technológiai kihívásokat, hanem gazdasági szempontokat is felvet. A hatékony alkalmazás érdekében figyelembe kell venni a rendszerek telepítéséhez, karbantartásához és fejlesztéséhez szükséges költségeket. A fejlesztési költségek mellett az adatok előkészítésére, a modellek tanítására, valamint a folyamatos finomhangolásra is szükség van, hogy a rendszerek valóban értékes döntéseket támogassanak. Ezt különösen fontos figyelembe venni akkor, amikor egy vállalat a mesterséges intelligencia alkalmazása mellett dönt, hiszen a hosszú távú gazdasági fenntarthatóság a folyamatos költségoptimalizálásról szól.

A GenAI, vagy generatív mesterséges intelligencia alkalmazások gyorsan átalakítják a különböző iparágak működését. A mesterséges intelligenciát nem csupán technológiai előrelépésként kell felfogni, hanem olyan eszközként, amely lehetőséget ad a vállalatok számára, hogy hatékonyabbá váljanak, csökkentsék a működési költségeiket, és versenyelőnyre tegyenek szert. A költségoptimalizálás nemcsak a pénzügyi szektor számára elengedhetetlen, hanem az összes olyan területen, ahol az MI alkalmazása várható.

A pénzügyi szektorban az ilyen eszközök különösen fontos szerepet játszanak, hiszen a vállalatoknak nemcsak az alkalmazások fejlesztésére, hanem azok folyamatos karbantartására, felügyeletére és optimalizálására is költségeket kell fordítaniuk. A költségoptimalizálás folyamatát meg kell érteniük az MI fejlesztőknek és a döntéshozóknak egyaránt, hiszen e nélkül nem lehet hosszú távon fenntartható módon alkalmazni a mesterséges intelligenciát. Az ilyen típusú alkalmazások csak akkor lehetnek igazán sikeresek, ha a költségeik valóban arányban állnak az elért eredményekkel.

A GenAI és a nagyméretű nyelvi modellek alkalmazásának jövője abban rejlik, hogy miként képesek a vállalatok maximálisan kihasználni ezen eszközök potenciálját, miközben megfelelően menedzselik a költségeket és a technológiai kihívásokat. Az MI nem csupán az új technológiák bevezetésére vonatkozik, hanem azok gazdasági és operatív hatásainak alapos megértésére is. Ezen a területen fontos, hogy a döntéshozók ne csupán a technológiai előnyökre összpontosítsanak, hanem arra is, hogy miként lehet a legjobban optimalizálni a költségeket, hogy ezek az eszközök valóban hosszú távú értéket biztosítsanak a pénzügyi szektor számára.

Hogyan optimalizáljuk a Nagy Modellek Futattatását és Tuningját Felhőalapú Szolgáltatásokban?

A nagy nyelvi modellek (LLM) optimalizálása és futtatása a felhőalapú platformokon egyre elterjedtebbé válik, mivel lehetővé teszi az erőforrások hatékony kihasználását és a magas szintű teljesítmény biztosítását. A TensorRT-L és SageMaker alapú LMI DLC-k (Deep Learning Containers) minimális kódolást igényelnek, elegendő csupán a modellazonosító és néhány opcionális paraméter megadása a kompilálásukhoz. Az optimalizált modellek tárolása és a modell tárházak automatikus létrehozása szintén egyszerűsödik a DLC-k használatával, amelyek az új generációs kvantizációs technikákat, például a GPTQ-t, AWQ-t és SmoothQuant-ot alkalmazzák. Ezen platformokon a felhasználók gyorsíthatják a generatív mesterséges intelligencia alkalmazások telepítését, és finomhangolhatják az LLM modelleket a kívánt hardverre, biztosítva a legjobb ár-teljesítmény arányt.

A felhőalapú szolgáltatók, mint az Azure és a Google Cloud Platform (GCP) hasonló funkciókat kínálnak, lehetővé téve saját API végpontok telepítését LLM-ekkel. Az Azure OpenAI például lehetőséget ad arra, hogy a felhasználók saját modelleiket vagy az OpenAI alapmodelljét telepítsék, bár ez a megoldás kevésbé rugalmas a használt technológiai rétegek kezelésére, mint a SageMaker vagy más fejlettebb platformok.

A telepítés folyamatának megértése érdekében érdemes belemerülni az infrastruktúra finomhangolásának kérdésébe, amely magába foglalja a modell kiszolgálásához szükséges fájlok beállításait. A legegyszerűbb kiszolgálási konfigurációs fájl például egy Llama2 7B modell telepítésére így nézhet ki: az engine paraméter Python-ra van állítva, és a modellazonosító mellett beállíthatjuk a dtype paramétert is, amely például fp16 lehet. A kiszolgálási beállítások alapértelmezett paraméterei, mint például a modell betöltési időtúllépése, könnyen testre szabhatóak, hogy hosszabb időt biztosítsunk a modell betöltésére, különösen ha az egy GPU-n fut.

A modellt egy GPU-ra telepítve a CPU és GPU közötti erőforrás-kihasználás egyensúlyának megteremtése fontos tényező. Ha a modell nem fér el egyetlen GPU-n, a tensor párhuzamosítás használata lehetőséget ad a modell szétosztására több GPU között, csökkentve a késleltetést és növelve a teljesítményt. A tensor_parallel_degree paraméter segítségével például beállíthatjuk, hogy hány GPU-t használjon a modell, és ez jelentős hatással lehet a válaszidőre, főként ha nagy mennyiségű kimeneti tokent kell generálni.

A batch-elési beállítások alapvető szerepet játszanak a teljesítmény optimalizálásában. Az automatikus dinamikus batch-elés, folyamatos batch-elés vagy a paged attention batch-elés mind különböző megközelítéseket kínálnak a kéréskezelés optimalizálására. A dinamikus batch-elés például lehetővé teszi a kérdések összegyűjtését és egyidejű feldolgozását egy adott időkereten belül, ami gyorsabb válaszokat eredményezhet. Ehhez szükséges beállítani a batch_size és a max_batch_delay paramétereket, hogy meghatározzuk, hány kérés legyen egy batch-ben és mennyi idő telhet el az összegyűjtésük előtt.

A folyamatos batch-elés dinamikusan kezeli a batch-eket minden egyes iterációval, így az új kérés folyamatosan lecserélheti a befejezettet, maximalizálva a GPU kihasználtságát. Ehhez az MPI engine-re van szükség, és további paraméterek beállítása szükséges, mint például a rolling_batch és max_rolling_batch_size. Azonban egyes modellek, például a Llama2, más típusú konfigurációkat igényelhetnek, például a paged_attention beállítást is, amelyet a folyamatos batch-elésnél érdemes figyelembe venni.

A különböző batch-elési típusok alkalmazásának hatásai, például a válaszidő és a GPU memória kihasználtság, mind szoros összefüggésben állnak a kiszolgálási paraméterekkel és a választott modelltípussal. A megfelelő batch-elési technika kiválasztása és az optimális paraméterek meghatározása a rendszeres benchmarkolás révén történik. Érdemes tesztelni a különböző beállításokat és figyelembe venni a modell válaszidejét és a feldolgozási sebességet, hogy megtaláljuk a legmegfelelőbb konfigurációt.

Az LLM-ek kiszolgálásához kapcsolódó teljes paraméterkészletet a különböző szolgáltatók dokumentációjában találhatjuk meg, így például az Amazon SageMaker beállításainak és a DJL (Deep Java Library) használatával kapcsolatos paramétereket is. A tensor_parallel_degree, rolling_batch, és más konfigurációk megfelelő beállításával maximalizálhatjuk a modell teljesítményét, és biztosíthatjuk a hatékony erőforrás-kihasználást, miközben minimalizáljuk a késleltetést és a memóriaterhelést.

Fontos figyelembe venni, hogy minden egyes modell és infrastruktúra egyedi beállítást igényel, és a legjobb eredményeket a különböző konfigurációk tesztelésével érhetjük el. Az optimális konfiguráció elérése érdekében a felhasználók számára hasznos lehet a folyamatos tanulás és a kísérletezés, mivel a mesterséges intelligencia és a felhőalapú szolgáltatások világában a legjobb gyakorlatok folyamatosan változnak.