Releases: wisrovi/wyoloservice
Release list
Enhanced Control and Worker APIs
1. Introduction and Purpose
wyoloservice is a comprehensive solution designed for the management and orchestration of YOLO model training services. It facilitates the configuration and deployment of distributed training environments, optimizing resource utilization and communication between core components.
2. Key Features
This new version of wyoloservice introduces key features to improve the flexibility and control of your operations:
- Expanded Control Host API: New entry points for more granular management of the control server.
- Exposed Worker API: Advanced features for directly interacting with Workers, enabling more active monitoring and control.
- Training Environment Management: Simplified configuration and mounting of shared volumes for datasets, configurations, and databases.
- ML Tool Integration: Support for MLFLOW, DVC, Redis, PostgreSQL, and NFS for a complete ML workflow.
#3. Quick Start / Installation Guide (Existing Section, Needs Review)
Make sure this section is concise and clear. You could include a basic Docker-Compose if that's your primary deployment.
#4. Using the APIs
- Using the APIs (New Crucial Section)
Interacting with the APIs
wyoloservice exposes two main APIs for management and control: the Control Host API and the Worker API.
Control Host API
This API allows you to manage the control server with additional entry points for more detailed administration. (You could add a list of the new endpoints here if there are only a few, or a link to more extensive documentation if needed.)
Worker API
The Worker API, now fully exposed, allows worker owners to interact directly for various operations. Previously, it only supported health ping for crash detection.
API Authentication:
All API entry points require password authentication. For the user variable, the Worker's hostname must be provided, which is identical to the hostname of the host system.
5. Service Configuration (Existing Section, to be Organized)
This section details the key services and tools integrated into wyoloservice, along with their essential configurations.
-
MLFLOW:
-
Purpose: Experiment tracking, model tracking, and ML lifecycle management.
-
UI Access: http://localhost:5000
-
Credentials (Example):
- mlflow_user: mlflow
- mlflow_password: changeme
-
-
Redis:
- Purpose: In-memory database for caching and real-time task management.
- Configuration: (Connection and usage details, if applicable.)
-
PostgreSQL and PGAdmin:
-
Purpose: PostgreSQL as the primary database; PGAdmin for visual management.
-
PGAdmin Access: http://localhost:80 (Make sure this port is correct or change it if it's 443 for the new HTTPS configuration).
-
Credentials (Example):
- postgres_user: postgres
- postgres_password: changeme
- pgadmin_email: admin@admin.com
- pgadmin_password: admin
-
-
NFS (Network File System) and Samba:
- Purpose: Management of shared volumes for datasets, configurations, and the database between the control server and the training servers.-
Shared Paths (Example):
- /mnt/wyoloservice/datasets - /mnt/wyoloservice/configs - /mnt/wyoloservice/db
-
6. System Requirements (Existing Section, to Maintain)
- Always remember that for the worker to function correctly, it is required to have an active swap with at least the same size as the memory capacity. RAM
7. Contribution
We greatly appreciate any contribution to the Wyoloservice project! Your help is essential to improve and expand this tool.
- How to contribute?
- Make a repository fork.
- Create a new branch (GIT Checkout -B feature/new -functionality).
- Make your changes and make sure the code follows quality standards.
- Write tests for your changes, if apply.
- Make sure all existing tests pass.
- Make Commit of your changes (git commit -m 'feat: add new functionality x').
- Take your branch (Git Push Origin Feature/New-Functionality).
- Open a Pull request detailing the changes and its purpose.
- Error report:
If you find any error or have improvement suggestions, please open an ISSUE in the Github repository. Describe the problem in the most detailed way possible, including the steps to reproduce it if it is an error.
#8. Contacts
For questions, support, or collaborations, you can contact the project maintainer through the following channels:
-
GitHub Issues: To report bugs or request new features, please use the Issues section of this repository.
-
Email: wisrovi.rodriguez@gmail.com
We hope these improvements give you greater control and efficiency in using wyoloservice.
##What's Changed
Full Changelog: v1.0.11...v1.0.12
v1.0.11
This version includes stability improvements and the option to pause a current workout, either to stop it or to continue it from another worker.
It also includes an admin mode that temporarily shuts down the worker without shutting down the container. This allows the user to freely use their GPU for any task they wish. After this time, if the timeout has not been updated, the worker returns to normal mode.
When starting a workout, the worker reports two notifications to Redis: to the user and to the worker owner, with relevant metadata about the workout that has just begun.
What's Changed
Full Changelog: v0.1.0...v1.0.11
v0.1.0
CONTROL SERVER
crear red de archivos
make create_files_servercrear red de docker
make create_networkcrear control server
make create_control_serverWORKER
enlazar la red de archivos:
make mount_dataset CONTROL_HOST=192.168.1.137
make mount_db CONTROL_HOST=192.168.1.137
make mount_config_models CONTROL_HOST=192.168.1.137ó
make link_files_network CONTROL_HOST=192.168.1.137Se recomienda automaizar la creación de enlaces simbólicos con el siguiente comando:
sudo cronjob -e@reboot /bin/bash /home/usuario/Documentos/Proyectos/production/2\ train_Server/make mount_dataset CONTROL_HOST=192.168.1.137
@reboot /bin/bash /home/usuario/Documentos/Proyectos/production/2\ train_Server/make mount_db CONTROL_HOST=192.168.1.137
@reboot /bin/bash /home/usuario/Documentos/Proyectos/production/2\ train_Server/make mount_config_models CONTROL_HOST=192.168.1.137INIICAR UN WORKER
start_worker
