Νέα

Flying paddle frame advanced 3.0!Ένα άρθρο εξηγεί τα πέντε νέα χαρακτηριστικά, συμπεριλαμβανομένης της "Ενσωματωμένη εκπαίδευση και ώθηση μεγάλων μοντέλων"

2024-08-01

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

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

Το πλαίσιο βαθιάς μάθησης παρέχει στους προγραμματιστές βολικές και εύχρηστες διεπαφές ανάπτυξης που είναι εξαιρετικά αφηρημένα δεδομένα και λειτουργίες, επιτρέποντας στους προγραμματιστές να εστιάσουν περισσότερο στη σχεδίαση αλγορίθμων και μοντέλων χωρίς να χρειάζεται να κολλήσουν στις λεπτομέρειες της υποκείμενης επεξεργασίας δεδομένων. Μέσω αυτών των διεπαφών, οι προγραμματιστές δεν χρειάζεται να αντιλαμβάνονται άμεσα και να αντιμετωπίζουν πολύπλοκες υποκείμενες λεπτομέρειες ανάπτυξης υλικού, βελτιώνοντας έτσι σημαντικά την αποτελεσματικότητα και την εμπειρία ανάπτυξης. Δεύτερον, το πλαίσιο βαθιάς εκμάθησης παρέχει επίσης την ισχυρή λειτουργία της αυτόματης διαφοροποίησης Οι προγραμματιστές χρειάζεται συνήθως να γράψουν μόνο τον κώδικα για το δίκτυο προώθησης, ενώ το δυσκίνητο δίκτυο μετάδοσης ολοκληρώνεται αυτόματα από το πλαίσιο.

Ως η πρώτη αυτοαναπτυσσόμενη, πλούσια σε χαρακτηριστικά, ανοιχτού κώδικα και ανοιχτής πλατφόρμας βαθιάς μάθησης της Κίνας, το Fei Paddle κυκλοφόρησε από την έκδοση 1.0, η οποία χρησιμοποιεί στατικές εικόνες από προεπιλογή, στην έκδοση 2.0, η οποία χρησιμοποιεί δυναμικές εικόνες από προεπιλογή και μπορεί να πραγματοποιήσει την ενσωμάτωση των δυναμικών και στατικών εικόνων και της εκπαίδευσης και της ώθησης Fei Paddle Framework Μπόρεσε να ενσωματώσει τέλεια την ευελιξία των δυναμικών γραφικών και την αποτελεσματικότητα των στατικών γραφικών και υποστηρίζει την υβριδική παράλληλη εκπαίδευση μοντέλων πρόσφατα εποχή μεγάλων μοντέλων, κυκλοφόρησε επίσημα! Το Flying Paddle άνοιξε επίσημα μια νέα γενιά καινοτομίας τεχνολογίας πλαισίου!

Σχεδιαστική λογική

Ο σχεδιασμός του πλαισίου βαθιάς μάθησης είναι ζωτικής σημασίας για την προώθηση της ανάπτυξης της τεχνολογίας τεχνητής νοημοσύνης και ο βασικός σχεδιαστικός του στόχος είναι να διευκολύνει την καινοτομία και την εφαρμογή της τεχνολογίας βαθιάς μάθησης.

Πώς να το κάνετε αυτό;

Το πλαίσιο πρέπει να λαμβάνει υπόψη πλήρως τις ανάγκες των προγραμματιστών και των κατασκευαστών υλικού.

Από την πλευρά του χρήστη, ένα εξαιρετικό πλαίσιο βαθιάς μάθησης θα πρέπει να παρέχει στους προγραμματιστές την απόλυτη εμπειρία ανάπτυξης. Αυτό δεν σημαίνει μόνο την παροχή ενός φιλικού προς τον χρήστη περιβάλλοντος ανάπτυξης, αλλά το πιο σημαντικό, πρέπει να είναι σε θέση να μειώσει σημαντικά το κόστος εκμάθησης και το κόστος χρόνου των προγραμματιστών, βελτιώνοντας παράλληλα σημαντικά την ευκολία της ανάπτυξης. Για το σκοπό αυτό, το Flying Paddle Framework προβάλλει την έννοια της «ενοποίησης κίνησης και στατικής, ενσωμάτωσης εκπαίδευσης και ώθησης και αυτόματου παραλληλισμού», που βελτιώνει σημαντικά την αποδοτικότητα της ανάπτυξης.

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

Ταυτόχρονα, ένα καλό πλαίσιο πρέπει επίσης να λαμβάνει υπόψη τη συνολική τάση ανάπτυξης τεχνολογίας AI και τις πραγματικές ανάγκες εφαρμογής του κλάδου.

Όσον αφορά την τεχνολογική ανάπτυξη, οι τεχνολογίες αιχμής όπως το Large Language Model (LLM), το MOE (Mixture of Experts), η πολυτροπικότητα και η επιστημονική νοημοσύνη (AI for Science) έχουν σταδιακά μετατραπεί σε νέα ερευνητικά hotspot. Καθώς η πολυπλοκότητα του μοντέλου αυξάνεται, προβλήματα όπως τα σημεία συμφόρησης στον υπολογιστή, τα σημεία συμφόρησης αποθήκευσης, τα σημεία συμφόρησης στη μνήμη και τα σημεία συμφόρησης επικοινωνίας γίνονται σταδιακά πιο εμφανή και η ανάγκη για κατανεμημένη εκπαίδευση και γενική βελτιστοποίηση απόδοσης γίνεται όλο και πιο επείγουσα.

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

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


