Grūtības ar mākslīgā intelekta vai pilnas paketes izstrādi? Mūsu eksperti ir gatavi jums palīdzēt: individuāli pielāgoti padomi, tehniskā integrācija un daudz kas cits. Sazinieties ar [email protected].

RAG: jautājumu atbildēšana par domēna zināšanām, izmantojot semantisko meklēšanu un ģeneratīvo mākslīgo intelektu

Atbildēt uz jautājumiem, pamatojoties uz zināšanām par domēnu (piemēram, iekšējo dokumentāciju, līgumiem, grāmatām utt.), ir sarežģīti. Šajā rakstā mēs pētām modernu metodi, ko sauc par Retrieval-Augmented Generation (RAG), lai to sasniegtu ar lielu precizitāti, apvienojot semantisko meklēšanu un teksta ģenerēšanu ar tādiem modeļiem kā ChatDolphin, LLaMA, ChatGPT, GPT-4...

Atbildes uz jautājumiem

Izaicinājumi, atbildot uz jautājumiem par domēna zināšanām

Lai atbildētu uz jautājumiem, izmantojot zināšanas par domēnu, vispirms mākslīgā intelekta modelim jānosūta kāds konteksts un pēc tam jāuzdod jautājums par to.

Piemēram, varat nosūtīt šādu kontekstu:

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.

Tagad jūs varētu uzdot šādu jautājumu:

When can plans be stopped?

Mākslīgais intelekts atbildētu apmēram šādi:

Anytime

Lai iegūtu sīkāku informāciju, skatiet mūsu dokumentāciju par jautājumu atbildēšanu. šeit.

Šīs pieejas problēma ir tā, ka jūsu konteksta lielums (t. i., ievades teksta lielums) ir ierobežots. Tāpēc jūs nevarat nosūtīt visas savas zināšanas par domēnu kā kontekstu.

Pieņemsim, ka vēlaties izveidot atbalsta tērzēšanas robotu, kas zina visu par jūsu produkta dokumentāciju, lai galalietotāji varētu uzdot tērzēšanas robotam jebkuru ar produktu saistītu jautājumu, nesazinoties ar īstu atbalsta aģentu. Visticamāk, jūsu dokumentāciju veidos vairāki simti vai tūkstošiem vārdu vai pat miljoniem vārdu...

Izpētīsim, kā pārvarēt šo ierobežojumu un veikt jautājumu atbildēšanu ļoti lielos dokumentos.

Semantiskā meklēšana VS ģeneratīvais mākslīgais intelekts

Atbildot uz jautājumiem, var izmantot 2 veidu tehnoloģijas. Teksta ģenerēšana (ģeneratīvais mākslīgais intelekts) un semantiskā meklēšana.

Pirmais, teksta ģenerēšana, būtībā ir tas, ko tikko parādīju iepriekš. Parasti ir nepieciešams uzlabots teksta ģenerēšanas modelis, piemēram, ChatDolphin, LLaMA, ChatGPT, GPT-4... Tas spēj saprast cilvēka jautājumu un atbildēt kā cilvēks. Tomēr tas nedarbojas ar lieliem dokumentiem. Ģeneratīvā mākslīgā intelekta modeļa precīza pielāgošana, izmantojot savas zināšanas par domēnu, nedarbotos labi, jo precīza pielāgošana nav laba metode, lai modelim pievienotu zināšanas.

Semantiskā meklēšana būtībā ir tāda pati dokumentu meklēšana kā Google, taču, pamatojoties uz jūsu domēna zināšanām.

Lai to panāktu, iekšējie dokumenti ir jāpārvērš vektoros (pazīstami arī kā "iestrādnes"). Pēc tam arī jūsu jautājums jāpārveido vektorā un jāveic vektoru meklēšana (saukta arī par "semantisko līdzību"), lai iegūtu to domēna zināšanu daļu, kas ir vistuvāk jūsu jautājumam.

Pirmais risinājums ir glabāt iegravējumus īpašā vektoru datubāzē, piemēram, PG Vector. Otrs risinājums ir iekodēt savu semantiskās meklēšanas modeli ar savām domēna zināšanām un izvietot to GPU (šo risinājumu mēs piedāvājam NLP Cloud, jo tas nodrošina vislabāko reakcijas laiku). Pēc tam, kad jūsu vektoru DB ir gatava vai kad jūsu modelis ir izveidots, jūs varat uzdot jautājumus dabiskajā valodā, un jūsu AI modelis atgriezīs jūsu domēna zināšanu izvilkumu, kas vislabāk atbild uz jūsu jautājumu.

