<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DevOps | Ukant Jadia</title><link>https://ukantjadia.github.io/tag/devops/</link><atom:link href="https://ukantjadia.github.io/tag/devops/index.xml" rel="self" type="application/rss+xml"/><description>DevOps</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 30 Dec 2024 14:15:59 +0530</lastBuildDate><image><url>https://ukantjadia.github.io/media/icon_hu5e29e1df12b63ca0c9252c8db4842f1b_8915_512x512_fill_lanczos_center_3.png</url><title>DevOps</title><link>https://ukantjadia.github.io/tag/devops/</link></image><item><title>A Beginner's Guide to DevOps with Terraform and GitHub</title><link>https://ukantjadia.github.io/project/devops-journy/</link><pubDate>Mon, 30 Dec 2024 14:15:59 +0530</pubDate><guid>https://ukantjadia.github.io/project/devops-journy/</guid><description>&lt;h1 id="a-beginners-guide-to-devops-with-terraform-and-github">A Beginner&amp;rsquo;s Guide to DevOps with Terraform and GitHub&lt;/h1>
&lt;p>As a fresh graduate in Computer Science and Engineering, my exploration into the world of DevOps has been nothing short of an enlightening adventure. Coming from a machine learning background, I often found myself compelled to understand how backend systems could be crafted with such elegance. This curiosity fueled my capstone project, where I aimed to create a CI/CD pipeline that elegantly demonstrated the power of tools like Terraform and GitHub.&lt;/p>
&lt;h2 id="what-is-devops-and-why-is-it-important">What is DevOps and Why is it Important?&lt;/h2>
&lt;p>DevOps blends development and operations, aiming to minimize the distance between these two traditionally siloed groups. The goal is to improve collaboration, increase deployment frequency, and deliver more stable operating environments. The DevOps culture promotes continuous integration and continuous delivery (CI/CD), which significantly enhances the software development lifecycle.&lt;/p>
&lt;h3 id="key-components-of-devops">Key Components of DevOps&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Continuous Integration (CI)&lt;/strong>: Developers frequently integrate their changes in a shared repository.&lt;/li>
&lt;li>&lt;strong>Continuous Delivery (CD)&lt;/strong>: Automating the delivery of applications to selected infrastructure environments.&lt;/li>
&lt;li>&lt;strong>Infrastructure as Code (IaC)&lt;/strong>: Managing infrastructure through code, ensuring that setups are easy to replicate.&lt;/li>
&lt;/ul>
&lt;h3 id="a-personal-exploration-into-devops">A Personal Exploration into DevOps&lt;/h3>
&lt;p>Reflecting on my academic journey, the decision to delve into a DevOps project stemmed from a fundamental question: How can vast complexities be integrated seamlessly? My project aimed to demystify this by constructing a basic CI/CD pipeline orchestrated through Terraform and GitHub.&lt;/p>
&lt;h2 id="setting-the-stage-understanding-my-project">Setting the Stage: Understanding My Project&lt;/h2>
&lt;p>The core of my project revolved around leveraging Terraform for infrastructure automation, along with GitHub for version control and CI/CD capabilities. This combination would provide a straightforward yet powerful example of deploying applications in a cloud environment.&lt;/p>
&lt;h3 id="project-objectives">Project Objectives&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Demonstrate CI/CD using GitHub Actions&lt;/strong>: Show how automatic deployment can facilitate rapid product releases.&lt;/li>
&lt;li>&lt;strong>Use Terraform for Infrastructure Management&lt;/strong>: Illustrate how infrastructure can be provisioned and managed as code.&lt;/li>
&lt;li>&lt;strong>Visualize Workflows&lt;/strong>: Employ tools like Eraser.io to create flowcharts to help visualize the project&amp;rsquo;s structure.&lt;/li>
&lt;/ul>
&lt;h2 id="getting-started-with-terraform">Getting Started with Terraform&lt;/h2>
&lt;p>When I first explored Terraform, I was struck by how declarative it is. Terraform allows you to define your infrastructure in configuration files which can then be executed to provision that infrastructure automatically.&lt;/p>
&lt;h3 id="example-terraform-configuration">Example Terraform Configuration&lt;/h3>
&lt;p>Here’s a simple example of a Terraform configuration file that provisions an AWS EC2 instance:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="l">provider &amp;#34;&amp;#34;aws&amp;#34;&amp;#34; {&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">region = &amp;#34;&amp;#34;us-west-2&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>}&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="l">resource &amp;#34;&amp;#34;aws_instance&amp;#34;&amp;#34; &amp;#34;&amp;#34;my_instance&amp;#34;&amp;#34; {&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">ami = &amp;#34;&amp;#34;ami-0c55b159cbfafe1f0&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">instance_type = &amp;#34;&amp;#34;t2.micro&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">tags = {&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">Name = &amp;#34;&amp;#34;MyInstance&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>}&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>}&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="key-features-of-terraform">Key Features of Terraform&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Infrastructure as Code&lt;/strong>: Treat infrastructure setup as code, making it easier to maintain and version control.&lt;/li>
&lt;li>&lt;strong>Execution Plan&lt;/strong>: Terraform generates a clear execution plan which shows what will happen before any changes are applied.&lt;/li>
&lt;/ul>
&lt;h2 id="integrating-github-actions-into-the-pipeline">Integrating GitHub Actions into the Pipeline&lt;/h2>
&lt;p>GitHub Actions provides a robust platform for automating workflows directly in your GitHub repository. For my project, I set up actions to automatically test and deploy the application upon code commit.&lt;/p>
&lt;h3 id="github-actions-workflow-configuration">GitHub Actions Workflow Configuration&lt;/h3>
&lt;p>This YAML file illustrates a basic GitHub Actions workflow:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">CI/CD Pipeline&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">push&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">branches&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">main ]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">jobs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">build&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">runs-on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">ubuntu-latest&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">steps&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Check out the code&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">actions/checkout@v2&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Set up Node.js&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">actions/setup-node@v2&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">with&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">node-version&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;14&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Install dependencies&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">npm install&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Run tests&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">npm test&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Deploy to production&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">npm run deploy&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="benefits-of-using-github-actions">Benefits of Using GitHub Actions&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Seamless Integration&lt;/strong>: Works directly with your repositories.&lt;/li>
&lt;li>&lt;strong>Customizability&lt;/strong>: Create tailored workflows to fit specific project needs.&lt;/li>
&lt;/ul>
&lt;h2 id="visualizing-the-workflow">Visualizing the Workflow&lt;/h2>
&lt;p>To visualize how data flows through the different stages of the pipeline, I employed Eraser.io. This tool allowed me to create flowcharts that represented the overall CI/CD process from code push to deployment.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Project Workflow Diagram" srcset="
/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_db3a68c6db8bf6bb22c39db4b0c12eb5.webp 400w,
/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_60e706c65945e27497b28bc21c1ec67c.webp 760w,
/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_db3a68c6db8bf6bb22c39db4b0c12eb5.webp"
width="611"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>&lt;em>Figure 1: The flow of code and data in the CI/CD pipeline&lt;/em>&lt;/p>
&lt;h2 id="the-elegance-of-cicd-a-real-world-application">The Elegance of CI/CD: A Real-World Application&lt;/h2>
&lt;p>As I progressed through my project, witnessing the pipeline&amp;rsquo;s operation became one of the most rewarding aspects. It was astounding to see how a simple workflow could articulate the path of requests or data between containers and servers.&lt;/p>
&lt;h3 id="key-takeaways-from-the-cicd-pipeline-experience">Key Takeaways from the CI/CD Pipeline Experience&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Visual Learning&lt;/strong>: The flowcharts provided invaluable insight into how requests and data moved, making the whole process comprehensible.&lt;/li>
&lt;li>&lt;strong>Hands-on with Real Tools&lt;/strong>: Working directly with GitHub and Terraform solidified my understanding of cloud infrastructure and automation.&lt;/li>
&lt;/ul>
&lt;h2 id="final-thoughts">Final Thoughts&lt;/h2>
&lt;p>Reflecting on this project, I can confidently say that building a CI/CD pipeline using Terraform and GitHub not only quenched my curiosity about backend processes but also equipped me with practical skills for my career ahead. This journey reaffirmed my belief that technology can create elegant solutions to complex problems. I hope my exploration encourages others to dive into the DevOps ocean, where every wave brings new learning opportunities.&lt;/p>
&lt;h2 id="references">References&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://github.com/ukantjadia/devops-qr-code" target="_blank" rel="noopener">GitHub Repository - DevOps QR Code&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://app.eraser.io/workspace/FvUVWqTvzrhkXkz8aEch?origin=share" target="_blank" rel="noopener">Eraser.io Workspace&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/ukantjadia/devops-qr-code/blob/Main/task.md" target="_blank" rel="noopener">GitHub Task Documentation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/ukantjadia/devops-qr-code/blob/Main/README.md" target="_blank" rel="noopener">GitHub README Documentation&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>&lt;em>Feel free to explore these resources further to expand your knowledge and understanding of DevOps and CI/CD pipelines.&lt;/em>&lt;/p></description></item><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>OBE Module for University</title><link>https://ukantjadia.github.io/project/obe-module-for-spsu/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/obe-module-for-spsu/</guid><description>&lt;p>&lt;strong>This was a team project.&lt;/strong>&lt;/p>
&lt;p>The aim of this project is to provide the university with a web portal for the implementation of Outcome-Based Education (OBE).&lt;/p>
&lt;p>OBE can primarily be distinguished from traditional education methods by the way it incorporates three elements: a theory of education, a systematic structure for education, and a specific approach to instructional practice. It organizes the entire educational system towards what is considered essential for learners to successfully achieve at the end of their learning experiences. In this model, the term &amp;lsquo;outcome&amp;rsquo; is the core concept and is sometimes used interchangeably with the terms &amp;lsquo;competency,&amp;rsquo; &amp;lsquo;standards,&amp;rsquo; &amp;lsquo;benchmarks,&amp;rsquo; and &amp;lsquo;attainment targets.&amp;rsquo; OBE also utilizes the same methodology formally and informally adopted in the actual workplace to achieve outcomes.&lt;/p>
&lt;p>The web portal is built with the Laravel framework of PHP for the front end and utilizes MySQL for the database.&lt;/p>
&lt;p>My Role: My role is to build the business logic, conduct literature reviews, generate reports, and suggest the next steps based on those reports. I also assist in building the database&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710048747037" srcset="
/project/obe-module-for-spsu/image/index/1710048747037_hue9e6ec9a78bd74aa809eeb7ae3a6365b_278261_192c78ddb3443505d092d22daa76c8ac.webp 400w,
/project/obe-module-for-spsu/image/index/1710048747037_hue9e6ec9a78bd74aa809eeb7ae3a6365b_278261_bff25dde88565a1109fe7ec27ad32bcf.webp 760w,
/project/obe-module-for-spsu/image/index/1710048747037_hue9e6ec9a78bd74aa809eeb7ae3a6365b_278261_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/obe-module-for-spsu/image/index/1710048747037_hue9e6ec9a78bd74aa809eeb7ae3a6365b_278261_192c78ddb3443505d092d22daa76c8ac.webp"
width="489"
height="680"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&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>