Linux CPU |
Linux GPU |
---|---|
TensorMSA : Tensorflow Micro Service Architecture
TensorMSA is a framework for machine learning and deep learning. Main purpose of developing this framework is to provide automated pipe lines (data extraction > data preprocessing > train model > evaluate model > service model). Use of effective pipeline is really important when we proceed real project. There are so many hard tasks which has to be done to build data driven model.
Problems
- Set up environment for deep learning is not a easy task (os, gpu, tensorflow, hadoop, etc..)
- Build pipe line from data to train model
- Difficulties of understading deep learning and implement those algorithms (even with tensorflow it's not that easy)
- Manage model and data for service on legacy systems (usually works on Java)
- Build applications with using data driven models
- Continuously update model by the environment and data changes
- Hyper Parameter tunning for deep learning is also very exhausting job
- Managing and scheduling GPU server resource
Solutions
- Easy to set up cluster with Docker images
- Manage GPU resources with Celery and own job manager
- REST APIs corresponding to Tensorflow
- JAVA API component interface with python REST APIS
- Easy to use UI for deep learning and machine learning
- Pipe lines for various type of data and algorithms
- Data collectors from various kind of source and types
- Data preprocess for text, image and frame data sets
- Support various deep learning and machine learning reusable componets
- AutoML for hyperparameter tunning (genetic algorithm, random hp search, gpu cluster)
Stack
- Front End : React(ES6 + Webpack), Pure CSS + Scss, D3, jQuery Mobile(for Chatbot Client)
- Back End : Django(Python 3.5), Tensorflow(v1.2), Restful Service(Micro Service Architecture), PostgreSQL, Memcache, Celery, HDF5, Ngix, Gensim(W2V), Konlpy
Our framework provide easy to use UI/UX and AutoML based super easy process of build & service deep learning models
You can install and use our framework with docker. If you are not familiar with Docker( Docker Install ) or Docker Compose ( Docker Compose Install ) check the link. If you have to install framework on multi server (cluster version) check this link Detail Install Guide, If you have to install our project on your host server without using docker check this link Host install guide
1.download docker project
git clone --recursive https://github.com/TensorMSA/tensormsa_docker.git
2.select GPU.CPU version to install
cd ./tensormsa_docker/docker_compose_gpu
cd ./tensormsa_docker/docker_compose_cpu
3.create docker volume
docker volume create --name=pg_data
docker volume inspect pg_data
4.run docker-compose
#first time you start docker-compose : create new containers
docker-compose up -d
#just to restart docker-compose
docker-compose restart
5.migrate database
docker-compose run web python /home/dev/tensormsa/manage.py collectstatic
docker-compose run web python /home/dev/tensormsa/manage.py makemigrations
docker-compose run web python /home/dev/tensormsa/manage.py migrate
6.choose number of celery/ap server
docker-compose scale celery=3
Service Ports ( all service started automatically on docker start )
- Easy UI/UX : [your ip address] : 8000
- API Server : [your ip address] : 8000
- Celery Monitor : [your ip address] : 5555
- Jupter : [your ip address] : 8018
- VNC : [your ip address] : 5901