|
1 | | -# Model Download Microservice Overview |
| 1 | +# Model Download Microservice |
2 | 2 |
|
3 | | -The Model Download Microservice provides a unified solution for downloading AI/ML models from various model hubs while ensuring consistency and simplicity across applications. This service acts as a centralized model management system that handles model downloads, storage, and optional format conversions. |
| 3 | +The Model Download Microservice offers a streamlined approach for acquiring AI/ML models from multiple model hubs, promoting consistency and ease of use across different applications. It serves as a centralized system for managing model downloads, storage, and optional format conversions. |
4 | 4 |
|
5 | | -## Architecture |
| 5 | +Below, you'll find links to detailed documentation to help you get started, configure, and deploy the microservice. |
6 | 6 |
|
7 | | -The diagram below illustrates the high-level architecture of the Model Download Microservice, showcasing its core components and their interactions with external systems. |
| 7 | +## Documentation |
8 | 8 |
|
9 | | -<p align="center"> |
10 | | - <img src="./docs/user-guide/images/architecture.png" alt="Architecture" /> |
11 | | -</p> |
| 9 | +- **Overview** |
| 10 | + - [Overview](docs/user-guide/Overview.md): A high-level introduction to the microservice. |
12 | 11 |
|
13 | | -## Components |
| 12 | +- **Getting Started** |
| 13 | + - [Get Started](docs/user-guide/get-started.md): Step-by-step guide to getting started with the microservice. |
| 14 | + - [System Requirements](docs/user-guide/system-requirements.md): Hardware and software requirements for running the microservice. |
14 | 15 |
|
15 | | -The service follows a plugin-based microservice architecture with the following key components: |
| 16 | +- **Deployment** |
| 17 | + - [How to Build from Source](docs/user-guide/build-from-source.md): Instructions for building the microservice from source code. |
16 | 18 |
|
17 | | -### Core Components |
18 | | - |
19 | | -1. **FastAPI Service Layer** |
20 | | - - **Description**: The FastAPI Service Layer serves as the primary entry point for all client interactions. It exposes a RESTful API for downloading, converting, and managing models. |
21 | | - - **Responsibilities**: |
22 | | - - Provides RESTful API endpoints for all service operations. |
23 | | - - Handles incoming request validation, serialization, and routing to the appropriate components. |
24 | | - - Generates and serves OpenAPI (Swagger) documentation for clear, interactive API specifications. |
25 | | - |
26 | | -2. **Model Manager** |
27 | | - - **Description**: The Model Manager is the central orchestration component that directs the model download and conversion processes. It acts as the brain of the service, coordinating actions between the API layer and the plugin system. |
28 | | - - **Responsibilities**: |
29 | | - - Orchestrates end-to-end model download and conversion workflows. |
30 | | - - Manages model storage, including organizing file paths and handling caching. |
31 | | - - Interfaces with the Plugin Registry to delegate tasks to the appropriate plugins. |
32 | | - |
33 | | -3. **Plugin Registry** |
34 | | - - **Description**: The Plugin Registry is responsible for the discovery, registration, and management of all available plugins. It provides a flexible mechanism for extending the service's capabilities without modifying the core application logic. |
35 | | - - **Responsibilities**: |
36 | | - - Dynamically discovers and registers plugins at startup. |
37 | | - - Manages the lifecycle of each plugin. |
38 | | - - Provides a consistent abstraction layer that decouples the Model Manager from concrete plugin implementations. |
39 | | - |
40 | | -### Plugin System |
41 | | - |
42 | | -The service's functionality is extended through a modular plugin system that handles interactions with different model sources and conversion tasks. |
43 | | - |
44 | | -**Model Hub Plugins:** |
45 | | -- **HuggingFace Hub Plugin**: Manages model downloads from the Hugging Face Hub, including handling authentication for private or gated models. |
46 | | -- **Ollama Hub Plugin**: Interfaces with Ollama to pull and manage models from the Ollama model library. |
47 | | -- **Ultralytics Hub Plugin**: Downloads computer vision models, such as YOLO, from the Ultralytics framework. |
48 | | - |
49 | | -**Conversion Plugins:** |
50 | | -- **OpenVINO Model Conversion Plugin**: Provides functionality to convert downloaded models (e.g., from Hugging Face) into the OpenVINO™ Intermediate Representation (IR) format for optimized inference on Intel hardware. |
51 | | - |
52 | | -### Storage |
53 | | - |
54 | | -- **Downloaded Models Storage**: This component represents the physical storage location for all downloaded and converted models. It is a configurable file system path that acts as a centralized repository and cache. |
55 | | - - **Responsibilities**: |
56 | | - - Provides a persistent location for storing model files. |
57 | | - - Enables caching to avoid redundant downloads of the same model. |
58 | | - - Organizes models in a structured directory format for easy access. |
59 | | - |
60 | | -## Key Features |
61 | | - |
62 | | -- **Multi-Hub Support**: Download models from multiple sources (HuggingFace, Ollama, Ultralytics) |
63 | | -- **Format Conversion**: Convert models to OpenVINO format for optimization |
64 | | -- **Parallel Downloads**: Optional concurrent model downloads |
65 | | -- **Precision Control**: Support for various model precisions (INT8, FP16, FP32) |
66 | | -- **Device Targeting**: Optimization for different compute devices (CPU, GPU) |
67 | | -- **Caching**: Configurable model caching for improved performance |
68 | | - |
69 | | -## Integration |
70 | | - |
71 | | -The service can be integrated into applications through: |
72 | | -- REST API calls |
73 | | -- Docker container deployment |
74 | | -- Docker Compose orchestration |
75 | | - |
76 | | -## Use Cases |
77 | | - |
78 | | -This microservice is ideal for: |
79 | | -- Edge AI applications requiring model downloads |
80 | | -- Development and testing environments |
81 | | -- Sample applications demonstrating AI capabilities |
82 | | -- Automated model deployment pipelines |
83 | | - |
84 | | -## Limitations |
85 | | - |
86 | | -This service is not intended to replace full model registry solutions and has the following limitations: |
87 | | -- Basic model versioning |
88 | | -- Limited model metadata management |
89 | | -- No built-in model serving capabilities |
90 | | - |
91 | | -## Supporting Resources |
92 | | -- [**Get Started Guide**](./docs/user-guide/get-started.md) |
93 | | -- [**API Reference**](./docs/user-guide/api-docs/openapi.yaml) |
| 19 | +- **Release Notes** |
| 20 | + - [Release Notes](docs/user-guide/release-notes.md): Information on the latest updates, improvements, and bug fixes. |
0 commit comments