Δυσκολεύεστε με το AI ή την ανάπτυξη πλήρους πακέτου; Οι ειδικοί μας είναι εδώ για να σας καθοδηγήσουν: εξατομικευμένες συμβουλές, τεχνική ενσωμάτωση και πολλά άλλα. Επικοινωνήστε μαζί μας στο [email protected].

Ανάπτυξη του γεννητικού μοντέλου Mistral 7b σε μια GPU A10 στο AWS

Summary

Αυτό το μάθημα NLP cloud δείχνει πώς να αναπτύξετε και να χρησιμοποιήσετε το γεννητικό μοντέλο τεχνητής νοημοσύνης Mistral 7b σε μια GPU NVIDIA A10 στο AWS.

Το μοντέλο Mistral 7b κερδίζει το LLaMA 3 7b σε όλα τα benchmarks και το LLaMA 3 13b σε πολλά benchmarks. Στην πραγματικότητα, βρίσκεται στο ίδιο επίπεδο με το μοντέλο LLaMA 1 34b.

Για την ανάπτυξή του και τη χρήση του απαιτούνται τουλάχιστον 15GB VRAM, γι' αυτό και χρειαζόμαστε μια GPU A10 με 24GB VRAM τουλάχιστον.

Ακολουθεί η δομή του μαθήματος:

Transcript

Γεια σας, είμαι ο Julien Sainas από το NLP Cloud.

Σήμερα, θα δούμε πώς μπορούμε να αναπτύξουμε το γενεσιουργό μοντέλο Mistral 7b σε μια AWS A10 GPUHere we go.

Το Mistral 7b είναι ένα υπερσύγχρονο παραγωγικό μοντέλο που κυκλοφόρησε από τη γαλλική εταιρεία Mistral AI.

Αυτό το μοντέλο κυκλοφόρησε τον Σεπτέμβριο του 2023 και κερδίζει το Lama 2 7b σε όλα τα επίσημα benchmarks.

Ακόμα πιο ενδιαφέρον είναι ότι κερδίζει επίσης το Lama 2 13b σε πολλούς δείκτες αναφοράς και βρίσκεται στο ίδιο επίπεδο με το Lama 1 34b.

Η Mistral AI κυκλοφόρησε αυτό το μοντέλο με άδεια Apache, η οποία σας επιτρέπει να το χρησιμοποιήσετε όπως θέλετε.

Η ομάδα κυκλοφόρησε τόσο ένα θεμελιώδες μοντέλο όσο και μια βελτιωμένη έκδοση συνομιλίας.

Θα αναπτύξουμε την έκδοση συνομιλίας σε αυτό το βίντεο σήμερα.

Το Mistral 7b απαιτεί τουλάχιστον 14 gigs εικονικής μνήμης και περισσότερο σε περίπτωση μεγάλου μεγέθους πλαισίου.

Έτσι, θα την αναπτύξουμε σε μια GPU A10 NVIDIA στο AWS, καθώς αυτή η GPU διαθέτει 24 gigs εικονικής μνήμης και είναι αρκετά αποδοτική.

Ο ευκολότερος τρόπος για να αναπτύξετε το Mistral 7b είναι να χρησιμοποιήσετε το πλαίσιο Hugging Face και να ακολουθήσετε τις επίσημες οδηγίες του Mistral AI.

Ως πρώτο βήμα, θα πρέπει να επιλέξουμε τη σωστή μηχανή AWS.

Υπάρχουν πάρα πολλές μηχανές στο AWS, οπότε η καλύτερη συμβουλή που μπορώ να σας δώσω είναι να ξεκινήσετε με αυτή τη σελίδα τύπων παραστάσεων και στη συνέχεια να μεταβείτε στην επιλογή Accelerated Computing στα αριστερά.

Εδώ, έχετε μια λίστα με όλες τις επιταχυνόμενες περιπτώσεις υλικού που παρέχει η AWS, και αυτή που θέλουμε σήμερα είναι η G5.

Όπως μπορείτε να δείτε εδώ, το G5 ενσωματώνει μια GPU A10, η οποία είναι αυτό που θέλουμε.

Υπάρχουν διάφορες γεύσεις των περιπτώσεων G5.

Ορισμένοι διαθέτουν μόνο μία GPU, άλλοι τέσσερις ή οκτώ GPU.

