Μαθαίνοντας μετασχηματιστές στο OpenNMT-TF: Μοντέλο init

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

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

Διαδικασία αρχικοποίησης

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

  • Το αρχείο διαμόρφωσης διαβάζεται και οριστικοποιείται (τα αρχεία διαμόρφωσης AUTO_CONFIG και χρήστη συγχωνεύονται).

├ .. Ενότητα runner.py

├── def _Finalize_Config () Ενότητα runner.py

├ .. def auto_config ()

Όταν η προπόνηση με μεικτή ακρίβεια (FP16), set_global_policy ("mixed_float16") περνάει στο tensorflow.

├ .. mixed_precision = selfciveled_per_ misc.enable_mixed_precision() module runner.py

├ ..

├ .. runner.py

Από το autoconfig του transform-a> σε lazyadam . Αυτός ο βελτιστοποιητής εφαρμόζεται στο addons addons βιβλιοθήκη.

Η συνάρτηση εξασθένησης noamdecay αρχικοποιείται με τις ακόλουθες παραμέτρους:

━ 1) Κλίμακα - Η τιμή από την παράμετρο του ρυθμού εκμάθησης του αρχείου διαμόρφωσης κατάρτισης έχει οριστεί (στο παράδειγμά μας η τιμή είναι 2).

━ 2) model_dim - Η τιμή από το num_units (μέγεθος RNN) η παράμετρος του αρχείου διαμόρφωσης κατάρτισης έχει οριστεί (στο παράδειγμα μας η τιμή είναι 4).

━ 3) warmup_steps - Ρυθμίζει την τιμή από την παράμετρο του αρχείου διαμόρφωσης κατάρτισης (στο παράδειγμα μας, η τιμή είναι 8000).

Η κλάση περιτύλιξης schedulewrapper αρχικοποιείται για να αυξήσει τη συμπεριφορά του προγραμματιστή ρυθμού εκμάθησης με τις ακόλουθες παραμέτρους:

━ 1) Πρόγραμμα - Αρχικοποιήθηκε πάνω από τη λειτουργία εξασθένισης noamdecay .

━ 2) step_start - Ρύθμιση τιμής από την παράμετρο start_decay_steps του αρχείου διαμόρφωσης κατάρτισης (η προεπιλεγμένη τιμή είναι 0).

━ 3) step_duration - Ρύθμιση τιμής από την παράμετρο decay_step_duration του αρχείου διαμόρφωσης κατάρτισης (προεπιλεγμένη τιμή 1).

━ 4) CLION_LEARNING_RATE - Ρυθμίστε την τιμή από την παράμετρο ελάχιστο ποσοστό μάθησης του αρχείου διαμόρφωσης κατάρτισης (στο παράδειγμα μας, η τιμή είναι 0,0001).

Η κλάση Optimizer LazyAdam αρχικοποιείται με τις ακόλουθες παραμέτρους:

━ 1) learning_rate - schedulewrapper Αρχικοποιήθηκε παραπάνω.

━ 2) kwargs - Λεξικό beta Συντελεστές από την παράμετρο του αρχείου διαμόρφωσης κατάρτισης (στο παράδειγμα μας {'beta_1': 0,9, 'beta_2': 0,998}).

━ 3) Όταν η εκπαίδευση με μεικτή ακρίβεια (FP16), η κλάση lazyadam κληρονομείται από την κλάση TF.Keras.Mixed_Precision.LossScaleOptimizer, η οποία αρχικοποιεί τις ακόλουθες παραμέτρους:

- initial_scale = 32 768 - Η τιμή με την οποία θα διορθωθεί η τιμή που λαμβάνεται από τη λειτουργία απώλεια .

- dynamic_growth_steps = 2 000 - Πόσο συχνά θα ενημερωθεί η τιμή στην οποία θα διορθωθεί η τιμή της λειτουργίας απώλεια .

├ .. Ενότητα Προγράμματα/lr_schedules.py

├ .. def (tf.keras.optimizers.schedules.learningrateschedule) Μονάδα Προγράμματα/lr_schedules.py

├ .. def Προγράμματα/lr_schedules.py

├ .. eftimizer () Βελτιστοποιητές/utils.py

Εάν ενεργοποιηθεί η συνάρτηση μεικτή ακρίβεια ή jit compile , batch_size_multiple θα είναι 8, διαφορετικά 1.

├ .. batch_multiple = (...)

├ .. dataset_fn = (...)

├ .. Ενότητα runner.py