Ein Software -Engineering -Framework zum Springen Ihrer Projekte für maschinelles Lernen

Hier kann hier auf die vollständige Dokumentation zugegriffen werden.
Sie können LOLPOP von PYPI mit pip installieren:
pip install lolpop Wenn Sie im Dev -Modus arbeiten, können Sie dieses Repo klonen und LOLPOP durch cd 'in dieses Verzeichnis und ausführen: Ausführen:
poetry install Willkommen bei LOLPOP!
LOLPOP ist ein Software -Engineering -Framework für Workflows für maschinelles Lernen.
Das übergeordnete Ziel ist es, einen Framework bereitzustellen, der dazu beitragen kann, Data Science und maschinelles Lerntechnik -Teams zu vereinen. Wir glauben, dass die Teams ein Standardrahmen für maschinelles Lernen festlegen können, das die Teams sauberer zusammenarbeiten und produktiver sein können.
Gutes Systemdesign ist für die Softwareentwicklung von entscheidender Bedeutung und LOLPOP versucht, die folgenden Prinzipien zu befolgen. Ein gutes Systemdesign enthält:
Darüber hinaus wurden die folgenden Ziele beim Aufbau von LOLPOP berücksichtigt:
LOLPOP hat ein relativ flaches konzeptionelles Modell, das drei Hauptressourcen enthält, um zu verstehen:
train_model . Diese Methode würde wissen, wie man eingehende Daten einnimmt, ein Modell oder eine Reihe von Modellen, Versionen dieser Modelle und das Gewinnmodell zurückgibt. Diese Methode würde über verschiedene Komponenten hinweg funktionieren, z. B. einen Feature -Encoder, einen Modelltrainer, einen Hyperparameter -Tuner, ein Metadaten -Tracker und einen Ressourcenversionskontrollsystem.Komponenten, Pipelines und Läufer haben viele gemeinsame Merkmale. Wir verwenden den Begriff Integration , wenn wir uns auf den Satz von Komponenten, Pipelines und Läufern beziehen.
Es gibt auch eine natürliche Hierarchie zwischen Komponenten, Pipelines und Läufern:
LOLPOP hat einen unkomplizierten Entwicklungsworkflow. Wir hoffen, dass alle es entzückend finden!
Erstens: Schreiben Sie Ihre eigenen Komponenten oder verwenden Sie vorgefertigte:
from lolpop . comonent import BaseComponent
from catboost import CatBoostRegressor , CatBoostClassifier
class CatboostModelTrainer ( BaseComponent ):
def __init__ ( problem_type = None , params = {}, * args , ** kwargs ):
super (). __init__ ( * args , ** kwargs )
if problem_type == "classification" :
self . model = CatBoostClassifier ( ** params )
elif problem_type == "regression" :
self . model = CatBoostRegressor ( ** params )
def fit ( self , data , * args , ** kwargs ):
self . model . fit ( data [ "X_train" ], data [ "y_train" ])
return self . model
... Komponenten können dann in Pipeline- und Runner -Workflows genutzt werden. Anstatt sich auf bestimmte Komponentenklassen zu beziehen, sind diese Workflows so ausgelegt, dass sie generische Komponententypen verwenden, wie unten gezeigt.
from lolpop . pipeline import BasePipeline
class MyTrainingPipeline ( BasePipeline ):
...
def train_model ( self , data , * args , ** kwargs ):
model = self . model_trainer . train_model ( data )
return model
...Wir konfigurieren dann, welche Klassen in unserer Pipeline- und Läuferkonfiguration verwendet werden sollen, wie unten gezeigt:
# runner config
pipeline :
train : MyTrainingPipeline
...
# pipelines config
train :
component :
model_trainer : CatBoostTrainer
model_trainer :
config :
training_params :
iterations : 2
depth : 2
learning_rate : 1
loss_function : RMSE
...
Schließlich können Workflows entweder über den Python -Code aufgerufen werden:
from lolpop . extension import MyRunner
config_file = "/path/to/dev.yaml"
runner = MyRunner ( conf = config_file )
...
model = runner . train . train_model ( data )
... oder über die LOLPOP CLI:
lolpop run workflow MyRunner --config-file /path/to/dev.yamlWenn Sie Ihre eigenen Workflows aufbauen möchten, ist es eine gute Idee, einige der bereitgestellten Beispiele zu untersuchen und auch das Extensiblity -Framework zu untersuchen
Wir haben lange das Gefühl, dass dem ML -Ökosystem ein Werkzeug fehlte, um als Klebstoff zwischen all den verschiedenen Dingen zu fungieren, die man tun muss, um einen Produktionsnutzungsfall erfolgreich auszuführen. LOLPOP ist ein Versuch, diese Lücke zu schließen - um dieser Kleber zu sein. Weitere Informationen zur Inspiration hinter LOLPOP finden Sie in unserem Startblog.
Manchmal ist es hilfreich zu verstehen, was ein Tool nicht ist, um vollständig zu verstehen, was es ist. Die Beschreibung "Software Engineering Framework für Workflows für maschinelles Lernen" kann etwas stumpf sein. Daher kann es hilfreich sein, Folgendes zu verstehen:
LOLPOP ist kein Orchestrierungswerkzeug . Tatsächlich sollten Sie wahrscheinlich einen Orchestrator verwenden, um Code mit LOLPOP auszuführen. Sie sollten leicht in der Lage sein, Ihr Orchestrierungswerkzeug der Wahl in LOLPOP zu integrieren.
LOLPOP ist kein Pipelining -Werkzeug . Es gibt einige gute Pipelining -Tools da draußen und Sie möchten sie vielleicht sogar mit LOLPOP verwenden. Zum Beispiel haben wir ein Beispiel für die Verwendung von Metaflow mit LOLPOP für diejenigen, die so geneigt sind.
LOLPOP ist kein Metadaten -Tracker, Trainingsplattform, Experiment -Tacker usw. Wir glauben, dass Sie diese haben und diese verwenden sollten, wenn Sie möchten. LOLPOP wird gerne diese als Komponenten haben und Sie sie in Ihre Workflows aufbauen lassen.
LOLPOP tut wirklich nichts , es hilft Ihnen hauptsächlich, bessere ML -Workflows zu schreiben, schneller. Es ist nicht geöffnet darüber, mit welchen Tools Sie das tun.
QuickStart: Gehen Sie hier, um einen QuickStart -Leitfaden zu erhalten. Erfahren Sie, wie Sie LOLPOP installieren und es zum Laufen bringen. Führen Sie Ihren ersten Workflow, tanzen Sie und feiern Sie!
Benutzerhandbuch: Gehen Sie hier, um zu erfahren, wie man mit LOLPOP arbeitet.
Integrationen: Hier erfahren Sie, ob Sie vor dem vorgefertigten Läufer, Pipelines und Komponenten erfahren, mit denen Sie Ihre eigenen Workflows erstellen können.
Erweiterungen: Hier erfahren Sie alles, was Sie tun müssen, um Ihre eigenen Läufer, Pipelines und Komponenten zu erstellen.
CLI: Gehen Sie hier, um zu erfahren, wie Sie die LOLPOP -Befehlszeilenschnittstelle verwenden.
Beispiele: Hier finden Sie einige Beispiele für die Verwendung von LOLPOP.
Ressourcen: Gehen Sie hierher, um herauszufinden, wie Sie mit dem LOLPOP -Team in Kontakt treten und zu LOLPOP usw. beitragen können.