منصوبے کے بارے میں
برن ایک ٹینسر لائبریری اور ڈیپ لرننگ فریم ورک ہے جو Rust میں لکھا گیا ہے اور عددی کمپیوٹنگ، ٹریننگ اور انفرنس کے لیے بنایا گیا ہے۔ اس کا بیان کردہ مقصد Python ٹریننگ اسٹیک اور الگ ڈیپلائمنٹ انجن کے درمیان عام تقسیم سے بچنا ہے: ایک ہی ماڈل کوڈ کو ٹرین کیا جا سکتا ہے اور پھر پروڈکشن میں چلایا جا سکتا ہے، جسے پروجیکٹ آن ڈیوائس پرسنلائزیشن اور فیڈریٹڈ لرننگ کے لیے مفید قرار دیتا ہے۔
ڈیزائن اور ارگونومکس
- PyTorch جیسا API متحرک شکلوں اور گرافوں کے ساتھ، جو ٹینسر آپریشنز کی اسٹریمز کو JIT کمپائل کرتا ہے اور خودکار کرنل فیوژن کرتا ہے۔
- انکریمنٹل کمپائلیشن پر زور دیا گیا ہے: README کا دعویٰ ہے کہ ماڈل کوڈ میں تبدیلیاں ریلیز موڈ میں بھی 5 سیکنڈ سے کم میں دوبارہ کمپائل ہو جاتی ہیں۔
- بیک اینڈز ماڈل کوڈ تبدیل کیے بغیر تبدیل کیے جا سکتے ہیں؛ ایک ہی ایپلیکیشن میں متعدد بیک اینڈز ساتھ ساتھ موجود ہو سکتے ہیں اور ڈیوائس رن ٹائم پر `Device` کے ذریعے منتخب کی جاتی ہے۔
بیک اینڈز
- GPU: 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)۔
- CPU: CubeCL CPU بیک اینڈ، Flex، اور x86 اور Arm کے لیے LibTorch؛ Flex Wasm اور no_std کو بھی کور کرتا ہے۔
- بیک اینڈ ڈیکوریٹرز: Autodiff کسی بھی بیک اینڈ میں بیک پروپیگیشن شامل کرتا ہے؛ Fusion جہاں سپورٹ ہو کرنل فیوژن شامل کرتا ہے اور فرسٹ پارٹی ایکسیلیریٹڈ بیک اینڈز پر بطور ڈیفالٹ فعال ہوتا ہے؛ Remote (بیٹا) تقسیم شدہ کمپیوٹیشن کے لیے Iroh یا WebSocket پر کلائنٹ/سرور ایگزیکیوشن کو سپورٹ کرتا ہے۔
ٹریننگ اور انفرنس
- Ratatui پر بنایا گیا ٹرمینل ٹریننگ ڈیش بورڈ ٹریننگ اور ویلیڈیشن میٹرکس کو حقیقی وقت میں دکھاتا ہے، تیر کے بٹنوں سے نیویگیشن اور ٹریننگ لوپ سے بغیر کریش توڑنے کی صلاحیت کے ساتھ۔
- ONNX ماڈلز burn-onnx کے ذریعے درآمد کیے جا سکتے ہیں اور Burn APIs استعمال کرتے ہوئے مقامی Rust کوڈ میں تبدیل کیے جا سکتے ہیں، تاکہ وہ کسی بھی Burn بیک اینڈ پر چلیں؛ README نوٹ کرتا ہے کہ یہ کریٹ فعال ترقی میں ہے اور آپریٹر سیٹ محدود ہے۔
- PyTorch اور Safetensors فارمیٹس سے وزن Burn سے متعین ماڈلز میں لوڈ کیے جا سکتے ہیں۔
- انفرنس براؤزر میں WebAssembly کے ذریعے Flex (CPU) یا WGPU (WebGPU) استعمال کرتے ہوئے چل سکتی ہے، MNIST اور امیج کلاسیفیکیشن ڈیموز کے ساتھ۔
- بنیادی اجزاء bare-metal ایمبیڈڈ ماحول کے لیے no_std کو سپورٹ کرتے ہیں؛ فی الحال صرف Flex بیک اینڈ no_std میں کام کرتا ہے۔
ایکوسسٹم
- CubeCL: ایکسیلیریٹڈ بیک اینڈز کے پیچھے GPU کمپیوٹ لینگویج اور کمپائلر، جو آزادانہ طور پر بھی استعمال ہو سکتا ہے۔
- burn-onnx: ONNX درآمد؛ burn-store: وزن محفوظ/لوڈ اور PyTorch/Safetensors درآمد۔
- burn-vision، burn-rl، burn-dataset بالترتیب وژن، ری انفورسمنٹ لرننگ اور ڈیٹاسیٹس کے لیے۔
- پہلے سے تربیت یافتہ ماڈلز اور مثالوں کے ساتھ models ریپوزٹری؛ وقت کے ساتھ بیک اینڈز کی بینچ مارکنگ کے لیے burn-bench۔
- کمیونٹی کریٹ کی فہرست ڈیٹا لوڈنگ (polars، arrow-rs، image، hf-hub)، ٹوکنائزیشن اور NLP (tokenizers، rust-bert)، عددی لائبریریاں (ndarray، nalgebra)، کلاسیکل ML (linfa، smartcore)، انفرنس رن ٹائمز (candle، mistral.rs، ort، tract، wonnx)، LLM/RAG ٹولنگ (rig، langchain-rust)، ایمبیڈنگز اور ویکٹر سرچ (fastembed، qdrant، lancedb)، کمپیوٹر وژن (kornia-rs)، سمولیشن (rapier) اور ویژولائزیشن (rerun، plotters) کو کور کرتی ہے۔
شروعات
- Burn Book بنیادی دستاویزات ہے، جو ٹینسرز، ماڈیولز، آپٹیمائزرز اور کسٹم GPU کرنلز کو کور کرتی ہے۔
- مثالوں میں بنیادی MNIST ورک فلو، کسٹم ٹریننگ لوپ، کسٹم WGPU کرنل، CSV اور امیج ڈیٹاسیٹس، ریگریشن، کسٹم رینڈرر، براؤزر انفرنس ڈیموز، PyTorch وزن درآمد، ٹیکسٹ کلاسیفیکیشن اور ٹیکسٹ جنریشن، اور MNIST پر WGAN شامل ہیں۔
- لائسنسنگ MIT/Apache-2.0 ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.