機械学習プロジェクトをジャンプするソフトウェアエンジニアリングフレームワーク

完全なドキュメントにはこちらからアクセスできます。
pipを使用して、PypiからLOLPOPをインストールできます。
pip install lolpop開発モードで作業している場合は、このレポをクローンして、このディレクトリにcd 'ingでlolpopをインストールして実行できます。
poetry install lolpopへようこそ!
lolpopは、機械学習ワークフローのソフトウェアエンジニアリングフレームワークです。
包括的な目標は、データサイエンスと機械学習エンジニアリングチームの統合に役立つフレームワークを提供することです。チームがよりきれいにコラボレーションし、より生産的になることができる機械学習作業の標準的なフレームワークを確立することにより、私たちは信じています。
優れたシステム設計はソフトウェア開発において重要であり、lolpopは次の原則に従おうとします。優れたシステム設計には次のものが含まれます。
さらに、LOLPOPを構築するときに、次の目標を念頭に置いていました。
lolpopには、理解するための3つの主要なリソースを含む比較的フラットな概念モデルがあります。
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
...
最後に、ワークフローはPythonコードを介して呼び出すことができます。
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独自のワークフローを構築することに興味がある場合は、提供された例のいくつかを調べて、拡張フレームワークを調べることをお勧めします
私たちは、MLエコシステムには、生産ユースケースを正常に実行するために必要なすべてのさまざまなことの間の接着剤として機能するツールを欠いていると長い間感じてきました。 lolpopは、そのギャップを埋める試みです - その接着剤になるためです。 lolpopの背後にあるインスピレーションの詳細については、起動ブログをお読みください。
ツールが何であるかを完全に理解するために、ツールが何であるかを理解することが役立つ場合があります。 「機械学習ワークフローのためのソフトウェアエンジニアリングフレームワーク」という説明は少し鈍角になる可能性があるため、以下を理解することは役立つかもしれません。
lolpopはオーケストレーションツールではありません。実際、lolpopで作成したコードを実行するには、おそらくオーケストレーターを使用する必要があります。選択したオーケストレーションツールをLOLPOPと簡単に統合できるはずです。
lolpopはパイプライニングツールではありません。そこにはいくつかの優れたパイプライニングツールがあり、LolPopでそれらを使用したいと思うかもしれません。たとえば、MetaflowをLolpopで使用する例があります。
lolpopはメタデータトラッカー、トレーニングプラットフォーム、実験タッカーなどではありません。必要に応じて使用する必要があると思います。 lolpopは、それらをコンポーネントとして喜んで迎え、それらをワークフローに組み込むことができます。
lolpopは実際には何もしません。主に、より良いMLワークフローをより速く書くのに役立ちます。それを行うために使用するツールについては、感染していません。
QuickStart:QuickStartガイドのためにここにアクセスしてください。 lolpopをインストールする方法を学び、実行して実行してください。最初のワークフローを実行し、踊り、祝いましょう!
ユーザーガイド:LOLPOPでの作業方法を学ぶためにここにアクセスしてください。
統合:ここにアクセスして、事前に構築されたランナー、パイプライン、および独自のワークフローを構築するために使用できるコンポーネントについて学びます。
拡張機能:ここにアクセスして、独自のランナー、パイプライン、コンポーネントの構築を開始するために必要なすべてを学びます。
CLI:ここにアクセスして、lolpopコマンドラインインターフェイスの使用方法を学びます。
例:lolpopを使用する例をいくつか見つけてください。
リソース:ここにアクセスして、lolpopチームと連絡を取り、lolpopなどに貢献します。