Kerangka Kerja Rekayasa Perangkat Lunak untuk Melompat Mulai Proyek Pembelajaran Mesin Anda

Dokumentasi lengkap dapat diakses di sini.
Anda dapat menginstal LOLPOP dari PYPI menggunakan pip :
pip install lolpop Jika Anda bekerja dalam mode dev, Anda dapat mengkloning repo ini dan menginstal LOLPOP dengan cd 'ing ke direktori ini dan mengeksekusi:
poetry install Selamat datang di LOLPOP!
LOLPOP adalah kerangka kerja rekayasa perangkat lunak untuk alur kerja pembelajaran mesin.
Tujuan menyeluruh adalah untuk menyediakan kerangka kerja yang dapat membantu menyatukan ilmu data dan tim teknik pembelajaran mesin. Kami percaya dengan membangun kerangka kerja standar untuk pekerjaan pembelajaran mesin yang dapat dikolaborasi tim lebih bersih dan menjadi lebih produktif.
Desain sistem yang baik sangat penting dalam pengembangan perangkat lunak dan LOLPOP mencoba mengikuti prinsip -prinsip berikut. Desain sistem yang baik akan berisi:
Selain itu, tujuan berikut diingat saat membangun LOLPOP:
LOLPOP memiliki model konseptual yang relatif datar yang berisi tiga sumber utama untuk dipahami:
train_model . Metode ini akan tahu cara mengambil data yang masuk, melatih model atau set model, versi model tersebut, dan mengembalikan model yang menang. Metode ini akan bekerja di beberapa komponen, seperti encoder fitur, pelatih model, tuner hyperparameter, pelacak metadata, dan sistem kontrol versi sumber daya.Komponen, pipa, dan pelari memiliki banyak sifat umum. Kami menggunakan istilah integrasi saat mengacu pada set komponen, pipa, dan pelari.
Ada juga hierarki alami antara komponen, pipa, dan pelari:
LOLPOP memiliki alur kerja pengembangan langsung. Kami berharap semua merasa menyenangkan untuk digunakan!
Pertama: Tulis komponen Anda sendiri atau gunakan yang pra-built:
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
... Komponen kemudian dapat dimanfaatkan dalam alur kerja pipa dan pelari. Alih -alih mengacu pada kelas komponen tertentu, alur kerja ini dirancang untuk menggunakan jenis komponen generik, seperti yang ditunjukkan di bawah ini.
from lolpop . pipeline import BasePipeline
class MyTrainingPipeline ( BasePipeline ):
...
def train_model ( self , data , * args , ** kwargs ):
model = self . model_trainer . train_model ( data )
return model
...Kami kemudian mengonfigurasi kelas mana yang akan digunakan dalam konfigurasi pipa dan runner kami, seperti yang ditunjukkan di bawah ini:
# 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
...
Akhirnya, alur kerja dapat dipanggil melalui kode Python:
from lolpop . extension import MyRunner
config_file = "/path/to/dev.yaml"
runner = MyRunner ( conf = config_file )
...
model = runner . train . train_model ( data )
... atau melalui LOLPOP CLI:
lolpop run workflow MyRunner --config-file /path/to/dev.yamlJika Anda tertarik untuk membangun alur kerja Anda sendiri, ada baiknya melihat beberapa contoh yang disediakan dan juga melihat ke dalam kerangka kerja ekstensiblity
Kami telah lama merasa bahwa ekosistem ML tidak memiliki alat untuk bertindak sebagai lem antara semua hal yang perlu dilakukan seseorang untuk berhasil melaksanakan kasus penggunaan produksi. Lolpop adalah upaya untuk menjembatani kesenjangan itu - menjadi lem itu. Untuk informasi lebih lanjut tentang inspirasi di balik LOLPOP, silakan baca blog peluncuran kami.
Terkadang sangat membantu untuk memahami alat apa yang bukan untuk sepenuhnya memahami apa itu. Deskripsi 'Kerangka Kerja Rekayasa Perangkat Lunak untuk Alur Kerja Pembelajaran Mesin' bisa sedikit tumpul, jadi mungkin bermanfaat untuk memahami yang berikut:
LOLPOP bukan alat orkestrasi . Bahkan, Anda mungkin harus menggunakan orkestra untuk menjalankan kode yang Anda buat dengan LOLPOP. Anda harus dengan mudah dapat mengintegrasikan alat orkestrasi pilihan Anda dengan LOLPOP.
LOLPOP bukan alat pipa . Ada beberapa alat pipa yang bagus di luar sana dan Anda bahkan mungkin ingin menggunakannya dengan LOLPOP. Misalnya, kami memiliki contoh menggunakan Metaflow dengan LOLPOP, bagi mereka yang sangat cenderung.
LOLPOP bukan pelacak metadata, platform pelatihan, tacker percobaan, dll. Kami pikir Anda harus memilikinya dan menggunakannya jika Anda mau. LOLPOP akan dengan senang hati memilikinya sebagai komponen dan membiarkan Anda membangunnya menjadi alur kerja Anda.
LOLPOP tidak benar -benar melakukan apa -apa , terutama membantu Anda menulis alur kerja ML yang lebih baik, lebih cepat. Ini tidak teropini tentang alat apa yang Anda gunakan untuk melakukan itu.
QuickStart: Buka di sini untuk panduan QuickStart. Pelajari cara menginstal LOLPOP dan menjalankan dan menjalankannya. Jalankan alur kerja pertama Anda, menari, dan rayakan!
Panduan Pengguna: Buka di sini untuk mempelajari cara bekerja dengan LOLPOP.
Integrasi: Buka di sini untuk mempelajari tentang pelari, pipa, dan komponen yang sudah dibangun sebelumnya yang dapat Anda gunakan untuk membangun alur kerja Anda sendiri.
Ekstensi: Buka di sini untuk mempelajari semua yang perlu Anda lakukan untuk mulai membangun pelari, pipa, dan komponen Anda sendiri.
CLI: Buka di sini untuk mempelajari cara menggunakan antarmuka baris perintah LOLPOP.
Contoh: Buka di sini untuk menemukan beberapa contoh menggunakan LOLPOP.
Sumber Daya: Buka di sini untuk mencari tahu cara menghubungi tim LOLPOP, berkontribusi pada LOLPOP, dll.