التعلم الآلي باستخدام Rust: نظرة عامة على مكتبات علوم البيانات

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

التعلم الآلي باستخدام Rust: المكتبات والأدوات لعلوم البيانات



Rust هي لغة برمجة أنظمة تكتسب شعبية في مجال علوم البيانات والتعلم الآلي (ML). بفضل الأداء العالي، وأمان الذاكرة، وعدم وجود جامع للقمامة، أصبحت Rust بديلاً ممتازًا لـ Python في أنظمة الإنتاج حيث تكون السرعة والموثوقية أمرًا بالغ الأهمية. في هذه المقالة، سنستعرض المكتبات الرئيسية للتعلم الآلي بلغة Rust، وإمكانياتها، وأمثلة على استخدامها.



لماذا Rust للتعلم الآلي؟

تقليديًا، يتم تطوير ML باستخدام Python بسبب نظامها البيئي الغني (TensorFlow، PyTorch، scikit-learn). ومع ذلك، فإن Python لها قيود من حيث سرعة التنفيذ واستهلاك الذاكرة. تقدم Rust ما يلي:

  • أداء على مستوى C/C++ — مثالي للاستدلال عالي التحميل والتعلم على البيانات الضخمة.
  • أمان الذاكرة — يمنع المترجم تسرب البيانات وسباقات البيانات.
  • التكامل مع Python — من خلال PyO3، يمكن إنشاء إضافات Rust سريعة لرمز Python.
  • قابلية التضمين — مناسب لإنترنت الأشياء (IoT)، وخدمات الويب، والأجهزة الطرفية (edge).


المكتبات الرئيسية للتعلم الآلي بلغة Rust



1. Linfa — نظير scikit-learn

Linfa هو إطار عمل للخوارزميات الكلاسيكية للتعلم الآلي. يوفر بنية معيارية حيث يتم تنفيذ كل خوارزمية في crate منفصل. يتم دعم ما يلي:

  • الانحدار الخطي واللوجستي
  • آلة المتجهات الداعمة (SVM)
  • أشجار القرار والغابة العشوائية
  • التجميع (K-Means، DBSCAN)
  • تقليل الأبعاد (PCA)

مثال: الانحدار الخطي

use linfa::prelude::*;use linfa_linear::LinearRegression;use ndarray::Array2;

fn main() { // بيانات التدريب: X (الميزات)، y (المتغير المستهدف) let x = Array2::from_shape_vec((5, 1), vec![1.0, 2.0, 3.0, 4.0, 5.0]).unwrap(); let y = Array2::from_shape_vec((5, 1), vec![2.0, 4.0, 6.0, 8.0, 10.0]).unwrap(); let dataset = Dataset::new(x, y); let model = LinearRegression::default().fit(&dataset).unwrap(); // التنبؤ let test_x = Array2::from_shape_vec((1, 1), vec![6.0]).unwrap(); let prediction = model.predict(&test_x); println!("القيمة المتوقعة: {:?}", prediction);}


2. Burn — الشبكات العصبية والتعلم العميق

Burn هو إطار عمل حديث للتعلم العميق، مكتوب بلغة Rust. يدعم ما يلي:

  • التفاضل التلقائي
  • خلفيات مختلفة: CPU (ndarray)، GPU (CUDA، Vulkan)
  • الشبكات التلافيفية والمتكررة
  • المحسنات (Adam، SGD)

مثال: شبكة عصبية بسيطة

use burn::tensor::Tensor;use burn::nn::{Linear, Relu};use burn::optim::Adam;

fn main() { // تعريف النموذج let model = Linear::new(10, 2); let input = Tensor::random([1, 10], burn::tensor::Distribution::Normal); // الانتشار الأمامي let output = model.forward(input); println!("مخرجات الشبكة: {:?}", output);}


3. SmartCore — دورة ML كاملة

SmartCore هي مكتبة تغطي خط أنابيب ML بالكامل: من معالجة البيانات المسبقة إلى تقييم النموذج. تتضمن:

  • التطبيع، وقياس الميزات
  • التصنيف (KNN، Naive Bayes)
  • الانحدار (الخطي، التلالي)
  • مقاييس الجودة (الدقة، درجة F1)


4. Candle — إطار عمل خفيف الوزن من Hugging Face

Candle هو إطار عمل ML بسيط مع التركيز على الاستدلال. مناسب تمامًا لتشغيل النماذج على CPU والأجهزة الطرفية (edge). يدعم تحميل النماذج بتنسيق PyTorch.



أدوات العمل مع البيانات<

توصيات