في السنوات الأخيرة، حققت نماذج التعلم الآلي تقدمًا مذهلاً بسرعة كبيرة. مع زيادة قدرات النماذج، ازدادت تعقيداتها بشكل متزامن - حيث تحتوي النماذج المتقدمة اليوم غالبًا على ملايين أو حتى مليارات المعلمات. لمواجهة تحديات هذا الحجم، ظهرت العديد من أنظمة الإثباتات الصفرية المعرفة، والتي تركز دائمًا على تحقيق توازن ديناميكي بين وقت الإثبات، ووقت التحقق، وحجم الإثبات.
الجدول 1: النمو الأسي لحجم معلمات النموذج
على الرغم من أن معظم الأعمال في مجال إثباتات المعرفة الصفرية تركز حاليًا على تحسين نظام الإثبات نفسه، إلا أن بُعدًا رئيسيًا غالبًا ما يتم تجاهله - وهو كيفية تقسيم النماذج الكبيرة بشكل معقول إلى وحدات فرعية أصغر وأسهل في المعالجة لإجراء الإثبات. قد تتساءل، لماذا هذه النقطة مهمة جدًا؟
دعونا نشرح ذلك بالتفصيل:
غالبًا ما يصل عدد معلمات نماذج التعلم الآلي الحديثة إلى مليارات، حتى في غياب أي معالجة تشفيرية، مما يستنزف موارد الذاكرة بشكل كبير. وفي سياق إثبات المعرفة الصفرية (Zero-Knowledge Proof, ZKP)، يتم تضخيم هذا التحدي بشكل أكبر.
يجب تحويل كل معلمة عدد عائم إلى عناصر في المجال الجبري (Arithmetic Field)، وستؤدي هذه العملية نفسها إلى زيادة استهلاك الذاكرة بحوالي 5 إلى 10 مرات. بالإضافة إلى ذلك، يتطلب الأمر أيضًا إدخال تكاليف عمليات إضافية لمحاكاة العمليات العائمة بدقة في المجال الجبري، وعادة ما تكون هذه التكاليف حوالي 5 مرات.
مجتمعة ، يمكن زيادة متطلبات الذاكرة الإجمالية للنموذج بمقدار 25 إلى 50 ضعف الحجم الأصلي. على سبيل المثال ، قد يتطلب النموذج الذي يحتوي على 1 مليار معلمة فاصلة عائمة 32 بت من 100 إلى 200 جيجابايت من الذاكرة لتخزين المعلمات المحولة وحدها. بالنظر إلى الحسابات الوسيطة وتكلفة إثبات النظام نفسه ، فإن بصمة الذاكرة الإجمالية تتجاوز بسهولة مستوى التيرابايت.
تفترض أنظمة الإثبات السائدة الحالية ، مثل Groth 16 و Plonk ، بشكل عام أنه يمكن تحميل جميع البيانات ذات الصلة في الذاكرة في نفس الوقت في تطبيقات غير محسنة. هذا الافتراض ، على الرغم من أنه ممكن من الناحية الفنية ، يمثل تحديا كبيرا في ظل ظروف الأجهزة في العالم الحقيقي ، مما يحد بشكل كبير من موارد حوسبة الإثبات المتاحة.
حل Polyhedra: zkCuda
ما هو zkCuda؟
كما هو موضح في "وثيقة تقنية zkCUDA":
zkCUDA by Polyhedra هي بيئة حوسبة خالية من المعرفة لتطوير الدوائر عالية الأداء ، مصممة لتحسين كفاءة توليد الإثبات. دون التضحية بقدرات التعبير عن الدائرة ، يمكن ل zkCUDA الاستفادة الكاملة من إمكانات التوازي الأساسية والأجهزة لتحقيق توليد سريع لإثبات ZK.
لغة zkCUDA مشابهة من حيث النحو والدلالة لـ CUDA، مما يجعلها مناسبة جداً للمطورين الذين لديهم خبرة سابقة في CUDA، كما أنها تعتمد في قاعدتها على Rust لضمان الأمان والأداء المتوازن.
بفضل zkCUDA، يمكن للمطورين أن:
بناء دوائر ZK عالية الأداء بسرعة؛
جدولة فعالة واستخدام موارد الأجهزة الموزعة، مثل GPU أو بيئات التجميع التي تدعم MPI، لتنفيذ حسابات متوازية على نطاق واسع.
لماذا zkCUDA؟
zkCuda هو إطار حوسبة عالي الأداء بدون معرفة مستوحى من حوسبة GPU التي تقسم نماذج التعلم الآلي فائقة النطاق إلى وحدات حوسبة أصغر وأكثر قابلية للإدارة (kernels) وتتيح التحكم الفعال من خلال لغة الواجهة الأمامية الشبيهة ب CUDA. يجلب هذا التصميم الفوائد الرئيسية التالية:
1. نظام إثبات المطابقة الدقيقة
يدعم zkCUDA التحليل الدقيق لكل نواة حسابية، ويقوم بمطابقة أفضل نظام لإثبات المعرفة الصفرية لها. على سبيل المثال:
للمهمات الحسابية ذات التوازي العالي، يمكن استخدام بروتوكولات مثل GKR التي تتفوق في معالجة التوازي الهيكلي؛
بالنسبة للمهام الصغيرة أو ذات الهيكل غير المنتظم، فإن أنظمة الإثبات ذات التكلفة المنخفضة مثل Groth 16 تكون أكثر ملاءمة في سيناريوهات الحساب المدمجة.
من خلال اختيار خلفية مخصصة، يمكن لـ zkCUDA تحقيق أقصى استفادة من مزايا أداء بروتوكولات ZK المختلفة.
2. جدولة الموارد بشكل أكثر ذكاءً وتحسين التوازي
تختلف احتياجات الموارد بشكل كبير بين نوى الإثبات المختلفة من حيث وحدة المعالجة المركزية والذاكرة ومدخلات/مخرجات. يمكن لـ zkCUDA تقييم استهلاك الموارد لكل مهمة بدقة، وجدولة بشكل ذكي لزيادة القدرة الإنتاجية الإجمالية.
الأهم من ذلك، أن zkCUDA يدعم توزيع المهام بين منصات الحوسبة المتنوعة - بما في ذلك وحدة المعالجة المركزية، ووحدة معالجة الرسومات، و FPGA - مما يحقق الاستخدام الأمثل لموارد الأجهزة، ويعزز بشكل كبير الأداء على مستوى النظام.
التوافق الطبيعي بين zkCuda وبروتوكول GKR
على الرغم من أن zkCuda تم تصميمه كإطار حسابي عام متوافق مع أنظمة إثبات المعرفة الصفرية المتعددة، إلا أنه يتوافق بشكل طبيعي وبدرجة عالية مع بروتوكول GKR (Goldwasser-Kalai-Rothblum) من الناحية المعمارية.
في تصميم الهيكل، يقوم zkCUDA من خلال إدخال آلية الالتزام المتعدد للاتصال بين كل نواة حساب فرعية، مما يضمن تشغيل جميع الحسابات الفرعية بناءً على بيانات مشتركة متسقة. هذه الآلية مهمة للحفاظ على كمال النظام، لكنها تجلب أيضًا تكاليف حسابية كبيرة.
بالمقارنة، يوفر بروتوكول GKR مسار بديل أكثر كفاءة. بخلاف الأنظمة التقليدية التي تتطلب من كل نواة إثباتًا كاملًا لقيودها الداخلية، يسمح GKR بالتحقق من صحة الحسابات بالتراجع من مخرجات النواة إلى المدخلات بشكل تكراري. تتيح هذه الآلية نقل صحة عبر النوى بدلاً من التحقق الكامل في كل وحدة. الفكرة الأساسية مشابهة لانتشار التدرج في تعلم الآلة، من خلال تتبع وإيصال ادعاءات الصحة عبر رسم بياني للحساب.
على الرغم من أن دمج "دلائل الإثبات" من هذا النوع في المسارات المتعددة يجلب بعض التعقيد، إلا أن هذه الآلية تشكل أساس التعاون العميق بين zkCUDA و GKR. من خلال محاذاة الخصائص الهيكلية في عملية تدريب التعلم الآلي، من المتوقع أن يحقق zkCUDA تكاملًا أكثر إحكامًا للنظام وتوليد إثباتات المعرفة الصفرية بكفاءة أعلى في سيناريوهات النماذج الكبيرة.
النتائج الأولية والاتجاهات المستقبلية
لقد أكملنا التطوير الأولي لإطار عمل zkCuda، وقمنا بإجراء اختبارات ناجحة في عدة سيناريوهات، بما في ذلك دوال التجزئة التشفيرية مثل Keccak و SHA-256، بالإضافة إلى نماذج التعلم الآلي الصغيرة.
نتطلع إلى المستقبل، ونسعى إلى إدخال سلسلة من تقنيات الهندسة الناضجة في تدريب التعلم الآلي الحديث، مثل جدولة فعالة من حيث الذاكرة (memory-efficient scheduling) وتحسين على مستوى الرسم البياني (graph-level optimization). نحن نؤمن أن دمج هذه الاستراتيجيات في عملية توليد إثباتات المعرفة الصفرية سيعزز بشكل كبير من حدود أداء النظام ومرونة التكيف.
هذه مجرد نقطة انطلاق، ستستمر zkCuda في التقدم نحو إطار إثبات عام فعال وقابل للتوسع وذو توافق عال.
المحتوى هو للمرجعية فقط، وليس دعوة أو عرضًا. لا يتم تقديم أي مشورة استثمارية أو ضريبية أو قانونية. للمزيد من الإفصاحات حول المخاطر، يُرجى الاطلاع على إخلاء المسؤولية.
آلية إثبات المستوى الأساسي لنموذج التعلم الآلي
المؤلف الأصلي: Zhiyong Fang
"كيف تأكل فيلًا؟ قضمة قضمة."
في السنوات الأخيرة، حققت نماذج التعلم الآلي تقدمًا مذهلاً بسرعة كبيرة. مع زيادة قدرات النماذج، ازدادت تعقيداتها بشكل متزامن - حيث تحتوي النماذج المتقدمة اليوم غالبًا على ملايين أو حتى مليارات المعلمات. لمواجهة تحديات هذا الحجم، ظهرت العديد من أنظمة الإثباتات الصفرية المعرفة، والتي تركز دائمًا على تحقيق توازن ديناميكي بين وقت الإثبات، ووقت التحقق، وحجم الإثبات.
الجدول 1: النمو الأسي لحجم معلمات النموذج
على الرغم من أن معظم الأعمال في مجال إثباتات المعرفة الصفرية تركز حاليًا على تحسين نظام الإثبات نفسه، إلا أن بُعدًا رئيسيًا غالبًا ما يتم تجاهله - وهو كيفية تقسيم النماذج الكبيرة بشكل معقول إلى وحدات فرعية أصغر وأسهل في المعالجة لإجراء الإثبات. قد تتساءل، لماذا هذه النقطة مهمة جدًا؟
دعونا نشرح ذلك بالتفصيل:
غالبًا ما يصل عدد معلمات نماذج التعلم الآلي الحديثة إلى مليارات، حتى في غياب أي معالجة تشفيرية، مما يستنزف موارد الذاكرة بشكل كبير. وفي سياق إثبات المعرفة الصفرية (Zero-Knowledge Proof, ZKP)، يتم تضخيم هذا التحدي بشكل أكبر.
يجب تحويل كل معلمة عدد عائم إلى عناصر في المجال الجبري (Arithmetic Field)، وستؤدي هذه العملية نفسها إلى زيادة استهلاك الذاكرة بحوالي 5 إلى 10 مرات. بالإضافة إلى ذلك، يتطلب الأمر أيضًا إدخال تكاليف عمليات إضافية لمحاكاة العمليات العائمة بدقة في المجال الجبري، وعادة ما تكون هذه التكاليف حوالي 5 مرات.
مجتمعة ، يمكن زيادة متطلبات الذاكرة الإجمالية للنموذج بمقدار 25 إلى 50 ضعف الحجم الأصلي. على سبيل المثال ، قد يتطلب النموذج الذي يحتوي على 1 مليار معلمة فاصلة عائمة 32 بت من 100 إلى 200 جيجابايت من الذاكرة لتخزين المعلمات المحولة وحدها. بالنظر إلى الحسابات الوسيطة وتكلفة إثبات النظام نفسه ، فإن بصمة الذاكرة الإجمالية تتجاوز بسهولة مستوى التيرابايت.
تفترض أنظمة الإثبات السائدة الحالية ، مثل Groth 16 و Plonk ، بشكل عام أنه يمكن تحميل جميع البيانات ذات الصلة في الذاكرة في نفس الوقت في تطبيقات غير محسنة. هذا الافتراض ، على الرغم من أنه ممكن من الناحية الفنية ، يمثل تحديا كبيرا في ظل ظروف الأجهزة في العالم الحقيقي ، مما يحد بشكل كبير من موارد حوسبة الإثبات المتاحة.
حل Polyhedra: zkCuda
ما هو zkCuda؟
كما هو موضح في "وثيقة تقنية zkCUDA": zkCUDA by Polyhedra هي بيئة حوسبة خالية من المعرفة لتطوير الدوائر عالية الأداء ، مصممة لتحسين كفاءة توليد الإثبات. دون التضحية بقدرات التعبير عن الدائرة ، يمكن ل zkCUDA الاستفادة الكاملة من إمكانات التوازي الأساسية والأجهزة لتحقيق توليد سريع لإثبات ZK.
لغة zkCUDA مشابهة من حيث النحو والدلالة لـ CUDA، مما يجعلها مناسبة جداً للمطورين الذين لديهم خبرة سابقة في CUDA، كما أنها تعتمد في قاعدتها على Rust لضمان الأمان والأداء المتوازن.
بفضل zkCUDA، يمكن للمطورين أن:
لماذا zkCUDA؟
zkCuda هو إطار حوسبة عالي الأداء بدون معرفة مستوحى من حوسبة GPU التي تقسم نماذج التعلم الآلي فائقة النطاق إلى وحدات حوسبة أصغر وأكثر قابلية للإدارة (kernels) وتتيح التحكم الفعال من خلال لغة الواجهة الأمامية الشبيهة ب CUDA. يجلب هذا التصميم الفوائد الرئيسية التالية:
1. نظام إثبات المطابقة الدقيقة
يدعم zkCUDA التحليل الدقيق لكل نواة حسابية، ويقوم بمطابقة أفضل نظام لإثبات المعرفة الصفرية لها. على سبيل المثال:
من خلال اختيار خلفية مخصصة، يمكن لـ zkCUDA تحقيق أقصى استفادة من مزايا أداء بروتوكولات ZK المختلفة.
2. جدولة الموارد بشكل أكثر ذكاءً وتحسين التوازي
تختلف احتياجات الموارد بشكل كبير بين نوى الإثبات المختلفة من حيث وحدة المعالجة المركزية والذاكرة ومدخلات/مخرجات. يمكن لـ zkCUDA تقييم استهلاك الموارد لكل مهمة بدقة، وجدولة بشكل ذكي لزيادة القدرة الإنتاجية الإجمالية.
الأهم من ذلك، أن zkCUDA يدعم توزيع المهام بين منصات الحوسبة المتنوعة - بما في ذلك وحدة المعالجة المركزية، ووحدة معالجة الرسومات، و FPGA - مما يحقق الاستخدام الأمثل لموارد الأجهزة، ويعزز بشكل كبير الأداء على مستوى النظام.
التوافق الطبيعي بين zkCuda وبروتوكول GKR
على الرغم من أن zkCuda تم تصميمه كإطار حسابي عام متوافق مع أنظمة إثبات المعرفة الصفرية المتعددة، إلا أنه يتوافق بشكل طبيعي وبدرجة عالية مع بروتوكول GKR (Goldwasser-Kalai-Rothblum) من الناحية المعمارية.
في تصميم الهيكل، يقوم zkCUDA من خلال إدخال آلية الالتزام المتعدد للاتصال بين كل نواة حساب فرعية، مما يضمن تشغيل جميع الحسابات الفرعية بناءً على بيانات مشتركة متسقة. هذه الآلية مهمة للحفاظ على كمال النظام، لكنها تجلب أيضًا تكاليف حسابية كبيرة.
بالمقارنة، يوفر بروتوكول GKR مسار بديل أكثر كفاءة. بخلاف الأنظمة التقليدية التي تتطلب من كل نواة إثباتًا كاملًا لقيودها الداخلية، يسمح GKR بالتحقق من صحة الحسابات بالتراجع من مخرجات النواة إلى المدخلات بشكل تكراري. تتيح هذه الآلية نقل صحة عبر النوى بدلاً من التحقق الكامل في كل وحدة. الفكرة الأساسية مشابهة لانتشار التدرج في تعلم الآلة، من خلال تتبع وإيصال ادعاءات الصحة عبر رسم بياني للحساب.
على الرغم من أن دمج "دلائل الإثبات" من هذا النوع في المسارات المتعددة يجلب بعض التعقيد، إلا أن هذه الآلية تشكل أساس التعاون العميق بين zkCUDA و GKR. من خلال محاذاة الخصائص الهيكلية في عملية تدريب التعلم الآلي، من المتوقع أن يحقق zkCUDA تكاملًا أكثر إحكامًا للنظام وتوليد إثباتات المعرفة الصفرية بكفاءة أعلى في سيناريوهات النماذج الكبيرة.
النتائج الأولية والاتجاهات المستقبلية
لقد أكملنا التطوير الأولي لإطار عمل zkCuda، وقمنا بإجراء اختبارات ناجحة في عدة سيناريوهات، بما في ذلك دوال التجزئة التشفيرية مثل Keccak و SHA-256، بالإضافة إلى نماذج التعلم الآلي الصغيرة.
نتطلع إلى المستقبل، ونسعى إلى إدخال سلسلة من تقنيات الهندسة الناضجة في تدريب التعلم الآلي الحديث، مثل جدولة فعالة من حيث الذاكرة (memory-efficient scheduling) وتحسين على مستوى الرسم البياني (graph-level optimization). نحن نؤمن أن دمج هذه الاستراتيجيات في عملية توليد إثباتات المعرفة الصفرية سيعزز بشكل كبير من حدود أداء النظام ومرونة التكيف.
هذه مجرد نقطة انطلاق، ستستمر zkCuda في التقدم نحو إطار إثبات عام فعال وقابل للتوسع وذو توافق عال.
رابط النص الأصلي