Szállítás

Ingyenes kiszállítás

Támogatás 24

+36 (30) 525-2969

Shop.Szerver.Hu Blog

Könnyed-LLM-RAG-szkript

Retrieval Augmented Generation (RAG) Ollama (llama3.2) és ChromaDB segítségével Pythonban

LocalAI. Előzőleg írtam arról, hogy mikor indokolt, mikor válasszunk lokális AI munkállomást, illetve milyen hardver szükséges egy lokális LLM futtatásához.

Most jöjjön egy könnyed kisérlet: tanítani szeretnénk egy lokálisan futtatott LLM modellt, hogy az általunk betáplált adatok (egyszerű dataset) alapján válaszoljon specifikus kérdésekre, csakis a betáplált adatokból, hogy kizárjuk a tárgyi tévedéseket, hallucinációt.

A mesterséges intelligencia és a természetes nyelvfeldolgozás (NLP) területén egyre világosabbá válik, hogy önmagában egy nagy nyelvi modell (LLM) használata legtöbbször nem elégséges a specifikus és releváns válaszok generálásához. Még a llama3.2-hez hasonló erős modellek sem tudnak mindig naprakész vagy speciális információkat nyújtani. Erre kínál megoldást a Retrieval Augmented Generation (RAG), amely ötvözi a lekérdezési rendszerek és az LLM-ek képességeit.

Ebben a bejegyzésben megmutatom, mi is az a RAG, és hogyan működik az Ollama llama3.2 modell és a ChromaDB kombinációjával. Ez a párosítás lehetővé teszi, hogy az AI válaszai pontosabbak, kontextusban gazdagabbak és tényszerűek legyenek.

Mi az a Retrieval Augmented Generation (RAG)?

A RAG lényege, hogy egy külső forrásból (például adatbázisból) származó releváns információkkal bővíti ki az LLM-ek generálási képességeit. Ahelyett, hogy egy modell kizárólag az előzetesen betanított tudására támaszkodna, a RAG egy külső adatbázisba küld lekérdezéseket, majd a kapott információkat felhasználja a válasz generálásához.

Példa: Ha egy kérdést teszel fel az AI-nak, ahelyett, hogy az LLM a meglévő tudására alapozva próbálna válaszolni, először releváns adatokat keres a ChromaDB-ben. Ezeket az adatokat kontextusként használva hozza létre a végső választ, amely így nemcsak pontosabb, de alátámasztható is lesz.

Miért érdemes kombinálni az Ollama llama3.2-t a ChromaDB-vel?

Az Ollama llama3.2 egy erőteljes és sokoldalú nyelvi modell, amely kiváló szöveggenerálási képességekkel rendelkezik. Ugyanakkor, mint minden LLM, ez is csak azokkal az adatokkal tud dolgozni, amelyeket a betanítás során látott. A ChromaDB ezzel szemben egy hatékony szöveges adatbázis, amely képes gyorsan visszakeresni a releváns információkat.

A kettő kombinációja lehetővé teszi, hogy a llama3.2 olyan információkra is alapozzon, amelyek frissek, specifikusak és közvetlenül elérhetők az adatbázisban. Ez különösen hasznos lehet olyan helyzetekben, ahol pontosság és tényszerűség kiemelten fontos – például kutatási eszközöknél vagy kérdés-válasz rendszerekben.

Hogyan működik a RAG az Ollama és a ChromaDB segítségével?

  1. Adatok tárolása: A dokumentumokat metaadatokkal (pl. oldalszám, forrásazonosító) együtt tárolod a ChromaDB-ben.
  2. Lekérdezés: Amikor a felhasználó kérdést tesz fel, a ChromaDB-t lekérdezed, hogy megtaláld a legrelevánsabb információkat.
  3. Kontextus összeállítása: A ChromaDB által visszaküldött szövegdarabokat és metaadatokat előkészíted, hogy kontextust adj az LLM-nek.
  4. Válasz generálása: Az Ollama llama3.2 modell a kapott információk alapján generál választ.
  5. Metaadatok visszacsatolása: A válasz tartalmazza a releváns forrásokat és a metaadatokat (pl. oldalszámot vagy dokumentumazonosítót).

