عتاد الذكاء الاصطناعي المحلي: الذاكرة وعرض النطاق والاستهلاك

في 17 ديسمبر 2024، خفضت NVIDIA سعر بطاقة التطوير Jetson Orin Nano من 499 إلى 249 دولارا ونشرت تحديثا برمجيا للنسخ المباعة سابقا. لم يتغير أي مكون، لكن معدل نقل الذاكرة ارتفع من 65 إلى 102 جيجابايت/ث. وبحسب قياسات المصنع، يولد نموذج Llama 3.1 بـ 8 مليارات معامل عليها منذ ذلك 19 رمزا في الثانية بدل 14. تلخص هذه الواقعة القاعدة التي تحكم عتاد الذكاء الاصطناعي المحلي: حجم الذاكرة وسرعتها يسبقان قدرة الحوسبة.

النموذج اللغوي ملف يعاد قراءته عند كل كلمة

النموذج اللغوي، وهو نوع البرمجيات التي تشغل ChatGPT أو Le Chat من Mistral، يأتي على شكل ملف يحتوي مليارات الأعداد. تسمى معاملات أو أوزانا: وهي القيم التي ضبطت أثناء التدريب، والتي تحدد الطريقة التي يسلسل بها النموذج الكلمات. والنموذج المسمى «8B» يضم 8 مليارات منها.

يشغل كل عدد مساحة تتوقف على دقته. بصيغة 16 بتا، وهي الصيغة التي توزع بها معظم النماذج، يأخذ المعامل بايتين. فثمانية مليارات معامل تساوي 16 مليار بايت، أي نحو 15 GiB (وحدة ثنائية تعرضها الأدوات). وتذكر وثائق llama.cpp، وهو محرك تنفيذ حر شائع الاستخدام لتشغيل النماذج على أجهزة عادية، 14.96 GiB لنموذج Llama 3.1 8B بهذه الصيغة.

لإنتاج رمز واحد (token)، أي جزء من كلمة، يقرأ النموذج تقريبا كل هذه المعاملات. ثم يعيد العملية للرمز التالي. فيعاد قراءة ملف حجمه 15 GiB عشرات المرات في الثانية أثناء ظهور الإجابة. وينتج عن ذلك شرطان. يجب أن يتسع الملف كله في ذاكرة سريعة، وإلا ذهب الجهاز يبحث عن الباقي على القرص وانهارت السرعة. ويحدد معدل نقل هذه الذاكرة إيقاع الإجابة.

السعة: الذاكرة التي يجب أن يتسع فيها النموذج

للحاسوب الشخصي التقليدي ذاكرتان. الذاكرة العشوائية، أو RAM، تخدم المعالج المركزي. وذاكرة الفيديو، أو VRAM، ملحومة على البطاقة الرسومية وتخدم المعالج الرسومي، GPU. والثانية أسرع بكثير، لكنها أصغر وأغلى. وبطاقة GeForce RTX 5090، أعلى بطاقة استهلاكية من NVIDIA، المطروحة منذ 30 يناير 2025 ابتداء من 1,999 دولار، تضم 32 جيجابايت من ذاكرة GDDR7. وهذا سقف: النموذج الأثقل لا يتسع على بطاقة واحدة.

تستخدم أجهزة أخرى ذاكرة موحدة، أي مخزونا واحدا يتشاركه المعالج والـ GPU. وهذا شأن شرائح Apple. بحسب المواصفات التقنية لدى Apple، يمكن تكوين Mac Studio حتى 128 جيجابايت مع شريحة M5 Max وحتى 512 جيجابايت مع M5 Ultra. وهذا أيضا مبدأ DGX Spark من NVIDIA، وهو صندوق طول ضلعه 15 سم ووزنه 1.2 كغ يجمع 128 جيجابايت من ذاكرة LPDDR5X. وتقدمه NVIDIA على أنه قادر على تنفيذ نماذج تصل إلى 200 مليار معامل.

يصبح الفارق حاسما بمجرد استهداف نموذج متوسط الحجم. نموذج من 70 مليار معامل مضغوط عند نحو 4.9 بت للمعامل يزن قرابة 43 جيجابايت، بحسب الحساب 70 مليار × 4.9 ÷ 8. لا يتسع في الـ 32 جيجابايت لبطاقة RTX 5090. لكنه يتسع في 128 جيجابايت من الذاكرة الموحدة مع ترك مساحة لما تبقى.

