联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2024-04-16 09:25

IERG 4080 Assignment 4 (Mini Project)

Individual project: each student should work on his/her own project

Deadline: 23:59, 12 May 2024 (Sunday)

15% of the final grade

Overview

In this mini project, you will deploy a machine learning application to AWS cloud service utilizing what you

have learnt in this course. You are free to choose a topic and a machine learning task (or work on Assignment

3) in which you are interested.

The machine learning task does not have to be a very complicated one. The focus of this project should be on

how the system is designed such that it is scalable.

Your system should be implemented using Python 3, and deployed in AWS cloud (within the AWS Academy

to avoid charges). You are free to use any open source packages or libraries in your project.

If you have used AI tools or online resources, please make a explicit declaration in the front page of the

report.

Requirements

Your project should implement the following kinds of features/functions:

Machine Learning

Your application should be powered by a machine learning model

You can collect data and train a model for the task all by yourself

You can also use existing pre-trained models available on the Internet, or even packages that

implement specific machine learning applications

You should provide functions in addition to simply applying the model to the user's input, such

as allowing the user to retrieve the most recent predictions, or configure some settings to choose

different models

Network programming

Using HTTP, or asynchronous messaging to implement clients and servers

HTTP: Your service should be accessible with a URL, e.g., the HTTP part in Assignment 3

Concurrent programming

Using multi-threading, multi-processing or asyncio to achieve concurrent execution of tasks

System design

Consider which part(s) of the system is the bottleneck

Design your system in such a way that it allows horizontal scaling

Ideally, you should setup the AWS Auto Scaling Group and Load Balancing

Your system should be able to support multiple concurrent users

Use either asynchronous message queues, pub/sub systems, or caches to increase the

throughput and scalability of your system

Robustness

You should prevent the application from crashing by validating inputs and catch possible

exceptions wherever necessary

User Interface

You can use Telegram as your frontend (recommended), or you can develop your own interface

using Python, or create a Web-based application

Testing

You shall use some load testing tools to benchmark your applications, e.g., Apache Bench,

jMeter, Postman, ...

Ideally, you shall run a first benchmark after your first successfuly deployment. Record the

improvements after you extend your system.

Note

You will be invited to AWS Academy Learner Lab. From there, you have $100 credits and 4 hours lab

time for each session (can be resumed). Remember to always test on your local PC, and keep a backup

of your code in your PC or cloud storages like Github or OneDrive.

The first challenging part would be deploying it to the cloud (you need to recall how to use ssh, scp,

and related Linux techniques). The second challenging part is setting up auto scaling in AWS.

Assessment Scheme

Your project will be assessed using the criteria listed below:

20% - Machine learning

20% - Network programming

20% - Concurrent programming

20% - System design and complexity

10% - Robustness

10% - User Interface

Other Topics

Below are some possible topics for reference:

Language detection

Allow user to type in a sentence in a certain language, the system will detect which language the

sentence is written in

Gender and age prediction

Take a photo of a person, and predict the gender and age of the person

News classification

Given a URL to a news article, the system will classify the news article into one of the major

categories (e.g. sports, finance, technology, science, etc.)

Audio to Text

Let the user record a voice message in Telegram, the system will translate the audio into text

Recommendation

Allow users to rate items and the system will recommend new items to the users, e.g., movies,

books, articles

...

References and Resources

Pre-trained Machine Learning Models

https://huggingface.co/

https://www.kaggle.com/models

https://modelzoo.co/

Programming Big Data System

IERG4330 (K8s, Kafka, Spark, Hadoop)

Some guides available online

Deploying a flask application on an AWS EC2 instance

Submission

You should submit the following files to Blackboard:

A README file containing brief description of each Python script, the dependencies (i.e. open source

packages or libraries you have used), and instructions on how to run your programs

All source codes

Data files (if the data is larger than 10MB, upload to cloud storage and include links in the README

file)

A report in PDF format with the following information:

Functions/features of your system

e.g., the APIs, endpoints that receive user requests, and the backend workers/process.

Description of your machine learning task (e.g. where did you get the data, what ML algorithm

did you use, what is the performance of your model)

A diagram of the system architecture

Description of how your system is designed to be scalable

with Load/Stress testing result


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp