warprec 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. warprec-1.0.0/LICENSE +21 -0
  2. warprec-1.0.0/PKG-INFO +220 -0
  3. warprec-1.0.0/README.md +180 -0
  4. warprec-1.0.0/pyproject.toml +89 -0
  5. warprec-1.0.0/warprec/__init__.py +6 -0
  6. warprec-1.0.0/warprec/common/__init__.py +8 -0
  7. warprec-1.0.0/warprec/common/initialize.py +417 -0
  8. warprec-1.0.0/warprec/common/optimizers.py +73 -0
  9. warprec-1.0.0/warprec/data/__init__.py +26 -0
  10. warprec-1.0.0/warprec/data/dataset.py +867 -0
  11. warprec-1.0.0/warprec/data/entities/__init__.py +10 -0
  12. warprec-1.0.0/warprec/data/entities/interactions.py +594 -0
  13. warprec-1.0.0/warprec/data/entities/sessions.py +366 -0
  14. warprec-1.0.0/warprec/data/entities/train_structures/__init__.py +21 -0
  15. warprec-1.0.0/warprec/data/entities/train_structures/custom_collate_fn.py +29 -0
  16. warprec-1.0.0/warprec/data/entities/train_structures/interaction_structures.py +199 -0
  17. warprec-1.0.0/warprec/data/entities/train_structures/session_structures.py +278 -0
  18. warprec-1.0.0/warprec/data/eval_loaders.py +400 -0
  19. warprec-1.0.0/warprec/data/filtering.py +543 -0
  20. warprec-1.0.0/warprec/data/reader/__init__.py +21 -0
  21. warprec-1.0.0/warprec/data/reader/azureblob_reader.py +239 -0
  22. warprec-1.0.0/warprec/data/reader/base_reader.py +587 -0
  23. warprec-1.0.0/warprec/data/reader/local_reader.py +147 -0
  24. warprec-1.0.0/warprec/data/splitting/__init__.py +4 -0
  25. warprec-1.0.0/warprec/data/splitting/splitter.py +248 -0
  26. warprec-1.0.0/warprec/data/splitting/strategies.py +498 -0
  27. warprec-1.0.0/warprec/data/writer/__init__.py +21 -0
  28. warprec-1.0.0/warprec/data/writer/azureblob_writer.py +145 -0
  29. warprec-1.0.0/warprec/data/writer/base_writer.py +565 -0
  30. warprec-1.0.0/warprec/data/writer/local_writer.py +110 -0
  31. warprec-1.0.0/warprec/evaluation/__init__.py +5 -0
  32. warprec-1.0.0/warprec/evaluation/evaluator.py +488 -0
  33. warprec-1.0.0/warprec/evaluation/metrics/__init__.py +19 -0
  34. warprec-1.0.0/warprec/evaluation/metrics/accuracy/__init__.py +26 -0
  35. warprec-1.0.0/warprec/evaluation/metrics/accuracy/auc.py +62 -0
  36. warprec-1.0.0/warprec/evaluation/metrics/accuracy/f1.py +107 -0
  37. warprec-1.0.0/warprec/evaluation/metrics/accuracy/gauc.py +51 -0
  38. warprec-1.0.0/warprec/evaluation/metrics/accuracy/hit_rate.py +24 -0
  39. warprec-1.0.0/warprec/evaluation/metrics/accuracy/lauc.py +57 -0
  40. warprec-1.0.0/warprec/evaluation/metrics/accuracy/map.py +36 -0
  41. warprec-1.0.0/warprec/evaluation/metrics/accuracy/mar.py +36 -0
  42. warprec-1.0.0/warprec/evaluation/metrics/accuracy/mrr.py +27 -0
  43. warprec-1.0.0/warprec/evaluation/metrics/accuracy/ndcg.py +71 -0
  44. warprec-1.0.0/warprec/evaluation/metrics/accuracy/precision.py +24 -0
  45. warprec-1.0.0/warprec/evaluation/metrics/accuracy/recall.py +31 -0
  46. warprec-1.0.0/warprec/evaluation/metrics/base_metric.py +474 -0
  47. warprec-1.0.0/warprec/evaluation/metrics/bias/__init__.py +7 -0
  48. warprec-1.0.0/warprec/evaluation/metrics/bias/aclt.py +77 -0
  49. warprec-1.0.0/warprec/evaluation/metrics/bias/aplt.py +75 -0
  50. warprec-1.0.0/warprec/evaluation/metrics/bias/arp.py +59 -0
  51. warprec-1.0.0/warprec/evaluation/metrics/bias/pop_reo.py +111 -0
  52. warprec-1.0.0/warprec/evaluation/metrics/bias/pop_rsp.py +104 -0
  53. warprec-1.0.0/warprec/evaluation/metrics/coverage/__init__.py +11 -0
  54. warprec-1.0.0/warprec/evaluation/metrics/coverage/item_coverage.py +58 -0
  55. warprec-1.0.0/warprec/evaluation/metrics/coverage/numretrieved.py +31 -0
  56. warprec-1.0.0/warprec/evaluation/metrics/coverage/user_coverage.py +42 -0
  57. warprec-1.0.0/warprec/evaluation/metrics/coverage/user_coverage_at_n.py +43 -0
  58. warprec-1.0.0/warprec/evaluation/metrics/diversity/__init__.py +9 -0
  59. warprec-1.0.0/warprec/evaluation/metrics/diversity/gini_index.py +95 -0
  60. warprec-1.0.0/warprec/evaluation/metrics/diversity/shannon_entropy.py +76 -0
  61. warprec-1.0.0/warprec/evaluation/metrics/diversity/srecall.py +107 -0
  62. warprec-1.0.0/warprec/evaluation/metrics/fairness/__init__.py +21 -0
  63. warprec-1.0.0/warprec/evaluation/metrics/fairness/biasdisparitybd.py +96 -0
  64. warprec-1.0.0/warprec/evaluation/metrics/fairness/biasdisparitybr.py +124 -0
  65. warprec-1.0.0/warprec/evaluation/metrics/fairness/biasdisparitybs.py +124 -0
  66. warprec-1.0.0/warprec/evaluation/metrics/fairness/itemmadranking.py +130 -0
  67. warprec-1.0.0/warprec/evaluation/metrics/fairness/itemmadrating.py +134 -0
  68. warprec-1.0.0/warprec/evaluation/metrics/fairness/reo.py +154 -0
  69. warprec-1.0.0/warprec/evaluation/metrics/fairness/rsp.py +167 -0
  70. warprec-1.0.0/warprec/evaluation/metrics/fairness/usermadranking.py +121 -0
  71. warprec-1.0.0/warprec/evaluation/metrics/fairness/usermadrating.py +98 -0
  72. warprec-1.0.0/warprec/evaluation/metrics/multiobjective/__init__.py +4 -0
  73. warprec-1.0.0/warprec/evaluation/metrics/multiobjective/euclideandistance.py +115 -0
  74. warprec-1.0.0/warprec/evaluation/metrics/multiobjective/hypervolume.py +134 -0
  75. warprec-1.0.0/warprec/evaluation/metrics/novelty/__init__.py +4 -0
  76. warprec-1.0.0/warprec/evaluation/metrics/novelty/efd.py +100 -0
  77. warprec-1.0.0/warprec/evaluation/metrics/novelty/epc.py +100 -0
  78. warprec-1.0.0/warprec/evaluation/metrics/rating/__init__.py +9 -0
  79. warprec-1.0.0/warprec/evaluation/metrics/rating/mae.py +16 -0
  80. warprec-1.0.0/warprec/evaluation/metrics/rating/mse.py +15 -0
  81. warprec-1.0.0/warprec/evaluation/metrics/rating/rmse.py +21 -0
  82. warprec-1.0.0/warprec/evaluation/statistical_significance.py +323 -0
  83. warprec-1.0.0/warprec/pipelines/__init__.py +5 -0
  84. warprec-1.0.0/warprec/pipelines/design.py +132 -0
  85. warprec-1.0.0/warprec/pipelines/eval.py +209 -0
  86. warprec-1.0.0/warprec/pipelines/train.py +559 -0
  87. warprec-1.0.0/warprec/recommenders/__init__.py +47 -0
  88. warprec-1.0.0/warprec/recommenders/base_recommender.py +722 -0
  89. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/__init__.py +13 -0
  90. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/autoencoder/__init__.py +9 -0
  91. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/autoencoder/cdae.py +218 -0
  92. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/autoencoder/ease.py +47 -0
  93. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/autoencoder/elsa.py +142 -0
  94. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/autoencoder/macridvae.py +324 -0
  95. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/autoencoder/multidae.py +216 -0
  96. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/autoencoder/multivae.py +255 -0
  97. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/autoencoder/sansa.py +197 -0
  98. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/__init__.py +213 -0
  99. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/dgcf.py +336 -0
  100. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/egcf.py +332 -0
  101. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/esigcf.py +288 -0
  102. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/gcmc.py +337 -0
  103. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/graph_utils.py +173 -0
  104. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/lightccf.py +216 -0
  105. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/lightgcl.py +309 -0
  106. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/lightgcn.py +201 -0
  107. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/lightgcnpp.py +278 -0
  108. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/lightgode.py +258 -0
  109. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/mixrec.py +346 -0
  110. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/ngcf.py +349 -0
  111. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/rp3beta.py +186 -0
  112. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/sgcl.py +201 -0
  113. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/sgl.py +306 -0
  114. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/ultragcn.py +268 -0
  115. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/graph_based/xsimgcl.py +239 -0
  116. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/knn/__init__.py +4 -0
  117. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/knn/itemknn.py +52 -0
  118. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/knn/userknn.py +92 -0
  119. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/latent_factor/__init__.py +6 -0
  120. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/latent_factor/admmslim.py +95 -0
  121. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/latent_factor/bpr.py +150 -0
  122. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/latent_factor/fism.py +219 -0
  123. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/latent_factor/slim.py +74 -0
  124. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/neural/__init__.py +4 -0
  125. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/neural/convncf.py +221 -0
  126. warprec-1.0.0/warprec/recommenders/collaborative_filtering_recommender/neural/neumf.py +230 -0
  127. warprec-1.0.0/warprec/recommenders/content_based_recommender/__init__.py +3 -0
  128. warprec-1.0.0/warprec/recommenders/content_based_recommender/vsm.py +147 -0
  129. warprec-1.0.0/warprec/recommenders/context_aware_recommender/__init__.py +10 -0
  130. warprec-1.0.0/warprec/recommenders/context_aware_recommender/afm.py +412 -0
  131. warprec-1.0.0/warprec/recommenders/context_aware_recommender/dcn.py +353 -0
  132. warprec-1.0.0/warprec/recommenders/context_aware_recommender/dcnv2.py +418 -0
  133. warprec-1.0.0/warprec/recommenders/context_aware_recommender/deepfm.py +365 -0
  134. warprec-1.0.0/warprec/recommenders/context_aware_recommender/fm.py +251 -0
  135. warprec-1.0.0/warprec/recommenders/context_aware_recommender/nfm.py +314 -0
  136. warprec-1.0.0/warprec/recommenders/context_aware_recommender/wideanddeep.py +310 -0
  137. warprec-1.0.0/warprec/recommenders/context_aware_recommender/xdeepfm.py +468 -0
  138. warprec-1.0.0/warprec/recommenders/hybrid_recommender/__init__.py +6 -0
  139. warprec-1.0.0/warprec/recommenders/hybrid_recommender/addease.py +59 -0
  140. warprec-1.0.0/warprec/recommenders/hybrid_recommender/attributeitemknn.py +52 -0
  141. warprec-1.0.0/warprec/recommenders/hybrid_recommender/attributeuserknn.py +121 -0
  142. warprec-1.0.0/warprec/recommenders/hybrid_recommender/cease.py +54 -0
  143. warprec-1.0.0/warprec/recommenders/layers.py +159 -0
  144. warprec-1.0.0/warprec/recommenders/loops.py +102 -0
  145. warprec-1.0.0/warprec/recommenders/losses.py +196 -0
  146. warprec-1.0.0/warprec/recommenders/lr_scheduler_wrapper.py +163 -0
  147. warprec-1.0.0/warprec/recommenders/proxy.py +146 -0
  148. warprec-1.0.0/warprec/recommenders/sequential_recommender/__init__.py +23 -0
  149. warprec-1.0.0/warprec/recommenders/sequential_recommender/bert4rec.py +279 -0
  150. warprec-1.0.0/warprec/recommenders/sequential_recommender/caser.py +274 -0
  151. warprec-1.0.0/warprec/recommenders/sequential_recommender/core.py +281 -0
  152. warprec-1.0.0/warprec/recommenders/sequential_recommender/fossil.py +345 -0
  153. warprec-1.0.0/warprec/recommenders/sequential_recommender/gru4rec.py +225 -0
  154. warprec-1.0.0/warprec/recommenders/sequential_recommender/gsasrec.py +303 -0
  155. warprec-1.0.0/warprec/recommenders/sequential_recommender/lightsans.py +399 -0
  156. warprec-1.0.0/warprec/recommenders/sequential_recommender/linrec.py +325 -0
  157. warprec-1.0.0/warprec/recommenders/sequential_recommender/narm.py +255 -0
  158. warprec-1.0.0/warprec/recommenders/sequential_recommender/sasrec.py +254 -0
  159. warprec-1.0.0/warprec/recommenders/similarities.py +80 -0
  160. warprec-1.0.0/warprec/recommenders/trainer/__init__.py +27 -0
  161. warprec-1.0.0/warprec/recommenders/trainer/objectives.py +751 -0
  162. warprec-1.0.0/warprec/recommenders/trainer/scheduler_wrapper.py +76 -0
  163. warprec-1.0.0/warprec/recommenders/trainer/search_algorithm_wrapper.py +110 -0
  164. warprec-1.0.0/warprec/recommenders/trainer/trainer.py +758 -0
  165. warprec-1.0.0/warprec/recommenders/unpersonalized_recommender/__init__.py +4 -0
  166. warprec-1.0.0/warprec/recommenders/unpersonalized_recommender/pop.py +87 -0
  167. warprec-1.0.0/warprec/recommenders/unpersonalized_recommender/random.py +45 -0
  168. warprec-1.0.0/warprec/run.py +66 -0
  169. warprec-1.0.0/warprec/utils/__init__.py +64 -0
  170. warprec-1.0.0/warprec/utils/callback.py +98 -0
  171. warprec-1.0.0/warprec/utils/config/__init__.py +67 -0
  172. warprec-1.0.0/warprec/utils/config/common.py +465 -0
  173. warprec-1.0.0/warprec/utils/config/config.py +434 -0
  174. warprec-1.0.0/warprec/utils/config/dashboard_configuration.py +84 -0
  175. warprec-1.0.0/warprec/utils/config/evaluation_configuration.py +206 -0
  176. warprec-1.0.0/warprec/utils/config/general_configuration.py +193 -0
  177. warprec-1.0.0/warprec/utils/config/model_configuration.py +706 -0
  178. warprec-1.0.0/warprec/utils/config/reader_configuration.py +270 -0
  179. warprec-1.0.0/warprec/utils/config/recommender_model_config/__init__.py +15 -0
  180. warprec-1.0.0/warprec/utils/config/recommender_model_config/collaborative_filtering_config/__init__.py +25 -0
  181. warprec-1.0.0/warprec/utils/config/recommender_model_config/collaborative_filtering_config/autoencoder_config.py +461 -0
  182. warprec-1.0.0/warprec/utils/config/recommender_model_config/collaborative_filtering_config/graph_based_config.py +1301 -0
  183. warprec-1.0.0/warprec/utils/config/recommender_model_config/collaborative_filtering_config/knn_config.py +62 -0
  184. warprec-1.0.0/warprec/utils/config/recommender_model_config/collaborative_filtering_config/latent_factor_config.py +219 -0
  185. warprec-1.0.0/warprec/utils/config/recommender_model_config/collaborative_filtering_config/neural_config.py +384 -0
  186. warprec-1.0.0/warprec/utils/config/recommender_model_config/content_based_config.py +45 -0
  187. warprec-1.0.0/warprec/utils/config/recommender_model_config/context_aware_config.py +708 -0
  188. warprec-1.0.0/warprec/utils/config/recommender_model_config/hybrid_config.py +133 -0
  189. warprec-1.0.0/warprec/utils/config/recommender_model_config/sequential_model_config.py +1465 -0
  190. warprec-1.0.0/warprec/utils/config/recommender_model_config/unpersonalized_config.py +13 -0
  191. warprec-1.0.0/warprec/utils/config/search_space_wrapper.py +109 -0
  192. warprec-1.0.0/warprec/utils/config/splitter_configuration.py +204 -0
  193. warprec-1.0.0/warprec/utils/config/writer_configuration.py +131 -0
  194. warprec-1.0.0/warprec/utils/enums.py +283 -0
  195. warprec-1.0.0/warprec/utils/helpers.py +136 -0
  196. warprec-1.0.0/warprec/utils/logger/__init__.py +3 -0
  197. warprec-1.0.0/warprec/utils/logger/logger.py +126 -0
  198. warprec-1.0.0/warprec/utils/registry.py +128 -0