عرض النطاق: ما يحدد سرعة الكتابة

عرض نطاق الذاكرة هو المعدل الذي تقرأ به الشريحة ذاكرتها، ويعبر عنه بالجيجابايت في الثانية. في دليلها لتحسين الاستدلال، وهو المصطلح الدال على تنفيذ نموذج مدرب سلفا، تشرح NVIDIA أن توليد النص محدود بالذاكرة: فمعظم الوقت يذهب في نقل الأوزان والبيانات الوسيطة إلى وحدات الحوسبة، لا في الحساب.

ونستخلص من ذلك تقديرا بسيطا: العدد الأقصى من الرموز في الثانية يساوي تقريبا عرض النطاق مقسوما على وزن النموذج. ويتيح Jetson Orin Nano Super التحقق منه. يزن Llama 3.1 8B بصيغة 4 بتات نحو 4.6 جيجابايت وتقرأ البطاقة 102 جيجابايت/ث، ومن ثم سقف نظري قدره 22 رمزا في الثانية. وتقيس NVIDIA 19.1، أي 87% من السقف. وقبل التحديث، عند 65 جيجابايت/ث، كان القياس 14. لم تتبع السرعة المعدل تماما (مكسب 37% مقابل زيادة 57% في عرض النطاق)، لكن القاعدة تعطي رتبة القدر الصحيحة.

تعطي بطاقات المصنعين المعدلات الآتية. يقرأ Jetson Orin Nano Super بمعدل 102 جيجابايت/ث، ويقرأ Jetson AGX Orin، بنسختيه 32 و64 جيجابايت، بمعدل 204.8 جيجابايت/ث. ويعرض كل من Jetson AGX Thor وDGX Spark 273 جيجابايت/ث. ويبلغ Mac Studio 460 أو 614 جيجابايت/ث مع M5 Max بحسب التكوين، و1.2 تيرابايت/ث مع M5 Ultra. وترتفع RTX 5090 إلى 1,792 جيجابايت/ث، لكن على 32 جيجابايت فقط.

تفسر هذه الأرقام خيبة أمل متكررة. فالجهاز المعلن بقدرة حوسبة كبيرة لكن بذاكرة بطيئة يكتب ببطء. وعلى العكس، يبدو الجهاز المتواضع الحوسبة والسريع الذاكرة متجاوبا في المحادثة.

التكميم: عدد أقل من البتات لكل معامل

إذا كان وزن النموذج يحد من السرعة، أمكن تخفيضه. يتمثل التكميم في تخزين كل معامل على عدد أقل من البتات، 8 أو 4 بدل 16. ويذكر المبدأ بضغط صورة بصيغة JPEG: نقبل فقدانا في الدقة مقابل ملف أخف.

تنشر وثائق llama.cpp قياسات لـ Llama 3.1 8B. بصيغة 16 بتا، يبلغ الملف 14.96 GiB ويصل التوليد إلى 29 رمزا في الثانية. وبصيغة Q8_0، التي تستخدم في المتوسط 8.5 بت للمعامل، يبلغ 7.95 GiB مقابل 51 رمزا في الثانية. وبصيغة Q4_K_M، عند 4.9 بت في المتوسط، ينخفض إلى 4.58 GiB ويرتفع إلى 72 رمزا في الثانية. فيقسم الملف على 3.3 وتتضاعف سرعة الكتابة 2.5 مرة. أما قراءة السؤال فتتباطأ قليلا، من 923 إلى 822 رمزا في الثانية، لأن هذه المرحلة تعتمد على الحوسبة وفك الضغط يضيف إليها.

فقدان الجودة موجود. ويكون أشد وضوحا كلما صغر النموذج واشتد الضغط. والصيغ القريبة من 4 بتات، مثل Q4_K_M، صارت الحل الوسط الأكثر شيوعا في عمليات النشر المحلية. والنزول إلى 2 أو 3 بتات يتيح استيعاب نموذج أكبر على الجهاز نفسه، مع أخطاء أكثر، وهو ما يجب قياسه على مهامك الخاصة قبل اعتماده.

قراءة السؤال وكتابة الإجابة: سرعتان مختلفتان

