```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 რეზიუმე კოდზე გაწვრთნილი დიდი ენობრივი მოდელები (LLM) რევოლუციას ახდენენ პროგრამული უზრუნველყოფის შემუშავების პროცესში. სულ უფრო მეტად, კოდის LLM-ები ინტეგრირდება პროგრამული უზრუნველყოფის შემუშავების გარემოში ადამიანური პროგრამისტების პროდუქტიულობის გასაუმჯობესებლად, ხოლო LLM-ზე დაფუძნებული აგენტები იწყებენ დაპირებას რთული ამოცანების ავტონომიურად შესრულებაში. კოდის LLM-ების სრული პოტენციალის რეალიზება მოითხოვს შესაძლებლობების ფართო სპექტრს, მათ შორის კოდის გენერაციას, შეცდომების გამოსწორებას, კოდის ახსნასა და დოკუმენტირებას, საცავების შენარჩუნებას და სხვა. ამ ნაშრომში ჩვენ წარმოგიდგენთ Granite-ის ტიპის დეკოდერ-მხოლოდ კოდის მოდელების სერიას კოდის გენერაციული ამოცანებისთვის, გაწვრთნილი 116 პროგრამირების ენაზე დაწერილ კოდზე. Granite Code მოდელების ოჯახი შედგება 3-დან 34 მილიარდ პარამეტრამდე ზომის მოდელებისგან, რომლებიც შესაფერისია ისეთი აპლიკაციებისთვის, როგორიცაა რთული აპლიკაციების მოდერნიზაციის ამოცანები მეხსიერებით შეზღუდული მოწყობილობებისთვის. ყოვლისმომცველ ამოცანათა ნაკრებზე შეფასება აჩვენებს, რომ Granite Code მოდელები თანმიმდევრულად აღწევს უახლეს შესრულებას ხელმისაწვდომი ღია კოდის LLM-ებს შორის. Granite Code მოდელების ოჯახი ოპტიმიზირებული იყო საწარმოს პროგრამული უზრუნველყოფის შემუშავების სამუშაო ნაკადებისთვის და კარგად მუშაობს კოდის ამოცანების სპექტრზე (მაგ. კოდის გენერაცია, გამოსწორება და ახსნა), რაც მას მრავალმხრივ "ყველა-მომხმარებელ" კოდის მოდელად აქცევს. ჩვენ ვაქვეყნებთ ჩვენს ყველა Granite Code მოდელს Apache 2.0 ლიცენზიის ქვეშ, როგორც კვლევის, ასევე კომერციული გამოყენებისთვის. https://github.com/ibm-granite/granite-code-models 1 შესავალი ბოლო რამდენიმე ათეული წლის განმავლობაში, პროგრამულმა უზრუნველყოფამ შეაღწია ჩვენი საზოგადოების ყველა ასპექტის ქსოვილში. პროგრამული უზრუნველყოფის შემუშავების მოთხოვნის ზრდასთან ერთად, უფრო კრიტიკულია, ვიდრე ოდესმე, პროგრამული უზრუნველყოფის შემუშავების პროდუქტიულობის გაზრდა, ხოლო LLM-ები გვთავაზობენ პერსპექტიულ გზას ადამიანური პროგრამისტების გასაძლიერებლად. LLM-ების გამორჩეული საწარმოო შემთხვევები პროგრამული უზრუნველყოფის შემუშავების პროდუქტიულობაში მოიცავს კოდის გენერაციას, კოდის ახსნას, კოდის გამოსწორებას, ერთეული ტესტებისა და დოკუმენტაციის გენერაციას, აპლიკაციების მოდერნიზაციას, დაუცველობის აღმოჩენას, კოდის თარგმნას და სხვა. ბოლო წლებში დაფიქსირდა სწრაფი პროგრესი LLM-ის კოდის გენერაციისა და მანიპულირების შესაძლებლობებში და დღეს ხელმისაწვდომია შთამბეჭდავი კოდის შესაძლებლობების მქონე მოდელების სპექტრი. მოდელები ზომით მერყეობს ერთნიშნა მილიარდი პარამეტრებისგან (მაგ. 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), და CodeGemma (CodeGemma Team et al., 2024)). თუმცა, კოდის LLM-ების მიმდინარე სფეროში რჩება მნიშვნელოვანი ხარვეზები, განსაკუთრებით საწარმოს პროგრამული უზრუნველყოფის შემუშავების კონტექსტში. პირველ რიგში, მიუხედავად იმისა, რომ ძალიან დიდი, ზოგადი LLM-ები შეუძლიათ მიაღწიონ შესანიშნავ კოდის შესრულებას, მათი ზომა ხდის მათ ძვირადღირებულს გამოსაყენებლად. პატარა კოდზე ორიენტირებული მოდელები ( , ; , ; , ; , ; , ) შეუძლიათ მიაღწიონ შესანიშნავ კოდის გენერაციის შესრულებას უფრო მცირე და მოქნილ პაკეტში, მაგრამ შესრულება კოდის ამოცანებზე გენერაციის მიღმა (მაგ. გამოსწორება და ახსნა) შეიძლება ჩამორჩეს კოდის გენერაციის შესრულებას. Li et al. 2023a Lozhkov et al. 2024 Nijkamp et al. 2023 Rozie`re et al. 2023 CodeGemma Team et al. 2024 ბევრ საწარმო კონტექსტში, კოდის LLM-ის მიღება შეიძლება შემდგომში გართულდეს მოდელების შესრულების მიღმა ფაქტორებით. მაგალითად, ღია მოდელებიც კი ზოგჯერ მოკლებულია გამჭვირვალობას მონაცემთა წყაროების და მონაცემთა დამუშავების მეთოდების შესახებ, რომლებიც შევიდა მოდელში, რამაც შეიძლება შეამციროს ნდობა მოდელებისადმი კრიტიკულ და რეგულირებულ კონტექსტებში. უფრო მეტიც, დღევანდელი ღია LLM-ების სალიცენზიო პირობებმა შეიძლება დაამძიმოს და გაართულოს საწარმოს მოდელის გამოყენების უნარი. აქ ჩვენ წარმოგიდგენთ Granite Code მოდელებს, მაღალუნარიანი კოდის LLM-ების სერიას, რომელიც შექმნილია საწარმოს პროგრამული უზრუნველყოფის შემუშავების მხარდასაჭერად კოდის ამოცანების ფართო სპექტრზე. Granite Code მოდელებს აქვთ ორი ძირითადი ვარიანტი, რომლებსაც ჩვენ გამოვაქვეყნებთ ოთხ სხვადასხვა ზომებში (3B, 8B, 20B და 34B): ძირითადი საფუძვლის მოდელები კოდთან დაკავშირებული ამოცანებისთვის; Granite Code Base: ინსტრუქციის მიმდევარი მოდელები, დახვეწილი Git-ის კომიტების კომბინაციით, ადამიანის ინსტრუქციებთან და ღია კოდის სინთეზურად გენერირებული კოდის ინსტრუქციის მონაცემთა ბაზებით. Granite Code Instruct: სერიის ძირითადი მოდელები მომზადდა ნულიდან ორფაზიანი სასწავლო სტრატეგიით. ფაზა 1-ში ჩვენი მოდელი გაწვრთნილია 116 პროგრამირების ენაზე მიღებული 3-დან 4 ტრილიონ ტოკენზე, რაც უზრუნველყოფს პროგრამირების ენების და სინტაქსის ყოვლისმომცველ გაგებას. ფაზა 2-ში ჩვენი მოდელი დამატებით გაწვრთნილია 500 მილიარდ ტოკენზე კოდისა და ბუნებრივი ენის დომენებიდან მაღალი ხარისხის მონაცემების ფრთხილად შემუშავებული ნარევებით, რათა გაუმჯობესდეს მოდელის მსჯელობის უნარი. ჩვენ ვიყენებთ უნახავ ენობრივ მოდელირების ამოცანას, რათა გავწვრთნათ ძირითადი მოდელები სასწავლო ორივე ფაზაში. ინსტრუქციის მოდელები მიღებულია ზემოთ გაწვრთნილი ძირითადი მოდელების შემდგომი დახვეწით, გაფილტრული 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 ჩვენ ვატარებთ ჩვენი კოდის LLM-ების ყოვლისმომცველ შეფასებებს სკამების ყოვლისმომცველ ნაკრებზე, მათ შორის HumanEvalPack ( , ), MBPP(+) ( , ; , ), RepoBench ( , ), ReCode ( , ) და სხვა. ეს სკამების ნაკრები მოიცავს კოდის სინთეზის გარდა ბევრ სხვა სახის კოდის ამოცანას 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 ჩვენი დასკვნები ავლენს, რომ ღია კოდის მოდელებს შორის, Granite Code მოდელები მთლიანობაში აჩვენებენ ძალიან ძლიერ შესრულებას ყველა ზომის და სკამის მოდელებზე (ხშირად აჯობებენ სხვა ღია კოდის კოდის მოდელებს, რომლებიც ორჯერ უფრო დიდია, ვიდრე Granite). როგორც ილუსტრაცია, ნახ. (ზედა) აჩვენებს Granite-8B-Code-Base-ის შედარებას სხვა ღია კოდის ძირითად კოდის LLM-ებთან, მათ შორის უახლესი მაღალი შესრულების ზოგადი დანიშნულების ძირითად LLM-ებთან, როგორიცაა Mistral ( , ) და LLama-3 ( , ) HumanEvalPack-ზე ( , ). მიუხედავად იმისა, რომ CodeGemma და StarCoder2 კარგად მუშაობენ კოდის გენერაციაში, ისინი მნიშვნელოვნად უარესად მუშაობენ HumanEvalPack-ის კოდის გამოსწორებისა და ახსნის ვარიანტებზე. საშუალოდ, Granite-8B-Code-Base აჯობებს ყველაზე კონკურენტულ CodeGemma-8B მოდელს თითქმის 12 ქულით HumanEvalPack-ზე (33.2% 21.3%-ის წინააღმდეგ), მიუხედავად იმისა, რომ გაწვრთნილია მნიშვნელოვნად ნაკლებ ტოკენზე (4.5T 7.5T ტოკენის წინააღმდეგ). ძირითადი მოდელების გარდა, ჩვენი Granite Code მოდელების ინსტრუქციის დახვეწილი ვარიანტები ასევე აჩვენებენ ძლიერ შესრულებას HumanEvalPack-ზე, აჯობებენ სხვა ღია კოდის (კოდის) ინსტრუქციის მოდელებს, რაც ადასტურებს სარგებელს კოდის ამოცანების ფართო სპექტრისთვის ბუნებრივი ენის ინსტრუქციებით (იხილეთ ნახ. (ქვედა)). 1 Jiang et al. 2023b AI@Meta 2024 Muennighoff et al. 2023 1 უფრო მეტიც, რადგან მსჯელობა კრიტიკულია რთული კითხვებისა და ამოცანების გადასაჭრელად, ჩვენ ასევე ვამოწმებთ ჩვენს Granite-8B-Code-Base მოდელს ექვს მათემატიკურ სკამზე, მათ შორის MATH ( , ), GSM8K ( , ) და პრობლემის გადაჭრა გამოთვლითი ინსტრუმენტების გამოყენებით, სადაც ჩვენი Granite 8B მოდელი აღწევს უკეთეს შესრულებას უმეტეს თანამედროვე 7B ან 8B LLM-ებთან შედარებით. მაგალითად, 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 მოდელები აღწევენ კონკურენტულ ან უახლეს შესრულებას სხვადასხვა სახის კოდთან დაკავშირებულ ამოცანებზე, მათ შორის კოდის გენერაციას, ახსნას, გამოსწორებას, რედაქტირებას, თარგმნას და ა.შ., რაც ადასტურებს მათ უნარს გადაჭრან სხვადასხვა კოდის ამოცანები; ყოვლისმომცველი კოდის LLM : ყველა ჩვენი მოდელი გაწვრთნილია ნებართვადი მონაცემებით, შეგროვებული IBM-ის AI ეთიკის პრინციპების მიხედვით და ხელმძღვანელობს IBM-ის კორპორაციული იურიდიული გუნდი სანდო საწარმოს გამოყენებისთვის. ყველა Granite Code მოდელი გამოქვეყნებულია Apache 2.0 ლიცენზიის ქვეშ. სანდო საწარმოს დონის LLM 1 ჩვენ აღვწერთ ჩვენი მონაცემთა შეგროვების, გაფილტვრის და წინასწარი დამუშავების მთელ მილსადენს მე-2 ნაწილში. სექცია აღწერს მოდელების არქიტექტურის დეტალებს, რასაც მოჰყვება სასწავლო დეტალები მე-3 ნაწილში. მე-4 ნაწილში მოცემულია ინსტრუქციის დახვეწის დეტალები მე-5 ნაწილში, ხოლო მე-6 ნაწილში აღწერილია ექსპერიმენტები და შედეგები, რომლებიც ადარებს Granite Code მოდელებს სხვა ღია კოდის LLM-ებთან. 2 2 მონაცემთა შეგროვება ამ ნაწილში ჩვენ აღვწერთ მონაცემების მოძიების და გაფილტვრის (სექ. ), დედუპლიკაციის (სექ. ), HAP/PII გაფილტვრის (სექ. ) პროცესს, რომლებიც გამოიყენება მოდელის სასწავლო კოდის მონაცემების მოსამზადებლად. ჩვენ ასევე მოგაწვდით მიმოხილვას მაღალი ხარისხის ბუნებრივი ენის მონაცემების შესახებ, რომლებიც გამოიყენება მოდელის ენის გაგებისა და მათემატიკური მსჯელობის უნარების გასაუმჯობესებლად. 2.1 2.2 2.3 2.1 მონაცემების მოძიება და გაფილტვრა წინასწარი სასწავლო კოდის მონაცემები იქნა მიღებული საჯაროდ ხელმისაწვდომი მონაცემთა ბაზების კომბინაციიდან, როგორიცაა Github Code Clean , StarCoderdata , და დამატებითი საჯარო კოდის საცავები და საკითხები GitHub-დან. ჩვენ ვაფილტრავთ ნედლი მონაცემებს 116 პროგრამირების ენის სიის შესანარჩუნებლად 300+-ზე მეტი ენიდან, როგორც ეს ჩამოთვლილია დანართში . მონაცემების პროგრამირების ენებზე განაწილება ხორციელდება მხოლოდ ფაილის გაფართოების საფუძველზე, StarCoder-ის მსგავსად ( , ). ენის გაფილტვრის შემდეგ, ჩვენ ვიყენებთ ოთხ ძირითად ფილტრაციის წესს, რათა გამოვრიცხოთ დაბალი ხარისხის კოდი ( , ): (1) ამოიღეთ ფაილები, რომლებსაც აქვთ ნაკლები 25% ასო caractères, (2) გარდა XSLT ენისა, გამორიცხეთ ფაილები, სადაც სტრიქონი „<?xml version=” ჩნდება პირველი 100 სიმბოლოს ფარგლებში, (3) HTML ფაილებისთვის, შეინახეთ მხოლოდ ის ფაილები, სადაც ხილული ტექსტი შეადგენს HTML კოდის მინიმუმ 20%-ს და აქვს მინიმუმ 100 სიმბოლოს სიგრძე, (4) JSON და YAML ფაილებისთვის, შეინახეთ მხოლოდ ის ფაილები, რომლებსაც აქვთ სიმბოლოების რაოდენობა 50-დან 5000 სიმბოლომდე. ჩვენ ასევე ვაფილტრავთ GitHub-ის საკითხებს ხარისხის მეტრიკების ნაკრების გამოყენებით, რომელიც მოიცავს ავტომატურად გენერირებული ტექსტის ამოღებას, არამიმოსახლის საკითხების გაფილტვრას, ბოტების კომენტარების გამორიცხვას და ხარისხის ინდიკატორად შეტყობინებაში ჩართული მომხმარებლების რაოდენობის გამოყენებას. ჩვენ ასევე ვა annotate-ებთ თითოეულ კოდის ფაილს ლიცენზიის ინფორმაციით, რომელიც დაკავშირებულია შესაბამის საცავთან, ნაპოვნი Github API-ების საშუალებით და მხოლოდ ლიცენზირებული ფაილების შენახვა მოდელის სასწავლო მიზნებისთვის. 2 3 A Li et al. 2023a Li et al. 2023a 2.2 ზუსტი და ბუნდოვანი დედუპლიკაცია ჩვენ ვიყენებთ აგრესიულ დედუპლიკაციის სტრატეგიას, რომელიც მოიცავს როგორც ზუსტ, ასევე ბუნდოვან დედუპლიკაციას, რათა ამოვიღოთ დოკუმენტები, რომლებსაც აქვთ (თითქმის) იდენტური კოდის შინაარსი ჩვენს სასწავლო ნაკრებში. ზუსტი დედუპლიკაციისთვის, ჩვენ ჯერ გამოვთვლით SHA256 ჰეშს დოკუმენტის შინაარსზე და ამოვიღებთ ჩანაწერებს იდენტური ჰეშებით. ზუსტი დედუპლიკაციის შემდეგ, ჩვენ ვიყენებთ ბუნდოვან დედუპლიკაციას, რომლის მიზანია კოდის ფაილების ამოღება, რომლებსაც შეიძლება ჰქონდეთ მცირე ვარიაციები და ამით მონაცემების შემდგომი მიკერძოების მოხსნა. ჩვენ ვიყენებთ ამას ორსაფეხურიან მეთოდს: (1) გამოვთვლით ყველა დოკუმენტის MinHash-ს და შემდეგ ვიყენებთ Locally Sensitive Hashing (LSH) დოკუმენტების დაჯგუფებისთვის მათი MinHash თითის ანაბეჭდების მიხედვით, (2) ვზომავთ Jaccard-ის მსგავსებას თითოეულ დოკუმენტთა წყვილს შორის იმავე კალათაში და ვა annotate-ებთ დოკუმენტებს, გარდა ერთისა, როგორც დუბლიკატები მსგავსების ზღვრის 0.7 საფუძველზე. ჩვენ ვიყენებთ ამ თითქმის დედუპლიკაციის პროცესს ყველა პროგრამირების ენაზე, მათ შორის GitHub-ის საკითხებზე, სასწავლო ნაკრების სიმდიდრისა და მრავალფეროვნების გასაუმჯობესებლად. 2.3 HAP, PII, მავნე პროგრამების გაფილტვრა მოდელებიდან შეურაცხმყოფელი, შეურაცხმყოფელი ან უხამსი (HAP) ენის გამომუშავების ალბათობის შესამცირებლად, ჩვენ ვიღებთ გულმოდგინე ძალისხმევას HAP შინაარსის გაფილტვრისთვის სასწავლო ნაკრებიდან. ჩვენ ჯერ ვქმნით HAP საკვანძო სიტყვების ლექსიკონს და შემდეგ ვა annotate-ებთ თითოეულ კოდის დოკუმენტს ამ საკვანძო სიტყვების occurrences-ის რაოდენობით შინაარსში, კომენტარების ჩათვლით. ჩვენ ვაფილტრავთ დოკუმენტებს, რომლებიც აღემატება HAP ზღვარს, რომელიც გამოითვლება განაწილების ანალიზის საფუძველზე, ასევე კოდის ფაილების ხელით შემოწმების საფუძველზე. უფრო მეტიც, კონფიდენციალობის დასაცავად, ჩვენ მივყვებით StarCoder-ს ( , ) და ვიღებთ გულმოდგინე ძალისხმევას, რათა ამოვიღოთ პერსონალურად იდენტიფიცირებადი ინფორმაცია (PII) სასწავლო ნაკრებიდან. კერძოდ, ჩვენ ვიყენებთ StarPII მოდელს IP მისამართების, კლავიშების, ელ.ფოსტის მისამართების, სახელების, მომხმარებლის სახელების და პაროლების აღმოსაჩენად, რომლებიც ნაპოვნია შინაარსში. PII-ის ამოღების ეტაპი ცვლის PII ტექსტს შესაბამისი ტოკენებით 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 მოდელი გაწვრთნილია 3B Su et al. 2023 Vaswani et al. 2017 Ramachandran et al. 2017 Shazeer 2020 Zhang & Sennrich 2019 Ba et al. 2016