Optuna
Python-Bibliothek zur automatischen Optimierung von Stellgrößen. Lernt aus jedem Versuch, wo es sich lohnt weiterzusuchen und findet gute Einstellungen mit einem Bruchteil der Rechenläufe, die ein Raster bräuchte.
Offizielle Quelle: optuna.readthedocs.io
Überblick
Optuna ist eine freie Python-Bibliothek (MIT-Lizenz) zur automatischen Optimierung. Bekannt geworden ist sie in der Hyperparameter-Optimierung für maschinelles Lernen, sie ist aber nicht darauf beschränkt: Optuna optimiert jede Funktion, die aus einer Reihe von Stellgrößen eine Zahl macht ob diese Zahl die Genauigkeit eines Modells ist, die Laufzeit einer Abfrage oder die Steifigkeit einer Maschine aus einer FEM-Rechnung.
Die Idee dahinter: Wenn ein einzelner Versuch teuer ist Minuten oder Stunden Rechenzeit, darf man nicht blind ein Raster abarbeiten. Man muss aus jedem Ergebnis lernen, wo der nächste Versuch am meisten verspricht.
Funktionsweise
- Studie und Versuche: Eine Studie ist die gesamte Suche, jeder Rechenlauf darin ein Versuch (Trial). Die Zielfunktion bekommt einen Versuch, fragt darüber ihre Stellgrößen ab und gibt eine Punktzahl zurück.
- Suchraum im Code (define-by-run): Stellgrößen werden direkt in der
Zielfunktion angefordert –
suggest_float("saeule_r_mm", 50, 80)odersuggest_categorical("bauart", [...]). Der Suchraum darf dabei von früheren Entscheidungen abhängen: Wählt ein Versuch Bauart A, fragt er andere Größen ab als bei Bauart B. - Lernendes Suchverfahren: Voreingestellt ist TPE (Tree-structured Parzen Estimator). Es trennt die bisherigen Versuche in gute und schlechte, schätzt für beide Gruppen, wo ihre Stellgrößen liegen, und schlägt bevorzugt Werte vor, die eher zu den guten passen. Daneben stehen u. a. CMA-ES, Gauß-Prozesse und NSGA-II für mehrere Ziele gleichzeitig zur Wahl.
- Vorzeitiger Abbruch (Pruning): Versuche, deren Zwischenergebnisse schon schlecht aussehen, können abgebrochen werden, bevor sie Rechenzeit verbrauchen.
- Gedächtnis in der Datenbank: Eine Studie lässt sich in SQLite, PostgreSQL oder MySQL ablegen. Dadurch kann sie jederzeit fortgesetzt werden, und mehrere Prozesse oder Rechner arbeiten parallel an derselben Studie.
Stärken
- Wenig Aufwand, schnell produktiv: Eine Zielfunktion und drei Zeilen Code genügen für eine erste Suche.
- Sparsam mit teuren Versuchen: Das lernende Suchverfahren findet gute Bereiche mit deutlich weniger Läufen als Raster- oder Zufallssuche.
- Offen für Vorwissen: Bekannte gute Einstellungen lassen sich vorab einreihen
(
enqueue_trial), fremd berechnete Ergebnisse als fertige Versuche nachtragen (add_trial) das Suchverfahren lernt von ihnen wie von eigenen. - Unabhängig vom Fachgebiet: Optuna weiß nichts über die Zielfunktion. Das macht es genauso nutzbar für ML-Modelle wie für Simulationen im Maschinenbau.
Praxis bei frahost: Maschinen über Nacht entwerfen
Im Entwurfsagenten der Verbundfabrik – einem eigenen Projekt, das Varianten von Werkzeugmaschinen nachts virtuell durchrechnet ist Optuna der Motor der Suche. Jeder Versuch baut mit FreeCAD eine Maschinenvariante, prüft Geometrie und Standsicherheit bzw. rechnet die Steifigkeit mit Gmsh und CalculiX und liefert eine Punktzahl gegen den Startentwurf. Die Aufgaben sind klar getrennt:
- Optuna stellt die Zahlenwerte innerhalb einer Bauart ein – hunderte Läufe, lokal, ohne Kosten für Sprachmodelle.
- Ein Sprachmodell liest zwischendurch den Stand, engt den Suchraum ein oder weitet ihn, und schlägt eigene Entwürfe vor. Diese werden gerechnet und Optuna als fertige Versuche übergeben – die Suche lernt also auch von den Ideen des Modells.
- Die Studie liegt je Entwurfsreihe in SQLite. Jede Nachtschicht setzt dort an, wo die letzte aufgehört hat.
Bei einer kettengetriebenen Fräsraupe hat die Suche in 490 Entwürfen einen Aufbau gefunden, der 64 % mehr Seitenhalt bietet als der Startentwurf und dabei unter der Massengrenze bleibt. Ebenso aufschlussreich war eine kleine Turmfräse: Dort brachte die Suche nur rund 2 % mehr Steifigkeit – und zeigte damit, dass die Schwachstelle in Führungen und Spindel liegt, also außerhalb dessen, was die Gussform beeinflussen kann. Auch das ist ein Ergebnis, das Rechenzeit statt Prototypen kostet.
Grenzen und Abwägungen
Optuna findet das Beste innerhalb des Suchraums – liegt das Optimum am Rand, muss ein Mensch oder ein Agent entscheiden, ob die Grenzen erweitert werden dürfen. Die Qualität des Ergebnisses kann nie besser sein als die Zielfunktion: Bewertet sie das Falsche, optimiert Optuna zuverlässig das Falsche. Bei sehr vielen Stellgrößen und sehr wenigen Versuchen verliert jedes Suchverfahren an Vorsprung; dann lohnt es, den Suchraum vorher mit Fachwissen zu verkleinern. Und parallele Versuche auf einer SQLite-Datei funktionieren, stoßen aber bei vielen gleichzeitigen Prozessen an Grenzen – dafür ist eine Server-Datenbank die bessere Ablage.
Einordnung
Optuna ist die naheliegende Wahl, wenn eine Bewertung teuer ist und viele Stellgrößen im Spiel sind: leichtgewichtig, gut dokumentiert, frei und offen genug, um Fachwissen und Vorschläge anderer Systeme einzubinden.