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.
Η απάντηση σε ερωτήσεις που βασίζονται στη γνώση του τομέα (όπως εσωτερική τεκμηρίωση, συμβάσεις, βιβλία κ.λπ.) αποτελεί πρόκληση. Σε αυτό το άρθρο διερευνούμε μια προηγμένη τεχνική που ονομάζεται Retrieval-Augmented Generation (RAG) προκειμένου να το επιτύχουμε αυτό με μεγάλη ακρίβεια, συνδυάζοντας τη σημασιολογική αναζήτηση και τη δημιουργία κειμένου με μοντέλα όπως τα ChatDolphin, LLaMA, ChatGPT, GPT-4...

Η απάντηση ερωτήσεων με βάση τη γνώση του τομέα απαιτεί να στείλετε πρώτα κάποιο πλαίσιο στο μοντέλο τεχνητής νοημοσύνης και στη συνέχεια να κάνετε μια ερώτηση σχετικά με αυτό.
Για παράδειγμα, θα μπορούσατε να στείλετε το ακόλουθο πλαίσιο:
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.
Τώρα ίσως θελήσετε να κάνετε την ακόλουθη ερώτηση:
When can plans be stopped?
Η τεχνητή νοημοσύνη θα απαντούσε κάπως έτσι:
Anytime
Για περισσότερες λεπτομέρειες, ανατρέξτε στην τεκμηρίωσή μας σχετικά με την απάντηση ερωτήσεων εδώ.
Το πρόβλημα με αυτή την προσέγγιση είναι ότι το μέγεθος του πλαισίου σας (δηλαδή το μέγεθος του κειμένου εισόδου σας) είναι περιορισμένο. Επομένως, δεν μπορείτε να στείλετε ολόκληρη τη γνώση του τομέα σας ως πλαίσιο.
Ας υποθέσουμε ότι θέλετε να δημιουργήσετε ένα chatbot υποστήριξης που να γνωρίζει τα πάντα για την τεκμηρίωση του προϊόντος σας, ώστε οι τελικοί χρήστες να μπορούν να θέτουν οποιαδήποτε ερώτηση σχετική με το προϊόν στο chatbot χωρίς να επικοινωνούν με έναν πραγματικό πράκτορα υποστήριξης. Κατά πάσα πιθανότητα, η τεκμηρίωσή σας θα αποτελείται από αρκετές εκατοντάδες ή χιλιάδες λέξεις ή ακόμη και εκατομμύρια λέξεις...
Ας διερευνήσουμε πώς να ξεπεράσουμε αυτόν τον περιορισμό και να απαντήσουμε σε ερωτήσεις σε πολύ μεγάλα έγγραφα.
Όταν πρόκειται για την απάντηση ερωτήσεων, μπορούν να χρησιμοποιηθούν 2 είδη τεχνολογιών. Η παραγωγή κειμένου (generative AI) και η σημασιολογική αναζήτηση.
Η πρώτη, η δημιουργία κειμένου, είναι ουσιαστικά αυτό που μόλις έδειξα παραπάνω. Συνήθως χρειάζεται ένα προηγμένο μοντέλο παραγωγής κειμένου όπως τα ChatDolphin, LLaMA, ChatGPT, GPT-4... Είναι σε θέση να κατανοήσει μια ανθρώπινη ερώτηση και να απαντήσει σαν άνθρωπος. Ωστόσο, δεν λειτουργεί σε μεγάλα έγγραφα. Η λεπτομερής ρύθμιση ενός γεννητικού μοντέλου ΤΝ με τη γνώση του τομέα σας δεν θα λειτουργούσε καλά, καθώς η λεπτομερής ρύθμιση δεν είναι μια καλή τεχνική για την προσθήκη γνώσης σε ένα μοντέλο.
Η σημασιολογική αναζήτηση είναι ουσιαστικά η αναζήτηση ενός εγγράφου με τον ίδιο τρόπο όπως η Google, αλλά με βάση τη δική σας γνώση του τομέα.
Για να το πετύχετε αυτό, πρέπει να μετατρέψετε τα εσωτερικά σας έγγραφα σε διανύσματα (γνωστά και ως "ενσωματώσεις"). Στη συνέχεια, θα πρέπει να μετατρέψετε και την ερώτησή σας σε διάνυσμα, και στη συνέχεια να εκτελέσετε μια διανυσματική αναζήτηση (επίσης γνωστή ως "σημασιολογική ομοιότητα") προκειμένου να ανακτήσετε το τμήμα της γνώσης του τομέα σας που είναι πιο κοντά στην ερώτησή σας.
Μια πρώτη λύση είναι να αποθηκεύσετε τις ενσωματώσεις σας σε μια ειδική διανυσματική βάση δεδομένων όπως η PG Vector. Μια άλλη λύση είναι να κωδικοποιήσετε το δικό σας μοντέλο σημασιολογικής αναζήτησης με τη δική σας γνώση του τομέα και να το αναπτύξετε σε μια GPU (αυτή είναι η λύση που προτείνουμε στο NLP Cloud επειδή προσφέρει τον καλύτερο χρόνο απόκρισης). Στη συνέχεια, μόλις έχετε έτοιμη τη διανυσματική βάση δεδομένων σας ή μόλις δημιουργηθεί το μοντέλο σας, μπορείτε να κάνετε ερωτήσεις σε φυσική γλώσσα και το μοντέλο τεχνητής νοημοσύνης σας θα επιστρέψει ένα απόσπασμα της γνώσης του τομέα σας που απαντά καλύτερα στην ερώτησή σας.
Η σημασιολογική αναζήτηση είναι συνήθως πολύ γρήγορη και σχετικά φθηνή. Είναι επίσης πιο αξιόπιστη από τη στρατηγική τελειοποίησης της παραγωγής κειμένου, οπότε δεν θα αντιμετωπίσετε κανένα πρόβλημα ψευδαισθήσεων της τεχνητής νοημοσύνης. Δεν είναι όμως σε θέση να "απαντήσει" σωστά σε μια ερώτηση. Απλώς επιστρέφει ένα κομμάτι κειμένου που περιέχει μια απάντηση στην ερώτησή σας. Στη συνέχεια εναπόκειται στον χρήστη να διαβάσει ολόκληρο το κομμάτι του κειμένου προκειμένου να βρει την απάντηση στην ερώτησή του.
Για περισσότερες λεπτομέρειες, ανατρέξτε στην τεκμηρίωσή μας σχετικά με τη σημασιολογική αναζήτηση εδώ.
Τα καλά νέα είναι ότι είναι δυνατόν να συνδυάσετε τη σημασιολογική αναζήτηση και τη δημιουργική τεχνητή νοημοσύνη για να επιτύχετε προηγμένα αποτελέσματα!
Για να απαντήσετε σε ερωτήσεις σχετικά με τη γνώση του τομέα, η στρατηγική που προτιμάμε στο NLP Cloud είναι η εξής: πρώτα κάνετε ένα αίτημα με σημασιολογική αναζήτηση για να ανακτήσετε τους πόρους που απαντούν καλύτερα στην ερώτησή σας και στη συνέχεια χρησιμοποιείτε τη δημιουργία κειμένου για να απαντήσετε στην ερώτηση με βάση αυτούς τους πόρους όπως ένας άνθρωπος.
Ας υποθέσουμε ότι είμαστε μεταπωλητής εκτυπωτών HP και θέλουμε να απαντήσουμε στις ερωτήσεις των πελατών μας στον ιστότοπό μας.
Πρώτα θα πρέπει να υπολογίσουμε τις ενσωματώσεις και να τις αποθηκεύσουμε σε μια διανυσματική βάση δεδομένων ή να δημιουργήσουμε το δικό μας μοντέλο σημασιολογικής αναζήτησης. Εδώ θα αποτελείται μόνο από 3 παραδείγματα, αλλά στην πραγματική ζωή μπορείτε να συμπεριλάβετε μέχρι και 1 εκατομμύριο παραδείγματα όταν χρησιμοποιείτε σημασιολογική αναζήτηση στο NLP Cloud. Απλώς δημιουργούμε ένα αρχείο CSV και βάζουμε μέσα τα εξής:
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.
Στη συνέχεια, ανεβάζουμε το σύνολο δεδομένων CSV στο NLP Cloud και κάνουμε κλικ στην επιλογή "Create model". Μετά από λίγο, το δικό μας μοντέλο σημασιολογικής αναζήτησης που περιέχει τη δική μας γνώση τομέα θα είναι έτοιμο και θα λάβουμε μια ιδιωτική διεύθυνση URL API για να το χρησιμοποιήσουμε.
Ας θέσουμε μια ερώτηση στο ολοκαίνουργιο μοντέλο μας χρησιμοποιώντας το πρόγραμμα-πελάτη Python του NLP Cloud:
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?")
Το μοντέλο επιστρέφει γρήγορα τα ακόλουθα με σύντομο χρόνο απόκρισης:
{
"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."
},
]
}
Τώρα ανακτούμε την απάντηση που έχει την υψηλότερη βαθμολογία (θα μπορούσαμε επίσης να ανακτούμε πολλές απαντήσεις): "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."
Αυτή η απάντηση είναι σωστή, αλλά δεν είναι πολύ φιλική προς το χρήστη, αφού ο χρήστης πρέπει να διαβάσει ένα αρκετά μεγάλο κομμάτι κειμένου για να πάρει την απάντηση. Έτσι, τώρα θέτουμε ξανά την ίδια ερώτηση στο τελικό σημείο απάντησης ερωτήσεων, χρησιμοποιώντας το μοντέλο ChatDolphin. Θα χρησιμοποιήσουμε την απάντηση της σημασιολογικής αναζήτησης ως πλαίσιο:
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."""
)
Επιστρέφει την ακόλουθη απάντηση:
{
"answer": "The warranty lasts for three years."
}
Αρκετά καλό δεν είναι;
Παρά την πρόσφατη πρόοδο που έχει σημειωθεί στα παραγωγικά μοντέλα τεχνητής νοημοσύνης, όπως τα ChatDolphin, LLaMA, ChatGPT, GPT-4 κ.λπ., το περιορισμένο μέγεθος των αιτήσεων καθιστά αδύνατη τη χρήση αυτών των σπουδαίων μοντέλων σε συγκεκριμένες γνώσεις τομέα για την απάντηση ερωτήσεων. Η λεπτομερής ρύθμιση αυτών των μοντέλων δεν λειτουργεί καλά για μια τέτοια περίπτωση χρήσης δυστυχώς...
Μια καλή στρατηγική είναι η εφαρμογή ενός συστήματος RAG. Πρώτα απαντήστε στην ερώτησή σας μετατρέποντας τα έγγραφά σας σε ενσωματώσεις και αποθηκεύοντάς τα σε μια διανυσματική βάση δεδομένων ή δημιουργώντας το δικό σας μοντέλο σημασιολογικής αναζήτησης από τα έγγραφά σας και στη συνέχεια χρησιμοποιήστε ένα κανονικό μοντέλο απάντησης ερωτήσεων που βασίζεται στη γεννητική ΤΝ προκειμένου να επιστρέψετε μια ανθρώπινη απάντηση στην αρχική ερώτηση.
Αν θέλετε να εφαρμόσετε αυτή τη στρατηγική, μη διστάσετε να δημιουργήσετε το δικό σας μοντέλο σημασιολογικής αναζήτησης στο NLP Cloud: δείτε τη σχετική τεκμηρίωση εδώ!
Mark
Μηχανικός εφαρμογών στο NLP Cloud