```html مصنفین: میانہک مشرا⋆، آئی بی ایم میٹ اسٹالون، آئی بی ایم گاؤیوان ژانگ⋆، آئی بی ایم ییکانگ شین، آئی بی ایم آدتیہ پرساد، آئی بی ایم ایڈریاانا میزا سوریا، آئی بی ایم مائیکل میرلر، آئی بی ایم پرمیشورن سیلم، آئی بی ایم سپتھا سورندرن، آئی بی ایم شیو دیپ سنگھ، آئی بی ایم منیش سیٹھی، آئی بی ایم زوان-ہانگ دانگ، آئی بی ایم پینگ یوان لی، آئی بی ایم کن-لونگ وو، آئی بی ایم سید زواد، آئی بی ایم اینڈریو کولمین، آئی بی ایم میتھیو وائٹ، آئی بی ایم مارک لیوس، آئی بی ایم راجو پاولوری، آئی بی ایم یان کوف مین، آئی بی ایم بوریس لبلنسکی، آئی بی ایم میکسیمیلین ڈی بائسر، آئی بی ایم ابراہیم عبدالعزیز، آئی بی ایم کنالج باسم، آئی بی ایم میانہک اگروال، آئی بی ایم ی ژو، آئی بی ایم کرس جانسن، آئی بی ایم آنچل گویل، آئی بی ایم ہما پٹیل، آئی بی ایم یوسف شاہ، آئی بی ایم پیٹروس زرفوس، آئی بی ایم ہائیکو لڈویگ، آئی بی ایم عاصم منور، آئی بی ایم میکسویل کروس، آئی بی ایم پون کے پیانی پتی، آئی بی ایم شویتا سالاریا، آئی بی ایم بوب کیلیو، آئی بی ایم صوفیہ وین، آئی بی ایم سیتا رامی سیلم، آئی بی ایم برائن بیلگوڈیر، آئی بی ایم کارلوس فونسیکا، آئی بی ایم امیتھ سنگھ، آئی بی ایم نرمت دیسائی، آئی بی ایم ڈیوڈ ڈی. کاکس، آئی بی ایم روچیر پوری†، آئی بی ایم رامسوار پانڈا†، آئی بی ایم خلاصہ کوڈ پر تربیت یافتہ بڑے لسانی ماڈلز (LLMs) سافٹ ویئر ڈویلپمنٹ کے عمل میں انقلاب برپا کر رہے ہیں۔ بڑھتے ہوئے، انسانی پروگرامرز کی پیداواری صلاحیت کو بہتر بنانے کے لیے سافٹ ویئر ڈویلپمنٹ کے ماحول میں کوڈ LLMs کو مربوط کیا جا رہا ہے، اور LLM پر مبنی ایجنٹ پیچیدہ کاموں کو خود مختاری سے سنبھالنے کے لیے امید ظاہر کرنا شروع کر رہے ہیں۔ کوڈ LLMs کی پوری صلاحیت کو محسوس کرنے کے لیے کوڈ کی نسل، بگس کو ٹھیک کرنا، کوڈ کی وضاحت اور دستاویز بنانا، ذخیروں کو برقرار رکھنا، اور بہت کچھ سمیت وسیع رینج کی صلاحیتوں کی ضرورت ہے۔ اس کام میں، ہم کوڈ جنریٹو ٹاسکس کے لیے ڈیکوڈر-اونلی کوڈ ماڈلز کی گرینائٹ سیریز متعارف کراتے ہیں، جو 116 پروگرامنگ زبانوں میں لکھے گئے کوڈ کے ساتھ تربیت یافتہ ہیں۔ گرینائٹ کوڈ ماڈلز فیملی میں 3 سے 34 بلین پیرامیٹرز تک کے ماڈلز شامل ہیں، جو پیچیدہ ایپلیکیشن ماڈرنائزیشن ٹاسکس سے لے کر آن-ڈیوائس میموری سے محدود استعمال کے معاملات تک کے لیے موزوں ہیں۔ ٹاسکس کے ایک جامع سیٹ پر جانچ اس بات کا مظاہرہ کرتی ہے کہ گرینائٹ کوڈ ماڈلز دستیاب اوپن سورس کوڈ LLMs میں مسلسل ریاست کی بہترین کارکردگی حاصل کرتی ہیں۔ گرینائٹ کوڈ ماڈل فیملی کو انٹرپرائز سافٹ ویئر ڈویلپمنٹ ورک فلوز کے لیے آپٹمائز کیا گیا تھا اور یہ کوڈنگ کے مختلف کاموں (مثال کے طور پر کوڈ کی نسل، ٹھیک کرنا اور وضاحت) میں اچھا کارکردگی کا مظاہرہ کرتی ہے، جو اسے ایک ورسٹائل "آل اراؤنڈ" کوڈ ماڈل بناتی ہے۔ ہم اپنے تمام گرینائٹ کوڈ ماڈلز کو تحقیق اور تجارتی دونوں استعمال کے لیے اپاچی 2.0 لائسنس کے تحت جاری کرتے ہیں۔ https://github.com/ibm-granite/granite-code-models 1 تعارف گزشتہ کئی دہائیوں سے، سافٹ ویئر ہمارے معاشرے کے ہر پہلو کے تانے بانے میں بُنا ہوا ہے۔ جیسے جیسے سافٹ ویئر ڈویلپمنٹ کا مطالبہ بڑھ رہا ہے، سافٹ ویئر ڈویلپمنٹ کی پیداواری صلاحیت میں اضافہ کرنا پہلے سے کہیں زیادہ اہم ہے، اور LLMs انسانی پروگرامرز کو بڑھانے کا ایک امید افزا راستہ فراہم کرتے ہیں۔ سافٹ ویئر ڈویلپمنٹ کی پیداواری صلاحیت میں LLMs کے نمایاں انٹرپرائز استعمال کے معاملات میں کوڈ کی نسل، کوڈ کی وضاحت، کوڈ کی اصلاح، یونٹ ٹیسٹ اور دستاویز کی نسل، ایپلیکیشن ماڈرنائزیشن، کمزوری کی تشخیص، کوڈ کا ترجمہ، اور بہت کچھ شامل ہیں۔ حالیہ برسوں میں LLM کی کوڈ پیدا کرنے اور اس میں تبدیلی کرنے کی صلاحیت میں تیزی سے ترقی دیکھی گئی ہے، اور آج متاثر کن کوڈنگ کی صلاحیتوں والے ماڈلز کی ایک رینج دستیاب ہے۔ ماڈلز سنگل ہندسے کے اربوں پیرامیٹرز (مثال کے طور پر لاما-7B (Touvron et al., 2023)، جیما-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))۔ تاہم، کوڈ کے لیے 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 میں لائسنس کی شرائط ایک ماڈل کے استعمال کے لیے ایک انٹرپرائز کی صلاحیت کو محدود اور پیچیدہ بنا سکتی ہیں۔ یہاں، ہم گرینائٹ کوڈ ماڈلز پیش کرتے ہیں، جو انتہائی قابل کوڈ LLMs کا ایک سلسلہ ہے، جو کوڈنگ کے وسیع پیمانے پر کاموں میں انٹرپرائز سافٹ ویئر ڈویلپمنٹ کی حمایت کے لیے ڈیزائن کیا گیا ہے۔ گرینائٹ کوڈ ماڈلز کے دو اہم تغیرات ہیں جو ہم چار مختلف سائز (3B، 8B، 20B، اور 34B) میں جاری کرتے ہیں: کوڈ سے متعلقہ کاموں کے لیے بنیادی فاؤنڈیشن ماڈلز؛ گرینائٹ کوڈ بیس: انسانی ہدایات کے ساتھ جوڑے گئے گٹ کمٹ کے امتزاج اور اوپن سورس مصنوعی طور پر تیار کردہ کوڈ انسٹرکشن ڈیٹا سیٹس کا استعمال کرتے ہوئے فائن ٹیون شدہ ہدایات کی پیروی کرنے والے ماڈلز۔ گرینائٹ کوڈ انسٹرکٹ: سیریز میں بنیادی ماڈلز کو دو مراحل والی ٹریننگ کی حکمت عملی کے ساتھ شروع سے تربیت دی گئی ہے۔ مرحلہ 1 میں، ہمارا ماڈل 116 پروگرامنگ زبانوں سے حاصل کردہ 3 سے 4 ٹریلین ٹوکن پر تربیت یافتہ ہے، جو پروگرامنگ زبانوں اور نحو کی جامع تفہیم کو یقینی بناتا ہے۔ مرحلہ 2 میں، ہمارا ماڈل 500 بلین ٹوکن کے ساتھ مزید تربیت یافتہ ہے جس میں کوڈ اور قدرتی زبان کے ڈومینز سے اعلیٰ معیار کے ڈیٹا کا احتیاط سے ڈیزائن کیا گیا مرکب ہے تاکہ ماڈل کی استدلال کرنے کی صلاحیت کو بہتر بنایا جا سکے۔ ہم تربیت کے دونوں مراحل میں بنیادی ماڈلز کو تربیت دینے کے لیے غیر نگرانی والی لسانی ماڈلنگ کے مقصد کا استعمال کرتے ہیں۔ انسٹرکٹ ماڈلز کو کمٹ پیک ( ، ) کے فلٹر شدہ تغیر، قدرتی لسانی انسٹرکشن فالونگ ڈیٹا سیٹس (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 کی وسیع جانچ کا وسیع پیمانے پر بنچ مارکس پر کرتے ہیں، جن میں HumanEvalPack ( ، )، MBPP(+) ( ، ؛ ، )، RepoBench ( ، )، ReCode ( ، )، اور بہت کچھ شامل ہے۔ یہ بنچ مارکس کا سیٹ پائتھن میں صرف کوڈ ترکیب کے علاوہ بہت سے مختلف قسم کے کوڈنگ ٹاسکس کا احاطہ کرتا ہے، مثلاً، کوڈ کو ٹھیک کرنا، کوڈ کی وضاحت، کوڈ میں ترمیم، کوڈ کا ترجمہ، وغیرہ، زیادہ تر بڑی پروگرامنگ زبانوں (پائتھن، جاوا اسکرپٹ، جاوا، گو، سی++، رسٹ، وغیرہ) میں۔ Muennighoff et al. 2023 Austin et al. 2021 Liu et al. 2023a Liu et al. 2023b Wang et al. 2022 ہمارے نتائج ظاہر کرتے ہیں کہ اوپن سورس ماڈلز میں، گرینائٹ کوڈ ماڈلز تمام ماڈل سائزز اور بنچ مارکس پر بہت مضبوط کارکردگی کا مظاہرہ کرتی ہیں (اکثر دوسرے اوپن سورس کوڈ ماڈلز کو جو گرینائٹ کے مقابلے میں دو گنا بڑے ہیں، سے بہتر کارکردگی دکھاتی ہیں)۔ ایک مثال کے طور پر، تصویر (اوپر) گرینائٹ-8B-Code-Base کا دیگر اوپن سورس بیس کوڈ LLMs کے ساتھ موازنہ دکھاتی ہے، بشمول حال ہی میں اعلیٰ کارکردگی دکھانے والے عمومی بیس LLMs جیسے Mistral ( ، ) اور LLama-3 ( ، ) HumanEvalPack ( ، ) پر۔ جبکہ CodeGemma اور StarCoder2 کوڈ کی نسل میں مناسب کارکردگی دکھاتے ہیں، وہ HumanEvalPack کے کوڈ کی اصلاح اور وضاحت والے تغیرات پر نمایاں طور پر بدتر کارکردگی کا مظاہرہ کرتے ہیں۔ اوسطاً، گرینائٹ-8B-Code-Base سب سے زیادہ مسابقتی CodeGemma-8B ماڈل سے HumanEvalPack پر تقریباً 12 پوائنٹس (33.2% بمقابلہ 21.3%) سے بہتر کارکردگی دکھاتا ہے، حالانکہ اسے نمایاں طور پر کم ٹوکن (4.5T بمقابلہ 7.5T ٹوکن) پر تربیت دی گئی ہے۔ بیس ماڈلز کے علاوہ، ہمارے گرینائٹ کوڈ ماڈلز کے انسٹرکشن ٹیونڈ تغیرات بھی HumanEvalPack پر مضبوط کارکردگی دکھاتے ہیں، دوسرے اوپن سورس (کوڈ) انسٹرکشن ماڈلز سے بہتر کارکردگی دکھاتے ہیں، جو قدرتی لسانی ہدایات کے ساتھ کوڈنگ کے کاموں کے وسیع سیٹ کے لیے فوائد کو ظاہر کرتا ہے (تصویر (نیچے) دیکھیں۔ 1 Jiang et al. 2023b AI@Meta 2024 Muennighoff et al. 2023 1 مزید برآں، چونکہ پیچیدہ سوالات اور کاموں کو حل کرنے کے لیے ریزننگ اہم ہے، ہم اپنے گرینائٹ-8B-Code-Base ماڈل کو چھ ریاضی کے بنچ مارکس پر بھی جانچتے ہیں، جن میں MATH ( ، )، GSM8K ( ، ) اور کمپیوٹیشنل ٹولز تک رسائی کے ساتھ مسئلہ حل کرنا شامل ہے، جہاں ہمارا گرینائٹ 8B ماڈل زیادہ تر اسٹیٹ آف دی آرٹ 7B یا 8B LLMs کے مقابلے میں بہتر کارکردگی حاصل کرتا ہے۔ مثال کے طور پر، گرینائٹ-8B-Code-Base GSM8K پر Llama-3-8B-Base سے ∼12 پوائنٹس اور MATH پر ∼6 پوائنٹس (ٹیبل دیکھیں) سے بہتر کارکردگی دکھاتا ہے۔ Cobbe et al. 2021 Cobbe et al. 2021 15 گرینائٹ کوڈ ماڈلز کے کلیدی فوائد میں شامل ہیں: : گرینائٹ کوڈ ماڈلز مختلف قسم کے کوڈ سے متعلقہ کاموں پر مسابقتی یا اسٹیٹ آف دی آرٹ کارکردگی حاصل کرتی ہیں، بشمول کوڈ کی نسل، وضاحت، اصلاح، ترمیم، ترجمہ، وغیرہ، جو متنوع کوڈنگ کے کاموں کو حل کرنے کی ان کی صلاحیت کو ظاہر کرتی ہے۔ آل راؤنڈر کوڈ LLM : ہمارے تمام ماڈلز IBM کے AI Ethics principles پر عمل کرتے ہوئے جمع کیے گئے لائسنس کے قابل ڈیٹا پر تربیت یافتہ ہیں اور قابل اعتماد انٹرپرائز کے استعمال کے لیے IBM کے کارپوریٹ لیگل ٹیم کی رہنمائی میں ہیں۔ تمام گرینائٹ کوڈ ماڈلز اپاچی 2.0 لائسنس کے تحت جاری کیے گئے ہیں۔ قابل اعتماد انٹرپرائز-گریڈ LLM 1 ہم اپنا پورا ڈیٹا جمع کرنے، فلٹر کرنے، اور پری پروسیسنگ کا پائپ لائن سیکشن میں بیان کرتے ہیں . سیکشن ماڈل فن تعمیر کی تفصیلات بیان کرتا ہے، اس کے بعد سیکشن میں ٹریننگ کی تفصیلات بیان کرتا ہے۔ سیکشن انسٹرکشن ٹیوننگ کے بارے میں تفصیلات فراہم کرتا ہے، اور سیکشن ہمارے گرینائٹ کوڈ ماڈلز کو دیگر اوپن سورس LLMs کے ساتھ موازنہ کرنے والے تجربات اور نتائج بیان کرتا ہے۔ 2 3 4 5 6 2 ڈیٹا جمع کرنا اس سیکشن میں، ہم ماڈل کی تربیت کے لیے کوڈ ڈیٹا تیار کرنے کے لیے کرالنگ اور فلٹرنگ (سیکشن )، ڈی ڈپلیکیشن (سیکشن )، HAP/PII فلٹرنگ (سیکشن ) کے عمل کی تفصیلات بتاتے ہیں۔ ہم ماڈل کی لسانی تفہیم اور ریاضی کی استدلال کی صلاحیتوں کو بہتر بنانے کے لیے استعمال کیے جانے والے اعلیٰ معیار کے قدرتی لسانی ڈیٹا کا ایک جائزہ بھی فراہم کرتے ہیں۔ 2.1 2.2 2.3 2.1 ڈیٹا کرالنگ اور فلٹرنگ پری ٹریننگ کوڈ ڈیٹا کو عوامی طور پر دستیاب ڈیٹا سیٹس جیسے گٹ ہب کوڈ کلین ، سٹار کوڈر ڈیٹا ، اور گٹ ہب سے اضافی عوامی کوڈ ذخیروں اور ایشوز کے امتزاج سے حاصل کیا گیا تھا۔ ہم 300+ زبانوں میں سے 116 پروگرامنگ زبانوں کی ایک فہرست کو برقرار رکھنے کے لیے خام ڈیٹا کو فلٹر کرتے ہیں، جیسا کہ ضمیمہ میں درج ہے۔ ڈیٹا کو پروگرامنگ زبانوں میں مختص کرنا صرف فائل کے توسیع کی بنیاد پر کیا جاتا ہے، سٹار کوڈر ( ، ) کی طرح۔ زبان فلٹرنگ کے بعد، ہم کم کوالٹی والے کوڈ کو فلٹر کرنے کے لیے چار کلیدی فلٹرنگ قوانین لاگو کرتے ہیں ( ، ): (1) 25% سے کم الفبیٹک حروف والی فائلوں کو ہٹائیں، (2) XSLT زبان کے علاوہ، فائلوں کو فلٹر کریں جن میں سٹرنگ "<?xml version=” پہلے 100 حروف کے اندر ظاہر ہوتی ہے، (3) HTML فائلوں کے لیے، صرف ان فائلوں کو رکھیں جن میں بصری متن HTML کوڈ کا کم از کم 20% بنتا ہے اور کم از کم 100 حروف کی لمبائی ہوتی ہے، (4) JSON اور YAML فائلوں کے لیے، صرف ان فائلوں کو رکھیں جن کا حروف کا شمار 50 سے 5000 حروف کے درمیان ہوتا ہے۔ ہم خودکار طور پر تیار کردہ متن کو ہٹانے، غیر انگریزی ایشوز کو فلٹر کرنے، بوٹس سے تبصرے خارج کرنے، اور کوالٹی کے اشارے کے طور پر گفتگو میں شامل صارفین کی تعداد کا استعمال کرتے ہوئے، کوالٹی کے میٹرکس کے سیٹ کا استعمال کرتے ہوئے گٹ ہب ایشوز کو بھی فلٹر کرتے ہیں۔ ہم ماڈل کی تربیت کے لیے اجازت نامے کے لائسنس کے ساتھ ہر کوڈ فائل کو ٹیگ کرتے ہیں، جو گٹ ہب APIs کے ذریعے پایا جاتا ہے اور صرف اجازت نامے والے لائسنس والی فائلوں کو رکھتے ہیں۔ 2 3 A Li et al. 2023a Li et al. 2023a 2.2 درست اور غیر دقیق ڈی ڈپلیکیشن ہم اپنے ٹریننگ سیٹ میں (قریب) ایک جیسی کوڈ مواد والی دستاویزات کو ہٹانے کے لیے درست اور غیر دقیق ڈی ڈپلیکیشن سمیت ایک جارحانہ ڈی ڈپلیکیشن حکمت عملی اختیار کرتے ہیں۔ درست ڈی ڈپلیکیشن کے لیے، ہم پہلے دستاویز کے مواد پر SHA256 ہیش کا حساب لگاتے ہیں اور یکساں ہیشز والی ریکارڈز کو ہٹاتے ہیں۔ درست ڈی ڈپلیکیشن کے بعد، ہم غیر دقیق ڈی ڈپلیکیشن کا اطلاق کرتے ہیں جس کا مقصد کوڈ فائلوں کو ہٹانا ہے جن میں معمولی تغیرات ہو سکتے ہیں اور اس طرح ڈیٹا کو مزید غیر جانبدار بنانا ہے۔ ہم اس کے لیے ایک دو قدمی طریقہ استعمال کرتے ہیں: (1) تمام دستاویزات کے MinHashes کا حساب لگاتے ہیں اور پھر ان کی MinHash فنگر پرنٹس کی بنیاد پر دستاویزات کو گروپ کرنے کے لیے لوکلی سینسیٹیو ہیشنگ (LSH) کا استعمال کرتے ہیں، (2) ایک ہی بکیٹ میں دستاویزات کے ہر جوڑے کے درمیان جیکارڈ کی مماثلت کی پیمائش کرتے ہیں اور 0.7 کی مماثلت کی حد کی بنیاد پر ایک کے علاوہ دستاویزات کو نقل کے طور پر ٹیگ کرتے ہیں۔ ہم ٹریننگ ڈیٹا سیٹ کی بھرپوریت اور تنوع کو بڑھانے کے لیے گٹ ہب ایشوز سمیت تمام پروگرامنگ زبانوں پر یہ قریب-ڈی ڈپلیکیشن عمل لاگو کرتے ہیں۔ 2.3 HAP, PII, مالویئر فلٹرنگ ماڈلز سے نفرت انگیز، بدسلوکی، یا فحش (HAP) زبان پیدا کرنے کے امکان کو کم کرنے کے لیے، ہم ٹریننگ سیٹ سے HAP مواد کو فلٹر کرنے کے لیے مستعدی سے کوششیں کرتے ہیں۔ ہم سب سے پہلے HAP کلیدی الفاظ کی ایک لغت بناتے ہیں اور پھر ہر کوڈ دستاویز کو اس مواد میں شامل تبصروں میں ایسے کلیدی الفاظ کی موجودگی کی تعداد سے ٹیگ کرتے ہیں۔ ہم ان دستاویزات کو فلٹر کرتے ہیں جو HAP کی حد سے تجاوز کرتی ہیں، جس کا حساب تقسیماتی تجزیے کے ساتھ ساتھ کوڈ فائلوں کے دستی معائنے کی بنیاد پر کیا جاتا ہے۔ مزید برآں، رازداری کی حفاظت کے لیے، ہم StarCoder ( ، ) کی پیروی کرتے ہیں اور ٹریننگ سیٹ سے ذاتی طور پر قابل شناخت معلومات (PII) کو چھپانے کے لیے مستعدی سے کوششیں کرتے ہیں۔ خاص طور پر، ہم IP ایڈریس، کلید، ای میل ایڈریس، نام، صارف نام، اور پاس ورڈ کا پتہ لگانے کے لیے StarPII ماڈل کا فائدہ اٹھاتے ہیں۔ PII کی تبدیلی کے مرحلے میں PII متن کو متعلقہ ٹوکن NAME ، EMAIL ، KEY ، PASSWORD سے بدل دیا جاتا ہے اور IP ایڈریس کو Li et al. (2023a) کی طرح مصنوعی طور پر تیار کردہ IP ایڈریس سے تبدیل کیا جاتا ہے۔ ہم مالویئر کے ماخذ کوڈ میں موجود instances کی شناخت اور انہیں ہٹانے کے لیے اپنے ڈیٹا سیٹس کو بھی اسکین کرتے ہیں۔ 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 ماڈل فن تعمیر ہم ٹرانسفارمر ڈیکوڈر فن تعمیر ( ، ) پر مبنی مختلف سائز کے کوڈ ماڈلز کی ایک سیریز کو تربیت دیتے ہیں۔ ان ماڈلز کے لیے ماڈل ہائپر پیرامیٹرز ٹیبل میں دیے گئے ہیں۔ تمام ماڈل فن تعمیرات کے لیے، ہم پری-نارملائزیشن ( ، ) استعمال کرتے ہیں: نارملائزیشن جو اٹینشن اور ایم ایل پی بلاکس کے ان پٹ پر لاگو ہوتی ہے۔ Vaswani et al. 2017 1 Xiong et al. 2020 : گرینائٹ-کوڈ ماڈل فیملی میں سب سے چھوٹا ماڈل RoPE ایمبیڈنگ ( ، ) اور ملٹی ہیڈ اٹینشن ( ، ) کے ساتھ تربیت یافتہ ہے۔ یہ ماڈل ایم ایل پی کے لیے GLU ( ، ) کے ساتھ سوئش ایکٹیویشن فنکشن ( ، ) استعمال کرتا ہے، جسے عام طور پر swiglu بھی کہا جاتا ہے۔ نارملائزیشن کے لیے، ہم RMSNorm ( ، ) استعمال کرتے ہیں کیونکہ یہ LayerNorm ( ، ) سے زیادہ کمپیوٹیشنلی مؤثر ہے۔ 3B ماڈل 2048 ٹوکن کے سیاق و سباق کی لمبائی کے ساتھ تربیت یافتہ ہے۔ 3B Su et al. 2023 Vaswani et al. 2017 Shazeer 2020 Ramachandran et al. 2017 Zhang & Sennrich 2019 Ba et al. 2016 : 8B ماڈل میں 3B ماڈل کی طرح فن تعمیر ہے سوائے اس کے کہ گروپڈ-کوئری اٹینشن (GQA) ( ، ) کا استعمال کیا گیا ہے۔ GQA کا استعمال اس پیمانے پر ماڈل کی کارکردگی اور انفرنس کی استعداد کے درمیان ایک بہتر سمجھوتہ فراہم کرتا ہے۔ ہم 8B ماڈل کو 4096 ٹوکن کے سیاق و سباق کی لمبائی کے ساتھ تربیت دیتے ہیں۔ 8B Ainslie et al. 2023 : 20B کوڈ ماڈل سیکھے ہوئے مطلق پوزیشن ایمبیڈنگ کے ساتھ تربیت یافتہ ہے۔ ہم موثر ڈاؤن اسٹریم انفرنس کے لیے تربیت کے دوران ملٹی کوئری اٹینشن ( ، ) استعمال کرتے ہیں۔ ایم ایل پی بلاک کے لیے، ہم GELU ایکٹیویشن فنکشن ( ، ) استعمال کرتے ہیں۔ ایکٹیویشنز کو نارملائز کرنے کے لیے، ہم LayerNorm ( ، ) استعمال کرتے ہیں۔ یہ ماڈل 8192 ٹوکن کے سیاق و سباق کی لمبائی کے ساتھ تربیت یافتہ ہے۔ 20B Shazeer 2019 Hendrycks & Gimpel 2023 Ba et al. 2016 : 34B ماڈل کو تربیت دینے کے لیے، ہم 20B ماڈل کی گہرائی میں اضافہ کے لیے کے طریقہ کار کی پیروی کرتے ہیں۔ خاص طور پر، ہم سب سے پہلے 52 لیئرز والے 20B کوڈ ماڈل کو ڈپلیکیٹ کرتے ہیں اور پھر دو ماڈلز بنانے کے لیے اصل ماڈل سے آخری 8 لیئرز اور اس کی ڈپلیکیٹ سے ابتدائی 8 لیئرز کو ہٹاتے ہیں۔ 34B Kim et al. آخر میں، ہم تصویر میں ایک مثال کے لیے 88 لیئرز کے ساتھ گرینائٹ-34B-Code ماڈل بنانے کے لیے دونوں ماڈلز کو جوڑتے ہیں۔ گہرائی میں اضافہ کے بعد، ہم دیکھتے ہیں کہ 20B ماڈل کے مقابلے میں کارکردگی میں کمی بہت کم ہے برخلاف اس کے جو نے دیکھا ہے۔ یہ کارکردگی اس کے بعد کافی تیزی سے بحال ہوتی ہے جب ہم اپسکیلڈ 34B ماڈل کی پری ٹریننگ جاری رکھتے ہیں۔ 20B کی طرح، ہم پری ٹریننگ کے دوران 8192 ٹوکن کا سیاق و سباق استعمال کرتے ہیں۔ 2 Kim et al. 4 پری ٹریننگ اس سیکشن میں، ہم دو مرحلوں والی ٹریننگ (سیکشن )، ٹریننگ کے مقاصد (سیکشن )، اپٹمائزیشن (سیکشن ) اور بنیادی ماڈلز کی پری ٹریننگ میں استعمال ہونے والے انفراسٹرکچر (سیکشن ) کی تفصیلات فراہم کرتے ہیں۔ 4.1 4.2 4.3 4.4 4.1 دو مرحلوں والی ٹریننگ گرینائٹ کوڈ ماڈلز کوڈ ڈیٹا اور کوڈ سے متعلق قدرتی لسانی ڈیٹا کے 3.5T سے 4.5T ٹوکن پر تربیت یافتہ ہیں۔ ڈیٹا کو بائٹ پیئر انکوڈنگ (BPE, ( ، )) کے ذریعے ٹوکناائز کیا جاتا ہے، جو سٹار کوڈر ( ، ) کے جیسا ہی ٹوکنائزر استعمال کرتا ہے۔ ( ، ؛ ، ) کی پیروی کرتے ہوئے، ہم دو مراحل والی ٹریننگ کے ساتھ اعلیٰ معیار کے ڈیٹا کا استعمال کرتے ہیں: Sennrich et al. 2015 Li et al. 2023a Shen et al. 2024 Hu et al. 2024 • : مرحلہ 1 کے دوران، مرحلہ 1 (صرف کوڈ کی تربیت)