Nagyméretű nyelvi modellek bővítése lekéréses kiegészítéssel vagy finomhangolással

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:

  1. A dokumentumok (vagy azok részei, úgynevezett adattömbök) tárolása egy adatbázisban
  2. Beágyazás létrehozása minden egyes adattömbhöz; az azt leíró számok listája
  3. Amikor valaki kérdést tesz fel, a rendszer hasonló adattömböket talál
  4. 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.

RAG-alapú csevegőrendszerben a dokumentumbetöltés különböző szakaszait ábrázoló diagram.

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:

egyszerű RAG-folyamatot ábrázoló diagram.

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.