Σχεδιαστική ιδέα και κύρια χαρακτηριστικά του Flying Paddle Frame 3.0

Για να συνοψίσουμε τις παραπάνω απαιτήσεις, η Feipiao θα παρέχει στους προγραμματιστές ένα πλαίσιο βαθιάς μάθησης που «ενοποιεί τη δυναμική και τη στατική, ενσωματώνει εκπαίδευση και ώθηση, αυτόματη παραλληλοποίηση, αυτόματη βελτιστοποίηση και εκτεταμένη προσαρμογή υλικού. μόνος κώδικας, χωρίς την ανάγκη αντίληψης πολύπλοκης επικοινωνίας και λογικής προγραμματισμού, μπορείτε να πραγματοποιήσετε την ανάπτυξη μεγάλων μοντέλων, μπορείτε να γράψετε νευρωνικά δίκτυα στην Python όπως ακριβώς γράφετε μαθηματικούς τύπους, χωρίς να χρησιμοποιείτε γλώσσες ανάπτυξης υλικού για να γράψετε σύνθετους κώδικες πυρήνα χειριστή. και μπορείτε να επιτύχετε αποτελεσματική λειτουργία.

Η έκδοση 3.0 του Flying Paddle Framework προέκυψε, συνεχίζοντας τη σχεδιαστική ιδέα της έκδοσης 2.x του ενιαίου δυναμικού και στατικού, ενώ η διεπαφή ανάπτυξής του είναι πλήρως συμβατή με την έκδοση 2.x. Αυτό σημαίνει ότι ο κώδικας που αναπτύχθηκε με χρήση της έκδοσης 2.x μπορεί να εκτελεστεί απευθείας στην έκδοση 3.0 χωρίς τροποποίηση στις περισσότερες περιπτώσεις. Επικεντρώνεται στην κυκλοφορία τεσσάρων νέων χαρακτηριστικών: δυναμική και στατική ενοποιημένη αυτόματη παραλληλοποίηση, αυτόματη βελτιστοποίηση μεταγλωττιστή, εκπαίδευση και ενσωμάτωση ώθησης μεγάλων μοντέλων και προσαρμογή πολλαπλού υλικού μεγάλων μοντέλων. Αυτές οι δυνατότητες αναπτύχθηκαν από την έκδοση 2.6 του Flying Paddle Framework ή παλαιότερη και έχουν πλέον φτάσει στο στάδιο της εξωτερικής δοκιμαστικής χρήσης. Αυτά τα νέα χαρακτηριστικά έχουν φέρει σημαντικές βελτιώσεις όσον αφορά την εμπειρία χρήστη, την απόδοση, την ευκολία της δευτερεύουσας ανάπτυξης και την προσαρμοστικότητα του υλικού που κυκλοφόρησε επίσημα. Αυτή η έκδοση περιέχει βελτιώσεις σε ορισμένες υπάρχουσες λειτουργίες της έκδοσης πλαισίου 2.x και είναι ώριμη και σταθερή χωρίς τη χρήση νέων δυνατοτήτων.

Επισκόπηση αρχιτεκτονικής πλαισίου

Προκειμένου να πραγματοποιηθούν τα προαναφερθέντα χαρακτηριστικά του πλαισίου βαθιάς μάθησης, η αρχιτεκτονική του πλαισίου πρέπει να σχεδιαστεί προσεκτικά ώστε να διασφαλίζεται ότι μπορεί να υποστηρίξει διάφορες σύνθετες κατασκευές μοντέλων και να επιτύχει απρόσκοπτη ενσωμάτωση με διάφορα τσιπ. Στη συνέχεια, θα χρησιμοποιηθεί ένα διαισθητικό διάγραμμα αρχιτεκτονικής για να επιδείξει λεπτομερώς τις λειτουργικές μονάδες που καλύπτονται στο πλαίσιο νέας γενιάς του Flying Paddle, καθώς και τις αλληλεπιδράσεις και τις συνδέσεις μεταξύ αυτών των μονάδων. Ακολουθεί το διάγραμμα αρχιτεκτονικής του Flying Paddle Framework 3.0.


Διάγραμμα αρχιτεκτονικής Flying Paddle Framework 3.0

Πλούσιες διεπαφές: Το Flying Paddle Framework παρέχει μια ποικιλία διεπαφών ανάπτυξης που σχετίζονται με τη βαθιά εκμάθηση, όπως αναπαράσταση τανυστών, μαθηματικούς υπολογισμούς, δικτύωση μοντέλων, στρατηγικές βελτιστοποίησης κ.λπ. Μέσω αυτών των διεπαφών, οι προγραμματιστές μπορούν εύκολα να δημιουργήσουν και να εκπαιδεύσουν τα δικά τους μοντέλα βαθιάς εκμάθησης χωρίς να μπουν στις υποκείμενες τεχνικές λεπτομέρειες.

