```html Συγγραφείς: Mayank Mishra⋆, IBM Matt Stallone⋆, IBM Gaoyuan Zhang⋆, IBM Yikang Shen, IBM Aditya Prasad, IBM Adriana Meza Soria, IBM Michele Merler, IBM Parameswaran Selvam, IBM Saptha Surendran, IBM Shivdeep Singh, IBM Manish Sethi, IBM Xuan-Hong Dang, IBM Pengyuan Li, IBM Kun-Lung Wu, IBM Syed Zawad, IBM Andrew Coleman, IBM Matthew White, IBM Mark Lewis, IBM Raju Pavuluri, IBM Yan Koyfman, IBM Boris Lublinsky, IBM Maximilien de Bayser, IBM Ibrahim Abdelaziz, IBM Kinjal Basu, IBM Mayank Agarwal, IBM Yi Zhou, IBM Chris Johnson, IBM Aanchal Goyal, IBM Hima Patel, IBM Yousaf Shah, IBM Petros Zerfos, IBM Heiko Ludwig, IBM Asim Munawar, IBM Maxwell Crouse, IBM Pavan Kapanipathi, IBM Shweta Salaria, IBM Bob Calio, IBM Sophia Wen, IBM Seetharami Seelam, IBM Brian Belgodere, IBM Carlos Fonseca, IBM Amith Singhee, IBM Nirmit Desai, IBM David D. Cox, IBM Ruchir Puri†, IBM Rameswar Panda†, IBM Περίληψη Τα Μεγάλα Γλωσσικά Μοντέλα (LLMs) που εκπαιδεύονται σε κώδικα φέρνουν επανάσταση στη διαδικασία ανάπτυξης λογισμικού. Όλο και περισσότερο, τα LLMs κώδικα ενσωματώνονται σε περιβάλλοντα ανάπτυξης λογισμικού για τη βελτίωση της παραγωγικότητας των ανθρώπινων προγραμματιστών, και οι πράκτορες που βασίζονται σε LLMs αρχίζουν να δείχνουν υποσχέσεις για τη διαχείριση σύνθετων εργασιών αυτόνομα. Η υλοποίηση του πλήρους δυναμικού των LLMs κώδικα απαιτεί ένα ευρύ φάσμα δυνατοτήτων, συμπεριλαμβανομένης της παραγωγής κώδικα, της διόρθωσης σφαλμάτων, της εξήγησης και τεκμηρίωσης κώδικα, της συντήρησης αποθετηρίων και άλλων. Σε αυτήν την εργασία, εισάγουμε τη σειρά Granite μοντέλων αποκωδικοποιητή μόνο για εργασίες παραγωγής κώδικα, εκπαιδευμένων με κώδικα γραμμένο σε 116 γλώσσες προγραμματισμού. Η οικογένεια μοντέλων Granite Code περιλαμβάνει μοντέλα που κυμαίνονται σε μέγεθος από 3 έως 34 δισεκατομμύρια παραμέτρους, κατάλληλα για εφαρμογές που κυμαίνονται από σύνθετες εργασίες εκσυγχρονισμού εφαρμογών έως περιπτώσεις χρήσης με περιορισμένη μνήμη στη συσκευή. Η αξιολόγηση σε ένα ολοκληρωμένο σύνολο εργασιών αποδεικνύει ότι τα μοντέλα Granite Code επιτυγχάνουν σταθερά κορυφαίες επιδόσεις μεταξύ των διαθέσιμων open-source LLMs κώδικα. Η οικογένεια μοντέλων Granite Code βελτιστοποιήθηκε για ροές εργασίας ανάπτυξης λογισμικού επιχειρηματικού επιπέδου και αποδίδει καλά σε ένα εύρος εργασιών κωδικοποίησης (π.χ. παραγωγή, διόρθωση και εξήγηση κώδικα), καθιστώντας το ένα ευέλικτο «all around» μοντέλο κώδικα. Κυκλοφορούμε όλα τα μοντέλα Granite Code μας υπό άδεια Apache 2.0 για ερευνητική και εμπορική χρήση. https://github.com/ibm-granite/granite-code-models 1 Εισαγωγή Τις τελευταίες δεκαετίες, το λογισμικό έχει υφανθεί στον ιστό κάθε πτυχής της κοινωνίας μας. Καθώς η ζήτηση για ανάπτυξη λογισμικού αυξάνεται, είναι πιο κρίσιμο από ποτέ να αυξηθεί η παραγωγικότητα ανάπτυξης λογισμικού, και τα LLMs παρέχουν μια ελπιδοφόρα διαδρομή για την ενίσχυση των ανθρώπινων προγραμματιστών. Οι εξέχουσες περιπτώσεις χρήσης επιχειρηματικού επιπέδου για LLMs στην παραγωγικότητα ανάπτυξης λογισμικού περιλαμβάνουν την παραγωγή κώδικα, την εξήγηση κώδικα, τη διόρθωση κώδικα, τη δημιουργία unit tests και τεκμηρίωσης, τον εκσυγχρονισμό εφαρμογών, την ανίχνευση ευπαθειών, τη μετάφραση κώδικα και πολλά άλλα. Τα τελευταία χρόνια έχουν σημειωθεί ραγδαίες πρόοδοι στην ικανότητα των LLMs να παράγουν και να χειρίζονται κώδικα, και σήμερα διατίθενται μια σειρά μοντέλων με εντυπωσιακές ικανότητες κωδικοποίησης. Τα μοντέλα κυμαίνονται σε μέγεθος από μονάδες δισεκατομμυρίων παραμέτρων (π.χ. Llama-7B (Touvron et al., 2023), Gemma-7B (Gemma-Team et al., 2024), κ.λπ.) έως εκατοντάδες δισεκατομμύρια: DBRX (Databricks), Arctic (Snowflake), Grok, Mixtral 8x22B (MistralAI), Command R+ (Cohere), και διαφέρουν στην γενικότητα της προβλεπόμενης χρήσης, με ορισμένα μοντέλα να στοχεύουν στην κάλυψη ενός εύρους χρήσεων εκτός κώδικα, ενώ άλλα επικεντρώνονται κυρίως σε εργασίες σχετικές με τον κώδικα (π.χ. StarCoder (Li et al., 2023a; Lozhkov et al., 2024), CodeGen (Nijkamp et al., 2023), CodeLlama (Rozie`re et al., 2023), and CodeGemma (CodeGemma Team et al., 2024)). Ωστόσο, παραμένουν σημαντικά κενά στον τρέχοντα τομέα των LLMs για κώδικα, ειδικά στο πλαίσιο της ανάπτυξης λογισμικού επιχειρηματικού επιπέδου. Πρώτον, ενώ τα πολύ μεγάλα, γενικής χρήσης LLMs μπορούν να επιτύχουν εξαιρετική απόδοση κωδικοποίησης, το μέγεθός τους τα καθιστά δαπανηρά για την ανάπτυξη. Μικρότερα μοντέλα εστιασμένα στον κώδικα ( , ; , ; , ; , ; , ) μπορούν να επιτύχουν εξαιρετική απόδοση παραγωγής κώδικα σε ένα μικρότερο και πιο ευέλικτο πακέτο, αλλά η απόδοση σε εργασίες κωδικοποίησης πέραν της παραγωγής (π.χ. διόρθωση και εξήγηση) μπορεί να υστερεί σε σχέση με την απόδοση παραγωγής κώδικα. Li et al. 2023a Lozhkov et al. 2024 Nijkamp et al. 2023 Rozie`re et al. 2023 CodeGemma Team et al. 2024 Σε πολλά επιχειρηματικά πλαίσια, η υιοθέτηση LLM κώδικα μπορεί να περιπλέκεται περαιτέρω από παράγοντες πέραν της απόδοσης των μοντέλων. Για παράδειγμα, ακόμη και τα ανοιχτά μοντέλα συχνά μαστίζονται από έλλειψη διαφάνειας σχετικά με τις πηγές δεδομένων και τις μεθόδους επεξεργασίας δεδομένων που χρησιμοποιήθηκαν για τη δημιουργία του μοντέλου, γεγονός που μπορεί να μειώσει την εμπιστοσύνη στα μοντέλα σε κρίσιμες και ρυθμιζόμενες καταστάσεις. Επιπλέον, οι όροι αδειοδότησης στα σημερινά ανοιχτά LLMs μπορούν να επιβαρύνουν και να περιπλέξουν την ικανότητα μιας επιχείρησης να χρησιμοποιεί ένα μοντέλο. Εδώ, παρουσιάζουμε τα μοντέλα Granite Code, μια σειρά από εξαιρετικά ικανά LLMs κώδικα, σχεδιασμένα για να υποστηρίζουν την ανάπτυξη λογισμικού επιχειρηματικού επιπέδου σε ένα ευρύ φάσμα εργασιών κωδικοποίησης. Τα μοντέλα Granite Code έχουν δύο κύριες παραλλαγές που κυκλοφορούμε σε τέσσερα διαφορετικά μεγέθη (3B, 8B, 20B και 34B): βασικά θεμελιώδη μοντέλα για εργασίες σχετικές με τον κώδικα· Granite Code Base: μοντέλα παρακολούθησης οδηγιών βελτιστοποιημένα χρησιμοποιώντας έναν συνδυασμό ζευγών commit Git με ανθρώπινες οδηγίες και συνθετικά παραγόμενα σύνολα δεδομένων οδηγιών κώδικα ανοιχτού κώδικα. Granite Code Instruct: Τα βασικά μοντέλα της σειράς έχουν εκπαιδευτεί από την αρχή με μια στρατηγική εκπαίδευσης δύο φάσεων. Στη φάση 1, το μοντέλο μας εκπαιδεύεται σε 3 έως 4 τρισεκατομμύρια tokens που προέρχονται από 116 γλώσσες προγραμματισμού, διασφαλίζοντας ολοκληρωμένη κατανόηση των γλωσσών προγραμματισμού και της σύνταξης. Στη φάση 2, το μοντέλο μας εκπαιδεύεται περαιτέρω σε 500 δισεκατομμύρια tokens με ένα προσεκτικά σχεδιασμένο μείγμα υψηλής ποιότητας δεδομένων από τομείς κώδικα και φυσικής γλώσσας για τη βελτίωση της ικανότητας του μοντέλου να συλλογίζεται. Χρησιμοποιούμε το ανεπίβλεπτο αντικείμενο γλωσσικής μοντελοποίησης για την εκπαίδευση των βασικών μοντέλων και στις δύο φάσεις εκπαίδευσης. Τα μοντέλα οδηγιών προκύπτουν από περαιτέρω βελτιστοποίηση των παραπάνω εκπαιδευμένων βασικών μοντέλων σε έναν συνδυασμό φιλτραρισμένης παραλλαγής του CommitPack ( , ), συνόλων δεδομένων οδηγιών φυσικής γλώσσας (OASST ( , ), HelpSteer ( , )) και συνόλων δεδομένων μαθηματικών ανοιχτού κώδικα (MathInstruct ( , ) και MetaMathQA ( , )), συμπεριλαμβανομένων συνθετικά παραγόμενων συνόλων δεδομένων κώδικα για τη βελτίωση της παρακολούθησης οδηγιών και των ικανοτήτων συλλογισμού. Muennighoff et al. 2023 Ko¨ pf et al. 2023 Wang et al. 2023 Yue et al. 2023 Yu et al. 2023 Διεξάγουμε εκτεταμένες αξιολογήσεις των LLMs κώδικά μας σε ένα ολοκληρωμένο σύνολο benchmarks, συμπεριλαμβανομένων των HumanEvalPack ( , ), MBPP(+) ( , ; , ), RepoBench ( , ), ReCode ( , ), και άλλα. Αυτό το σύνολο benchmarks περιλαμβάνει πολλούς διαφορετικούς τύπους εργασιών κωδικοποίησης πέραν της απλής σύνθεσης κώδικα σε Python, π.χ., διόρθωση κώδικα, εξήγηση κώδικα, επεξεργασία κώδικα, μετάφραση κώδικα, κ.λπ., σε όλες τις κύριες γλώσσες προγραμματισμού (Python, JavaScript, Java, Go, C++, Rust, κ.λπ.). Muennighoff et al. 2023 Austin et al. 2021 Liu et al. 2023a Liu et al. 2023b Wang et al. 2022 Τα ευρήματά μας αποκαλύπτουν ότι μεταξύ των open-source μοντέλων, τα μοντέλα Granite Code επιδεικνύουν γενικά πολύ ισχυρές επιδόσεις σε όλα τα μεγέθη μοντέλων και benchmarks (συχνά ξεπερνώντας άλλα open-source μοντέλα κώδικα που είναι διπλάσια σε μέγεθος σε σύγκριση με το Granite). Ως παράδειγμα, η εικόνα (πάνω) δείχνει μια σύγκριση του Granite-8B-Code-Base με άλλα open-source βασικά LLMs κώδικα, συμπεριλαμβανομένων πρόσφατων υψηλής απόδοσης γενικής χρήσης βασικών LLMs όπως το Mistral ( , ) και το LLama-3 ( , ) στο HumanEvalPack ( , ). Ενώ τα CodeGemma και StarCoder2 αποδίδουν λογικά καλά στην παραγωγή κώδικα, αποδίδουν σημαντικά χειρότερα στα παραλλαγές HumanEvalPack για διόρθωση και εξήγηση κώδικα. Κατά μέσο όρο, το Granite-8B-Code-Base ξεπερνά το πιο ανταγωνιστικό μοντέλο CodeGemma-8B κατά σχεδόν 12 μονάδες στο HumanEvalPack (33,2% έναντι 21,3%), παρόλο που εκπαιδεύτηκε σε σημαντικά λιγότερα tokens (4,5T έναντι 7,5T tokens). Εκτός από τα βασικά μοντέλα, οι παραλλαγές βελτιστοποιημένες για οδηγίες των μοντέλων Granite Code επιδεικνύουν επίσης ισχυρές επιδόσεις στο HumanEvalPack, ξεπερνώντας άλλα open-source (κώδικα) μοντέλα οδηγιών, αποδεικνύοντας τα οφέλη για ένα ευρύτερο σύνολο εργασιών κωδικοποίησης με οδηγίες φυσικής γλώσσας (βλ. εικόνα (κάτω)). 1 Jiang et al. 2023b AI@Meta 2024 Muennighoff et al. 2023 1 Επιπλέον, καθώς ο συλλογισμός είναι κρίσιμος για την επίλυση σύνθετων ερωτήσεων και εργασιών, δοκιμάζουμε επίσης το μοντέλο μας Granite-8B-Code-Base σε έξι μαθηματικά benchmarks, συμπεριλαμβανομένων των MATH ( , ), GSM8K ( , ) και επίλυση προβλημάτων με πρόσβαση σε υπολογιστικά εργαλεία, όπου το μοντέλο μας Granite 8B επιτυγχάνει καλύτερη απόδοση σε σύγκριση με τα περισσότερα state-of-the-art LLMs 7B ή 8B. Για παράδειγμα, το Granite-8B-Code-Base ξεπερνά το Llama-3-8B-Base κατά ~12 μονάδες στο GSM8K και ~6 μονάδες στο MATH (βλ. πίνακα ). Cobbe et al. 2021 Cobbe et al. 2021 15 Τα βασικά πλεονεκτήματα των μοντέλων Granite Code περιλαμβάνουν: : Τα μοντέλα Granite Code επιτυγχάνουν ανταγωνιστικές ή κορυφαίες επιδόσεις σε διάφορους τύπους εργασιών σχετικών με τον κώδικα, συμπεριλαμβανομένης της παραγωγής κώδικα, εξήγησης, διόρθωσης, επεξεργασίας, μετάφρασης, κ.λπ., αποδεικνύοντας την ικανότητά τους να επιλύουν ποικίλες εργασίες κωδικοποίησης· All-rounder Code LLM : Όλα τα μοντέλα μας έχουν εκπαιδευτεί σε δεδομένα με άδεια χρήσης που συλλέχθηκαν σύμφωνα με τις αρχές ηθικής AI της IBM και καθοδηγούνται από την Ομάδα Νομικών Υποθέσεων της IBM για αξιόπιστη χρήση σε επιχειρηματικό επίπεδο. Όλα τα μοντέλα Granite Code κυκλοφορούν υπό την άδεια Apache 2.0. Trustworthy Enterprise-Grade LLM 1 Περιγράφουμε ολόκληρη τη διαδικασία συλλογής, φιλτραρίσματος και προεπεξεργασίας δεδομένων μας στην ενότητα . Η ενότητα περιγράφει τις λεπτομέρειες της αρχιτεκτονικής του μοντέλου, ακολουθούμενη από τις λεπτομέρειες εκπαίδευσης στην Ενότητα . Η ενότητα παρέχει τις λεπτομέρειες σχετικά με τη βελτιστοποίηση οδηγιών, και η ενότητα περιγράφει τα πειράματα και τα αποτελέσματα που συγκρίνουν τα μοντέλα Granite Code με άλλα open-source LLMs. 2 3 4 5 6 2 Συλλογή Δεδομένων Σε αυτήν την ενότητα, περιγράφουμε τη διαδικασία ανίχνευσης και φιλτραρίσματος (Ενότητα ), απαλοιφής διπλοτύπων (Ενότητα ), φιλτραρίσματος HAP/PII (Ενότητα ) που χρησιμοποιήθηκε για την προετοιμασία των δεδομένων κώδικα για την εκπαίδευση του μοντέλου. Παρέχουμε επίσης μια επισκόπηση των υψηλής ποιότητας δεδομένων φυσικής γλώσσας που χρησιμοποιήθηκαν για τη βελτίωση της κατανόησης της γλώσσας και των δεξιοτήτων μαθηματικού συλλογισμού του μοντέλου. 2.1 2.2 2.3 2.1 Ανίχνευση και Φιλτράρισμα Δεδομένων Τα δεδομένα κώδικα προ-εκπαίδευσης προήλθαν από έναν συνδυασμό δημοσίως διαθέσιμων συνόλων δεδομένων όπως το Github Code Clean , το StarCoderdata , και επιπλέον δημόσια αποθετήρια κώδικα και ζητήματα από το GitHub. Φιλτράρουμε τα ακατέργαστα δεδομένα για να διατηρήσουμε μια λίστα 116 γλωσσών προγραμματισμού από τις 300+ γλώσσες, όπως αναφέρεται στο Παράρτημα . Η ανάθεση δεδομένων σε γλώσσες προγραμματισμού πραγματοποιείται αποκλειστικά βάσει της επέκτασης αρχείου, παρόμοια με το StarCoder ( , ). Μετά το φιλτράρισμα γλώσσας, εφαρμόζουμε τέσσερις βασικούς κανόνες φιλτραρίσματος για να αποκλείσουμε κώδικα χαμηλότερης ποιότητας ( , ): (1) αφαίρεση αρχείων με λιγότερο από 25% αλφαβητικούς χαρακτήρες, (2) εκτός από τη γλώσσα XSLT, φιλτράρισμα αρχείων όπου η συμβολοσειρά "<"XML version=" εμφανίζεται εντός των πρώτων 100 χαρακτήρων, (3) για αρχεία HTML, διατήρηση μόνο αρχείων όπου το ορατό κείμενο αποτελεί τουλάχιστον 20% του κώδικα HTML και έχει ελάχιστο μήκος 100 χαρακτήρων, (4) για αρχεία JSON και YAML, διατήρηση μόνο αρχείων που έχουν αριθμό χαρακτήρων από 50 έως 5000 χαρακτήρες. Φιλτράρουμε επίσης τα ζητήματα του GitHub χρησιμοποιώντας ένα σύνολο μετρικών ποιότητας που περιλαμβάνουν την αφαίρεση αυτοματοποιημένου κειμένου, το φιλτράρισμα μη αγγλικών ζητημάτων, την εξαίρεση σχολίων από bots και τη χρήση του αριθμού των χρηστών που συμμετέχουν στη συζήτηση ως δείκτη ποιότητας. Επίσης, επισημαίνουμε κάθε αρχείο κώδικα με πληροφορίες άδειας χρήσης που σχετίζονται με το αντίστοιχο αποθετήριο, που βρέθηκαν μέσω των APIs του GitHub και διατηρούμε μόνο αρχεία με επιτρεπτές άδειες χρήσης για εκπαίδευση μοντέλου. 2 3 Α Li et al. 2023a Li et al. 2023a 2.2 Ακριβής και Ασαφής Απαλοιφή Διπλοτύπων Υιοθετούμε μια επιθετική στρατηγική απαλοιφής διπλοτύπων, συμπεριλαμβανομένης τόσο της ακριβούς όσο και της ασαφούς απαλοιφής διπλοτύπων, για να αφαιρέσουμε έγγραφα που έχουν (σχεδόν) πανομοιότυπο περιεχόμενο κώδικα στο σύνολο εκπαίδευσής μας. Για την ακριβή απαλοιφή διπλοτύπων, πρώτα υπολογίζουμε το hash SHA256 στο περιεχόμενο του εγγράφου και αφαιρούμε εγγραφές με πανομοιότυπα hashes. Μετά την ακριβή απαλοιφή διπλοτύπων, εφαρμόζουμε ασαφή απαλοιφή διπλοτύπων με στόχο την αφαίρεση αρχείων κώδικα που μπορεί να έχουν ελαφρές παραλλαγές και έτσι να εξισορροπήσουμε περαιτέρω τα δεδομένα. Εφαρμόζουμε μια μέθοδο δύο βημάτων για αυτό: (1) υπολογισμός MinHashes όλων των εγγράφων και στη συνέχεια χρήση Locally Sensitive Hashing (LSH) για ομαδοποίηση εγγράφων βάσει των MinHash fingerprints τους, (2) μέτρηση ομοιότητας Jaccard μεταξύ κάθε ζεύγους εγγράφων στην ίδια ομάδα και επισήμανση εγγράφων εκτός ενός ως διπλότυπα βάσει ενός κατωφλίου ομοιότητας 0,7. Εφαρμόζουμε αυτήν τη διαδικασία κοντινής απαλοιφής διπλοτύπων σε όλες τις γλώσσες προγραμματισμού, συμπεριλαμβανομένων των ζητημάτων του GitHub, για να ενισχύσουμε τον πλούτο και την ποικιλομορφία του συνόλου δεδομένων εκπαίδευσης. 2.3 Φιλτράρισμα HAP, PII, Malware Για να μειώσουμε την πιθανότητα παραγωγής ύβρεων, κακοποιητικής ή βλάσφημης γλώσσας (HAP) από τα μοντέλα, καταβάλλουμε επιμελείς προσπάθειες για να φιλτράρουμε το περιεχόμενο HAP από το σύνολο εκπαίδευσης. Πρώτα δημιουργούμε ένα λεξικό λέξεων-κλειδιών HAP και στη συνέχεια επισημαίνουμε κάθε έγγραφο κώδικα με τον αριθμό των εμφανίσεων τέτοιων λέξεων-κλειδιών στο περιεχόμενο, συμπεριλαμβανομένων των σχολίων. Φιλτράρουμε έγγραφα που υπερβαίνουν το κατώφλι HAP, υπολογισμένο βάσει στατιστικής ανάλυσης καθώς και χειρωνακτικής επιθεώρησης αρχείων κώδικα. Επιπλέον, για την προστασία της ιδιωτικότητας, ακολουθούμε το StarCoder ( , ) και καταβάλλουμε επιμελείς προσπάθειες για την αφαίρεση Προσωπικά Αναγνωρίσιμων Πληροφοριών (PII) από το σύνολο εκπαίδευσης. Συγκεκριμένα, χρησιμοποιούμε το μοντέλο StarPII για να εντοπίσουμε διευθύνσεις IP, κλειδιά, διευθύνσεις email, ονόματα, ονόματα χρήστη και κωδικούς πρόσβασης που βρίσκονται στο περιεχόμενο. Το βήμα αφαίρεσης PII αντικαθιστά το κείμενο PII με τα αντίστοιχα tokens NAME , EMAIL , KEY , PASSWORD και αλλάζει τη διεύθυνση IP με μια συνθετικά παραγόμενη διεύθυνση IP, όπως στο Li et al. (2023a). Επίσης, σαρώνουμε τα σύνολα δεδομένων μας χρησιμοποιώντας για να εντοπίσουμε και να αφαιρέσουμε περιπτώσεις κακόβουλου λογισμικού στον πηγαίο κώδικα. Li et al. 2023a 4 2.4 Σύνολα Δεδομένων Φυσικής Γλώσσας Εκτός από τη συλλογή δεδομένων κώδικα για την εκπαίδευση του μοντέλου, επιμελούμαστε πολλά δημοσίως διαθέσιμα σύνολα δεδομένων φυσικής γλώσσας υψηλής ποιότητας για τη βελτίωση της επάρκειας του μοντέλου στην κατανόηση της γλώσσας και τον μαθηματικό συλλογισμό. Αντιπροσωπευτικά σύνολα δεδομένων αυτής της κατηγορίας περιλαμβάνουν έγγραφα ιστού (Stackexchange, CommonCrawl), μαθηματικό κείμενο ιστού (OpenWeb-Math; ( ), StackMathQA; ( )), ακαδημαϊκό κείμενο (Arxiv, Wikipedia), και σύνολα δεδομένων βελτιστοποίησης οδηγιών (FLAN; ( ), HelpSteer ( , )). Δεν αφαιρούμε διπλότυπα από αυτά τα ήδη προ-επεξεργασμένα σύνολα δεδομένων φυσικής γλώσσας. Paster et al. 2023 Zhang 2024 Longpre et al. 2023 Wang et al. 2023 3 Αρχιτεκτονική Μοντέλου Εκπαιδεύουμε μια σειρά μοντέλων κώδικα διαφόρων μεγεθών βασισμένα στην αρχιτεκτονική του μετασχηματιστή αποκωδικοποιητή ( , ). Οι υπερπαράμετροι του μοντέλου για αυτά τα μοντέλα δίνονται στον Πίνακα . Για όλες τις αρχιτεκτονικές μοντέλων, χρησιμοποιούμε προ-κανονικοποίηση ( , ): κανονικοποίηση που εφαρμόζεται στην είσοδο των μπλοκ προσοχής και MLP. Vaswani et al. 2017 1 Xiong et al. 2020 : Το μικρότερο μοντέλο στην οικογένεια μοντέλων Granite-code εκπαιδεύεται με εμβέδεια RoPE ( , ) και Multi-Head Attention ( , ). Αυτό το μοντέλο χρησιμοποιεί τη συνάρτηση ενεργοποίησης swish ( , ) με GLU ( , ) για το MLP, γνωστό επίσης ως swiglu. Για κανονικοποίηση, χρησιμοποιούμε RMSNorm ( , ) καθώς είναι υπολογιστικά πιο αποδοτικό από το LayerNorm ( , ). Το μοντέλο 3B εκπαιδεύεται με μήκος περιβάλλοντος 2048 tokens. 3B Su et al. 2023 Vaswani et al. 2017 Ramachandran et al. 2017 Shazeer 2020 Zhang & Sennrich 2019 Ba et al. 2016 : Το μοντέλο 8B έχει παρόμοια αρχιτεκτονική με το μοντέλο 3B, με εξαίρεση τη χρήση Grouped-Query Attention (GQA) ( , ). Η χρήση GQA προσφέρει καλύτερη ισορροπία μεταξύ της απόδοσης του μοντέλου και της αποδοτικότητας της εξαγωγής συμπερασμάτων σε αυτήν την κλίμακα. Εκπαιδεύουμε το μοντέλο 8B με μήκος περιβάλλοντος 4096 tokens. 8B Ainslie et al. 2023 : Το μοντέλο κώδικα 20B εκπαι 20B