أوزان Llama: دليل شامل لعام 2024

أوزان Llama: دليل شامل لعام 2024

مقدمة

هل سمعت كثيرًا عن أوزان Llama ولكن ليس لديك فكرة واضحة عنها؟ لا تقلق! في هذا الدليل الشامل، سنستكشف مفهوم الوزن، ونتناول محتوى وأهمية أوزان Llama، وطرق تنزيل أوزان Llama، وأكثر الطرق فعالية لاعتماد نماذج LLM — وهي الـ API. لذا، إذا كنت تريد مواكبة اتجاه أوزان Llama، تابع القراءة!

فهم مفهوم الوزن

الوزن هو مفهوم أساسي في الشبكات العصبية، بما في ذلك النماذج اللغوية القائمة على المحولات مثل Llama. الأوزان هي المعلمات القابلة للتعديل التي يتعلمها النموذج أثناء التدريب، مما يمكنه من التقاط الأنماط في البيانات والأداء الجيد في مهام معالجة اللغة الطبيعية (NLP). تنظم بنية المحول، التي أصبحت التصميم السائد لنماذج اللغة المتطورة، هذه الأوزان في هيكل محدد يسمى “الانتباه الذاتي متعدد الرؤوس”.

في نماذج المحولات، تتوزع الأوزان عبر مئات الطبقات، كل منها يتكون من العديد من الخلايا العصبية أو الوحدات. يختلف عدد المعلمات بين النماذج حسب خيارات التصميم المعماري، مثل عدد الطبقات، وأبعاد تمثيلات الإدخال والإخراج، وتعقيد آليات الانتباه. يسمح العدد الكبير من المعلمات للنموذج بالتقاط الأنماط المعقدة والفروق الدقيقة في اللغة الطبيعية، مما يسهل أداءه القوي على مجموعة واسعة من مهام NLP، من توليد النصوص إلى الإجابة على الأسئلة وغيرها. من المهم ملاحظة أنه على الرغم من أن العدد الأعلى من المعلمات يرتبط عمومًا بزيادة سعة النموذج، فإن الاستخدام الفعال لهذه المعلمات من خلال الابتكارات المعمارية واستراتيجيات التدريب وتقنيات التنظيم أمر بالغ الأهمية للأداء الأمثل والتعميم.

ما هي أوزان Llama؟

تشير أوزان Llama إلى المعلمات المستخدمة في النماذج التابعة لعائلة Llama. المناقشات الحالية حول أوزان Llama هي نتيجة لقرار Meta AI بمشاركة نماذج Llama 2 و 3 مع الجمهور. وهذا يعني أنه يمكن لأي شخص الآن الوصول إلى هذه النماذج وتنزيلها بحرية، بالإضافة إلى أدوات الترميز الخاصة بها (أدوات تقسم النص إلى أجزاء أصغر تسمى “tokens”، تشبه الكلمة) وأوزانها للاستخدام الشخصي وحتى التجاري.

الفرق بين Llama 2 و 3

بطبيعة الحال، مع ابتكار النماذج، فإن الأجيال المختلفة من Llama لها أعداد مختلفة من الأوزان. لمزيد من التفصيل، يقدم Llama 2 نماذج بثلاثة أحجام مختلفة، مع ما يقرب من 7 مليار و 13 مليار و 70 مليار معلمة على التوالي. وبالمثل، يتوفر نموذج Llama 3 في إصدارات تحتوي على 8 مليار و 70 مليار معلمة. على الرغم من أن أكبر نماذج Meta AI تحتوي على أكثر من 400 مليار معلمة، إلا أنها لا تزال قيد التدريب ولم يتم إصدارها بعد.

فهم أوزان Llama في الأكواد

Writing vocab...
[  1/291] Writing tensor tok_embeddings.weight                  | size  32000 x   4096  | type UnquantizedDataType(name='F16')
[  2/291] Writing tensor norm.weight                            | size   4096           | type UnquantizedDataType(name='F32')
[  3/291] Writing tensor output.weight                          | size  32000 x   4096  | type UnquantizedDataType(name='F16')
[  4/291] Writing tensor layers.0.attention.wq.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  5/291] Writing tensor layers.0.attention.wk.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  6/291] Writing tensor layers.0.attention.wv.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  7/291] Writing tensor layers.0.attention.wo.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  8/291] Writing tensor layers.0.attention_norm.weight         | size   4096           | type UnquantizedDataType(name='F32')
[  9/291] Writing tensor layers.0.feed_forward.w1.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 10/291] Writing tensor layers.0.feed_forward.w2.weight        | size   4096 x  11008  | type UnquantizedDataType(name='F16')
[ 11/291] Writing tensor layers.0.feed_forward.w3.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 12/291] Writing tensor layers.0.ffn_norm.weight               | size   4096           | type UnquantizedDataType(name='F32')
[ 13/291] Writing tensor layers.1.attention.wq.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 14/291] Writing tensor layers.1.attention.wk.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 15/291] Writing tensor layers.1.attention.wv.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 16/291] Writing tensor layers.1.attention.wo.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 17/291] Writing tensor layers.1.attention_norm.weight         | size   4096           | type UnquantizedDataType(name='F32')
[ 18/291] Writing tensor layers.1.feed_forward.w1.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 19/291] Writing tensor layers.1.feed_forward.w2.weight        | size   4096 x  11008  | type UnquantizedDataType(name='F16')
[ 20/291] Writing tensor layers.1.feed_forward.w3.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 21/291] Writing tensor layers.1.ffn_norm.weight               | size   4096           | type UnquantizedDataType(name='F32')
...
[283/291] Writing tensor layers.31.attention.wq.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[284/291] Writing tensor layers.31.attention.wk.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[285/291] Writing tensor layers.31.attention.wv.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[286/291] Writing tensor layers.31.attention.wo.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[287/291] Writing tensor layers.31.attention_norm.weight        | size   4096           | type UnquantizedDataType(name='F32')
[288/291] Writing tensor layers.31.feed_forward.w1.weight       | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[289/291] Writing tensor layers.31.feed_forward.w2.weight       | size   4096 x  11008  | type UnquantizedDataType(name='F16')
[290/291] Writing tensor layers.31.feed_forward.w3.weight       | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[291/291] Writing tensor layers.31.ffn_norm.weight              | size   4096           | type UnquantizedDataType(name='F32')