Welcome to my blog | 11.01.2025
Since I am building this framework alongside my job, I have more time to think about the project than to actually work on it. Therefore, I decided to create something akin to a blog to provide insights into the thought processes behind the scene. The goal is to make sense of the sketches I’ve created and to develop a clearer understanding of future plans.
Disclaimer:
Let’s call this a very pre-alpha stage. What this means is that not only do we not yet have a full picture of what features the final version will include, but we also haven’t finalized the naming of all structural components. To manage the complexity, I typically sketch out various structures and implement features in them to determine the optimal approach. This process won’t take too long, as I have already tested several ideas and have a good sense of the structure I want to adopt.
Project Goal:
The goal of Use-AI.rs is to create an engaging framework for the practical use of AI in production. This can be summarized as: "An engaging framework for Deep Reinforcement Learning (DRL) and Ensembled Models (EM), implemented in Rust." I have chosen DRLs and EMs because, in my view, they are among the most practical tools for applications such as robotics, IoT, and economics. While there are existing solutions, the most convenient ones are often too dependent on external ecosystems, making them less appealing for production use. Others lack sufficient flexibility and engagement. By leveraging Rust, we aim to address these shortcomings and build a future-proof solution.
Current State:
Currently, there is a JSON file called ai_config_example.json, which represents the highest level of abstraction we aim to achieve. While the JSON is not fully refined yet, we will simplify its complexity for now. As features are implemented, we can reintroduce complexity as needed. However, the ultimate goal is to ensure that even simplified configurations will continue to work in future versions, allowing users to abstract functionality to their desired depth while maintaining compatibility with the framework's layers. The reason for a configuration file is to enable the implementation of complex DRL and EM algorithms without requiring direct modifications to the framework's code. Since DRLs and EMs are essentially combinations of mathematical and logical methods, the configuration file defines the operations that will be applied to input data. At this stage, the files ai_config_example.json and data_from_csv.rs provide a glimpse of what I aim to achieve in this regard.
Future Plans:
The immediate goal is to reach the pre-alpha stage. Since I plan to update this project at least once a week, this stage should be reached relatively quickly, as I already have a clear idea of the necessary changes. In the near term, you can expect significant structural updates and renaming of components. Once these foundational changes are complete, the next step will be to introduce Burn. Initially, Burn will be used for GPU tensor operations for neural networks and some DRL functionalities. However, since Burn does not yet cover everything needed for high-performance computing (HPC) in reinforcement learning, we will later introduce CubeCL to build custom RL kernels for GPU hardware. Since Burn and CubeCL exist within the same ecosystem, this integration will allow us to create a robust and high-performance deep AI framework.