مصنوعی ذہانت
ابھی تک سب سے طاقتور اوپن سورس LLM: Meta LLAMA 3.1-405B

By
آیوش متل متل
Llama 3.1-405BMeta AI کی طرف سے تیار کردہ، اوپن سورس لینگویج ماڈلز میں ایک نمایاں چھلانگ کی نمائندگی کرتا ہے۔ 405 بلین پیرامیٹرز کے ساتھ، یہ آج تک عوامی طور پر دستیاب زبان کے سب سے بڑے ماڈل کے طور پر کھڑا ہے، جو مختلف بینچ مارکس میں کچھ جدید ترین ملکیتی ماڈلز کا مقابلہ کرتا ہے اور اسے پیچھے چھوڑتا ہے۔
کلیدی خصوصیات:
- 405 بلین پیرامیٹرز
- 128K ٹوکن سیاق و سباق کی لمبائی
- کثیر لسانی حمایت (8 زبانوں)
- ہدایات کے مطابق ورژن دستیاب ہے۔
- اوپن سورس قابل اجازت لائسنس کے ساتھ
اوپن سورس ڈومین میں اس طرح کے طاقتور ماڈل کا اجراء گیم چینجر ہے، جو جدید ترین AI صلاحیتوں تک رسائی کو جمہوری بناتا ہے اور پوری صنعت میں جدت کو فروغ دیتا ہے۔
ماڈل آرکیٹیکچر اور ٹریننگ
یہ عمل ان پٹ ٹیکسٹ ٹوکنز کو ٹوکن ایمبیڈنگ میں تبدیل کرنے کے ساتھ شروع ہوتا ہے۔ یہ سرایت خود توجہ اور فیڈ فارورڈ نیٹ ورکس کی متعدد پرتوں سے گزرتی ہے، جس سے ماڈل متن کے اندر پیچیدہ تعلقات اور انحصار کو حاصل کر سکتا ہے۔ خودکار ضابطہ کشائی کرنے کا طریقہ کار اس کے بعد اس عمل کو مکمل کرتے ہوئے آؤٹ پٹ ٹیکسٹ ٹوکنز تیار کرتا ہے۔