Semantiskā meklēšana parasti ir ļoti ātra un salīdzinoši lēta. Tā ir arī uzticamāka nekā teksta ģenerēšanas precizēšanas stratēģija, tāpēc jums neradīsies mākslīgā intelekta halucinācijas problēmas. Taču tā nespēj pareizi "atbildēt" uz jautājumu. Tā vienkārši atgriež teksta fragmentu, kas satur atbildi uz jūsu jautājumu. Tad lietotājam ir jāizlasa viss teksta gabals, lai atrastu atbildi uz savu jautājumu.

Lai iegūtu sīkāku informāciju, skatiet mūsu dokumentāciju par semantisko meklēšanu. šeit.

Labā ziņa ir tā, ka ir iespējams apvienot gan semantisko meklēšanu, gan ģeneratīvo mākslīgo intelektu, lai sasniegtu progresīvus rezultātus!

Jautājumu atbildēšana, apvienojot semantisko meklēšanu un ģeneratīvo mākslīgo intelektu

Lai atbildētu uz jautājumiem par domēna zināšanām, mēs NLP Cloud dodam priekšroku šādai stratēģijai: vispirms veiciet pieprasījumu, izmantojot semantisko meklēšanu, lai iegūtu resursus, kas vislabāk atbild uz jūsu jautājumu, un pēc tam izmantojiet teksta ģenerēšanu, lai atbildētu uz jautājumu, pamatojoties uz šiem resursiem, kā cilvēks.

Pieņemsim, ka esam HP printeru tālākpārdevējs un vēlamies atbildēt uz klientu jautājumiem savā vietnē.

Vispirms mums būs jāaprēķina iegultnes un jāuzglabā tās vektoru datubāzē vai jāizveido savs semantiskās meklēšanas modelis. Šeit tas tiks veidots tikai no 3 piemēriem, bet reālajā dzīvē, izmantojot semantisko meklēšanu NLP mākoņa vidē, tajā var iekļaut līdz pat 1 miljonam piemēru. Mēs vienkārši izveidojam CSV failu un ievietojam tajā šādu informāciju:

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.

Pēc tam mēs augšupielādējam savu CSV datu kopu NLP mākonī un noklikšķinām uz "Izveidot modeli". Pēc brīža mūsu pašu semantiskās meklēšanas modelis, kas satur mūsu domēna zināšanas, būs gatavs, un mēs saņemsim privāto API URL, lai to izmantotu.

Uzdosim jautājumu mūsu jaunajam modelim, izmantojot NLP Cloud Python klientu:

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

Modelis ātri un īsā reakcijas laikā atgriež šādus datus:

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

Tagad mēs iegūstam atbildi, kurai ir augstākais rezultāts (mēs varētu iegūt arī vairākas atbildes): "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."

Šī atbilde ir pareiza, taču tā nav pārāk ērta lietotājam, jo, lai saņemtu atbildi, ir jāizlasa diezgan garš teksts. Tāpēc tagad mēs vēlreiz uzdodam to pašu jautājumu mūsu jautājumu atbildēšanas galapunktam, izmantojot ChatDolphin modeli. Mēs izmantosim semantiskās meklēšanas atbildi kā kontekstu:

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

Tā atgriež šādu atbildi:

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

Diezgan labi, vai ne?

Secinājums

Neraugoties uz neseno progresu, kas panākts ģeneratīvo mākslīgā intelekta modeļu izstrādē, piemēram, ChatDolphin, LLaMA, ChatGPT, GPT-4 u.c., ierobežotais pieprasījuma lielums neļauj izmantot šos lieliskos modeļus specifisku domēna zināšanu iegūšanai, lai atbildētu uz jautājumiem. Šo modeļu precīza pielāgošana diemžēl nav lietderīga šādam lietojumam...

Laba stratēģija ir ieviest RAG sistēmu. Vispirms atbildiet uz savu jautājumu, pārvēršot dokumentus ieliktņos un saglabājot tos vektoru datubāzē vai izveidojot savu semantiskās meklēšanas modeli no dokumentiem, un pēc tam izmantojiet parasto jautājumu atbildēšanas modeli, kas balstīts uz ģeneratīvo mākslīgo intelektu, lai uz sākotnējo jautājumu atbildētu cilvēks.

Ja vēlaties īstenot šo stratēģiju, nevilcinieties un izveidojiet savu semantiskās meklēšanas modeli NLP Cloud: skatiet saistīto dokumentāciju šeit!

Mark
NLP Cloud lietojumprogrammu inženieris