RAG: Kérdésválaszolás a tartományi tudáson szemantikus kereséssel és generatív AI-vel

A szakterületi tudáson (például belső dokumentáció, szerződések, könyvek stb.) alapuló kérdések megválaszolása kihívást jelent. Ebben a cikkben a Retrieval-Augmented Generation (RAG) nevű fejlett technikát vizsgáljuk, hogy ezt nagy pontossággal elérjük, a szemantikus keresést és a szöveggenerálást olyan modellekkel vegyítve, mint a ChatDolphin, LLaMA, ChatGPT, GPT-4....

Kérdések megválaszolása

A tartományi ismeretekre vonatkozó kérdések megválaszolásának kihívásai

A tartományi ismereteken alapuló kérdésválaszoláshoz először valamilyen kontextust kell küldeni a mesterséges intelligencia modellnek, majd feltenni egy kérdést ezzel kapcsolatban.

Például elküldheti a következő kontextust:

All NLP Cloud plans can be stopped anytime. You only pay for the time you used the service. In case of a downgrade, you will get a discount on your next invoice.

Most talán felteheted a következő kérdést:

When can plans be stopped?

A mesterséges intelligencia valami ilyesmit válaszolna:

Anytime

További részletekért lásd a kérdésválaszolásról szóló dokumentációnkat. itt.

A probléma ezzel a megközelítéssel az, hogy a kontextus mérete (azaz a beírt szöveg mérete) korlátozott. Így nem küldheti el a teljes tartományi tudását kontextusként.

Tegyük fel, hogy egy olyan támogatási chatbotot szeretne létrehozni, amely mindent tud a termékdokumentációjáról, így a végfelhasználók bármilyen termékkel kapcsolatos kérdést feltehetnek a chatbotnak anélkül, hogy valódi támogatási ügynökkel kellene kapcsolatba lépniük. Valószínűleg a dokumentációja több száz vagy ezer szóból, esetleg több millió szóból áll...

Vizsgáljuk meg, hogyan lehet leküzdeni ezt a korlátozást, és hogyan lehet nagyon nagy dokumentumokon kérdésválaszolást végezni.

Szemantikus keresés VS Generatív AI

A kérdések megválaszolásához 2 féle technológia használható. Szöveggenerálás (generatív AI) és szemantikus keresés.

Az első, a szöveggenerálás, alapvetően az, amit fentebb mutattam. Általában egy fejlett szöveggeneráló modellre van szükség, mint például a ChatDolphin, LLaMA, ChatGPT, GPT-4... Képes megérteni egy emberi kérdést, és úgy válaszolni, mint egy ember. Nagyméretű dokumentumokon azonban nem működik. Egy generatív AI-modell finomhangolása az Ön szakterületi ismereteivel nem működne jól, mivel a finomhangolás nem jó technika a modellhez való tudás hozzáadására.

A szemantikus keresés alapvetően arról szól, hogy ugyanúgy keresünk egy dokumentumban, mint a Google, de a saját domain tudásunk alapján.

Ehhez a belső dokumentumokat vektorokká (más néven "beágyazásokká") kell alakítania. Ezután a kérdését is vektorba kell konvertálnia, majd vektoros keresést (más néven "szemantikus hasonlóságot") kell végeznie, hogy a domain-ismeretének a kérdéséhez legközelebb álló részét megtalálja.

Az első megoldás az, hogy a beágyazásokat egy dedikált vektoradatbázisban, például a PG Vectorban tároljuk. Egy másik megoldás a saját szemantikus keresési modell kódolása a saját domain tudásoddal, és telepítése GPU-n (ezt a megoldást javasoljuk az NLP Cloudnál, mivel ez kínálja a legjobb válaszidőt). Ezután, amint elkészült a vektoros adatbázis, vagy amint elkészült a modellje, természetes nyelven kérdéseket tehet fel, és a mesterséges intelligencia modellje visszaadja a domain tudásnak azt a kivonatát, amely a legjobban válaszol a kérdésre.

A szemantikus keresés általában nagyon gyors és viszonylag olcsó. Megbízhatóbb is, mint a szöveggenerálás finomhangolási stratégiája, így nem fogunk AI hallucinációs problémával szembesülni. De nem képes megfelelően "megválaszolni" egy kérdést. Egyszerűen csak visszaad egy olyan szövegrészt, amely tartalmazza a kérdésre adott választ. Ezután a felhasználó feladata, hogy elolvassa a teljes szövegrészt, hogy megtalálja a kérdésére adott választ.

További részletekért lásd a szemantikus keresésről szóló dokumentációnkat. itt.

Jó hír, hogy a szemantikus keresés és a generatív mesterséges intelligencia kombinálása is lehetséges a fejlett eredmények elérése érdekében!

Kérdésválaszolás a szemantikus keresés és a generatív mesterséges intelligencia keverése

Az NLP Cloudnál a domain tudással kapcsolatos kérdések megválaszolásához a következő stratégiát részesítjük előnyben: először szemantikus kereséssel kérdezzük meg, hogy megtaláljuk a kérdésre legjobban válaszoló erőforrásokat, majd szöveggenerálással válaszoljuk meg a kérdést ezen erőforrások alapján, mint egy ember.