-
گروپ شدہ سوال کی توجہ (GQA)
Llama 3.1 گروپڈ سوال کی توجہ کا استعمال کرتا ہے، جو کہ ایک اہم اصلاحی تکنیک ہے جس کا پچھلے جواب میں مکمل طور پر احاطہ نہیں کیا گیا ہے۔ آئیے اس کو مزید تفصیل سے دیکھیں:
گروپڈ کوئوری اٹینشن (جی کیو اے) ملٹی ہیڈ توجہ کا ایک قسم ہے جس کا مقصد کمپیوٹیشنل لاگت اور قیاس کے دوران میموری کے استعمال کو کم کرنا ہے، خاص طور پر طویل ترتیب کے لیے۔ Llama 3.1 405B ماڈل میں، GQA کو 8 کلیدی قدر والے ہیڈز کے ساتھ لاگو کیا گیا ہے۔
یہاں ہے GQA کیسے کام کرتا ہے:
- ہر توجہ کے سر کے لیے الگ الگ کلید اور قدر کے تخمینے رکھنے کے بجائے، GQA ایک ہی کلید اور ویلیو ہیڈز کا اشتراک کرنے کے لیے متعدد استفسار کے سروں کو گروپ کرتا ہے۔
- یہ گروپ بندی کلیدی اور قدر کے تخمینے میں پیرامیٹرز کی تعداد کو نمایاں طور پر کم کرتی ہے، جس سے ماڈل کے سائز چھوٹے اور تیز تر اندازہ ہوتا ہے۔
- توجہ کی گنتی کا اظہار اس طرح کیا جا سکتا ہے:
Attention(Q, K, V) = softmax(QK^T / sqrt(d_k))V
جہاں Q کو g گروپوں میں تقسیم کیا گیا ہے، اور K اور V کے سر Q سے کم ہیں۔
Llama 3.1 405B میں GQA کے فوائد میں شامل ہیں:
- یادداشت کے اثرات میں کمی: کم کلید اور قدر کے تخمینے کا مطلب ہے کہ ماڈل پیرامیٹرز کو ذخیرہ کرنے کے لیے کم میموری کی ضرورت ہے۔
- تیز تر اندازہ: کلیدی اور قدر کے تخمینے کے لیے درکار کم حسابات کے ساتھ، انفرنس کی رفتار بہتر ہوتی ہے۔
- کارکردگی کو برقرار رکھا: پیرامیٹرز میں کمی کے باوجود، GQA کو بہت سے کاموں میں معیاری ملٹی ہیڈ توجہ کے مقابلے کی کارکردگی کو برقرار رکھنے کے لیے دکھایا گیا ہے۔
-
توسیعی سیاق و سباق کے لیے دو مراحل کی پری ٹریننگ
مضمون میں 128K ٹوکن سیاق و سباق کی ونڈو کو حاصل کرنے کے لیے دو مراحل پر مشتمل پری ٹریننگ کے عمل کا ذکر کیا گیا ہے۔ یہ Llama 3.1 405B کی صلاحیتوں کا ایک اہم پہلو ہے:
مرحلہ 1: 8K ٹوکنز پر ابتدائی پری ٹریننگ
- ماڈل کو سب سے پہلے 8K ٹوکن تک کی ترتیب پر تربیت دی جاتی ہے۔
- یہ مرحلہ ماڈل کو عام زبان کی تفہیم اور نسل کی صلاحیتوں کو سیکھنے کی اجازت دیتا ہے۔
مرحلہ 2: سیاق و سباق کی توسیع کے لیے جاری پری ٹریننگ
- ابتدائی تربیت کے بعد، ماڈل نے سیاق و سباق کی لمبائی کو 128K ٹوکن تک بڑھانے کے لیے پہلے سے تربیت جاری رکھی۔
- اس مرحلے میں مختصر سیاق و سباق کو سنبھالنے کی صلاحیت کو کھوئے بغیر ماڈل کو لمبے سلسلے کو عام کرنے میں مدد کے لیے احتیاط سے تیار کردہ تربیتی نظام شامل ہیں۔
-
ملٹی موڈل صلاحیتیں۔
جب کہ پچھلا جواب ملٹی موڈل صلاحیتوں کو چھوتا تھا، ہم اس بات کو بڑھا سکتے ہیں کہ Llama 3.1 405B اسے کیسے نافذ کرتا ہے:
ساختی نقطہ نظر:
- Llama 3.1 405B مختلف طریقوں (مثال کے طور پر، تصاویر، تقریر) کے لیے الگ الگ انکوڈرز استعمال کرتا ہے۔
- یہ انکوڈر مختلف طریقوں سے ان پٹ کو ایک مشترکہ سرایت کی جگہ میں تبدیل کرتے ہیں جسے زبان کا ماڈل سمجھ سکتا ہے۔
زبان کے ماڈل کے ساتھ انضمام:
- ان خصوصی انکوڈرز کے آؤٹ پٹس کو پھر مرکزی زبان کے ماڈل میں فیڈ کیا جاتا ہے۔
- یہ Llama 3.1 405B کو مختلف قسم کے ڈیٹا کو بیک وقت پروسیس کرنے اور سمجھنے کی اجازت دیتا ہے، اور اسے ایسے کاموں کو انجام دینے کے قابل بناتا ہے جن میں متعدد طریقہ کار شامل ہوتے ہیں۔
کراس اٹینشن میکانزم:
- مختلف طریقوں کے انضمام کو سنبھالنے کے لیے، Llama 3.1 405B ممکنہ طور پر کراس اٹینشن میکانزم استعمال کرتا ہے۔
- یہ میکانزم ماڈل کو متن کی تخلیق یا دیگر کاموں کو انجام دیتے وقت مختلف طریقوں سے متعلقہ معلومات میں شرکت کرنے کی اجازت دیتے ہیں۔
Llama 3.1 405B کی ملٹی موڈل صلاحیتیں ایپلی کیشنز کی ایک وسیع رینج کو کھولتی ہیں، جیسے:
- تصویری کیپشن اور بصری سوال کا جواب
- سیاق و سباق کی تفہیم کے ساتھ تقریر سے متن کی نقل
- متن، تصاویر، اور ممکنہ طور پر دیگر ڈیٹا کی اقسام کو یکجا کرنے والے ملٹی موڈل استدلال کے کام
تربیت کی تفصیلات
- اوور پر تربیت حاصل کی۔ 15 ٹریلین ٹوکن
- اپنی مرضی کے مطابق GPU کلسٹر کے ساتھ 39.3M GPU گھنٹے 405B ماڈل کے لیے
- کثیر لسانی صلاحیتوں کے لیے متنوع ڈیٹاسیٹ کیوریشن
ہدایات کے مطابق ورژن کو اضافی تربیت دی گئی:
- عوامی طور پر دستیاب انسٹرکشن ڈیٹاسیٹس پر اچھی طرح سے تیار کیا گیا ہے۔
- سے زیادہ 25M مصنوعی طور پر تیار کردہ مثالیں۔
- زیر نگرانی فائن ٹیوننگ (SFT) اور انسانی آراء کے ساتھ کمک سیکھنا (RLHF)
کارکردگی بزنس
جدول Llama 3.1 405B، Nemotron 4 340B Instruct، GPT-4 (0125)، GPT-4 Omni، اور Claude 3.5 Sonnet کا موازنہ کرتا ہے۔ کلیدی بینچ مارکس میں عام کام جیسے MMLU اور IFEval، کوڈ ٹاسک جیسے HumanEval اور GSM8K، اور استدلال کے کام جیسے ARC چیلنج شامل ہیں۔ ہر بینچ مارک سکور انسان نما متن کو سمجھنے اور تخلیق کرنے، پیچیدہ مسائل کو حل کرنے اور کوڈ پر عمل درآمد کرنے میں ماڈل کی صلاحیت کو ظاہر کرتا ہے۔ خاص طور پر، Llama 3.1 405B اور Claude 3.5 Sonnet کئی بینچ مارکس میں بہترین ہیں، جو عام اور ڈومین کے مخصوص دونوں کاموں میں اپنی اعلیٰ صلاحیتوں کو ظاہر کرتے ہیں۔
Llama 3.1-405B کے لیے یادداشت کے تقاضے
Llama 3.1-405B چلانے کے لیے خاطر خواہ میموری اور کمپیوٹیشنل وسائل کی ضرورت ہوتی ہے:
- GPU میموری: 405B ماڈل موثر اندازے کے لیے 80GB تک GPU میموری فی A100 GPU استعمال کر سکتا ہے۔ Tensor Parallelism کا استعمال متعدد GPUs میں بوجھ کو تقسیم کر سکتا ہے۔
- RAM: ماڈل کے میموری فوٹ پرنٹ کو سنبھالنے اور ہموار ڈیٹا پروسیسنگ کو یقینی بنانے کے لیے کم از کم 512GB سسٹم RAM کی سفارش کی جاتی ہے۔
- ذخیرہ: اس بات کو یقینی بنائیں کہ آپ کے پاس ماڈل کے وزن اور متعلقہ ڈیٹا سیٹس کے لیے SSD اسٹوریج کے کئی ٹیرا بائٹس ہیں۔ تیز رفتار SSDs تربیت اور تخمینہ کے دوران ڈیٹا تک رسائی کے اوقات کو کم کرنے کے لیے اہم ہیں۔ (لاما عی ماڈل) (گروک).
Llama 3.1-405B کے لیے انفرنس آپٹیمائزیشن تکنیک
Llama 405 جیسے 3.1B پیرامیٹر ماڈل کو موثر طریقے سے چلانے کے لیے کئی اصلاحی تکنیکوں کی ضرورت ہوتی ہے۔ مؤثر اندازے کو یقینی بنانے کے لیے یہاں کلیدی طریقے ہیں:
ا) کوانٹائزیشن: کوانٹائزیشن میں ماڈل کے وزن کی درستگی کو کم کرنا شامل ہے، جس سے میموری کے استعمال میں کمی آتی ہے اور درستگی کو نمایاں طور پر قربان کیے بغیر انفرنس کی رفتار کو بہتر بنایا جاتا ہے۔ Llama 3.1 GPUs پر کارکردگی کو بہتر بنانے کے لیے QLoRA (Quantized Low-Rank Adaptation) جیسی تکنیکوں کا استعمال کرتے ہوئے FP8 یا اس سے بھی کم درستگی کی حمایت کرتا ہے۔
مثال کوڈ:
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig model_name = "meta-llama/Meta-Llama-3.1-405B" bnb_config = BitsAndBytesConfig( load_in_8bit=True, # Change to load_in_4bit for 4-bit precision bnb_8bit_quant_type="fp8", bnb_8bit_compute_dtype=torch.float16, ) model = AutoModelForCausalLM.from_pretrained( model_name, quantization_config=bnb_config, device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained(model_name)
ب) ٹینسر متوازی: ٹینسر کی ہم آہنگی میں کمپیوٹیشن کو متوازی بنانے کے لیے ماڈل کی پرتوں کو متعدد GPUs میں تقسیم کرنا شامل ہے۔ یہ خاص طور پر لاما 3.1 جیسے بڑے ماڈلز کے لیے مفید ہے، جو وسائل کے موثر استعمال کی اجازت دیتا ہے۔
مثال کوڈ:
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline model_name = "meta-llama/Meta-Llama-3.1-405B" model = AutoModelForCausalLM.from_pretrained( model_name, device_map="auto", torch_dtype=torch.float16 ) tokenizer = AutoTokenizer.from_pretrained(model_name) nlp = pipeline("text-generation", model=model, tokenizer=tokenizer, device=0)
c) KV-کیشے کی اصلاح: کلیدی قدر (KV) کیشے کا موثر انتظام طویل سیاق و سباق کو سنبھالنے کے لیے بہت ضروری ہے۔ Llama 3.1 توسیعی سیاق و سباق کی طوالت کی حمایت کرتا ہے، جس کو آپٹمائزڈ KV-cache تکنیکوں کا استعمال کرتے ہوئے مؤثر طریقے سے منظم کیا جا سکتا ہے۔ مثال کوڈ:
# Ensure you have sufficient GPU memory to handle extended context lengths output = model.generate( input_ids, max_length=4096, # Increase based on your context length requirement use_cache=True )
تعیناتی کی حکمت عملی
Llama 3.1-405B کی تعیناتی کے لیے ہارڈ ویئر کے وسائل پر احتیاط سے غور کرنے کی ضرورت ہے۔ یہاں کچھ اختیارات ہیں:
a) کلاؤڈ پر مبنی تعیناتی: AWS (P4d مثالوں) یا Google Cloud (TPU v4) جیسے کلاؤڈ فراہم کنندگان سے ہائی-میموری GPU مثالوں کا استعمال کریں۔
مثال کوڈ:
# Example setup for AWS import boto3 ec2 = boto3.resource('ec2') instance = ec2.create_instances( ImageId='ami-0c55b159cbfafe1f0', # Deep Learning AMI InstanceType='p4d.24xlarge', MinCount=1, MaxCount=1 )
ب) آن پریمیسس تعیناتی: اعلی کارکردگی کی کمپیوٹنگ کی صلاحیتوں والی تنظیموں کے لیے، Llama 3.1 کو آن پریمیسس تعینات کرنا زیادہ کنٹرول اور ممکنہ طور پر طویل مدتی اخراجات کو کم کرنے کی پیشکش کرتا ہے۔
مثال سیٹ اپ:
# Example setup for on-premises deployment # Ensure you have multiple high-performance GPUs, like NVIDIA A100 or H100 pip install transformers pip install torch # Ensure CUDA is enabled
ج) تقسیم شدہ تخمینہ: بڑی تعیناتیوں کے لیے، ماڈل کو متعدد نوڈس میں تقسیم کرنے پر غور کریں۔
مثال کوڈ:
# Using Hugging Face's accelerate library from accelerate import Accelerator accelerator = Accelerator() model, tokenizer = accelerator.prepare(model, tokenizer)
مقدمات اور درخواستیں استعمال کریں۔
Llama 3.1-405B کی طاقت اور لچک بہت سے امکانات کو کھولتی ہے:
a) مصنوعی ڈیٹا جنریشن: چھوٹے ماڈلز کی تربیت کے لیے اعلیٰ معیار کا، ڈومین کے لیے مخصوص ڈیٹا تیار کریں۔
مثال استعمال کیس:
from transformers import pipeline generator = pipeline("text-generation", model=model, tokenizer=tokenizer) synthetic_data = generator("Generate financial reports for Q1 2023", max_length=200)
ب) علم کشید: 405B ماڈل کے علم کو چھوٹے، زیادہ قابل استعمال ماڈلز میں منتقل کریں۔
مثال کوڈ:
# Use distillation techniques from Hugging Face from transformers import DistillationTrainer, DistillationTrainingArguments training_args = DistillationTrainingArguments( output_dir="./distilled_model", per_device_train_batch_size=2, num_train_epochs=3, logging_dir="./logs", ) trainer = DistillationTrainer( teacher_model=model, student_model=smaller_model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, ) trainer.train()
c) ڈومین کے لیے مخصوص فائن ٹیوننگ: ماڈل کو خصوصی کاموں یا صنعتوں کے لیے ڈھالیں۔
مثال کوڈ:
from transformers import Trainer, TrainingArguments training_args = TrainingArguments( output_dir="./domain_specific_model", per_device_train_batch_size=1, num_train_epochs=3, ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, ) trainer.train()
یہ تکنیکیں اور حکمت عملی آپ کو Llama 3.1-405B کی مکمل صلاحیت کو بروئے کار لانے میں مدد کریں گی، موثر، توسیع پذیر، اور خصوصی AI ایپلی کیشنز کو یقینی بنائیں گی۔
مستقبل کی سمت
لاما 3.1-405B کے اجراء سے کئی شعبوں میں جدت کو تیز کرنے کا امکان ہے:
- خصوصی ڈومینز کے لیے بہتر فائن ٹیوننگ تکنیک
- زیادہ موثر اندازے کے طریقوں کی ترقی
- ماڈل کمپریشن اور ڈسٹلیشن میں ترقی
نتیجہ
Llama 3.1-405B اوپن سورس AI میں ایک اہم سنگ میل کی نمائندگی کرتا ہے، ایسی صلاحیتوں کی پیشکش کرتا ہے جو پہلے بند سورس ماڈلز کے لیے مخصوص تھیں۔
جیسا کہ ہم اس ماڈل کی طاقت کو تلاش کرنا جاری رکھتے ہیں، ذمہ داری اور اخلاقی لحاظ سے اس کے استعمال سے رجوع کرنا بہت ضروری ہے۔ ماڈل کے ساتھ فراہم کردہ ٹولز اور تحفظات ذمہ دارانہ تعیناتی کے لیے ایک فریم ورک پیش کرتے ہیں، لیکن جاری چوکسی اور کمیونٹی کا تعاون اس بات کو یقینی بنانے کے لیے کلیدی حیثیت رکھتا ہے کہ اس طاقتور ٹیکنالوجی کو معاشرے کے فائدے کے لیے استعمال کیا جائے۔
میں نے پچھلے پانچ سال خود کو مشین لرننگ اور ڈیپ لرننگ کی دلچسپ دنیا میں غرق کرتے ہوئے گزارے ہیں۔ میرے جذبے اور مہارت نے مجھے AI/ML پر خصوصی توجہ کے ساتھ 50 سے زیادہ متنوع سافٹ ویئر انجینئرنگ پراجیکٹس میں حصہ ڈالنے پر مجبور کیا ہے۔ میرے جاری تجسس نے مجھے نیچرل لینگویج پروسیسنگ کی طرف بھی کھینچا ہے، ایک ایسا شعبہ جس کو میں مزید دریافت کرنے کے لیے بے چین ہوں۔
آپ چاہیں گے
-
جب AI بینچ مارکس ماڈلز کو جھوٹ بولنا سکھاتے ہیں۔
-
کس طرح LLMs ہمیں انٹیلی جنس کی نئی تعریف کرنے پر مجبور کر رہے ہیں۔
-
کیوں بڑی زبان کے ماڈل درمیان کو بھول جاتے ہیں: AI کے پوشیدہ بلائنڈ اسپاٹ کو ننگا کرنا
-
LLMs کی یادداشت کی حدود: جب AI بہت زیادہ یاد کرتا ہے۔
-
ایل ایل ایم آسان پہیلیاں کیوں زیادہ سوچتے ہیں لیکن مشکل کو ترک کر دیتے ہیں۔
-
AI مختلف طریقے سے کام کرتا ہے جب اسے معلوم ہوتا ہے کہ اس کا تجربہ کیا جا رہا ہے، تحقیق سے پتہ چلتا ہے۔