Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk azt ismerteti, hogy a nagy nyelvi modellek (LLM-ek) hogyan használhatnak fel további adatokat a jobb válaszok érdekében. Alapértelmezés szerint egy LLM csak a betanítás során tanultakat tudja. Valós idejű vagy privát adatokat is hozzáadhat, hogy hasznosabbá tegye azokat.
A további adatok hozzáadásának két fő módja van:
- Lekéréses kiegészítésű generáció (RAG):Szemantikai kereséssel és környezetfüggő előkereséssel hasznos információkat kereshet és adhat hozzá, mielőtt a modell választ ad. További információ a generatív AI-megoldások létrehozásának legfontosabb fogalmairól és szempontjairól.
- Finomhangolás: Az LLM-et egy kisebb, meghatározott adathalmazra edzi át, hogy az jobb legyen bizonyos feladatokban vagy témakörökben.
A következő szakaszok mindkét módszert lebontják.
A RAG ismertetése
A RAG lehetővé teszi a kulcs "csevegése az adataimon" forgatókönyvet. Ebben a forgatókönyvben a szervezet valószínűleg nagy mennyiségű szöveges tartalommal rendelkezik, például dokumentumokból, dokumentációból és egyéb védett adatokból. Ezt a korpuszt használja a felhasználói kérdésekre adott válaszok alapjául.
A RAG segítségével csevegőrobotokat vagy ügynököket hozhat létre, amelyek saját dokumentumai segítségével válaszolnak a kérdésekre. Így működik:
- A dokumentumok (vagy azok részei, úgynevezett adattömbök) tárolása egy adatbázisban
- Beágyazás létrehozása minden egyes adattömbhöz; az azt leíró számok listája
- Amikor valaki kérdést tesz fel, a rendszer hasonló adattömböket talál
- Válasz létrehozásához küldje el a megfelelő adattömböket és a kérdést az LLM-nek
Vektorizált dokumentumok indexének létrehozása
Első lépésként egy vektoradattárat kell létrehoznia. Ez az áruház tartalmazza az egyes dokumentumokhoz vagy adattömbökhöz tartozó beágyazásokat. Az alábbi ábra a dokumentumok vektorizált indexének létrehozásának fő lépéseit mutatja be.
Az ábrán egy adatfolyam látható. Ez a folyamat adatokat hoz létre, feldolgozza és kezeli a rendszer számára. Emellett előkészíti az adatokat a vektoradatbázisban való tároláshoz, és gondoskodik arról, hogy azok a megfelelő formátumban legyenek az LLM-hez.
A beágyazások vezetik az egész folyamatot. A beágyazás számokból áll, amelyek szavak, mondatok vagy dokumentumok jelentését jelölik, hogy a gépi tanulási modellek használhassák őket.
A beágyazás létrehozásának egyik módja, ha elküldi a tartalmat az Azure OpenAI Beágyazási API-nak. Az API egy vektort ad vissza – egy számlistát. Minden szám a tartalomról ír le valamit, például a témakörét, jelentését, nyelvhelyességét vagy stílusát.
- Témakör kérdése
- Szemantikai jelentés
- Szintaxis és nyelvhelyesség
- Szó- és kifejezéshasználat
- Környezetfüggő kapcsolatok
- Stílus vagy hangszín
Ezek a számok együttesen azt mutatják, hogy a tartalom hol helyezkedik el egy többdimenziós térben. Képzeljen el egy 3D gráfot, de több száz vagy több ezer dimenzióval. A számítógépek akkor is használhatják ezt a helyet, ha nem tudjuk megrajzolni.
Az Oktatóanyag: Az Azure OpenAI felfedezése a Microsoft Foundry-modellek beágyazásaiban és a dokumentumkeresésben útmutatót nyújt arról, hogyan hozhat létre beágyazásokat a dokumentumokhoz az Azure OpenAI Beágyazási API használatával.
A vektor és a tartalom tárolása
A következő lépés a vektor és a tartalom (vagy a tartalom helyére mutató mutató) és egyéb metaadatok tárolása egy vektoradatbázisban. A vektoradatbázis olyan, mint bármely más típusú adatbázis, de két fő különbséggel rendelkezik:
- A vektoradatbázisok vektort használnak indexként az adatok kereséséhez
- A vektoradatbázisok gyakran a legközelebbi szomszéd algoritmusokat használják, amelyek koszinuszos hasonlóságot alkalmazhatnak távolsági metrikaként a keresési feltételeknek leginkább megfelelő vektorok megkereséséhez
A vektoradatbázisban tárolt dokumentumok korpuszával a fejlesztők létrehozhatnak egy retriever-összetevőt a felhasználó lekérdezésének megfelelő dokumentumok lekéréséhez. A rendszer ezeket az adatokat arra használja, hogy megadja az LLM-nek azt, amire szüksége van a felhasználó lekérdezésének megválaszolásához.
Lekérdezések megválaszolása a dokumentumok használatával
A RAG-rendszer először szemantikai kereséssel keres olyan cikkeket, amelyek hasznosak lehetnek az LLM számára, amikor választ ad. A következő lépés a megfelelő cikkek és a felhasználó eredeti üzenetének elküldése az LLM-nek a válasz megírásához.
Az alábbi ábra egy egyszerű RAG-implementációt (más néven naiv RAG-t) ábrázol:
A diagramon egy felhasználó elküld egy lekérdezést. Először is a rendszer beágyazássá alakítja a felhasználó kérését. Ezután megkeresi a vektoradatbázist, hogy megkeresse a parancssorhoz leginkább hasonló dokumentumokat vagy adattömböket.
A koszinusz hasonlósága két vektor közelségét méri, ha megvizsgáljuk a köztük lévő szöget. Az 1-hez közeli érték azt jelenti, hogy a vektorok nagyon hasonlóak; A -1 közelében lévő érték azt jelenti, hogy nagyon különbözőek. Ez a módszer segít a rendszernek megtalálni a hasonló tartalmú dokumentumokat.
A legközelebbi szomszéd algoritmusok megkeresik az adott ponthoz legközelebb eső vektorokat. A k-legközelebbi szomszédok (KNN) algoritmus a legközelebbi k legközelebbi egyezéseket keresi. Az olyan rendszerek, mint a javaslatmotorok, gyakran KNN-t és koszin hasonlóságot használnak, hogy megtalálják a felhasználó igényeinek leginkább megfelelő egyezéseket.
A keresés után küldje el a legjobban megfelelő tartalmat és a felhasználó kérését az LLM-nek, hogy relevánsabb választ generáljon.
Kihívások és szempontok
A RAG-rendszernek megvannak a maga kihívásai:
- Adatvédelem: A felhasználói adatok felelősségteljes kezelése, különösen külső forrásokból származó adatok beolvasása vagy feldolgozása során.
- Számítási követelmények: A lekérési és a létrehozási lépésektől is elvárható, hogy jelentős számítási erőforrásokat használjon.
- Pontosság és relevancia: Összpontosítson a pontos, releváns válaszok biztosítására, és figyelje az adatok vagy modellek torzítását.
A fejlesztőknek foglalkozniuk kell ezekkel a kihívásokkal a hatékony, etikus és értékes RAG-rendszerek létrehozásához.
Az éles üzemre kész RAG-rendszerek készítéséről további információt a fejlett lekéréses-bővített generációs rendszerek létrehozása című témakörben talál.
Szeretne generatív AI-megoldást létrehozni? Első lépésként kezdje el a csevegést a Pythonhoz készült saját adatmintával. Az oktatóanyagok a .NET, a Java és a JavaScript esetében is elérhetők.
Modell finomhangolása
A finomhangolás egy kisebb, tartományspecifikus adathalmazon újratanít egy LLM-et, miután betanítást végzett egy nagy, általános adatkészleten.
Az előzetes betanítás során az LLM-ek a széles körű adatokból tanulják meg a nyelvi struktúrát, a kontextust és az általános mintákat. A finomhangolás új, szűrt adatokkal tanítja meg a modellt, hogy jobban teljesíthesse az adott feladatokat vagy témaköröket. Mint megtudjuk, a modell frissíti a súlyokat az új adatok részleteinek kezelése érdekében.
A finomhangolás főbb előnyei
- Specializáció: A finomhangolás segít a modellnek jobban elvégezni bizonyos feladatokat, például jogi vagy orvosi dokumentumok elemzését vagy az ügyfélszolgálat kezelését.
- Hatékonyság: A finomhangolás kevesebb adatot és kevesebb erőforrást használ, mint egy modell alapoktól való betanítása.
- Alkalmazkodóképesség: A finomhangolás lehetővé teszi, hogy a modell megtanulja az eredeti betanításban nem szereplő új feladatokat vagy tartományokat.
- Jobb teljesítmény: A finomhangolás segít a modellnek megérteni egy új tartomány nyelvét, stílusát vagy terminológiáját.
- Személyre szabás: A finomhangolással a modell válaszai igazodhatnak a felhasználó vagy szervezet igényeihez vagy preferenciáihoz.
Korlátozások és kihívások
A finomhangolásnak is vannak kihívásai:
- Adatkövetelmény: Nagy, kiváló minőségű adatkészletre van szüksége az adott feladathoz vagy tartományhoz.
- Túlillesztés kockázata: Kis adatkészlet esetén a modell jól teljesít a betanítási adatokon, de az új adatokon rosszul.
- Költségek és erőforrások: A finomhangoláshoz továbbra is számítási teljesítményre van szükség, különösen nagy modellek vagy adathalmazok esetében.
- Karbantartás és frissítés: A tartomány változásakor frissítenie kell a finomhangolt modelleket.
- Modelleltolódás: Egy adott tevékenység finomhangolása hatékonyabbá teheti a modellt az általános nyelvi feladatoknál.
Modell testreszabása finomhangolással bemutatja, hogyan finomhangolhat egy modellt.
Finomhangolás vs. RAG
A finomhangolás és a RAG egyaránt segít az LLM-eknek a jobb munkában, de mindegyik különböző igényeknek felel meg. Válassza ki a megfelelő megközelítést a célok, az adatok és a számítás alapján, valamint attól függően, hogy a modell specializálni szeretné-e vagy általános maradjon.
Mikor érdemes finomhangolást választani?
- Feladatspecifikus teljesítmény: Finomhangolást választhat, ha egy adott tevékenységhez a legjobb eredményekre van szüksége, és elegendő tartományadatokkal rendelkezik a túlillesztés elkerülése érdekében.
- Adatok vezérlése: Finomhangolást használhat, ha olyan egyedi vagy védett adatokkal rendelkezik, amelyek nagyon eltérnek az alapmodell előtanításától.
- Stabil tartalom: Finomhangolást választhat, ha a feladatnak nincs szüksége állandó frissítésekre a legújabb információkkal.
Mikor válassza a RAG-t?
- Dinamikus vagy változó tartalom: Akkor használja a RAG-ot, ha a legfrissebb információkra van szüksége, például hírekhez vagy legutóbbi eseményekhez.
- Széles témakörlefedettség: Válassza a RAG-t, ha erős eredményeket szeretne elérni számos témában, nem csak egy területen.
- Korlátozott erőforrások: Ha nincs sok adata vagy számítása a betanításhoz, használja a RAG-t, és az alapmodell már jó munkát végez.
Végső gondolatok az alkalmazástervezéshez
Az alkalmazás igényeinek megfelelően döntsön a finomhangolás és a RAG között. A finomhangolás a speciális feladatokhoz a legjobb, míg a RAG rugalmasságot és up-to-date tartalmat biztosít a dinamikus forgatókönyvekhez.