Κάτω από τη διεπαφή ανάπτυξης, το Flying Paddle Framework μπορεί να χωριστεί σε τέσσερα επίπεδα: επίπεδο παρουσίασης, επίπεδο προγραμματισμού, επίπεδο χειριστή και επίπεδο προσαρμογής.

Επίπεδο παρουσίασης: εστιάζει στην έκφραση και τη μετατροπή υπολογιστικών γραφημάτων και παρέχει βασικές λειτουργίες όπως δυναμική σε στατική (δυναμικά γραφήματα σε στατικά γραφήματα), αυτόματη διαφοροποίηση, αυτόματο παραλληλισμό, συνδυασμό τελεστών και βελτιστοποίηση υπολογιστικών γραφημάτων μέσω υψηλής κλιμάκωσης ενδιάμεσης αναπαράστασης PIR. Στερεό στήριγμα.

Επίπεδο προγραμματισμού: Υπεύθυνος για την έξυπνη ενορχήστρωση και τον αποτελεσματικό προγραμματισμό κωδικών ή γραφημάτων υπολογισμού, καθώς και τη δυνατότητα διαχείρισης και βελτιστοποίησης της μνήμης και της μνήμης γραφικών σύμφωνα με τις πραγματικές ανάγκες και την υποστήριξη της αποτελεσματικής εκτέλεσης δυναμικών γραφημάτων και στατικών γραφημάτων. Είτε οι προγραμματιστές επιλέξουν να χρησιμοποιήσουν δυναμικά γραφικά είτε στατικά γραφικά για την ανάπτυξη μοντέλων, το Flying Paddle Framework μπορεί να προσφέρει ένα αποτελεσματικό περιβάλλον εκτέλεσης, διασφαλίζοντας παράλληλα τη βέλτιστη χρήση των πόρων.

Επίπεδο χειριστή: Αποτελείται από τον μεταγλωττιστή νευρωνικού δικτύου CINN και τη βιβλιοθήκη χειριστή PHI, καλύπτοντας βασικές λειτουργίες όπως ορισμός τανυστή, ορισμός χειριστή, αυτόματη σύντηξη χειριστή και υλοποίηση πυρήνα χειριστή.

Επίπεδο προσαρμογής: Χρησιμοποιείται για την εφαρμογή προσαρμογής στο υποκείμενο τσιπ, συμπεριλαμβανομένων λειτουργιών όπως διαχείριση συσκευών, προσαρμογή χειριστή, προσαρμογή επικοινωνίας και πρόσβαση μεταγλώττισης.

Τα ακόλουθα θα επικεντρωθούν στη νέα και σημαντική αναβάθμιση της αρχιτεκτονικής έκδοσης Flying Paddle 3.0 Αυτή η αναβάθμιση περιλαμβάνει κυρίως τις ακόλουθες ενότητες:

1) Το PIR υψηλής κλιμάκωσης ενδιάμεσης αναπαράστασης, δημιουργώντας μια ενοποιημένη ενδιάμεση αναπαράσταση για ολόκληρη την αρχιτεκτονική, ξεπερνά τα εμπόδια κάθε ενότητας στο επίπεδο πλαισίου και ενισχύει τις δυνατότητες του Flying Paddle στους τομείς του επιστημονικού υπολογισμού, της βελτιστοποίησης μεταγλώττισης και των μεγάλων μοντέλων ;

2) Ο μεταγλωττιστής νευρωνικού δικτύου βελτιστοποιεί αυτόματα και βελτιώνει σημαντικά την από άκρο σε άκρο απόδοση του μοντέλου μέσω αυτόματης σύντηξης και συντονισμού πολιτικής.

3) Η αυτόματη παραλληλοποίηση μειώνει το κόστος ανάπτυξης μοντέλων και βελτιστοποίησης απόδοσης μεγάλων σκηνών μοντέλων και βελτιώνει σημαντικά την εμπειρία χρήστη μεγάλων σκηνών μοντέλων.

Ιδιαίτερα εκτεταμένη ενδιάμεση αναπαράσταση PIR

Η ενδιάμεση αναπαράσταση (IR) των υπολογιστικών γραφημάτων είναι ένας σημαντικός ακρογωνιαίος λίθος της βελτιστοποίησης απόδοσης του πλαισίου βαθιάς μάθησης, της ανάπτυξης συμπερασμάτων και των μεταγλωττιστών. Τα τελευταία χρόνια, όλο και περισσότερα πλαίσια και ερευνητές έχουν εισαγάγει την τεχνολογία μεταγλωττιστών στη βελτιστοποίηση μοντέλων νευρωνικών δικτύων για βαθιά μάθηση, και σε αυτή τη βάση, έχουν χρησιμοποιήσει έννοιες, τεχνολογίες και εργαλεία μεταγλωττιστή για την αυτόματη βελτιστοποίηση και τη δημιουργία κωδικοποίησης νευρωνικών δικτύων. Στην εποχή των μεγάλων μοντέλων, υπάρχουν υψηλότερες απαιτήσεις για IR όσον αφορά την ευελιξία, την επεκτασιμότητα και την πληρότητα.

