Un cadre d'ingénierie logicielle pour sauter démarrer vos projets d'apprentissage automatique

La documentation complète est accessible ici.
Vous pouvez installer LOLPOP à partir de PYPI en utilisant pip :
pip install lolpop Si vous travaillez en mode Dev, vous pouvez cloner ce dépôt et installer LOLPOP par cd `` ing vers le répertoire et exécuter:
poetry install Bienvenue à LOLPOP!
LOLPOP est un cadre d'ingénierie logicielle pour les flux de travail d'apprentissage automatique.
L'objectif primordial est de fournir un cadre qui peut aider à unifier les équipes de la science des données et de l'apprentissage automatique. Nous pensons qu'en établissant un cadre standard pour les travaux d'apprentissage automatique, les équipes peuvent collaborer plus proprement et être plus productives.
Une bonne conception du système est essentielle dans le développement de logiciels et LOLPOP essaie de suivre les principes suivants. Une bonne conception du système contiendra:
De plus, les objectifs suivants ont été maintenus à l'esprit lors de la construction de lolpop:
LOLPOP a un modèle conceptuel relativement plat qui contient trois ressources principales à comprendre:
train_model . Cette méthode saurait comment prendre des données entrantes, former un modèle ou un ensemble de modèles, version de ces modèles et renvoyer le modèle gagnant. Cette méthode fonctionnerait sur plusieurs composants, tels qu'un encodeur de fonctionnalités, un entraîneur modèle, un tuner hyperparamètre, un tracker de métadonnées et un système de contrôle de version des ressources.Les composants, les pipelines et les coureurs ont de nombreux traits communs. Nous utilisons le terme intégration lors de la référence à l'ensemble des composants, des pipelines et des coureurs.
Il existe également une hiérarchie naturelle entre les composants, les pipelines et les coureurs:
LOLPOP a un flux de travail de développement simple. Nous espérons que tous trouvent qu'il est délicieux à utiliser!
Premièrement: écrivez vos propres composants ou utilisez ceux prédéfinis:
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
... Les composants peuvent ensuite être exploités dans les workflows de pipeline et de coureurs. Au lieu de se référer à des classes de composants spécifiques, ces workflows sont conçus pour utiliser des types de composants génériques, comme indiqué ci-dessous.
from lolpop . pipeline import BasePipeline
class MyTrainingPipeline ( BasePipeline ):
...
def train_model ( self , data , * args , ** kwargs ):
model = self . model_trainer . train_model ( data )
return model
...Nous configurons ensuite les classes à utiliser dans notre configuration de pipeline et de coureur, comme indiqué ci-dessous:
# 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
...
Enfin, les workflows peuvent être invoqués via le code Python:
from lolpop . extension import MyRunner
config_file = "/path/to/dev.yaml"
runner = MyRunner ( conf = config_file )
...
model = runner . train . train_model ( data )
... ou via la CLI lolpop:
lolpop run workflow MyRunner --config-file /path/to/dev.yamlSi vous êtes intéressé à développer vos propres flux de travail, c'est une bonne idée d'examiner certains des exemples fournis et également d'examiner le cadre d'extensité
Nous avons longtemps estimé que l'écosystème ML manquait d'un outil pour agir comme la colle entre toutes les différentes choses que l'on doit faire afin d'exécuter avec succès un cas d'utilisation de la production. LOLPOP est une tentative de combler cet écart - pour être cette colle. Pour plus d'informations sur l'inspiration derrière LOLPOP, veuillez lire notre blog de lancement.
Parfois, il est utile de comprendre ce qu'est un outil pour comprendre pleinement ce que c'est. La description «Framework d'ingénierie logicielle pour les workflows d'apprentissage automatique» peut être un peu obtus, il pourrait donc être utile de comprendre ce qui suit:
LOLPOP n'est pas un outil d'orchestration . En fait, vous devriez probablement utiliser un orchestrateur pour exécuter le code que vous créez avec LOLPOP. Vous devriez facilement être en mesure d'intégrer votre outil d'orchestration de choix avec LOLPOP.
LOLPOP n'est pas un outil de pipeline . Il y a plusieurs bons outils de pipeline et vous voudrez peut-être les utiliser avec LOLPOP. Par exemple, nous avons un exemple d'utilisation de Metaflow avec lolpop, pour ceux qui sont si enclins.
LOLPOP n'est pas un tracker de métadonnées, une plate-forme de formation, un attaquant d'expérience, etc. Nous pensons que vous devriez les avoir et les utiliser si vous le souhaitez. LOLPOP sera heureux de les avoir comme composants et de vous laisser les construire dans vos workflows.
LOLPOP ne fait rien , cela vous aide principalement à écrire de meilleurs flux de travail ML, plus rapidement. Il n'est pas opiné sur les outils que vous utilisez pour le faire.
QuickStart: Allez ici pour un guide QuickStart. Apprenez à installer LOLPOP et à le faire fonctionner. Exécutez votre premier flux de travail, danse et célébrez!
Guide de l'utilisateur: allez ici pour apprendre à travailler avec LOLPOP.
Intégations: allez ici pour en savoir plus sur le coureur prédéfini, les pipelines et les composants que vous pouvez utiliser pour créer vos propres workflows.
Extensions: allez ici pour apprendre tout ce que vous avez à faire pour commencer à construire vos propres coureurs, pipelines et composants.
CLI: Allez ici pour apprendre à utiliser l'interface de ligne de commande LOLPOP.
Exemples: Allez ici pour trouver quelques exemples d'utilisation de LOLPOP.
Ressources: allez ici pour savoir comment contacter l'équipe LOLPOP, contribuant à LOLPOP, etc.