기계 학습 프로젝트를 시작하는 소프트웨어 엔지니어링 프레임 워크

여기에서 전체 문서에 액세스 할 수 있습니다.
pip 사용하여 PYPI에서 LOLPOP를 설치할 수 있습니다.
pip install lolpop Dev Mode에서 작업하는 경우이 디렉토리에 cd 사용 하여이 리포트를 복제하고 LOLPOP를 설치하고 실행할 수 있습니다.
poetry install lolpop에 오신 것을 환영합니다!
LOLPOP는 기계 학습 워크 플로우를위한 소프트웨어 엔지니어링 프레임 워크입니다.
가장 중요한 목표는 데이터 과학 및 기계 학습 엔지니어링 팀을 통합하는 데 도움이되는 프레임 워크를 제공하는 것입니다. 우리는 팀이보다 깨끗하게 협력하고 생산성을 높일 수있는 기계 학습 작업을위한 표준 프레임 워크를 설정함으로써 믿습니다.
좋은 시스템 설계는 소프트웨어 개발에 중요하며 LOLPOP는 다음과 같은 원칙을 따르려고합니다. 좋은 시스템 설계에는 다음이 포함됩니다.
또한 LOLPOP을 구축 할 때 다음과 같은 목표를 명심했습니다.
LOLPOP에는 상대적으로 평평한 개념적 모델이 있습니다.
train_model 있을 수 있습니다. 이 방법은 들어오는 데이터를 가져 가고 모델 또는 모델 세트를 훈련시키는 방법을 알고 있으며 모델 버전 해당 모델 및 우승 모델을 반환하는 방법을 알고 있습니다. 이 방법은 기능 인코더, 모델 트레이너, 하이퍼 파라미터 튜너, 메타 데이터 추적기 및 리소스 버전 제어 시스템과 같은 여러 구성 요소에서 작동합니다.구성 요소, 파이프 라인 및 러너에는 많은 공통된 특성이 있습니다. 우리는 구성 요소, 파이프 라인 및 러너 세트를 참조 할 때 통합이라는 용어를 사용합니다.
구성 요소, 파이프 라인 및 러너 간에는 자연 계층이 있습니다.
LOLPOP에는 간단한 개발 워크 플로가 있습니다. 우리는 모두 사용하는 것이 즐거워지기를 바랍니다!
첫째 : 자신의 구성 요소를 작성하거나 미리 작성된 구성 요소를 사용하십시오.
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
... 그런 다음 구성 요소를 파이프 라인 및 러너 워크 플로에서 활용할 수 있습니다. 특정 구성 요소 클래스를 참조하는 대신이 워크 플로우는 아래와 같이 일반적인 구성 요소 유형을 사용하도록 설계되었습니다.
from lolpop . pipeline import BasePipeline
class MyTrainingPipeline ( BasePipeline ):
...
def train_model ( self , data , * args , ** kwargs ):
model = self . model_trainer . train_model ( data )
return model
...그런 다음 아래와 같이 파이프 라인 및 러너 구성에 사용할 클래스를 구성합니다.
# 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
...
마지막으로 워크 플로우는 파이썬 코드를 통해 호출 할 수 있습니다.
from lolpop . extension import MyRunner
config_file = "/path/to/dev.yaml"
runner = MyRunner ( conf = config_file )
...
model = runner . train . train_model ( data )
... 또는 lolpop cli를 통해 :
lolpop run workflow MyRunner --config-file /path/to/dev.yaml자신의 워크 플로우를 구축하는 데 관심이 있다면 제공된 예제 중 일부를 조사하고 Extensiblity 프레임 워크를 살펴 보는 것이 좋습니다.
우리는 ML 생태계에 생산 사용 사례를 성공적으로 실행하기 위해해야 할 다양한 것들 사이의 접착제 역할을하는 도구가 부족하다고 생각했습니다. Lolpop은 그 틈새를 연결하려는 시도입니다. LOLPOP의 영감에 대한 자세한 내용은 출시 블로그를 읽으십시오.
때로는 도구가 무엇인지 완전히 이해하지 못하는 것이 무엇인지 이해하는 것이 도움이됩니다. '기계 학습 워크 플로우를위한 소프트웨어 엔지니어링 프레임 워크'에 대한 설명은 약간 둔감 할 수 있으므로 다음을 이해하는 데 도움이 될 수 있습니다.
LOLPOP는 오케스트레이션 도구가 아닙니다 . 실제로 LOLPOP로 만든 코드를 실행하기 위해 오케스트레이터를 사용해야합니다. 선택한 오케스트레이션 도구를 LOLPOP와 쉽게 통합 할 수 있어야합니다.
LOLPOP는 파이프 라인 도구가 아닙니다 . 몇 가지 좋은 파이프 라인 도구가 있으며 LOLPOP와 함께 사용하고 싶을 수도 있습니다. 예를 들어, 우리는 LOLPOP와 함께 메타 플로우를 사용하는 예를 가지고 있습니다.
LOLPOP는 메타 데이터 추적기, 교육 플랫폼, 실험 태클 등이 아닙니다. 원하는 경우 사용해야한다고 생각합니다. LOLPOP는 구성 요소로 기꺼이 보유하고 워크 플로우에 구축 할 수있게되어 기쁩니다.
LOLPOP는 실제로 아무것도하지 않으며 주로 더 나은 ML 워크 플로우를 더 빨리 쓰는 데 도움이됩니다. 어떤 도구가 그렇게하기 위해 사용하는지에 대해 구현되지 않았습니다.
QuickStart : QuickStart 가이드를 위해 여기로 이동하십시오. lolpop을 설치하고 실행하는 방법을 배우십시오. 첫 번째 워크 플로우, 춤을 추고 축하하십시오!
사용자 안내서 : LOLPOP에서 작업하는 방법을 배우려면 여기로 이동하십시오.
통합 : 여기로 이동하여 자신의 워크 플로우를 구축하는 데 사용할 수있는 사전 구축 된 러너, 파이프 라인 및 구성 요소에 대해 알아보십시오.
확장 : 러너, 파이프 라인 및 구성 요소를 구축하기 위해해야 할 일을 배우려면 여기로 이동하십시오.
CLI : LOLPOP 명령 줄 인터페이스를 사용하는 방법을 배우려면 여기로 이동하십시오.
예 : LOLPOP 사용의 몇 가지 예를 찾으려면 여기로 이동하십시오.
리소스 : LOLPOP 팀과 연락을 취하고 LOLPOP에 기여하는 방법을 알아 보려면 여기로 이동하십시오.