Skip to content

luthfiren/MLOPS_PSO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

135 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[G1 FP] MLOps : Forecasting Electricity Market

Proyek ini merupakan bagian dari Mata Kuliah PSO dan dibuat oleh :
  1. Alka Sidik Prawira
  2. Luthfi Rihadatul Fajri
  3. Razi Alvaro Arman
  4. Yeremia Maydinata Narana

Introduction

Selamat datang di proyek MLOps end-to-end ini! Proyek ini mendemonstrasikan alur lengkap Machine Learning Operations (MLOps) mulai dari data ingestion, modeling, hingga deployment web menggunakan tumpukan teknologi Python dan diotomatisasi dengan GitHub Actions untuk Continuous Integration/Continuous Deployment (CI/CD). Hasil akhirnya adalah aplikasi web berbasis Python yang siap di-deploy di Azure.

🗄️# RUN LOCALLY

Getting Started

  1. Kloning Repositori
    git clone https://github.com/luthfiren/MLOPS_PSO.git
    

Depedency Instalation

  1. Buat venv dalam kasus saya namanya "mlenv"
    python -m venv mlenv
    
  2. Aktifkan venv
    mlenv/Scripts/activate
    
  3. Install Depedensi
    pip install -r requirement.txt
    

Data Ingetion

  1. Import Data FinGrid Khusus untuk Data FinGrid, lakukan ini bila API dari pusat data masih tersedia (karena terbatas)
    python importingDataFinGrid.py
    
  2. Import Data FMI
    python importingDataFMI.py
    

Data PreProcessing

  1. Jalankan file processing data
    python replacement_of_preprocessingipynb.py
    
    Pre-processing data terbilang berhasil ketika file merged_data.csv, merged_count.json, preprocessing.log terbentuk dalam folder processed_data

Run Model Locally

  1. Jalankan Host mlflow
    mlflow server --host 0.0.0.0 --port 5001 --backend-store-uri sqlite:///mlruns.db --default-artifact-root ./mlruns
    
    Output yang diharapkan adalah muncul host dan port dari mlflow.
    INFO:waitress:Serving on http://0.0.0.0:5001
    
  2. Jalankan modelling dan mencari model terbaik File modelling.py berisi orkestrasi file yang menyambung model-model di folder model dan dicari model mana yang terbaik dengan parameternya masing-masing.
    python modelling.py
    
    Setelah itu, anda harus menunggu beberapa waktu hingga muncul:
    MLOps Pipeline selesai. Data untuk dashboard telah diperbarui.
    Pipeline timing saved to: artifacts/pipeline_timings.json
    🏃 View run Full_MLOps_Pipeline_Run at: http://localhost:5001/#/experiments/0/runs/cb7cdc9c4add4bef8b7d1554c60bc74c
    🧪 View experiment at: http://localhost:5001/#/experiments/0
    
    yang menandakan bahwa seleksi model telah selesai dan anda bisa memonitor hasil train melalui http://localhost:5001/#/experiments/0/runs/cb7cdc9c4add4bef8b7d1554c60bc74c. Selain itu, output dari modelling.py selain daripada ui dari mlflow adalah sheets latest_forecast.csv yang berisi hasil forecasting dari data praprocessing.

Run Web Locally

  1. Jalankan server flask
    python app.py
    
  2. Akses Dashboard

🤖# RUN WITH PIPELINE

  1. Input Data Data diinput bisa melalui data ingestion bisa dengan meng-input secara mandiri ke file test.csv, train.csv, dan val.csv. Lalu setelah data terdeteksi data baru (berdasarkan data terakhir) maka pipeline akan berjalan dengan sendirinya mulai dari pre-processing, modelling, dan deployment.

  2. Monitor Proses Pipeline Anda bisa melihat proses pipeline di https://github.com/luthfiren/MLOPS_PSO.git lalu tab Actions.

  3. Akses Dashboard Masih di tab Actions, jika proses pipeline sudah selesai maka akan muncul link yang nantinya anda akan diarahkan ke dashboard berbasis web.

Note

  1. Error: Jika Anda menemui error, pastikan semua dependensi terinstal dengan benar pip install -r requirements.txt. Periksa juga log di konsol Anda untuk pesan error spesifik dari Python atau Flask

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors