Train.py Local Path Issue Attempt #3 #13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Название рабочего процесса CI/CD для ML проекта | |
| name: ML Pipeline CI/CD | |
| # Триггеры для запуска workflow | |
| on: | |
| push: | |
| branches: [ main, master ] | |
| pull_request: | |
| branches: [ main, master ] | |
| workflow_dispatch: # Позволяет запускать вручную | |
| # Определение заданий | |
| jobs: | |
| # Задание для проверки качества кода и обучения модели | |
| ml-pipeline: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # Шаг 1: Получение кода из репозитория | |
| - name: Checkout код | |
| uses: actions/checkout@v4 | |
| # Шаг 2: Установка Python | |
| - name: Установка Python 3.9 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.9' | |
| cache: 'pip' | |
| # Шаг 3: Установка зависимостей | |
| - name: Установка зависимостей | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install anywidget | |
| # Шаг 4: Подготовка данных | |
| - name: Подготовка данных и директорий | |
| run: | | |
| mkdir -p data reports models | |
| if [ ! -f data/iris_dataset.csv ]; then | |
| echo "Генерация датасета Iris..." | |
| python -c " | |
| from sklearn.datasets import load_iris | |
| import pandas as pd | |
| iris = load_iris() | |
| df = pd.DataFrame(iris.data, columns=iris.feature_names) | |
| df['target'] = iris.target | |
| df.to_csv('data/iris_dataset.csv', index=False) | |
| print('Датасет создан') | |
| " | |
| fi | |
| # Шаг 5: Проверка качества данных с Deepchecks | |
| - name: Проверка данных с Deepchecks | |
| run: | | |
| echo "Запуск проверки качества данных..." | |
| python check_data.py | |
| # Шаг 6: Анализ дрейфа данных с EvidentlyAI | |
| - name: Анализ дрейфа данных с EvidentlyAI | |
| run: | | |
| echo "Запуск анализа дрейфа данных..." | |
| python analyze_drift.py | |
| # Шаг 7: Обучение модели с MLflow | |
| - name: Обучение модели с MLflow | |
| run: | | |
| echo "Запуск обучения модели..." | |
| python train.py | |
| env: | |
| MLFLOW_TRACKING_URI: file:./mlruns | |
| # Шаг 8: Сохранение артефактов (отчеты, модели) | |
| - name: Сохранение артефактов | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: ml-artifacts | |
| path: | | |
| reports/ | |
| models/ | |
| data/ | |
| retention-days: 30 | |
| # Шаг 9: Публикация результатов | |
| - name: Публикация результатов | |
| if: always() | |
| run: | | |
| echo "Пайплайн завершен успешно" | |
| echo "Артефакты сохранены и доступны для скачивания" |