Επομένως, στην έκδοση 3.0, το Feipiao τυποποιεί τον ορισμό της ενδιάμεσης αναπαράστασης IR σε επίπεδο υποδομής για να επιτύχει ενοποιημένη αναπαράσταση ολόκληρης της αρχιτεκτονικής και την κοινή χρήση των αποτελεσμάτων ανάπτυξης προς όλες τις κατευθύνσεις ανάντη και κατάντη. Η αρχιτεκτονική IR νέας γενιάς της Feipiao εστιάζει στις δύο σημαντικές διαστάσεις της υψηλής ευελιξίας και της υψηλής επεκτασιμότητας Αναπτύσσεται μέσω πιο ολοκληρωμένων και ισχυρών δυνατοτήτων σημασιολογικής έκφρασης, ενοποιημένης αναπαράστασης ολόκληρης της αρχιτεκτονικής και αποτελεσματικού μηχανισμού βελτιστοποίησης απόδοσης με δυνατότητα σύνδεσης (Pass) για την επίτευξη σύνθετων σημασιολογικών δυνατοτήτων. υποστηρίζει, υποστηρίζει πιο βολικά εμπλουτισμένες στρατηγικές τμηματοποίησης υπό την αυτόματη παραλληλοποίηση μεγάλων μοντέλων και συνδέεται απρόσκοπτα με τον μεταγλωττιστή νευρωνικού δικτύου για να επιτύχει αυτόματη βελτιστοποίηση απόδοσης και προσαρμογή πολλαπλού υλικού.



Το Flying Paddle Intermediate Representation (PIR) αφαιρεί ένα σύνολο βασικών στοιχείων υψηλής κλιμάκωσης στο κάτω επίπεδο, καλύπτοντας Type, Attribute, Op, Trait και Interface, και εισάγει την έννοια της Dialect, δίνοντας στους προγραμματιστές τη δυνατότητα να επεκτείνουν και να προσαρμόσουν ελεύθερα. Παρέχει ολοκληρωμένες και ισχυρές δυνατότητες σημασιολογικής έκφρασης. Στο επίπεδο αναπαράστασης του μοντέλου, μέσω της αρθρωτής διαχείρισης πολλαπλών διαλέκτων και της ενοποιημένης πολυτερματικής αναπαράστασης, επιτυγχάνεται μια ενοποιημένη αναπαράσταση ολόκληρης της αρχιτεκτονικής που ενσωματώνει εκπαίδευση και συμπέρασμα, επιτυγχάνεται απρόσκοπτη σύνδεση μεταξύ χειριστών και μεταγλωττιστών και αυτόματη βελτιστοποίηση και προσαρμογή πολλαπλού υλικού υποστηρίζονται. Στο επίπεδο μετασχηματισμού γραφήματος, ενοποιώντας τις υποκείμενες μονάδες και απλοποιώντας τις βασικές έννοιες, παρέχει στους χρήστες μια χαμηλού κόστους, εύχρηστη και υψηλής απόδοσης εμπειρία ανάπτυξης, καθώς και έναν πλούσιο και συνδεόμενο μηχανισμό βελτιστοποίησης Pass. Το Flying Paddle PIR ακολουθεί την αρχή της στατικής μονής ανάθεσης (SSA) για να διασφαλίσει ότι το μοντέλο είναι ισοδύναμο με ένα κατευθυνόμενο μη κυκλικό γράφημα και χρησιμοποιεί την τιμή και τη λειτουργία για να αφαιρέσει το γράφημα υπολογισμού, όπου η λειτουργία αντιπροσωπεύει τον κόμβο και η τιμή την ακμή.

Η πράξη αντιπροσωπεύει έναν κόμβο στο γράφημα υπολογισμού: κάθε Πράξη αντιπροσωπεύει έναν τελεστή και περιέχει μηδέν ή περισσότερες Περιοχές. Η περιοχή αντιπροσωπεύει ένα κλείσιμο, το οποίο μπορεί να περιέχει μηδέν ή περισσότερα μπλοκ. Το μπλοκ αντιπροσωπεύει ένα βασικό μπλοκ που συμμορφώνεται με την αρχή της στατικής μονής ανάθεσης (SSA) και περιέχει μηδέν ή περισσότερες λειτουργίες. Μέσω της ένθεσης βρόχου μεταξύ αυτών των τριών, μπορούν να κατασκευαστούν αυθαίρετα πολύπλοκες γραμματικές δομές.

Η τιμή αντιπροσωπεύει ένα κατευθυνόμενο άκρο στο γράφημα υπολογισμού: χρησιμοποιείται για τη σύνδεση δύο Λειτουργιών, περιγράφοντας έτσι την αλυσίδα Χρήση-Ορισμός (δηλαδή αλυσίδα UD) στο πρόγραμμα. Μεταξύ αυτών, το OpResult χρησιμεύει ως το τέλος του ορισμού και χρησιμοποιείται για τον ορισμό μιας τιμής, ενώ το OpOperand χρησιμεύει ως το τέλος χρήσης και περιγράφει τη χρήση μιας συγκεκριμένης τιμής.

