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.
Odpovede na otázky založené na znalostiach o doméne (napríklad interná dokumentácia, zmluvy, knihy atď.) sú náročné. V tomto článku skúmame pokročilú techniku nazvanú Retrieval-Augmented Generation (RAG), aby sme to dosiahli s veľkou presnosťou, a to zmiešaním sémantického vyhľadávania a generovania textu s modelmi ako ChatDolphin, LLaMA, ChatGPT, GPT-4...

Odpovedanie na otázky na základe doménových znalostí si vyžaduje, aby ste najprv poslali modelu umelej inteligencie nejaký kontext a potom sa naň opýtali.
Môžete napríklad odoslať nasledujúci kontext:
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.
Teraz si možno budete chcieť položiť nasledujúcu otázku:
When can plans be stopped?
Umelá inteligencia by odpovedala približne takto:
Anytime
Ďalšie podrobnosti nájdete v našej dokumentácii o odpovedaní na otázky tu.
Problémom tohto prístupu je, že veľkosť kontextu (t. j. veľkosť vstupného textu) je obmedzená. Nemôžete teda poslať celú svoju doménovú znalosť ako kontext.
Povedzme, že chcete vytvoriť chatbota podpory, ktorý vie všetko o dokumentácii vášho produktu, takže koncoví používatelia môžu chatbotovi položiť akúkoľvek otázku týkajúcu sa produktu bez toho, aby museli kontaktovať skutočného agenta podpory. S najväčšou pravdepodobnosťou sa vaša dokumentácia bude skladať z niekoľkých stoviek alebo tisícok slov, alebo dokonca miliónov slov...
Poďme preskúmať, ako prekonať toto obmedzenie a vykonávať odpovede na otázky na veľmi veľkých dokumentoch.
Pokiaľ ide o odpovedanie na otázky, možno použiť 2 druhy technológií. Generovanie textu (generatívna AI) a sémantické vyhľadávanie.
Prvý z nich, generovanie textu, je v podstate to, čo som práve ukázal vyššie. Zvyčajne je potrebný pokročilý model generovania textu, ako napríklad ChatDolphin, LLaMA, ChatGPT, GPT-4... Je schopný porozumieť ľudskej otázke a tiež odpovedať ako človek. Nefunguje však na veľkých dokumentoch. Jemné doladenie generatívneho modelu umelej inteligencie pomocou vašich doménových znalostí by nefungovalo dobre, pretože jemné doladenie nie je dobrá technika na pridávanie znalostí do modelu.
Sémantické vyhľadávanie je v podstate o vyhľadávaní dokumentov rovnakým spôsobom ako Google, ale na základe vlastných znalostí domény.
Aby ste to dosiahli, musíte svoje interné dokumenty previesť na vektory (známe aj ako "embeddings"). Potom by ste mali previesť aj svoju otázku na vektor a potom vykonať vektorové vyhľadávanie (známe aj ako "sémantická podobnosť") s cieľom získať časť vašich doménových znalostí, ktorá je najbližšie k vašej otázke.
Prvým riešením je uložiť vložené súbory do špecializovanej vektorovej databázy, ako je PG Vector. Ďalším riešením je zakódovať vlastný sémantický vyhľadávací model s vlastnými znalosťami domény a nasadiť ho na GPU (čo je riešenie, ktoré navrhujeme v NLP Cloud, pretože ponúka najlepší čas odozvy). Potom, keď máte pripravenú vektorovú DB alebo keď je váš model vytvorený, môžete klásť otázky v prirodzenom jazyku a váš model AI vráti výpis vašich doménových znalostí, ktorý najlepšie odpovedá na vašu otázku.
Sémantické vyhľadávanie je zvyčajne veľmi rýchle a relatívne lacné. Je tiež spoľahlivejšie ako stratégia jemného dolaďovania textu, takže nebudete čeliť žiadnemu problému s halucináciami umelej inteligencie. Nedokáže však správne "odpovedať" na otázku. Jednoducho vráti kus textu, ktorý obsahuje odpoveď na vašu otázku. Potom je na používateľovi, aby si prečítal celý kus textu s cieľom nájsť odpoveď na svoju otázku.
Ďalšie podrobnosti nájdete v našej dokumentácii o sémantickom vyhľadávaní tu.
Dobrou správou je, že je možné kombinovať sémantické vyhľadávanie aj generatívnu umelú inteligenciu s cieľom dosiahnuť pokročilé výsledky!
Na zodpovedanie otázok týkajúcich sa doménových znalostí uprednostňujeme v službe NLP Cloud túto stratégiu: najprv zadáme požiadavku pomocou sémantického vyhľadávania, aby sme získali zdroje, ktoré najlepšie odpovedajú na vašu otázku, a potom pomocou generovania textu odpovieme na otázku na základe týchto zdrojov ako človek.
Povedzme, že sme predajca tlačiarní HP a chceme odpovedať na otázky našich zákazníkov na našej webovej lokalite.
Najprv budeme musieť vypočítať vložené hodnoty a uložiť ich do vektorovej databázy alebo vytvoriť vlastný model sémantického vyhľadávania. V tomto prípade bude pozostávať len z 3 príkladov, ale v reálnom živote môžete pri používaní sémantického vyhľadávania v službe NLP Cloud zahrnúť až 1 milión príkladov. Jednoducho vytvoríme súbor CSV a vložíme doň nasledujúce príklady:
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.
Potom nahráme náš súbor údajov CSV do služby NLP Cloud a klikneme na tlačidlo "Vytvoriť model". Po chvíli bude náš vlastný model sémantického vyhľadávania obsahujúci naše vlastné doménové znalosti pripravený a my dostaneme súkromnú adresu API, aby sme ho mohli používať.
Položme nášmu úplne novému modelu otázku pomocou klienta 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?")
Model rýchlo vráti nasledujúce údaje s krátkou odozvou:
{
"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."
},
]
}
Teraz načítame odpoveď, ktorá má najvyššie skóre (mohli by sme dokonale načítať aj viacero odpovedí): "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áto odpoveď je správna, ale nie je príliš užívateľsky prívetivá, pretože používateľ musí prečítať pomerne dlhý text, aby získal odpoveď. Preto teraz položíme tú istú otázku znova nášmu koncovému bodu odpovedania na otázky pomocou modelu ChatDolphin. Ako kontext použijeme odpoveď sémantického vyhľadávania:
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."""
)
Vráti nasledujúcu odpoveď:
{
"answer": "The warranty lasts for three years."
}
Je to celkom dobré, nie?
Napriek nedávnemu pokroku dosiahnutému v oblasti generatívnych modelov umelej inteligencie, ako sú ChatDolphin, LLaMA, ChatGPT, GPT-4 atď., obmedzená veľkosť požiadaviek znemožňuje použitie týchto skvelých modelov na odpovedanie na otázky so špecifickými znalosťami domény. Jemné ladenie týchto modelov bohužiaľ nefunguje dobre pre takýto prípad použitia...
Dobrou stratégiou je zaviesť systém RAG. Najprv odpovedzte na otázku tak, že dokumenty prevediete na vložené hodnoty a uložíte ich do vektorovej databázy alebo vytvoríte vlastný sémantický model vyhľadávania z dokumentov a potom použijete bežný model odpovedania na otázky založený na generatívnej umelej inteligencii s cieľom vrátiť ľudskú odpoveď na pôvodnú otázku.
Ak chcete túto stratégiu implementovať, neváhajte a vytvorte si vlastný model sémantického vyhľadávania v službe NLP Cloud: pozrite si súvisiacu dokumentáciu tu!
Mark
Aplikačný inžinier v spoločnosti NLP Cloud