Σήμερα, είμαστε ενθουσιασμένοι που ανακοινώνουμε τη δυνατότητα να τελειοποιήσουμε τα μοντέλα Code Llama από τη Meta χρησιμοποιώντας Amazon SageMaker JumpStart. Η οικογένεια μοντέλων μεγάλων γλωσσών Code Llama (LLMs) είναι μια συλλογή προεκπαιδευμένων και βελτιστοποιημένων μοντέλων παραγωγής κώδικα που κυμαίνονται σε κλίμακα από 7 δισεκατομμύρια έως 70 δισεκατομμύρια παραμέτρους. Τα καλά συντονισμένα μοντέλα Code Llama παρέχουν καλύτερη ακρίβεια και επεξήγηση σε σχέση με τα βασικά μοντέλα Code Llama, όπως φαίνεται από τις δοκιμές του έναντι HumanEval και σύνολα δεδομένων MBPP. Μπορείτε να ρυθμίσετε και να αναπτύξετε μοντέλα Code Llama με το SageMaker JumpStart χρησιμοποιώντας το Στούντιο Amazon SageMaker UI με μερικά κλικ ή χρησιμοποιώντας το SageMaker Python SDK. Η τελειοποίηση των μοντέλων Llama βασίζεται στα σενάρια που παρέχονται στο λάμα-συνταγές ρεπο GitHub από το Meta χρησιμοποιώντας τεχνικές κβαντοποίησης PyTorch FSDP, PEFT/LoRA και Int8.
Σε αυτήν την ανάρτηση, περιγράφουμε πώς να τελειοποιήσετε τα προεκπαιδευμένα μοντέλα Code Llama μέσω του SageMaker JumpStart μέσω μιας εμπειρίας UI και SDK με ένα κλικ που είναι διαθέσιμη στα ακόλουθα Αποθετήριο GitHub.
Τι είναι το SageMaker JumpStart
Με το SageMaker JumpStart, οι επαγγελματίες μηχανικής μάθησης (ML) μπορούν να επιλέξουν από μια ευρεία γκάμα διαθέσιμων στο κοινό μοντέλων θεμελίων. Οι επαγγελματίες ML μπορούν να αναπτύξουν μοντέλα θεμελίωσης σε αποκλειστική χρήση Amazon Sage Maker στιγμιότυπα από ένα απομονωμένο περιβάλλον δικτύου και προσαρμόστε μοντέλα χρησιμοποιώντας το SageMaker για εκπαίδευση και ανάπτυξη μοντέλων.
Τι είναι το Code Llama
Το Code Llama είναι μια έκδοση του κωδικού Λάμα 2 που δημιουργήθηκε με την περαιτέρω εκπαίδευση του Llama 2 στα σύνολα δεδομένων του για συγκεκριμένο κώδικα και τη δειγματοληψία περισσότερων δεδομένων από το ίδιο σύνολο δεδομένων για μεγαλύτερο χρονικό διάστημα. Το Code Llama διαθέτει βελτιωμένες δυνατότητες κωδικοποίησης. Μπορεί να δημιουργήσει κώδικα και φυσική γλώσσα σχετικά με τον κώδικα, τόσο από κώδικα όσο και από προτροπές φυσικής γλώσσας (για παράδειγμα, "Γράψτε μου μια συνάρτηση που εξάγει την ακολουθία Fibonacci"). Μπορείτε επίσης να το χρησιμοποιήσετε για τη συμπλήρωση κώδικα και τον εντοπισμό σφαλμάτων. Υποστηρίζει πολλές από τις πιο δημοφιλείς γλώσσες προγραμματισμού που χρησιμοποιούνται σήμερα, όπως Python, C++, Java, PHP, Typescript (JavaScript), C#, Bash και άλλα.
Γιατί να τελειοποιήσετε τα μοντέλα Code Llama
Η Meta δημοσίευσε τα σημεία αναφοράς απόδοσης του Code Llama HumanEval και MBPP για κοινές γλώσσες κωδικοποίησης όπως Python, Java και JavaScript. Η απόδοση των μοντέλων Code Llama Python στο HumanEval έδειξε ποικίλες επιδόσεις σε διαφορετικές γλώσσες κωδικοποίησης και εργασίες που κυμαίνονται από 38% στο μοντέλο Python 7B έως 57% σε μοντέλα Python 70B. Επιπλέον, τα βελτιωμένα μοντέλα Code Llama στη γλώσσα προγραμματισμού SQL έχουν δείξει καλύτερα αποτελέσματα, όπως φαίνεται στα σημεία αναφοράς αξιολόγησης SQL. Αυτά τα δημοσιευμένα σημεία αναφοράς υπογραμμίζουν τα πιθανά οφέλη από τη βελτίωση των μοντέλων Code Llama, επιτρέποντας καλύτερη απόδοση, προσαρμογή και προσαρμογή σε συγκεκριμένους τομείς και εργασίες κωδικοποίησης.
Βελτιστοποίηση χωρίς κώδικα μέσω της διεπαφής χρήστη του SageMaker Studio
Για να ξεκινήσετε να βελτιώνετε τα μοντέλα Llama χρησιμοποιώντας το SageMaker Studio, ολοκληρώστε τα παρακάτω βήματα:
- Στην κονσόλα SageMaker Studio, επιλέξτε εκκίνηση με άλμα στο παράθυρο πλοήγησης.
Θα βρείτε λίστες με περισσότερα από 350 μοντέλα που κυμαίνονται από ανοιχτού κώδικα και ιδιόκτητα μοντέλα.
- Αναζήτηση για μοντέλα Code Llama.
Εάν δεν βλέπετε μοντέλα Code Llama, μπορείτε να ενημερώσετε την έκδοση του SageMaker Studio τερματίζοντας και επανεκκινώντας. Για περισσότερες πληροφορίες σχετικά με τις ενημερώσεις έκδοσης, ανατρέξτε στο Τερματισμός και ενημέρωση εφαρμογών Studio. Μπορείτε επίσης να βρείτε άλλες παραλλαγές μοντέλων επιλέγοντας Εξερευνήστε όλα τα μοντέλα δημιουργίας κώδικα ή αναζητώντας τον κωδικό Λάμα στο πλαίσιο αναζήτησης.
Το SageMaker JumpStart υποστηρίζει επί του παρόντος τη λεπτομέρεια εντολών για μοντέλα Code Llama. Το παρακάτω στιγμιότυπο οθόνης δείχνει τη σελίδα λεπτομέρειας για το μοντέλο Code Llama 2 70B.
- Για Τοποθεσία δεδομένων εκπαίδευσης, μπορείτε να υποδείξετε το Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδος που περιέχει τα σύνολα δεδομένων εκπαίδευσης και επικύρωσης για τελειοποίηση.
- Ρυθμίστε τις ρυθμίσεις παραμέτρων ανάπτυξης, τις υπερπαραμέτρους και τις ρυθμίσεις ασφαλείας για τελειοποίηση.
- Επιλέξτε Τρένο για να ξεκινήσετε την εργασία λεπτομέρειας σε μια παρουσία του SageMaker ML.
Συζητάμε τη μορφή δεδομένων που χρειάζεστε για να προετοιμάσετε για τη λεπτομερή ρύθμιση των οδηγιών στην επόμενη ενότητα.
- Αφού τελειοποιήσετε το μοντέλο, μπορείτε να το αναπτύξετε χρησιμοποιώντας τη σελίδα μοντέλου στο SageMaker JumpStart.
Η επιλογή ανάπτυξης του μικροσυντονισμένου μοντέλου θα εμφανιστεί όταν ολοκληρωθεί η μικροσυντονισμός, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.
Βελτιστοποιήστε μέσω του SageMaker Python SDK
Σε αυτήν την ενότητα, δείχνουμε πώς να τελειοποιήσετε τα μοντέλα Code LIama χρησιμοποιώντας το SageMaker Python SDK σε ένα σύνολο δεδομένων με μορφοποίηση εντολών. Συγκεκριμένα, το μοντέλο έχει ρυθμιστεί με ακρίβεια για ένα σύνολο εργασιών επεξεργασίας φυσικής γλώσσας (NLP) που περιγράφονται χρησιμοποιώντας οδηγίες. Αυτό βοηθά στη βελτίωση της απόδοσης του μοντέλου για μη εμφανείς εργασίες με προτροπές μηδενικής λήψης.
Ολοκληρώστε τα παρακάτω βήματα για να ολοκληρώσετε την εργασία βελτιστοποίησης. Μπορείτε να λάβετε ολόκληρο τον κώδικα μικρορύθμισης από το Αποθετήριο GitHub.
Αρχικά, ας δούμε τη μορφή δεδομένων που απαιτείται για τη λεπτομερή ρύθμιση της εντολής. Τα δεδομένα εκπαίδευσης θα πρέπει να μορφοποιηθούν σε μορφή JSON lines (.jsonl), όπου κάθε γραμμή είναι ένα λεξικό που αντιπροσωπεύει ένα δείγμα δεδομένων. Όλα τα δεδομένα εκπαίδευσης πρέπει να βρίσκονται σε έναν μόνο φάκελο. Ωστόσο, μπορεί να αποθηκευτεί σε πολλά αρχεία .jsonl. Το παρακάτω είναι ένα δείγμα σε μορφή JSON lines:
Ο φάκελος εκπαίδευσης μπορεί να περιέχει α template.json
αρχείο που περιγράφει τις μορφές εισόδου και εξόδου. Το παρακάτω είναι ένα παράδειγμα προτύπου:
Για να ταιριάζει με το πρότυπο, κάθε δείγμα στα αρχεία γραμμών JSON πρέπει να περιλαμβάνει system_prompt
, question
, να response
χωράφια. Σε αυτήν την επίδειξη, χρησιμοποιούμε το Δεδομένα Dolphin Coder από το Hugging Face.
Αφού προετοιμάσετε το σύνολο δεδομένων και το ανεβάσετε στον κάδο S3, μπορείτε να ξεκινήσετε τη λεπτομέρεια χρησιμοποιώντας τον ακόλουθο κώδικα:
Μπορείτε να αναπτύξετε το τελειοποιημένο μοντέλο απευθείας από τον εκτιμητή, όπως φαίνεται στον παρακάτω κώδικα. Για λεπτομέρειες, δείτε το σημειωματάριο στο Αποθετήριο GitHub.
Τεχνικές μικρορύθμισης
Τα μοντέλα γλώσσας όπως το Llama έχουν μέγεθος μεγαλύτερο από 10 GB ή ακόμα και 100 GB. Η τελειοποίηση τέτοιων μεγάλων μοντέλων απαιτεί περιπτώσεις με σημαντικά υψηλή μνήμη CUDA. Επιπλέον, η εκπαίδευση αυτών των μοντέλων μπορεί να είναι πολύ αργή λόγω του μεγέθους του μοντέλου. Επομένως, για αποτελεσματική μικρορύθμιση, χρησιμοποιούμε τις ακόλουθες βελτιστοποιήσεις:
- Προσαρμογή χαμηλής κατάταξης (LoRA) – Αυτός είναι ένας τύπος παραμέτρου αποδοτικής μικρορύθμισης (PEFT) για αποτελεσματική μικρορύθμιση μεγάλων μοντέλων. Με αυτήν τη μέθοδο, παγώνετε ολόκληρο το μοντέλο και προσθέτετε μόνο ένα μικρό σύνολο ρυθμιζόμενων παραμέτρων ή επιπέδων στο μοντέλο. Για παράδειγμα, αντί να εκπαιδεύσετε και τις 7 δισεκατομμύρια παραμέτρους για το Llama 2 7B, μπορείτε να ρυθμίσετε με ακρίβεια λιγότερο από το 1% των παραμέτρων. Αυτό βοηθά στη σημαντική μείωση της απαίτησης μνήμης επειδή χρειάζεται να αποθηκεύσετε μόνο διαβαθμίσεις, καταστάσεις βελτιστοποίησης και άλλες πληροφορίες που σχετίζονται με την εκπαίδευση μόνο για το 1% των παραμέτρων. Επιπλέον, αυτό βοηθά στη μείωση του χρόνου προπόνησης καθώς και του κόστους. Για περισσότερες λεπτομέρειες σχετικά με αυτήν τη μέθοδο, ανατρέξτε στο LoRA: Προσαρμογή χαμηλού βαθμού μεγάλων γλωσσικών μοντέλων.
- Κβαντισμός Int8 – Ακόμη και με βελτιστοποιήσεις όπως το LoRA, μοντέλα όπως το Llama 70B εξακολουθούν να είναι πολύ μεγάλα για εκπαίδευση. Για να μειώσετε το αποτύπωμα μνήμης κατά τη διάρκεια της προπόνησης, μπορείτε να χρησιμοποιήσετε την κβαντοποίηση Int8 κατά τη διάρκεια της προπόνησης. Η κβαντοποίηση τυπικά μειώνει την ακρίβεια των τύπων δεδομένων κινητής υποδιαστολής. Αν και αυτό μειώνει τη μνήμη που απαιτείται για την αποθήκευση βαρών μοντέλων, υποβαθμίζει την απόδοση λόγω απώλειας πληροφοριών. Η κβαντοποίηση Int8 χρησιμοποιεί μόνο το ένα τέταρτο της ακρίβειας, αλλά δεν επιφέρει υποβάθμιση της απόδοσης επειδή δεν ρίχνει απλώς τα bits. Στρογγυλοποιεί τα δεδομένα από τον έναν τύπο στον άλλο. Για να μάθετε σχετικά με την κβαντοποίηση Int8, ανατρέξτε στο LLM.int8(): Πολλαπλασιασμός Matrix 8-bit για μετασχηματιστές σε κλίμακα.
- Πλήρως σπασμένα δεδομένα παράλληλα (FSDP) – Αυτός είναι ένας τύπος αλγόριθμου εκπαίδευσης παράλληλων δεδομένων που κατακερματίζει τις παραμέτρους του μοντέλου σε παράλληλους εργαζόμενους δεδομένων και μπορεί προαιρετικά να μεταφορτώσει μέρος του υπολογισμού της εκπαίδευσης στις CPU. Παρόλο που οι παράμετροι είναι κατανεμημένες σε διαφορετικές GPU, ο υπολογισμός κάθε μικροπαρτίδας είναι τοπικός για τον εργαζόμενο GPU. Κατακερματίζει τις παραμέτρους πιο ομοιόμορφα και επιτυγχάνει βελτιστοποιημένη απόδοση μέσω αλληλοεπικάλυψης επικοινωνίας και υπολογισμού κατά τη διάρκεια της προπόνησης.
Ο παρακάτω πίνακας συνοψίζει τις λεπτομέρειες κάθε μοντέλου με διαφορετικές ρυθμίσεις.
Μοντέλο | Προεπιλεγμένη ρύθμιση | LORA + FSDP | LORA + Χωρίς FSDP | Int8 Quantization + LORA + No FSDP |
Κωδικός Llama 2 7B | LORA + FSDP | Ναι | Ναι | Ναι |
Κωδικός Llama 2 13B | LORA + FSDP | Ναι | Ναι | Ναι |
Κωδικός Llama 2 34B | INT8 + LORA + ΟΧΙ FSDP | Οχι | Οχι | Ναι |
Κωδικός Llama 2 70B | INT8 + LORA + ΟΧΙ FSDP | Οχι | Οχι | Ναι |
Η τελειοποίηση των μοντέλων Llama βασίζεται σε σενάρια που παρέχονται από τα ακόλουθα GitHub repo.
Υποστηριζόμενες υπερπαράμετροι για προπόνηση
Η λεπτομέρεια του Code Llama 2 υποστηρίζει έναν αριθμό υπερπαραμέτρων, καθεμία από τις οποίες μπορεί να επηρεάσει την απαίτηση μνήμης, την ταχύτητα προπόνησης και την απόδοση του βελτιωμένου μοντέλου:
- εποχή – Ο αριθμός των περασμάτων που πραγματοποιεί ο αλγόριθμος μικρορύθμισης μέσω του συνόλου δεδομένων εκπαίδευσης. Πρέπει να είναι ακέραιος αριθμός μεγαλύτερος από 1. Η προεπιλογή είναι 5.
- βαθμός μάθησης – Ο ρυθμός με τον οποίο ενημερώνονται τα βάρη του μοντέλου μετά την επεξεργασία κάθε παρτίδας παραδειγμάτων εκπαίδευσης. Πρέπει να είναι θετικός float μεγαλύτερος από 0. Η προεπιλογή είναι 1e-4.
- instruction_tuned – Είτε θα εκπαιδεύσετε-εκπαιδεύσετε το μοντέλο είτε όχι. Πρέπει να είναι
True
orFalse
. Η προεπιλογή είναιFalse
. - ανά_συσκευή_train_batch_size – Το μέγεθος παρτίδας ανά πυρήνα/CPU GPU για εκπαίδευση. Πρέπει να είναι θετικός ακέραιος αριθμός. Η προεπιλογή είναι 4.
- ανά_συσκευή_eval_batch_size – Το μέγεθος παρτίδας ανά πυρήνα/CPU GPU για αξιολόγηση. Πρέπει να είναι θετικός ακέραιος αριθμός. Η προεπιλογή είναι 1.
- max_train_samples – Για σκοπούς εντοπισμού σφαλμάτων ή ταχύτερη εκπαίδευση, περικόψτε τον αριθμό των παραδειγμάτων εκπαίδευσης σε αυτήν την τιμή. Η τιμή -1 σημαίνει τη χρήση όλων των δειγμάτων εκπαίδευσης. Πρέπει να είναι θετικός ακέραιος ή -1. Η προεπιλογή είναι -1.
- max_val_samples – Για σκοπούς εντοπισμού σφαλμάτων ή ταχύτερη εκπαίδευση, περικόψτε τον αριθμό των παραδειγμάτων επικύρωσης σε αυτήν την τιμή. Η τιμή -1 σημαίνει τη χρήση όλων των δειγμάτων επικύρωσης. Πρέπει να είναι θετικός ακέραιος ή -1. Η προεπιλογή είναι -1.
- max_input_length – Μέγιστο συνολικό μήκος ακολουθίας εισαγωγής μετά τη διαγραφή. Ακολουθίες μεγαλύτερες από αυτό θα περικοπούν. Αν -1,
max_input_length
έχει οριστεί στο ελάχιστο 1024 και το μέγιστο μήκος μοντέλου που ορίζεται από το tokenizer. Εάν οριστεί σε θετική τιμή,max_input_length
ορίζεται στο ελάχιστο της παρεχόμενης τιμής και τοmodel_max_length
που ορίζεται από το tokenizer. Πρέπει να είναι θετικός ακέραιος ή -1. Η προεπιλογή είναι -1. - αναλογία_διαχωρισμού_επικύρωσης – Εάν υπάρχει κανάλι επικύρωσης
none
, ο λόγος του διαχωρισμού της αμαξοστοιχίας-επικύρωσης από τα δεδομένα αμαξοστοιχίας πρέπει να είναι μεταξύ 0–1. Η προεπιλογή είναι 0.2. - train_data_split_seed – Εάν δεν υπάρχουν δεδομένα επικύρωσης, αυτό διορθώνει τον τυχαίο διαχωρισμό των δεδομένων εκπαίδευσης εισόδου σε δεδομένα εκπαίδευσης και επικύρωσης που χρησιμοποιούνται από τον αλγόριθμο. Πρέπει να είναι ακέραιος. Η προεπιλογή είναι 0.
- preprocessing_num_workers – Ο αριθμός των διεργασιών που θα χρησιμοποιηθούν για την προεπεξεργασία. Αν
None
, η κύρια διαδικασία χρησιμοποιείται για την προεπεξεργασία. Η προεπιλογή είναιNone
. - lora_r – Lora R. Πρέπει να είναι θετικός ακέραιος αριθμός. Η προεπιλογή είναι 8.
- lora_alpha – Λώρα Άλφα. Πρέπει να είναι θετικός ακέραιος αριθμός. Η προεπιλογή είναι 32
- lora_dropout – Lora Dropout. πρέπει να είναι θετική διακύμανση μεταξύ 0 και 1. Η προεπιλογή είναι 0.05.
- int8_quantization - Αν
True
, το μοντέλο είναι φορτωμένο με ακρίβεια 8-bit για εκπαίδευση. Η προεπιλογή για τα 7B και 13B είναιFalse
. Η προεπιλογή για 70Β είναιTrue
. - enable_fsdp – Εάν ισχύει, η εκπαίδευση χρησιμοποιεί FSDP. Η προεπιλογή για τα 7B και 13B είναι True. Η προεπιλογή για το 70B είναι False. Σημειώστε ότι
int8_quantization
δεν υποστηρίζεται με FSDP.
Κατά την επιλογή των υπερπαραμέτρων, λάβετε υπόψη τα ακόλουθα:
- Ρύθμιση
int8_quantization=True
μειώνει τις απαιτήσεις μνήμης και οδηγεί σε ταχύτερη προπόνηση. - Μείωση
per_device_train_batch_size
καιmax_input_length
μειώνει την απαίτηση μνήμης και επομένως μπορεί να εκτελεστεί σε μικρότερες περιπτώσεις. Ωστόσο, η ρύθμιση πολύ χαμηλών τιμών μπορεί να αυξήσει τον χρόνο προπόνησης. - Εάν δεν χρησιμοποιείτε κβαντισμό Int8 (
int8_quantization=False
), χρησιμοποιήστε το FSDP (enable_fsdp=True
) για ταχύτερη και αποτελεσματική προπόνηση.
Υποστηριζόμενοι τύποι παρουσιών για εκπαίδευση
Ο παρακάτω πίνακας συνοψίζει τους υποστηριζόμενους τύπους παρουσιών για την εκπαίδευση διαφορετικών μοντέλων.
Μοντέλο | Προεπιλεγμένος τύπος παρουσίας | Υποστηριζόμενοι τύποι παρουσιών |
Κωδικός Llama 2 7B | ml.g5.12xμεγάλο |
ml.g5.12xlarge, ml.g5.24xlarge, ml.g5.48xlarge, ml.p3dn.24xlarge, ml.g4dn.12xlarge |
Κωδικός Llama 2 13B | ml.g5.12xμεγάλο |
ml.g5.24xlarge, ml.g5.48xlarge, ml.p3dn.24xlarge, ml.g4dn.12xlarge |
Κωδικός Llama 2 70B | ml.g5.48xμεγάλο |
ml.g5.48xμεγάλο ml.p4d.24xlarge |
Όταν επιλέγετε τον τύπο του στιγμιότυπου, λάβετε υπόψη τα εξής:
- Οι παρουσίες G5 παρέχουν την πιο αποτελεσματική εκπαίδευση μεταξύ των υποστηριζόμενων τύπων παρουσιών. Επομένως, εάν έχετε διαθέσιμες παρουσίες G5, θα πρέπει να τις χρησιμοποιήσετε.
- Ο χρόνος εκπαίδευσης εξαρτάται σε μεγάλο βαθμό από τον αριθμό των GPU και τη διαθέσιμη μνήμη CUDA. Επομένως, η εκπαίδευση σε περιπτώσεις με τον ίδιο αριθμό GPU (για παράδειγμα, ml.g5.2xlarge και ml.g5.4xlarge) είναι περίπου η ίδια. Επομένως, μπορείτε να χρησιμοποιήσετε το φθηνότερο παράδειγμα για προπόνηση (ml.g5.2xlarge).
- Όταν χρησιμοποιείτε παρουσίες p3, η εκπαίδευση θα γίνεται με ακρίβεια 32 bit επειδή το bfloat16 δεν υποστηρίζεται σε αυτές τις περιπτώσεις. Επομένως, η εργασία εκπαίδευσης θα καταναλώσει διπλάσια ποσότητα μνήμης CUDA κατά την προπόνηση σε περιπτώσεις p3 σε σύγκριση με περιπτώσεις g5.
Για να μάθετε σχετικά με το κόστος της εκπαίδευσης ανά περίπτωση, ανατρέξτε στο Περιπτώσεις Amazon EC2 G5.
Εκτίμηση
Η αξιολόγηση είναι ένα σημαντικό βήμα για την αξιολόγηση της απόδοσης των τελειοποιημένων μοντέλων. Παρουσιάζουμε τόσο ποιοτικές όσο και ποσοτικές αξιολογήσεις για να δείξουμε βελτίωση των μοντέλων με ακρίβεια σε σχέση με τα μη βελτιωμένα. Στην ποιοτική αξιολόγηση, δείχνουμε ένα παράδειγμα απόκρισης τόσο από βελτιωμένα όσο και από μη βελτιωμένα μοντέλα. Στην ποσοτική αξιολόγηση χρησιμοποιούμε HumanEval, μια δοκιμαστική σουίτα που αναπτύχθηκε από την OpenAI για τη δημιουργία κώδικα Python για τον έλεγχο των δυνατοτήτων παραγωγής σωστών και ακριβών αποτελεσμάτων. Το αποθετήριο HumanEval είναι υπό άδεια MIT. Βελτιστοποιήσαμε τις παραλλαγές Python όλων των μοντέλων Code LIama σε διαφορετικά μεγέθη (Κωδικός LIama Python 7B, 13B, 34B και 70B στο Δεδομένα Dolphin Coder), και παρουσιάστε τα αποτελέσματα της αξιολόγησης στις ακόλουθες ενότητες.
Ποιοτική αξιολόγηση
Με την ανάπτυξη του βελτιωμένου μοντέλου σας, μπορείτε να αρχίσετε να χρησιμοποιείτε το τελικό σημείο για τη δημιουργία κώδικα. Στο παρακάτω παράδειγμα, παρουσιάζουμε απαντήσεις τόσο από βασικές όσο και από λεπτοσυντονισμένες παραλλαγές του Code LIama 34B Python σε ένα δείγμα δοκιμής στο Δεδομένα Dolphin Coder:
Το βελτιωμένο μοντέλο Code Llama, εκτός από την παροχή του κώδικα για το προηγούμενο ερώτημα, δημιουργεί μια λεπτομερή εξήγηση της προσέγγισης και έναν ψευδοκώδικα.
Κωδικός Llama 34b Python Non-Fine-Tuned Response:
Κωδικός Llama 34B Python Fine-Tuned Response
Βασική αλήθεια
Είναι ενδιαφέρον ότι η τελειοποιημένη έκδοση του Code Llama 34B Python παρέχει μια λύση δυναμικού προγραμματισμού στη μεγαλύτερη παλινδρομική υποσυμβολοσειρά, η οποία είναι διαφορετική από τη λύση που παρέχεται στη βασική αλήθεια από το επιλεγμένο παράδειγμα δοκιμής. Το τελειοποιημένο μοντέλο μας εξηγεί και εξηγεί λεπτομερώς τη λύση που βασίζεται στον δυναμικό προγραμματισμό. Από την άλλη πλευρά, το μη βελτιωμένο μοντέλο έχει παραισθήσεις πιθανές εξόδους αμέσως μετά το print
δήλωση (εμφανίζεται στο αριστερό κελί) επειδή η έξοδος axyzzyx
δεν είναι το μεγαλύτερο παλίνδρομο στη δεδομένη συμβολοσειρά. Όσον αφορά τη χρονική πολυπλοκότητα, η λύση δυναμικού προγραμματισμού είναι γενικά καλύτερη από την αρχική προσέγγιση. Η λύση δυναμικού προγραμματισμού έχει χρονική πολυπλοκότητα O(n^2), όπου n είναι το μήκος της συμβολοσειράς εισόδου. Αυτό είναι πιο αποτελεσματικό από την αρχική λύση από το μη βελτιστοποιημένο μοντέλο, το οποίο είχε επίσης τετραγωνική χρονική πολυπλοκότητα O(n^2) αλλά με λιγότερο βελτιστοποιημένη προσέγγιση.
Αυτό φαίνεται πολλά υποσχόμενο! Θυμηθείτε, βελτιστοποιήσαμε μόνο την παραλλαγή Code LIama Python με το 10% του Δεδομένα Dolphin Coder. Υπάρχουν πολλά περισσότερα να εξερευνήσετε!
Παρά τις λεπτομερείς οδηγίες στην απόκριση, πρέπει να εξετάσουμε την ορθότητα του κώδικα Python που παρέχεται στη λύση. Στη συνέχεια, χρησιμοποιούμε ένα πλαίσιο αξιολόγησης που ονομάζεται Human Eval να εκτελέσει δοκιμές ολοκλήρωσης στην απόκριση που δημιουργείται από τον Code LIama για να εξετάσει συστηματικά την ποιότητά του.
Ποσοτική αξιολόγηση με την HumanEval
Το HumanEval είναι ένα λουρί αξιολόγησης για την αξιολόγηση των δυνατοτήτων επίλυσης προβλημάτων ενός LLM σε προβλήματα κωδικοποίησης που βασίζονται σε Python, όπως περιγράφεται στην εργασία Αξιολόγηση μοντέλων μεγάλων γλωσσών που εκπαιδεύονται στον κώδικα. Συγκεκριμένα, αποτελείται από 164 πρωτότυπα προβλήματα προγραμματισμού που βασίζονται σε Python που αξιολογούν την ικανότητα ενός γλωσσικού μοντέλου να δημιουργεί κώδικα με βάση τις παρεχόμενες πληροφορίες όπως υπογραφή συνάρτησης, συμβολοσειρά εγγράφων, σώμα και δοκιμές μονάδων.
Για κάθε ερώτηση προγραμματισμού που βασίζεται σε Python, τη στέλνουμε σε ένα μοντέλο Code LIama που έχει αναπτυχθεί σε ένα τελικό σημείο του SageMaker για να λάβουμε k απαντήσεις. Στη συνέχεια, εκτελούμε κάθε μία από τις k απαντήσεις στα τεστ ολοκλήρωσης στο αποθετήριο HumanEval. Εάν οποιαδήποτε απόκριση των αποκρίσεων k περάσει τις δοκιμές ολοκλήρωσης, υπολογίζουμε ότι η περίπτωση δοκιμής είναι επιτυχημένη. διαφορετικά, απέτυχε. Στη συνέχεια επαναλαμβάνουμε τη διαδικασία για να υπολογίσουμε την αναλογία επιτυχών υποθέσεων όπως ονομάστηκε η τελική βαθμολογία αξιολόγησης pass@k
. Ακολουθώντας την τυπική πρακτική, ορίσαμε το k ως 1 στην αξιολόγησή μας, για να δημιουργήσουμε μόνο μία απάντηση ανά ερώτηση και να ελέγξουμε εάν περνάει στο τεστ ολοκλήρωσης.
Το παρακάτω είναι ένα δείγμα κώδικα για τη χρήση του αποθετηρίου HumanEval. Μπορείτε να αποκτήσετε πρόσβαση στο σύνολο δεδομένων και να δημιουργήσετε μια μεμονωμένη απάντηση χρησιμοποιώντας ένα τελικό σημείο SageMaker. Για λεπτομέρειες, δείτε το σημειωματάριο στο Αποθετήριο GitHub.
Ο παρακάτω πίνακας δείχνει τις βελτιώσεις των μοντέλων Code LIama Python με λεπτομέρεια σε σχέση με τα μη βελτιωμένα μοντέλα σε διαφορετικά μεγέθη μοντέλων. Για να διασφαλίσουμε την ορθότητα, αναπτύσσουμε επίσης τα μη προσαρμοσμένα μοντέλα Code LIama στα τελικά σημεία του SageMaker και πραγματοποιούμε αξιολογήσεις Human Eval. ο pass@1 οι αριθμοί (η πρώτη σειρά στον παρακάτω πίνακα) ταιριάζουν με τους αναφερόμενους αριθμούς στο Ερευνητική εργασία Code Llama. Οι παράμετροι συμπερασμάτων ορίζονται με συνέπεια ως "parameters": {"max_new_tokens": 384, "temperature": 0.2}
.
Όπως μπορούμε να δούμε από τα αποτελέσματα, όλες οι παραλλαγές του Code LIama Python με λεπτομέρεια παρουσιάζουν σημαντική βελτίωση σε σχέση με τα μη βελτιωμένα μοντέλα. Ειδικότερα, το Code LIama Python 70B ξεπερνά κατά 12% περίπου το μοντέλο που δεν έχει ρυθμιστεί με ακρίβεια.
. | 7Β Python | 13Β Python | 34B | 34Β Python | 70Β Python |
Προεκπαιδευμένη απόδοση μοντέλου (pass@1) | 38.4 | 43.3 | 48.8 | 53.7 | 57.3 |
Βελτιωμένη απόδοση μοντέλου (pass@1) | 45.12 | 45.12 | 59.1 | 61.5 | 69.5 |
Τώρα μπορείτε να δοκιμάσετε να βελτιώσετε τα μοντέλα Code LIama στο δικό σας σύνολο δεδομένων.
εκκαθάριση
Εάν αποφασίσετε ότι δεν θέλετε πλέον να διατηρείτε το τελικό σημείο του SageMaker σε λειτουργία, μπορείτε να το διαγράψετε χρησιμοποιώντας AWS SDK για Python (Boto3), Διεπαφή γραμμής εντολών AWS (AWS CLI) ή κονσόλα SageMaker. Για περισσότερες πληροφορίες, βλ Διαγραφή τελικών σημείων και πόρων. Επιπλέον, μπορείτε τερματίστε τους πόρους του SageMaker Studio που δεν απαιτούνται πλέον.
Συμπέρασμα
Σε αυτήν την ανάρτηση, συζητήσαμε τη βελτίωση των μοντέλων Code Llama 2 της Meta χρησιμοποιώντας το SageMaker JumpStart. Δείξαμε ότι μπορείτε να χρησιμοποιήσετε την κονσόλα SageMaker JumpStart στο SageMaker Studio ή το SageMaker Python SDK για να τελειοποιήσετε και να αναπτύξετε αυτά τα μοντέλα. Συζητήσαμε επίσης την τεχνική μικρορύθμισης, τους τύπους παρουσιών και τις υποστηριζόμενες υπερπαραμέτρους. Επιπλέον, περιγράψαμε συστάσεις για βελτιστοποιημένη εκπαίδευση με βάση διάφορες δοκιμές που πραγματοποιήσαμε. Όπως μπορούμε να δούμε από αυτά τα αποτελέσματα της λεπτομέρειας τριών μοντέλων σε δύο σύνολα δεδομένων, η τελειοποίηση βελτιώνει τη σύνοψη σε σύγκριση με τα μοντέλα που δεν έχουν συντονιστεί με ακρίβεια. Ως επόμενο βήμα, μπορείτε να δοκιμάσετε να ρυθμίσετε αυτά τα μοντέλα στο δικό σας σύνολο δεδομένων χρησιμοποιώντας τον κώδικα που παρέχεται στο αποθετήριο GitHub για να δοκιμάσετε και να αξιολογήσετε τα αποτελέσματα για τις περιπτώσεις χρήσης σας.
Σχετικά με τους Συγγραφείς
Δόκτωρ Σιν Χουάνγκ είναι Senior Applied Scientist για τους ενσωματωμένους αλγόριθμους Amazon SageMaker JumpStart και Amazon SageMaker. Επικεντρώνεται στην ανάπτυξη κλιμακωτών αλγορίθμων μηχανικής μάθησης. Τα ερευνητικά του ενδιαφέροντα είναι στον τομέα της επεξεργασίας φυσικής γλώσσας, της εξηγήσιμης βαθιάς μάθησης σε δεδομένα πινάκων και της ισχυρής ανάλυσης της μη παραμετρικής ομαδοποίησης του χωροχρόνου. Έχει δημοσιεύσει πολλές εργασίες σε συνέδρια ACL, ICDM, KDD και Royal Statistical Society: Series A.
Vishaal Yalamanchali είναι αρχιτέκτονας λύσεων εκκίνησης που συνεργάζεται με εταιρείες παραγωγής τεχνητής νοημοσύνης, ρομποτικής και αυτόνομων οχημάτων σε πρώιμο στάδιο. Ο Vishaal συνεργάζεται με τους πελάτες του για την παροχή λύσεων ML αιχμής και ενδιαφέρεται προσωπικά για την ενισχυτική μάθηση, την αξιολόγηση LLM και τη δημιουργία κώδικα. Πριν από το AWS, ο Vishaal ήταν προπτυχιακός στο UCI, επικεντρωμένος στη βιοπληροφορική και τα ευφυή συστήματα.
Meenakshisundaram Thandavarayan εργάζεται για την AWS ως Ειδικός AI/ML. Έχει πάθος να σχεδιάζει, να δημιουργεί και να προωθεί ανθρωποκεντρικές εμπειρίες δεδομένων και ανάλυσης. Η Meena εστιάζει στην ανάπτυξη βιώσιμων συστημάτων που προσφέρουν μετρήσιμα, ανταγωνιστικά πλεονεκτήματα για στρατηγικούς πελάτες της AWS. Η Meena είναι στοχαστής σύνδεσης και σχεδιασμού και προσπαθεί να οδηγήσει τις επιχειρήσεις σε νέους τρόπους εργασίας μέσω της καινοτομίας, της επώασης και του εκδημοκρατισμού.
Δρ Ashish Khetan είναι Ανώτερος Εφαρμοσμένος Επιστήμονας με ενσωματωμένους αλγόριθμους του Amazon SageMaker και βοηθά στην ανάπτυξη αλγορίθμων μηχανικής μάθησης. Πήρε το διδακτορικό του από το Πανεπιστήμιο του Illinois Urbana-Champaign. Είναι ενεργός ερευνητής στη μηχανική μάθηση και στα στατιστικά συμπεράσματα και έχει δημοσιεύσει πολλές εργασίες σε συνέδρια NeurIPS, ICML, ICLR, JMLR, ACL και EMNLP.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoData.Network Vertical Generative Ai. Ενδυναμώστε τον εαυτό σας. Πρόσβαση εδώ.
- PlatoAiStream. Web3 Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- PlatoESG. Ανθρακας, Cleantech, Ενέργεια, Περιβάλλον, Ηλιακός, Διαχείριση των αποβλήτων. Πρόσβαση εδώ.
- PlatoHealth. Ευφυΐα βιοτεχνολογίας και κλινικών δοκιμών. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/machine-learning/fine-tune-code-llama-on-amazon-sagemaker-jumpstart/
- :έχει
- :είναι
- :δεν
- :που
- 1
- 10
- 100
- 12
- 13
- 14
- 16
- 20
- 27
- 2D
- 350
- 7
- 70
- 8
- a
- ικανότητες
- ικανότητα
- Σχετικα
- Αποδέχομαι
- πρόσβαση
- ακρίβεια
- ακριβής
- Επιτυγχάνει
- απέναντι
- ενεργός
- προσαρμογή
- προσθέτω
- Επιπλέον
- Επιπλέον
- ρυθμιζόμενο
- πλεονεκτήματα
- Μετά το
- κατά
- AI
- αλγόριθμος
- αλγόριθμοι
- Όλα
- Άλφα
- ήδη
- Επίσης
- Αν και
- Amazon
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- Amazon υπηρεσίες Web
- μεταξύ των
- ποσό
- an
- ανάλυση
- analytics
- και
- Ανακοινώστε
- Άλλος
- απάντηση
- κάθε
- εμφανίζομαι
- εφαρμοσμένος
- πλησιάζω
- περίπου
- ΕΙΝΑΙ
- ΠΕΡΙΟΧΗ
- AS
- εκτιμώ
- At
- αυτονόμος
- διαθέσιμος
- AWS
- BAB
- βάση
- βασίζονται
- βίαιο χτύπημα
- BE
- επειδή
- γίνεται
- πίσω
- αναφοράς
- αναφοράς
- οφέλη
- Καλύτερα
- μεταξύ
- Μεγάλος
- Δισεκατομμύριο
- bits
- σώμα
- και οι δύο
- Δυο πλευρες
- Κουτί
- Διακοπή
- ευρύς
- ενσωματωμένο
- επιχειρήσεις
- αλλά
- by
- C + +
- υπολογίσει
- που ονομάζεται
- CAN
- Μπορεί να πάρει
- δυνατότητες
- ικανότητα
- που
- περίπτωση
- περιπτώσεις
- κύτταρο
- αλλαγή
- αλλαγή
- Κανάλι
- χαρακτήρας
- χαρακτήρες
- chat
- φτηνότερος
- έλεγχος
- έλεγχος
- έλεγχοι
- Επιλέξτε
- επιλέγοντας
- cli
- ομαδοποίηση
- προπόνηση
- κωδικός
- κωδικοποιητή
- Κωδικοποίηση
- συλλογή
- Κοινός
- Επικοινωνία
- Εταιρείες
- σύγκριση
- ανταγωνιστική
- πλήρης
- ολοκλήρωση
- περίπλοκο
- υπολογισμός
- συνέδρια
- διαμόρφωση
- συνεχής
- Εξετάστε
- με συνέπεια
- Αποτελείται από
- αποτελείται
- πρόξενος
- καταναλώνουν
- περιέχουν
- διορθώσει
- Κόστος
- μετράνε
- δημιουργία
- δημιουργήθηκε
- Ρεύμα
- Τη στιγμή
- Πελάτες
- παραμετροποίηση
- προσαρμόσετε
- αιχμής
- ημερομηνία
- σύνολα δεδομένων
- αποφασίζει
- μείωση
- μειώνεται
- αφιερωμένο
- βαθύς
- βαθιά μάθηση
- Προεπιλογή
- ορίζεται
- παραδώσει
- εκδημοκρατισμός
- αποδεικνύουν
- κατέδειξε
- επίδειξη
- εξαρτάται
- παρατάσσω
- αναπτυχθεί
- ανάπτυξη
- Συμπληρωματικός
- περιγράφεται
- Περιγράφοντας
- Υπηρεσίες
- λεπτομέρεια
- λεπτομερής
- καθέκαστα
- ανάπτυξη
- αναπτύχθηκε
- ανάπτυξη
- διαφορετικές
- ψηφία
- Διαστάσεις
- κατευθείαν
- συζητήσουν
- συζήτηση
- Όχι
- domains
- γίνεται
- Μην
- διπλασιαστεί
- κάτω
- αυτοκίνητο
- Πτώση
- δυο
- κατά την διάρκεια
- δυναμικός
- κάθε
- πρώιμο στάδιο
- αποδοτικότητα
- αποτελεσματικός
- είτε
- ενεργοποίηση
- τέλος
- κατάληξη
- Τελικό σημείο
- Αγγλικά
- ενισχυμένη
- εξασφαλίζω
- Ολόκληρος
- Περιβάλλον
- ίσος
- αξιολογώντας
- εκτίμηση
- αξιολογήσεις
- Even
- εμφανές
- εξετάζω
- παράδειγμα
- παραδείγματα
- ενθουσιασμένοι
- Ανάπτυξη
- εμπειρία
- Δραστηριοτητες
- Εξηγήστε
- Εξηγεί
- εξήγηση
- Πρόσωπο
- Απέτυχε
- ψευδής
- οικογένεια
- γρηγορότερα
- FB
- Χαρακτηριστικά
- λίγοι
- Fibonacci
- Πεδία
- Αρχεία
- Αρχεία
- συμπληρώστε
- τελικός
- Τελικά
- Εύρεση
- Όνομα
- διορθώσεις
- φλοτέρ
- επιπλέων
- Συγκέντρωση
- επικεντρώθηκε
- εστιάζει
- Εξής
- Ίχνος
- Για
- μορφή
- Θεμέλιο
- Πλαίσιο
- Πάγωμα
- από
- λειτουργία
- περαιτέρω
- Επί πλέον
- γενικά
- παράγουν
- παράγεται
- δημιουργεί
- γενεά
- γενετική
- Παραγωγική τεχνητή νοημοσύνη
- παίρνω
- GitHub
- δεδομένου
- δίνει
- πήρε
- GPU
- GPU
- κλίσεις
- μεγαλύτερη
- Έδαφος
- είχε
- χέρι
- ιπποσκευή
- Έχω
- he
- βοηθά
- Ψηλά
- Επισημάνετε
- του
- Πως
- Πώς να
- Ωστόσο
- HTML
- http
- HTTPS
- ανθρώπινος
- i
- identiques
- if
- Ιλλινόις
- Επίπτωση
- εισαγωγή
- σημαντικό
- βελτίωση
- βελτίωση
- βελτιώσεις
- βελτιώνει
- in
- περιλαμβάνουν
- Συμπεριλαμβανομένου
- Αυξάνουν
- αύξηση
- ΕΠΩΑΣΗ
- ευρετήριο
- Δείκτες
- πληροφορίες
- αρχικός
- Καινοτομία
- εισαγωγή
- εγκαθιστώ
- παράδειγμα
- αντί
- οδηγίες
- ολοκλήρωση
- Έξυπνος
- ενδιαφερόμενος
- συμφέροντα
- σε
- απομονωμένος
- IT
- επαναλαμβανόμενο
- επανάληψη
- ΤΟΥ
- Java
- το JavaScript
- Δουλειά
- jpeg
- jpg
- json
- Διατήρηση
- κρατά
- Γλώσσα
- Γλώσσες
- large
- σε μεγάλο βαθμό
- Επίθετο
- στρώματα
- Οδηγεί
- ΜΑΘΑΊΝΩ
- μάθηση
- αριστερά
- Μήκος
- μείον
- Άδεια
- Μου αρέσει
- γραμμή
- γραμμές
- Ακίνητα
- Είδος μικρής καμήλας
- LLM
- τοπικός
- πλέον
- ματιά
- κοιτάζοντας
- ΦΑΊΝΕΤΑΙ
- off
- Παρτίδα
- Χαμηλός
- μηχανή
- μάθηση μηχανής
- Κυρίως
- διατηρεί
- κάνω
- πολοί
- Ταίριασμα
- συμφωνημένα
- σπίρτα
- Μήτρα
- ανώτατο όριο
- Ενδέχεται..
- me
- μέσα
- Μνήμη
- Meta
- μέθοδος
- ελάχιστο
- MIT
- ML
- μοντέλο
- μοντέλα
- περισσότερο
- πιο αποτελεσματικό
- πλέον
- Δημοφιλέστερα
- πολλαπλούς
- πρέπει
- Ονομάστηκε
- Φυσικό
- Επεξεργασία φυσικής γλώσσας
- Πλοήγηση
- Ανάγκη
- δίκτυο
- ποτέ
- Νέα
- επόμενη
- nlp
- Όχι.
- σημείωση
- σημειωματάριο
- αριθμός
- αριθμοί
- of
- on
- ONE
- αυτά
- αποκλειστικά
- ανοίξτε
- ανοικτού κώδικα
- OpenAI
- βελτιστοποιήσεις
- βελτιστοποιημένη
- Επιλογή
- or
- τάξη
- πρωτότυπο
- ΑΛΛΑ
- αλλιώς
- δικός μας
- έξω
- σκιαγραφείται
- Υπερβαίνει
- παραγωγή
- εξόδους
- επί
- δική
- σελίδα
- παράθυρο
- Χαρτί
- χαρτιά
- Παράλληλο
- παράμετρος
- παράμετροι
- μέρος
- Ειδικότερα
- περάσματα
- πάθος
- για
- επίδοση
- Προσωπικά
- phd
- PHP
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- σας παρακαλούμε
- Σημείο
- Δημοφιλής
- θετικός
- Θέση
- δυναμικού
- πρακτική
- προηγείται
- Ακρίβεια
- Προετοιμάστε
- παρόν
- Πριν
- Πρόβλημα
- επίλυση προβλήματος
- προβλήματα
- διαδικασια μας
- Διεργασίες
- μεταποίηση
- που παράγουν
- Προγραμματισμός
- γλώσσες προγραμματισμού
- email marketing
- προτρέπει
- ιδιόκτητο
- παρέχουν
- παρέχεται
- παρέχει
- χορήγηση
- δημοσίως
- δημοσιεύθηκε
- σκοποί
- Python
- pytorch
- τετραγωνικός
- ποιοτικός
- ποιότητα
- ποσοτικός
- Τέταρτο
- απορία
- ερώτηση
- Πιο γρήγορα
- R
- τυχαίος
- κυμαίνεται
- Τιμή
- αναλογία
- φθάσει
- Φτάνει
- λόγους
- συστάσεις
- μειώνει
- μείωση
- παραπέμπω
- υπόλοιπα
- θυμάμαι
- επαναλαμβάνω
- αναφέρθηκαν
- Αποθήκη
- εκπροσωπούν
- απαιτείται
- απαίτηση
- Απαιτεί
- έρευνα
- ερευνητής
- απάντησης
- απαντήσεις
- αποτέλεσμα
- Αποτελέσματα
- απόδοση
- Επιστροφές
- δεξιά
- ρομποτική
- εύρωστος
- περίπου
- γύρους
- ΣΕΙΡΑ
- βασιλικός
- τρέξιμο
- τρέξιμο
- s
- σοφός
- ίδιο
- δείγμα
- αποθηκεύονται
- επεκτάσιμη
- Κλίμακα
- Επιστήμονας
- σκορ
- Εφαρμογές
- SDK
- Αναζήτηση
- αναζήτηση
- Τμήμα
- τμήματα
- ασφάλεια
- δείτε
- επιλέγονται
- επιλογή
- στείλετε
- αρχαιότερος
- Ακολουθία
- Σειρές
- Σειρά Α
- Υπηρεσίες
- σειρά
- Σέτς
- τον καθορισμό
- ρυθμίσεις
- θραύσμα
- θα πρέπει να
- δείχνουν
- έδειξε
- παρουσιάζεται
- Δείχνει
- κλείσιμο
- Πλευρές
- υπογραφή
- σημαντικός
- σημαντικά
- Απλούς
- απλά
- ενιαίας
- Μέγεθος
- μεγέθη
- επιβραδύνουν
- small
- μικρότερος
- So
- Κοινωνία
- λύση
- Λύσεις
- μερικοί
- Πηγή
- ειδικός
- συγκεκριμένες
- ειδικά
- ταχύτητα
- διαίρεση
- πρότυπο
- Εκκίνηση
- Ξεκινήστε
- εκκίνηση
- Δήλωση
- Μελών
- στατιστικός
- Βήμα
- Βήματα
- Ακόμη
- Διακόπτει
- χώρος στο δίσκο
- κατάστημα
- Στρατηγική
- Σπάγγος
- προσπαθεί
- στούντιο
- επιτύχει
- επιτυχής
- τέτοιος
- σουίτα
- υποστηριζόνται!
- Υποστηρίζει
- βιώσιμης
- συστήματα
- τραπέζι
- παίρνει
- εργασίες
- τεχνική
- τεχνικές
- πρότυπο
- όροι
- δοκιμή
- Δοκιμές
- δοκιμές
- από
- ότι
- Η
- Η περιοχή
- Τους
- τότε
- Εκεί.
- επομένως
- Αυτοί
- στοχαστής
- αυτό
- πλήρης
- τρία
- Μέσω
- ώρα
- προς την
- σήμερα
- Τεκμηρίωση
- πολύ
- Σύνολο
- τροχιά
- Τρένο
- εκπαιδευμένο
- Εκπαίδευση
- μετασχηματιστές
- αληθής
- Αλήθεια
- προσπαθώ
- δύο
- τύπος
- τύποι
- Typescript
- συνήθως
- ui
- υπό
- μονάδα
- πανεπιστήμιο
- μέχρι
- Ενημέρωση
- ενημερώθηκε
- ενημερώσεις
- us
- χρήση
- μεταχειρισμένος
- χρησιμοποιεί
- χρησιμοποιώντας
- έγκυρος
- επικύρωση
- αξία
- Αξίες
- Παραλλαγή
- διάφορα
- διαφέρων
- όχημα
- εκδοχή
- πολύ
- μέσω
- walk
- θέλω
- ήταν
- τρόπους
- we
- ιστός
- διαδικτυακές υπηρεσίες
- ΛΟΙΠΌΝ
- πότε
- αν
- Ποιό
- ενώ
- ολόκληρο
- θα
- με
- χωρίς
- εργάτης
- εργαζομένων
- εργαζόμενος
- λειτουργεί
- Εσείς
- Σας
- zephyrnet