لا يتعامل النموذج مع كلمات بل مع رموز، أي قطع من النص بضعة أحرف. في الفرنسية، تقابل الكلمة الشائعة رمزا أو رمزين. ويتم العمل على مرحلتين. الملء المسبق (prefill) يقرأ الطلب كله، السؤال والمستندات المرفقة، بمعالجة الرموز على التوازي: وهو يعتمد أساسا على قدرة الحوسبة. ثم يكتب التوليد الإجابة رمزا بعد رمز: وهو يعتمد على عرض النطاق.

تظهر القياسات التي نشرها مساهمو llama.cpp على شرائح Apple الفرق. على Llama 2 7B بصيغة 16 بتا، تقرأ M4 Max بـ 40 نواة رسومية 923 رمزا في الثانية وتكتب 32. وتقرأ M5 Max بالتكوين نفسه 3,158 وتكتب 37. تتضاعف القراءة 3.4 مرة، وتتقدم الكتابة بنسبة 17%. بين الشريحتين، ارتفع عرض النطاق من 546 إلى 614 جيجابايت/ث، أي 12% أكثر. الكتابة تتبع الذاكرة، والقراءة تتبع الحوسبة.

في الاستخدام، يهم الرقمان. في سؤال قصير، لا يلاحظ إلا التوليد، وفوق نحو خمسة عشر رمزا في الثانية يظهر النص أسرع مما يقرأ. أما لتلخيص تقرير من 50 صفحة، يمكن تقديره بنحو 30,000 رمز، فإن الملء المسبق هو ما يجعل المرء ينتظر: عند 900 رمز في الثانية، يلزم أكثر قليلا من نصف دقيقة قبل الكلمة الأولى، وعند 3,000 رمز في الثانية نحو عشر ثوان.

السياق يشغل ذاكرة أيضا

السياق هو كمية النص التي يأخذها النموذج في الحسبان في لحظة معينة: السؤال والمستندات المقدمة وسجل التبادل. ولكي لا يعيد حساب كل شيء عند كل رمز، يحتفظ النموذج بنتائج وسيطة لكل رمز قرأه. وهذا هو ذاكرة المفتاح والقيمة المؤقتة، أو KV cache.

تقدم Hugging Face الصيغة ومثالا. بالنسبة إلى Llama 2 7B بصيغة 16 بتا، يشغل كل رمز نحو 0.5 ميجابايت من التخزين المؤقت، بحيث تمثل 10,000 رمز قرابة 5 جيجابايت، أي ثلث وزن النموذج. ويصل دليل NVIDIA إلى رتبة القدر نفسها، نحو 2 جيجابايت لكل 4,096 رمزا. وتخفض النماذج الأحدث هذه التكلفة بتقاسم جزء من هذه البيانات بين رؤوس الانتباه، وهي تقنية تسمى grouped-query attention. وبالمواصفات المنشورة لـ Llama 3.1 8B (32 طبقة، و8 رؤوس مفتاح وقيمة بأبعاد 128)، تعطي الصيغة نفسها نحو 0.13 ميجابايت للرمز، أي 1.3 جيجابايت لكل 10,000 رمز. هذا الرقم الأخير من حسابنا.

يتضاعف هذا التخزين المؤقت بعدد المحادثات المفتوحة. عشرة أشخاص يعمل كل منهم على مستند من 10,000 رمز مع Llama 3.1 8B يستحوذون على نحو 13 جيجابايت من التخزين المؤقت، فوق 4.6 جيجابايت للنموذج. جهاز ذو 8 جيجابايت يخدم هذا النموذج لشخص واحد لن يخدمه لفريق. وتعرف محركات التنفيذ الحديثة كيف تضغط هذا التخزين المؤقت، كما تصفه Hugging Face، لكن التقدير الأولي للأحجام يبقى على هذا الأساس.

CPU وGPU وNPU

المعالج المركزي، CPU، عام الأغراض. ينفذ عمليات قليلة في الوقت نفسه ويشغل نموذجا صغيرا ببطء. أما GPU، المصمم لعرض الرسوميات، فينفذ آلاف العمليات المتماثلة على التوازي، وهو ما يطابق حساب شبكة عصبية. وهو من ينفذ اليوم الغالبية العظمى من النماذج اللغوية.

