rapidfireai 0.0.1__py3-none-any.whl → 0.9.9__py3-none-any.whl

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.

Potentially problematic release.


This version of rapidfireai might be problematic. Click here for more details.

Files changed (320) hide show
  1. rapidfireai/__init__.py +11 -5
  2. rapidfireai/automl/__init__.py +20 -0
  3. rapidfireai/automl/base.py +48 -0
  4. rapidfireai/automl/datatypes.py +42 -0
  5. rapidfireai/automl/grid_search.py +125 -0
  6. rapidfireai/automl/model_config.py +102 -0
  7. rapidfireai/automl/random_search.py +145 -0
  8. rapidfireai/backend/__init__.py +0 -0
  9. rapidfireai/backend/chunks.py +63 -0
  10. rapidfireai/backend/controller.py +637 -0
  11. rapidfireai/backend/scheduler.py +137 -0
  12. rapidfireai/backend/worker.py +272 -0
  13. rapidfireai/cli.py +380 -0
  14. rapidfireai/db/__init__.py +0 -0
  15. rapidfireai/db/db_interface.py +135 -0
  16. rapidfireai/db/rf_db.py +694 -0
  17. rapidfireai/db/tables.sql +64 -0
  18. rapidfireai/dispatcher/dispatcher.py +391 -0
  19. rapidfireai/dispatcher/gunicorn.conf.py +25 -0
  20. rapidfireai/experiment.py +168 -0
  21. rapidfireai/frontend/build/asset-manifest.json +276 -0
  22. rapidfireai/frontend/build/favicon.ico +0 -0
  23. rapidfireai/frontend/build/index.html +1 -0
  24. rapidfireai/frontend/build/manifest.json +15 -0
  25. rapidfireai/frontend/build/pdf.worker.js +1 -0
  26. rapidfireai/frontend/build/report.html +39 -0
  27. rapidfireai/frontend/build/static/css/1482.3b7bf531.chunk.css +1 -0
  28. rapidfireai/frontend/build/static/css/2730.3f8937ff.chunk.css +1 -0
  29. rapidfireai/frontend/build/static/css/318.0def90a7.css +7 -0
  30. rapidfireai/frontend/build/static/css/4762.9b7b71f7.chunk.css +1 -0
  31. rapidfireai/frontend/build/static/css/4950.487ecc8b.chunk.css +1 -0
  32. rapidfireai/frontend/build/static/css/5170.2574ce9d.chunk.css +1 -0
  33. rapidfireai/frontend/build/static/css/6121.4d541986.chunk.css +1 -0
  34. rapidfireai/frontend/build/static/css/6343.dd6979f2.chunk.css +1 -0
  35. rapidfireai/frontend/build/static/css/6534.433c213f.chunk.css +1 -0
  36. rapidfireai/frontend/build/static/css/6920.ffac4b2a.css +2 -0
  37. rapidfireai/frontend/build/static/css/7246.bf2f0c87.css +9 -0
  38. rapidfireai/frontend/build/static/css/7367.dd6979f2.chunk.css +1 -0
  39. rapidfireai/frontend/build/static/css/8690.05d081e5.chunk.css +1 -0
  40. rapidfireai/frontend/build/static/css/9531.d0910d3c.chunk.css +1 -0
  41. rapidfireai/frontend/build/static/css/9780.363e4943.chunk.css +1 -0
  42. rapidfireai/frontend/build/static/css/main~d91a9049.c0be472c.css +1 -0
  43. rapidfireai/frontend/build/static/js/1000.e5ed264b.chunk.js +1 -0
  44. rapidfireai/frontend/build/static/js/1012.ac98ab59.chunk.js +1 -0
  45. rapidfireai/frontend/build/static/js/1079.6c13ac0d.js +1 -0
  46. rapidfireai/frontend/build/static/js/110.9059f3b8.chunk.js +1 -0
  47. rapidfireai/frontend/build/static/js/1142.872d0010.chunk.js +1 -0
  48. rapidfireai/frontend/build/static/js/1167.9a6da14c.chunk.js +1 -0
  49. rapidfireai/frontend/build/static/js/1248.60890b4f.chunk.js +1 -0
  50. rapidfireai/frontend/build/static/js/1262.83dc7673.chunk.js +1 -0
  51. rapidfireai/frontend/build/static/js/1273.56da3e13.chunk.js +2 -0
  52. rapidfireai/frontend/build/static/js/1273.56da3e13.chunk.js.LICENSE.txt +9 -0
  53. rapidfireai/frontend/build/static/js/1303.7d19305c.chunk.js +1 -0
  54. rapidfireai/frontend/build/static/js/1351.45076ff3.chunk.js +1 -0
  55. rapidfireai/frontend/build/static/js/1355.b896a592.js +1 -0
  56. rapidfireai/frontend/build/static/js/1357.02c46a02.chunk.js +1 -0
  57. rapidfireai/frontend/build/static/js/1470.c51d60c6.chunk.js +1 -0
  58. rapidfireai/frontend/build/static/js/1482.23b74f50.chunk.js +1 -0
  59. rapidfireai/frontend/build/static/js/1500.19799d8d.chunk.js +1 -0
  60. rapidfireai/frontend/build/static/js/1648.d3b9edc7.chunk.js +1 -0
  61. rapidfireai/frontend/build/static/js/1860.7d96e3f9.chunk.js +1 -0
  62. rapidfireai/frontend/build/static/js/1909.5b1d9ff4.chunk.js +1 -0
  63. rapidfireai/frontend/build/static/js/1928.44245110.chunk.js +2 -0
  64. rapidfireai/frontend/build/static/js/1928.44245110.chunk.js.LICENSE.txt +11 -0
  65. rapidfireai/frontend/build/static/js/1933.deba26ca.chunk.js +1 -0
  66. rapidfireai/frontend/build/static/js/21.aac92802.chunk.js +1 -0
  67. rapidfireai/frontend/build/static/js/2103.0ca12071.chunk.js +1 -0
  68. rapidfireai/frontend/build/static/js/2258.b3b8fab4.chunk.js +1 -0
  69. rapidfireai/frontend/build/static/js/2289.9ad51e87.chunk.js +1 -0
  70. rapidfireai/frontend/build/static/js/2323.7dd927d7.js +2 -0
  71. rapidfireai/frontend/build/static/js/2323.7dd927d7.js.LICENSE.txt +1 -0
  72. rapidfireai/frontend/build/static/js/2346.ed99ca72.chunk.js +1 -0
  73. rapidfireai/frontend/build/static/js/2386.0a660834.chunk.js +1 -0
  74. rapidfireai/frontend/build/static/js/2402.465048f9.chunk.js +1 -0
  75. rapidfireai/frontend/build/static/js/243.5a83bbca.chunk.js +1 -0
  76. rapidfireai/frontend/build/static/js/2589.68571e16.js +1 -0
  77. rapidfireai/frontend/build/static/js/2647.65092bab.chunk.js +1 -0
  78. rapidfireai/frontend/build/static/js/2691.65d4a4e7.js +1 -0
  79. rapidfireai/frontend/build/static/js/2730.b38dd6f3.chunk.js +1 -0
  80. rapidfireai/frontend/build/static/js/2746.ef752da4.chunk.js +1 -0
  81. rapidfireai/frontend/build/static/js/2779.580d4491.chunk.js +1 -0
  82. rapidfireai/frontend/build/static/js/2799.fe5993b2.chunk.js +1 -0
  83. rapidfireai/frontend/build/static/js/2844.9708db79.chunk.js +2 -0
  84. rapidfireai/frontend/build/static/js/2844.9708db79.chunk.js.LICENSE.txt +21 -0
  85. rapidfireai/frontend/build/static/js/2901.ee0c606b.chunk.js +1 -0
  86. rapidfireai/frontend/build/static/js/2932.7cc0689b.chunk.js +2 -0
  87. rapidfireai/frontend/build/static/js/2932.7cc0689b.chunk.js.LICENSE.txt +6 -0
  88. rapidfireai/frontend/build/static/js/2956.a393c8cc.chunk.js +1 -0
  89. rapidfireai/frontend/build/static/js/2972.679bed05.chunk.js +1 -0
  90. rapidfireai/frontend/build/static/js/2985.7e51cdfa.chunk.js +2 -0
  91. rapidfireai/frontend/build/static/js/2985.7e51cdfa.chunk.js.LICENSE.txt +51 -0
  92. rapidfireai/frontend/build/static/js/3093.488df653.js +1 -0
  93. rapidfireai/frontend/build/static/js/3145.66ee61b9.js +1 -0
  94. rapidfireai/frontend/build/static/js/3170.a22f966a.chunk.js +2 -0
  95. rapidfireai/frontend/build/static/js/3170.a22f966a.chunk.js.LICENSE.txt +21 -0
  96. rapidfireai/frontend/build/static/js/3307.f6fb258c.chunk.js +1 -0
  97. rapidfireai/frontend/build/static/js/3325.d5b03d65.js +1 -0
  98. rapidfireai/frontend/build/static/js/3334.2d6704df.chunk.js +2 -0
  99. rapidfireai/frontend/build/static/js/3334.2d6704df.chunk.js.LICENSE.txt +6 -0
  100. rapidfireai/frontend/build/static/js/3387.bb8edad3.chunk.js +1 -0
  101. rapidfireai/frontend/build/static/js/3448.438e6579.chunk.js +1 -0
  102. rapidfireai/frontend/build/static/js/3460.735eea87.chunk.js +1 -0
  103. rapidfireai/frontend/build/static/js/3505.7fd3921a.js +2 -0
  104. rapidfireai/frontend/build/static/js/3505.7fd3921a.js.LICENSE.txt +9 -0
  105. rapidfireai/frontend/build/static/js/3510.cd167a00.js +2 -0
  106. rapidfireai/frontend/build/static/js/3510.cd167a00.js.LICENSE.txt +18 -0
  107. rapidfireai/frontend/build/static/js/3563.cc828e19.chunk.js +1 -0
  108. rapidfireai/frontend/build/static/js/359.08960b84.chunk.js +2 -0
  109. rapidfireai/frontend/build/static/js/359.08960b84.chunk.js.LICENSE.txt +4 -0
  110. rapidfireai/frontend/build/static/js/3608.403b4b79.chunk.js +1 -0
  111. rapidfireai/frontend/build/static/js/3652.cb8add7f.js +1 -0
  112. rapidfireai/frontend/build/static/js/3775.5230b157.chunk.js +1 -0
  113. rapidfireai/frontend/build/static/js/3817.53555d18.js +2 -0
  114. rapidfireai/frontend/build/static/js/3817.53555d18.js.LICENSE.txt +18 -0
  115. rapidfireai/frontend/build/static/js/3835.d9946ff9.chunk.js +1 -0
  116. rapidfireai/frontend/build/static/js/3964.874f0297.chunk.js +1 -0
  117. rapidfireai/frontend/build/static/js/3968.275cbc3d.chunk.js +1 -0
  118. rapidfireai/frontend/build/static/js/3999.765cbd82.chunk.js +1 -0
  119. rapidfireai/frontend/build/static/js/4020.4452c046.chunk.js +1 -0
  120. rapidfireai/frontend/build/static/js/4138.2f6f6d9f.js +1 -0
  121. rapidfireai/frontend/build/static/js/4160.f424554c.js +1 -0
  122. rapidfireai/frontend/build/static/js/4180.50cea095.chunk.js +1 -0
  123. rapidfireai/frontend/build/static/js/4221.b0bba3f5.chunk.js +1 -0
  124. rapidfireai/frontend/build/static/js/4250.5bb49278.chunk.js +1 -0
  125. rapidfireai/frontend/build/static/js/4297.15777d8f.chunk.js +1 -0
  126. rapidfireai/frontend/build/static/js/4349.c965f2de.js +2 -0
  127. rapidfireai/frontend/build/static/js/4349.c965f2de.js.LICENSE.txt +1 -0
  128. rapidfireai/frontend/build/static/js/4484.4cbe5e7f.js +2 -0
  129. rapidfireai/frontend/build/static/js/4484.4cbe5e7f.js.LICENSE.txt +10 -0
  130. rapidfireai/frontend/build/static/js/4578.a8124588.js +1 -0
  131. rapidfireai/frontend/build/static/js/4596.89a97480.js +1 -0
  132. rapidfireai/frontend/build/static/js/4748.566f435a.chunk.js +1 -0
  133. rapidfireai/frontend/build/static/js/4762.928e8a90.chunk.js +1 -0
  134. rapidfireai/frontend/build/static/js/4768.7945be63.js +2 -0
  135. rapidfireai/frontend/build/static/js/4768.7945be63.js.LICENSE.txt +1 -0
  136. rapidfireai/frontend/build/static/js/4804.26b50dd4.chunk.js +1 -0
  137. rapidfireai/frontend/build/static/js/4850.62390a45.chunk.js +1 -0
  138. rapidfireai/frontend/build/static/js/4862.a0ccb221.chunk.js +1 -0
  139. rapidfireai/frontend/build/static/js/491.5dc8ed40.chunk.js +1 -0
  140. rapidfireai/frontend/build/static/js/492.9262f038.chunk.js +2 -0
  141. rapidfireai/frontend/build/static/js/492.9262f038.chunk.js.LICENSE.txt +6 -0
  142. rapidfireai/frontend/build/static/js/4943.6d345fd3.chunk.js +1 -0
  143. rapidfireai/frontend/build/static/js/4950.bc182e62.chunk.js +1 -0
  144. rapidfireai/frontend/build/static/js/5042.d4f0c65a.chunk.js +2 -0
  145. rapidfireai/frontend/build/static/js/5042.d4f0c65a.chunk.js.LICENSE.txt +6 -0
  146. rapidfireai/frontend/build/static/js/5170.0065e96f.chunk.js +1 -0
  147. rapidfireai/frontend/build/static/js/5222.35c74a52.js +2 -0
  148. rapidfireai/frontend/build/static/js/5222.35c74a52.js.LICENSE.txt +10 -0
  149. rapidfireai/frontend/build/static/js/5223.3224f019.chunk.js +2 -0
  150. rapidfireai/frontend/build/static/js/5223.3224f019.chunk.js.LICENSE.txt +3 -0
  151. rapidfireai/frontend/build/static/js/5229.7dd42316.chunk.js +1 -0
  152. rapidfireai/frontend/build/static/js/5286.4c1ad26b.js +1 -0
  153. rapidfireai/frontend/build/static/js/5486.21cff711.chunk.js +1 -0
  154. rapidfireai/frontend/build/static/js/5526.7b368956.chunk.js +1 -0
  155. rapidfireai/frontend/build/static/js/5605.1ee4d87b.chunk.js +1 -0
  156. rapidfireai/frontend/build/static/js/5682.40b42d8b.chunk.js +1 -0
  157. rapidfireai/frontend/build/static/js/5794.9433d867.chunk.js +1 -0
  158. rapidfireai/frontend/build/static/js/5826.38a56e8c.chunk.js +2 -0
  159. rapidfireai/frontend/build/static/js/5826.38a56e8c.chunk.js.LICENSE.txt +1 -0
  160. rapidfireai/frontend/build/static/js/5862.50f42a0b.js +1 -0
  161. rapidfireai/frontend/build/static/js/5895.e26742f1.chunk.js +1 -0
  162. rapidfireai/frontend/build/static/js/5919.edd4a5cf.chunk.js +1 -0
  163. rapidfireai/frontend/build/static/js/598.a0e792ae.js +1 -0
  164. rapidfireai/frontend/build/static/js/6058.74162bf9.chunk.js +1 -0
  165. rapidfireai/frontend/build/static/js/618.06051134.chunk.js +2 -0
  166. rapidfireai/frontend/build/static/js/618.06051134.chunk.js.LICENSE.txt +21 -0
  167. rapidfireai/frontend/build/static/js/6335.9fca442d.chunk.js +1 -0
  168. rapidfireai/frontend/build/static/js/6336.e05e1154.chunk.js +1 -0
  169. rapidfireai/frontend/build/static/js/6343.2bcd28ff.chunk.js +1 -0
  170. rapidfireai/frontend/build/static/js/6363.a319b8f2.chunk.js +1 -0
  171. rapidfireai/frontend/build/static/js/6478.344abf25.chunk.js +1 -0
  172. rapidfireai/frontend/build/static/js/6504.1c004564.js +1 -0
  173. rapidfireai/frontend/build/static/js/6534.ec7e149b.chunk.js +1 -0
  174. rapidfireai/frontend/build/static/js/6715.55a5c19c.chunk.js +1 -0
  175. rapidfireai/frontend/build/static/js/6756.e6cb993c.chunk.js +2 -0
  176. rapidfireai/frontend/build/static/js/6756.e6cb993c.chunk.js.LICENSE.txt +10 -0
  177. rapidfireai/frontend/build/static/js/6762.acfde9fd.chunk.js +2 -0
  178. rapidfireai/frontend/build/static/js/6762.acfde9fd.chunk.js.LICENSE.txt +19 -0
  179. rapidfireai/frontend/build/static/js/6846.67103d0e.chunk.js +1 -0
  180. rapidfireai/frontend/build/static/js/6861.34cf0198.chunk.js +1 -0
  181. rapidfireai/frontend/build/static/js/6899.0eaf36a8.chunk.js +2 -0
  182. rapidfireai/frontend/build/static/js/6899.0eaf36a8.chunk.js.LICENSE.txt +5 -0
  183. rapidfireai/frontend/build/static/js/6933.8b564944.chunk.js +1 -0
  184. rapidfireai/frontend/build/static/js/699.d0437920.js +1 -0
  185. rapidfireai/frontend/build/static/js/7076.4182f63a.chunk.js +1 -0
  186. rapidfireai/frontend/build/static/js/7186.42ad86d5.chunk.js +1 -0
  187. rapidfireai/frontend/build/static/js/7248.a46635fd.js +1 -0
  188. rapidfireai/frontend/build/static/js/725.6b15a14a.chunk.js +1 -0
  189. rapidfireai/frontend/build/static/js/7266.3575539d.chunk.js +1 -0
  190. rapidfireai/frontend/build/static/js/7270.0a1e84fc.chunk.js +2 -0
  191. rapidfireai/frontend/build/static/js/7270.0a1e84fc.chunk.js.LICENSE.txt +6 -0
  192. rapidfireai/frontend/build/static/js/7367.7120474f.chunk.js +1 -0
  193. rapidfireai/frontend/build/static/js/7436.8e226055.js +1 -0
  194. rapidfireai/frontend/build/static/js/7504.ef223844.chunk.js +1 -0
  195. rapidfireai/frontend/build/static/js/7603.ee049fe3.chunk.js +1 -0
  196. rapidfireai/frontend/build/static/js/7670.2835b49a.chunk.js +2 -0
  197. rapidfireai/frontend/build/static/js/7670.2835b49a.chunk.js.LICENSE.txt +6 -0
  198. rapidfireai/frontend/build/static/js/7721.7390b3cc.chunk.js +1 -0
  199. rapidfireai/frontend/build/static/js/7731.5796cced.chunk.js +1 -0
  200. rapidfireai/frontend/build/static/js/775.660a5deb.chunk.js +2 -0
  201. rapidfireai/frontend/build/static/js/775.660a5deb.chunk.js.LICENSE.txt +6 -0
  202. rapidfireai/frontend/build/static/js/7832.7976a3e4.chunk.js +1 -0
  203. rapidfireai/frontend/build/static/js/7844.72cc2e81.chunk.js +1 -0
  204. rapidfireai/frontend/build/static/js/7948.48eab032.js +1 -0
  205. rapidfireai/frontend/build/static/js/7972.085079d4.chunk.js +2 -0
  206. rapidfireai/frontend/build/static/js/7972.085079d4.chunk.js.LICENSE.txt +6 -0
  207. rapidfireai/frontend/build/static/js/8017.a9e7dc5a.chunk.js +1 -0
  208. rapidfireai/frontend/build/static/js/8023.75f1f3df.js +2 -0
  209. rapidfireai/frontend/build/static/js/8023.75f1f3df.js.LICENSE.txt +41 -0
  210. rapidfireai/frontend/build/static/js/8123.b69db974.js +1 -0
  211. rapidfireai/frontend/build/static/js/813.065a87e5.chunk.js +1 -0
  212. rapidfireai/frontend/build/static/js/819.2056f122.chunk.js +2 -0
  213. rapidfireai/frontend/build/static/js/819.2056f122.chunk.js.LICENSE.txt +6 -0
  214. rapidfireai/frontend/build/static/js/8262.04bc17d1.chunk.js +1 -0
  215. rapidfireai/frontend/build/static/js/8300.75adcc4f.chunk.js +1 -0
  216. rapidfireai/frontend/build/static/js/8336.b1d3e764.chunk.js +1 -0
  217. rapidfireai/frontend/build/static/js/8365.26cf64ea.chunk.js +1 -0
  218. rapidfireai/frontend/build/static/js/8398.8bca8e0e.chunk.js +2 -0
  219. rapidfireai/frontend/build/static/js/8398.8bca8e0e.chunk.js.LICENSE.txt +6 -0
  220. rapidfireai/frontend/build/static/js/847.33ceed50.chunk.js +2 -0
  221. rapidfireai/frontend/build/static/js/847.33ceed50.chunk.js.LICENSE.txt +6 -0
  222. rapidfireai/frontend/build/static/js/8486.8ec852a7.chunk.js +1 -0
  223. rapidfireai/frontend/build/static/js/8497.19378265.chunk.js +1 -0
  224. rapidfireai/frontend/build/static/js/8541.4c55c9f4.chunk.js +1 -0
  225. rapidfireai/frontend/build/static/js/8690.e305a804.chunk.js +2 -0
  226. rapidfireai/frontend/build/static/js/8690.e305a804.chunk.js.LICENSE.txt +6 -0
  227. rapidfireai/frontend/build/static/js/8712.a9445fe6.chunk.js +1 -0
  228. rapidfireai/frontend/build/static/js/8763.61761e08.js +1 -0
  229. rapidfireai/frontend/build/static/js/8823.baf9bffd.chunk.js +2 -0
  230. rapidfireai/frontend/build/static/js/8823.baf9bffd.chunk.js.LICENSE.txt +6 -0
  231. rapidfireai/frontend/build/static/js/8867.767462b7.chunk.js +1 -0
  232. rapidfireai/frontend/build/static/js/8953.c0f88dea.chunk.js +1 -0
  233. rapidfireai/frontend/build/static/js/8960.357cb1eb.chunk.js +2 -0
  234. rapidfireai/frontend/build/static/js/8960.357cb1eb.chunk.js.LICENSE.txt +6 -0
  235. rapidfireai/frontend/build/static/js/9.f4492795.chunk.js +2 -0
  236. rapidfireai/frontend/build/static/js/9.f4492795.chunk.js.LICENSE.txt +12 -0
  237. rapidfireai/frontend/build/static/js/9079.88a8d2a3.js +1 -0
  238. rapidfireai/frontend/build/static/js/9082.37c40520.chunk.js +10 -0
  239. rapidfireai/frontend/build/static/js/9133.90ae330d.js +2 -0
  240. rapidfireai/frontend/build/static/js/9133.90ae330d.js.LICENSE.txt +8 -0
  241. rapidfireai/frontend/build/static/js/9151.1ac359d5.js +2 -0
  242. rapidfireai/frontend/build/static/js/9151.1ac359d5.js.LICENSE.txt +8 -0
  243. rapidfireai/frontend/build/static/js/9168.027bf2fd.chunk.js +1 -0
  244. rapidfireai/frontend/build/static/js/9194.9c5cc548.chunk.js +10 -0
  245. rapidfireai/frontend/build/static/js/9244.026f4aee.chunk.js +1 -0
  246. rapidfireai/frontend/build/static/js/936.2e02d037.js +2 -0
  247. rapidfireai/frontend/build/static/js/936.2e02d037.js.LICENSE.txt +6 -0
  248. rapidfireai/frontend/build/static/js/9369.7d1a0a1d.chunk.js +1 -0
  249. rapidfireai/frontend/build/static/js/9427.7c8442e7.chunk.js +1 -0
  250. rapidfireai/frontend/build/static/js/944.55948859.chunk.js +1 -0
  251. rapidfireai/frontend/build/static/js/9499.c53a82da.js +2 -0
  252. rapidfireai/frontend/build/static/js/9499.c53a82da.js.LICENSE.txt +62 -0
  253. rapidfireai/frontend/build/static/js/9531.3ce05781.chunk.js +1 -0
  254. rapidfireai/frontend/build/static/js/9547.92fac952.chunk.js +2 -0
  255. rapidfireai/frontend/build/static/js/9547.92fac952.chunk.js.LICENSE.txt +6 -0
  256. rapidfireai/frontend/build/static/js/9620.b6e973a7.chunk.js +1 -0
  257. rapidfireai/frontend/build/static/js/9645.6fddfa65.chunk.js +1 -0
  258. rapidfireai/frontend/build/static/js/9669.d38dda6d.js +1 -0
  259. rapidfireai/frontend/build/static/js/9682.41b6b807.chunk.js +1 -0
  260. rapidfireai/frontend/build/static/js/9720.19d5ae76.chunk.js +2 -0
  261. rapidfireai/frontend/build/static/js/9720.19d5ae76.chunk.js.LICENSE.txt +23 -0
  262. rapidfireai/frontend/build/static/js/9723.d3c7fe9e.js +1 -0
  263. rapidfireai/frontend/build/static/js/9780.02a27630.chunk.js +10 -0
  264. rapidfireai/frontend/build/static/js/9808.d0ca9674.chunk.js +2 -0
  265. rapidfireai/frontend/build/static/js/9808.d0ca9674.chunk.js.LICENSE.txt +6 -0
  266. rapidfireai/frontend/build/static/js/9815.b8db3c5d.js +1 -0
  267. rapidfireai/frontend/build/static/js/9886.2940b53a.chunk.js +1 -0
  268. rapidfireai/frontend/build/static/js/main~1f912138.fa9d03b1.js +1 -0
  269. rapidfireai/frontend/build/static/js/main~43dd7041.2e00860d.js +1 -0
  270. rapidfireai/frontend/build/static/js/main~84781932.68deffff.js +1 -0
  271. rapidfireai/frontend/build/static/media/404-overflow.fad9a31861b0afba6f921ebb8e769688.svg +32 -0
  272. rapidfireai/frontend/build/static/media/RapidFire_Square_Bug.27ceb48296314a4bc0d4.png +0 -0
  273. rapidfireai/frontend/build/static/media/chart-bar.0fd4a63680fba840a7b69fbf07969f79.svg +7 -0
  274. rapidfireai/frontend/build/static/media/chart-contour.0d4b306f2669f3ad25375568935e3ce3.svg +5 -0
  275. rapidfireai/frontend/build/static/media/chart-difference.16174216d6f3b7c24f40e3541fe0ca2c.svg +20 -0
  276. rapidfireai/frontend/build/static/media/chart-image.cc434c4dc50780966344e2385a15f8fe.svg +6 -0
  277. rapidfireai/frontend/build/static/media/chart-line.0adaa2036bb4eb5956db6d0c7e925a3d.svg +4 -0
  278. rapidfireai/frontend/build/static/media/chart-parallel.da7dedf539b2af4b654d377c679173e4.svg +7 -0
  279. rapidfireai/frontend/build/static/media/chart-scatter.69118d0023a6ff3973f7fa913834ac47.svg +9 -0
  280. rapidfireai/frontend/build/static/media/default-error.f246ddf367c6fbd67942e5a13382a7f1.svg +26 -0
  281. rapidfireai/frontend/build/static/media/fontawesome-webfont.1e59d2330b4c6deb84b3.ttf +0 -0
  282. rapidfireai/frontend/build/static/media/fontawesome-webfont.20fd1704ea223900efa9.woff2 +0 -0
  283. rapidfireai/frontend/build/static/media/fontawesome-webfont.8b43027f47b20503057d.eot +0 -0
  284. rapidfireai/frontend/build/static/media/fontawesome-webfont.c1e38fd9e0e74ba58f7a.svg +2671 -0
  285. rapidfireai/frontend/build/static/media/fontawesome-webfont.f691f37e57f04c152e23.woff +0 -0
  286. rapidfireai/frontend/build/static/media/icon-visible-fill.8d34cd35303828fdfc15154f5536e63b.svg +7 -0
  287. rapidfireai/frontend/build/static/media/no-experiments.0e4f4a114ef73e7d81c09474aba64b6c.svg +22 -0
  288. rapidfireai/frontend/build/static/media/parallel-chart-placeholder.234ef0c5b220ef2a5a6fa5bafff173f7.svg +16 -0
  289. rapidfireai/frontend/build/static/media/permission-denied-lock.16036747d57cd663d7df223781a447b2.svg +14 -0
  290. rapidfireai/frontend/build/static/media/promo-modal-content.e3b2c6c568ac192b9bec54b838b54850.svg +30 -0
  291. rapidfireai/frontend/build/static/media/registered-model-grey-ok.8274b58d39504c8d1b8c358aa1c9aa35.svg +23 -0
  292. rapidfireai/frontend/build/static/media/warning.290a3b14118933547965e91ea61c5a61.svg +3 -0
  293. rapidfireai/frontend/proxy_middleware.py +233 -0
  294. rapidfireai/frontend/server.py +25 -0
  295. rapidfireai/ml/__init__.py +0 -0
  296. rapidfireai/ml/callbacks.py +176 -0
  297. rapidfireai/ml/checkpoint_utils.py +540 -0
  298. rapidfireai/ml/trainer.py +309 -0
  299. rapidfireai/start.sh +634 -0
  300. rapidfireai/utils/__init__.py +0 -0
  301. rapidfireai/utils/automl_utils.py +51 -0
  302. rapidfireai/utils/constants.py +141 -0
  303. rapidfireai/utils/datapaths.py +69 -0
  304. rapidfireai/utils/exceptions.py +82 -0
  305. rapidfireai/utils/experiment_utils.py +370 -0
  306. rapidfireai/utils/logging.py +87 -0
  307. rapidfireai/utils/mlflow_manager.py +121 -0
  308. rapidfireai/utils/serialize.py +15 -0
  309. rapidfireai/utils/shm_manager.py +469 -0
  310. rapidfireai/utils/trainer_config.py +23 -0
  311. rapidfireai/utils/worker_manager.py +219 -0
  312. rapidfireai/version.py +6 -0
  313. rapidfireai-0.9.9.dist-info/METADATA +242 -0
  314. rapidfireai-0.9.9.dist-info/RECORD +318 -0
  315. rapidfireai-0.9.9.dist-info/entry_points.txt +2 -0
  316. rapidfireai-0.0.1.dist-info/METADATA +0 -37
  317. rapidfireai-0.0.1.dist-info/RECORD +0 -6
  318. {rapidfireai-0.0.1.dist-info → rapidfireai-0.9.9.dist-info}/WHEEL +0 -0
  319. {rapidfireai-0.0.1.dist-info → rapidfireai-0.9.9.dist-info}/licenses/LICENSE +0 -0
  320. {rapidfireai-0.0.1.dist-info → rapidfireai-0.9.9.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,309 @@
1
+ import os
2
+ from typing import Union
3
+
4
+ import torch
5
+ from peft import LoraConfig, get_peft_model_state_dict, set_peft_model_state_dict
6
+ from transformers.utils.logging import set_verbosity_error
7
+ from trl import DPOConfig, DPOTrainer, GRPOConfig, GRPOTrainer, SFTConfig, SFTTrainer
8
+
9
+ from rapidfireai.ml.callbacks import GenerationMetricsCallback, MLflowLoggingCallback
10
+ from rapidfireai.ml.checkpoint_utils import (
11
+ ensure_gradient_compatibility,
12
+ load_checkpoint_from_disk,
13
+ load_checkpoint_from_shared_memory,
14
+ load_or_create_ref_model,
15
+ move_tensors_to_cpu,
16
+ move_tensors_to_device,
17
+ restore_trainer_from_disk,
18
+ restore_trainer_from_shared_memory,
19
+ )
20
+ from rapidfireai.utils.constants import SHMObjectType
21
+ from rapidfireai.utils.datapaths import DataPath
22
+ from rapidfireai.utils.shm_manager import SharedMemoryManager
23
+ from rapidfireai.utils.trainer_config import TrainerConfig
24
+
25
+ set_verbosity_error()
26
+
27
+
28
+ def create_trainer_instance(
29
+ trainer_config: TrainerConfig,
30
+ shm_manager: SharedMemoryManager,
31
+ use_shared_memory: bool = False,
32
+ mlflow_manager=None,
33
+ chunk_id: int = 0,
34
+ ) -> tuple[Union[SFTTrainer, DPOTrainer, GRPOTrainer, None], str]:
35
+ """
36
+ Create a trainer instance with proper state restoration.
37
+ """
38
+ os.environ["CUDA_VISIBLE_DEVICES"] = str(trainer_config.worker_id)
39
+ device = "cuda:0"
40
+
41
+ trainer = None
42
+ config_leaf = trainer_config.config_leaf
43
+ trainer_type = config_leaf.get("trainer_type", "SFT")
44
+ training_args = config_leaf.get("training_args", {})
45
+ additional_trainer_kwargs = config_leaf.get("additional_kwargs", {})
46
+ compute_metrics = additional_trainer_kwargs.get("compute_metrics", None)
47
+
48
+ # Configure training arguments
49
+ training_args = _configure_training_args(training_args)
50
+ trainer_config_obj = _create_trainer_config_object(trainer_type, training_args)
51
+ # check if peft params is empty dict
52
+ if config_leaf.get("peft_params") == {}:
53
+ is_peft = False
54
+ else:
55
+ is_peft = True
56
+ # Load model and tokenizer
57
+ if use_shared_memory:
58
+ model_instance, tokenizer = load_checkpoint_from_shared_memory(trainer_config, shm_manager, is_peft=is_peft)
59
+ else:
60
+ model_instance, tokenizer = load_checkpoint_from_disk(trainer_config, is_peft=is_peft)
61
+ # add model name to model config
62
+ config_leaf["model_name"] = model_instance.config._name_or_path
63
+
64
+ # Handle reference model for DPO
65
+ ref_model_instance = None
66
+ if config_leaf.get("trainer_type") == "DPO":
67
+ model_instance, ref_model_instance = _setup_reference_model(
68
+ model_instance, trainer_config, config_leaf, use_shared_memory, shm_manager, device, is_peft
69
+ )
70
+
71
+ model_instance = model_instance.to(device)
72
+
73
+ trainer_kwargs, formatting_func, additional_trainer_kwargs = _prepare_trainer_kwargs(
74
+ model_instance,
75
+ trainer_config_obj,
76
+ tokenizer,
77
+ trainer_config,
78
+ additional_trainer_kwargs,
79
+ ref_model_instance,
80
+ config_leaf,
81
+ )
82
+
83
+ callbacks, additional_trainer_kwargs = _setup_callbacks( # FIXME: avoid returning additional_trainer_kwargs
84
+ mlflow_manager,
85
+ trainer_config,
86
+ chunk_id,
87
+ compute_metrics,
88
+ additional_trainer_kwargs,
89
+ tokenizer,
90
+ training_args,
91
+ formatting_func,
92
+ )
93
+
94
+ if callbacks:
95
+ trainer_kwargs["callbacks"] = callbacks
96
+
97
+ trainer_kwargs.update(additional_trainer_kwargs)
98
+ trainer_kwargs = {k: v for k, v in trainer_kwargs.items() if v is not None}
99
+
100
+ trainer = _create_trainer_by_type(trainer_type, trainer_kwargs, trainer_config, use_shared_memory, shm_manager)
101
+ return trainer, config_leaf["model_name"]
102
+
103
+
104
+ def _configure_training_args(training_args: dict) -> dict:
105
+ """Configure training arguments with default values."""
106
+ training_args.pop("max_steps", None)
107
+ training_args["num_train_epochs"] = 1
108
+ training_args["save_strategy"] = "no"
109
+ training_args["do_train"] = True
110
+ training_args["do_eval"] = True
111
+ training_args["dataloader_pin_memory"] = False
112
+ training_args["no_cuda"] = False
113
+ training_args["local_rank"] = -1
114
+ training_args["disable_tqdm"] = True
115
+
116
+ if "save_steps" in training_args:
117
+ training_args.pop("save_steps")
118
+
119
+ return training_args
120
+
121
+
122
+ def _create_trainer_config_object(trainer_type: str, training_args: dict):
123
+ """Create the appropriate trainer config object based on trainer type."""
124
+ if trainer_type == "SFT":
125
+ return SFTConfig(**training_args)
126
+ elif trainer_type == "DPO":
127
+ return DPOConfig(**training_args)
128
+ elif trainer_type == "GRPO":
129
+ return GRPOConfig(**training_args)
130
+ else:
131
+ raise ValueError(f"Unsupported trainer type: {trainer_type}")
132
+
133
+
134
+ def _setup_reference_model(
135
+ model_instance, trainer_config, config_leaf, use_shared_memory, shm_manager, device, is_peft
136
+ ):
137
+ """Setup reference model for DPO training."""
138
+ ref_model_instance = None
139
+ training_args = config_leaf.get("training_args", {})
140
+ if is_peft and not training_args.get("force_use_ref_model", False):
141
+ model_adapter_name = training_args.get("model_adapter_name", "default")
142
+ ref_adapter_name = training_args.get("ref_adapter_name", "reference")
143
+
144
+ if model_adapter_name is not None and ref_adapter_name is not None:
145
+ if use_shared_memory:
146
+ peft_config = LoraConfig(**config_leaf["peft_params"])
147
+ if trainer_config.completed_steps == 0 and trainer_config.warm_started_from is None:
148
+ reference_state_dict = get_peft_model_state_dict(model_instance)
149
+ reference_state_dict = move_tensors_to_cpu(reference_state_dict)
150
+ shm_manager.save_model_object(
151
+ trainer_config.run_id, SHMObjectType.REF_STATE_DICT, reference_state_dict
152
+ )
153
+ else:
154
+ reference_state_dict = shm_manager.load_model_object(
155
+ trainer_config.run_id, SHMObjectType.REF_STATE_DICT
156
+ )
157
+ reference_state_dict = move_tensors_to_device(reference_state_dict, device)
158
+ model_instance.add_adapter(ref_adapter_name, peft_config)
159
+ model_instance.set_adapter(ref_adapter_name)
160
+ set_peft_model_state_dict(model_instance, reference_state_dict, adapter_name=ref_adapter_name)
161
+ model_instance.set_adapter(model_adapter_name)
162
+ else:
163
+ base_run_path = DataPath.base_run_path(trainer_config.run_id)
164
+ ref_model_path = DataPath.ref_model_path(base_run_path)
165
+ reference_adapter_path = ref_model_path / "reference"
166
+
167
+ if not reference_adapter_path.exists():
168
+ os.makedirs(reference_adapter_path, exist_ok=True)
169
+ model_instance.save_pretrained(reference_adapter_path)
170
+ torch.cuda.empty_cache()
171
+ model_instance.load_adapter(
172
+ reference_adapter_path, adapter_name=ref_adapter_name, device_map={"": device}
173
+ )
174
+ model_instance.set_adapter(model_adapter_name)
175
+ model_instance = model_instance.to(device)
176
+ else:
177
+ ref_model_instance = load_or_create_ref_model(
178
+ model_instance, trainer_config, device, use_shared_memory, shm_manager
179
+ )
180
+ ref_model_instance = ref_model_instance.to(device)
181
+ return model_instance, ref_model_instance
182
+
183
+
184
+ def _prepare_trainer_kwargs(
185
+ model_instance,
186
+ trainer_config_obj,
187
+ tokenizer,
188
+ trainer_config,
189
+ additional_trainer_kwargs,
190
+ ref_model_instance,
191
+ config_leaf,
192
+ ):
193
+ """Prepare keyword arguments for trainer creation."""
194
+ if config_leaf.get("trainer_type") == "DPO ":
195
+ model_instance = ensure_gradient_compatibility(
196
+ model_instance, hasattr(model_instance, "peft_config")
197
+ ) # FIXME: change function for DPO
198
+ trainer_kwargs = {
199
+ "model": model_instance,
200
+ "args": trainer_config_obj,
201
+ "processing_class": tokenizer,
202
+ }
203
+
204
+ train_dataset = trainer_config.train_dataset
205
+ eval_dataset = trainer_config.eval_dataset
206
+ formatting_func = None
207
+
208
+ if additional_trainer_kwargs.get("formatting_func") is not None:
209
+ formatting_func = additional_trainer_kwargs.get("formatting_func")
210
+ train_dataset = train_dataset.map(formatting_func) # FIXME: add try exception with batched/unbatched
211
+ if eval_dataset is not None:
212
+ eval_dataset = eval_dataset.map(formatting_func)
213
+ additional_trainer_kwargs_copy = additional_trainer_kwargs.copy()
214
+ additional_trainer_kwargs_copy.pop("formatting_func")
215
+ additional_trainer_kwargs = additional_trainer_kwargs_copy
216
+
217
+ trainer_kwargs["train_dataset"] = train_dataset
218
+ if eval_dataset is not None:
219
+ trainer_kwargs["eval_dataset"] = eval_dataset
220
+
221
+ if config_leaf.get("trainer_type") == "DPO" and ref_model_instance is not None:
222
+ trainer_kwargs["ref_model"] = ref_model_instance
223
+
224
+ if config_leaf.get("trainer_type") == "GRPO":
225
+ reward_funcs = config_leaf.get("reward_funcs")
226
+ if reward_funcs is not None:
227
+ trainer_kwargs["reward_funcs"] = reward_funcs
228
+
229
+ return trainer_kwargs, formatting_func, additional_trainer_kwargs
230
+
231
+
232
+ def _setup_callbacks(
233
+ mlflow_manager,
234
+ trainer_config,
235
+ chunk_id,
236
+ compute_metrics,
237
+ additional_trainer_kwargs,
238
+ tokenizer,
239
+ training_args,
240
+ formatting_func,
241
+ ):
242
+ """Setup callbacks for the trainer."""
243
+ callbacks = []
244
+
245
+ if mlflow_manager is not None and trainer_config.mlflow_run_id is not None:
246
+ mlflow_callback = MLflowLoggingCallback(
247
+ mlflow_manager=mlflow_manager,
248
+ mlflow_run_id=trainer_config.mlflow_run_id,
249
+ completed_steps=trainer_config.completed_steps,
250
+ chunk_id=chunk_id,
251
+ num_epochs_completed=trainer_config.num_epochs_completed,
252
+ )
253
+ callbacks.append(mlflow_callback)
254
+
255
+ if compute_metrics is not None and additional_trainer_kwargs.get("generation_config") is not None:
256
+ compute_metrics_function = compute_metrics
257
+ if formatting_func is not None:
258
+ formatted_eval_dataset = trainer_config.eval_dataset.map(formatting_func)
259
+ else:
260
+ formatted_eval_dataset = trainer_config.eval_dataset
261
+
262
+ generation_callback = GenerationMetricsCallback(
263
+ tokenizer=tokenizer,
264
+ eval_dataset=formatted_eval_dataset,
265
+ generation_config=additional_trainer_kwargs.get("generation_config"),
266
+ compute_metrics=compute_metrics_function,
267
+ batch_size=training_args.get("per_device_eval_batch_size"),
268
+ mlflow_manager=mlflow_manager,
269
+ mlflow_run_id=trainer_config.mlflow_run_id,
270
+ completed_steps=trainer_config.completed_steps,
271
+ )
272
+ callbacks.append(generation_callback)
273
+ additional_trainer_kwargs.pop("generation_config")
274
+ additional_trainer_kwargs.pop("compute_metrics")
275
+
276
+ return callbacks, additional_trainer_kwargs
277
+
278
+
279
+ def _create_trainer_by_type(trainer_type, trainer_kwargs, trainer_config, use_shared_memory, shm_manager):
280
+ """Create trainer instance based on type with proper state restoration."""
281
+ if trainer_type == "SFT":
282
+ dummy_trainer = SFTTrainer(**trainer_kwargs)
283
+ dummy_trainer.create_optimizer_and_scheduler(num_training_steps=trainer_config.total_steps)
284
+ trainer = SFTTrainer(**trainer_kwargs, optimizers=(dummy_trainer.optimizer, dummy_trainer.lr_scheduler))
285
+ del dummy_trainer
286
+
287
+ elif trainer_type == "DPO":
288
+ dummy_trainer = DPOTrainer(**trainer_kwargs)
289
+ dummy_trainer.create_optimizer_and_scheduler(num_training_steps=trainer_config.total_steps)
290
+ trainer = DPOTrainer(**trainer_kwargs, optimizers=(dummy_trainer.optimizer, dummy_trainer.lr_scheduler))
291
+ num_trainable = sum(p.requires_grad for _, p in trainer.model.named_parameters())
292
+ num_opt_params = sum(len(g["params"]) for g in trainer.optimizer.state_dict()["param_groups"])
293
+ del dummy_trainer
294
+
295
+ elif trainer_type == "GRPO":
296
+ dummy_trainer = GRPOTrainer(**trainer_kwargs)
297
+ dummy_trainer.create_optimizer_and_scheduler(num_training_steps=trainer_config.total_steps)
298
+ trainer = GRPOTrainer(**trainer_kwargs, optimizers=(dummy_trainer.optimizer, dummy_trainer.lr_scheduler))
299
+ del dummy_trainer
300
+ else:
301
+ raise ValueError(f"Unsupported trainer type: {trainer_type}")
302
+
303
+ if trainer_config.completed_steps > 0:
304
+ if use_shared_memory:
305
+ trainer = restore_trainer_from_shared_memory(trainer, trainer_config, shm_manager)
306
+ else:
307
+ trainer = restore_trainer_from_disk(trainer, trainer_config)
308
+
309
+ return trainer