Maschinelles Lernen mit Rust: Überblick über Bibliotheken für Data Science

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Maschinelles Lernen mit Rust: Moderne Bibliotheken und Werkzeuge

Das Ökosystem des maschinellen Lernens war lange Zeit ausschließlich mit Python verbunden. Rust hingegen wird aufgrund seiner Leistungsfähigkeit, Speichersicherheit und Nullkostenabstraktionen zunehmend in ML-Werkzeugen eingesetzt. In diesem Artikel betrachten wir die wichtigsten Bibliotheken für maschinelles Lernen in der Sprache Rust, mit denen sich Modelle mit einer Effizienz erstellen, trainieren und bereitstellen lassen, die für interpretierte Sprachen unerreichbar ist.



Warum Rust für maschinelles Lernen?

Rust bietet drei Hauptvorteile für ML:

  • Leistung — die Ausführungsgeschwindigkeit des Codes ist mit C/C++ vergleichbar.
  • Sicherheit — das Ownership-System schließt ganze Klassen von Speicherfehlern aus.
  • Parallelität — ein integriertes Thread-Modell ohne Datenkonflikte.

Rust versucht jedoch nicht, Python im Forschungsbereich zu ersetzen. Seine Nische ist die Produktionsumgebung, eingebettete Systeme, hochbelastete Dienste und Edge Computing.



1. Linfa — Vollständiger Satz von Algorithmen des klassischen ML

Das Projekt linfa (Analogon zu scikit-learn für Rust) bietet eine modulare Struktur für überwachte und unüberwachte Lernaufgaben. Die Bibliothek wird aktiv mit Unterstützung der Rust-ML-Community weiterentwickelt.



Hauptkomponenten von Linfa

  • linfa-clustering — K-Means, DBSCAN, Gaussian Mixture
  • linfa-linear — Lineare und logistische Regression
  • linfa-svm — Support Vector Machines
  • linfa-trees — Entscheidungsbäume und Random Forest
  • linfa-nn — Nächste-Nachbarn-Verfahren


Beispiel: Lineare Regression mit Linfa

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

fn main() { // Trainingsdaten: (x, y) let x = array![[1.0], [2.0], [3.0], [4.0]]; let y = array![2.0, 4.0, 6.0, 8.0];

// Datensatz erstellen let dataset = Dataset::new(x, y);

// Modell trainieren let model = LinearRegression::default().fit(&dataset).unwrap();

// Vorhersage für x=5 let pred = model.predict(&array![[5.0]]); println!("Vorhersage: {}", pred);}


2. Burn — Deep-Learning-Framework mit GPU-Unterstützung

Burn ist ein modernes Framework für neuronale Netze, geschrieben in Rust. Es unterstützt automatische Differentiation, Arbeit auf der GPU über WGPU und Vulkan sowie den Export nach ONNX.



Wichtige Funktionen von Burn

  • Dynamische und statische Berechnungsgraphen
  • Backends: Torch, WGPU, Ndarray, Fusion
  • Integrierte Optimierer (Adam, SGD, AdamW)
  • Unterstützung für 1D-, 2D-, 3D-Faltungen


Beispiel: Einfaches Perzeptron mit Burn

use burn::tensor::{Tensor, backend::Backend};use burn::nn::{Linear, LinearConfig};use burn::module::Module;

#[derive(Module)]struct MLP<B: Backend> { layer1: Linear<B>, layer2: Linear<B>,}

impl<B: Backend> MLP<B> { fn new(device: &B::Device) -> Self { Self { layer1: LinearConfig::new(2, 16).init(device), layer2: LinearConfig::new(16, 1).init(device), } }

fn forward(&self, input: Tensor<B, 2>) -> Tensor<B, 2> { let x = self.layer1.forward(input).relu(); self.layer2.forward(x) }}


3. Candle — Minimalistisches Framework von Hugging Face

Entwickelt vom Hugging Face Team, ist Candle auf Einfachheit und Geschwindigkeit ausgelegt. Es verwendet kein CUDA (nur CPU und Metal), was es ideal für Inferenz auf Mac- und Edge-Geräten macht.



Besonderheiten von Candle

  • Binärgröße unter 10 MB
  • Fertige Unterstützung für Modelle: LLaMA, Whisper, BERT

Empfehlungen