warprec-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Information Systems Lab @ Polytechnic University of Bari
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
warprec-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,220 @@
1
+ Metadata-Version: 2.3
2
+ Name: warprec
3
+ Version: 1.0.0
4
+ Summary: Unifying Academic Rigor and Industrial Scale for Responsible, Reproducible, and Efficient Recommendation
5
+ Author: MarcoWV
6
+ Author-email: marco.avolio@wideverse.com
7
+ Requires-Python: >=3.12,<3.13
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.12
10
+ Provides-Extra: dashboard
11
+ Provides-Extra: remote-io
12
+ Provides-Extra: serving
13
+ Requires-Dist: azure-identity (>=1.25.1,<2.0.0) ; extra == "remote-io"
14
+ Requires-Dist: azure-storage-blob (>=12.26.0,<13.0.0) ; extra == "remote-io"
15
+ Requires-Dist: codecarbon (>=3.0.0,<4.0.0) ; extra == "dashboard"
16
+ Requires-Dist: fastapi (>=0.135.1,<0.136.0) ; extra == "serving"
17
+ Requires-Dist: fastmcp (>=3.1.0,<4.0.0) ; extra == "serving"
18
+ Requires-Dist: hyperopt (>=0.2.7,<0.3.0)
19
+ Requires-Dist: loguru (>=0.7.3,<0.8.0)
20
+ Requires-Dist: mlflow (>=2.22.0,<3.0.0) ; extra == "dashboard"
21
+ Requires-Dist: narwhals (>=2.15.0,<3.0.0)
22
+ Requires-Dist: numpy (>=2.2.2,<3.0.0)
23
+ Requires-Dist: optuna (>=4.5.0,<5.0.0)
24
+ Requires-Dist: pandas (>=2.2.3,<3.0.0)
25
+ Requires-Dist: polars (>=1.36,<2.0)
26
+ Requires-Dist: pydantic (>=2.10.6,<3.0.0)
27
+ Requires-Dist: ray[data,serve,train,tune] (>=2.45.0,<3.0.0)
28
+ Requires-Dist: scikit-learn (>=1.6.1,<2.0.0)
29
+ Requires-Dist: scipy (>=1.15.1,<2.0.0)
30
+ Requires-Dist: tabulate (>=0.9.0,<0.10.0)
31
+ Requires-Dist: tensorboard (>=2.19.0,<3.0.0)
32
+ Requires-Dist: tensorboardx (>=2.6.2.2,<3.0.0.0)
33
+ Requires-Dist: torch (>=2.7.0,<3.0.0)
34
+ Requires-Dist: torchmetrics (>=1.8.2,<2.0.0)
35
+ Requires-Dist: types-pyyaml (>=6.0.12.20241230,<7.0.0.0)
36
+ Requires-Dist: types-tabulate (>=0.9.0.20241207,<0.10.0.0)
37
+ Requires-Dist: wandb (>=0.19.10,<0.20.0) ; extra == "dashboard"
38
+ Description-Content-Type: text/markdown
39
+
40
+ # ๐Ÿš€ WarpRec
41
+
42
+ [![GitHub release (latest by date)](https://img.shields.io/github/v/release/sisinflab/warprec)](https://github.com/sisinflab/warprec/releases)
43
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
44
+ [![Python 3.12](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/release/python-3120/)
45
+ [![Documentation Status](https://readthedocs.org/projects/warprec/badge/?version=latest)](https://warprec.readthedocs.io/en/latest/)
46
+ [![PyTorch](https://img.shields.io/badge/PyTorch-2.7-ee4c2c?logo=pytorch&logoColor=white)](https://pytorch.org/)
47
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
48
+ [![CodeCarbon](https://img.shields.io/badge/carbon%20tracked-CodeCarbon-brightgreen?logo=leaflet&logoColor=white)](https://codecarbon.io/)
49
+ [![MCP Powered](https://img.shields.io/badge/MCP-powered-blueviolet?logo=anthropic&logoColor=white)](https://modelcontextprotocol.io/)
50
+ [![GitHub Stars](https://img.shields.io/github/stars/sisinflab/warprec?style=social)](https://github.com/sisinflab/warprec)
51
+
52
+ <p align="center">
53
+ <a href="https://warprec.readthedocs.io/en/latest/">
54
+ <img src="https://img.shields.io/badge/๐Ÿ“–%20Read%20the%20Docs-warprec-blue?style=for-the-badge" alt="Read the Docs"/>
55
+ </a>
56
+ </p>
57
+
58
+ WarpRec is a flexible and efficient framework designed for building, training, and evaluating recommendation models. It supports a wide range of configurations, customizable pipelines, and powerful optimization tools to enhance model performance and usability.
59
+
60
+ WarpRec is designed for both beginners and experienced practitioners. For newcomers, it offers a simple and intuitive interface to explore and experiment with state-of-the-art recommendation models. For advanced users, WarpRec provides a modular and extensible architecture that allows rapid prototyping, complex experiment design, and fine-grained control over every step of the recommendation pipeline.
61
+
62
+ Whether you're learning how recommender systems work or conducting high-performance research and development, WarpRec offers the right tools to match your workflow.
63
+
64
+ ## ๐Ÿ—๏ธ Architecture
65
+
66
+ <p align="center">
67
+ <img src="assets/architecture.png" alt="WarpRec Architecture" width="100%"/>
68
+ </p>
69
+
70
+ WarpRec is built on **4 foundational pillars** โ€” Scalability, Green AI, Agentic Readiness, and Scientific Rigor โ€” and organized into **5 modular engines** that manage the end-to-end recommendation lifecycle:
71
+
72
+ 1. **Reader** โ€” Ingests user-item interactions and metadata from local or cloud storage via a backend-agnostic Narwhals abstraction layer.
73
+ 2. **Data Engine** โ€” Applies configurable filtering and splitting strategies to produce clean, leak-free train/validation/test sets.
74
+ 3. **Recommendation Engine** โ€” Trains and optimizes models using PyTorch, with seamless scaling from single-GPU to multi-node Ray clusters.
75
+ 4. **Evaluation Engine** โ€” Computes 40 GPU-accelerated metrics in a single pass with automated statistical significance testing.
76
+ 5. **Writer** โ€” Serializes results, checkpoints, and carbon reports to local or cloud storage.
77
+
78
+ An **Application Layer** exposes trained models through a REST API (FastAPI) and an MCP server for agentic AI workflows.
79
+
80
+ ## ๐Ÿ“š Table of Contents
81
+
82
+ - [โœจ Key Features](#-key-features)
83
+ - [โš™๏ธ Installation](#๏ธ-installation)
84
+ - [๐Ÿ“‹ Prerequisites](#-prerequisites)
85
+ - [๐Ÿ› ๏ธ Setup Guide](#๏ธ-setup-guide)
86
+ - [๐Ÿš‚ Usage](#-usage)
87
+ - [๐Ÿ‹๏ธ Training a model](#๏ธ-training-a-model)
88
+ - [โœ๏ธ Design a model](#๏ธ-design-a-model)
89
+ - [๐Ÿ” Evaluate a model](#-evaluate-a-model)
90
+ - [๐Ÿงฐ Makefile Commands](#-makefile-commands)
91
+ - [๐Ÿค Contributing](#-contributing)
92
+ - [๐Ÿ“œ License](#-license)
93
+ - [๐Ÿ“– Citation](#-citation)
94
+ - [๐Ÿ“ง Contact](#-contact)
95
+
96
+ ## โœจ Key Features
97
+
98
+ - **55 Built-in Algorithms**: WarpRec ships with 55 state-of-the-art recommendation models spanning 6 paradigms โ€” Unpersonalized, Content-Based, Collaborative Filtering (e.g., `LightGCN`, `EASE`$^R$, `MultiVAE`), Context-Aware (e.g., `DeepFM`, `xDeepFM`), Sequential (e.g., `SASRec`, `BERT4Rec`, `GRU4Rec`), and Hybrid. All models are fully configurable and extend a standardized base class, making it easy to prototype custom architectures within the same pipeline.
99
+ - **Backend-Agnostic Data Engine**: Built on [Narwhals](https://narwhals-dev.github.io/narwhals/), WarpRec operates over Pandas, Polars, and Spark without code changes โ€” enabling a true "write-once, run-anywhere" workflow from laptop to distributed cluster. Data ingestion supports both local filesystems and cloud object storage (Azure Blob Storage).
100
+ - **Comprehensive Data Processing**: The data module provides 13 filtering strategies (filter-by-rating, k-core, cold-start heuristics) and 6 splitting protocols (random/temporal Hold-Out, Leave-k-Out, Fixed Timestamp, k-fold Cross-Validation), for a total of 19 configurable strategies to ensure rigorous and reproducible experimental setups.
101
+ - **40 GPU-Accelerated Metrics**: The evaluation suite covers 40 metrics across 7 families โ€” Accuracy, Rating, Coverage, Novelty, Diversity, Bias, and Fairness โ€” including multi-objective metrics for simultaneous optimization of competing goals. All metrics are computed with full GPU acceleration for large-scale experiments.
102
+ - **Statistical Rigor**: WarpRec automates hypothesis testing with paired (Student's t-test, Wilcoxon signed-rank) and independent-group (Mann-Whitney U) tests, and applies multiple comparison corrections via **Bonferroni** and **FDR (Benjamini-Hochberg)** to prevent p-hacking and ensure statistically robust conclusions.
103
+ - **Distributed Training & HPO**: Seamless vertical and horizontal scaling from single-GPU to multi-node Ray clusters. Hyperparameter optimization supports Grid, Random, Bayesian, HyperOpt, Optuna, and BoHB strategies, with ASHA pruning and model-level early stopping to maximize computational efficiency.
104
+ - **Green AI & Carbon Tracking**: WarpRec is the first recommendation framework with native [CodeCarbon](https://codecarbon.io/) integration, automatically quantifying energy consumption and COโ‚‚ emissions for every experiment and persisting carbon footprint reports alongside standard results.
105
+ - **Agentic AI via MCP**: WarpRec natively implements a [Model Context Protocol](https://modelcontextprotocol.io/) server (`infer-api/mcp_server.py`), exposing trained recommenders as callable tools within LLM and autonomous agent workflows โ€” transforming the framework from a static predictor into an interactive, agent-ready component.
106
+ - **REST API & Model Serving**: Trained models are instantly deployable as RESTful microservices via the built-in FastAPI server (`infer-api/server.py`), decoupling the modeling core from serving infrastructure with zero additional engineering effort.
107
+ - **Experiment Tracking**: Native integrations with `TensorBoard`, `Weights & Biases`, and `MLflow` for real-time monitoring of metrics, training dynamics, and multi-run management.
108
+ - **Custom Pipelines & Callbacks**: Beyond the three standard pipelines (Training, Design, Evaluation), WarpRec exposes an event-driven Callback system for injecting custom logic at any stage โ€” enabling complex experiments without modifying framework internals.
109
+
110
+ ## โš™๏ธ Installation
111
+
112
+ WarpRec is designed to be easily installed and reproducible using **Conda**. This ensures that all dependencies and the Python environment are managed consistently. Environment is available both for CPU e GPU.
113
+
114
+ ### ๐Ÿ“‹ Prerequisites
115
+
116
+ - **Git**: To clone the repository.
117
+ - **Conda**: You need either [Anaconda](https://www.anaconda.com/) or [Miniconda](https://docs.conda.io/en/latest/miniconda.html) installed on your system.
118
+
119
+ ### ๐Ÿ› ๏ธ Setup Guide
120
+
121
+ Follow these steps to clone the project and set up the environment:
122
+
123
+ 1. **Clone the repository**
124
+ Open your terminal and clone the WarpRec repository:
125
+ ```bash
126
+ git clone <repository_url>
127
+ cd warprec
128
+ ```
129
+
130
+ 2. **Create the Conda environment**
131
+ Use the provided environment.gpu.yml (or environment.cpu.yml) file to create the virtual environment. This will install Python 3.12 and the necessary core dependencies.
132
+ ```bash
133
+ conda env create --file environment.gpu.yml
134
+ ```
135
+
136
+ 3. **Activate the environment:**
137
+
138
+ ```bash
139
+ conda activate warprec
140
+ ```
141
+
142
+ ## ๐Ÿš‚ Usage
143
+
144
+ ### ๐Ÿ‹๏ธโ€โ™‚๏ธ Training a model
145
+
146
+ To train a model, use the `train` pipeline. Here's an example:
147
+
148
+ 1. Prepare a configuration file (e.g. `config/train_config.yml`) with details
149
+ about the model, dataset and training parameters.
150
+ 2. Start a Ray HEAD node:
151
+ ```bash
152
+ ray start --head
153
+ 3. Run the following command:
154
+ ```bash
155
+ python -m warprec.run -c config/train_config.yml -p train
156
+
157
+ This command starts the training process using the specified configuration file.
158
+
159
+ ### โœ๏ธ Design a model
160
+
161
+ To implement a custom model, WarpRec provides a dedicated design interface via the `design` pipeline. The recommended workflow is as follows:
162
+
163
+ 1. Prepare a configuration file (e.g. `config/design_config.yml`) with details
164
+ about the custom models, dataset and training parameters.
165
+ 2. Run the following command:
166
+ ```bash
167
+ python -m warprec.run -c config/design_config.yml -p design
168
+
169
+ This command initializes a lightweight training pipeline, specifically intended for rapid prototyping and debugging of custom architectures within the framework.
170
+
171
+ ### ๐Ÿ” Evaluate a model
172
+
173
+ To run only evaluation on a model, use the `eval` pipeline. Here's an example:
174
+
175
+ 1. Prepare a configuration file (e.g. `config/eval_config.yml`) with details
176
+ about the model, dataset and training parameters.
177
+ 2. Run the following command:
178
+ ```bash
179
+ python -m warprec.run -c config/eval_config.yml -p eval
180
+
181
+ This command starts the evaluation process using the specified configuration file.
182
+
183
+ ### ๐Ÿงฐ Makefile Commands
184
+
185
+ The project includes a Makefile to simplify common operations:
186
+
187
+ - ๐Ÿงน Run linting:
188
+ ```bash
189
+ make lint
190
+ - ๐Ÿง‘โ€๐Ÿ”ฌ Run tests:
191
+ ```bash
192
+ make test
193
+
194
+ ## ๐Ÿค Contributing
195
+ We welcome contributions from the community! Whether you're fixing bugs, improving documentation, or proposing new features, your input is highly valued.
196
+
197
+ To get started:
198
+
199
+ 1. Fork the repository and create a new branch for your feature or fix.
200
+ 2. Follow the existing coding style and conventions.
201
+ 3. Make sure the code passes all checks by running `make lint`.
202
+ 4. Open a pull request with a clear description of your changes.
203
+
204
+ If you encounter any issues or have questions, feel free to open an issue in the Issues section of the repository.
205
+
206
+ ## ๐Ÿ“œ License
207
+ This project is licensed under the MIT License - see the LICENSE file for details.
208
+
209
+ ## ๐Ÿ“– Citation
210
+ Citation details will be provided in an upcoming release. Stay tuned!
211
+
212
+ ## ๐Ÿ“ง Contact
213
+ For questions or suggestions, feel free to contact us at:
214
+
215
+ * **Marco Avolio** - marco.avolio@wideverse.com
216
+ * **Potito Aghilar** - potito.aghilar@wideverse.com
217
+ * **Sabino Roccotelli** - sabino.roccotelli@wideverse.com
218
+ * **Vito Walter Anelli** - vitowalter.anelli@poliba.it
219
+ * **Joseph Trotta** - joseph.trotta@ovs.it
220
+
@@ -0,0 +1,180 @@
1
+ # ๐Ÿš€ WarpRec
2
+
3
+ [![GitHub release (latest by date)](https://img.shields.io/github/v/release/sisinflab/warprec)](https://github.com/sisinflab/warprec/releases)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![Python 3.12](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/release/python-3120/)
6
+ [![Documentation Status](https://readthedocs.org/projects/warprec/badge/?version=latest)](https://warprec.readthedocs.io/en/latest/)
7
+ [![PyTorch](https://img.shields.io/badge/PyTorch-2.7-ee4c2c?logo=pytorch&logoColor=white)](https://pytorch.org/)
8
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
9
+ [![CodeCarbon](https://img.shields.io/badge/carbon%20tracked-CodeCarbon-brightgreen?logo=leaflet&logoColor=white)](https://codecarbon.io/)
10
+ [![MCP Powered](https://img.shields.io/badge/MCP-powered-blueviolet?logo=anthropic&logoColor=white)](https://modelcontextprotocol.io/)
11
+ [![GitHub Stars](https://img.shields.io/github/stars/sisinflab/warprec?style=social)](https://github.com/sisinflab/warprec)
12
+
13
+ <p align="center">
14
+ <a href="https://warprec.readthedocs.io/en/latest/">
15
+ <img src="https://img.shields.io/badge/๐Ÿ“–%20Read%20the%20Docs-warprec-blue?style=for-the-badge" alt="Read the Docs"/>
16
+ </a>
17
+ </p>
18
+
19
+ WarpRec is a flexible and efficient framework designed for building, training, and evaluating recommendation models. It supports a wide range of configurations, customizable pipelines, and powerful optimization tools to enhance model performance and usability.
20
+
21
+ WarpRec is designed for both beginners and experienced practitioners. For newcomers, it offers a simple and intuitive interface to explore and experiment with state-of-the-art recommendation models. For advanced users, WarpRec provides a modular and extensible architecture that allows rapid prototyping, complex experiment design, and fine-grained control over every step of the recommendation pipeline.
22
+
23
+ Whether you're learning how recommender systems work or conducting high-performance research and development, WarpRec offers the right tools to match your workflow.
24
+
25
+ ## ๐Ÿ—๏ธ Architecture
26
+
27
+ <p align="center">
28
+ <img src="assets/architecture.png" alt="WarpRec Architecture" width="100%"/>
29
+ </p>
30
+
31
+ WarpRec is built on **4 foundational pillars** โ€” Scalability, Green AI, Agentic Readiness, and Scientific Rigor โ€” and organized into **5 modular engines** that manage the end-to-end recommendation lifecycle:
32
+
33
+ 1. **Reader** โ€” Ingests user-item interactions and metadata from local or cloud storage via a backend-agnostic Narwhals abstraction layer.
34
+ 2. **Data Engine** โ€” Applies configurable filtering and splitting strategies to produce clean, leak-free train/validation/test sets.
35
+ 3. **Recommendation Engine** โ€” Trains and optimizes models using PyTorch, with seamless scaling from single-GPU to multi-node Ray clusters.
36
+ 4. **Evaluation Engine** โ€” Computes 40 GPU-accelerated metrics in a single pass with automated statistical significance testing.
37
+ 5. **Writer** โ€” Serializes results, checkpoints, and carbon reports to local or cloud storage.
38
+
39
+ An **Application Layer** exposes trained models through a REST API (FastAPI) and an MCP server for agentic AI workflows.
40
+
41
+ ## ๐Ÿ“š Table of Contents
42
+
43
+ - [โœจ Key Features](#-key-features)
44
+ - [โš™๏ธ Installation](#๏ธ-installation)
45
+ - [๐Ÿ“‹ Prerequisites](#-prerequisites)
46
+ - [๐Ÿ› ๏ธ Setup Guide](#๏ธ-setup-guide)
47
+ - [๐Ÿš‚ Usage](#-usage)
48
+ - [๐Ÿ‹๏ธ Training a model](#๏ธ-training-a-model)
49
+ - [โœ๏ธ Design a model](#๏ธ-design-a-model)
50
+ - [๐Ÿ” Evaluate a model](#-evaluate-a-model)
51
+ - [๐Ÿงฐ Makefile Commands](#-makefile-commands)
52
+ - [๐Ÿค Contributing](#-contributing)
53
+ - [๐Ÿ“œ License](#-license)
54
+ - [๐Ÿ“– Citation](#-citation)
55
+ - [๐Ÿ“ง Contact](#-contact)
56
+
57
+ ## โœจ Key Features
58
+
59
+ - **55 Built-in Algorithms**: WarpRec ships with 55 state-of-the-art recommendation models spanning 6 paradigms โ€” Unpersonalized, Content-Based, Collaborative Filtering (e.g., `LightGCN`, `EASE`$^R$, `MultiVAE`), Context-Aware (e.g., `DeepFM`, `xDeepFM`), Sequential (e.g., `SASRec`, `BERT4Rec`, `GRU4Rec`), and Hybrid. All models are fully configurable and extend a standardized base class, making it easy to prototype custom architectures within the same pipeline.
60
+ - **Backend-Agnostic Data Engine**: Built on [Narwhals](https://narwhals-dev.github.io/narwhals/), WarpRec operates over Pandas, Polars, and Spark without code changes โ€” enabling a true "write-once, run-anywhere" workflow from laptop to distributed cluster. Data ingestion supports both local filesystems and cloud object storage (Azure Blob Storage).
61
+ - **Comprehensive Data Processing**: The data module provides 13 filtering strategies (filter-by-rating, k-core, cold-start heuristics) and 6 splitting protocols (random/temporal Hold-Out, Leave-k-Out, Fixed Timestamp, k-fold Cross-Validation), for a total of 19 configurable strategies to ensure rigorous and reproducible experimental setups.
62
+ - **40 GPU-Accelerated Metrics**: The evaluation suite covers 40 metrics across 7 families โ€” Accuracy, Rating, Coverage, Novelty, Diversity, Bias, and Fairness โ€” including multi-objective metrics for simultaneous optimization of competing goals. All metrics are computed with full GPU acceleration for large-scale experiments.
63
+ - **Statistical Rigor**: WarpRec automates hypothesis testing with paired (Student's t-test, Wilcoxon signed-rank) and independent-group (Mann-Whitney U) tests, and applies multiple comparison corrections via **Bonferroni** and **FDR (Benjamini-Hochberg)** to prevent p-hacking and ensure statistically robust conclusions.
64
+ - **Distributed Training & HPO**: Seamless vertical and horizontal scaling from single-GPU to multi-node Ray clusters. Hyperparameter optimization supports Grid, Random, Bayesian, HyperOpt, Optuna, and BoHB strategies, with ASHA pruning and model-level early stopping to maximize computational efficiency.
65
+ - **Green AI & Carbon Tracking**: WarpRec is the first recommendation framework with native [CodeCarbon](https://codecarbon.io/) integration, automatically quantifying energy consumption and COโ‚‚ emissions for every experiment and persisting carbon footprint reports alongside standard results.
66
+ - **Agentic AI via MCP**: WarpRec natively implements a [Model Context Protocol](https://modelcontextprotocol.io/) server (`infer-api/mcp_server.py`), exposing trained recommenders as callable tools within LLM and autonomous agent workflows โ€” transforming the framework from a static predictor into an interactive, agent-ready component.
67
+ - **REST API & Model Serving**: Trained models are instantly deployable as RESTful microservices via the built-in FastAPI server (`infer-api/server.py`), decoupling the modeling core from serving infrastructure with zero additional engineering effort.
68
+ - **Experiment Tracking**: Native integrations with `TensorBoard`, `Weights & Biases`, and `MLflow` for real-time monitoring of metrics, training dynamics, and multi-run management.
69
+ - **Custom Pipelines & Callbacks**: Beyond the three standard pipelines (Training, Design, Evaluation), WarpRec exposes an event-driven Callback system for injecting custom logic at any stage โ€” enabling complex experiments without modifying framework internals.
70
+
71
+ ## โš™๏ธ Installation
72
+
73
+ WarpRec is designed to be easily installed and reproducible using **Conda**. This ensures that all dependencies and the Python environment are managed consistently. Environment is available both for CPU e GPU.
74
+
75
+ ### ๐Ÿ“‹ Prerequisites
76
+
77
+ - **Git**: To clone the repository.
78
+ - **Conda**: You need either [Anaconda](https://www.anaconda.com/) or [Miniconda](https://docs.conda.io/en/latest/miniconda.html) installed on your system.
79
+
80
+ ### ๐Ÿ› ๏ธ Setup Guide
81
+
82
+ Follow these steps to clone the project and set up the environment:
83
+
84
+ 1. **Clone the repository**
85
+ Open your terminal and clone the WarpRec repository:
86
+ ```bash
87
+ git clone <repository_url>
88
+ cd warprec
89
+ ```
90
+
91
+ 2. **Create the Conda environment**
92
+ Use the provided environment.gpu.yml (or environment.cpu.yml) file to create the virtual environment. This will install Python 3.12 and the necessary core dependencies.
93
+ ```bash
94
+ conda env create --file environment.gpu.yml
95
+ ```
96
+
97
+ 3. **Activate the environment:**
98
+
99
+ ```bash
100
+ conda activate warprec
101
+ ```
102
+
103
+ ## ๐Ÿš‚ Usage
104
+
105
+ ### ๐Ÿ‹๏ธโ€โ™‚๏ธ Training a model
106
+
107
+ To train a model, use the `train` pipeline. Here's an example:
108
+
109
+ 1. Prepare a configuration file (e.g. `config/train_config.yml`) with details
110
+ about the model, dataset and training parameters.
111
+ 2. Start a Ray HEAD node:
112
+ ```bash
113
+ ray start --head
114
+ 3. Run the following command:
115
+ ```bash
116
+ python -m warprec.run -c config/train_config.yml -p train
117
+
118
+ This command starts the training process using the specified configuration file.
119
+
120
+ ### โœ๏ธ Design a model
121
+
122
+ To implement a custom model, WarpRec provides a dedicated design interface via the `design` pipeline. The recommended workflow is as follows:
123
+
124
+ 1. Prepare a configuration file (e.g. `config/design_config.yml`) with details
125
+ about the custom models, dataset and training parameters.
126
+ 2. Run the following command:
127
+ ```bash
128
+ python -m warprec.run -c config/design_config.yml -p design
129
+
130
+ This command initializes a lightweight training pipeline, specifically intended for rapid prototyping and debugging of custom architectures within the framework.
131
+
132
+ ### ๐Ÿ” Evaluate a model
133
+
134
+ To run only evaluation on a model, use the `eval` pipeline. Here's an example:
135
+
136
+ 1. Prepare a configuration file (e.g. `config/eval_config.yml`) with details
137
+ about the model, dataset and training parameters.
138
+ 2. Run the following command:
139
+ ```bash
140
+ python -m warprec.run -c config/eval_config.yml -p eval
141
+
142
+ This command starts the evaluation process using the specified configuration file.
143
+
144
+ ### ๐Ÿงฐ Makefile Commands
145
+
146
+ The project includes a Makefile to simplify common operations:
147
+
148
+ - ๐Ÿงน Run linting:
149
+ ```bash
150
+ make lint
151
+ - ๐Ÿง‘โ€๐Ÿ”ฌ Run tests:
152
+ ```bash
153
+ make test
154
+
155
+ ## ๐Ÿค Contributing
156
+ We welcome contributions from the community! Whether you're fixing bugs, improving documentation, or proposing new features, your input is highly valued.
157
+
158
+ To get started:
159
+
160
+ 1. Fork the repository and create a new branch for your feature or fix.
161
+ 2. Follow the existing coding style and conventions.
162
+ 3. Make sure the code passes all checks by running `make lint`.
163
+ 4. Open a pull request with a clear description of your changes.
164
+
165
+ If you encounter any issues or have questions, feel free to open an issue in the Issues section of the repository.
166
+
167
+ ## ๐Ÿ“œ License
168
+ This project is licensed under the MIT License - see the LICENSE file for details.
169
+
170
+ ## ๐Ÿ“– Citation
171
+ Citation details will be provided in an upcoming release. Stay tuned!
172
+
173
+ ## ๐Ÿ“ง Contact
174
+ For questions or suggestions, feel free to contact us at:
175
+
176
+ * **Marco Avolio** - marco.avolio@wideverse.com
177
+ * **Potito Aghilar** - potito.aghilar@wideverse.com
178
+ * **Sabino Roccotelli** - sabino.roccotelli@wideverse.com
179
+ * **Vito Walter Anelli** - vitowalter.anelli@poliba.it
180
+ * **Joseph Trotta** - joseph.trotta@ovs.it
@@ -0,0 +1,89 @@
1
+ [tool.poetry]
2
+ name = "warprec"
3
+ version = "1.0.0"
4
+ description = "Unifying Academic Rigor and Industrial Scale for Responsible, Reproducible, and Efficient Recommendation"
5
+ authors = [
6
+ "MarcoWV <marco.avolio@wideverse.com>",
7
+ "potitoaghilar <potito.aghilar@wideverse.com>",
8
+ "SabeeenoGH <sabino.roccotelli@wideverse.com>",
9
+ "vitowalteranelli <vitowalter.anelli@poliba.it>",
10
+ "JTOVS <joseph.trotta@ovs.it>"
11
+ ]
12
+ readme = "README.md"
13
+
14
+ [tool.poetry.dependencies]
15
+ python = "~3.12"
16
+ pandas = "^2.2.3"
17
+ scipy = "^1.15.1"
18
+ numpy = "^2.2.2"
19
+ pydantic = "^2.10.6"
20
+ tabulate = "^0.9.0"
21
+ scikit-learn = "^1.6.1"
22
+ hyperopt = "^0.2.7"
23
+ ray = {extras = ["data", "serve", "train", "tune"], version = "^2.45.0"}
24
+ types-pyyaml = "^6.0.12.20241230"
25
+ types-tabulate = "^0.9.0.20241207"
26
+ loguru = "^0.7.3"
27
+ tensorboard = "^2.19.0"
28
+ tensorboardx = "^2.6.2.2"
29
+ torch = "^2.7.0"
30
+ torchmetrics = "^1.8.2"
31
+ optuna = "^4.5.0"
32
+ polars = "^1.36"
33
+ narwhals = "^2.15.0"
34
+ wandb = {version = "^0.19.10", optional = true}
35
+ codecarbon = {version = "^3.0.0", optional = true}
36
+ mlflow = {version = "^2.22.0", optional = true}
37
+ azure-storage-blob = {version = "^12.26.0", optional = true}
38
+ azure-identity = {version = "^1.25.1", optional = true}
39
+ fastapi = {version = "^0.135.1", optional = true}
40
+ fastmcp = {version = "^3.1.0", optional = true}
41
+
42
+
43
+ [tool.poetry.group.dev.dependencies]
44
+ pre-commit = "^4.1.0"
45
+ pytest = "^8.3.4"
46
+ ruff = "^0.9.3"
47
+ pydoclint = "^0.6.0"
48
+ mypy = "^1.14.1"
49
+ pylint = "^3.3.3"
50
+ bandit = "^1.8.2"
51
+ nvitop = "^1.4.2"
52
+ matplotlib = "^3.10.3"
53
+
54
+
55
+ [tool.poetry.requires-plugins]
56
+ poetry-plugin-export = ">=1.8"
57
+
58
+
59
+ [tool.poetry.extras]
60
+ dashboard = [
61
+ "wandb",
62
+ "codecarbon",
63
+ "mlflow",
64
+ ]
65
+ remote-io = [
66
+ "azure-storage-blob",
67
+ "azure-identity",
68
+ ]
69
+ serving = [
70
+ "fastapi",
71
+ "fastmcp",
72
+ ]
73
+
74
+
75
+ [tool.semantic_release]
76
+ version_toml = [
77
+ "pyproject.toml:tool.poetry.version",
78
+ ]
79
+ branch = "main"
80
+ changelog_file = "CHANGELOG.md"
81
+ upload_to_repository = false
82
+ upload_to_release = true
83
+ commit_message = "chore(release): {version} [skip ci]"
84
+ commit_author = "github-actions [bot] <github-actions[bot]@users.noreply.github.com>"
85
+
86
+
87
+ [build-system]
88
+ requires = ["poetry-core"]
89
+ build-backend = "poetry.core.masonry.api"
@@ -0,0 +1,6 @@
1
+ from . import data
2
+ from . import evaluation
3
+ from . import recommenders
4
+ from . import utils
5
+
6
+ __all__ = ["data", "evaluation", "recommenders", "utils"]
@@ -0,0 +1,8 @@
1
+ from .initialize import initialize_datasets, dataset_preparation
2
+ from .optimizers import standard_optimizer
3
+
4
+ __all__ = [
5
+ "initialize_datasets",
6
+ "dataset_preparation",
7
+ "standard_optimizer",
8
+ ]