Το Feipiao παρέχει δύο μηχανισμούς ανάπτυξης Pass, PatternRewriter και Declarative Rewrite Rule (συντομία DRR), οι οποίοι λαμβάνουν υπόψη την ευελιξία της προσαρμογής και την ευκολία ανάπτυξης. Η μέθοδος ανάπτυξης Pass τριών σταδίων επιτρέπει στους προγραμματιστές να εστιάζουν περισσότερο στην επεξεργασία της λογικής Pass χωρίς να δίνουν προσοχή στις λεπτομέρειες του υποκείμενου IR. Χρησιμοποιώντας τον μηχανισμό ανάπτυξης του PIR, το κόστος ανάπτυξης του Pass μειώνεται κατά 58% και εφαρμόζεται σε σενάρια συμπερασμάτων, περισσότερο από το 84% των συμπερασμάτων του μοντέλου επιταχύνονται κατά περισσότερο από 10%.

Αυτόματη βελτιστοποίηση μεταγλωττιστή νευρωνικών δικτύων

Υπάρχουν τρεις λόγοι για τους οποίους πρέπει να αναπτύξουμε τεχνολογία μεταγλωττιστή:

1) Τάση ανάπτυξης υλικού: Συνδυάζοντας την ιστορία της ανάπτυξης υλικού και τα χαρακτηριστικά της τεχνολογικής εξέλιξης, η υπολογιστική ισχύς αναπτύσσεται πολύ πιο γρήγορα από την απόδοση πρόσβασης στη μνήμη, η απόδοση της CPU και το εύρος ζώνης της μνήμης επηρεάζουν την απόδοση των χειριστών με ένταση πρόσβασης στη μνήμη (κατηγορία κανόνων , ενεργοποίηση, κ.λπ.), η απόδοση της CPU και το εύρος ζώνης του διαύλου επηρεάζουν τον προγραμματισμό, την απόδοση. Η τεχνολογία γενικής βελτιστοποίησης αυτόματης σύντηξης μπορεί να συγχωνεύσει πολλούς τελεστές, μειώνοντας την πρόσβαση στη μνήμη και τον αριθμό των τελεστών, η τεχνολογία μεταγλώττισης θα γίνει ένα τυπικό συστατικό των πλαισίων εκμάθησης.

2) Τάση ανάπτυξης μοντέλου: Η δομή του μοντέλου έχει τα χαρακτηριστικά της ποικιλομορφίας και η ζήτηση για ποικιλομορφία βασίζεται σε μεγάλο βαθμό στη γενική βελτιστοποίηση του μεταγλωττιστή.

3) Πολλαπλή βελτιστοποίηση υλικού: Υπάρχουν πολλά είδη υλικού στην αγορά να μειωθεί σημαντικά το κόστος.

Ας το ερμηνεύσουμε αυτό μέσα από ένα παράδειγμα. Ας πάρουμε το RMS Normalization (Root Mean Square Layer Normalization), το οποίο χρησιμοποιείται συχνά στο μοντέλο Llama, ο τύπος υπολογισμού του είναι σχετικά απλός και σαφής.



Ας υποθέσουμε ότι πρέπει να εφαρμόσουμε τον υπολογισμό του RMS Normalization Ο απλούστερος τρόπος είναι ότι μπορούμε να χρησιμοποιήσουμε τη διεπαφή ανάπτυξης λειτουργίας τανυστήρα που παρέχεται από το πλαίσιο flying paddle και να καλέσουμε λειτουργίες όπως τετράγωνο, άθροισμα, διαίρεση, ρίζα και ούτω καθεξής ο κωδικός είναι ο εξής:



Ο παραπάνω κώδικας είναι απλός στην ανάπτυξη, αλλά η απόδοσή του είναι κακή και καταλαμβάνει πολλή μνήμη βίντεο, οι προγραμματιστές μπορούν να εφαρμόσουν το FusedRMSNorm, αλλά οι απαιτήσεις για τους προγραμματιστές είναι υψηλότερες και το κόστος είναι υψηλότερο.

Με την τεχνολογία μεταγλωττιστή νευρωνικών δικτύων, μπορούμε να επιτύχουμε σημαντικές βελτιώσεις στην απόδοση διατηρώντας παράλληλα υψηλό βαθμό ευελιξίας και ευκολίας χρήσης. Τα ακόλουθα αποτελέσματα δοκιμών απόδοσης του τελεστή RMSNorm στην πλατφόρμα A100 είναι σαφής απόδειξη: σε σύγκριση με την υλοποίηση που χρησιμοποιεί έναν συνδυασμό διεπαφών ανάπτυξης Python, ο μεταγλωττισμένος και βελτιστοποιημένος τελεστής εκτελείται 4 φορές πιο γρήγορα, ακόμη κι αν είναι ενσωματωμένος με τον χειροκίνητο χειριστή , επιτεύχθηκε επίσης βελτίωση απόδοσης 14%. Αυτό το αποτέλεσμα καταδεικνύει πλήρως την ιδανική ισορροπία μεταξύ ευελιξίας και απόδοσης που βρίσκεται στο πλαίσιο του fly paddle.

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