وحدة المعالجة العصبية، NPU، دارة متخصصة في عمليات الشبكات العصبية ومصممة لتستهلك القليل. تشترط Microsoft أكثر من 40 TOPS، أي 40,000 مليار عملية في الثانية، كي يحمل الحاسوب تسمية Copilot+ PC. وتوضح وثائقها أن كثيرا من وحدات NPU لا تعالج إلا أعدادا صحيحة منخفضة الدقة، مثل INT8، وأن النماذج يجب تحويلها لتعمل عليها. وتناسب NPU مهام خفيفة ومستمرة، كالترجمة الفورية أو تمويه الخلفية في مؤتمرات الفيديو. وبالنسبة إلى نموذج لغوي، تبقى خاضعة لعرض نطاق باقي الشريحة.

لذلك يقرأ رقم TOPS بحذر. تعلن NVIDIA عن 67 TOPS لـ Jetson Orin Nano Super موضحة أنها TOPS من نوع «sparse»، وهو نمط حساب يفترض أن جزءا من العمليات يمكن تخطيه. وفي النمط الكثيف، ينخفض الرقم إلى 33. ولا يخبرنا أي منهما بالسرعة التي ستكتب بها البطاقة إجابة.

ثلاثة أحجام للنماذج، وأجهزة عدة

التقديرات التالية تطبق قاعدة عرض النطاق مقسوما على وزن النموذج. وهي سقوف نظرية حسبناها بأنفسنا انطلاقا من بطاقات المصنعين. والسرعة الفعلية تبقى دونها: وعلى Jetson، بلغت 87% منها.

نموذج من 8 مليارات معامل بصيغة 4 بتات، نحو 4.6 جيجابايت، يتسع في جميع الأجهزة المذكورة. يشغله Jetson Orin Nano Super، بذاكرة 8 جيجابايت واستهلاك من 7 إلى 25 واط، بمعدل 19 رمزا في الثانية مقيسة، مع هامش ضئيل للسياق. وسيكون سقف RTX 5090 قريبا من 390 رمزا في الثانية. ولشخص واحد، تكفي البطاقة المدمجة. وبالنسبة إلى عدة مستخدمين متزامنين، تنقص الذاكرة قبل السرعة.

نموذج من 20 إلى 35 مليار معامل يزن من 12 إلى 21 جيجابايت بصيغة 4 بتات. يتسع في RTX 5090 كما في Jetson AGX Orin بسعة 64 جيجابايت. وعلى هذا الأخير، عند 204.8 جيجابايت/ث، يبلغ سقف نموذج حجمه 20 جيجابايت نحو 10 رموز في الثانية؛ وعلى RTX 5090، نحو 90.

نموذج من 70 مليار معامل بصيغة 4 بتات، نحو 43 جيجابايت، لا يتسع على RTX 5090. على DGX Spark بمعدل 273 جيجابايت/ث، سقفه نحو 6 رموز في الثانية. وعلى Mac Studio M5 Max بمعدل 614 جيجابايت/ث، نحو 14. وعلى M5 Ultra بمعدل 1.2 تيرابايت/ث، نحو 28. تتيح السعة تحميل النموذج، ويقرر عرض النطاق ما إذا كان استخدامه ممتعا.

الاستهلاك والحرارة والضجيج

كل الكهرباء التي يستهلكها جهاز تنتهي حرارة. تبلغ القدرة الرسومية الإجمالية لـ RTX 5090 نحو 575 واط، وتطلب NVIDIA مصدر طاقة لا يقل عن 1,000 واط للحاسوب الذي يستضيفها. هذه رتبة قدر مدفأة كهربائية صغيرة، تطرد مراوح حرارتها. وفي الطرف الآخر، يعمل Jetson Orin Nano Super بين 7 و25 واط، ويعمل Jetson AGX Orin بين 15 و60 واط. أما DGX Spark فله مصدر طاقة 240 واط لشريحة 140 واط، وتعلن NVIDIA عن 35 ديسيبل (A) أثناء التشغيل. وتذكر Apple لـ Mac Studio قدرة قصوى مستمرة قدرها 480 واط.

على مدى سنة، يمكن تقدير الفارق. جهاز يستهلك 60 واط باستمرار يستخدم نحو 525 كيلوواط ساعة في السنة (60 واط × 8,760 ساعة). وعند 600 واط، يكون الاستهلاك نحو 5,260 كيلوواط ساعة. تفترض هذه الحسابات حملا ثابتا، وهو ما يبالغ في تقدير الاستهلاك الفعلي لجهاز يكون غالبا في وضع الراحة، لكنها تعطي العامل عشرة الذي يفصل بين العائلتين.