Μια GPU είναι αρκετή για εμάς, επειδή υπάρχει αρκετή εικονική μνήμη σε μια GPU, αλλά πρέπει να είμαστε πολύ προσεκτικοί σχετικά με το μέγεθος της μνήμης που έχει η περίπτωση, επειδή όταν θα ξεκινήσουμε το μοντέλο Mistral 7b, θα χρειαστούμε προσωρινά λίγη μνήμη για να φορτώσουμε το μοντέλο.

Αυτός είναι ο λόγος για τον οποίο θα επιλέξουμε μια μεγάλη περίπτωση G5 4X σήμερα, επειδή τα 64 gigs θα πρέπει να είναι αρκετά.

Τώρα, μεταβαίνω στην κονσόλα του AWS και κάνω κλικ στην επιλογή Launch Instance.

Ας το ονομάσουμε δοκιμή A10 Mistral.

Θα επιλέξουμε το λειτουργικό σύστημα Ubuntu, αλλά υπάρχει ένα κόλπο.

Δεν θέλουμε να επιλέξουμε το τυπικό λειτουργικό σύστημα Ubuntu, επειδή θα πρέπει να εγκαταστήσουμε χειροκίνητα τα προγράμματα οδήγησης της NVIDIA σε αυτό, κάτι που είναι πολύ επίπονο.

Αυτό που θα κάνουμε είναι να επιλέξουμε τον διακομιστή Deep Learning AMI GPU PyTorch εδώ, ο οποίος είναι πολύ καλύτερος επειδή αυτός ο AMI έρχεται με Ubuntu συν τους οδηγούς NVIDIA συν την εργαλειοθήκη CUDA συν το PyTorch και άλλα πράγματα, τα οποία είναι όλα αυτά που θα χρειαστούμε σήμερα για τις δοκιμές μας.

Εδώ, επιλέγουμε τη μεγάλη περίπτωση G5 4X.

Αν δεν έχετε ζεύγος κλειδιών, πρέπει να δημιουργήσετε ένα.

Αν είναι η πρώτη φορά που το κάνετε αυτό και δεν είστε ακριβώς σίγουροι για το πώς να συνδέσετε το VS Code με την παρουσία σας στο AWS, σας συνιστώ να παρακολουθήσετε το ειδικό μας βίντεο σχετικά με το απομακρυσμένο περιβάλλον ανάπτυξης με το VS Code στο AWS.

Δεν χρειάζεται να ανοίξετε άλλες θύρες, και σας συνιστώ να προσθέσετε ίσως 100 gigs δίσκου.

Θεωρητικά, το μοντέλο θα πρέπει να καταλαμβάνει μόνο 20 gigs σκληρού δίσκου, αλλά είναι πάντα καλύτερο να έχουμε περισσότερα, επειδή ίσως χρειαστεί να εγκαταστήσουμε βιβλιοθήκες, οπότε εδώ θα είμαστε ασφαλείς.

Ας κάνουμε κλικ στην επιλογή Launch Instance.

Ωραία, δημιουργήθηκε.

Αν έχετε πρόβλημα με την ποσόστωση επειδή ίσως είναι η πρώτη φορά που ξεκινάτε μια GPU 8N, σας συνιστώ να απευθυνθείτε στην υποστήριξη της AWS.

Παίρνω τώρα τη δημόσια IP εδώ, και τώρα μεταβαίνω στο VS Code.

Στο κάτω αριστερό μέρος, πρέπει να συνδέσετε ένα τρέχον παράθυρο με έναν κεντρικό υπολογιστή και πρώτα πρέπει να ρυθμίσετε τις παραμέτρους των κεντρικών υπολογιστών σας.

Εδώ, αυτή είναι η διεύθυνση IP που μόλις ανέκτησα από το AWS και αυτό είναι το κλειδί SSH.

Αποθηκεύω το αρχείο και κάνω ξανά το ίδιο πράγμα, και αυτή τη φορά κάνω κλικ στο Mistral 7B.

Θέλω να αποδεχτώ το νέο δακτυλικό αποτύπωμα.

Τέλεια.

Τώρα βρισκόμαστε στη μηχανή μας με GPU 8N.

Ας ελέγξουμε πρώτα αν η GPU είναι διαθέσιμη με τους σωστούς οδηγούς.

Με το NVIDIA SMI, τέλεια.

Μπορώ να δω ότι έχω μια GPU 8N εδώ και ότι είναι άδεια, οπότε έχω σχεδόν 24 gigs VRAM για το μοντέλο μου σήμερα.

Δημιουργώ έναν κατάλογο δοκιμών που θα ανοίξω με το VS Code και τώρα δημιουργώ ένα αρχείο δοκιμών.

