Τα μοντέλα γενετικής τεχνητής νοημοσύνης γνωρίζουν ταχεία ανάπτυξη τους τελευταίους μήνες λόγω των εντυπωσιακών δυνατοτήτων του στη δημιουργία ρεαλιστικού κειμένου, εικόνων, κώδικα και ήχου. Μεταξύ αυτών των μοντέλων, τα μοντέλα Stable Diffusion ξεχωρίζουν για τη μοναδική τους δύναμη στη δημιουργία εικόνων υψηλής ποιότητας με βάση τα μηνύματα κειμένου. Το Stable Diffusion μπορεί να δημιουργήσει μια μεγάλη ποικιλία εικόνων υψηλής ποιότητας, συμπεριλαμβανομένων ρεαλιστικών πορτρέτων, τοπίων, ακόμη και αφηρημένης τέχνης. Και, όπως και άλλα μοντέλα παραγωγής τεχνητής νοημοσύνης, τα μοντέλα Stable Diffusion απαιτούν ισχυρούς υπολογιστές για την παροχή συμπερασμάτων χαμηλής καθυστέρησης.
Σε αυτήν την ανάρτηση, δείχνουμε πώς μπορείτε να εκτελέσετε μοντέλα Stable Diffusion και να επιτύχετε υψηλή απόδοση με το χαμηλότερο κόστος σε Amazon Elastic Compute Cloud (Amazon EC2) χρησιμοποιώντας Εμφανίσεις Amazon EC2 Inf2 τροφοδοτείται από AWS Inferentia2. Εξετάζουμε την αρχιτεκτονική ενός μοντέλου Stable Diffusion και περπατάμε στα βήματα της σύνταξης ενός μοντέλου Stable Diffusion χρησιμοποιώντας AWS Neuron και την ανάπτυξή του σε μια παρουσία Inf2. Συζητάμε επίσης τις βελτιστοποιήσεις που κάνει αυτόματα το Neuron SDK για τη βελτίωση της απόδοσης. Μπορείτε να εκτελέσετε και τις δύο εκδόσεις Stable Diffusion 2.1 και 1.5 στο AWS Inferentia2 οικονομικά. Τέλος, δείχνουμε πώς μπορείτε να αναπτύξετε ένα μοντέλο Stable Diffusion σε μια παρουσία Inf2 με Amazon Sage Maker.
Το μέγεθος μοντέλου Stable Diffusion 2.1 στο floating point 32 (FP32) είναι 5 GB και 2.5 GB στο bfoat16 (BF16). Μια μεμονωμένη παρουσία inf2.xlarge έχει έναν επιταχυντή AWS Inferentia2 με 32 GB μνήμης HBM. Το μοντέλο Stable Diffusion 2.1 μπορεί να χωρέσει σε μία μόνο παρουσία inf2.xlarge. Το Stable Diffusion είναι ένα μοντέλο κειμένου σε εικόνα που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε εικόνες διαφορετικών στυλ και περιεχομένου απλώς παρέχοντας μια προτροπή κειμένου ως είσοδο. Για να μάθετε περισσότερα σχετικά με την αρχιτεκτονική του μοντέλου Stable Diffusion, ανατρέξτε στο Δημιουργήστε εικόνες υψηλής ποιότητας με μοντέλα Stable Diffusion και αναπτύξτε τις οικονομικά με το Amazon SageMaker.
Πώς το Neuron SDK βελτιστοποιεί την απόδοση Stable Diffusion
Για να μπορέσουμε να αναπτύξουμε το μοντέλο Stable Diffusion 2.1 σε περιπτώσεις AWS Inferentia2, πρέπει να μεταγλωττίσουμε τα στοιχεία του μοντέλου χρησιμοποιώντας το Neuron SDK. Το Neuron SDK, το οποίο περιλαμβάνει έναν μεταγλωττιστή βαθιάς εκμάθησης, χρόνο εκτέλεσης και εργαλεία, μεταγλωττίζει και βελτιστοποιεί αυτόματα μοντέλα βαθιάς εκμάθησης, ώστε να μπορούν να εκτελούνται αποτελεσματικά σε περιπτώσεις Inf2 και να εξάγουν την πλήρη απόδοση του επιταχυντή AWS Inferentia2. Έχουμε διαθέσιμα παραδείγματα για το μοντέλο Stable Diffusion 2.1 GitHub repo. Αυτό το σημειωματάριο παρουσιάζει ένα παράδειγμα από άκρο σε άκρο του τρόπου μεταγλώττισης ενός μοντέλου Stable Diffusion, αποθήκευσης των μεταγλωττισμένων μοντέλων Neuron και φόρτωσης στο χρόνο εκτέλεσης για συμπέρασμα.
Χρησιμοποιούμε StableDiffusionPipeline
από το Αγκαλιασμένο Πρόσωπο diffusers
βιβλιοθήκη για τη φόρτωση και τη μεταγλώττιση του μοντέλου. Στη συνέχεια, συγκεντρώνουμε όλα τα στοιχεία του μοντέλου για Neuron χρησιμοποιώντας torch_neuronx.trace()
και αποθηκεύστε το βελτιστοποιημένο μοντέλο ως TorchScript. Οι διαδικασίες μεταγλώττισης μπορεί να είναι αρκετά εντατικές στη μνήμη, απαιτώντας σημαντική ποσότητα μνήμης RAM. Για να το παρακάμψουμε αυτό, πριν ανιχνεύσουμε κάθε μοντέλο, δημιουργούμε ένα deepcopy
του τμήματος του αγωγού που ιχνηλατείται. Μετά από αυτό, διαγράφουμε το αντικείμενο του pipeline από τη μνήμη χρησιμοποιώντας del pipe
. Αυτή η τεχνική είναι ιδιαίτερα χρήσιμη κατά τη μεταγλώττιση σε περιπτώσεις με χαμηλή μνήμη RAM.
Επιπλέον, πραγματοποιούμε επίσης βελτιστοποιήσεις στα μοντέλα Stable Diffusion. Το UNet κατέχει την πιο εντατική υπολογιστική πτυχή του συμπεράσματος. Το στοιχείο UNet λειτουργεί σε τανυστές εισόδου που έχουν μέγεθος παρτίδας δύο, δημιουργώντας έναν αντίστοιχο τανυστή εξόδου επίσης με μέγεθος παρτίδας δύο, για την παραγωγή μιας ενιαίας εικόνας. Τα στοιχεία σε αυτές τις παρτίδες είναι εντελώς ανεξάρτητα το ένα από το άλλο. Μπορούμε να εκμεταλλευτούμε αυτή τη συμπεριφορά για να έχουμε βέλτιστο λανθάνοντα χρόνο εκτελώντας μία παρτίδα σε κάθε πυρήνα Neuron. Μεταγλωττίζουμε το UNet για μία παρτίδα (χρησιμοποιώντας τανυστές εισόδου με μία παρτίδα) και στη συνέχεια χρησιμοποιούμε το torch_neuronx.DataParallel
API για να φορτώσει αυτό το μοντέλο μεμονωμένης παρτίδας σε κάθε πυρήνα. Η έξοδος αυτού του API είναι μια ενιαία μονάδα δύο παρτίδων: μπορούμε να περάσουμε στο UNet τις εισόδους δύο παρτίδων και επιστρέφεται μια έξοδος δύο παρτίδων, αλλά εσωτερικά, τα δύο μοντέλα μιας παρτίδας εκτελούνται στους δύο πυρήνες Neuron . Αυτή η στρατηγική βελτιστοποιεί τη χρήση των πόρων και μειώνει την καθυστέρηση.
Μεταγλώττιση και ανάπτυξη ενός μοντέλου Stable Diffusion σε μια παρουσία Inf2 EC2
Για να μεταγλωττίσετε και να αναπτύξετε το μοντέλο Stable Diffusion σε μια παρουσία Inf2 EC2, υπογράψτε στο Κονσόλα διαχείρισης AWS και δημιουργήστε μια παρουσία inf2.8xlarge. Σημειώστε ότι μια παρουσία inf2.8xlarge απαιτείται μόνο για τη μεταγλώττιση του μοντέλου, επειδή η μεταγλώττιση απαιτεί υψηλότερη μνήμη κεντρικού υπολογιστή. Το μοντέλο Stable Diffusion μπορεί να φιλοξενηθεί σε μια παρουσία inf2.xlarge. Μπορείτε να βρείτε το πιο πρόσφατο AMI με τις βιβλιοθήκες Neuron χρησιμοποιώντας τα παρακάτω Διεπαφή γραμμής εντολών AWS Εντολή (AWS CLI):
Για αυτό το παράδειγμα, δημιουργήσαμε μια παρουσία EC2 χρησιμοποιώντας το Deep Learning AMI Neuron PyTorch 1.13 (Ubuntu 20.04). Στη συνέχεια, μπορείτε να δημιουργήσετε ένα περιβάλλον εργαστηρίου JupyterLab συνδέοντας το στιγμιότυπο και εκτελώντας τα ακόλουθα βήματα:
Βρίσκεται ένα σημειωματάριο με όλα τα βήματα για τη μεταγλώττιση και τη φιλοξενία του μοντέλου GitHub.
Ας δούμε τα βήματα μεταγλώττισης για ένα από τα μπλοκ κωδικοποιητή κειμένου. Άλλα μπλοκ που αποτελούν μέρος του αγωγού Stable Diffusion μπορούν να μεταγλωττιστούν με παρόμοιο τρόπο.
Το πρώτο βήμα είναι να φορτώσετε το προεκπαιδευμένο μοντέλο από το Hugging Face. ο StableDiffusionPipeline.from_pretrained
Η μέθοδος φορτώνει το προεκπαιδευμένο μοντέλο στο αντικείμενο του pipeline μας, pipe
. Στη συνέχεια δημιουργούμε ένα deepcopy
του κωδικοποιητή κειμένου από τον αγωγό μας, κλωνοποιώντας τον ουσιαστικά. ο del pipe
Στη συνέχεια, η εντολή χρησιμοποιείται για τη διαγραφή του αρχικού αντικειμένου pipeline, ελευθερώνοντας τη μνήμη που καταναλώθηκε από αυτό. Εδώ, ποσοτικοποιούμε το μοντέλο σε βάρη BF16:
Αυτό το βήμα περιλαμβάνει την αναδίπλωση του κωδικοποιητή κειμένου μας με το NeuronTextEncoder
περικάλυμμα. Η έξοδος μιας μονάδας κωδικοποιητή μεταγλωττισμένου κειμένου θα είναι από dict
. Το μετατρέπουμε σε α list
πληκτρολογήστε χρησιμοποιώντας αυτό το περιτύλιγμα:
Αρχικοποιούμε τον τανυστή PyTorch emb
με κάποιες αξίες. ο emb
Ο τανυστής χρησιμοποιείται ως παράδειγμα εισόδου για το torch_neuronx.trace
λειτουργία. Αυτή η συνάρτηση ανιχνεύει τον κωδικοποιητή κειμένου μας και τον μεταγλωττίζει σε μια μορφή βελτιστοποιημένη για Neuron. Η διαδρομή καταλόγου για το μεταγλωττισμένο μοντέλο δημιουργείται με σύνδεση COMPILER_WORKDIR_ROOT
με τον υποκατάλογο text_encoder
:
Ο κωδικοποιητής μεταγλωττισμένου κειμένου αποθηκεύεται χρησιμοποιώντας torch.jit.save
. Αποθηκεύεται με το όνομα αρχείου model.pt στο text_encoder
κατάλογος του χώρου εργασίας του μεταγλωττιστή μας:
Η σημειωματάριο περιλαμβάνει παρόμοια βήματα για τη μεταγλώττιση άλλων στοιχείων του μοντέλου: UNet, αποκωδικοποιητής VAE και VAE post_quant_conv
. Αφού έχετε μεταγλωττίσει όλα τα μοντέλα, μπορείτε να φορτώσετε και να εκτελέσετε το μοντέλο ακολουθώντας αυτά τα βήματα:
- Καθορίστε τις διαδρομές για τα μεταγλωττισμένα μοντέλα.
- Φορτώστε ένα προεκπαιδευμένο
StableDiffusionPipeline
μοντέλο, με τη διαμόρφωσή του να έχει καθοριστεί για χρήση του τύπου δεδομένων bfloat16. - Φορτώστε το μοντέλο UNet σε δύο πυρήνες Neuron χρησιμοποιώντας το
torch_neuronx.DataParallel
API. Αυτό επιτρέπει την εκτέλεση παράλληλων συμπερασμάτων δεδομένων, γεγονός που μπορεί να επιταχύνει σημαντικά την απόδοση του μοντέλου. - Τοποθετήστε τα υπόλοιπα μέρη του μοντέλου (
text_encoder
,decoder
, ναpost_quant_conv
) σε έναν μοναδικό πυρήνα νευρώνα.
Στη συνέχεια, μπορείτε να εκτελέσετε τη διοχέτευση παρέχοντας κείμενο εισαγωγής ως προτροπές. Ακολουθούν μερικές εικόνες που δημιουργούνται από το μοντέλο για τις προτροπές:
- Πορτρέτο του renaud sechan, στυλό και μελάνι, περίπλοκα γραμμικά σχέδια, από τον Craig Mullins, Ruan Jia, Kentaro Miura, Greg Rutkowski, Loundraw
- Πορτρέτο του παλιού ανθρακωρύχου τον 19ο αιώνα, όμορφη ζωγραφική, με εξαιρετικά λεπτομερή ζωγραφική προσώπου από τον Γκρεγκ Ρουτκόφσκι
- Ένα κάστρο στη μέση ενός δάσους
Host Stable Diffusion 2.1 σε AWS Inferentia2 και SageMaker
Η φιλοξενία μοντέλων Stable Diffusion με το SageMaker απαιτεί επίσης μεταγλώττιση με το Neuron SDK. Μπορείτε να ολοκληρώσετε τη συλλογή εκ των προτέρων ή κατά τη διάρκεια της εκτέλεσης χρησιμοποιώντας κοντέινερ Large Model Inference (LMI). Η έγκαιρη μεταγλώττιση επιτρέπει ταχύτερους χρόνους φόρτωσης του μοντέλου και είναι η προτιμώμενη επιλογή.
Τα κοντέινερ SageMaker LMI παρέχουν δύο τρόπους για την ανάπτυξη του μοντέλου:
- Μια επιλογή χωρίς κωδικό όπου απλώς παρέχουμε α
serving.properties
αρχείο με τις απαιτούμενες διαμορφώσεις - Φέρτε το δικό σας σενάριο συμπερασμάτων
Εξετάζουμε και τις δύο λύσεις και εξετάζουμε τις διαμορφώσεις και το σενάριο συμπερασμάτων (model.py
). Σε αυτήν την ανάρτηση, παρουσιάζουμε την ανάπτυξη χρησιμοποιώντας ένα προ-μεταγλωττισμένο μοντέλο που είναι αποθηκευμένο σε ένα Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδος. Μπορείτε να χρησιμοποιήσετε αυτό το προ-μεταγλωττισμένο μοντέλο για τις αναπτύξεις σας.
Διαμορφώστε το μοντέλο με ένα παρεχόμενο σενάριο
Σε αυτήν την ενότητα, δείχνουμε πώς να διαμορφώσετε το κοντέινερ LMI ώστε να φιλοξενεί τα μοντέλα Stable Diffusion. Ο φορητός υπολογιστής SD2.1 διαθέσιμος σε GitHub. Το πρώτο βήμα είναι να δημιουργήσετε το πακέτο διαμόρφωσης μοντέλου σύμφωνα με την ακόλουθη δομή καταλόγου. Στόχος μας είναι να χρησιμοποιήσουμε τις ελάχιστες διαμορφώσεις μοντέλου που απαιτούνται για τη φιλοξενία του μοντέλου. Η δομή του καταλόγου που απαιτείται είναι η εξής:
Στη συνέχεια, δημιουργούμε το σερβίρισμα.ιδιοκτησίες αρχείο με τις ακόλουθες παραμέτρους:
Οι παράμετροι καθορίζουν τα εξής:
- επιλογή.model_id – Τα κοντέινερ LMI χρησιμοποιούν s5cmd για να φορτώσουν το μοντέλο από τη θέση S3 και επομένως πρέπει να καθορίσουμε τη θέση όπου βρίσκονται τα μεταγλωττισμένα βάρη μας.
- option.entryPoint – Για να χρησιμοποιήσουμε τους ενσωματωμένους χειριστές, καθορίζουμε την κλάση transformers-neuronx. Εάν έχετε ένα προσαρμοσμένο σενάριο συμπερασμάτων, θα πρέπει να το παρέχετε.
- επιλογή.dtype – Αυτό καθορίζει τη φόρτωση των βαρών σε συγκεκριμένο μέγεθος. Για αυτήν την ανάρτηση, χρησιμοποιούμε το BF16, το οποίο μειώνει περαιτέρω τις απαιτήσεις μνήμης έναντι του FP32 και μειώνει τον λανθάνοντα χρόνο μας λόγω αυτού.
- επιλογή.tensor_parallel_degree – Αυτή η παράμετρος καθορίζει τον αριθμό των επιταχυντών που χρησιμοποιούμε για αυτό το μοντέλο. Ο επιταχυντής τσιπ AWS Inferentia2 έχει δύο πυρήνες Neuron και έτσι καθορίζοντας μια τιμή 2 σημαίνει ότι χρησιμοποιούμε έναν επιταχυντή (δύο πυρήνες). Αυτό σημαίνει ότι μπορούμε πλέον να δημιουργήσουμε πολλούς εργαζόμενους για να αυξήσουμε την απόδοση του τελικού σημείου.
- επιλογή.μηχανή – Αυτό έχει οριστεί σε Python για να υποδείξει ότι δεν θα χρησιμοποιήσουμε άλλους μεταγλωττιστές όπως το DeepSpeed ή το Faster Transformer για αυτήν τη φιλοξενία.
Φέρτε το δικό σας σενάριο
Εάν θέλετε να φέρετε το δικό σας προσαρμοσμένο σενάριο συμπερασμάτων, πρέπει να καταργήσετε το option.entryPoint
από serving.properties
. Το δοχείο LMI σε αυτήν την περίπτωση θα αναζητήσει α model.py
αρχείο στην ίδια θέση με το serving.properties
και χρησιμοποιήστε το για να εκτελέσετε την εξαγωγή συμπερασμάτων.
Δημιουργήστε το δικό σας σενάριο συμπερασμάτων (model.py)
Η δημιουργία του δικού σας σεναρίου συμπερασμάτων είναι σχετικά απλή χρησιμοποιώντας το κοντέινερ LMI. Το δοχείο απαιτεί τη δική σας model.py
αρχείο για να υπάρχει υλοποίηση της ακόλουθης μεθόδου:
Ας εξετάσουμε μερικές από τις κρίσιμες περιοχές του επισυναπτόμενο σημειωματάριο, το οποίο δείχνει τη λειτουργία "φέρτε το δικό σας σενάριο".
Αντικαταστήστε το cross_attention
ενότητα με τη βελτιστοποιημένη έκδοση:
Αυτά είναι τα ονόματα του μεταγλωττισμένου αρχείου βαρών που χρησιμοποιήσαμε κατά τη δημιουργία των μεταγλωττίσεων. Μη διστάσετε να αλλάξετε τα ονόματα των αρχείων, αλλά βεβαιωθείτε ότι τα ονόματα αρχείων των βαρών σας ταιριάζουν με αυτά που καθορίζετε εδώ.
Στη συνέχεια, πρέπει να τα φορτώσουμε χρησιμοποιώντας το Neuron SDK και να τα ορίσουμε στα πραγματικά βάρη του μοντέλου. Κατά τη φόρτωση των βελτιστοποιημένων βαρών UNet, σημειώστε ότι καθορίζουμε επίσης τον αριθμό των πυρήνων Neuron στους οποίους χρειαζόμαστε για να τους φορτώσουμε. Εδώ, φορτώνουμε σε έναν μόνο επιταχυντή με δύο πυρήνες:
Εκτελώντας το συμπέρασμα με μια προτροπή καλείται το αντικείμενο σωλήνα για να δημιουργήσει μια εικόνα.
Δημιουργήστε το τελικό σημείο του SageMaker
Χρησιμοποιούμε Boto3 API για να δημιουργήσουμε ένα τελικό σημείο του SageMaker. Ολοκληρώστε τα παρακάτω βήματα:
- Δημιουργήστε το tarball μόνο με το σερβίρισμα και το προαιρετικό
model.py
αρχεία και ανεβάστε το στο Amazon S3. - Δημιουργήστε το μοντέλο χρησιμοποιώντας το κοντέινερ εικόνας και το μοντέλο tarball που μεταφορτώθηκε νωρίτερα.
- Δημιουργήστε τη διαμόρφωση τελικού σημείου χρησιμοποιώντας τις ακόλουθες βασικές παραμέτρους:
- Χρησιμοποιήστε ένα
ml.inf2.xlarge
παράδειγμα. - σετ
ContainerStartupHealthCheckTimeoutInSeconds
έως 240 για να βεβαιωθείτε ότι ο έλεγχος υγείας ξεκινά μετά την ανάπτυξη του μοντέλου. - σετ
VolumeInGB
σε μεγαλύτερη τιμή, ώστε να μπορεί να χρησιμοποιηθεί για τη φόρτωση των βαρών μοντέλων που έχουν μέγεθος 32 GB.
- Χρησιμοποιήστε ένα
Δημιουργήστε ένα μοντέλο SageMaker
Αφού δημιουργήσετε το αρχείο model.tar.gz και το ανεβάσετε στο Amazon S3, πρέπει να δημιουργήσουμε ένα μοντέλο SageMaker. Χρησιμοποιούμε το κοντέινερ LMI και το τεχνούργημα μοντέλου από το προηγούμενο βήμα για να δημιουργήσουμε το μοντέλο SageMaker. Το SageMaker μας επιτρέπει να προσαρμόσουμε και να εισάγουμε διάφορες μεταβλητές περιβάλλοντος. Για αυτήν τη ροή εργασίας, μπορούμε να αφήσουμε τα πάντα ως προεπιλογή. Δείτε τον παρακάτω κώδικα:
Δημιουργήστε το αντικείμενο μοντέλου, το οποίο ουσιαστικά δημιουργεί ένα κοντέινερ κλειδώματος που φορτώνεται στο στιγμιότυπο και χρησιμοποιείται για εξαγωγή συμπερασμάτων:
Δημιουργήστε ένα τελικό σημείο του SageMaker
Σε αυτήν την επίδειξη, χρησιμοποιούμε ένα παράδειγμα ml.inf2.xlarge. Πρέπει να ρυθμίσουμε το VolumeSizeInGB
παραμέτρους για την παροχή του απαραίτητου χώρου στο δίσκο για τη φόρτωση του μοντέλου και των βαρών. Αυτή η παράμετρος ισχύει για περιπτώσεις που υποστηρίζουν το Κατάστημα Amazon Elastic Block Εξάρτημα όγκου (Amazon EBS). Μπορούμε να αφήσουμε το χρονικό όριο λήψης μοντέλου και τον έλεγχο υγείας εκκίνησης κοντέινερ σε υψηλότερη τιμή, η οποία θα δώσει επαρκή χρόνο στο κοντέινερ να τραβήξει τα βάρη από το Amazon S3 και να φορτώσει στους επιταχυντές AWS Inferentia2. Για περισσότερες λεπτομέρειες, ανατρέξτε στο ΔημιουργίαEndpointConfig.
Τέλος, δημιουργούμε ένα τελικό σημείο του SageMaker:
Επικαλέστε το τελικό σημείο του μοντέλου
Αυτό είναι ένα μοντέλο παραγωγής, οπότε περνάμε στην προτροπή που χρησιμοποιεί το μοντέλο για να δημιουργήσει την εικόνα. Το ωφέλιμο φορτίο είναι του τύπου JSON:
Συγκριτική αξιολόγηση του μοντέλου Stable Diffusion στο Inf2
Πραγματοποιήσαμε μερικές δοκιμές για τη συγκριτική αξιολόγηση του μοντέλου Stable Diffusion με τύπο δεδομένων BF 16 στο Inf2 και είμαστε σε θέση να εξαγάγουμε αριθμούς καθυστέρησης που ανταγωνίζονται ή υπερβαίνουν ορισμένους από τους άλλους επιταχυντές για τη σταθερή διάχυση. Αυτό, σε συνδυασμό με το χαμηλότερο κόστος των τσιπ AWS Inferentia2, το καθιστά μια εξαιρετικά πολύτιμη πρόταση.
Οι παρακάτω αριθμοί προέρχονται από το μοντέλο Stable Diffusion που έχει αναπτυχθεί σε μια παρουσία inf2.xl. Για περισσότερες πληροφορίες σχετικά με το κόστος, ανατρέξτε στο Παρουσίες Amazon EC2 Inf2.
Μοντέλο | Ανάλυση | Τύπος δεδομένων | Επαναλήψεις | P95 Latency (ms) | Inf2.xl Κατ' απαίτηση κόστος ανά ώρα | Inf2.xl (Κόστος ανά εικόνα) |
Σταθερή Διάχυση 1.5 | 512 × 512 | bf16 | 50 | 2,427.4 | $0.76 | $0.0005125 |
Σταθερή Διάχυση 1.5 | 768 × 768 | bf16 | 50 | 8,235.9 | $0.76 | $0.0017387 |
Σταθερή Διάχυση 1.5 | 512 × 512 | bf16 | 30 | 1,456.5 | $0.76 | $0.0003075 |
Σταθερή Διάχυση 1.5 | 768 × 768 | bf16 | 30 | 4,941.6 | $0.76 | $0.0010432 |
Σταθερή Διάχυση 2.1 | 512 × 512 | bf16 | 50 | 1,976.9 | $0.76 | $0.0004174 |
Σταθερή Διάχυση 2.1 | 768 × 768 | bf16 | 50 | 6,836.3 | $0.76 | $0.0014432 |
Σταθερή Διάχυση 2.1 | 512 × 512 | bf16 | 30 | 1,186.2 | $0.76 | $0.0002504 |
Σταθερή Διάχυση 2.1 | 768 × 768 | bf16 | 30 | 4,101.8 | $0.76 | $0.0008659 |
Συμπέρασμα
Σε αυτήν την ανάρτηση, ασχολούμαστε βαθιά με τη συλλογή, τη βελτιστοποίηση και την ανάπτυξη του μοντέλου Stable Diffusion 2.1 χρησιμοποιώντας στιγμιότυπα Inf2. Επιδείξαμε επίσης την ανάπτυξη μοντέλων Stable Diffusion χρησιμοποιώντας το SageMaker. Οι περιπτώσεις Inf2 προσφέρουν επίσης εξαιρετική απόδοση τιμής για το Stable Diffusion 1.5. Για να μάθετε περισσότερα σχετικά με το γιατί οι παρουσίες Inf2 είναι ιδανικές για γενετικά μοντέλα τεχνητής νοημοσύνης και μεγάλα γλωσσικά μοντέλα, ανατρέξτε στο Οι παρουσίες Amazon EC2 Inf2 για χαμηλού κόστους και υψηλής απόδοσης Generative AI Inference είναι πλέον γενικά διαθέσιμες. Για λεπτομέρειες απόδοσης, ανατρέξτε στο Απόδοση Inf2. Δείτε επιπλέον παραδείγματα στο GitHub repo.
Ιδιαίτερες ευχαριστίες στους Matthew Mcclain, Beni Hegedus, Kamran Khan, Shruti Koparkar και Qing Lan για την κριτική και την παροχή πολύτιμων εισροών.
Σχετικά με τους Συγγραφείς
Vivek Gangasani είναι ανώτερος αρχιτέκτονας λύσεων μηχανικής μάθησης στο Amazon Web Services. Συνεργάζεται με startups μηχανικής εκμάθησης για τη δημιουργία και την ανάπτυξη εφαρμογών AI/ML στο AWS. Επί του παρόντος επικεντρώνεται στην παροχή λύσεων για MLOps, ML συμπερασμάτων και ML χαμηλού κώδικα. Έχει εργαστεί σε έργα σε διαφορετικούς τομείς, συμπεριλαμβανομένης της επεξεργασίας φυσικής γλώσσας και της όρασης υπολογιστή.
KC Tung είναι Senior Solution Architect στα AWS Annapurna Labs. Ειδικεύεται στην εκπαίδευση και ανάπτυξη μοντέλων μεγάλης βαθιάς μάθησης σε κλίμακα στο cloud. Έχει Ph.D. στη μοριακή βιοφυσική από το University of Texas Southwestern Medical Center στο Ντάλας. Έχει μιλήσει σε AWS Summits και AWS Reinvent. Σήμερα βοηθά τους πελάτες να εκπαιδεύσουν και να αναπτύξουν μεγάλα μοντέλα PyTorch και TensorFlow στο AWS cloud. Είναι συγγραφέας δύο βιβλίων: Μάθετε το TensorFlow Enterprise και Αναφορά TensorFlow 2 Pocket.
Ρούπιντερ Γκρέουαλ είναι Sr Ai/ML Specialist Solutions Architect με AWS. Επί του παρόντος εστιάζει στην εξυπηρέτηση μοντέλων και MLOps στο SageMaker. Πριν από αυτόν τον ρόλο έχει εργαστεί ως μηχανικός μηχανικής εκμάθησης μοντέλων κατασκευής και φιλοξενίας. Εκτός δουλειάς του αρέσει να παίζει τένις και να κάνει ποδήλατο σε ορεινά μονοπάτια.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoData.Network Vertical Generative Ai. Ενδυναμώστε τον εαυτό σας. Πρόσβαση εδώ.
- PlatoAiStream. Web3 Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- PlatoESG. Αυτοκίνητο / EVs, Ανθρακας, Cleantech, Ενέργεια, Περιβάλλον, Ηλιακός, Διαχείριση των αποβλήτων. Πρόσβαση εδώ.
- BlockOffsets. Εκσυγχρονισμός της περιβαλλοντικής αντιστάθμισης ιδιοκτησίας. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/machine-learning/maximize-stable-diffusion-performance-and-lower-inference-costs-with-aws-inferentia2/
- :έχει
- :είναι
- :δεν
- :που
- $UP
- 1
- 10
- 100
- 12
- 13
- 14
- 16
- 20
- 32
- 7
- 8
- 9
- a
- Ικανός
- Σχετικα
- ΠΕΡΙΛΗΨΗ
- επιταχυντής
- επιταχυντές
- Κατορθώνω
- πραγματικός
- Πρόσθετος
- Πλεονέκτημα
- Μετά το
- εμπρός
- AI
- AI / ML
- στοχεύουν
- Όλα
- επιτρέπει
- Επίσης
- Amazon
- Amazon EC2
- Amazon υπηρεσίες Web
- μεταξύ των
- ποσό
- an
- και
- api
- APIs
- εφαρμόσιμος
- εφαρμογές
- αρχιτεκτονική
- ΕΙΝΑΙ
- περιοχές
- Τέχνη
- AS
- άποψη
- At
- ήχου
- συγγραφέας
- αυτομάτως
- διαθέσιμος
- AWS
- βασίζονται
- BE
- όμορφη
- επειδή
- ήταν
- πριν
- συμπεριφορά
- είναι
- αναφοράς
- Καλύτερα
- Βιοφυσικής
- Αποκλεισμός
- Μπλοκ
- Βιβλία
- και οι δύο
- φέρω
- χτίζω
- Κτίριο
- ενσωματωμένο
- αλλά
- by
- CAN
- δυνατότητες
- περίπτωση
- Κέντρο
- Αιώνας
- αλλαγή
- έλεγχος
- τσιπ
- τσιπ
- τάξη
- Backup
- Άνθρακας
- κωδικός
- πλήρης
- συστατικό
- εξαρτήματα
- Υπολογίστε
- υπολογιστή
- Computer Vision
- χρήση υπολογιστή
- διαμόρφωση
- Συνδετικός
- καταναλώνεται
- Δοχείο
- Εμπορευματοκιβώτια
- περιεχόμενο
- μετατρέψετε
- πυρήνας
- Αντίστοιχος
- Κόστος
- Δικαστικά έξοδα
- σε συνδυασμό
- Craig
- δημιουργία
- δημιουργήθηκε
- δημιουργεί
- δημιουργία
- κρίσιμης
- Τη στιγμή
- έθιμο
- Πελάτες
- προσαρμόσετε
- Ντάλας
- ημερομηνία
- βαθύς
- βαθιά μάθηση
- Προεπιλογή
- παραδώσει
- παράδοση
- διαδήλωση
- αποδεικνύουν
- κατέδειξε
- καταδεικνύει
- παρατάσσω
- αναπτυχθεί
- ανάπτυξη
- ανάπτυξη
- αναπτύξεις
- λεπτομερής
- καθέκαστα
- διαφορετικές
- Διάχυση
- συζητήσουν
- domains
- περιστέρι
- κατεβάσετε
- Αναλήψεις
- δυο
- κατά την διάρκεια
- κάθε
- Νωρίτερα
- αποτελεσματικά
- αποτελεσματικά
- στοιχεία
- από άκρη σε άκρη
- Τελικό σημείο
- μηχανικός
- εξασφαλίζω
- εξ ολοκλήρου
- Περιβάλλον
- κατ 'ουσίαν,
- Even
- πάντα
- εξετάζω
- παράδειγμα
- παραδείγματα
- υπερβαίνω
- βιώνουν
- εκχύλισμα
- εξαιρετικά
- Πρόσωπο
- γρηγορότερα
- αισθάνομαι
- λίγοι
- Αρχεία
- Αρχεία
- Εύρεση
- Όνομα
- ταιριάζουν
- επιπλέων
- επικεντρώθηκε
- εστιάζει
- Εξής
- εξής
- Για
- μορφή
- Δωρεάν
- από
- πλήρη
- λειτουργία
- περαιτέρω
- γενικά
- παράγουν
- παράγεται
- παραγωγής
- γενετική
- Παραγωγική τεχνητή νοημοσύνη
- παίρνω
- Δώστε
- Go
- εξαιρετική
- Ανάπτυξη
- Έχω
- he
- Υγεία
- βοηθά
- εδώ
- Ψηλά
- υψηλή απόδοση
- υψηλής ποιότητας
- υψηλότερο
- υψηλά
- κατέχει
- οικοδεσπότης
- φιλοξενείται
- φιλοξενία
- Πως
- Πώς να
- HTML
- http
- HTTPS
- IDX
- if
- εικόνα
- εικόνες
- εκτέλεση
- εντυπωσιακός
- βελτίωση
- in
- περιλαμβάνει
- Συμπεριλαμβανομένου
- Αυξάνουν
- ανεξάρτητος
- υποδεικνύω
- πληροφορίες
- κάνω ένεση
- εισαγωγή
- είσοδοι
- εγκαθιστώ
- παράδειγμα
- αντί
- εσωτερικώς
- σε
- επικαλείται
- IT
- ΤΟΥ
- JIT
- ενώνει
- jpg
- json
- μόλις
- Κλειδί
- εργαστήριο
- Labs
- τοπίο
- Γλώσσα
- large
- μεγαλύτερος
- Αφάνεια
- αργότερο
- ΜΑΘΑΊΝΩ
- μάθηση
- Άδεια
- βιβλιοθήκες
- Βιβλιοθήκη
- Μου αρέσει
- γραμμή
- linux
- φορτίο
- φόρτωση
- φορτία
- που βρίσκεται
- τοποθεσία
- κλείδωμα
- ξύλευση
- ματιά
- Χαμηλός
- χαμηλού κόστους
- χαμηλότερα
- χαμηλότερο
- μηχανή
- μάθηση μηχανής
- κάνω
- ΚΑΝΕΙ
- διαχείριση
- Ταίριασμα
- Ματθαίος
- Αυξάνω στον ανώτατο βαθμό
- μέσα
- ιατρικών
- Μνήμη
- μέθοδος
- Μέσο
- μεταλλωρύχος
- ελάχιστος
- ML
- MLOps
- μοντέλο
- μοντέλα
- Μονάδα μέτρησης
- μοριακός
- μήνες
- περισσότερο
- πλέον
- Βουνό
- MS
- πολλαπλούς
- όνομα
- ονόματα
- Φυσικό
- Επεξεργασία φυσικής γλώσσας
- απαραίτητος
- Ανάγκη
- που απαιτούνται
- σημειωματάριο
- τώρα
- αριθμός
- αριθμοί
- Nvidia
- αντικείμενο
- of
- Παλιά
- on
- Κατα παραγγελια
- ONE
- αποκλειστικά
- επάνω σε
- λειτουργεί
- βέλτιστη
- βελτιστοποίηση
- βελτιστοποιημένη
- Βελτιστοποιεί
- Επιλογή
- or
- πρωτότυπο
- OS
- ΑΛΛΑ
- δικός μας
- έξω
- παραγωγή
- εκτός
- επί
- δική
- πακέτο
- ζωγραφική
- Παράλληλο
- παράμετρος
- παράμετροι
- μέρος
- ιδιαίτερα
- εξαρτήματα
- passieren
- μονοπάτι
- για
- Εκτελέστε
- επίδοση
- εκτελούνται
- Εικόνες
- σωλήνας
- αγωγού
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- παιχνίδι
- Σημείο
- πορτραίτα
- Θέση
- τροφοδοτείται
- ισχυρός
- προτιμάται
- δώρα
- προηγούμενος
- τιμή
- Πριν
- Διεργασίες
- μεταποίηση
- παράγει
- έργα
- ιδιότητες
- πρόταση
- παρέχουν
- παρέχεται
- χορήγηση
- Python
- pytorch
- RAM
- γρήγορα
- ρεαλιστικός
- πρόσφατος
- μειώνει
- σχετικά
- υπόλοιπα
- αφαιρέστε
- αντικαθιστώ
- απαιτούν
- απαιτείται
- απαιτήσεις
- Απαιτεί
- πόρος
- Επιστροφές
- επανεξέταση
- Αντίπαλος
- Ρόλος
- τρέξιμο
- τρέξιμο
- σοφός
- ίδιο
- Αποθήκευση
- Κλίμακα
- SDK
- αδιάλειπτη
- Τμήμα
- δείτε
- αρχαιότερος
- Υπηρεσίες
- εξυπηρετούν
- σειρά
- δείχνουν
- υπογράψουν
- σημαντικός
- σημαντικά
- παρόμοιες
- Ομοίως
- Απλούς
- απλά
- ενιαίας
- Μέγεθος
- So
- λύση
- Λύσεις
- μερικοί
- Πηγή
- Χώρος
- ειδικός
- ειδικεύεται
- συγκεκριμένες
- καθορίζεται
- ταχύτητα
- ομιλείται
- σταθερός
- σταθεί
- ξεκινά
- εκκίνηση
- Startups
- Βήμα
- Βήματα
- χώρος στο δίσκο
- αποθηκεύονται
- ειλικρινής
- Στρατηγική
- δύναμη
- δομή
- Σύνοδοι Κορυφής
- Στήριξη
- βέβαιος
- Πάρτε
- tensorflow
- δοκιμές
- Τέξας
- Ευχαριστώ
- ότι
- Η
- τους
- Τους
- τότε
- επομένως
- Αυτοί
- αυτοί
- αυτό
- Μέσω
- διακίνηση
- ώρα
- φορές
- προς την
- σήμερα
- εργαλεία
- δάδα
- Εντοπισμός
- Τρένο
- Εκπαίδευση
- μετασχηματιστής
- δύο
- τύπος
- Ubuntu
- υπό
- μοναδικός
- πανεπιστήμιο
- Φορτώθηκε
- us
- χρήση
- μεταχειρισμένος
- χρησιμοποιεί
- χρησιμοποιώντας
- Πολύτιμος
- αξία
- Αξίες
- ποικιλία
- διάφορα
- εκδοχή
- εκδόσεις
- όραμα
- τόμος
- vs
- θέλω
- ήταν
- τρόπους
- we
- ιστός
- διαδικτυακές υπηρεσίες
- Τι
- πότε
- Ποιό
- WHY
- ευρύς
- θα
- με
- εντός
- Εργασία
- εργάστηκαν
- εργαζομένων
- ροής εργασίας
- λειτουργεί
- Εσείς
- Σας
- zephyrnet