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.
Odgovarjanje na vprašanja na podlagi domenskega znanja (kot so notranja dokumentacija, pogodbe, knjige itd.) je zahtevno. V tem članku raziskujemo napredno tehniko, imenovano Retrieval-Augmented Generation (RAG), da bi to dosegli z veliko natančnostjo, pri čemer združujemo semantično iskanje in generiranje besedila z modeli, kot so ChatDolphin, LLaMA, ChatGPT, GPT-4...

Pri odgovarjanju na vprašanja na podlagi znanja o domeni je treba modelu umetne inteligence najprej poslati določeno ozadje in nato zastaviti vprašanje o njem.
Na primer, lahko pošljete naslednji kontekst:
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.
Zdaj si lahko zastavite naslednje vprašanje:
When can plans be stopped?
Umetna inteligenca bi odgovorila približno takole:
Anytime
Za več podrobnosti glejte našo dokumentacijo o odgovarjanju na vprašanja. tukaj.
Težava tega pristopa je, da je velikost konteksta (tj. velikost vhodnega besedila) omejena. Zato ne morete poslati celotnega znanja o domeni kot kontekst.
Recimo, da želite izdelati klepetalnega robota za podporo, ki bo vedel vse o dokumentaciji vašega izdelka, tako da bodo lahko končni uporabniki klepetalnemu robotu zastavili katero koli vprašanje, povezano z izdelkom, ne da bi se obrnili na pravega agenta za podporo. Najverjetneje bo vaša dokumentacija sestavljena iz več sto ali tisoč besed ali celo milijonov besed...
Preučimo, kako premagati to omejitev in izvajati odgovarjanje na vprašanja v zelo velikih dokumentih.
Pri odgovarjanju na vprašanja se lahko uporabljata dve vrsti tehnologij. Ustvarjanje besedila (generativna umetna inteligenca) in semantično iskanje.
Prva, ustvarjanje besedila, je v bistvu to, kar sem pravkar pokazal zgoraj. Običajno je potreben napreden model za generiranje besedila, kot so ChatDolphin, LLaMA, ChatGPT, GPT-4... Sposoben je razumeti človeško vprašanje in se tudi odzvati kot človek. Vendar pa ne deluje na velikih dokumentih. Natančno uglaševanje generativnega modela umetne inteligence z vašim domenskim znanjem ne bi delovalo dobro, saj natančno uglaševanje ni dobra tehnika za dodajanje znanja modelu.
Pri semantičnem iskanju gre pravzaprav za iskanje dokumentov na enak način kot pri Googlu, vendar na podlagi lastnega domenskega znanja.
Da bi to dosegli, morate notranje dokumente pretvoriti v vektorje (znane tudi kot "vdelane"). Nato morate tudi svoje vprašanje pretvoriti v vektor, nato pa izvesti iskanje po vektorjih (znano tudi kot "semantična podobnost"), da bi pridobili del svojega domenskega znanja, ki je najbližje vašemu vprašanju.
Prva rešitev je, da vdelane datoteke shranite v namensko zbirko vektorjev, kot je PG Vector. Druga rešitev je kodiranje lastnega modela semantičnega iskanja z lastnim domenskim znanjem in namestitev na grafični procesor (to je rešitev, ki jo predlagamo v NLP Cloud, saj ponuja najboljši odzivni čas). Ko imate pripravljeno vektorsko DB ali ko je vaš model ustvarjen, lahko zastavite vprašanja v naravnem jeziku, model umetne inteligence pa bo vrnil izvleček vašega domenskega znanja, ki najbolje odgovarja na vaše vprašanje.
Semantično iskanje je običajno zelo hitro in razmeroma poceni. Poleg tega je zanesljivejše od strategije finega uglaševanja generiranja besedila, zato se ne boste srečali s težavami z halucinacijami umetne inteligence. Vendar pa ne more pravilno "odgovoriti" na vprašanje. Preprosto vrne del besedila, ki vsebuje odgovor na vaše vprašanje. Nato je na uporabniku, da prebere celoten kos besedila in tako najde odgovor na svoje vprašanje.
Za več podrobnosti glejte našo dokumentacijo o semantičnem iskanju. tukaj.
Dobra novica je, da je mogoče združiti semantično iskanje in generativno umetno inteligenco ter tako doseči napredne rezultate!
Za odgovarjanje na vprašanja o znanju o domeni v oblaku NLP Cloud uporabljamo naslednjo strategijo: najprej zahtevajte s semantičnim iskanjem, da pridobite vire, ki najbolje odgovarjajo na vaše vprašanje, nato pa z ustvarjanjem besedila na podlagi teh virov odgovorite na vprašanje kot človek.
Recimo, da smo preprodajalec HP-jevih tiskalnikov in želimo na svojem spletnem mestu odgovarjati na vprašanja svojih strank.
Najprej bomo morali izračunati vgradnje in jih shraniti v vektorsko zbirko podatkov ali ustvariti lasten model semantičnega iskanja. Tu bo sestavljen samo iz treh primerov, v resničnem življenju pa lahko pri uporabi semantičnega iskanja v oblaku NLP vključite do 1 milijon primerov. Preprosto ustvarimo datoteko CSV in vanjo vstavimo naslednje:
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.
Nato v oblak NLP Cloud naložimo nabor podatkov CSV in kliknemo "Ustvari model". Čez nekaj časa bo pripravljen naš lastni model semantičnega iskanja, ki bo vseboval naše domensko znanje, in prejeli bomo zasebni URL API, da ga bomo lahko uporabljali.
Zastavimo vprašanje našemu povsem novemu modelu z uporabo odjemalca 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 v kratkem odzivnem času hitro vrne naslednje podatke:
{
"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."
},
]
}
Zdaj pridobimo odgovor, ki ima najvišjo oceno (lahko bi pridobili tudi več odgovorov): "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."
Ta odgovor je pravilen, vendar uporabniku ni preveč prijazen, saj mora prebrati precej dolgo besedilo, da bi dobil odgovor. Zato zdaj isto vprašanje ponovno zastavimo naši končni točki za odgovarjanje na vprašanja z uporabo modela ChatDolphin. Kot kontekst bomo uporabili odgovor semantičnega iskanja:
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."""
)
Vrne naslednji odgovor:
{
"answer": "The warranty lasts for three years."
}
Precej dobro, kajne?
Kljub nedavnemu napredku pri generativnih modelih umetne inteligence, kot so ChatDolphin, LLaMA, ChatGPT, GPT-4 itd., je zaradi omejene velikosti zahtevka nemogoče uporabiti te odlične modele na podlagi specifičnega domenskega znanja za odgovarjanje na vprašanja. Natančno prilagajanje teh modelov za tak primer uporabe žal ne deluje dobro...
Dobra strategija je uvedba sistema RAG. Najprej odgovorite na vprašanje tako, da dokumente pretvorite v vdelke in jih shranite v vektorsko podatkovno zbirko ali iz dokumentov ustvarite lasten model semantičnega iskanja, nato pa uporabite običajni model odgovarjanja na vprašanja, ki temelji na generativni umetni inteligenci, da bi vrnil človeški odgovor na začetno vprašanje.
Če želite izvajati to strategijo, ne oklevajte in ustvarite svoj model semantičnega iskanja v oblaku NLP Cloud: Oglejte si povezano dokumentacijo tukaj!
Mark
Aplikacijski inženir v NLP Cloud