<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MLOps | Ukant Jadia</title><link>https://ukantjadia.github.io/tag/mlops/</link><atom:link href="https://ukantjadia.github.io/tag/mlops/index.xml" rel="self" type="application/rss+xml"/><description>MLOps</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 01 Jan 2024 00:00:00 +0000</lastBuildDate><image><url>https://ukantjadia.github.io/media/icon_hu5e29e1df12b63ca0c9252c8db4842f1b_8915_512x512_fill_lanczos_center_3.png</url><title>MLOps</title><link>https://ukantjadia.github.io/tag/mlops/</link></image><item><title>Food Image Classification</title><link>https://ukantjadia.github.io/project/food-image-classification/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/food-image-classification/</guid><description>&lt;p>This project tackles the challenge of applying computer vision to emphasize accurate food image classification. It compares Convolutional Neural Networks (CNN) with Traditional Machine Learning Models, leveraging CNN&amp;rsquo;s feature-rich capabilities and traditional models&amp;rsquo; transparency and computational efficiency. This dual approach enhances food image classification&amp;rsquo;s precision and efficiency, impacting quality assessment, dietary analysis, and food inventory management&lt;/p>
&lt;p>Used the 5K image dataset for classifying the food images and non-food images, Trained the neural network on the images for classification, and developed the model with streamlit application and achieved 80% accuracy.
The dataset is taken from &lt;a href="https://mmspg.epfl.ch/food-image-datasets" target="_blank" rel="noopener">https://mmspg.epfl.ch/food-image-datasets&lt;/a> and the name of the data set is 5K.&lt;/p>
&lt;p>Dataset description:
-. This dataset contains 2500 food and 2500 non-food images, for the task of food/non-food classification in our paper “Food/Non-food Image Classification and Food Categorization using Pre-Trained GoogLeNet Model”. The whole dataset is divided into three parts: training, validation and evaluation. The naming convention is as follows:
-. {ClassID}_{ImageID}.jpg
-. ClassID: 0 or 1; 0 means non-food and 1 means food.
-. ImageID: ID of the image within the class&lt;/p></description></item><item><title>Bloom's Taxonomy Level Detection</title><link>https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/</link><pubDate>Wed, 13 Dec 2023 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/</guid><description>&lt;!-- For using this project here is a Streamlit app URL(it will take some time to launch) [https://ukant.tech/Boolm-s-Level-Detection-A-MLOPS-Project/] -->
&lt;p>To know Bloom&amp;rsquo;s Taxonomy in Detail see this pdf &lt;a href="./blooms-level.pdf">This&lt;/a>&lt;/p>
&lt;p>This project aims to classify the given statement into accurate Bloom&amp;rsquo;s taxonomy levels out of six levels. This is an NLP-based project. This project is built with TF-IDF vectorizer and multinomial Naive Bayes techniques.&lt;/p>
&lt;p>&lt;strong>Bloom&amp;rsquo;s Taxonomy Levels&lt;/strong>: Bloom’s Taxonomy is a classification system that arranges learning objectives into six hierarchical levels, each representing a different cognitive skill.&lt;/p>
&lt;p>The model is trained on 1800 augmented statements. Initially, I had 100 statements for each class, so a total of 600 statements for six classes. Then, this data is augmented three times using contextual word embedding augmentation, and the model used in the augmentation is BERT-based. An example of the augmentation methodology.&lt;/p>
&lt;!-- is inserted below
augmented each Text input 3 times with the following parameter with `nlpaug` library
```python
ContextualWordEmbsAug(model_path="bert-base-uncased", action="insert")
```
> before augmendatation data shape : 600,2
> total 6 unique calsses 100 each
> augmented data shape : 1800,2
> total 6 unique classes 300 each -->
&lt;p>This project follows MLOps techniques well. I have divided this project into 6 different pipelines for easy implementation and scalability. I created a class in the pipeline for each class using different entities and components. In generating a configuration file from the user input in the YAML format.&lt;/p>
&lt;p>In the end, I created a Docker image so it can be used by the Higher Education Institute(HEIs) for those who are using the OBE(Object Based Education) new curriculum technique. It just reduced the manual process of identifying each question and its root taxonomy level.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710044827297" srcset="
/project/blooms-taxonomy-level-detection/image/index/1710044827297_huec0ef018b8174a6574a593f12b1f55a4_16706_65c5983ca6fef4d3db443398d8482d70.webp 400w,
/project/blooms-taxonomy-level-detection/image/index/1710044827297_huec0ef018b8174a6574a593f12b1f55a4_16706_523070eb35e1755ac001a6c84baad697.webp 760w,
/project/blooms-taxonomy-level-detection/image/index/1710044827297_huec0ef018b8174a6574a593f12b1f55a4_16706_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/image/index/1710044827297_huec0ef018b8174a6574a593f12b1f55a4_16706_65c5983ca6fef4d3db443398d8482d70.webp"
width="391"
height="467"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710044894646" srcset="
/project/blooms-taxonomy-level-detection/image/index/1710044894646_hu433535a207122598080444a49931bb7e_314453_96cd67fe86666383cd78b4ece48564c6.webp 400w,
/project/blooms-taxonomy-level-detection/image/index/1710044894646_hu433535a207122598080444a49931bb7e_314453_2f49ab52963c10560f1e43588d92e464.webp 760w,
/project/blooms-taxonomy-level-detection/image/index/1710044894646_hu433535a207122598080444a49931bb7e_314453_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/image/index/1710044894646_hu433535a207122598080444a49931bb7e_314453_96cd67fe86666383cd78b4ece48564c6.webp"
width="760"
height="428"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710044907287" srcset="
/project/blooms-taxonomy-level-detection/image/index/1710044907287_hu7d010b5fd06d077b99e32210ce4d019c_218512_675fe40bc76270607c7a4fce63812053.webp 400w,
/project/blooms-taxonomy-level-detection/image/index/1710044907287_hu7d010b5fd06d077b99e32210ce4d019c_218512_4c4e3ba1c6950e444a02a98d6ef4d855.webp 760w,
/project/blooms-taxonomy-level-detection/image/index/1710044907287_hu7d010b5fd06d077b99e32210ce4d019c_218512_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/blooms-taxonomy-level-detection/image/index/1710044907287_hu7d010b5fd06d077b99e32210ce4d019c_218512_675fe40bc76270607c7a4fce63812053.webp"
width="760"
height="390"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item><item><title>A MLOps Project- Wine Quality Prediction</title><link>https://ukantjadia.github.io/project/wine-quality-prediction-mlops/</link><pubDate>Fri, 08 Dec 2023 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/wine-quality-prediction-mlops/</guid><description>&lt;p>This project demonstrates my ability to implement a highly scalable MLOPS project by following development techniques and project procedures. In this project, I divided the whole implementation part into six different pipelines and steps, which are as follows:&lt;/p>
&lt;p>&lt;strong>Data Ingestion&lt;/strong>: Collecting the data and setting it up for further use.&lt;/p>
&lt;p>&lt;strong>Data Validation&lt;/strong>: Checking the data type, format, and other conditions to see the validity and usability of the data.&lt;/p>
&lt;p>&lt;strong>Data Transformation&lt;/strong>: Performing preprocessing and splitting the data into test and train datasets.&lt;/p>
&lt;p>&lt;strong>Model Training&lt;/strong>: Selecting a suitable machine learning algorithm and creating a model by training.&lt;/p>
&lt;p>&lt;strong>Model Evaluation&lt;/strong>: Testing the data and verifying it with measurement/result metrics.&lt;/p>
&lt;p>&lt;strong>Model Prediction&lt;/strong>: Making predictions with user input.&lt;/p>
&lt;p>Each pipeline step followed a particular workflow in order to complete the pipeline successfully. See the following:&lt;/p>
&lt;ol>
&lt;li>Update config.yaml&lt;/li>
&lt;li>Update schema.yaml&lt;/li>
&lt;li>Update params.yaml&lt;/li>
&lt;li>Update the entity&lt;/li>
&lt;li>Update the configuration manager in the src config&lt;/li>
&lt;li>Update the components&lt;/li>
&lt;li>Update the pipeline&lt;/li>
&lt;li>Update the main.py&lt;/li>
&lt;li>Update the app.py&lt;/li>
&lt;/ol>
&lt;p>Follow the above workflow based on your current pipeline.&lt;/p>
&lt;p>Follow this markdown &lt;a href="https://github.com/ukantjadia/Boolm-s-Level-Detection-A-MLOPS-Project/blob/Main/MLOPS-setup.md" target="_blank" rel="noopener">link&lt;/a> to generate the base structure of your root repository for your project in order to implement MLOPS.&lt;/p>
&lt;p>Uses a mail flow for model registry and the model monitoring and model can be deployed from ML flow only&lt;/p>
&lt;p>Here is the tracking URL of my Molde &lt;a href="https://dagshub.com/ukantjadia/MLOPS-Wine-Quality-Prediction.mlflow/" target="_blank" rel="noopener">link&lt;/a>&lt;/p></description></item></channel></rss>