Ίσως ας το ονομάσουμε infer.py.

Τι πρέπει να βάλουμε λοιπόν σε αυτό το αρχείο infer.py; Εύκολα.

Ας πάμε στο μοντέλο τεχνητής νοημοσύνης Mistral στο Hugging Face.

Αν είναι η πρώτη φορά που κατεβάζετε ένα μοντέλο στο Hugging Face, βασικά μπορείτε να πάτε εδώ στα μοντέλα, και έχετε πάρα πολλά διαθέσιμα μοντέλα.

Μπορείτε να κάνετε κλικ εδώ και να πληκτρολογήσετε Mistral 7B.

Όπως μπορείτε να δείτε, το Mistral ήταν ήδη στην κορυφή της λίστας, επειδή είναι πολύ μοντέρνο αυτές τις μέρες.

Θα επιλέξω το μοντέλο Instruct επειδή είναι πιο αστείο για να παίξω σήμερα, και εδώ ακολουθώ απλώς τις οδηγίες της ομάδας τεχνητής νοημοσύνης του Mistral.

Έτσι, απλά αντιγράφω και επικολλώ τον κώδικα στο VS Code.

Δεν θα λειτουργήσει ως έχει, επειδή πριν από αυτό, θα πρέπει να εγκαταστήσουμε τη βιβλιοθήκη Transformers.

Καθώς λοιπόν αυτό το μοντέλο Mistral 7B μόλις προστέθηκε στο Transformers, δεν είναι ακόμη διαθέσιμο στο πακέτο PyPy, αλλά αυτό δεν αποτελεί πρόβλημα.

Θα εγκαταστήσουμε το Transformers απευθείας από το αποθετήριο GitHub.

Ωραία.

Τώρα, το Transformers έχει εγκατασταθεί σωστά.

Το τελευταίο πράγμα που θα πρέπει να κάνουμε είναι να χρησιμοποιήσουμε την έκδοση 16 κινητής υποδιαστολής του μοντέλου, επειδή αν χρησιμοποιήσουμε την προεπιλεγμένη έκδοση του μοντέλου, η οποία είναι 32 κινητής υποδιαστολής, θα είναι πολύ μεγάλη για την A10 GPU μας, και τις περισσότερες φορές, η διαφορά μεταξύ FP16 και FP32 για αυτό το είδος μοντέλου δεν είναι απολύτως αισθητή.

Έτσι, αυτό που πρέπει να κάνουμε σήμερα είναι να εισάγουμε τον Torch και να προσθέσουμε αυτή την παράμετρο, Torch dtype, κατά τη φόρτωση του μοντέλου.

Ωραία.

Τώρα, ας προσπαθήσουμε να εκτελέσουμε το σενάριο εξαγωγής συμπερασμάτων.

Ωραία.

Έτσι έχουμε μια σωστή συνταγή για τη μαγιονέζα.

Ίσως μπορούμε να δοκιμάσουμε κάτι άλλο.

Ας ρωτήσουμε το μοντέλο πώς να εγκαταστήσουμε το Transformers σε έναν διακομιστή Linux.

Μπορούμε να το αφαιρέσουμε αυτό.

Ωραία.

Έτσι CSS, δεν είμαι σίγουρος γιατί.

Αυτό ακούγεται σωστό, εκτός από τη σήμανση CSS εδώ.

Δεν είμαι σίγουρος γιατί υπάρχει αυτή η λεπτομέρεια, αλλά νομίζω ότι αυτό είναι αρκετό για να σας δείξει ότι πρόκειται για ένα ωραίο μοντέλο 7B, και τώρα ξέρετε πώς να το χρησιμοποιήσετε, οπότε τώρα είναι η σειρά σας.

Τώρα γνωρίζετε πώς να αναπτύξετε το μοντέλο Mistral 7B στον δικό σας διακομιστή.

Όπως μπορείτε να δείτε, δεν είναι απαραίτητα πολύπλοκο, ειδικά επειδή σήμερα χρησιμοποιούμε μόνο μία GPU.

Αν δεν έχετε μια GPU A10 με αρκετή εικονική μνήμη, ίσως χρειαστείτε πολλές μικρότερες GPU.

Σε αυτή την περίπτωση, θα πρέπει να μοιράσετε το μοντέλο σας σε πολλές μικρότερες GPU.

Θα είναι λίγο πιο περίπλοκο και θα χρειαστούμε άλλο ένα ειδικό βίντεο γι' αυτό.

Καλή σας μέρα.