Tegyük fel, hogy HP nyomtatók viszonteladói vagyunk, és a weboldalunkon szeretnénk válaszolni ügyfeleink kérdéseire.

Először is ki kell számolnunk a beágyazásokat, és egy vektoros adatbázisban kell tárolnunk őket, vagy saját szemantikus keresési modellt kell létrehoznunk. Itt csak 3 példából fog állni, de a való életben akár 1 millió példát is felvehetünk, ha szemantikus keresést használunk az NLP Cloudon. Egyszerűen létrehozunk egy CSV fájlt, és beletesszük a következőket:

HP® LaserJets have unmatched printing speed, performance and reliability that you can trust. Enjoy Low Prices and Free Shipping when you buy now online.
Every HP printer comes with at least a one-year HP commercial warranty (or HP Limited Warranty). Some models automatically benefit from a three-year warranty, which is the case of the HP Color LaserJet Plus, the HP Color LaserJet Pro, and the HP Color LaserJet Expert.
HP LaserJet ; Lowest cost per page on mono laser printing. · $319.99 ; Wireless options available. · $109.00 ; Essential management features. · $209.00.

Ezután feltöltjük a CSV-adatkészletünket az NLP Cloudba, és a "Create model" (Modell létrehozása) gombra kattintunk. Egy idő után elkészül a saját szemantikus keresési modellünk, amely tartalmazza a saját domain tudásunkat, és kapunk egy privát API URL-t a használatához.

Tegyünk fel egy kérdést a vadonatúj modellünknek az NLP Cloud Python kliens segítségével:

import nlpcloud

# We use a fake model name and a fake API key for illustration reasons.
client = nlpcloud.Client("custom-model/5d8e6s8w5", "poigre5754gaefdsf5486gdsa56", gpu=True)
client.semantic_search("How long is the warranty on the HP Color LaserJet Pro?")

A modell rövid válaszidővel gyorsan visszaadja a következőket:

{
"search_results": [
    {
        "score": 0.99,
        "text": "Every HP printer comes with at least a one-year HP commercial warranty (or HP Limited Warranty). Some models automatically benefit from a three-year warranty, which is the case of the HP Color LaserJet Plus, the HP Color LaserJet Pro, and the HP Color LaserJet Expert."
    },
    {
        "score": 0.74,
        "text": "All consumer PCs and printers come with a standard one-year warranty. Care packs provide an enhanced level of support and/or an extended period of coverage for your HP hardware. All commercial PCs and printers come with either a one-year or three-year warranty."
    },
    {
        "score": 0.68,
        "text": "In-warranty plan · Available in 2-, 3-, or 4-year extension plans · Includes remote problem diagnosis support and Next Business Day Exchange Service."
    },
    ]
}

Most a legmagasabb pontszámmal rendelkező választ keressük meg (tökéletesen több választ is meg tudunk keresni): "Every HP printer comes with at least a one-year HP commercial warranty (or HP Limited Warranty). Some models automatically benefit from a three-year warranty, which is the case of the HP Color LaserJet Plus, the HP Color LaserJet Pro, and the HP Color LaserJet Expert."

Ez a válasz helyes, de nem túl felhasználóbarát, mivel a felhasználónak elég hosszú szöveget kell elolvasnia ahhoz, hogy megkapja a választ. Ezért most újra feltesszük ugyanazt a kérdést a kérdésválaszoló végpontunknak, a ChatDolphin modellt használva. A szemantikus keresési választ fogjuk használni kontextusként:

import nlpcloud

client = nlpcloud.Client("chatdolphin", "poigre5754gaefdsf5486gdsa56", gpu=True)
client.question(
    """How long is the warranty on the HP Color LaserJet Pro?""",
    context="""Every HP printer comes with at least a one-year HP commercial warranty (or HP Limited Warranty). Some models automatically benefit from a three-year warranty, which is the case of the HP Color LaserJet Plus, the HP Color LaserJet Pro, and the HP Color LaserJet Expert."""
)

A következő választ adja vissza:

{
    "answer": "The warranty lasts for three years."
}

Elég jó, nem?

Következtetés

A generatív mesterséges intelligencia modellek, mint a ChatDolphin, LLaMA, ChatGPT, GPT-4, stb. terén a közelmúltban elért eredmények ellenére a korlátozott kérésméret lehetetlenné teszi, hogy ezeket a nagyszerű modelleket specifikus domain tudáson alapuló kérdésválaszolásra használjuk. Ezeknek a modelleknek a finomhangolása sajnos nem működik jól egy ilyen felhasználási esetben...

Jó stratégia a RAG-rendszer bevezetése. Először válaszoljon a kérdésre úgy, hogy a dokumentumokat beágyazásokká alakítja és egy vektoros adatbázisban tárolja, vagy a dokumentumokból saját szemantikus keresési modellt hoz létre, majd egy generatív AI-n alapuló, rendszeres kérdésválaszoló modellt használ, hogy emberi választ adjon vissza az eredeti kérdésre.

Ha ezt a stratégiát szeretné megvalósítani, ne habozzon, és hozza létre saját szemantikus keresési modelljét az NLP Cloudon: lásd a kapcsolódó dokumentációt itt!

Mark
Alkalmazási mérnök az NLP Cloudnál