الضجيج والحرارة يحددان مكان تركيب الجهاز. فالحاسوب المزود ببطاقة ألعاب راقية مصمم لجلسات من بضع ساعات في غرفة جيدة التهوية. وإذا وضع في خزانة، خفض ترددا لحماية نفسه، ثم توقف. أما وحدات Jetson فمصممة للروبوتات والمعدات الصناعية، بنطاقات قدرة يحددها المصنع وتشغيل مطول. هذا المعيار قليل الوزن في ورقة المواصفات وكثيره بعد سنتين من التشغيل.

تحديد حجم الجهاز بأربعة حسابات

تقوم الطريقة على أربع خطوات. نحسب أولا وزن النموذج أو النماذج المختارة: عدد المعاملات مضروبا في عدد البتات لكل معامل، مقسوما على 8. ثم نضيف التخزين المؤقت للسياق، مضروبا في عدد المحادثات المتزامنة المتوقعة. ونقارن المجموع بالذاكرة المتاحة، مع إبقاء هامش للنظام. وأخيرا نقسم عرض النطاق على وزن النموذج لنحصل على سقف السرعة، ثم نتحقق من الاستهلاك والضجيج بالنظر إلى مكان التركيب.

لنأخذ فريقا من عشرة أشخاص يريد نموذجا من 30 مليار معامل بصيغة 4 بتات للعمل على مستندات من 10,000 رمز. يزن النموذج نحو 18 جيجابايت. ويقع التخزين المؤقت، بحسب البنية، بين 2 و5 جيجابايت لكل مستخدم، أي 20 إلى 50 جيجابايت للفريق. فيلزم إذن جهاز من 64 إلى 128 جيجابايت، وكتقريب أولي ما لا يقل عن 300 جيجابايت/ث من عرض النطاق لتجاوز 15 رمزا في الثانية. هذه الأرقام تقديرات؛ ولا يؤكدها إلا اختبار على الجهاز المستهدف.

هذه هي الشبكة التي تطبقها HOMN لتحديد أحجام صناديقها: الانطلاق من النماذج وعدد المستخدمين، ثم استنتاج الذاكرة والمعدل والغلاف الحراري. وورقة المواصفات التي تغفل سعة الذاكرة أو عرض النطاق لا تتيح إجراء هذا الحساب، أيا كان عدد TOPS المعروض.

كم ذاكرة يلزم لتشغيل LLM محليا؟

وزن النموذج بالبايت يساوي تقريبا عدد المعاملات مضروبا في عدد البتات لكل معامل، مقسوما على 8. نموذج من 8 مليارات معامل يزن نحو 16 جيجابايت بصيغة 16 بتا و4.6 جيجابايت بصيغة 4 بتات. ويجب أن يضاف إليه التخزين المؤقت للسياق، الذي ينمو مع طول المستندات وعدد المستخدمين المتزامنين.

لماذا يهم عرض نطاق الذاكرة في LLM أكثر من قدرة الحوسبة؟

لكتابة كل رمز، يعيد النموذج قراءة تقريبا كل معاملاته في الذاكرة. لذلك تتحدد سرعة التوليد بسقف هو عرض النطاق مقسوما على وزن النموذج. أما قدرة الحوسبة فتهم أساسا لقراءة المستندات الطويلة، وتسمى الملء المسبق.

ما هو تكميم نموذج الذكاء الاصطناعي؟

هو تخزين المعاملات على عدد أقل من البتات، مثلا 4 بدل 16. بحسب وثائق llama.cpp، ينتقل Llama 3.1 8B بذلك من 14.96 إلى 4.58 GiB ومن 29 إلى 72 رمزا في الثانية على جهاز الاختبار. وتنخفض الجودة قليلا، وأكثر في النماذج الصغيرة.

هل يكفي حاسوب بوحدة NPU لذكاء اصطناعي محلي في الشركة؟

تناسب NPU مهام خفيفة، كالنسخ الصوتي أو نموذج صغير يستخدمه شخص واحد. وهي تتقاسم الذاكرة وعرض النطاق مع باقي الشريحة، مما يحد من حجم النماذج اللغوية وسرعتها. ولخدمة فريق، تتقدم سعة الذاكرة والمعدل على TOPS المعلنة.