ავტორები: 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 ინტეგრირდება პროგრამული უზრუნველყოფის შემუშავების გარემოში, რათა გაზარდოს ადამიანის პროგრამისტების პროდუქტიულობა, და LLM-ზე დაფუძნებული აგენტები იწყებენ დაპირების ჩვენებას რთული ამოცანების ავტონომიურად შესასრულებლად. პროგრამული LLMs-ის სრული პოტენციალის რეალიზებისთვის საჭიროა ფართო სპექტრის შესაძლებლობები, მათ შორის კოდის გენერაცია, შეცდომების გამოსწორება, კოდის ახსნა და დოკუმენტირება, საცავების შენარჩუნება და სხვა. ამ ნაშრომში, ჩვენ წარმოგიდგენთ 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-ში, ჩვენი მოდელი გაწვრთნილია 3-დან 4 ტრილიონ ტოკენზე, რომელიც მიღებულია 116 პროგრამირების ენიდან, რაც უზრუნველყოფს პროგრამირების ენებისა და სინტაქსის ყოვლისმომცველ გაგებას. ფაზა 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%-ზე ნაკლები ასო, (2) გარდა XSLT ენისა, გამორიცხეთ ფაილები, სადაც სტრიქონი “<?xml version=” ჩნდება პირველი 100 სიმბოლოს ფარგლებში, (3) HTML ფაილებისთვის, შეინახეთ მხოლოდ ის ფაილები, სადაც ხილული ტექსტი შეადგენს HTML კოდის მინიმუმ 20%-ს და აქვს მინიმუმ 100 სიმბოლოს სიგრძე, (4) JSON და YAML ფაილებისთვის, შეინახეთ მხოლოდ ის ფაილები, რომელთა სიმბოლოების რაოდენობა მერყეობს 50-დან 5000 სიმბოლომდე. ჩვენ ასევე ვფილტრავთ GitHub საკითხებს ხარისხის მეტრიკების ნაკრების გამოყენებით, რომელიც მოიცავს ავტომატურად გენერირებული ტექსტის ამოღებას, არამ eixo-ის საკითხების გამორიცხვას, ბოტების კომენტარების გამორიცხვას და საუბარში ჩართული მომხმარებლების რაოდენობის გამოყენებას ხარისხის ინდიკატორად. ჩვენ ასევე ვაანოტებთ თითოეულ კოდის ფაილს ლიცენზიის ინფორმაციით, რომელიც დაკავშირებულია შესაბამის საცავთან, ნაპოვნი Github APIs-ის საშუალებით და შევინახავთ მხოლოდ ნებადართული ლიცენზიების მქონე ფაილებს მოდელის სასწავლო მიზნებისთვის. 2 3 A Li et al. 2023a Li et al. 2023a 2.2 ზუსტი და ბუნდოვანი დე-დუპლიკაცია ჩვენ ვიყენებთ აგრესიულ დე-დუპლიკაციის სტრატეგიას, რომელიც მოიცავს როგორც ზუსტ, ასევე ბუნდოვან დე-დუპლიკაციას, რათა ამოვიღოთ დოკუმენტები, რომლებსაც აქვთ (თითქმის) იდენტური კოდის შინაარსი ჩვენს სასწავლო კომპლექტში. ზუსტი დე-დუპლიკაციისთვის, ჩვენ ჯერ გამოვთვლით SHA256 ჰეშს დოკუმენტის შინაარსზე და ამოვიღებთ ჩანაწერებს, რომლებსაც აქვთ იდენტური ჰეშები. ზუსტი დე-დუპლიკაციის შემდეგ, ჩვენ ვიყენებთ ბუნდოვან დე-დუპლიკაციას, მიზნად ისახავს კოდის ფაილების ამოღებას, რომლებსაც შეიძლება ჰქონდეთ მცირე ვარიაციები და ამით მონაცემების შემდგომი დაუბალანსება. ამისათვის ჩვენ ვიყენებთ ორსაფეხურიან მეთოდს: (1) გამოვთვალოთ ყველა დოკუმენტის MinHashes და შემდეგ გამოვიყენოთ Locally Sensitive Hashing (LSH) დოკუმენტების დაჯგუფებისთვის მათი MinHash თითის ანაბეჭდების საფუძველზე, (2) გავზომოთ Jaccard-ის მსგავსება თითოეული წყვილი დოკუმენტების შორის იმავე ჯგუფში და აღვნიშნოთ დოკუმენტები, გარდა ერთი, როგორც დუბლიკატები, მსგავსების ზღვრის 0.7 საფუძველზე. ჩვენ ვიყენებთ ამ თითქმის-დე-დუპლიკაციის პროცესს ყველა პროგრამირების ენაზე, მათ შორის GitHub საკითხებზე, სასწავლო მონაცემთა ნაკრების სიმდიდრისა და მრავალფეროვნების გასაუმჯობესებლად. 2.3 HAP, PII, მავნე პროგრამების ფილტრაცია მოდელებიდან სიძულვილის, შეურაცხმყოფელი ან უწმაწური (HAP) ენის გენერირების ალბათობის შესამცირებლად, ჩვენ ვიღებთ გულმოდგინე ძალისხმევას HAP კონტენტის ფილტრაციისთვის სასწავლო ნაკრებიდან. ჩვენ ჯერ ვქმნით HAP საკვანძო სიტყვების ლექსიკონს და შემდეგ ვაანოტებთ თითოეულ კოდის დოკუმენტს ასეთი საკვანძო სიტყვების რაოდენობის მიხედვით შინაარსში, კომენტარების ჩათვლით. ჩვენ ვფილტრავთ დოკუმენტებს, რომლებიც აღემატება 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 embedding ( , ) და Multi-Head Attention ( , ) გამოყენებით. ეს მოდელი იყენებს swish აქტივაციის ფუნქციას ( , ) GLU-სთან ( , ) ერთად MLP-ისთვის, რომელსაც ასევე ხშირად უწოდებენ swiglu. ნორმალიზებისთვის, ჩვენ ვიყენებთ RMSNorm ( , ), რადგან ის უფრო ეფექტურია გამოთვლითად, ვიდრე LayerNorm ( 3B Su et al. 2023 Vaswani et al. 2017 Ramachandran et al. 2017 Shazeer 2020 Zhang & Sennrich 2019