Στο επίπεδο παρουσίασης, με τη βοήθεια των δυνατοτήτων επέκτασης του PIR, η μονάδα front-end CINN υλοποιείται για την επεξεργασία μετασχηματισμών που σχετίζονται με το επίπεδο, συμπεριλαμβανομένου διαχωρισμού χειριστή, επανυπολογισμού, διαίρεσης υπογραφών, μονάδων παραγωγής διαστάσεων και άλλων λειτουργικών μονάδων, και τελικά αποκτά πολλαπλά backends μεταγλωττιστή Δημιουργία βελτιστοποιημένων υπογραφών. Στο backend του μεταγλωττιστή, για αυτούς τους υπογράφους με δυνατότητα σύντηξης, ο μεταγλωττιστής θα καλέσει περαιτέρω τη συνάρτηση Compute για να τα μετατρέψει σε μια ενδιάμεση αναπαράσταση χαμηλού επιπέδου (IR) που αποτελείται από ένα αφηρημένο συντακτικό δέντρο (AST) και να εκτελέσει έναν βρόχο σε αυτή τη βάση Για να διασφαλιστεί ότι μπορεί να ενσωματωθεί σε έναν πυρήνα στο υποκείμενο IR CINN, θα πραγματοποιηθεί ανάλυση συντονισμού απόδοσης για να επιτευχθεί η βέλτιστη διαμόρφωση, τέλος, η υποκείμενη IR θα μετατραπεί περαιτέρω προσεκτικά σε συγκεκριμένη εφαρμογή.

Τα πειραματικά αποτελέσματα στο μοντέλο παραγωγής μεγάλων γλωσσών Llama και στο μοντέλο γραφήματος Vincentian Stable Diffusion δείχνουν ότι με τη χρήση της τεχνολογίας βελτιστοποίησης του μεταγλωττιστή, σε σύγκριση με τη βασική έκδοση χωρίς χειροκίνητη βελτιστοποίηση απόδοσης, η ταχύτητα συμπερασμάτων είναι 36% και 30% μεγαλύτερη αντίστοιχα.

Δυναμική και στατική ενοποίηση και αυτόματη παραλληλοποίηση

Γιατί κάνουμε αυτόματο παραλληλισμό;

Οι τρέχουσες κύριες μέθοδοι εκπαίδευσης για μεγάλα μοντέλα χρησιμοποιούν μια ποικιλία παράλληλων στρατηγικών Αυτές οι παράλληλες στρατηγικές βασίζονται στη "χειροκίνητη" παράλληλη μέθοδο που εφαρμόζεται στη λειτουργία δυναμικού γραφήματος, δηλαδή, με βάση μια ενιαία κάρτα, χειροκίνητη επεξεργασία τμηματοποίησης (. τμηματοποίηση τανυστήρων, γραφήματα υπολογισμού), επικοινωνία (προσθήκη τελεστών επικοινωνίας), βελτιστοποίηση μνήμης βίντεο (κοινή χρήση μνήμης βίντεο, Επανυπολογισμός), βελτιστοποίηση προγραμματισμού (ενορχηστρώσεις αγωγών, ασύγχρονοι υπολογισμοί και επικοινωνία) και άλλες στρατηγικές τη δομή του μοντέλου, αλλά και να έχουν μια εις βάθος κατανόηση των παράλληλων στρατηγικών και πλαισίων Η λογική του προγραμματισμού καθιστά την ανάπτυξη και τη βελτιστοποίηση της απόδοσης μεγάλων μοντέλων πολύ υψηλή. Εκτός από την ύπαρξη μιας αποκλειστικής ομάδας αλγορίθμων υπεύθυνη για την καινοτομία αλγορίθμων μοντέλων, πρέπει επίσης να υπάρχει μια ειδική ομάδα υπεύθυνη για τη βελτιστοποίηση παράλληλων μοντέλων. Αυτό φέρνει πολλά εμπόδια στην καινοτομία και την επανάληψη μεγάλων μοντέλων.

Ας πάρουμε ένα απλό παράδειγμα για να δείξουμε τη διαφορά μεταξύ της ανάπτυξης μεγάλου μοντέλου και της λογικής μιας κάρτας Δεδομένου ότι η παράλληλη στρατηγική θα προκαλέσει την αλλαγή του σχήματος χρόνου εκτέλεσης Tensor, οι τελεστές που σχετίζονται με την επεξεργασία σχήματος πρέπει να εξετάσουν εάν θα επηρεαστούν από την παράλληλη στρατηγική. Όπως φαίνεται στην παρακάτω επεξεργασία ανασχηματισμού, η στρατηγική τμηματοποίησης προκαλεί τον μετασχηματισμό του σχήματος εισόδου, επομένως το σχήμα εξόδου πρέπει να προσαρμοστεί εύλογα σύμφωνα με τη στρατηγική τμηματοποίησης:



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

