عن المشروع
بيرن هي مكتبة توترات وإطار تعلم عميق مكتوب بلغة رست، تهدف إلى الحوسبة الرقمية والتدريب والاستدلال. هدفها المعلن هو تجنب الانقسام المعتاد بين مجموعة تدريب بايثون ومحرك نشر منفصل: يمكن تدريب نفس كود النموذج ثم تشغيله في الإنتاج، وهو ما يقدمه المشروع كمفيد للتخصيص على الجهاز والتعلم الموحد.
التصميم وسهولة الاستخدام
- واجهة برمجة تشبه PyTorch مع أشكال ورسوم بيانية ديناميكية، بينما تقوم بتجميع تدفقات عمليات التوترات في الوقت المناسب (JIT) وتنفيذ دمج النوى تلقائيًا.
- يتم التركيز على الترجمة المتزايدة: يدعي ملف README أن تغييرات كود النموذج تعاد ترجمتها في أقل من 5 ثوانٍ حتى في وضع الإصدار.
- يمكن تبديل الخلفيات دون تغيير كود النموذج؛ يمكن أن تتعايش خلفيات متعددة في تطبيق واحد ويتم اختيار الجهاز في وقت التشغيل عبر `Device`.
الخلفيات
- وحدة معالجة الرسوميات: CUDA وROCm وMetal وVulkan وWebGPU وLibTorch (تم إهمالها اعتبارًا من الإصدار 0.22.0). يختلف التغطية حسب البائع: Nvidia (CUDA وVulkan وWebGPU وLibTorch)، AMD (ROCm وVulkan وWebGPU وLibTorch)، Apple (Metal وWebGPU وLibTorch)، Intel وQualcomm (Vulkan وWebGPU)، Wasm (WebGPU).
- وحدة المعالجة المركزية: خلفية CubeCL CPU وFlex وLibTorch لمعالجات x86 وArm؛ تغطي Flex أيضًا Wasm وno_std.
- مزخرفات الخلفية: يضيف Autodiff الانتشار العكسي إلى أي خلفية؛ يضيف Fusion دمج النوى حيثما كان مدعومًا وهو مفعل افتراضيًا على الخلفيات المتسارعة من الطرف الأول؛ يدعم Remote (بيتا) تنفيذ العميل/الخادم عبر Iroh أو WebSocket للحوسبة الموزعة.
التدريب والاستدلال
- لوحة تحكم تدريب طرفية مبنية على Ratatui تعرض مقاييس التدريب والتحقق في الوقت الفعلي، مع التنقل عبر مفاتيح الأسهم والقدرة على الخروج من حلقة التدريب دون تعطل.
- يمكن استيراد نماذج ONNX عبر burn-onnx وتحويلها إلى كود رست أصلي باستخدام واجهات برمجة بيرن، بحيث تعمل على أي خلفية بيرن؛ يلاحظ ملف README أن هذه الحزمة قيد التطوير النشط مع مجموعة محدودة من المشغلات.
- يمكن تحميل الأوزان من تنسيقات PyTorch وSafetensors في نماذج معرفة بواسطة بيرن.
- يمكن تشغيل الاستدلال في المتصفح عبر WebAssembly باستخدام Flex (وحدة المعالجة المركزية) أو WGPU (WebGPU)، مع عروض توضيحية لـ MNIST وتصنيف الصور.
- تدعم المكونات الأساسية no_std للبيئات المدمجة ذات المعدن العاري؛ حاليًا تعمل خلفية Flex فقط في no_std.
النظام البيئي
- CubeCL: لغة حوسبة وحدة معالجة الرسوميات ومترجم خلف الخلفيات المتسارعة، قابل للاستخدام بشكل مستقل.
- burn-onnx: استيراد ONNX؛ burn-store: حفظ/تحميل الأوزان واستيراد PyTorch/Safetensors.
- burn-vision وburn-rl وburn-dataset للرؤية والتعلم المعزز ومجموعات البيانات.
- مستودع نماذج مع نماذج مدربة مسبقًا وأمثلة؛ burn-bench لقياس أداء الخلفيات بمرور الوقت.
- قائمة حزم المجتمع تغطي تحميل البيانات (polars وarrow-rs وimage وhf-hub)، والترميز ومعالجة اللغة الطبيعية (tokenizers وrust-bert)، والمكتبات الرقمية (ndarray وnalgebra)، والتعلم الآلي الكلاسيكي (linfa وsmartcore)، وبيئات تشغيل الاستدلال (candle وmistral.rs وort وtract وwonnx)، وأدوات LLM/RAG (rig وlangchain-rust)، والتضمينات والبحث المتجهي (fastembed وqdrant وlancedb)، ورؤية الكمبيوتر (kornia-rs)، والمحاكاة (rapier) والتصور (rerun وplotters).
البدء
- كتاب بيرن هو الوثائق الأساسية، ويغطي التوترات والوحدات والمحسنات ونوى وحدة معالجة الرسوميات المخصصة.
- تتضمن الأمثلة سير عمل MNIST أساسي، وحلقة تدريب مخصصة، ونواة WGPU مخصصة، ومجموعات بيانات CSV والصور، والانحدار، وعارض مخصص، وعروض استدلال المتصفح، واستيراد أوزان PyTorch، وتصنيف النصوص وتوليدها، وWGAN على MNIST.
- الترخيص هو MIT/Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.