A RAG előnyei és felhasználási területei

A RAG megközelítés jelentősen javítja az AI által generált válaszok minőségét. A válaszok nemcsak relevánsabbak, hanem ellenőrizhetőek is, mivel konkrét forrásokra támaszkodnak. Ez különösen fontos az alábbi esetekben:

  • Kérdés-válasz rendszerek: Pontos és bizonyítékokkal alátámasztott válaszokat nyújt.
  • Kutatási eszközök: Gyors hozzáférést biztosít a releváns információkhoz.
  • Oktatási platformok: Valós idejű, naprakész válaszokat kínál diákoknak és tanároknak.

RAG implementálása Pythonban

1. A szükséges csomagok telepítése


pip install chromadb
pip install ollama

Először telepítsük a ChromaDB-t és az Ollama Python-csomagokat. Ezek felelnek a dokumentumok tárolásáért és a nyelvi modellel való kommunikációért. A pip parancs a Python csomagkezelője, amely segít az ilyen csomagok egyszerű telepítésében. Telepítés után ellenőrizzük a verziókat:



2. ChromaDB beállítása

A telepítések után lássuk a Python szkriptet. Elsőként inicializáljuk a ChromaDB-t, ami egy adatbázisként fog működni a dokumentumok számára. Az inicializáció során megadjuk, hogy hol és milyen formában tárolja az adatokat, például memóriában vagy fájlrendszerben. Ezután elmentjük a feldolgozandó dokumentumokat az adatbázisba, hogy később könnyen elérhetők legyenek.

3. ChromaDB lekérdezése

A ChromaDB-t használjuk a releváns dokumentumok kinyerésére. Ez azt jelenti, hogy egy lekérdezés alapján megkeressük azokat a dokumentumokat, amelyek a legjobban illeszkednek a kérdéshez. Ez a folyamat a ChromaDB beépített vektorkeresési algoritmusát használja, amely nagyon gyors és pontos eredményeket ad.

4. Adatok simítása

Mivel a ChromaDB eredményei listákban térnek vissza, ezeket laposabb struktúrába rendezzük, kisimítjuk. Ez segít abban, hogy a nyers adatokat könnyebben feldolgozhassuk a következő lépésben, például egy nyelvi modellnek való átadás során. Ez a folyamat általában a kapott adatok újraformázását és tisztítását jelenti.

5. A RAG folyamat összeállítása

A RAG (Retrieval-Augmented Generation) folyamatot az alábbi módon valósítjuk meg: először lekérdezzük a ChromaDB-ből a releváns dokumentumokat, majd ezeket a nyelvi modellhez továbbítjuk, hogy a dokumentumok alapján választ generáljunk. Ez a megközelítés biztosítja, hogy a modell pontos, kontextushoz illeszkedő válaszokat adjon, miközben a háttérben elérhető információkat is kihasználja.

6. A rendszer prompt meghatározása

A rendszer prompt biztosítja, hogy a válasz generálása kontextusban maradjon, és hivatkozzon a releváns forrásokra:

A teljes, működő Python kód

Következtetés

A Retrieval Augmented Generation (RAG) egy hatékony módszer az AI által generált tartalmak pontosabbá és relevánsabbá tételére. Az Ollama llama3.2 és a ChromaDB kombinációjával az AI nemcsak a kiadásáig betanított tudásra támaszkodik, hanem képes valós idejű, általunk validált, specifikus adatokból meríteni.

Ez a megközelítés különösen hasznos olyan helyzetekben, ahol fontos a tényszerű pontosság és az alátámasztott válaszok biztosítása. A RAG segítségével az AI-generált tartalmak jövője intelligensebb, relevánsabb és megbízhatóbb.

Older

LocalAI – ajánlott hardver az LLM-ek helyi futtatásához

Newer

LocalAI – aktuális árajánlat egy lokális AI munkaállomásra

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Shopping cart
Sign in

No account yet?

Create an Account
Product Categories
Follow:
Termékkategóriák