For the article A Reference Architecture of Reinforcement Learning Frameworks.
The surge in reinforcement learning (RL) applications gave rise to diverse supporting technology, such as RL frameworks. However, the architectural patterns of these frameworks are inconsistent across implementations and there exist no reference architecture (RA) to form a common basis of comparison, evaluation, and integration. To address this gap, we propose an RA of RL frameworks. Through a grounded theory approach, we analyze 18 state-of-the-practice RL frameworks and by that, we identify recurring architectural components and their relationships, and codify them in an RA. To demonstrate our RA, we reconstruct characteristic RL patterns. Finally, we identify architectural trends, e.g., commonly used components, and outline paths to improving RL frameworks.
01-reference architecture- Contains the reference architecture (RA) of RL frameworks.reference-architecture.pdf- The pdf version of complete RA.reference-architecture.png- The png version of complete RA.reference-architecture-sources.vsd- Visual Paradigm sources for the architectural figures in the article.
02-data- Contains data used for GT and analysis.01-framework-metadata.xlsx- Includes sampled framework metadata.02-gt-artifacts.xlsx- Includes GT coding stages.axial-coding- Identifies components and their relationships.selective-coding- Refines component groups and builds reference architecture.final-RA- Finalized RA.
03-final-RA.xlsx- Includes finalized RA mapped to frameworks.final-RA-to-framework-summary- Mapping frameworks with implementation status.final-RA-to-framework-detail- Mapping frameworks with detailed information, e.g., link, code snippets, and explanation.
03-analysis- Contains Python analysis scripts to obtain the results in the 04-results folder.requirements.txt- Lists all required libraries and their versions.table_generator.py- Generates tables I-VI in the publication.statistics_generator.py- Generates statistical calculations.
04-results- Contains the plots and statistics that are used in the publication. For details, see04-results/tables/README.mdand04-results/statistics/README.md.
- Install the required Python packages by running
pip install -r ./03-analysis/requirements.txtfrom the root folder. - For tables, run
python ./03-analysis/table_generator.pyfrom the root folder and follow the instructions. Results will be generated into04-results/tablesfolders. - For statistics, run
python ./03-analysis/statistics_generator.pyfrom the root folder and follow the instructions. Results will be generated into04-results/statisticsin a textual format.
