Τα μοντέλα μεγάλων γλωσσών ανοιχτού κώδικα (LLM) έχουν γίνει δημοφιλή, επιτρέποντας σε ερευνητές, προγραμματιστές και οργανισμούς να έχουν πρόσβαση σε αυτά τα μοντέλα για την προώθηση της καινοτομίας και του πειραματισμού. Αυτό ενθαρρύνει τη συνεργασία από την κοινότητα ανοιχτού κώδικα για να συμβάλει στην ανάπτυξη και τη βελτίωση των LLM. Τα LLM ανοιχτού κώδικα παρέχουν διαφάνεια στην αρχιτεκτονική του μοντέλου, τη διαδικασία εκπαίδευσης και τα δεδομένα εκπαίδευσης, τα οποία επιτρέπουν στους ερευνητές να κατανοήσουν πώς λειτουργεί το μοντέλο και να εντοπίσουν πιθανές προκαταλήψεις και να αντιμετωπίσουν ηθικά ζητήματα. Αυτά τα LLM ανοιχτού κώδικα εκδημοκρατίζουν τη γενετική τεχνητή νοημοσύνη καθιστώντας την προηγμένη τεχνολογία επεξεργασίας φυσικής γλώσσας (NLP) διαθέσιμη σε ένα ευρύ φάσμα χρηστών για τη δημιουργία επιχειρηματικών εφαρμογών κρίσιμων για την αποστολή. Τα GPT-NeoX, LLaMA, Alpaca, GPT4All, Vicuna, Dolly και OpenAssistant είναι μερικά από τα δημοφιλή LLM ανοιχτού κώδικα.
OpenChatKit είναι ένα LLM ανοιχτού κώδικα που χρησιμοποιείται για τη δημιουργία γενικής χρήσης και εξειδικευμένων εφαρμογών chatbot, που κυκλοφόρησε από την Together Computer τον Μάρτιο του 2023 με την άδεια Apache-2.0. Αυτό το μοντέλο επιτρέπει στους προγραμματιστές να έχουν περισσότερο έλεγχο στη συμπεριφορά του chatbot και να το προσαρμόσουν στις συγκεκριμένες εφαρμογές τους. Το OpenChatKit παρέχει ένα σύνολο εργαλείων, βασικό bot και δομικά στοιχεία για τη δημιουργία πλήρως προσαρμοσμένων, ισχυρών chatbot. Τα βασικά στοιχεία είναι τα εξής:
- Ένα LLM συντονισμένο με οδηγίες, βελτιωμένο για συνομιλία από το GPT-NeoX-20B της EleutherAI με περισσότερες από 43 εκατομμύρια οδηγίες σε υπολογισμό 100% αρνητικού άνθρακα. ο
GPT-NeoXT-Chat-Base-20B
Το μοντέλο βασίζεται στο μοντέλο GPT-NeoX της EleutherAI και είναι τελειοποιημένο με δεδομένα που εστιάζουν σε αλληλεπιδράσεις τύπου διαλόγου. - Συνταγές προσαρμογής για να τελειοποιήσετε το μοντέλο για να επιτύχετε υψηλή ακρίβεια στις εργασίες σας.
- Ένα επεκτάσιμο σύστημα ανάκτησης που σας δίνει τη δυνατότητα να αυξάνετε τις αποκρίσεις του bot με πληροφορίες από ένα χώρο αποθήκευσης εγγράφων, API ή άλλη πηγή πληροφοριών ζωντανής ενημέρωσης κατά τη στιγμή της εξαγωγής συμπερασμάτων.
- Ένα μοντέλο εποπτείας, βελτιστοποιημένο από το GPT-JT-6B, σχεδιασμένο να φιλτράρει τις ερωτήσεις στις οποίες απαντά το bot.
Η αυξανόμενη κλίμακα και το μέγεθος των μοντέλων βαθιάς μάθησης παρουσιάζουν εμπόδια για την επιτυχή ανάπτυξη αυτών των μοντέλων σε εφαρμογές παραγωγής τεχνητής νοημοσύνης. Για να ικανοποιηθούν οι απαιτήσεις για χαμηλό λανθάνοντα χρόνο και υψηλή απόδοση, είναι απαραίτητο να χρησιμοποιηθούν εξελιγμένες μέθοδοι όπως ο παραλληλισμός μοντέλων και η κβαντοποίηση. Ελλείψει επάρκειας στην εφαρμογή αυτών των μεθόδων, πολλοί χρήστες αντιμετωπίζουν δυσκολίες στην εκκίνηση της φιλοξενίας σημαντικών μοντέλων για γενετικές περιπτώσεις χρήσης τεχνητής νοημοσύνης.
Σε αυτήν την ανάρτηση, δείχνουμε πώς να αναπτύξετε μοντέλα OpenChatKit (GPT-NeoXT-Chat-Base-20B and GPT-JT-Moderation-6B
) μοντέλα σε Amazon Sage Maker χρησιμοποιώντας DJL Serving και παράλληλες βιβλιοθήκες μοντέλων ανοιχτού κώδικα, όπως DeepSpeed και Hugging Face Accelerate. Χρησιμοποιούμε το DJL Serving, το οποίο είναι μια καθολική λύση εξυπηρέτησης μοντέλων υψηλής απόδοσης που υποστηρίζεται από τη Βιβλιοθήκη Deep Java (DJL) που είναι αγνωστική γλώσσα προγραμματισμού. Δείχνουμε πώς η βιβλιοθήκη Hugging Face Accelerate απλοποιεί την ανάπτυξη μεγάλων μοντέλων σε πολλαπλές GPU, μειώνοντας έτσι τον φόρτο λειτουργίας των LLM με κατανεμημένο τρόπο. Ας αρχίσουμε!
Επεκτάσιμο σύστημα ανάκτησης
Ένα επεκτάσιμο σύστημα ανάκτησης είναι ένα από τα βασικά στοιχεία του OpenChatKit. Σας δίνει τη δυνατότητα να προσαρμόσετε την απόκριση του bot με βάση μια βάση γνώσεων κλειστού τομέα. Αν και τα LLM είναι σε θέση να διατηρούν πραγματικές γνώσεις στις παραμέτρους του μοντέλου τους και μπορούν να επιτύχουν αξιοσημείωτη απόδοση σε εργασίες μεταγενέστερου NLP όταν ρυθμιστούν με ακρίβεια, η ικανότητά τους να έχουν πρόσβαση και να προβλέψουν με ακρίβεια τη γνώση κλειστού τομέα παραμένει περιορισμένη. Ως εκ τούτου, όταν παρουσιάζονται εργασίες έντασης γνώσης, η απόδοσή τους υποφέρει από αυτήν των αρχιτεκτονικών συγκεκριμένων εργασιών. Μπορείτε να χρησιμοποιήσετε το σύστημα ανάκτησης OpenChatKit για να αυξήσετε τη γνώση στις απαντήσεις τους από εξωτερικές πηγές γνώσης όπως η Wikipedia, αποθετήρια εγγράφων, API και άλλες πηγές πληροφοριών.
Το σύστημα ανάκτησης επιτρέπει στο chatbot να έχει πρόσβαση σε τρέχουσες πληροφορίες λαμβάνοντας σχετικές λεπτομέρειες ως απάντηση σε ένα συγκεκριμένο ερώτημα, παρέχοντας έτσι το απαραίτητο πλαίσιο για το μοντέλο να παράγει απαντήσεις. Για να δείξουμε τη λειτουργικότητα αυτού του συστήματος ανάκτησης, παρέχουμε υποστήριξη για ένα ευρετήριο άρθρων της Wikipedia και προσφέρουμε παράδειγμα κώδικα που δείχνει πώς να καλέσετε ένα API αναζήτησης Ιστού για ανάκτηση πληροφοριών. Ακολουθώντας την παρεχόμενη τεκμηρίωση, μπορείτε να ενσωματώσετε το σύστημα ανάκτησης με οποιοδήποτε σύνολο δεδομένων ή API κατά τη διαδικασία συμπερασμάτων, επιτρέποντας στο chatbot να ενσωματώνει δυναμικά ενημερωμένα δεδομένα στις απαντήσεις του.
Μοντέλο μετριοπάθειας
Τα μοντέλα εποπτείας είναι σημαντικά στις εφαρμογές chatbot για την επιβολή φιλτραρίσματος περιεχομένου, ποιοτικού ελέγχου, ασφάλειας των χρηστών και νομικών λόγων και λόγων συμμόρφωσης. Η εποπτεία είναι μια δύσκολη και υποκειμενική εργασία και εξαρτάται πολύ από τον τομέα της εφαρμογής chatbot. Το OpenChatKit παρέχει εργαλεία για την εποπτεία της εφαρμογής chatbot και την παρακολούθηση των μηνυμάτων κειμένου εισαγωγής για οποιοδήποτε ακατάλληλο περιεχόμενο. Το μοντέλο μετριοπάθειας παρέχει μια καλή βάση που μπορεί να προσαρμοστεί και να προσαρμοστεί σε διάφορες ανάγκες.
Το OpenChatKit έχει ένα μοντέλο εποπτείας 6 δισεκατομμυρίων παραμέτρων, GPT-JT-Moderation-6B
, το οποίο μπορεί να εποπτεύσει το chatbot για να περιορίσει τις εισόδους στα εποπτευόμενα θέματα. Αν και το ίδιο το μοντέλο έχει ενσωματωμένη κάποια μετριοπάθεια, το TogetherComputer εκπαιδεύτηκε α GPT-JT-Moderation-6B μοντέλο με το Ontocord.ai's Σύνολο δεδομένων εποπτείας OIG. Αυτό το μοντέλο εκτελείται παράλληλα με το κύριο chatbot για να ελέγξει ότι τόσο η εισαγωγή χρήστη όσο και η απάντηση από το bot δεν περιέχουν ακατάλληλα αποτελέσματα. Μπορείτε επίσης να το χρησιμοποιήσετε για να εντοπίσετε τυχόν ερωτήσεις εκτός τομέα στο chatbot και να παρακάμψετε όταν η ερώτηση δεν αποτελεί μέρος του τομέα του chatbot.
Το παρακάτω διάγραμμα απεικονίζει τη ροή εργασίας του OpenChatKit.
Θήκες χρήσης επεκτάσιμου συστήματος ανάκτησης
Παρόλο που μπορούμε να εφαρμόσουμε αυτήν την τεχνική σε διάφορους κλάδους για τη δημιουργία γενετικών εφαρμογών τεχνητής νοημοσύνης, για αυτήν την ανάρτηση συζητάμε περιπτώσεις χρήσης στον χρηματοπιστωτικό κλάδο. Η επαυξημένη παραγωγή ανάκτησης μπορεί να χρησιμοποιηθεί στη χρηματοοικονομική έρευνα για την αυτόματη δημιουργία αναφορών έρευνας για συγκεκριμένες εταιρείες, βιομηχανίες ή χρηματοοικονομικά προϊόντα. Με την ανάκτηση σχετικών πληροφοριών από εσωτερικές βάσεις γνώσεων, οικονομικά αρχεία, άρθρα ειδήσεων και ερευνητικές εργασίες, μπορείτε να δημιουργήσετε εκτενείς αναφορές που συνοψίζουν βασικές πληροφορίες, οικονομικές μετρήσεις, τάσεις της αγοράς και επενδυτικές προτάσεις. Μπορείτε να χρησιμοποιήσετε αυτήν τη λύση για να παρακολουθείτε και να αναλύετε τα οικονομικά νέα, το κλίμα της αγοράς και τις τάσεις.
Επισκόπηση λύσεων
Τα ακόλουθα βήματα αφορούν τη δημιουργία ενός chatbot χρησιμοποιώντας μοντέλα OpenChatKit και την ανάπτυξη τους στο SageMaker:
- Κατεβάστε τη βάση συνομιλίας
GPT-NeoXT-Chat-Base-20B
μοντελοποιήστε και συσκευάστε τα τεχνουργήματα του μοντέλου που θα μεταφορτωθούν Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3). - Χρησιμοποιήστε ένα κοντέινερ συμπερασμάτων μεγάλου μοντέλου SageMaker (LMI), διαμορφώστε τις ιδιότητες και ρυθμίστε προσαρμοσμένο κώδικα συμπερασμάτων για την ανάπτυξη αυτού του μοντέλου.
- Διαμόρφωση παράλληλων τεχνικών μοντέλων και χρήση βιβλιοθηκών βελτιστοποίησης συμπερασμάτων σε ιδιότητες εξυπηρέτησης DJL. Θα χρησιμοποιήσουμε το Hugging Face Accelerate ως κινητήρα για το σερβίρισμα DJL. Επιπλέον, ορίζουμε παράλληλες διαμορφώσεις τανυστών για να χωρίσουμε το μοντέλο.
- Δημιουργήστε ένα μοντέλο SageMaker και διαμόρφωση τελικού σημείου και αναπτύξτε το τελικό σημείο SageMaker.
Μπορείτε να ακολουθήσετε τρέχοντας το σημειωματάριο στο GitHub repo.
Κατεβάστε το μοντέλο OpenChatKit
Αρχικά, κατεβάζουμε το βασικό μοντέλο OpenChatKit. Χρησιμοποιούμε huggingface_hub
Και χρήση snapshot_download για λήψη του μοντέλου, το οποίο κατεβάζει ολόκληρο το αποθετήριο σε μια δεδομένη αναθεώρηση. Οι λήψεις γίνονται ταυτόχρονα για να επιταχυνθεί η διαδικασία. Δείτε τον παρακάτω κώδικα:
Ιδιότητες εξυπηρέτησης DJL
Μπορείτε να χρησιμοποιήσετε κοντέινερ SageMaker LMI για να φιλοξενήσετε μεγάλα μοντέλα τεχνητής νοημοσύνης που δημιουργούνται με προσαρμοσμένο κώδικα συμπερασμάτων χωρίς να παρέχετε τον δικό σας κωδικό συμπερασμάτων. Αυτό είναι εξαιρετικά χρήσιμο όταν δεν υπάρχει προσαρμοσμένη προεπεξεργασία των δεδομένων εισόδου ή μεταεπεξεργασία των προβλέψεων του μοντέλου. Μπορείτε επίσης να αναπτύξετε ένα μοντέλο χρησιμοποιώντας προσαρμοσμένο κώδικα συμπερασμάτων. Σε αυτήν την ανάρτηση, δείχνουμε πώς να αναπτύξετε μοντέλα OpenChatKit με προσαρμοσμένο κώδικα συμπερασμάτων.
Το SageMaker αναμένει τα τεχνουργήματα του μοντέλου σε μορφή tar. Δημιουργούμε κάθε μοντέλο OpenChatKit με τα ακόλουθα αρχεία: serving.properties
και model.py
.
Η serving.properties
Το αρχείο διαμόρφωσης υποδεικνύει στο DJL Serving ποιες βιβλιοθήκες παραλληλοποίησης μοντέλων και βελτιστοποίησης συμπερασμάτων θέλετε να χρησιμοποιήσετε. Ακολουθεί μια λίστα με τις ρυθμίσεις που χρησιμοποιούμε σε αυτό το αρχείο διαμόρφωσης:
Αυτό περιέχει τις ακόλουθες παραμέτρους:
- κινητήρας – Ο κινητήρας για χρήση του DJL.
- option.entryPoint – Το αρχείο ή λειτουργική μονάδα Python σημείου εισόδου. Αυτό θα πρέπει να ευθυγραμμίζεται με τον κινητήρα που χρησιμοποιείται.
- option.s3url – Ρυθμίστε το στο URI του κάδου S3 που περιέχει το μοντέλο.
- επιλογή.μοντελισμένο – Εάν θέλετε να κατεβάσετε το μοντέλο από το huggingface.co, μπορείτε να ορίσετε
option.modelid
στο αναγνωριστικό μοντέλου ενός προεκπαιδευμένου μοντέλου που φιλοξενείται μέσα σε ένα αποθετήριο μοντέλων στο huggingface.co (https://huggingface.co/models). Το κοντέινερ χρησιμοποιεί αυτό το αναγνωριστικό μοντέλου για τη λήψη του αντίστοιχου αποθετηρίου μοντέλων στο huggingface.co. - επιλογή.tensor_parallel_degree – Ρυθμίστε τον στον αριθμό των συσκευών GPU στις οποίες το DeepSpeed χρειάζεται να χωρίσει το μοντέλο. Αυτή η παράμετρος ελέγχει επίσης τον αριθμό των εργαζομένων ανά μοντέλο που θα ξεκινήσει όταν εκτελείται η υπηρεσία DJL. Για παράδειγμα, εάν έχουμε μια μηχανή 8 GPU και δημιουργούμε οκτώ διαμερίσματα, τότε θα έχουμε έναν εργαζόμενο ανά μοντέλο για να εξυπηρετεί τα αιτήματα. Είναι απαραίτητο να συντονιστεί ο βαθμός παραλληλισμού και να προσδιοριστεί η βέλτιστη τιμή για μια δεδομένη αρχιτεκτονική μοντέλου και πλατφόρμα υλικού. Αυτή την ικανότητα την ονομάζουμε παραλληλισμός προσαρμοσμένος σε συμπεράσματα.
Αναφέρομαι σε Διαμορφώσεις και ρυθμίσεις για μια εξαντλητική λίστα επιλογών.
Μοντέλα OpenChatKit
Η υλοποίηση του βασικού μοντέλου OpenChatKit έχει τα ακόλουθα τέσσερα αρχεία:
- model.py – Αυτό το αρχείο υλοποιεί τη λογική χειρισμού για το κύριο μοντέλο OpenChatKit GPT-NeoX. Λαμβάνει το αίτημα εισαγωγής συμπερασμάτων, φορτώνει το μοντέλο, φορτώνει το ευρετήριο της Wikipedia και εξυπηρετεί την απάντηση. Αναφέρομαι σε
model.py
(δημιουργήθηκε μέρος του σημειωματάριου) για επιπλέον λεπτομέρειες.model.py
χρησιμοποιεί τις ακόλουθες βασικές κλάσεις:- OpenChatKitService – Αυτό χειρίζεται τη μετάδοση των δεδομένων μεταξύ του μοντέλου GPT-NeoX, της αναζήτησης Faiss και του αντικειμένου συνομιλίας.
WikipediaIndex
καιConversation
Τα αντικείμενα αρχικοποιούνται και οι συνομιλίες εισόδου αποστέλλονται στο ευρετήριο για αναζήτηση σχετικού περιεχομένου από τη Wikipedia. Αυτό δημιουργεί επίσης ένα μοναδικό αναγνωριστικό για κάθε επίκληση, εάν δεν παρέχεται με σκοπό την αποθήκευση των προτροπών στο Amazon DynamoDB. - ChatModel – Αυτή η κλάση φορτώνει το μοντέλο και το tokenizer και δημιουργεί την απόκριση. Χειρίζεται την κατάτμηση του μοντέλου σε πολλαπλές GPU χρησιμοποιώντας
tensor_parallel_degree
, και διαμορφώνει τοdtypes
καιdevice_map
. Οι προτροπές περνούν στο μοντέλο για τη δημιουργία απαντήσεων. Ένα κριτήριο διακοπήςStopWordsCriteria
έχει ρυθμιστεί ώστε η γενιά να παράγει μόνο την απόκριση του bot σε συμπέρασμα. - ModerationModel – Χρησιμοποιούμε δύο μοντέλα μετριοπάθειας στο
ModerationModel
class: το μοντέλο εισόδου για να υποδείξει στο μοντέλο συνομιλίας ότι η είσοδος είναι ακατάλληλη για να παρακάμψει το αποτέλεσμα συμπερασμάτων και το μοντέλο εξόδου για να παρακάμψει το αποτέλεσμα συμπερασμάτων. Ταξινομούμε την εντολή εισόδου και την απόκριση εξόδου με τις ακόλουθες πιθανές ετικέτες:- ανέμελος
- χρειάζεται προσοχή
- χρειάζεται παρέμβαση (αυτό έχει επισημανθεί ότι εποπτεύεται από το μοντέλο)
- πιθανώς χρειάζεται προσοχή
- μάλλον χρειάζεται προσοχή
- OpenChatKitService – Αυτό χειρίζεται τη μετάδοση των δεδομένων μεταξύ του μοντέλου GPT-NeoX, της αναζήτησης Faiss και του αντικειμένου συνομιλίας.
- wikipedia_prepare.py – Αυτό το αρχείο χειρίζεται τη λήψη και την προετοιμασία του ευρετηρίου της Wikipedia. Σε αυτήν την ανάρτηση, χρησιμοποιούμε ένα ευρετήριο της Wikipedia που παρέχεται στα σύνολα δεδομένων Hugging Face. Για να κάνετε αναζήτηση στα έγγραφα της Wikipedia για σχετικό κείμενο, το ευρετήριο πρέπει να ληφθεί από το Hugging Face επειδή δεν είναι συσκευασμένο αλλού. ο
wikipedia_prepare.py
Το αρχείο είναι υπεύθυνο για το χειρισμό της λήψης κατά την εισαγωγή. Μόνο μία διεργασία στα πολλαπλάσια που εκτελούνται για συμπέρασμα μπορεί να κλωνοποιήσει το αποθετήριο. Τα υπόλοιπα περιμένουν μέχρι να εμφανιστούν τα αρχεία στο τοπικό σύστημα αρχείων. - wikipedia.py – Αυτό το αρχείο χρησιμοποιείται για την αναζήτηση στο ευρετήριο της Wikipedia για έγγραφα σχετικά με τα συμφραζόμενα. Το ερώτημα εισαγωγής είναι διακριτικό και οι ενσωματώσεις δημιουργούνται χρησιμοποιώντας
mean_pooling
. Υπολογίζουμε μετρήσεις απόστασης ομοιότητας συνημιτόνου μεταξύ της ενσωμάτωσης ερωτήματος και του ευρετηρίου της Wikipedia για να ανακτήσουμε προτάσεις της Wikipedia που σχετίζονται με τα συμφραζόμενα. Αναφέρομαι σεwikipedia.py
για λεπτομέρειες υλοποίησης.
- συνομιλία.py – Αυτό το αρχείο χρησιμοποιείται για την αποθήκευση και την ανάκτηση του νήματος συνομιλίας στο DynamoDB για διαβίβαση στο μοντέλο και στο χρήστη.
conversation.py
έχει προσαρμοστεί από το αποθετήριο OpenChatKit ανοιχτού κώδικα. Αυτό το αρχείο είναι υπεύθυνο για τον καθορισμό του αντικειμένου που αποθηκεύει τις στροφές συνομιλίας μεταξύ του ανθρώπου και του μοντέλου. Με αυτό, το μοντέλο μπορεί να διατηρήσει μια περίοδο λειτουργίας για τη συνομιλία, επιτρέποντας στον χρήστη να ανατρέξει σε προηγούμενα μηνύματα. Επειδή οι κλήσεις τελικού σημείου του SageMaker είναι ανύπαρκτες, αυτή η συνομιλία πρέπει να αποθηκευτεί σε μια τοποθεσία έξω από τις παρουσίες τελικού σημείου. Κατά την εκκίνηση, η παρουσία δημιουργεί έναν πίνακα DynamoDB εάν δεν υπάρχει. Όλες οι ενημερώσεις στη συνομιλία αποθηκεύονται στη συνέχεια στο DynamoDB με βάση τοsession_id
κλειδί, το οποίο δημιουργείται από το τελικό σημείο. Οποιαδήποτε επίκληση με αναγνωριστικό περιόδου σύνδεσης θα ανακτήσει τη συσχετισμένη συμβολοσειρά συνομιλίας και θα την ενημερώσει όπως απαιτείται.
Δημιουργήστε ένα κοντέινερ συμπερασμάτων LMI με προσαρμοσμένες εξαρτήσεις
Η αναζήτηση ευρετηρίου χρησιμοποιεί το Facebook Faiss βιβλιοθήκη για την εκτέλεση της αναζήτησης ομοιότητας. Επειδή αυτό δεν περιλαμβάνεται στη βασική εικόνα LMI, το κοντέινερ πρέπει να προσαρμοστεί για την εγκατάσταση αυτής της βιβλιοθήκης. Ο παρακάτω κώδικας ορίζει ένα Dockerfile που εγκαθιστά το Faiss από την πηγή μαζί με άλλες βιβλιοθήκες που απαιτούνται από το τελικό σημείο του bot. Χρησιμοποιούμε το sm-docker
βοηθητικό πρόγραμμα δημιουργίας και προώθησης της εικόνας Μητρώο εμπορευματοκιβωτίων Amazon Elastic (Amazon ECR) από Στούντιο Amazon SageMaker. Αναφέρομαι σε Χρησιμοποιώντας το Amazon SageMaker Studio Image Build CLI για να δημιουργήσετε εικόνες κοντέινερ από τους φορητούς υπολογιστές σας στο Studio Για περισσότερες πληροφορίες.
Το κοντέινερ DJL δεν έχει εγκατεστημένο το Conda, επομένως το Faiss πρέπει να κλωνοποιηθεί και να μεταγλωττιστεί από την πηγή. Για να εγκαταστήσετε το Faiss, πρέπει να εγκατασταθούν οι εξαρτήσεις για τη χρήση των API BLAS και της υποστήριξης Python. Αφού εγκατασταθούν αυτά τα πακέτα, το Faiss έχει ρυθμιστεί ώστε να χρησιμοποιεί AVX2 και CUDA πριν μεταγλωττιστεί με εγκατεστημένες τις επεκτάσεις Python.
pandas
, fastparquet
, boto3
, να git-lfs
εγκαθίστανται στη συνέχεια επειδή απαιτούνται για τη λήψη και την ανάγνωση των αρχείων ευρετηρίου.
Δημιουργήστε το μοντέλο
Τώρα που έχουμε την εικόνα Docker στο Amazon ECR, μπορούμε να προχωρήσουμε στη δημιουργία του αντικειμένου μοντέλου SageMaker για τα μοντέλα OpenChatKit. αναπτύσσουμε GPT-NeoXT-Chat-Base-20B
μοντέλα ελέγχου εισόδου και εξόδου χρησιμοποιώντας GPT-JT-Moderation-6B
. Αναφέρομαι σε δημιουργία_μοντέλου Για περισσότερες πληροφορίες.
Διαμορφώστε το τελικό σημείο
Στη συνέχεια, ορίζουμε τις διαμορφώσεις τελικού σημείου για τα μοντέλα OpenChatKit. Αναπτύσσουμε τα μοντέλα χρησιμοποιώντας τον τύπο παρουσίας ml.g5.12xlarge. Αναφέρομαι σε create_endpoint_config Για περισσότερες πληροφορίες.
Αναπτύξτε το τελικό σημείο
Τέλος, δημιουργούμε ένα τελικό σημείο χρησιμοποιώντας το μοντέλο και τη διαμόρφωση τελικού σημείου που ορίσαμε στα προηγούμενα βήματα:
Εκτελέστε συμπεράσματα από μοντέλα OpenChatKit
Τώρα είναι ώρα να στείλετε αιτήματα συμπερασμάτων στο μοντέλο και να λάβετε τις απαντήσεις. Περνάμε την προτροπή κειμένου εισαγωγής και τις παραμέτρους του μοντέλου όπως π.χ temperature
, top_k
, να max_new_tokens
. Η ποιότητα των αποκρίσεων του chatbot βασίζεται στις παραμέτρους που καθορίζονται, επομένως συνιστάται η συγκριτική αξιολόγηση της απόδοσης του μοντέλου σε σχέση με αυτές τις παραμέτρους για να βρείτε τη βέλτιστη ρύθμιση για την περίπτωση χρήσης σας. Η προτροπή εισόδου αποστέλλεται πρώτα στο μοντέλο ελέγχου εισόδου και η έξοδος αποστέλλεται στο ChatModel
για να δημιουργήσετε τις απαντήσεις. Κατά τη διάρκεια αυτού του βήματος, το μοντέλο χρησιμοποιεί το ευρετήριο της Wikipedia για να ανακτήσει ενότητες που σχετίζονται με τα συμφραζόμενα στο μοντέλο ως την προτροπή για λήψη απαντήσεων για συγκεκριμένο τομέα από το μοντέλο. Τέλος, η απόκριση του μοντέλου αποστέλλεται στο μοντέλο ελέγχου εξόδου για έλεγχο ταξινόμησης και, στη συνέχεια, επιστρέφονται οι απαντήσεις. Δείτε τον παρακάτω κώδικα:
Ανατρέξτε στα δείγματα αλληλεπιδράσεων συνομιλίας παρακάτω.
εκκαθάριση
Ακολουθήστε τις οδηγίες στην ενότητα καθαρισμού του για να διαγράψετε τους πόρους που παρέχονται ως μέρος αυτής της ανάρτησης για να αποφύγετε περιττές χρεώσεις. Αναφέρομαι σε Τιμολόγηση του Amazon SageMaker για λεπτομέρειες σχετικά με το κόστος των περιπτώσεων συμπερασμάτων.
Συμπέρασμα
Σε αυτήν την ανάρτηση, συζητήσαμε τη σημασία των LLM ανοιχτού κώδικα και τον τρόπο ανάπτυξης ενός μοντέλου OpenChatKit στο SageMaker για τη δημιουργία εφαρμογών chatbot επόμενης γενιάς. Συζητήσαμε διάφορα στοιχεία μοντέλων OpenChatKit, μοντέλα εποπτείας και πώς να χρησιμοποιήσετε μια εξωτερική πηγή γνώσης όπως η Wikipedia για την ανάκτηση ροών εργασίας επαυξημένης παραγωγής (RAG). Μπορείτε να βρείτε οδηγίες βήμα προς βήμα στο Σημειωματάριο GitHub. Ενημερώστε μας για τις καταπληκτικές εφαρμογές chatbot που δημιουργείτε. Στην υγειά σας!
Σχετικά με τους Συγγραφείς
Dhawal Patel είναι Κύριος Αρχιτέκτονας Μηχανικής Μάθησης στο AWS. Έχει συνεργαστεί με οργανισμούς που κυμαίνονται από μεγάλες επιχειρήσεις έως νεοφυείς επιχειρήσεις μεσαίου μεγέθους για προβλήματα που σχετίζονται με τους κατανεμημένους υπολογιστές και την Τεχνητή Νοημοσύνη. Εστιάζεται στη Deep Learning, συμπεριλαμβανομένων των τομέων NLP και Computer Vision. Βοηθά τους πελάτες να επιτύχουν συμπεράσματα μοντέλων υψηλής απόδοσης στο SageMaker.
Vikram Elango είναι Sr. AIML Specialist Solutions Architect στην AWS, με έδρα τη Βιρτζίνια των ΗΠΑ. Επί του παρόντος, επικεντρώνεται στη δημιουργία τεχνητής νοημοσύνης, τα LLM, την άμεση μηχανική, τη βελτιστοποίηση συμπερασμάτων μεγάλων μοντέλων και την κλιμάκωση της ML σε όλες τις επιχειρήσεις. Η Vikram βοηθά τους πελάτες του χρηματοοικονομικού και ασφαλιστικού κλάδου με ηγετικό σχεδιασμό και σκέψη να δημιουργήσουν και να αναπτύξουν εφαρμογές μηχανικής εκμάθησης σε κλίμακα. Στον ελεύθερο χρόνο του, του αρέσει να ταξιδεύει, να κάνει πεζοπορία, να μαγειρεύει και να κατασκηνώνει με την οικογένειά του.
Andrew Smith είναι Μηχανικός Υποστήριξης Cloud στην ομάδα SageMaker, Vision & Other στο AWS, με έδρα το Σίδνεϊ της Αυστραλίας. Υποστηρίζει πελάτες που χρησιμοποιούν πολλές υπηρεσίες AI/ML στο AWS με εξειδίκευση στη συνεργασία με το Amazon SageMaker. Εκτός δουλειάς, του αρέσει να περνά χρόνο με φίλους και οικογένεια, καθώς και να μαθαίνει για διαφορετικές τεχνολογίες.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- EVM Finance. Ενιαία διεπαφή για αποκεντρωμένη χρηματοδότηση. Πρόσβαση εδώ.
- Quantum Media Group. Ενισχυμένο IR/PR. Πρόσβαση εδώ.
- PlatoAiStream. Web3 Data Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/machine-learning/build-custom-chatbot-applications-using-openchatkit-models-on-amazon-sagemaker/
- :έχει
- :είναι
- :δεν
- :που
- $UP
- 1
- 10
- 100
- 11
- 14
- 15%
- 17
- 195
- 20
- 2023
- 30
- 40
- 7
- 8
- a
- ικανότητα
- Ικανός
- Σχετικα
- επιταχύνουν
- πρόσβαση
- ακρίβεια
- με ακρίβεια
- Κατορθώνω
- απέναντι
- Πρόσθετος
- Επιπλέον
- διεύθυνση
- προηγμένες
- Μετά το
- κατόπιν
- κατά
- AI
- αι περιπτώσεις χρήσης
- AI / ML
- AIML
- ευθυγράμμιση
- Όλα
- Επιτρέποντας
- επιτρέπει
- κατά μήκος
- κατά μήκος της πλευράς
- Επίσης
- Αν και
- καταπληκτικό
- Amazon
- Amazon Sage Maker
- Στούντιο Amazon SageMaker
- Amazon υπηρεσίες Web
- an
- αναλύσει
- και
- απάντηση
- απαντήσεις
- κάθε
- api
- APIs
- Εφαρμογή
- εφαρμογές
- Εφαρμογή
- APT
- αρχιτεκτονική
- αρχεία
- ΕΙΝΑΙ
- εμπορεύματα
- τεχνητός
- τεχνητή νοημοσύνη
- AS
- συσχετισμένη
- At
- επαυξημένης
- Australia
- αυτομάτως
- διαθέσιμος
- αποφύγετε
- AWS
- βάση
- βασίζονται
- Baseline
- BE
- επειδή
- γίνονται
- γίνεται
- πριν
- είναι
- παρακάτω
- αναφοράς
- μεταξύ
- μεροληψίες
- BIN
- Μπλοκ
- σώμα
- Bot
- και οι δύο
- χτίζω
- Κτίριο
- χτισμένο
- βάρος
- επιχείρηση
- Επιχειρηματικές εφαρμογές
- by
- κλήση
- CAN
- Χωρητικότητα
- άνθρακας
- περίπτωση
- περιπτώσεις
- CD
- φορτία
- chatbot
- chatbots
- έλεγχος
- τάξη
- τάξεις
- ταξινόμηση
- Ταξινόμηση
- κλειστό
- Backup
- CO
- κωδικός
- συνεργασία
- κοινότητα
- Εταιρείες
- Συμμόρφωση
- εξαρτήματα
- περιεκτικός
- Υπολογίστε
- υπολογιστή
- Computer Vision
- χρήση υπολογιστή
- Πιθανά ερωτήματα
- διαμόρφωση
- έχει ρυθμιστεί
- περιέχουν
- Δοχείο
- Εμπορευματοκιβώτια
- Περιέχει
- περιεχόμενο
- συμφραζόμενα
- συμβάλλει
- έλεγχος
- ελέγχους
- Συνομιλία
- συνομιλίες
- Αντίστοιχος
- Κόστος
- δημιουργία
- δημιουργήθηκε
- δημιουργεί
- δημιουργία
- κριτήρια
- Ρεύμα
- Τη στιγμή
- έθιμο
- Πελάτες
- προσαρμόσετε
- προσαρμοσμένη
- ημερομηνία
- σύνολα δεδομένων
- βαθύς
- βαθιά μάθηση
- ορίζεται
- Ορίζει
- καθορίζοντας
- Πτυχίο
- απαιτήσεις
- Δημοκρατικός
- αποδεικνύουν
- αποδεικνύοντας
- εξαρτάται
- παρατάσσω
- ανάπτυξη
- Υπηρεσίες
- σχεδιασμένα
- καθέκαστα
- προγραμματιστές
- εξελίξεις
- Συσκευές
- διαφορετικές
- δύσκολος
- δυσκολίες
- συζητήσουν
- συζήτηση
- απόσταση
- διανέμονται
- κατανεμημένων υπολογιστών
- do
- Λιμενεργάτης
- έγγραφο
- τεκμηρίωση
- έγγραφα
- κάνει
- Όχι
- τομέα
- domains
- Μην
- κατεβάσετε
- λήψεις
- κατά την διάρκεια
- δυναμικά
- κάθε
- αλλιώς
- αλλού
- ενσωμάτωση
- μισθωτών
- δίνει τη δυνατότητα
- ενεργοποίηση
- Ενθαρρύνει
- Τελικό σημείο
- επιβάλλω
- Κινητήρας
- μηχανικός
- Μηχανική
- επιχειρήσεις
- Ολόκληρος
- καταχώριση
- ουσιώδης
- ηθικά
- ΠΑΝΤΑ
- παράδειγμα
- υπάρχουν
- αναμένει
- εξειδίκευση
- επεκτάσεις
- εξωτερικός
- εξαιρετικά
- Πρόσωπο
- οικογένεια
- Μόδα
- Αρχεία
- Αρχεία
- φιλτράρισμα
- φιλτράρισμα
- Τελικά
- οικονομικός
- οικονομικές ειδήσεις
- χρηματοοικονομικά προϊόντα
- Εύρεση
- Όνομα
- σημαία
- επικεντρώθηκε
- εστιάζει
- εστιάζοντας
- ακολουθήστε
- Εξής
- εξής
- Για
- μορφή
- Προώθηση
- τέσσερα
- φίλους
- από
- πλήρως
- λειτουργικότητα
- γενικού σκοπού
- παράγουν
- παράγεται
- δημιουργεί
- γενεά
- γενετική
- Παραγωγική τεχνητή νοημοσύνη
- παίρνω
- Git
- δεδομένου
- καλός
- GPU
- GPU
- Handles
- Χειρισμός
- υλικού
- Έχω
- he
- βοηθά
- Ψηλά
- υψηλή απόδοση
- του
- οικοδεσπότης
- φιλοξενείται
- φιλοξενία
- Πως
- Πώς να
- HTML
- http
- HTTPS
- Πρόσωπο αγκαλιάς
- ανθρώπινος
- ID
- προσδιορίσει
- if
- απεικονίζει
- εικόνα
- εικόνες
- εκτέλεση
- υλοποιεί
- εισαγωγή
- σπουδαιότητα
- σημαντικό
- βελτίωση
- in
- περιλαμβάνονται
- Συμπεριλαμβανομένου
- ενσωματώνω
- αύξηση
- ευρετήριο
- υποδεικνύω
- υποδηλώνει
- βιομηχανίες
- βιομηχανία
- πληροφορίες
- Καινοτομία
- εισαγωγή
- είσοδοι
- μέσα
- ιδέες
- εγκαθιστώ
- εγκατασταθεί
- παράδειγμα
- οδηγίες
- ασφάλιση
- ενσωματώσει
- Νοημοσύνη
- αλληλεπιδράσεις
- εσωτερικός
- παρέμβαση
- σε
- επένδυση
- επενδυτικές συστάσεις
- συμμετέχουν
- IT
- ΤΟΥ
- εαυτό
- Java
- jpg
- json
- Κλειδί
- Ξέρω
- γνώση
- Ετικέτες
- Γλώσσα
- large
- Μεγάλες επιχειρήσεις
- Αφάνεια
- Ηγεσία
- μάθηση
- ελάχιστα
- Νομικά
- ας
- Μόχλευση
- βιβλιοθήκες
- Βιβλιοθήκη
- Άδεια
- Μου αρέσει
- LIMIT
- Λιστα
- Είδος μικρής καμήλας
- LLM
- φορτία
- τοπικός
- τοποθεσία
- λογική
- Παρτίδα
- Χαμηλός
- μηχανή
- μάθηση μηχανής
- που
- Κυρίως
- κάνω
- Κατασκευή
- πολοί
- Μάρτιος
- αγορά
- το αίσθημα της αγοράς
- Τάσεις της αγοράς
- μάσκα
- ταιριάζουν
- Γνωρίστε
- μηνύματα
- μέθοδοι
- Metrics
- εκατομμύριο
- ML
- μοντέλο
- μοντέλα
- μετριοπάθεια
- Μονάδα μέτρησης
- Παρακολούθηση
- περισσότερο
- πολλαπλούς
- όνομα
- Φυσικό
- Επεξεργασία φυσικής γλώσσας
- απαραίτητος
- Ανάγκη
- που απαιτούνται
- ανάγκες
- αρνητικός
- νέα
- επόμενη γενιά
- nlp
- Όχι.
- σημειωματάριο
- αριθμός
- πολυάριθμες
- αντικείμενο
- αντικειμένων
- εμπόδια
- την απόκτηση
- of
- προσφορά
- on
- ONE
- αποκλειστικά
- ανοικτού κώδικα
- βέλτιστη
- βελτιστοποίηση
- Επιλογή
- Επιλογές
- or
- επιχειρήσεις
- οργανώσεις
- OS
- ΑΛΛΑ
- έξω
- παραγωγή
- εκτός
- επί
- καταπατώ
- δική
- πακέτο
- συσκευάζονται
- Packages
- Πάντα
- χαρτιά
- Παράλληλο
- παράμετρος
- παράμετροι
- μέρος
- passieren
- πέρασε
- Πέρασμα
- μονοπάτι
- πρότυπο
- επίδοση
- εκτέλεση
- πλατφόρμες
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- Σημείο
- Δημοφιλής
- δυνατός
- Θέση
- δυναμικού
- τροφοδοτείται
- ισχυρός
- προβλέψει
- Προβλέψεις
- προετοιμασία
- παρόν
- παρουσιάζονται
- προηγούμενος
- Κύριος
- προβλήματα
- διαδικασια μας
- μεταποίηση
- παράγει
- Προϊόντα
- Προγραμματισμός
- ιδιότητες
- παρέχουν
- παρέχεται
- παρέχει
- χορήγηση
- σκοπός
- Σπρώξτε
- Python
- pytorch
- ποιότητα
- ερώτηση
- Ερωτήσεις
- σειρά
- κυμαίνεται
- Ανάγνωση
- λόγους
- λαμβάνει
- συστάσεις
- συνιστάται
- μείωση
- σχετίζεται με
- κυκλοφόρησε
- λείψανα
- αξιοσημείωτος
- Εκθέσεις
- Αποθήκη
- ζητήσει
- αιτήματα
- απαιτείται
- έρευνα
- ερευνητές
- Υποστηρικτικό υλικό
- απάντησης
- απαντήσεις
- υπεύθυνος
- ΠΕΡΙΦΕΡΕΙΑ
- περιορισμένος
- αποτέλεσμα
- Αποτελέσματα
- διατηρώ
- απόδοση
- τρέξιμο
- τρέξιμο
- Ασφάλεια
- σοφός
- Κλίμακα
- απολέπιση
- Αναζήτηση
- αναζήτηση
- Τμήμα
- τμήματα
- δείτε
- στείλετε
- αποστέλλονται
- ποινή
- συναίσθημα
- εξυπηρετούν
- εξυπηρετεί
- Υπηρεσίες
- εξυπηρετούν
- Συνεδρίαση
- σειρά
- τον καθορισμό
- ρυθμίσεις
- θα πρέπει να
- δείχνουν
- Απλούς
- αφού
- ενιαίας
- ευμεγέθης
- Μέγεθος
- Στιγμιότυπο
- So
- λύση
- Λύσεις
- μερικοί
- εξελιγμένα
- Πηγή
- Πηγές
- ειδικός
- ειδικευμένος
- συγκεκριμένες
- καθορίζεται
- ταχύτητα
- Δαπάνες
- ξεκίνησε
- εκκίνηση
- Startups
- Βήμα
- Βήματα
- στάθμευση
- χώρος στο δίσκο
- αποθηκεύονται
- καταστήματα
- εναποθήκευση
- Σπάγγος
- στούντιο
- Επιτυχώς
- τέτοιος
- Υποφέρει
- συνοψίζω
- παρέχεται
- προμήθεια
- υποστήριξη
- Υποστηρίζει
- sydney
- σύστημα
- τραπέζι
- Έργο
- εργασίες
- τεχνικές
- Τεχνολογίες
- Τεχνολογία
- ότι
- Η
- Η Πηγη
- τους
- Τους
- τότε
- Εκεί.
- εκ τούτου
- επομένως
- Αυτοί
- αυτό
- σκέψη
- σκέψη ηγεσία
- διακίνηση
- ώρα
- προς την
- μαζι
- συμβολίζεται
- εργαλεία
- εκπαιδευμένο
- Εκπαίδευση
- Διαφάνεια
- Ταξίδια
- Τάσεις
- αληθής
- μετατρέπει
- δύο
- τύπος
- υπό
- καταλαβαίνω
- μοναδικός
- Παγκόσμιος
- μέχρι
- Ενημέρωση
- ενημερώθηκε
- ενημερώσεις
- Φορτώθηκε
- us
- χρήση
- περίπτωση χρήσης
- μεταχειρισμένος
- Χρήστες
- Χρήστες
- χρησιμοποιεί
- χρησιμοποιώντας
- χρησιμότητα
- αξία
- διάφορα
- VICUNA
- Βιργινία
- όραμα
- περιμένετε
- θέλω
- we
- ιστός
- διαδικτυακές υπηρεσίες
- ΛΟΙΠΌΝ
- Τι
- πότε
- Ποιό
- ευρύς
- Ευρύ φάσμα
- Wikipedia
- θα
- με
- χωρίς
- Εργασία
- εργάστηκαν
- εργάτης
- εργαζομένων
- ροής εργασίας
- ροές εργασίας
- εργαζόμενος
- λειτουργεί
- θα
- X
- Εσείς
- Σας
- zephyrnet