Technology stack
The implementation of DL models requires a special design in software development. For the purposes of this research I created a stack of applications through which the process sequence mentioned above is defined. These applications are discrete pieces of software, each responsible for executing a predefined set of processes. These discrete processes function in a supportive manner to the overall data flow in the MLVC. That is, each discrete application executes and feeds data to the next application, thereby creating a pipeline of continuous process flow and data extraction.
Repositories
App | Language | Framework | Type |
---|---|---|---|
Typescript | Node js | Date scraper | |
Java | Spring | Dataset API | |
Python | Pytorch | Development model | |
Python | Flask | Production model | |
Typescript | React js | Web prototype |
Implementations
The implementation and development of MLVC consists of 6 distinct applications. Each application is implemented in a different programming language depending on the process it performs.
The design takes into account the communication between the applications, strictly relying on the workflow design I mentioned above. Each application meets the functional needs within the MLVC lifecycle.Furthermore, it is a standalone code package and is maintained separately. Each part of the stack corresponds to one of the applications, where each application consists of layers that correspond to the technologies used. The visualization in the technology stack is presented in diagram above.
The goal is to create a software pipeline through which to facilitate the development and construction of DL models. At the same time through this design to achieve a smoother execution of experiments and measurements. The design principle of the software pipeline is implemented on the continuous integration (CI) technique.
Visualization
![](/_next/static/media/repo-stack-trance.eb9b222c.png)
Software distribution
![](/_next/static/media/tech-flow-apps-dark.c1f3236e.png)