Võitlevad tehisintellekti või täieliku arendusega? Meie eksperdid on siin, et teid juhendada: kohandatud nõuanded, tehniline integratsioon ja palju muud. Võtke ühendust aadressil [email protected].

RAG: Küsimuste vastamine valdkonnateadmistel koos semantilise otsingu ja genereeriva tehisintellekti abil

Valdkonnateadmistel (nt sisemine dokumentatsioon, lepingud, raamatud jne) põhinevatele küsimustele vastamine on keeruline. Selles artiklis uurime täiustatud tehnikat nimega Retrieval-Augmented Generation (RAG), et saavutada see suure täpsusega, segades semantilist otsingut ja tekstigenereerimist selliste mudelitega nagu ChatDolphin, LLaMA, ChatGPT, GPT-4...

Küsimustele vastamine

Väljakutsed küsimustele vastamise kohta domeeniteadmiste kohta

Valdkonnateadmistel põhinev küsimustele vastamine eeldab, et saadate esmalt tehisintellekti mudelile mingi konteksti ja seejärel esitate selle kohta küsimuse.

Näiteks võite saata järgmise konteksti:

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.

Nüüd võiksite esitada järgmise küsimuse:

When can plans be stopped?

Tehisintellekt vastab umbes nii:

Anytime

Lisateavet leiate meie dokumentatsioonist küsimustele vastamise kohta. siin.

Selle lähenemisviisi probleemiks on see, et teie konteksti suurus (st sisestatava teksti suurus) on piiratud. Seega ei saa te kogu oma domeeniteadmisi kontekstina saata.

Oletame, et soovite luua tugišatroboti, mis teab kõike teie toote dokumentatsiooni kohta, nii et lõppkasutajad saavad esitada chatbotile mis tahes tootega seotud küsimuse ilma reaalse tugiagendiga ühendust võtmata. Tõenäoliselt koosneb teie dokumentatsioon mitmest sajast või tuhandest sõnast või isegi miljonist sõnast...

Uurime, kuidas seda piirangut ületada ja kuidas vastata küsimustele väga suurte dokumentide puhul.

Semantiline otsing VS Generatiivne AI

Küsimustele vastamisel saab kasutada 2 liiki tehnoloogiat. Teksti genereerimine (genereeriv tehisintellekt) ja semantiline otsing.

Esimene, teksti genereerimine, on põhimõtteliselt see, mida ma just eespool näitasin. Selleks on tavaliselt vaja täiustatud tekstigenereerimise mudelit nagu ChatDolphin, LLaMA, ChatGPT, GPT-4... See on võimeline mõistma inimese küsimust ja ka vastama nagu inimene. Siiski ei tööta see suurte dokumentide puhul. Genereeriva tehisintellekti mudeli peenhäälestamine oma valdkondlike teadmistega ei toimiks hästi, kuna peenhäälestamine ei ole hea tehnika mudelile teadmiste lisamiseks.

Semantiline otsing tähendab põhimõtteliselt seda, et dokumenti otsitakse samamoodi nagu Google'i puhul, kuid lähtudes oma valdkonna teadmistest.

Selleks tuleb teie sisesed dokumendid teisendada vektoriteks (mida nimetatakse ka "embedding'iks"). Seejärel tuleb teisendada ka teie küsimus vektoriks ja seejärel teostada vektorotsing (mida nimetatakse ka "semantiliseks sarnasuseks"), et leida oma domeeniteadmiste osa, mis on teie küsimusele kõige lähemal.

Esimene lahendus on salvestada oma embeddingud spetsiaalsesse vektorandmebaasi nagu PG Vector. Teine lahendus on kodeerida oma semantiline otsingumudel oma valdkonna teadmistega ja kasutada seda GPUs (see on lahendus, mida me NLP Cloudis pakume, sest see pakub parimat reageerimisaega). Seejärel, kui teil on oma vektorandmebaas valmis või kui teie mudel on loodud, saate esitada küsimusi loomulikus keeles ja teie tehisintellekti mudel tagastab teie valdkondlike teadmiste väljavõtte, mis vastab teie küsimusele kõige paremini.

Semantiline otsing on tavaliselt väga kiire ja suhteliselt odav. Samuti on see usaldusväärsem kui teksti genereerimise peenhäälestusstrateegia, nii et te ei puutu kokku AI hallutsemise probleemiga. Kuid see ei suuda küsimusele korralikult "vastata". See lihtsalt tagastab tekstiosa, mis sisaldab vastust teie küsimusele. Seejärel on kasutaja ülesanne lugeda kogu tekstiosa, et leida vastus oma küsimusele.

Lisateavet leiate meie dokumentatsioonist semantilise otsingu kohta. siin.

Hea uudis on see, et on võimalik kombineerida nii semantilist otsingut kui ka genereerivat tehisintellekti, et saavutada täiustatud tulemusi!

Küsimustele vastamine segades semantilist otsingut ja genereerivat tehisintellekti

Valdkonnateadmistega seotud küsimustele vastamiseks eelistame NLP Cloudis järgmist strateegiat: esitame kõigepealt taotluse semantilise otsinguga, et leida ressursid, mis vastavad teie küsimusele kõige paremini, ja seejärel kasutame tekstigenereerimist, et vastata küsimusele nende ressursside põhjal nagu inimene.

Oletame, et oleme HP printerite edasimüüja ja soovime oma veebilehel vastata oma klientide küsimustele.

Kõigepealt peame arvutama embedding'id ja salvestama need vektorandmebaasi või looma oma semantilise otsingumudeli. Siin tehakse see ainult 3 näite, kuid tegelikkuses võib NLP Cloudi semantilise otsingu kasutamisel kaasata kuni 1 miljon näidet. Me lihtsalt loome CSV-faili ja paneme sinna sisse järgmise:

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.

Seejärel laadime oma CSV-andmekogumi üles NLP Cloudi ja vajutame "Create model". Mõne aja pärast on meie oma semantiline otsingumudel, mis sisaldab meie enda valdkonnateadmisi, valmis ja me saame selle kasutamiseks privaatse API URLi.

Esitame küsimuse meie uuele mudelile, kasutades NLP Cloud Pythoni klienti:

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?")

Mudel tagastab kiiresti ja lühikese reageerimisaja jooksul järgmised andmed:

{
"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."
    },
    ]
}

Nüüd otsime välja vastuse, millel on kõige suurem skoor (me võiksime suurepäraselt välja otsida ka mitu vastust): "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."

See vastus on õige, kuid see ei ole väga kasutajasõbralik, sest kasutaja peab vastuse saamiseks lugema üsna pikka teksti. Nii et nüüd esitame sama küsimuse uuesti meie küsimusele vastamise lõpp-punktile, kasutades ChatDolphini mudelit. Kasutame kontekstina semantilise otsingu vastust:

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."""
)

See annab järgmise vastuse:

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

Päris hea, kas pole?

Kokkuvõte

Vaatamata hiljutistele edusammudele, mis on tehtud geneerivate tehisintellekti mudelite nagu ChatDolphin, LLaMA, ChatGPT, GPT-4 jne puhul, muudab piiratud päringu suurus võimatuks nende suurte mudelite kasutamise konkreetsete valdkondlike teadmiste kohta küsimustele vastamiseks. Nende mudelite peenhäälestamine ei tööta kahjuks hästi sellise kasutusjuhtumi puhul...

Hea strateegia on rakendada RAG-süsteemi. Esmalt vastake oma küsimusele, teisendades dokumendid embedding'iks ja salvestades need vektorandmebaasi või luues dokumentidest oma semantilise otsingumudeli, ning seejärel kasutage tavapärase küsimuse vastamise mudelit, mis põhineb generatiivsel AI-l, et anda algsele küsimusele inimlik vastus.

Kui soovite seda strateegiat rakendada, ärge kartke luua oma semantilise otsingu mudelit NLP Cloudis: vt sellega seotud dokumentatsiooni siin!

Mark
NLP Cloud rakendusinsener