Aveți probleme cu inteligența artificială sau cu dezvoltarea full-stack? Experții noștri sunt aici pentru a vă ghida: consiliere personalizată, integrare tehnică și multe altele. Contactați-ne la [email protected].

RAG: Răspunsul la întrebări pe baza cunoștințelor de domeniu cu căutare semantică și inteligență artificială generativă

Răspunsul la întrebări bazate pe cunoștințe din domeniu (cum ar fi documentația internă, contractele, cărțile etc.) reprezintă o provocare. În acest articol explorăm o tehnică avansată numită Retrieval-Augmented Generation (RAG) pentru a realiza acest lucru cu o mare precizie, combinând căutarea semantică și generarea de text cu modele precum ChatDolphin, LLaMA, ChatGPT, GPT-4...

Răspunsuri la întrebări

Provocările legate de răspunsul la întrebări privind cunoașterea domeniului

Răspunsul la întrebări pe baza cunoștințelor din domeniu necesită ca mai întâi să trimiteți un anumit context modelului de inteligență artificială și apoi să adresați o întrebare despre acesta.

De exemplu, ați putea trimite următorul context:

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.

Acum, poate doriți să vă puneți următoarea întrebare:

When can plans be stopped?

AI ar răspunde cam așa:

Anytime

Pentru mai multe detalii, consultați documentația noastră despre răspunsurile la întrebări. aici.

Problema cu această abordare este că dimensiunea contextului (adică dimensiunea textului de intrare) este limitată. Prin urmare, nu puteți trimite toate cunoștințele din domeniu ca context.

Să spunem că doriți să construiți un chatbot de asistență care să știe totul despre documentația produsului dumneavoastră, astfel încât utilizatorii finali să poată adresa orice întrebare legată de produs chatbotului fără a contacta un agent de asistență real. Cel mai probabil, documentația dvs. va fi alcătuită din câteva sute sau mii de cuvinte, sau chiar milioane de cuvinte...

Să analizăm cum să depășim această limitare și să răspundem la întrebări pe documente foarte mari.

Căutarea semantică VS Inteligența Artificială Generativă

În ceea ce privește răspunsul la întrebări, pot fi utilizate două tipuri de tehnologii. Generarea de text (inteligență artificială generativă) și căutarea semantică.

Prima, generarea de text, este practic ceea ce am arătat mai sus. De obicei, este nevoie de un model avansat de generare de text, cum ar fi ChatDolphin, LLaMA, ChatGPT, GPT-4... Acesta este capabil să înțeleagă o întrebare umană și să răspundă ca un om. Cu toate acestea, nu funcționează pe documente mari. Reglarea fină a unui model generativ de inteligență artificială cu cunoștințele dumneavoastră din domeniu nu ar funcționa bine, deoarece reglarea fină nu este o tehnică bună pentru a adăuga cunoștințe la un model.

Căutarea semantică este practic despre căutarea unui document în același mod ca și Google, dar pe baza propriilor cunoștințe din domeniu.

.

Pentru a realiza acest lucru, trebuie să vă convertiți documentele interne în vectori (cunoscuți și sub numele de "embeddings"). Apoi, ar trebui să convertiți și întrebarea dumneavoastră într-un vector, iar apoi să efectuați o căutare vectorială (cunoscută și sub numele de "similaritate semantică") pentru a extrage partea din cunoștințele dumneavoastră din domeniu care este cea mai apropiată de întrebarea dumneavoastră.

O primă soluție este de a stoca încorporările într-o bază de date vectoriale dedicată, cum ar fi PG Vector. O altă soluție este să codificați propriul model de căutare semantică cu propriile cunoștințe de domeniu și să îl implementați pe un GPU (aceasta este soluția pe care o propunem la NLP Cloud, deoarece oferă cel mai bun timp de răspuns). Apoi, odată ce aveți pregătită baza de date vectoriale sau odată ce modelul dvs. este creat, puteți adresa întrebări în limbaj natural, iar modelul dvs. de inteligență artificială va returna un extras din cunoștințele dvs. de domeniu care răspunde cel mai bine la întrebare.

