Megosztás a következőn keresztül:


RAG-megoldás tervezése és fejlesztése

A Retrieval-Augmented generációs (RAG) minta iparági szabványnak megfelelő módszer az olyan alkalmazások létrehozására, amelyek nyelvi modellekkel dolgoznak fel olyan konkrét vagy védett adatokat, amelyeket a modell még nem ismer. Az architektúra egyszerű, de az architektúrához illeszkedő RAG-megoldások tervezése, kísérletezése és értékelése számos összetett szempontot foglal magában, amelyek a szigorú, tudományos megközelítés előnyeit élvezik.

Ez a cikk egy sorozat bevezetője. A sorozat minden cikke a RAG-megoldások tervezésének egy adott fázisát ismerteti.

A sorozat további cikkei a következő szempontokat ismertetik:

  • A kiértékelés során használandó tesztdokumentumok és lekérdezések meghatározása
  • Részstratégia kiválasztása
  • Hogyan állapítható meg, hogy mely adattömböket kell gazdagítani, és hogyan gazdagíthatja őket
  • A megfelelő beágyazási modell kiválasztása
  • A keresési index konfigurálása
  • Hogyan állapíthatja meg, hogy mely keresések ( például vektor, teljes szöveg, hibrid és manuális több keresés) elvégzésére van szükség
  • Az egyes lépések kiértékelése

RAG-architektúra

Egy RAG-megoldás magas szintű architektúráját bemutató ábra, beleértve a kérelemfolyamatot és az adatfolyamot.

RAG-alkalmazásfolyamat

Az alábbi munkafolyamat egy RAG-alkalmazás magas szintű folyamatát ismerteti.

  1. A felhasználó lekérdezést ad ki egy intelligens alkalmazás felhasználói felületén.
  2. Az intelligens alkalmazás API-hívást indít egy orkesztrátorhoz. A vezénylőt olyan eszközökkel vagy platformokkal implementálhatja, mint a Szemantic Kernel, az Azure AI Agent szolgáltatás vagy a LangChain.
  3. A vezénylő határozza meg, hogy melyik keresést végezze el az Azure AI Search szolgáltatásban, és kiadja a lekérdezést.
  4. Az orchestrator a lekérdezés N legjobb eredményeit csomagolja be. A rendszer a legfontosabb eredményeket és a lekérdezést kontextusként csomagolja be egy parancssorba, és elküldi a kérést a nyelvi modellnek. A vezénylő visszaadja a választ az intelligens alkalmazásnak, hogy a felhasználó elolvashassa.

RAG-adatkezelési folyamat

Az alábbi munkafolyamat egy magas szintű folyamatot ír le egy olyan adatfolyamhoz, amely földelési adatokat szolgáltat egy RAG-alkalmazáshoz.

  1. A dokumentumok adatfolyamatba kerülnek, akár leküldve, akár behúzva.
  2. Az adatfolyam az alábbi lépések végrehajtásával egyenként dolgozza fel az egyes dokumentumokat:
    1. Darabos dokumentum: A dokumentumot szemantikailag releváns részekre bontja, amelyek ideális esetben egyetlen ötlettel vagy koncepcióval rendelkeznek.
    2. Adattömbök bővítése: Metaadatmezőket ad hozzá, amelyeket a folyamat az adattömbök tartalma alapján hoz létre. Az adatfolyam különálló mezőkbe kategorizálja a metaadatokat, például a címet, az összegzést és a kulcsszavakat.
    3. Adattömbök beágyazása: Beágyazási modell használatával vektorizálja az adattömböket és a vektorkeresésekhez használt egyéb metaadatmezőket.
    4. Adattömbök megőrzése: Az adattömböket a keresési indexben tárolja.

A RAG tervezési és értékelési szempontjai

A RAG-megoldás tervezése során különböző megvalósítási döntéseket kell meghoznia. Az alábbi ábra néhány kérdést mutat be, amelyeket fel kell tennie a döntések meghozatalakor.

A RAG-megoldások magas szintű architektúráját bemutató ábra, beleértve a megoldás tervezése során felteendő kérdéseket is.