Στην αυτόματη παράλληλη σχεδίαση, οι προγραμματιστές χρειάζονται μόνο έναν μικρό αριθμό σχολιασμών τμηματοποίησης και απαιτούμε δύο τύπους μεθόδων τμηματοποίησης: τανυστές τμηματοποίησης (παράμετροι, είσοδοι) και γραφήματα υπολογισμού τμηματοποίησης (αγωγός ). Για να υλοποιηθούν αυτοί οι δύο τύποι μεθόδων τμηματοποίησης, το πλαίσιο χρειάζεται έναν μηχανισμό για να περιγράψει τη σχέση αντιστοίχισης μεταξύ κατανεμημένων τανυστών και υπολογιστικών συσκευών Η διαδικασία αντιστοιχίζει πολλές συσκευές σε μονοδιάστατους ή πολυδιάστατους πίνακες που αποτελούνται από πολλαπλές διεργασίες Το παρακάτω σχήμα δείχνει δύο διαφορετικές αφηρημένες αναπαραστάσεις ProcessMesh που αποτελούνται από 8 συσκευές.



Οι τοποθετήσεις είναι μια λίστα που αποτελείται από τρεις κατανεμημένες ετικέτες: Replicate, Shard και Partial. Αυτό Οι λεπτομερείς περιγραφές των τριών διανεμημένων ετικετών είναι οι εξής:

Όπως φαίνεται στο παρακάτω σχήμα, το Replicate σημαίνει ότι ο τανυστής θα υπάρχει με τη μορφή αντιγραφής σε διαφορετικές συσκευές απαιτεί Reduce Sum ή Reduce Η πλήρης κατάσταση μπορεί να ληφθεί μόνο μετά τη Μέση και άλλες πράξεις με διαφορετικούς τρόπους.



Αφού ολοκληρώσουμε την αφαίρεση της κατανεμημένης ετικέτας, καλούμε
Η διεπαφή paddle.distributed.shard_tensor() υλοποιεί τη σήμανση του διαμοιρασμού τανυστών. Μέσω της σήμανσης και της αυτόματης παραγωγής του τεμαχισμού τανυστών, μπορούμε να αναπαραστήσουμε σύνθετο κατανεμημένο υβριδικό παραλληλισμό.



Ο παρακάτω κώδικας δείχνει ένα συγκεκριμένο παράδειγμα μικτού παραλληλισμού.



Με την υιοθέτηση μιας προσέγγισης αυτόματης παράλληλης ανάπτυξης, οι προγραμματιστές δεν χρειάζεται πλέον να εξετάζουν πολύπλοκη λογική επικοινωνίας. Λαμβάνοντας ως παράδειγμα την εργασία Llama, η ποσότητα του κατανεμημένου βασικού κώδικα εκπαίδευσης έχει μειωθεί κατά 50%, μειώνοντας έτσι σημαντικά τη δυσκολία ανάπτυξης Από ορισμένα από τα πειράματά μας, μπορεί να φανεί ότι με τη βοήθεια της συνολικής ανάλυσης και άλλων βελτιστοποιήσεων , η απόδοση είναι επίσης καλύτερη από την απόδοση της μη αυτόματης παραλληλοποίησης δυναμικών γραφημάτων.

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

Βιομηχανικά πλεονεκτήματα

Γενικά, το πλαίσιο νέας γενιάς του Flying Paddle - Flying Paddle Framework 3.0-Beta έχει σχεδιαστεί ειδικά για μεγάλα μοντέλα και ετερογενείς πολλαπλούς πυρήνες. Μοντέλο εκπαίδευσης και συμπερασμάτων. Ταυτόχρονα, έχει τέσσερις κύριες δυνατότητες: δυναμική και στατική ενοποιημένη αυτόματη παραλληλοποίηση, αυτόματη βελτιστοποίηση μεταγλωττιστή, εκπαίδευση και ενσωμάτωση ώθησης μεγάλων μοντέλων και προσαρμογή πολλαπλού υλικού μεγάλου μοντέλου, η οποία βελτιώνει πλήρως την ικανότητα εξυπηρέτησης του κλάδου.

Ενοποιημένη στατική και δυναμική αυτόματη παραλληλοποίηση: Αυτή η λειτουργία μειώνει σημαντικά το κόστος της βιομηχανικής ανάπτυξης και εκπαίδευσης. Οι χρήστες χρειάζεται μόνο να επισημάνουν μια μικρή ποσότητα τμηματοποίησης τανυστή σε μια μεμονωμένη κάρτα και το Flying Paddle Framework θα ολοκληρώσει αυτόματα την παραγωγή των κατανεμημένων πληροφοριών τμηματοποίησης και θα προσθέσει τελεστές επικοινωνίας για να διασφαλίσει την ορθότητα της λογικής. Ταυτόχρονα, με βάση τη δομή του μοντέλου και τις πληροφορίες συμπλέγματος, σε συνδυασμό με τη βελτιστοποίηση της μνήμης βίντεο και του επιπέδου προγραμματισμού, το Flying Paddle μπορεί να βρει αυτόματα την πιο αποτελεσματική κατανεμημένη παράλληλη στρατηγική, μειώνοντας έτσι σημαντικά το κόστος ανάπτυξης της υβριδικής παράλληλης εκπαίδευσης, επιτρέποντας προγραμματιστές να επικεντρωθούν περισσότερο σε μοντέλα και αλγόριθμους καινοτομίας.

