Az IBM Granite 3.0 egy fejlett eszközkészlet, amely a mesterséges intelligencia nyújtotta lehetőségeket kihasználva segíti a programozókat és a fejlesztőket. Az alábbiakban részletesen bemutatjuk, hogyan lehet telepíteni és használni az IBM Granite 3.0 modellt, valamint milyen modellek állnak rendelkezésre az AI-alapú kódolás segítésére.
A szükséges szoftverek telepítéséhez először is le kell töltenünk a megfelelő fájlokat az IBM Granite GitHub oldaláról. A legegyszerűbb módszer a git clone parancs használata, amellyel a kívánt modellt tartalmazó repozitóriumokat letölthetjük. Például, ha az Agentic RAG modellt szeretnénk használni, a következő parancsot kell kiadnunk: git clone https://github.com/ibm-granite/granite-embedding-models.git.
Miután letöltöttük a megfelelő fájlokat, a README.md fájl tartalmazza a Python példákat, amelyek segítenek az alapbeállítások elvégzésében. A szükséges Python csomagok, mint a sentence_transformers telepítése egyszerűen a következő parancs használatával történhet: pip install sentence_transformers. Ezt követően a README.md fájlban található példakódot futtatva elkezdhetjük az IBM Granite 3.0 rendszer működésének tesztelését.
A telepítési folyamat során figyelmet kell fordítanunk arra, hogy a RedHat Linux rendszer megfelelő verzióját használjuk. A RedHat RHEL 9.2 és 8.x verziók nem támogatják a Python 3.10-es verziót, és a Python 3.12-es verzió is korlátozottan működik. Jelenleg a Python 3.9 és 3.11 verziók kompatibilisek az IBM Granite 3.0 példákkal. Fontos, hogy a fejlesztők biztosítsák a helyes operációs rendszer konfigurációját, hogy elkerüljék a hibás telepítéseket vagy inkompatibilitásokat.
A Python környezet beállításán túl, ha a VMware Workstation Pro környezetében dolgozunk, szükséges a virtuális gép lemezméretének bővítése. Ehhez a megfelelő VMware dokumentációban található lépéseket kell követnünk, hogy a RedHat Linux operációs rendszer ne telepítse újra a friss kernel verziót. A disk size bővítése lehetővé teszi, hogy a virtuális gép elegendő erőforrással rendelkezzen a modellek futtatásához.
A következő lépés a modellek futtatása. Az IBM Granite 3.0 többféle modellt kínál, például az Agentic RAG-t és a TSFM (Time Series Foundation Models) modellt, amelyek a természetes nyelv feldolgozásában (NLP) és az időbeli adatok előrejelzésében játszanak szerepet. A RAG modellek kombinálják az információk keresését és a GPT alapú generatív nyelvmodelleket, míg a TSFM modellek időszakos adatok előrejelzésére alkalmasak, segítve ezzel az üzleti döntéshozatalt.
A fejlesztők számára az IBM Granite 3.0 egy erőteljes eszközkészletet biztosít a kódolási folyamatok egyszerűsítésére és a termelékenység növelésére. Az AI kódsegéd, mint például a Watsonx Code Assistant, hatékonyan támogatja a C, C++, Go, JavaScript és Python nyelveken történő fejlesztést. Az Ollama nevű helyi inferáló motor segítségével a fejlesztők közvetlenül a saját laptopjukon vagy munkaállomásukon használhatják az AI támogatást, felgyorsítva ezzel a fejlesztési ciklusokat.
A Jupyter lab használata is hasznos lehet a párhuzamosan futó több notebook kezelésére, mivel lehetővé teszi a különböző mappákban tárolt kódok párhuzamos futtatását. Ez különösen előnyös, ha egyszerre több modellt szeretnénk tesztelni, miközben a helyi szervereken elérhetjük a különböző portokon futó Jupyter szolgáltatásokat.
A fentiek mellett fontos, hogy a fejlesztők tisztában legyenek a modelljeink alkalmazási területeivel és a pontos konfigurációs követelményekkel. A helyes működés érdekében minden lépést pontosan és a rendszer igényeinek megfelelően kell végrehajtani. Az IBM Granite 3.0 modellek hatékony használata komoly előnyökkel járhat, mivel képesek jelentősen egyszerűsíteni a kódolási és előrejelzési feladatokat, valamint gyorsítani a fejlesztési folyamatokat.
Hogyan használjuk az IBM Granite 3.1-et a mesterséges intelligencia munkafolyamatokban
Az IBM Granite 3.1 az IBM harmadik generációs nyílt forráskódú nyelvi modellje, amely az Apache 2.0 licenc alatt elérhető. Az új verzió a korábbi modellekhez képest jelentős fejlesztéseket és új funkciókat tartalmaz. Az egyik legfontosabb újítás a kontextusablakok méretének növelése, amelyek mostantól 128K-ra bővültek minden modelltípusnál. Emellett az IBM bevezetett egy új funkciót is, amely képes észlelni a hallucinációkat, így a felhasználók nagyobb kontrollal rendelkeznek az agentikus AI munkafolyamatok felett. Az IBM Granite 3.1 modellek emellett négy új beágyazási modellt kínálnak, amelyek 12 különböző nyelvet támogatnak, így még szélesebb körű alkalmazási lehetőségeket biztosítanak.
Az IBM Granite 3.1 a legújabb előrelépést jelenti az AI rendszerek fejlesztésében, különösen az üzleti szintű alkalmazásokban. A modellek kifejezetten a vállalati AI-ra optimalizálták őket, és javították a funkciók végrehajtásának sebességét is. A Granite 3.1 többféle modellt kínál, köztük a Granite Dense, amely a nagy teljesítményű vállalati alkalmazások számára készült, és a Granite Inference-efficient Mixture of Experts modelleket, amelyek ideálisak helyi szerveralkalmazásokhoz vagy telepítésekhez. Emellett a Granite Accelerator, egy spekulatív dekódolási modellt is tartalmaz, amely gyorsítja a következtetési folyamatokat és csökkenti a késleltetést.
A Granite 3.1 modellek jelentős előrelépést jelentenek a RAG (retrieval-augmented generation) és a funkcióhívás kezelésében. Az IBM Granite-3.1 alapmodellekből finomhangoltak, amelyeket nyílt forráskódú utasításkészletekkel és szintetikus adatokat tartalmazó belső gyűjteményekkel fejlesztettek ki, amelyek a hosszú kontextus problémáinak megoldására összpontosítanak.
A nyelvi modellek hatékony alkalmazása érdekében fontos, hogy megfelelő fejlesztési környezetet biztosítsunk a felhasználóknak. Az IBM Watsonx.ai a legújabb verziók és szolgáltatások elérését lehetővé teszi. A csatlakozás és a projekt létrehozása az IBM Watsonx.ai platformján egyszerű, és a felhasználók hozzáférhetnek a szükséges adatforrásokhoz, valamint fejleszthetnek saját AI munkafolyamatokat.
A Watsonx.ai rendszerben a felhasználók egy sandbox projektet hozhatnak létre, amely lehetőséget ad különféle AI modellek tesztelésére és alkalmazására. A projekt létrehozásához szükséges első lépés egy IBM-fiók létrehozása, majd a platformra való bejelentkezés. Miután a felhasználó bejelentkezett, számos előre definiált feladat közül választhat, amelyek lehetővé teszik a modellek validálását, finomhangolását és telepítését.
Például egy tipikus feladat lehet, hogy egy Java kódot kérünk egy bináris kereséshez. A rendszer ezt követően képes egy működő kódot generálni, amelyet további finomhangolással és tréninggel optimalizálhatunk a jövőbeli válaszokhoz. Az IBM Watsonx.ai szintén számos jupyter notebook példát biztosít Python és AI adatforrások használatára, ami lehetővé teszi a modellek gyors és hatékony fejlesztését.
A projekt létrehozásához a felhasználóknak szükségük lesz egy projektazonosítóra, amelyet a projekt kezelési oldalán találhatnak meg. Ez az azonosító kulcsfontosságú lesz a további fejlesztésekhez és például az API kulcsok kezeléséhez, amelyeket szintén az IBM Cloud platformon hozhatunk létre. Miután az API kulcsokat hozzáadtuk a projektünkhöz, a rendszer automatikusan összekapcsolja őket a megfelelő szolgáltatásokkal, amelyek szükségesek a modellek futtatásához.
A Watsonx.ai szolgáltatásban a felhasználók számos hasznos eszközt találnak, amelyek segítenek az AI modellek validálásában és optimalizálásában. Az eszközök között szerepelnek a szabad formátumú promptok, amelyek lehetővé teszik, hogy a felhasználók szabadon formázzák kérdéseiket és válaszaikat. Az AI modellek folyamatosan tanulnak és fejlődnek a kapott válaszok és új kérdések alapján, így biztosítva a rendszer folyamatos fejlődését és javulását.
A rendszer rendkívül rugalmas, és képes alkalmazkodni különböző üzleti igényekhez és fejlesztési környezetekhez. Az IBM Granite 3.1 új lehetőségeket kínál a mesterséges intelligencia alkalmazásában, és lehetővé teszi, hogy a vállalatok hatékonyan dolgozzanak nagy mennyiségű adattal, miközben biztosítják a válaszok minőségét és relevanciáját. Az új generációs modellek nemcsak a technológiai fejlődést képviselik, hanem az üzleti alkalmazások szempontjából is alapvető fontosságúak.
A mesterséges intelligencia alkalmazása során a felhasználóknak tisztában kell lenniük azzal, hogy a modellek finomhangolása és az adatkezelés kulcsfontosságú a sikeres integrációhoz. A helyes API és adatkezelési eljárások biztosítják, hogy a modellek megbízhatóan működjenek, és képesek legyenek pontos válaszokat adni különféle üzleti kérdésekre.
Hogyan kezeljük a CUDA hibákat és optimalizáljuk a gépi tanulást Python környezetben?
A CUDA egy fejlett párhuzamos feldolgozási platform és programozási modell, amelyet az NVIDIA fejlesztett ki, hogy lehetővé tegye a GPU-k (grafikus feldolgozó egységek) használatát általános célú számításokhoz, mint például mesterséges intelligencia (AI), mélytanulás és matematikai programozás. A CUDA használatának előnye, hogy lehetővé teszi a párhuzamos feldolgozást, ami gyorsítja a nagy számítási igényű feladatok végrehajtását.
Azonban sok esetben előfordul, hogy a megfelelő GPU nincs telepítve, vagy az alkalmazott rendszer nem támogatja a CUDA-t. Ez különösen problémát jelenthet, ha egy könyvtár vagy függőség kifejezetten a GPU használatára támaszkodik. A rendszerünk példájában, amikor megpróbáltunk átváltani a GPU üzemmódra, hibákba ütköztünk, mivel a szükséges GPU nem volt telepítve a szerverünkön. Ekkor egy egyszerű parancsot használtunk, hogy helyreállítsuk a könyvtárhoz való hozzáférést:
Ez a parancs kijavította az egyik könyvtári elérhetőségi problémát, de a use_cuda_graph paraméterrel kapcsolatos hiba továbbra is fennállt, mivel a rendszerünk nem rendelkezett a szükséges GPU-val. Ez az esettanulmány rávilágít arra, hogy a CUDA és az AI-vezérelt feldolgozás zökkenőmentes használata érdekében elengedhetetlen a megfelelő hardver és szoftver környezet beállítása.
A GPU hiányának problémáját a CPU-ra való átállás révén próbálhatjuk orvosolni. Ehhez a következő kódot adtuk hozzá a rendszerünkhöz, hogy meghatározzuk, hogy melyik eszközt használjuk:
Ez a kód automatikusan felismeri, hogy van-e GPU a rendszerben, és ha nincs, a CPU-t fogja használni. Azonban a GPU-hoz kapcsolódó további függőségek, mint például a CUDA grafikus mód és a megfelelő könyvtárak telepítése, nélkülözhetetlenek maradnak az optimális teljesítmény érdekében.
A fejlesztés során egy másik kihívásba ütköztünk, amikor a Jupyter lab környezetében próbáltuk futtatni a kódot, és különböző Python verziókat kellett alkalmaznunk a kompatibilitás biztosítása érdekében. A rendszer hibásan telepítette a szükséges csomagokat, ezért a pip parancsot módosítani kellett, hogy az aktuális Python verziót támogassa:
Ez a módosítás lehetővé tette számunkra, hogy a szükséges csomagokat telepítsük, és sikeresen futtassuk a notebookot a megfelelő Python verzióval.
Egy különleges esettanulmányt készítettünk a code_summarization.ipynb fájl használatával, amelyben a Java metódusok összefoglalását végeztük el a CLDK (Code Language Detection Kit) segítségével. A CLDK képes programozási nyelvek felismerésére és összegzésére, így ideális eszközzé válik a kódok gyors elemzéséhez. Az alábbiakban bemutatjuk a Java kódot, amelyet a CLDK elemzett, és amelyet az automatikusan generált összefoglalóval egészítettünk ki:
A kód összefoglalása a következő információkat tartalmazza:
Ez az automatikus elemzés nagy segítséget jelenthet a fejlesztőknek, mivel gyorsan összegzi a kód működését és megkönnyíti a további fejlesztéseket.
Fontos, hogy a gépi tanulás és az AI alkalmazások fejlesztése során mindvégig biztosítani kell a megfelelő környezetet és hardvert, különösen, ha a GPU-ra támaszkodó modellekről van szó. Ezen kívül elengedhetetlen a megfelelő könyvtárak és verziók használata, mivel egyes eszközök és függőségek kompatibilitási problémákat okozhatnak, ha nem a legújabb verziókat alkalmazzuk.
Az AI és gépi tanulás világában a különböző eszközök és könyvtárak folyamatosan fejlődnek, így a fejlesztőknek mindig naprakésznek kell lenniük a legújabb fejlesztésekkel, hogy a lehető legjobb teljesítményt érjék el a rendszereikben.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский