| from dataclasses import dataclass |
| import os |
| from src.constants import ARTIFACT_FOLDER, DATA_PATH,DATA_ARTIFACT_FOLDER_NAME,DATA_ARTIFACT_FILE_NAME,VECTOR_STORE_SAVING_DIR_PATH,SCHEMA_FILE_PATH,DATA_VALIDATION_ARTIFACT_DIR_NAME,DATA_VALIDATION_ARTIFACT_FILE_NAME,IMAGE_DOWNLOAD_DIR,RANDOM_STATE,TRANSFORMED_ARTIFACT_DIR,TEST_AND_VAL_SPLIT,TRAIN_FILE_NAME,TEST_FILE_NAME,VAL_FILE_NAME |
| @dataclass |
| class DataIngestionConfig: |
| data_path:str=DATA_PATH |
| data_artifact_folder_name:str=DATA_ARTIFACT_FOLDER_NAME |
| data_artifact_file_name:str=DATA_ARTIFACT_FILE_NAME |
|
|
|
|
| @dataclass |
| class DataValidationConfig: |
| schema_file_path:str=SCHEMA_FILE_PATH |
| validation_artifact_dir_name:str=DATA_VALIDATION_ARTIFACT_DIR_NAME |
| validation_artifact_file_name:str=DATA_VALIDATION_ARTIFACT_FILE_NAME |
|
|
|
|
| @dataclass |
| class DataTransformationConfig: |
| vector_store_saving_dir:str=VECTOR_STORE_SAVING_DIR_PATH |
| image_download_dir:str=IMAGE_DOWNLOAD_DIR |
| random_state:int=RANDOM_STATE |
| transformed_artifact_dir:str=TRANSFORMED_ARTIFACT_DIR |
| test_and_val_split:float=TEST_AND_VAL_SPLIT |
| train_file_name:str=TRAIN_FILE_NAME |
| test_file_name:str=TEST_FILE_NAME |
| val_file_name:str=VAL_FILE_NAME |
|
|
|
|
| @dataclass |
| class ModelTrainingConfig: |
| max_len: int = 128 |
| image_feature_output: int = 2048 |
| text_feature_output: int = 768 |
| feature_expand_dim: int = (2048 + 768) * 2 |
| final_feature_output: int = 512 |
| learning_rate: float = 0.0001 |
| model_name: str = "multimodal_model.pt" |
| model_dir: str = os.path.join(ARTIFACT_FOLDER, "model_training", "checkpoints") |
| epochs: int = 20 |
| patience: int = 3 |
| batch_size: int = 32 |
| dropout: float = 0.6 |
| cache_dir: str = os.path.join(ARTIFACT_FOLDER, "model_training", "cache") |
| train_file_path: str = os.path.join(TRANSFORMED_ARTIFACT_DIR, TRAIN_FILE_NAME) |
|
|
| Config = ModelTrainingConfig |
|
|
|
|
| @dataclass |
| class ModelEvaluationConfig: |
| evaluation_artifact_dir: str = os.path.join(ARTIFACT_FOLDER, "model_evaluation") |
| metrics_file_name: str = "metrics.yaml" |
| loss_plot_file_name: str = "loss_plot.png" |
| confusion_matrix_file_name: str = "confusion_matrix.png" |
| mlflow_experiment_name: str = "E-Commerce-Chatbot-Recommendation" |
| mlflow_run_name: str = "Multimodal_Training_Run" |
| mlflow_model_name: str = "multimodal_model_registry" |
|
|
|
|
|
|
| |
| |