Un marco de ingeniería de software para comenzar sus proyectos de aprendizaje automático

Se puede acceder a la documentación completa aquí.
Puedes instalar lolpop desde pypi usando pip :
pip install lolpop Si está trabajando en modo de desarrollo, puede clonar este repositorio e instalar LOLPOP mediante cd 'en el directorio y ejecutando:
poetry install ¡Bienvenido a Lolpop!
LOLPOP es un marco de ingeniería de software para flujos de trabajo de aprendizaje automático.
El objetivo general es proporcionar un marco que pueda ayudar a unificar a los equipos de ingeniería de ciencias de datos y aprendizaje automático. Creemos que al establecer un marco estándar para el trabajo de aprendizaje automático que los equipos pueden colaborar más limpiamente y ser más productivos.
El buen diseño del sistema es crítico en el desarrollo de software y Lolpop intenta seguir los siguientes principios. Un buen diseño del sistema contendrá:
Además, los siguientes objetivos se tenían en cuenta al construir lolpop:
Lolpop tiene un modelo conceptual relativamente plano que contiene tres recursos principales para comprender:
train_model . Este método sabría cómo tomar datos entrantes, entrenar un modelo o un conjunto de modelos, versiones de esos modelos y devolver el modelo ganador. Este método funcionaría en varios componentes, como un codificador de características, entrenador de modelos, sintonizador de hiperparameter, rastreador de metadatos y sistema de control de versiones de recursos.Los componentes, las tuberías y los corredores tienen muchos rasgos comunes. Utilizamos el término integración al referirnos al conjunto de componentes, tuberías y corredores.
También hay una jerarquía natural entre componentes, tuberías y corredores:
Lolpop tiene un flujo de trabajo de desarrollo directo. ¡Esperamos que todos encuentren delicioso de usar!
Primero: escriba sus propios componentes o use los preconstruidos:
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
... Los componentes se pueden aprovechar en los flujos de trabajo de tuberías y corredores. En lugar de referirse a clases de componentes específicas, estos flujos de trabajo están diseñados para usar tipos de componentes genéricos, como se muestra a continuación.
from lolpop . pipeline import BasePipeline
class MyTrainingPipeline ( BasePipeline ):
...
def train_model ( self , data , * args , ** kwargs ):
model = self . model_trainer . train_model ( data )
return model
...Luego configuramos qué clases usar en nuestra Configuración de tuberías y corredores, como se muestra a continuación:
# 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
...
Finalmente, los flujos de trabajo se pueden invocar a través del código Python:
from lolpop . extension import MyRunner
config_file = "/path/to/dev.yaml"
runner = MyRunner ( conf = config_file )
...
model = runner . train . train_model ( data )
... o a través del cli lolpop:
lolpop run workflow MyRunner --config-file /path/to/dev.yamlSi está interesado en desarrollar sus propios flujos de trabajo, es una buena idea analizar algunos de los ejemplos proporcionados y también analizar el marco de extensible
Durante mucho tiempo consideramos que el ecosistema ML carecía de una herramienta para actuar como el pegamento entre todas las diversas cosas que uno debe hacer para ejecutar con éxito un caso de uso de producción. Lolpop es un intento de cerrar esa brecha, ser ese pegamento. Para obtener más información sobre la inspiración detrás de LOLPOP, lea nuestro blog de lanzamiento.
A veces es útil comprender qué no es una herramienta para comprender completamente qué es. La descripción 'Marco de ingeniería de software para flujos de trabajo de aprendizaje automático' puede ser un poco obtuso, por lo que puede ser útil comprender lo siguiente:
Lolpop no es una herramienta de orquestación . De hecho, probablemente debería usar un orquestador para ejecutar el código que crea con Lolpop. Debería poder integrar fácilmente su herramienta de orquestación de elección con Lolpop.
Lolpop no es una herramienta de tuberías . Hay varias buenas herramientas de canalización e incluso es posible que desee usarlas con Lolpop. Por ejemplo, tenemos un ejemplo de uso de metaflow con lolpop, para aquellos que están tan inclinados.
LOLPOP no es un rastreador de metadatos, plataforma de entrenamiento, tacleador de experimentos, etc. Creemos que deberías tener y usarlos si quieres. Lolpop estará encantado de tenerlos como componentes y permitirle incorporarlos a sus flujos de trabajo.
Lolpop realmente no hace nada , principalmente te ayuda a escribir mejores flujos de trabajo ML, más rápido. No es opinatorio sobre qué herramientas usas para hacer eso.
QuickStart: vaya aquí para una guía QuickStart. Aprende a instalar LOLPOP y ponlo en funcionamiento. ¡Dirige tu primer flujo de trabajo, baila y celebra!
Guía del usuario: Vaya aquí para aprender a trabajar con Lolpop.
Integraciones: vaya aquí para aprender sobre corredores, tuberías y componentes preconstruidos que puede usar para construir sus propios flujos de trabajo.
Extensiones: Vaya aquí para aprender todo lo que necesita hacer para comenzar a construir sus propios corredores, tuberías y componentes.
CLI: Vaya aquí para aprender a usar la interfaz Lolpop Command Line.
Ejemplos: Vaya aquí para encontrar algunos ejemplos de uso de lolpop.
Recursos: Vaya aquí para averiguar cómo ponerse en contacto con el equipo de Lolpop, contribuyendo a Lolpop, etc.