Az alábbi lista rövid leírást nyújt arról, hogy mit kell tennie a RAG-megoldások fejlesztésének egyes fázisai során.

  • Az előkészítési fázisban a következőt kell használnia:

    • Határozza meg a megoldástartományt. Egyértelműen határozza meg a RAG-megoldás üzleti követelményeit.
    • Reprezentatív tesztdokumentumok összegyűjtése. Gyűjtsön olyan tesztdokumentumokat a RAG-megoldáshoz, amelyek a dokumentumgyűjteményre jellemzőek.
    • Teszt lekérdezések gyűjtése. Információkat gyűjthet és tesztelhet lekérdezéseket, és olyan szintetikus lekérdezéseket és lekérdezéseket hozhat létre, amelyeket a dokumentumok nem fednek le.
  • Az adattömbkészítési fázis során a következőt kell tenni:

    • A csoportosítás gazdaságtanának megismerése. Ismerje meg, hogy milyen tényezőket érdemes figyelembe venni, amikor kiértékeli az adattömbkezelési megoldás teljes költségét a szöveggyűjteményhez.
    • Dokumentumelemzés végrehajtása. A dokumentumtípus elemzésekor az alábbi kérdések segítenek a döntéshozatalban:
      • Milyen tartalmat szeretne figyelmen kívül hagyni vagy kizárni a dokumentumban?
      • Milyen tartalmat szeretne adattömbökben rögzíteni?
      • Hogyan szeretné darabolni ezt a tartalmat?
    • Értsd meg a darabolás megközelítéseit. Megismerheti az adattömbök különböző megközelítéseit, beleértve a mondatalapú, a rögzített méretű és az egyéni megközelítéseket, vagy a nyelvi modellek kibővítésével, a dokumentumelrendezés elemzésével és a gépi tanulási modellekkel.
    • Ismerje meg, hogyan befolyásolja a dokumentumstruktúra az adattömb-készítést. A dokumentum struktúrájának foka alapján válasszon egy adattömbölési módszert.
  • Az adattömb-bővítési fázis során a következőt kell tenni:

    • Tiszta szeletek. Olyan tisztítási módszerek implementálása, amelyek kiküszöbölik a szöveg jelentését nem befolyásoló különbségeket. Ez a módszer támogatja a közelségi egyezéseket.
    • Bővítse az adattömböket. Fontolja meg az adattömb adatainak közös metaadatmezőkkel való bővítését, és ismerje meg a keresési lehetőségeket. Megismerheti a metaadat-tartalom előállításához gyakran használt eszközöket vagy technikákat.
  • A beágyazási fázisban a következőt kell tenni:

    • Ismerje meg a beágyazási modell fontosságát. A beágyazási modell jelentősen befolyásolhatja a vektorkeresési eredmények relevanciáját.
    • Válassza ki a megfelelő beágyazási modellt a használati esethez.
    • A beágyazási modellek kiértékelése. A beágyazási modellek kiértékelése a beágyazások vizualizálásával és a beágyazási távolságok kiszámításával.
  • Az információlekérési fázis során a következőt kell tenni:

    • Keresési index létrehozása. Alkalmazza a megfelelő vektorkeresési konfigurációkat a vektormezőkre.
    • A keresési lehetőségek ismertetése. Vegye figyelembe a különböző típusú kereséseket, beleértve a vektort, a teljes szöveges, a hibrid és a manuális több keresést. Megtudhatja, hogyan oszthat fel lekérdezéseket al lekérdezésekre, és hogyan szűrheti a lekérdezéseket.
    • Keresési eredmények kiértékelése. A keresési megoldás kiértékeléséhez használjon lekéréses kiértékelési módszereket.
  • A nyelvi modell végpontok közötti kiértékelési fázisában a következőt kell használnia:

    • A nyelvi modell kiértékelési metrikáinak ismertetése. A nyelvi modell válaszának kiértékeléséhez számos metrikát használhat, többek között a megalapozottságot, a teljességet, a kihasználtságot és a relevanciát.
    • A hasonlóság és a kiértékelési metrikák megismerése. A RAG-megoldás kiértékeléséhez használhat hasonlósági és kiértékelési metrikákat.
    • Ismerje meg a dokumentáció, a jelentéskészítés és az összesítés fontosságát. Dokumentálja a hiperparamétereket és a kiértékelési eredményeket. Összesítse a több lekérdezés eredményeit, és vizualizálja az eredményeket.
    • Használja a RAG kísérletgyorsítót. A RAG kísérletgyorsító GitHub-adattárát használva a csapat a RAG-implementáció legjobb stratégiáinak megtalálásában segíthet, több kísérlet futtatásával, az eredmények mentésével és kiértékelésével.

Strukturált megközelítés

A lépések és változók száma miatt fontos, hogy a RAG-megoldás strukturált kiértékelési folyamatát kövesse. Értékelje ki az egyes lépések eredményeit, és módosítsa a követelményeket. Minden lépést függetlenül kell kiértékelnie az optimalizálás érdekében, de ne feledje, hogy a végeredmény az, amit az ügyfelek tapasztalnak. Mielőtt saját elfogadási feltételeket határoz meg az egyes lépésekhez, győződjön meg arról, hogy tisztában van a folyamat összes lépésével.

Közreműködők

Ezt a cikket a Microsoft tartja karban. Eredetileg a következő közreműködők írták.

Fő szerzők:

A nem nyilvános LinkedIn-profilok megtekintéséhez jelentkezzen be a LinkedInbe.

Következő lépések