Αυτόματη βελτιστοποίηση μεταγλωττιστή: Αυτή η δυνατότητα μειώνει σημαντικά το κόστος βελτιστοποίησης απόδοσης. Ο μεταγλωττιστής του Fei Paddle έχει σχεδιαστεί για να είναι ενσωματωμένος στο πλαίσιο και μπορεί να υποστηρίξει αποτελεσματική εκπαίδευση και συλλογισμό μεταβλητού σχήματος διαφόρων μοντέλων, όπως τα μοντέλα παραγωγής και τα επιστημονικά υπολογιστικά μοντέλα, παρέχοντας καλή ισορροπία μεταξύ της ευελιξίας του υπολογιστή και της υψηλής απόδοσης. Μέσω της αυτόματης συγχώνευσης τελεστών και της τεχνολογίας παραγωγής κώδικα, η απόδοση συμπερασμάτων των μοντέλων παραγωγής όπως το Llama2 και το Stable Diffusion έχει βελτιωθεί κατά περισσότερο από 30%.

Ολοκληρωμένη εκπαίδευση και προώθηση μεγάλων μοντέλων: Αυτή η δυνατότητα παρέχει στον κλάδο την απόλυτη εμπειρία ανάπτυξης. Επιτρέπει την επαναχρησιμοποίηση των δυνατοτήτων εκπαίδευσης και συμπερασμάτων μεταξύ τους, παρέχοντας μια ενοποιημένη εμπειρία ανάπτυξης και απόλυτη αποτελεσματικότητα εκπαίδευσης για όλη τη διαδικασία μεγάλων μοντέλων. Μεταβαίνοντας από την κίνηση στην ακινησία, το έργο της εκπαίδευσης και του συλλογισμού μπορεί να συνδεθεί απρόσκοπτα. Οι γενετικοί υπολογισμοί κατά τη διάρκεια της εκπαιδευτικής διαδικασίας RLHF (ενισχυτική μάθηση με ανθρώπινη ανάδραση) μπορούν να επαναχρησιμοποιηθούν για βελτιστοποίηση συμπερασμάτων, επιτυγχάνοντας επιτάχυνση 2,1x. Ταυτόχρονα, η αποτελεσματικότητα της κατανεμημένης αυτόματης παράλληλης στρατηγικής για την εκπαίδευση επαναχρησιμοποίησης σεναρίων συλλογισμού και ποσοτικοποίησης αυξάνεται κατά 3,8 φορές.

Προσαρμογή πολλαπλού υλικού μεγάλου μοντέλου: Ένα από τα σημαντικά χαρακτηριστικά του Flying Paddle είναι η προσαρμογή σε ετερογενείς πολλαπλούς πυρήνες και η πλήρης απελευθέρωση των δυνατοτήτων του υλικού. Όσον αφορά τον μηχανισμό πρόσβασης, το Flying Paddle παρέχει μια απλή και αποτελεσματική αφηρημένη διεπαφή και βασικό σύστημα χειριστή, μειώνοντας το κόστος προσαρμογής. Όσον αφορά τον μηχανισμό λειτουργίας, βελτιστοποιεί τον προγραμματισμό, την κοινή χρήση αποθήκευσης και άλλους μηχανισμούς για τη βελτίωση της αποδοτικότητας του προγραμματισμού. Από την άποψη των πυρήνων χειριστή, η Feipiao παρέχει μια λύση αυτόματης ρύθμισης σύντηξης μεταγλωττιστή για τη βελτίωση της απόδοσης από άκρο σε άκρο. Ταυτόχρονα, η Feipiao έχει δημιουργήσει επίσης υποδομές Ε&Α, όπως ενσωμάτωση κώδικα, συνεχή ενοποίηση και δοκιμές παλινδρόμησης μοντέλων για νέους κατασκευαστές υλικού. Αυτοί οι μηχανισμοί διασφαλίζουν ότι το νέο υλικό περιλαμβάνεται στο σύστημα κανονικής έκδοσης του Feipiao και οι χρήστες μπορούν να το εγκαταστήσουν και να το δοκιμάσουν απευθείας χωρίς μεταγλώττιση. Ο πλήρως λειτουργικός και χαμηλού κόστους μηχανισμός πρόσβασης του Flying Paddle έχει προσελκύσει τους κατασκευαστές υλικού να συνεισφέρουν από κοινού 3.456 PR στο Flying Paddle, συμπεριλαμβανομένων συνολικά περισσότερων από 25.000 δεσμεύσεων.

Αυτό είναι το πλαίσιο 3.0 της νέας γενιάς του Fei Paddle Επί του παρόντος, η έκδοση 3.0-Beta είναι ανοιχτή για προγραμματιστές και όλες οι διεπαφές ανάπτυξης είναι πλήρως συμβατές με την έκδοση 2.0.