الوصف
Shumai هي مكتبة موترات قابلة للتفاضل مصممة لجافاسكريبت وتايب سكريبت، تستفيد من سرعة Bun وقوة Flashlight. تهدف إلى جعل معالجة البيانات، وتدريب النماذج، ومنطق الاستدلال المتقدم أكثر سهولة وكفاءة للمطورين ضمن بيئة جافاسكريبت. من خلال استخدام المصفوفات المكتوبة الأصلية ومترجم Just-In-Time (JIT) الخاص بـ Bun، تقدم Shumai حلاً عالي الأداء للمهام التي تتراوح من إنشاء مجموعات البيانات إلى تدريب نماذج التعلم الآلي الصغيرة.
توفر المكتبة عمليات الموترات الأساسية، والتفاضل التلقائي لحساب التدرجات، والتحويل السلس من وإلى مصفوفات جافاسكريبت الأصلية. هذا يسمح للمطورين بالعمل مع البيانات مباشرة في جافاسكريبت، وإعدادها للمصفوفات المتوافقة مع وحدات معالجة الرسومات (GPU)، ثم تدريب النماذج دون مغادرة البيئة. تم بناء بنية Shumai لتقليل الحمل الزائد، مما يسمح لجافاسكريبت بالابتعاد عن الطريق أثناء التدريب والاستدلال، خاصة بالنسبة للنماذج الأصغر.
تشمل القدرات الرئيسية أدوات المصفوفات القياسية، وإنشاء الموترات، والعمليات الرياضية، وتتبع التدرجات. يمكن للمستخدمين تمكين حساب التدرجات للموترات، وإجراء العمليات، ثم الوصول إلى التدرجات المحسوبة. توفر المكتبة أيضًا ميزات لضبط إدارة الذاكرة، مما يسمح للمستخدمين بتعديل معلمات جمع القمامة لتحسين الأداء بناءً على إمكانيات الأجهزة. علاوة على ذلك، تتضمن Shumai نظامًا لجمع الإحصائيات يمكنه تسجيل أداء العمليات إلى وحدة التحكم أو عبر HTTP، مع خيارات للتنميط المحدود وجمع تتبع المكدس.
تعتبر Shumai مفيدة بشكل خاص لمهندسي البرمجيات والباحثين الذين يعملون بالفعل ضمن بيئة جافاسكريبت ويرغبون في دمج قدرات التعلم الآلي دون منحنى تعلم حاد مرتبط بلغات أو أطر عمل أخرى. تُظهر معايير الأداء الخاصة بها مزايا كبيرة مقارنة بمكتبات مثل TensorFlow.js في عمليات مختلفة، خاصة على وحدات معالجة الرسومات Apple M1 Pro و Nvidia. المشروع تجريبي، ويتم الترحيب بالمساهمات لتحسين وظيفته واستقراره.
الميزات الأساسية لـ Shumai
مكتبة موترات سريعة وقابلة للتفاضل لجافاسكريبت وتايب سكريبت
مبنية باستخدام Bun و Flashlight لتحقيق أداء عالٍ
تدعم التفاضل التلقائي لحساب التدرجات
تحويل سلس بين الموترات ومصفوفات جافاسكريبت الأصلية
محسّنة لتدريب النماذج الصغيرة ومنطق الاستدلال المتقدم
تستفيد من المصفوفات المكتوبة الأصلية وترجمة JIT
ضبط استخدام الذاكرة لتحسين الأداء
جمع إحصائيات مدمج لتنميط العمليات
جمع إحصائيات محدودة للتنميط المعزول
برنامج تجريبي مع تطوير نشط
تدعم حسابات وحدات معالجة الرسومات (GPU) عبر الواجهات الخلفية لـ ArrayFire (CUDA على Linux، CPU على macOS)
تسجيل إحصائيات قابلة للتوسيع مع خيارات وحدة التحكم و HTTP
البدء مع Shumai
تثبيت Bun و ArrayFire: اتبع التعليمات الخاصة بالمنصة لنظامي macOS و Linux.
تثبيت Shumai: قم بتشغيل `bun install @shumai/shumai`.
استيراد Shumai: استخدم `import * as sm from '@shumai/shumai'` في كود TypeScript/JavaScript الخاص بك.
إنشاء الموترات: استخدم دوال مثل `sm.randn()` أو `sm.tensor()` لإنشاء الموترات.
إجراء العمليات: طبق عمليات رياضية مثل `matmul()`, `mul()`, و `sum()`.
تمكين التدرجات: قم بتعيين `tensor.requires_grad = true` للموترات التي تحتاج إلى تتبع التدرجات.
حساب التدرجات: استدعِ `.backward()` على موتر الخسارة لملء التدرجات.
ضبط الذاكرة: اضبط خيارات الذاكرة باستخدام `util.memoryOptions()` للأداء.
حالات استخدام Shumai
- إنشاء مجموعات البيانات
- تدريب النماذج
- منطق الاستدلال
- المعالجة المسبقة للبيانات
- نماذج البحث الأولية
- تطوير التطبيقات