Căutarea semantică este, de obicei, foarte rapidă și relativ ieftină. Este, de asemenea, mai fiabilă decât strategia de reglare fină a generării de text, astfel încât nu vă veți confrunta cu nicio problemă de halucinații AI. Dar nu este capabilă să "răspundă" în mod corespunzător la o întrebare. Pur și simplu returnează o bucată de text care conține un răspuns la întrebarea dumneavoastră. Apoi, este la latitudinea utilizatorului să citească întregul text pentru a găsi răspunsul la întrebarea sa.

Pentru mai multe detalii, consultați documentația noastră despre căutarea semantică. aici.

Vestea bună este că este posibilă combinarea atât a căutării semantice, cât și a inteligenței artificiale generative pentru a obține rezultate avansate!

Răspunsul la întrebări Combinând căutarea semantică și inteligența artificială generativă

Pentru a răspunde la întrebări privind cunoștințele din domeniu, strategia pe care o preferăm la NLP Cloud este următoarea: mai întâi faceți o cerere cu ajutorul căutării semantice pentru a prelua resursele care răspund cel mai bine la întrebare, iar apoi folosiți generarea de text pentru a răspunde la întrebare pe baza acestor resurse ca un om.

Să spunem că suntem un distribuitor de imprimante HP și dorim să răspundem la întrebările clienților noștri pe site-ul nostru.

Mai întâi va trebui să calculăm încorporările și să le stocăm într-o bază de date vectoriale sau să creăm propriul nostru model de căutare semantică. Aici va fi alcătuit din doar 3 exemple, dar în viața reală se pot include până la 1 milion de exemple atunci când se utilizează căutarea semantică pe NLP Cloud. Pur și simplu creăm un fișier CSV și punem următoarele înăuntru:

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.

Apoi încărcăm setul nostru de date CSV în NLP Cloud și facem clic pe "Create model". După un timp, propriul nostru model de căutare semantică care conține cunoștințele noastre de domeniu va fi gata și vom primi un URL API privat pentru a-l putea utiliza.

Să adresăm o întrebare modelului nostru nou-nouț folosind clientul NLP Cloud Python:

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

Modelul returnează rapid următoarele informații, cu un timp de răspuns scurt:

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

Acum recuperăm răspunsul care are cel mai mare scor (am putea recupera perfect mai multe răspunsuri): "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."

Acest răspuns este corect, dar nu este foarte ușor de utilizat, deoarece utilizatorul trebuie să citească un text destul de lung pentru a obține răspunsul. Așadar, acum adresăm din nou aceeași întrebare către punctul final de răspuns la întrebări, utilizând modelul ChatDolphin. Vom folosi răspunsul de căutare semantică ca context:

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

Acesta returnează următorul răspuns:

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

Destul de bine, nu-i așa?

Concluzie

În ciuda progreselor recente înregistrate în ceea ce privește modelele generative de inteligență artificială, cum ar fi ChatDolphin, LLaMA, ChatGPT, GPT-4 etc., dimensiunea limitată a cererilor face imposibilă utilizarea acestor modele grozave pe baza cunoștințelor specifice din domeniu pentru a răspunde la întrebări. Din păcate, reglarea fină a acestor modele nu funcționează bine pentru un astfel de caz de utilizare...

O strategie bună este de a implementa un sistem RAG. Mai întâi, răspundeți la întrebarea dumneavoastră prin convertirea documentelor dumneavoastră în încorporări și stocarea lor într-o bază de date vectoriale sau prin crearea propriului model de căutare semantică din documentele dumneavoastră, iar apoi utilizați un model obișnuit de răspuns la întrebări bazat pe inteligența artificială generativă pentru a oferi un răspuns uman la întrebarea inițială.

Dacă doriți să implementați această strategie, nu ezitați să vă creați propriul model de căutare semantică pe NLP Cloud: consultați documentația aferentă aici!

Mark
Inginer de aplicații la NLP Cloud