From 601a9c27aa4ca1edf408e8d108c8692dfefa58de Mon Sep 17 00:00:00 2001 From: Sami Jaghouar Date: Wed, 12 Feb 2025 19:15:44 -0800 Subject: [PATCH 01/13] wip clean Signed-off-by: Sami Jaghouar --- .gitmodules | 3 - INTELLECT_1_Technical_Report.pdf | Bin 1462229 -> 0 bytes README.md | 184 +-------------- scripts/install/install.sh => install.sh | 0 scripts/all_reduce.py | 69 ------ scripts/bandwith/down.sh | 24 -- scripts/bandwith/up.sh | 1 - scripts/convert_dl_ckpt.sh | 35 --- scripts/convert_dl_state.py | 141 ------------ scripts/export_dcp.py | 228 ------------------- scripts/simple_gloo.py | 17 -- scripts/simulate_multi_node_diloco.sh | 90 -------- scripts/skip_data.py | 88 -------- scripts/subset_data.py | 120 ---------- tests/test_c/conftest.py | 41 ---- tests/test_c/test_collectives.py | 68 ------ tests/test_c/test_compression.py | 78 ------- tests/test_configs.py | 29 --- tests/test_data.py | 272 ----------------------- tests/test_dist/conftest.py | 85 ------- tests/test_dist/test_comms.py | 237 -------------------- tests/test_dist/test_diloco.py | 64 ------ tests/test_dist/test_send_state_dict.py | 110 --------- tests/test_model.py | 227 ------------------- tests/test_torchrun/test_train.py | 269 ---------------------- third_party/gloo | 1 - 26 files changed, 2 insertions(+), 2479 deletions(-) delete mode 100644 .gitmodules delete mode 100644 INTELLECT_1_Technical_Report.pdf rename scripts/install/install.sh => install.sh (100%) delete mode 100644 scripts/all_reduce.py delete mode 100755 scripts/bandwith/down.sh delete mode 100755 scripts/bandwith/up.sh delete mode 100755 scripts/convert_dl_ckpt.sh delete mode 100755 scripts/convert_dl_state.py delete mode 100644 scripts/export_dcp.py delete mode 100644 scripts/simple_gloo.py delete mode 100755 scripts/simulate_multi_node_diloco.sh delete mode 100644 scripts/skip_data.py delete mode 100644 scripts/subset_data.py delete mode 100644 tests/test_c/conftest.py delete mode 100644 tests/test_c/test_collectives.py delete mode 100644 tests/test_c/test_compression.py delete mode 100644 tests/test_configs.py delete mode 100644 tests/test_data.py delete mode 100644 tests/test_dist/conftest.py delete mode 100644 tests/test_dist/test_comms.py delete mode 100644 tests/test_dist/test_diloco.py delete mode 100644 tests/test_dist/test_send_state_dict.py delete mode 100644 tests/test_model.py delete mode 100644 tests/test_torchrun/test_train.py delete mode 160000 third_party/gloo diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 310e7160..00000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "third_party/gloo"] - path = third_party/gloo - url = https://github.com/facebookincubator/gloo.git diff --git a/INTELLECT_1_Technical_Report.pdf b/INTELLECT_1_Technical_Report.pdf deleted file mode 100644 index 60bc65009efbacc986afa6bcec07b7c0a2ab3050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1462229 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 z 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

kd83@Z-dj;f#Ca-Vw+5 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

ST zGyg0mhq%miGC4vk2O~c1#{smz?Uq3%Ay*qAhL36hAlF2#_wJ7;9}|vQUcJLi3Gck9 zqIfs#51^!#cRss6B74_HB+4H2hrmASS*T_7E4weFMMe{beWI+ojAW5h`yGQnY0@OGSZC;9Aplr2he|YW z6ylFg@bX3Q{EPOc)0w(?JzGXa4Yu|LQ0e^ZRMb=mOh86cva!aWH{{Cp8ArTm+00wxmC2v{- z-%+o!@|tnvmJlvX~<1jgsn{wz5|XwOYpwnwL*C+=#thhG2el)>y{bG2!XQ?2$t z^1{N>72d50&Kpd4!b%R*HzlKs_cn%dwVsJ7Xf-TMcUo6wI>-E$Z@zleU;&% zJk6Srg74MGRBA43^A8>-{xul2e zOY%pHVt8W3$k$za{cZ#L=dG7W-??_0Q)9D6qHwZH8D&4aRM5QnM zaOPv3fk`oO6U)ApkEpY4(GwDod|0CM2(L`{5L^xf3DR~r?-Kp~BESoM+1Uc35;*b> zg43Ir?>lz$8Y!v)fLSQHRw|rfos#q|KcbJ^yKf;tN;w10${2Cs4NB^746!jlMpWN!>t(( zA~@Itc9dCZOEqzBez<(kYIP9^H&R!;>tZkK20DGBd88d0+3i{Rd}FSaDv%J)l?eC% zCjc8CB&X6R`+Q(ofK^kVKYkN)TDJ)>IdNu>OruG*AiToPEiefvX@&YSay7zRz!_mT z7;|Z1;FgFeCSk3}vmeg{GCWT!J6I}tV+3iL>@VV{dj#YgKo1hViLvP3jx&5g4EcY8 z!&W%uvDh6F;um?;;&k6~d$w6kd=oQPh1LordwQPsnwOmJrk?KMx$ymg>(Kwjv0YEi z`*LMOJ5aO!UKud1y0>X(5LS8D^Dojlew@9I9Nd#HW~@)tRUONzCl71rt5gmk9qW!P zNyl`6uItb<1+>+8TrXH~R+$b^u5^;LM2-emhA)Nj6mvPkm=1yLcHro3F5@&^-y9mP zSn{|O&bcc}4pY@PJ%vGOD%k+2j752xa2!!QdnplfCh!OZRKBrtZ`U|{&yxB&+3-#> zNVmaO4SDH_Nosf989~oL zuy6A`v=Zo;?#aH=+w@lzVY-6%C*azn`KkQwbnb58zzt_7p4OL{6(&+~ThJjJe;igyWvR=u#X%FRwhonZ2px@Yw|&Px7B8?>?m^FJ0ke4`%m zo3#C|ieEQ+n=M#QBFg3kl}^GvyP^KQlZwMP(o7Ds%+X~KXBp0 zbN#l{+h=X)6Rm;|Ht}K^Q!{EB=1zb?QN1Kp&fijLI;JVG2jjha08m^v$iNf<3W4Z- z8}hl(mb`HDC7cM<`rs$;TZZ%Xt^+g}?Mr*hr-(L?XVE#~TMVFXnx%+OA%I;~{f*&r zj=R{g2F{*?;vgJGm$~)#y6V-H>ThSRu?h>~!Z;+o6m?a^gYw~hlvlVrwibX?Jq0)_ zBjmZH{l;oOW`sQsh{n~5MsNsOP7{el^~&;Z^8Y%%|8HC@F;Wal&Mv5_s=g%jud%GB zYV3-?zb$|2SCGA!kt{^mAT=Zf83_wnm`d@`3pZ>7XIbXny~oHKztau_PxmooJ=;dX zn3wNG9|Ck#>NiyRTV(v{Ewv0A8P|oizCOlBz#S7Aff${RYpvx$8BxE^%K07k>898M z(9=0UA?@-C^SAoP*c{`tXU|r&-r&(Dbu&}Oeh3#XwyguAIyp3;M~PKhPR@DuX@o=G zoC`sWh5N+y^89YwtFE~{02iztBpa*;wsV&3hjYt2PuEkJZ6{zlqS&(o%lZaaq`&YXvSXiEP*OHgjK91E-bW6>;BNdWB?4RMA!_p}?QoVx|e< zF{J*rf*PPb2;@;JG}Fvw3+4H%Oy6K$TVK}^2uWV-O^tr!pd5HwQigzSNOAMp>FMbYV19}!Ee6-5i!KUB5uT0{9r0paoC0%Y$v(H!s?SeJ;^OYMO zYXE}h^%J9z;?XEdUKu#K_VancxJ(SR-PV)2syEMV>Y|M<>-L@doeW9{|%zgRJnjV z7oO4!-dmzqSX>HPigh2Vu)y!ATV}E<_fY>`KT{b%=XfW%)%yTA|4euB%I5+H5f+C0FUA*5 zuRXt2dJJ6l1F$1-fJXcLxgAi7KMA!VCdKC}p~jb9YN&O;ZquzUPr?HGXG8U-v$xe+ zYw%xG=Ko*O7(iJr_Sa;95V#4blfJ1%rW6ebe2Kz0uD83Jwl(iv-Z3{W9D4vq?? zm^1X??W-^CBIqov<-#T?FW%3Y%|RJ^+eaTV0jJ@Eo2IS78ZF zOW+#UrM_STvNJVR=)+iAq(z-Lx_+l^77bF654_j}7$f-~PyhP$E7p;%cIaYk43(Vk zfuYJJSBX=kBi0Ww!{8dfNZE1ZF4s<)OrubHnrL_P2PJ_UidaJGb=he`pJ_g9xv}X>ag@aec^6M zzvK#BA#}s+=6BIhBlzhCR~3_pN%I?#AX(9I4gHrwjpou*Tlr z#VM5J>F@T=INBT65ms*B@E%kYkJz)VERT;*R5)yeMSutb+$b;Bu_ClDb#I%&Ipu^Whz* zA1O^oU+pF7ehGzP@__=0hLLI*BgyQA!f$EH1{Q8LsA@O=Fx!44$7?#OsMw;Y1V2qo zdcV3iG^9#$^!b4O8q?DwS48I0de9?pLzGQUg&(gSxz-58RtU~@H9s;{;!!BKGuZ+B zBHvXJ4~Bg#t=jx6p{Zr|O5dXY-njY=g?gIz)NenTr}h5ep_weRiV)X|sVR8KNnXux zYP|+}LXMA*2l80$CGKLb5*fQl-9>%Jrg|MM8Smr0@%`196U59zF9V6~9M9JD1Ov*y z6XoAO@!y^e%BOq)i{vo_NRPN~cOZjqMslzIYn-;OB$)Iw1P^C1d9fIo=a~6^WE6 z`om~dBB%6Qhpi{lE=^GQ@$zCSNj$1Pn(}k&qvN~D_Dh#%j;~V?0S^>6`SzvW(gxS^ zPm8@LVE9H7eEG6ito-Q@RbFXcKEsI54oy!XI~PH#N~UHrEW2{vI~h~CU1L5jvepNl z=~uf>g#J#NG@!)KXYfkj-5Q3&G%ogs9adjd6d=-ultz7d%`5lrF6PGxfWlMdd@HtA zVw%nM+seodW~{E$vifqC!@A-SAH{5)`Tl83v$c)JiT$!Sm!@qvVX?s8s(O7!tWviOZ%OF>|;00>od2u*`$;V zC27;EJ_3uWFzw)}brD*5T>l}_G-JI$&Q;pmGI@XotKFM%htAcNMr zGlqg2kZn4VAM2$1y2{q<=Q^dW^-jZDR)4 z_LrA!COTa%3ssi5q_GFpi+#})o|kg|*=mq+baVvB91`ULC^PMm8<`Vor!2o-z4zOm zEJWp9`C7Ev#lZigqy zGjV5?1C$hW&ftOqs9KpRXQQGeljXtv$4t-N%YxTSFIDQ^jJyu$rTd*?n6dZT7R}q% zFF=w07n}7?T z?Z|hZ1e%G5U6psNX5>C`ef;<_IDm0u&hKWf`wQMk<{u<(EfbSex?f!vbUw#M3Fc;J zQwQi=My-vt^7g$a`N3_KZ-hKAE{rOMeN)#N$H3(SXEnoa1kNhwUKYLVp&Qob7I96= zTK59X2UCXuP+i(P}%AEtT4v78N-u{dc&G71Ee;T)h94 zAxYs0z47(U`mH*z&=}@Eip5BtKG4tf*6?KRt5<719nH;m<~!qB?xZ%p1pLI2_@+^e z+wwi`LUvc%ZG*xqD>jvK3%UO~fk8egM1rDtU!5_Z`&?3hWIgRrM?5@eZhpq^&+);7 zcEUOimoTaQoO(bwPmqa%&l5&ITIwU6Fhxh-XW*7iNKQ^n^`yvUiJ1<12|}zWH;f|i zb+Fx7!(w88zxcq(2Z!S8oEcoit;&7SFU6#K!Uac3p#+8F2gAZ;22U+)MaDQ|*yAV1 z#>R>m8Z((c2><`|{D4_57e!1rKZa)(}9o>0d%em#KE|w7P z8z8e6z_e!hqQJanjHu*g`@}&dPIHop!Bgp`8;>#`3x8&eq%4t&ys7)5D(Z$>hGM}% zz)1Ll5W)y0cYpWJU?j>iYiGCMlc)-Oe)+z9zSW3YOiBpWS0aqk18aAC_&9{*FT1zXbsn>O^g4Pz=&&{t6;qU<7 zwaeTbkE?m<(3y&4{?}Y#?-dGd8Lkv&Mh3^!!N|x<%87x26y{fNu+6fCWGM<4Sn<9V zCEEuoH={z&T)%eqewo%cemv}iGc1Y5@djo;N#;eV`^KbqLJ{D;o2+tvckT<9Q*{46@B4_w#TTzrjHU&-g$ z#P2XJJRVcHS7uPiCuq)xS@KWW=5M>{DB8%tgM% zf15a-Q1)#$J?{mUs-#hY&y zPVUrw9B}C#f7zMgFA<;5e15wj6q1j?2*A4#v8Wiu%Z*g892pe?!gj6Y~t+bs`dTY7-A#IkXbghT4D4S=x>XL-?+ZIws3y~V% zUPaOOU5nj{=+a5F)sMyct}qLg5!@T2D&$^URDO{<@{^-kx(e{8+8N^)6TJs1$G1;_ z@rW9`h?WKUsOmR=gO}nH#ydH8epZYq(m1CiG<-M{pvcqq@m`Indi33jQ*-_TcChcp zHGD@@e$B~&^xV49teuSa&bNsoe<2NhZ4dT-oYijbtG~bQzrdgW|G_lrqBb;qPmOvii`lnxAYsB&LG z1pXhs-h!>JZOhulonXP;-8Hy-g1ZI_?(PnO;4D12F5F#0fZz_n-Q9!p&3)=fRo&Y6 z4}|B*8gq=^TW{^{gC9!Mcw~JvuV~A$WXEVZk5{PP%gu62Ym7mu)9fqC&7~jpc+E&i z)hsC^`geap18sBx3FW%a^2~DCnB`6EmjHe2Bv41(C~AqeD|FR-(b0gzb6K;&;~W)r z&bkqvlCq$n&~V$G9Vg_1{B)y02TSRWo#p7q0Lwr_16b#M=*UF>Bu*FQjO8ZW}bwNVnr{<{D&6dXHLF-Zb(1u#-|J}j= z>#pe;AU7s4V&d>-e!5b={P^)>`ueZBrSvf6D0?JmrTOVPhVE%24c+1+l&1N9pfCQl zX4L6D$8Vo3Y?5no$6Ii zT3V^Yu>cQEB9*Br=J!%`^L}Bg9lX!jxrr1-8JJ*{>U!wS`=h*N-9(h=@c12#(jT27 z&pjs}c@e(pOe=}JP>KGSG6ljYd@5RK*}`^bWiTY~U2CccJ9u5!yZQ@E!H47->0YJ7 zaikL%f$3RL6}n09y3oBZb{S>1v9N+k;%B%-bQq|i!Uen^&7g`xSM-Mln%=yM%O6g@ zRDwR5;3S#;T=MW-a4(NW#B0IYrxw}gsMns-U8uJQFVwS)kcmYazhnppJc)qlKmYrD z*L=sIV<~ik)ruUAQ!?ApZ;8bDa|$G90pCX;$N(Cb1*unV6 zVXMpjhw*-tv`~!0N1f=?XQo2if0s@Fcjbi1@={2Hs{Jj0Vz>G z|Dp0)n#Og9a@wGhoSpi}6i(e8{`Bx^JMQJ>CI15Pm8`-r!mP_z(tvWP+!ef|q0s^^ zx@#ThWNMXX*7;z>>q+>9_l^mNegrOqD>Nnp5q2LEOuNe@FJ8K&qqljguPEyIG`^a* zxd~tq-mVm?(<_`)k8mWvvfyAz1WINMz5Ai_#dLQcsL*h@#QvJkrWom_Um_SCex2!~ zNI#h$YM-^?rBIHeV)Cxpgydwo8%;Yska^B|wcc(^*dhAo3$ei|)-$-ME5$TjK zVX(FN$6XfuP{;nR$0M7|waU@D_ajG)-NVkAt9FZx#gynoW!*`RC#v14^o zuF_rKm0A4z$Nbm*^sn#YuixT3WuPsuAFD-rn#HV)nXz~d_7Kiir)(vGS$nQEX_F;A zmG2ZQNXh2fuFw1N#!6n?<{Fr-$?Qpv&*oFP)>cIEq1P%AN~6$NWNbK03AnA9t#)F1 zeOmh5Bqb`#Z1RhmUucOZm}`iqeZ1XR19it_ar*viG%ZOkQRtK@+DQ}vxW6hbbh#CS zJby%S%T;`DBx`rjXsACpEjyb=5`!x+YwlCK`vbKmM(wcuZ?01NkKbsUNXykAC~!1P zBT(uxRCM>nywHbB2r%e0%LIjY3u(o#w97b%5bQzw7kNJcc!))ZUCDCG!Qc0c zc)P$_131EQt#1GRzpPnBXN%fE)8+VCS?@k@(AyTmv39@e=Q4XyUC~w7XX|*ec60L+ zmlbEN%kN8(p7dh|F7Q%n51Kf)+gb; z0AsLV%|&W=S65d@$9RHxs?q1J0}H4}^0lw2ksAKAYlL9>H)ce5rFtp|g2p+(sS11w ze<_~{2~z`C&n52Iu7M>&9%q6CInP74{@V1_J102FY?78c>`~;&`sy&57KpjUAL}TY zy%HC3YDfA!@)zq@x`5u>$BM%u7gkQlV5KVv4jbmk$=_qg~AQ{QNmcIi7EFbqER{81UiF#q!15YJ83oRyGGk z=_?-~V##&ohnv4y;P~#+qo1J>eCrTImet@vAZLEEYp)jq0G?Aq+)61q?y+*r%g*kv)2syUTxWi|*OlIxZ`-!kIqFq=c-&$yruQdW8G` z)2A*zP>RZ%<#kGG-js;EeC>)P>QC-m)%~g(`2!(e_UQmZ;eyM$(_*+2V{jO8h}Wnk zyeH0aL}~Cr_SJTVlZQw6?dEVKwHn80rXJlgZ)>R0A28Q;qPyHb`1}bU&mqliqJT=4 zxMq(0ESsnNXabj*Bz525)TEmpv`5b)>gVxvXQ#_|nvWN69_?`ri`fd`s2#&8yd z+#5XOj;AvxnT6mo>mdE>dC2flZ6J?__h-6PzT`!5S6Tr=y$udLjQwbV-NO>%a@Wyt}H{Vn*);G~4*cdS}|FGme#l$goo4s1{KBvd@D-BMSQRl$fl`7~*J$;y{fN4OPmt z5=!K1UgZDaGO78TLqH#H1gOv#Oz|l_f#V7+@x!3uZKyEZz-Vpu%_e?_7h(_Uz4h4= zzvX_Bsk8p@G{_Hhd2VJw-#av&$8ace>#@z!R+hB$U01z1+cevok2yV7uG66YGt<%w z3sk9v{id&=2d9T^&UXn!r5f(F;0Q6b4%^SW_LDC`75lo{o{eFqc`M!mWX7bM0NdBG z>cecmMc*^-muXpUt80u6SkDx#{!Lqr=K8QdbK5}(%5E%;2}Gv;S*cAm#{cbR{@=G~ z&nGd6Zgsliy7^Z?8&^|P+sa1l4mZXPR%9c^e2-YYrr5+Ac{d;<(Jz^~Bma9jwdBw2 zA&@3ate&LbTr)yOwB+vEy^o0xB(D3xa<|_M0KTh*JSTmQX8-v7SrP=r_Zax4;ORKB z?8?MprzlDxNj0fu7(XS~lUaorL@6umkuzD6aMJN87g~bw%J2e{iVo#?0T;F6iAErsO|66gnr&OwQ| zdImg6pijg4es&tR&`kHyin92~qGBiz2W6q;wbY-}9v?%Se5UL;{C6A`ysp*_!XcKM z_8U(tg+Pj7*tG$0GXZwizNP#Y zDP4yBupqMl7Omov&TrXyho`#83h|WC@BzV?$F?u^!Ol-{9sG#rT%|p3XG{tLW4u6WA z0lu~mo8u-0F#sv~ogUzU%dG6mha!^Qtyxa~+@E_5cq(52?NsGZUHN0Gb+hnSr6**w z$lRnQBTc{P?`nw})FOx8wdGe0L@gMmbgH74ID@C9Q*@IDV|^NQ!9DUn=hH080@woo z$~H}8cLL*{(5X((!|B!b5IlqTyAMH-N0V1rS{ccosp?FaExu%xIWsn?PgEu7m+5pr zWk0)|1JQ!gTiXpr-po($P|-3U)3dXIy&Z=mus8eponM^>t1grB<5a19yLv+&lMY$~ zrNhR`i-}gc-%D%SskV-Sz}wBkD(OMc0|Q64b>G(A#oV0SCiO2 z>+JY{0-lgs_n{zJ-0}F;PoF-Sgb+IMtv7MmytXr97+dhe)BG4vbj4xB)K6^u_U)TR zmCH+Y<_<6{(0&iNAdi3i@R?ohTkE%XbM^LA)Aim4Q?7#I>=^!=QUV{e^+g3$hxjM9 zIA8Khuvh9_OYcFjNPpb6!xeR9Ed>FQH1g=EF=m^%ylo#Iy_dZ()VIx{nUa(`3jX2T zNEK+hK|^_?@sN;|gwy+}0EHn6pY& z;P@nxezY93hZOoDd98#e1DBNw3QnsrQI&xyUYYFQ)oe?Yfoh49hmvZR6lNIQWW>1G zNtUKksF4KyMY!$_yE9&O<(Qo@M6meOX81yQFL-V^>}v}PFvF``HV@S~s~~uCNKkZs zqOOVrMrY)QKihE;j!jY`G{edUVSN1Zh{ey^9M5S=CJcFV2Q%vEG2y6cm$&8b*sSQ} zAv94kZI_MD9x0mZHm z8uH$uHmEn96yTxk7syls^6DW6Tq62x>_mnkk;sN=a_Vcxt)l5(@qq$HY-Tfi=fr>ua-;^8pLg`MQr)7lxrmj*eU2 zNy^mpolpPymJGKBGSt5=f%y=KFA>n=(D}F=DP(a!1TW(FH0Rh_P{NT#dXRs@IbK%a zxYoWPVJfz_Z?_r56K0AA5()XQXgBmnMKSNX08bC4cIHX?Z5pLD(rRsXl_~BsPHN;^ zZ77mh1QWxvs=~~{A5j_IulO}|omKjEE zv1Vmtd7c5$Q8>BMCbC6aINLxtw9hsg&gs@uqO+Omr2P;?(E6Ge4)(Eo+r#->`OJCT zCMwQgH&c;ha`p=Xa^hhNI#OrD`JRKAaBSH-?+_yVkF=dqS%Y&R> zG&E_y>d+K`#-LKXhp^Xn_Ts{?I_?Pjr~R$f*5g?*Jg3`#lF{e^k)A#XTA(((~ zg*G*Rwbuq4QjtD$nqT=o5uBvK42GtF3B}vR#wSEvu}&qyMN9`rAm z(sjnij39F!8k2=U(#HqD3~jf~7;N+t!v8l+9WOt>#@#X)ktjJ!=lvK-T{GaEObN^O z3~Zoq4g416TK`$yLBY7^)3+!h6?O=KvXnEbu(=vNmi7VjgB`uM6lpn9L$q$;b6-jD zhreQ!-HH2k0dW>zU}>qk7&Jn@-St^V9I0`NS|ZARt5wz0$e%WM-ie-;hAVRL0Q3YNyt$m&k+f5IyV&JD)+Crv3lof4oAB-*#4yQ@$^4G zD>qrsk6Kw}U)%C3CbS(@rynTZsN@W|L$#sv=rkkT&n-hk^qD{XT~$7GozAE3E>92z z0lvr>G<0J9lR{>(o}baXj9F&8lzdjyb-VF=I0~EdlRhUmITtq?MBgoKjK33#fnFx`?rCP3w=+Sc@=Y}cn}1{}%e&PHicPz9Mk+%xjn51I(nIfMD6XvF!x1s?n&Y>uao zx9uT+fFUR|Jpi=hZH=SJ|Bw)XYh^agVJ+G|85Uv;VNl&`Mpipo5TBC z50EJlzCJn5rFZ#V}4 zI@o2kQ|ia>r=N@hOfOTk+EFZvV0EB;mjr8uYLa+qXxl4v%%M4|B7LLAEs~&89F6jVst&hS-{97K)^WVNh z%Q%SCB+rnZY|}GOk5axUwDCrI5>1_iU-jE98p3W)f4=#DFp3e?b`v9u7?fu;1WVcI z30w`WdLThH(dME^y5`CxHo*h|gt$~<#i)a36Tuq(v}T}mPT`geGqYJIJu7y&J>uu; zO4Lvf+n7F-`)g>Y4Ost|*8}!u4`*6vMl-3K!?+oQ3P)~Y5(AL4$8x&d(ghz(_^4}+ zrFM-GYr2xV!;PGc6lqe1uJ+-~d86M;Ie4!+t~B)T&l9x|HK_j05WqN<+*q||Nfndk zNLUbU3SkePdv+8-BP;XTe3ec$vIeQ%_4T>umXOzSGs+S9M=UJIs_6KvRBUr(!Qfw3 zFm92z+4)jnoXZEKIf21SyaC|z7ka>2vbIW3&9+iDBTea2-Ac&$JRsYo3qI*SLcrP* zZLG(fufjKfSF{K*co7vF>#A%f$ieeIodO$M=Xw=+A5O1jb5j2s9dws`(0Da}wYW>u zE}oH0#}{$Q&l%CbA8Hfn;(8}>qL?C9)STvivE)O7><&MQsZ%A7O26j_78Q+&Qxf!l z#v_Q4E5R;cnQUe5@Rrh{eM=cNFP9RPq?FMsZ7mZsjOIGvJ&xY&iAt7#7NVZLTKB!S zvwClC{C3g=%Mv&#&47s0pl-C7tmy|tz=jZhG}%;{wFrwr0qdDhsehW(F=_Yf|6<#PnQ-Xps6 zWt4VeOmC~>2$uG7JT%>Pa_~5>nVZ&c4JKl)Ok!MwSO=_ueUxTf8m0RhyAIm$WCozkf5k`za@*G!sIRyc@7E z$cC+v(+h^MwzRgEHWtl-yLIUIoF%MglkqBRKd2{2}ZR7*Q6`p6)hdT{8!(s=Hs|gfw=Q-SQOBa!=*C zg4efFS5mjbM;p#S@{<&jjM1yA5}t>Xwm#j-ywSg-rmZt#ddLAU_1}%Kd@&)jM0De{ z5q{Pu-_d_TlG#b}Jp&4$moMY-f}3--iouyW{LH-*;T+AgP=L3sAI2ozQRlAf`SO>< zj&)Swf}OnK9KtW^Ir<7|Y`}_M`rKzc4NPd9bihqqj9;?;FvpI3gSJN2AB)fU7MNWT zc@T+`Ulx2Gl{a8dAIvktOHXP6s?T{s7cYj&UR zOY(B(4tl!UIO~CJnZnABwxBec%-ZWhy$8dZiNo|A@!2$pOorF>KfZ;9ce>V|t#X4g z862&_BvZAK1uMu)N6{bWaK`S9ne1{Eu}ayBJXz*jeD2PKe9p2C3wd~yepm*hZbzBJ zYCU{t1Cf7SqD?v~gtlOsC$(da$-%5@8g@h6T5fLO!opGu3Hc*P9EQa*Hj7eW3erHS zv@jgauotjPf3m4^i}hfK+EcpKB5|Cd>u19o`Vk_M!HVviNL?|1=j?|Lv=eK{?y@2e zBdmrjyPX?JqiZl&Q{om0?oQ{)V8DF}XiI+$6Jcame=X83^Eqw7eCdNU3j8x1=VA!K zB~NHGf8XzVpQWZy>S?V{UR6YHGUYt@WgDq=DGOT;(WWs&%8QDH=x(@^p+H{(;Y*8w zU_sX_r^op_6HHINK7&=_PO4_$kMLkYW?_>^{LxqdZ*h1Y37yY&%ksS7ne1~q5uIEH zsj6KfMNHoki#Tloq;5b;s*{j0wL8&MBpyci8IJmMtM_7jwVgk}-~brT&ySuh*8kRI z@Hcc0EZJ$fDLoZ22)CT37!;Ds7ha5pJKezE#^Ko`dw-*wC-q1CK{3Okk+o5u^xql| z%>O)^G17s2F%{7q;Pj(1Z8F9)41pG!V0N>27IK0;smRFH>m6m~vh%o|l`j*QT00u~ z_$a8Trsd#4H!1Gl+C$&|r9ah3H)8qsdR&G}v3>|U)~hT{ z9Yb%uDsc`(GoeGJCMP{*hFIo~4;GO)jV?0NmwFO{1ov7=H*L`3Jz^Gjt$DWwd1kp< zq_9ydL?SM$0YTMVadF9uJXJS$XPOXn6A(($o8`0n>0ud1*xEnu3<4o$=)JWu@f^T%in-b%2<*})XcCG^K~ z@`>g-vvn{EAFfAiAn2)Bg<-^uJR8Balh#})PA`HcV+7EM5Io}!bb&-(r49H|uCw%Y z(NH~I&}O(z2Sibsq#Y2~zx!t{?l2yzbo0`PsRMb8t;(Rl9M z9K9AvdzS=iN(Hi4z}^@~zmN^9-VbVbk}}$Sipkv9M=*IjwCqqTSph^bUTJ@185I^a4JE=uMtW^;THc80(u|AhtU%_^ z>HBmcNZX-GMGgHn*RR4dG|qJU#Di}@OdvFRq4h3c*8aUYk{X+nkq4Jr2)TY`Fch_H zfGkfLg$4+_?43!-i<&d17zb|rBn*1*1t5II_fgb^&Vj$`SCdByW$c%%lm;rFG15{0 zoM8dkxjJ9`@W&Bei2Gg)dT^zD{mf48F&l}!k%74JJ{zUYo9&}jUIGTl8g*Hf0iG%> zSo7iN*2bnvD@*qZM7ulwz1@CRpS}mjb_8;}(6bhw{bO$U*)Vj`V}BZUAp0_rW)OE4 zKSMw#bLP_Tbn#4yaN>-m5NOSLS3SDLVLbQspfxn;xFpu_F)G)}*>M`EC77NQK$PVE zhieLM?2Nm->~^A!X3Gmw#bZ4wjo`oTT_BqV19Q*kj(R72tI3=#yXy#orX^$%7b+D# z4@{-H#GvXz8H(u(;?Up0S3$YreRx+$EJ%6uZWI1PzjUH6OSSEkA2aWw zLzBCn3*-EhJ)OUn`)gt7e!}+m4}cBP>a6Dx{^Q2^Bm7Xa%*bg-10Yu_`0H zB<`*TnV_4;XZ^?YIWfh|00?R`u&bu{d~WX8|8#k)QyC{m)2})tB~@XLVs}@yQ>{ap z3m@mb#xZI>EVrggrYS*VhDVA+`O?jwei}LB{6eNtwi|?nskLfH-0UGD6)f-CH99s`Bd_=jDFL30lgH)Trv6* zipq;WYp`2WQ;IzGxfa%sPfs5+D%|-8ToFHk@aYW6Z{!U|pAg=OX~|JWcs3YZUGK9- zm)5EDuJb#r?=j*hOV?t%^{918+|4zP*j=Ng3c+D?;aUQne~^CpoaN~P z+7GiJTx5_ov9T&>Pwv3$YLl$sa-l(~APA(RZGe$J2S?#|n z^pE7C5s{Fvu=}?c?Z!_4J+SWJ;st11Q(Ox)C9Yu+MiKYJ)RE1rF+~QW*)c3?zxy@l zACqt6cJdxS(QV~~Jn#WT`C3oVJNZ#j0-nww8~5}!#ne&}LARsiab=~dF5&3oP#DS` zn+pX-7Lyk<0iJ`#wu|W;!<#u11C~fSbT90spFjTqdr9pwL9efzRFS}tibTL)U-?JW z0+SR&k+psD-u97@sv#+!irbW#ww(ncLyuBW9dSVBfl-oXWf^$xW&r?~b9&P$vS09DOD-*-Acl4OkPy zT)~CxsKD;YEFBw7M#g<1zUn15(Y?d(i6`H-aSG~?#d0kQU%g(i6eyhGNCa!<@8@Wv z8^FklGYGI{>0p}T6~?ItBpR|_#%#cmOi1dG!x>61M1QHAywRvu?}_8j@&(&UtYx>G zrC^gQNMlUzN6Z1n`@qWKJ&yjQYhY=xj@8rE{rt3rne8Iyl0)iR^7r`4D6>fY7c+Z< z*1$%(4poq!`x0K>v}&Z7v$ge6^Sb}?(mMu^but*&XoS1rUT%JgA_S>h4}-iVZ0Juk z?Ie(^EwR6ornqGi`TScu%&go9pm6udrA-ZB$}R8?r1Ep z(OX`c2tOF5W9?l^uQoeZ&wpk6HJ?~S5vWrJVSRb~dws!Z19+6)GYRe*h&al_0(QRp z$iVLe*`@9XOKp`e^p?%$!oIBoOR+?Y=jFX=G9t|!N^Ynv-#(~uaCRJLCk?cy>_KCU|pc&K|q z=-%2AzSr#wj!W7)#E42xC(d!D{I9T*?rnc0?Y1pq24CPWEGp78YIbLw`1c zT>RLG8&d1}48%fbW@bF4A~&%=8ta67bGFrSKQ&QP5f@HLY=9Rdzs#rJo10Ed3xsB! zGWg2BAY2}EpW>9bIBVT#N;i7(|hPA~r^goD(M4qKU0Le^F85w2>zJ(#Ylzq>I&PRd`S*Stk$y z5H>EGbLFVc1|rLwIt(N*?nqFm!Iwh6^4LDKl}+PDb<_r{)}LqxFO$tO6*Zfl9`W;!4bU0%7Utb5qu%lk|5@MO>YyC< zF|(>R9B+72-|fXhB2OC(va_Wz`d5kazvnx-;<@n(edL~0t~z-}HC#Y;mR&~FIDGmL zr=E&5fG4j8`E>i&wVE1dgZr!+Opx|>@q66x0BW34-(#$=>K2giNS>#pf9`SE27HBU zc&KJ`wSZ~U*b@&OR^Ipl___d>`yDV@8AVT}&fC5_U60#q^W7buykL{cX-6KBwrXVx z0iO-lN`KV*DsRosNwDSNhABMGt^KjxP2Gk4-GwcX1fe+mfuni4ya~xMR(Z$}jk=)% ztA}ns71Q>P#_S*=Jp3p#TiuMt8(qWZD)LjcB$F95f$pGijE#pe3T@|Z!QwAdEG%Fp zb*JmYRoP65QWl?BZ=1(C+PeR>ojKvyfSO`hhvX~8hS-8Zu4Fh;&*Gxa@o*&(?`0@y z_%aZ^?wbjuI%ar)=qt!W0fKnM!pO5BfX>9oR(?hI%@!0imif(PQS+n0)L7z!ip5&1 zOX};)r^TkDyIEWp23eeE9VjjsH`nyyAMF`=*RElHrx!y@nHS4J@@>~<=GXi2OWLgVV`f~5Ub9O>R>frkc|Mw^Zvk(47 zx1_5Fa#-qT`fjISQ{Kn3_HzI+G?~u%1z30WU~J}UZ|^??WoG`21Beeil7UJ9`35R6 z0$vQ+psiqQ=W&+u_U`W8yLTq}%J>4~-O9#PC_Hd_8rE7_G&%a7#2n(Pc%5+AtyK_# z23Cu`k1R|by&In`JB^eZDJdyK0LoE^*9a0&;K5ItGXz`LLunn$-fQ$3Bp_=xGQw*J zXu_ioKeC-c<*6)mjIVRIa{Tk#{{I+xbI74+kfW$ZzX>uFn;1-WdFyN36C1{nzT$W#cV9ph1dVE-}Yvz#fXrs>=Wf ziISKH_MtuI$4@}TISqRW5k?7-YG$!BJXbFMbMeXZ@-`DR8>nIL=m`YAUxa7dT7ydk zF%jx{O6!&6`$s`(Wk1}Jst~Xq?vpnG=TEKOLhoFLQ!Qi?YeoSBc0VOMUM;n`vDSjr zt@kaMWOt%>b7)8oOQ_g+_|(^0IWHgGdr&dyW6{+2-}5xt;Smw=@aL<52dB3`y5#XO z_W5RJjnv;5g+=X;$m>i_7`$t*7DQPz&!1CHQ*&uVeUpz1wqa$FAg#hcY-K5|NONl3 zLS>KyeHt_ewiNfryGQQE{Stc3`SC#@98fAvoirSXjo6D~;cN|VubcaX)O5n_+U*Li z(O{rs7Y}6o5++LD@#cM2`uQs~##CDvV74R2IUIH;Dlp{se%AodK^$)LNs>&;g%>L| z2de6K{t)9m*SUj|#ByC=ItV( zz8!b~m^;+4w%5gbC7uG;dX<(wtu-6m%(71>Co4ZA;wl&j2uZ8wtbri+{2u_;^7MF{ z2{6x^kA|a|t6*3woC`dCiM@*r|5WXyX>aVEPS|X7UG{>5f_g{h16rvG6m3b`sf&WARw{X z4Y;|vi>Oi@mi1fk;LIv;*8(;I1LLcHA*nt;9K{*=Zk7-0W}x{ZqPmNt4t|oQp895H z+hU~J1A0#rsrjc!p--ZTERbK*0%nhv@c?SR>MP)*wW9^eBAz!Zc)mhDo zSg>Y$BxL?hZg`%w%ASR-f&#lBF)ZOcCz%^YjjkQ;pP2R*Yl3mx$o+9s!%@R%n@5QV zv}Khl5@!tuVCsOrU<{nZK@?X3jhwRUsY?RpNREbR(jN7H>ixkzG-N%96wMpbAeByX z(qwymj1Z#?Wbro6Z|aV_z!XV zg3}nzk|Px;8D^8f93#mn}}^-Ye516#rMhgS(2MDZm-xv zyVz=&Fhrh*WOe*rzbm?#6D9u659H1d)j|V!M@lU3qDFt!`T_(#_j_)q8irwFYAMw# zYo~Z3P_Al2Wjl(fWMG{V-hnSQIjplQ-uO(TyKfW18r=WbK zQX1x0{TX9i#KW(|2IyGxg@~J|MDnNV^|r4H-{-m@SkPUkVhNk98AMV;?(%a*!zyWA z388xm6T+8tVcSd7cbGn~al7ol^BT}i4x+J9y!;lYgzlNP`@#LWg@)xptJx8kG5C}! z_^9xDw(4k0ar>2Ycw=ktxV)N(k5$5#wKu*&Re07fg=C}>Sgi06RP-$$@kXLN(OkoP z{75;0N62ecCri}sw`J~c3JW4W$C{l2PhELU3f)|O*dLbbeR@yK+wajNd!*G{;U_tt zZhwE(_>E4xU=LsEsR|{DA6Y!EX9(2=K8e%By~UcV)8dXS2ixM z`0Y~wL`@%J$`>9X>%*N}=C!YFPGD2k;wnK&IPA9zw6_aVVbJT@`RlkZ7O|(6ecLf- z5VoYBdwDS&dBEGBfNE@aNh~(-9o(FhSzDOnU-!VqwPaukB~8bis$rvf&7YS)CcQZu zpbPyr?$C{$l!flQyUGsrcLq9ljZ9Z-S5n8S<#R{=TeYSgOGnM514XD>@^K8Bf_Vts z8?&>cBdM!QUd`yTe-R}9(vb)|P&z31%bmGgnfS2{P=ji#TL_l}-gF9aFia1BMz^b5 zi=D)@6Owerk?*M5F<$)E!E3zqu5+CG#CX?)hfhpQK+jSOkwh*rry+z?3lUbt^;A2KRCeMB znC6u-l0P6yuOzJ|aX?(}U*%w6UwYGX2i(2=LXjLt!%9C?bv|AUS z%Ww0`B~pp!;;<6bhwq}$Ne7jtnOxKIs|$aVZ$eN_lC%`n)2SuWu+$zDfN`J=EN#?| z^jE-IP{a)YqH*Nw0I)}zZ}^jr=FT-xZuXIH{bu?of8~Yb_M2cV2=->hG?>86LuwW8ABqp8E?^EzR9+k__+NKzxKEdEG zGa;f@qlrV_yh}TYZ(m{|I0=b}s0b%>xY|a&JLEa_`-Y?mj|1E-n_qXkpHtt)tP_vl zE+RxK-sal{;6G{xEiu0kf((Y#uxwp!P#nNV%^%2|R`#&vF8_KEiO@Gl2o4c*#&H>c zdO~}~#<^MRH?hP@5X4%?6dY+7+V_#?%j!Rh?+0AgR4{=3-or3ts)Bw5uIq{q&RzIF zRMlQZBZR6AP5HcT!3H2cv=j4R#F^(>dA)bWXt9f>_#S08Y<*X~o?!K)TM-S1d zP2Xg=m#K6m#Xe(}d!Ukp)DR_gyhvr|{4Aw(L;0uN@V`viO&_3&QEKRJJSl#^jPEZu zG}dzVgBZ0gFMxj6Kz=oMw=B<*d)`?UZJtCh_nhD7E=$&gCf2HXM>*j+Y~;#lw7Yr* zK}KeNmlp3s0>sd=A{K(N8-S!<$C*b)yqlR2Nh0}*6N!%%7<*$A@d=)+1)#t91N&p3 z;n67SL?vN)c}3!`bffItq|M1u4D+D!AbWzTR8nHH#hP7v%^U9qAk3fwW~7UwxRhJN zlspd4ML30pt56uNI6&Q>p(nV}K?TO|dW9#Srf?s;(htg_40caY!soe1bMd}GH_(D| zm3BzPG9ERZF?d2CBsYiCg~*&g@}%eTE=$E*P`jx>yBm6RW9r5O3B0o4)>MJJEJ3gR zGcqUBeeo`7!p>q~Lr78A(r^A7WL(y@>N#7U&JYAWDFf|N8v*V%D?Vi#V$I9b=JoWv z@{Ea~H*m2uhE4)_#*~pE(q8gLMa};^uVmE<1B~GPQZ!feRLa*x?{3%oi|1!7tZEJ1 zFC14nUR8N!QK2GJZbhZ}mZRl$qEw z{I1_^Q-$GI3pMGabu`Dcaie=KpG}yIC{YPs-!pzXCgerPG5ZT!o1xL4CyBM{HsyBqn)o}R)WqA}w6B_+%_yuj%BG8(|B zDjOq1Gqd}!aYRwqV2SPf>v+I35B*gk5Jy3TTie^mx&&2->ZtoBLyuQ~Dz2_ZyA6d} z%|`r@zvG!UUG^xc=k(ptyj10#j}MMhMAK4TzyI5@gDk^ny~ptVJEtNPP-7Z2HmI=^Wty?xXbt^xA1Eck*g4obTO~9E8QNH- zH(#K%MB2rBy3dATUdi7cE-v8?RgZ>ma7rmxxa!2`#g@-mPaa2o6wgjZPM4;U$y7#v>RK&{{yluoG?4E1wJFzd6AMKXFluuy(r z#>B?2-(uLSKUat|Rb8^MIAWeC^OIlR7jbY#rz*q+!!y7%{z5vzTpnUjR@5*BbY2k= z=i63u;^}kIVM?Dqb`~NQwmvr+a1EY5RLWcFc&p?1Ty7Ns8@_%bNfw!B=Gc7U%8wOK zQo&S>sIx}!=;ufp3a1eL`jJTQL^D$wr$vZ#z(AA1Z=|=k96%d+Ri=*ToFaZY?oNIi zfH-b`ut?V-Je{vIdf7F4HK&Cwg<5INmaIw2If=CqcG1ZdyQ;I8aptJ&S^a!kCWXEL zi*Rw?p@%v(0+DTG!8U;vz$Nf>XV4yIRZidosI`V%v_e#9rB@g&ZCSxc5{889F$yDZ zTeh0efzEzTgrL8YtEZHkmy(SZt2& zXYlTfRw)nXYp7~+1of8D*VFml<@@Su6J)OHs7m?Z3nxld_D6|!3vKdthSPcX+@`h8 zx4Bo`e5%z}mp=d$ehchZrw(u_FnyJa3iHfQ@N@dj|UYU?TO;490OWXu*-9=h@Vyl(2 zNE?+efOFhmke8Q7*#CB^5h&-N7`f+EnJW*wmtxr`E2iCX=4>?WJgyGx=C~7J{p;Yz zVOOO@11O3oH#US=8^Q2*IArv^Lvx@rKdVwvOkvhZP-097V~i1ohuf9lYi7W;0|PZ4 zxg@Q~BJpqEy*kkt%M0T;W1gAB*VFEoW{{jDPK!W=P$L3VJ2d2LByRe&lVNGRW2cDG@{(Xx$L~Oin{X z`@t_uAK$&)^B-8k34BQXn6Z!2zXskB@oB>jIh=(xJvbdw!3q{O4h)r!e_0b++JzB_ zF=S!o9{W`miWW7Yi7=-?3;%awHUbnQxv_Ni)vzIf)}G&jVCi++{ucIW1Dlc z{j1VSEa-`2(`35O;d7&^TGd0x{EzytgI~7VRWHTXP~OdD-G2&o0Tw2oJHSLdAMO_f zi&vOI7d7~o)=s(><|&*Oa#cM?4^$BG@$k+94q==@vSSzV?iZQ`DXk-$jITi$sSHia z^gX|phzsW4zc`~ZR-YRN7&5AH>0B$7cT&! zatq%7`j&TY#mGwjZEl!gwSK}F2IKY~i_qo=h~$BL+1kIwABF;yv<2^M*mewdM3<~{PTl&f!!dxd@e35?VsM+Z zb`KKK?tr_zurfINZOzGv29R#Y%eOpSn~n82HikX|W0M6M1Y=GlkQk4JLA})2V9E4H z5Q~#Q00XURY%T#l<1nL=b!Ki`SifkgF8NuE>944*PvS$FQgpgcWVugGM|PP{e>Vg+ zh9?(o3yGxN&O<8SdxviBDm-tR{lNu?I&9((w)ZfXH*$`qB_km;KnEP16}*ZfQ#OOx z`NkHQY><--*V;2*1VDvmC25%C*%>ZHr53Rd6A)vQXan;0Ftv^C{YezUZuFpXfR#Mqvod333z%HOW?0p>gO2KZTMO zu9$Z2O81)t0LY!)5v`+TE9|m81`nHQRSHp(=S!InadAqMzC5}f@M$IyIC?CmwS3xz zZAji*f_YyivbbMz(biRklN&BjCO{#4FN^Gkx&)VW>XHo&bk3u1Pkv-SLnvjFw! zwH*_xiH!FX3%kNC1CtE+rs$m|=Q%t zYXa~9Fp28zXLdg9&&;4bJ^BNfwsOy{KE(4ERo!VxXb4&_)c%hfl*&#EG@@)0;bRF# znUwST;Y9xkRi;QmfIit7WRvt*!IQIeUxlMR+g!%s=dsawgp zna`L%%04E3t|c9NiC4rrs?snHxsotUbo}|%qD|YZ#Qdi-G*i*=}o;9+7(UODL-p= zfv2?W;ghe{DUTV_>?M@R>r2X~&srBHxmcS)NVRP~R%amF9xt9;=9*Ng_Q>S=m)c5l z>~?CbH;}#}x+Q1o+L{^`RuY=DbZ9&n#-cb%URg5iuw#eOK!*tolV7M&e)8*-U<$W7 zskiFG#?IE34dI?)r#I@H;-9)oTdQrPpYkd*Nl9v3{75%>^uQ)@Jqu-mW-@)hI;2z; z%<+kd8Ab0_PZ^v4$JRSWN7k-wyGg~i(XnmYwrwZfvF)T|+qSx6b*zqU+s0SVx8Ak( ze%IdP9#u8#M~zXl#+-LuIIr_Sw=SU=e~}jgUNf=YLW$0B0I!%dM(YjAx3_5x{$MbD z$r_C_2cvL{NkV=3FG#!FHJ|9%5q~toua*sxEaiMSqF{-Z4Ao}fHi`$%zU&TMK{7+^v9E^TLP>#HoG zoIlZf6>uf`2yOCn_B=z-gN40w{!`Jd7lxi8TvK}9oI$n$D7yaerX=U{ZNECKS%ZU% zMgeb42k)LAQ@v`861+cUW+P#jB=tUN_9Q;6`u}OaFMmSMAUR!*z(l}GX-p8;Ceul9 ztZe)ltQ$02#cE8tzduohFB7-9Nb)dDCTpfD)bwT17L6Szhk7*==~~6#F|a&&9D`A` z6>i%FU5OH_m+Wcy$V*^IRf>*Ypim=t>~?yS6=Y`8@@;3IdoBHg1E2LY;EFk5s-P%^ zDb;i;op!XnO_ZRej89J=#%dnbN2y#GeRO!Jt5uZqV92}zRJEAV9u+pxsB7>}-dyht z$a|ymzj;BcW$7})c?;*_#v>?&n5d^{Z>d%-;I}!skV7>oPe^1_t?~sP>b*bTWWU-F zW%AsqF1TQn;HVeiOg}h#A)6|LpDwgzJL=XbV3KwmN9g70VMb$WNBBLL!T`H-v& z%En#`wjZ5zfOd+tOgNC`b>W)3U&ml+UHZT&CJS(nV}m~R@=Za%o6zg4Y@&f@1{$!e z6);oT%gvX&BW{yyFH(O7kh0!2!`>Gl5o21w&u)BMpQ&FO<6p&YBUx(IaX2#`8C-9@uuw=J#HF?KWR}jHI{dL9Hs_ zm3|a2A$>JNZ8Id1J7v0&6U_KkMXucA!xCw^U|cvBZ>7&8oy=#S=rdm!;!#*myt<>8 z_8iDN;-NC%LLAUb83gp`r2AIlNSGG}+r@~1qm|$q2_61bX3JhP%{ReSE#G{IW2pmP zPUxH}@qQ=`R4$}a=3xG$o~=^bEj$Ecg(GK&eN3T-TtiVAa)6*+XpuLykFZOr+B}SA z6cDo&bMjP!@d)T_h14IYJ7%+c7sDz4hCExa0?8Ksb!z6))a)Z8yL}{cC*N*JptC|E zGnc&b4GLlHrKl9Bvmbo90}C)yqnRiXbWZjhd4@HhppIy9ohafNzy4x)$RDR7 z5H9llurhri`OY3~f8Kv0VP9)_p_u>y1O=I}>Zd`BIguB+c2Bm^LyY^w0d%>BW(@wR zd2Z>m8##X+rax;hjnT}m3mcJx^8s3PV)rzL_BZ?AxoQ{Z$~NwUfkEt4j^Nb?gFhz? zqgT5qm_n8OclU$Ki4;-^@(7b%kXmDVf}1fT(O)o4P&j`7-w*L`JF6$P8s+9Kowu1?we-~|w|QnWKDs&XtU1^dwCB|x9bo!4pAZD={{@29ny2Fjo_Rm#5a z14$wmTXoc+o9`CJ#Bw^8B7?Tm-xYxuh@TPZys#}t?(|N00)#_bxRqwA&612S_k||8;m8DbTDGRuh|=BZeUnTcwAY(`VzOC-w;gYg^?7<-pPf z-PhaKJLA{E*BP(xk8Pi?`T67h`QxIMij#~RIIQW1+*6=)T)6+U|5x7Ega2FH*TC2F zmS&H>S8w_WQk!B@3E3I~DD8JH+lBP(vI_5v%uEA4pN;c`8cV8M4~I)2NN)1VtF4}) z7tE@>&XiGsBx)3tINUfu1&6HqsPx7DUy+edF7&+b#0^ZR>PjtOZ~q|ZNt79*baiH$ zs~#SDyzItUdMIk)SHnwhyb8^LY@T_u^|95pwu&j$>zgD_KCZe$fA5cuSX!0b|IdGH z?<)$`Cpu#^BZUEuc7(n#1VT|%A2Ww6+>cIcX!Ii>j;VY|r>0c-*KD>4gH!g_!`gf6 zr0^SwQ2fg-C@fUCe%~e%5>oVG_@<%m87sEnU~Rs6x!hm&pzRD!EDz*7)60O}HaQ$R z_A8c1Bc5QwWpf~>sPCan;o)x?Fw1>-yx>hrn!C4f++2R~I)d;Q6(}e@--I z#idcqo3SxkA^}-f%A&U4XGpBYmX&C>X30c228}`hV$O3E?IqdDiFI`3O|2^!yWela zfu3eRZqwkvuwVohYUPz8fFoeUH!^=(7!Pvo=N?#XtEzRFShJMoz-bIdThoz^Uw{F< zTnIaM4?SzjQ_rUb?&V&d^u=Kh51zFlqnhR36~UUv-B4b}RDSs1ufIx7a`u!qz9%8^?a^1jGgeJ+QEK3M^&mOde*2~0sYJ;_`rKvw)K%&267=!E7&2e&sW@Tg=>^)@36vu!#4MGT0Y{%DEePe6Ag2U? z{tsL?9u7l&1CmJsW#1H@cY5CPzRG%Dt9opvnt0q)+cx(#rY_vT0l7reLCl_>D0oTE zTd zMnY}&?-b@gcNnnqrGStI)X75ZH7LVAu!&<)<69i%b@n5o>HJWK+3K!5(_c51=BeAD z(5slBcSqU&Gv*K*v~<8VXFprZ)@Jn6ofeQQZx%X?CfsnyGZxavgoozlmP>wwhB8Gc zK^TuIYy0W=aGu`jbTcjZjXaxFyhsHfw_DM=6*$qNJBOny8{gJM#nUS@4w>!+-D0t+m?2M`v) zTCg-@8Oz>w!RGN47KTV5pm$mu$6gUKC|c1%eIa9*QV8oRHBLjLA4(~!%0x!oWK9Qf z(9DhH2n(aTUTS~5`ta5(T;XZ5ju^sX9P@c5-^p*ZRvlWk;>U6Pp`LXu;h21>B}LZW_L|`Bxj+Wx zUjX`kJYIh604X+ns8fwH@?ueRr!^aWEPZ9@m{OLRZecXG4R`WKOEwx^`!@9 zORMZjh~^Yt+NM5cII_<(f7mpe{u=3E_tpTC{|>D+qs}2F@HI`(~mU zujJPcWCKj$gUwJ$X=NrL?$l$6PZFw`cX&OJaYf@^wN_`E#b_2GP|#?k$FHNkb*CbIzcav~{GOk_KDX3gIKMGj{L%8)PaJR%3BbBSG5uP&UUU9_c)oIS zf`cd(es%wthV$Yb&mTtEzKiO0%-0(B^a=_e(B|K?ceMu8ifr{5?m3HrGDh!+umHel$p-4ayQWI^-M8zCQ$O=$M!^U{WYpI6fhdbkc ze&Z}|CRtmag&W61yP(5y!u6E#s2Rt^HvAoAaql)@t=noEBeQF8A0C#bQey!Y3nk?U zV{0R4t7hS2n{2D!c~iFUsy!Gk?k^P-(UsiEeA6W!q*Z}@!;z@$l0fvMu#5d~t9a<~ zhk=w1Uroc418#dU!++O7&tM5{D|Sx4Kc4!_CKAxU1dx9R&-z?{nMS2dKpov0c8M83{*_%VFy4kg8h0{y zvv+XC^_3W>UGgLFC0gQ?`}^)w&yb>k#q|vjOQ!S z?jD!*%)9=X^|r>2V-x!9{yGa0UrxvmmCK8k^NLf+L5GGqYDWQE&VQKWe}*z7P*BOFQ>u5P z-)=&eil>g+X9BkRH-*BiO22SyK2GE`yT|eTE1D0j2jwMnPQ;kFRv;3l{~VZgD3tD( zc9#Yu=;t+0l(?#i6yr21Tap5B1@o{kO{%KP!i@>D`+r!*#^a*Rhq(*2CGSF~b1D$x; zfNWHtgZu02YeV9(v~T00CaEK>Bf=W*ky8?a6hI-}0y1Cfqn=gl%3=o{viJ z;_vR-cC43-+h*!($|8u?b+s_^S^X@&tQM!LL`fPqJdd5GYPPD%^F}DxIl{mcnq5ux zFc$5T#?-sXo=U&&uwX@8(Q#kF7sF`^s6ObXkrx{AJmWIZf;Aj)uaHUo%t5*{tdUqb z7hKWG#H7Vg{`KxF?y)f?NDJFnK3(N>d!X5*HdQq9` zeK6U#lggU*gAja;KITSgH5osTzV;ly{`6QO5SC*jKbz?u1x-VNBC#72LJg{J|E1bY zW#$eSkt%lZoEwD4VlcQ@OFf#3EvLRm!spSC$^{)iqOR?J&~v`?lrE0kpcz2Kr6?)? z*S%e@03Kg1^7ioXL@GPJHVIctc7;1Snuu#U@G9wBysQLIB2>&0K$ka^6kBi*jubqU zDDaa%A?Lx23>ZlJ=q%x+7Q>U{^d%D92E%h9*d}-kwJr03ZP@%MWA;{E`i2YR&5eti zM1+ec3pq-)QYgZv^#@r-JR*WLC8nyO#mB~_uCuK5>zv@%~uvlIXX){647bwu^3Z zxzO3WdTlxL|8&22Z7J=+<2>zFd)ZTF|M*^?Id{SP&|(;z^ZtD#EG$g(nKY~tH7|Bp z1J!rr%72RUi@mmfMy@$T@hdipg#GcP$6_nq`&+%LM19dnd47H%kBC((J)KyTUJgiX_70|ez7Ax# z*5y^#M?iQ5G-FqR-Lye$d6w+q+ zOptQ8cuZWTXxa9O(iAkrWW)v8I^1Qc?Lf0_9Y;y&8U-73rU|~cEx)OX#hq)nGj*s6 z@`B1EzOt%m-7-h_Gfl*@y}?qv)i!5JN)Fx!(YYdHu#Ggpd$x*ZyyfKLD!neg zS{lfE^|w|;-LPt@WKUWR@NkaE9lZ9sYP;@3Sx~TtkspwYCn! z4NWZ*Q?FpUXHVkM`R+nE>AuQ9GHiW$!LDmc)(=n|iQw`TINc_ffOB?i4Z%4?256zH zI@N95rVG-E+y{=O7eZZQROPahhrDO>D+z^v!}|KuPw*hh&m5TVz8F;4>9u}S8-S0>yx2eN=cwboYxJG;-xZ?l#6rwGySXl z*A-#Qf)~XMf1?j144fK>OOkP2y#&Of9O{09wyld56c3V}VWI6)GIs;5~t09ULZZx~#?TjeMBoAn&tX@EdXpoZ+T#oBN~7O(1uq zw@}`;xzm4VmRn=q5YR>ft^y}V(h*)F-oT|bq_2&}@Y8M7Id~JoMyx(k!kT3juac>W zu4_*-)3hCmnmwL@T1Qex$7}WWuc-s~t0C8-k=WC!g3dLSZbU1{YSdKgM z@2{z$x|Lph5j}Bc5=w!sh;dkB{)ZSLxmWJ&>(vjpHPbE+Yd|| zqBnvJfsdB*j27?fogswotL*O=iJM#v(nlgbMN$;+W=rM%pOg95DG{k`-xq-VBslvS zYnehp6i-bB2E%Cftx+XmSv--16D4Itm_rFg0-9hSu2KB&!s4Ps7PfQ|LF%3rmN57r z^mWm_xB_>lAx*G30d*tehAPCE>-|}MH5yqi>XYa`aX?hJp0ExH6T!onSS69xL+96t zq9ZM_O5&|ls1Fyil(u5Cc!Ji2p$VNbdS*mI1V}jx%Y65+5<`-@asc`%yUTb;_!n7y zC!z2#Eo{h`4|Jl1+m&=)A>}c3yt;I?ra`rfWgQKSWic03~BX9y80uQ3;ws0wE*=#0b}29Q+(?*eCe`9S=jvhb$g( zy0FLG@SdtT?9rHkm_Q^DFUvhkVdV3Y^Vqjo+xSyWul!tx^!x7w3A4~5N*_r8NyAyF z@~m|8ikkkm=ASSbVNrh4WwZJZurFC?C!rHCQOvgo32eH1LtQpN>({mRmQ+}1+!_4Y zt)bK7<6?W6Mmghnn;N$Q&c_B7Z5DM_!Ur~<=9yu&5DmG{p^Y7Cp1`l~Hi2FmvHJEE zx;;6(!PMEg(Nod4(ZMoB@Q3&!DLZlr{ammE;g$5RPdrFb3yWJ~P@Gw$D-M#JYHltb zIu7<8HSg?5KI!v~c*xU-}y#eA{M*d|L>D^c8O!1x!+n~f*H*x`7p4nlM{M8i0 z6^>ZuSx`;Fes;yIyp0<(=qq80VrYn>4=sASthO1-J6hpG3MLdL_e?qrrwSG$796imMBZ2t$@+tvo`uQi+kIuP0tmn(oF{APKn*szmH{??Y8XINJ%@V?*sMH@hqwibSW5`RM_~-y+_a88Lo$4EYF1cxFssaEWL> ziP2|%F07JhXBF}~9*fG%t_c~oDwQJyi)?)>I5sgY{3As^6f zi@sD|{XOSur30(VzjFJV7lx){O}NxWwuXr&aFp;!6JIx>Iyff7kukQUBqBphs-Gwt zwJ#Q%!{fU&Vn`iPHN;A6G9~hBgrAvEyZNnAz-9shMoKd_039tP5hM!obYR|`6c49K zX*-u0=3F2|Nk|o&vfZk`A`xy-eY+ibq@GNBn=K9YWe4{wEm=bWxn-`JiDp!uSFWA^yC%=zdA{Sh$vjswFkYiiVo_;yU4-F{!(< zMI-L8686ggZyc)_(vKtw@ebSk!b3RldBtNh7o8lwbjG(?n|Xrc>S@)(V~^KF%+Xg- z<-zb`W10up6lnd}sk$c5sbe1VF||XoV8nHW1}Hh8GX8PRHgiGQ*Vo+WW2UnpJ6S5s zG9QmUUHAxGH)qm{T`G_UB6$9qjcJaE#rJgHT4BDCbV-VhL@Aeh1zFYb(A-o8rbz@7 zWvpjs>AlM`)AT{i*y<{k(eUr=Y|t}U>HADidH6uP=(~>gL_-9=6)Gl*mOTG&#tp7g z9C!#4I;UgrPwR(2{N9g1-NbZ0B3dc=P>c=t+|9&v@JTzEN81QB{x+uQ0LU#&9X_p= z5uy1~8VR-YrX;>(M3)ArY4$J#0kwABRjOY)qZ45vhml?Hi>=y@%l4)zp0lg3&#Nz4T$aY@&MV)mH=w%xJ?`r{ z&c{^dvC8lZa#5-z!jV>^wz&lvjjD=h=yB}cD`JH-eH*?Z|4}OeQ(l`)No}l6L7LTl!jgs0%fk~V&1^!E0QlD`!+#dp|J$UPZbUHnVS>`6eo~Har}VUg*M%y=+2-|(1i5%;@O!ez!mpB2 z2p`_(h^IIy+i4%$&51$cbAL_5^L;YLF-NBUTI) zyCVqg?hY7F!VB=LX~ct}x|lHC%w)5^&V+!Gqxz?Z07x2?sLUb;K_o-On~ehtvs5x0 zfGjtND0Z7;b(}KFC0tvA|K5WtRRa*?RdQ-z#~`AAh7Vt(L5;`=7sECxQV1hMU@{s6 z$(9LSovzwW3y@*6?^%GH#mv`@%sk;Co)ZhYFk*+u{lz~^pAh`iMFedrl z0k_~Vf3bjeC2;N}W&z6wfo^6KV)GNBM1lP!X2fwFq_q~p?g+vJk&jy=AxzXW(|N!bFxxRLhf9hPcaWAS1;PIRCi8aWVZB(@6YY}lL4Eeje!N-tVQ zt(dG>*{VRPIDHK)Qww|$k1{M?e(V;h#|gY&ljkw5TPbu-*%Wz)m`GWaa{$R%zjh!u zZGJ{Ot%_;z8gib3Zn|U{oTGwN+=840%pcD8Q-Wnu# zJ{l7Uj2T1L}tOd#3`UW+7Kp2g=aYQCNk7Z!IW z)T}!6ed$ql6Nu@fFcZ>7CF`Q`&UHAD9FTZITBO4_vi(>vXY|pz+##-4nmw-%>YDlx zVCl+5h6z2NXFZQRk97qFe=We@;?CLj`@o$e@a|oS4G)w&kUpY_C>RmU>g0A1DL0Q#CqLI6UP-Il@D z;t=$T7)>s#?bO5xYnftBw;izVmos^B!Q1`;?nWNa%ddX{in-iUwt=w@*$x#KMBG^G zGYKX5+{agduAYycR#~7*1T#<_xK(-*tffN?7(n+=TrmKs46SEsE;=DILQ$@ZP7A8doXOR9S!57B`?-=w#|{|ttv!U0r5 z-pO0cz@Ut&gB}EvkLZhr1YBUT(5irt@2ZCku8JvSa3IJQv1>Q7@&6V2>T8~H+%E~9 zOC62Dh(nL~uLX_XOPDl;O<;#ssx~ZQ+H`Zo<<25PVcyI6j8*h=4~V&xuJkJ-c06K% zqd+($dwAw|nvga$8%-|-hxlc^zZK~tZ_`>8Rc_0PSs)Dusm;h%!WHOe#%M!cf+g;Mqz)~!)HzzF(EtH_3XoT`GL}$Z9 zO6+bZCZY$mVOsZapLUU2tnj2+YEC048PfELp|u${4F zTi)Z==`6r9&;Yx+Rb_TI#^z?=7VBFm_oAFtVH1ZiDSTKo_5@eUFz7yAT+#_l%c<$- zFc@Zp;>GyVT>$5efnkG##lk*E%@P}!_wwCY@E|yi1fj|TmR!DO<7(u+PD1X%IlJ~J z@vG%ZZb*G^t~f3qT|DTx$NnH5;;_}9DV#FnUdYQoJt8neqjj4s6E}AgwiW6Z?3iqX z{P{6lSKCcs-UG6CfQ|q=J?&0x4(w$ln(0GyJ0u2Z$z~fM3R=yNR}KZHY+$P0^(>mP z>;Ct&?w2#EPyk8 z&{E+XQ{J-GfL!)fuZ+i{c3#DX#zsR2#&Vsfq$uD;wjf~Jf0Fl<-+I&F>PPbRPl8y# zP`vfuRikyRrIVkV8-l-2s|h~uybswrdcAYTsoPOqSvj7Z z+sOVzx?EoP+d#`L^IYH7JD6bPRqfO!*#|t()%U%C!0J8|+KGUlKzfAkX;a&AgKxH%m!F&$D~-60bV;vcu>q_!fF6Du=83l|{}jQEj09_zpzm-) zfq`PwL_`=s>p}gWAi!x>sduQkjoxg&Y{x|Mw0rX%tw`n5WOc-Fz9zhmvwR+8-nxfA z`s5&@5X_rEIXPFwER8L@Acumwp9vIm)>!9n0L%rywL(HjZ0w|4Q89LZ`>MTBNDDi= zuKixivx!SXM|=ndMhYL5QNU6iFgSI~iB83kjp5b*eVc<8Z8Z+j*@U6mE3;R2GY>Zh z=FPmkY=?+*n3D4MMrVb-8$G5%b@1eIRjGV;B8N%DSgK30$hP9ola9}c{t5N>TMvC= z-Nu1Jy;s8GV5g^DUSef`w{b*qIoA{TxZ%1N5sMr5s8v$TV)mg};eJFhIvN{|*eY{&7Yb2`o67L>hgztNdWs)>-~)jN8H@|cdj*bFUOI2? zWV=P(T0DInBQ73-Mnu*UJ3eC0W`X>&VC2LbXqNC6Z@c}uTwia@J|yU*$YW@pG7kH= zJ^Om7wJ7#_cpF0={*;{cLW^uV(RBWyW(B4I=oe8)+=qGg?!vN?kBeXT`?olW)>Y>FnqE-x5u2j+yzY{+dHXz>u-xhG)ZV8)iwTEzl!w^;%Gj)oq z?+tu-@#_Lgb8e6YUC6pJPt&8;$n;FIhk#WG8P(qRBCNp2bc`nMF}u-OVN9+D+#gAn zC}Bsy)aZ1n943;K4*4DC-r+i3=zgLN8c*9WlN1T*jNLZ`;!!5`ocMBtB)W(S9oET< ziw9pkm$!dS3l~5+5P%&-*}wCJI*fZBvk6f}+F2$yRY)$2N?{3<5}u8ZGjq%3aY-BW zUHrAOaj>8Rd;X4zMY;2w9Uuihadx~sxk+;!*X3+Ej^zJb#5%=Ax-~Y;ahbn!l8ds_6COmFbBKo(6K-V&6ZD2H(VD8nAywDl(~agVtghz}7&tM68;PRZ zEj96ody^Rnc%ZzxI^wA;`FWB!%*?RPu-U)!vnw3fner0Y&Dk3d(L?MUXwl zFpab6GLS`T?0jvI&Qzk?wrZ=W+-a?f;W@VW>3W8?6bkM%&cEN|%Y7XJhs7Yn6mmC) z-^S~FXjcn&0l%9zz>eeMWb#xohSSEF==61kcp^I8p$dV?^S)QmoD3ocBiF*t|2Mmo zxLjo*=MfbOHK;@o&eOQqjL&;dKOwOW-xMqfsVX|NqV#pvc=b$dMfO0U_pjOfZ!!9f zK@KQ*#rgtpR#;)V5oa-G!v9L;kg1(yR6+d5Plwlqy5hct`Hxh+1)T_*F5S#-V}L_h zFV@gHI$rTF?-^z(1rh%8vz)vcjt8ehg+ zcy%V0Q4<$vy{4X$0u`n_A_Q_!Og2eGM9hwMg?C#(&fCC!>T8Xq|Ct-hAw0l>i;6Mz z*LEc7O<#jch3!e>K`Ra{sPDcQSfHl@t8$N~^FSYxq&+<=0eg__{MET$r!iGAPodoO z<1I2x3_ZLGoXryU6(biiY$(bk#zX2Adk8Y1BfmwBHaQdbpe|0 z9|tlLW~&^g6-rb@Eus?X?d9iyRK>cFFG$!NejE7#SRh_mK(!V$i#@im65o&?(L})I z^ckM5ab`vhOGi)iIBGkg*;0~RT#iW!R!nOf#!!1R34#e|Qttq!Kc#_yQl6CrehG(j zthd3Z0NGm8BTC&5Kw&~Ux?`*av_GXK&K}+U;rqy`M8 z`|z{9XuF<#dL3>A#-NJ7_(5-5Sj0@GnR?!daMtR#K*!+G*e z9G}ZqP1`!xd$poJ*_W3xe&O_y2>tT;e04=d#=4kPUsC)!%ObA%ZId?U*G#xT^7LIU zuwCqHxeF5SE#x7{)w^GBwB4IJG-$kCdw9W%X9K5OY0I&|>0mly@1U>_$>CU+!{;|k zZrFKym)Cg>d>m&h8UQ_8F3TAB7(v1PUfx+5xvwS|^V|=~kNgi4Z5g^99`{e20)E0M zAP02l_5lVCjBoM9oD{uxnVb}PZyHr!h-o-eze_QzKw^Rmg?mEKSIg+Oh1bbBMh zwf#A+si7m9gTJj>BYruA5f_H-n3@#y#rr3m_Uf4dsTLv}V`Akp92y#}6lJ#wkP4ls zM5)C8X=?q`&Z=Erbng^UuiQAukMV$9a}U5!E#7s&=lyIfDPade|1D8n=SYQq+GfxuV(%TJ7#7x5g=P^_$R#h*Wl6#2(`X5WW2$4L|;(i zs%mkv4~gsX&h<}5vC;Z(zcST^dBZX_p;wLC=X`p9m=T+X|HOrIb7 zI@cl0{p*U6?9?2s{y8<=utIKZj{DX%%{Q?xi=Gm zp+l*AvnL=0bRemxc)0liRQvWdQLw$L3Y+t0tGyzxFz`wM+mqc)(s-y19Rb_w5lc<)F-8j8ahwQ)X*p@1n-4vmB2u#^d z6Q&5LX>1_b?cqU4l+Vo0(P4AP1Rp?#W_NFE@94OPCC6mJV-F_Bn8<;y=DsX>ZxJ@G zKkC*$K+HS8O~j>v+rK&BemRsJ4RN)xl(*?Y`a8eAQ5ImRp>^F?3<2!wV-8g$*iKmN zY4UnW=`3M3e;`h)xa75d#O8jLH+@4%pTxRWl(lwm^b~Lg7Bw7*{Hf^XE$f$m&v9$( z(-dUol#hZUq!3 zy+vGgUXkzN=`ldC)et}e$5ZJ=RRjy{pV?>l;#ZG_EOl{T*j9SJjH2x1&@qfLZ?Ayk z**jY?!{@HQN9UvhUYX)W9lSylfYJcjpgsI@h~cCBjeFW8p^?R$$i*NNp_#&C>%Kt3 z%+nu1JgJK%O06TRh#aG*9#Qu8Dn+L*%`D;=un`BgCGMaZLe_f!Mgs?{B1S8;|E*Po3|3Z+`A?_U`(A z7o6QL59|ZAza9&1OBJ%?O#o}Cd4YYpMo}|Ph+_=obGQkW5Bklg{AnPm_*3_~3= zGUe7vulcQVK#cwM)tGu!xvT<=_F;K(1kAs;5@2#g4{H?T-GLfN6ajfT2)@)oKt|E& z;)X)ipYkf@lU61+g*r#e>}2-%v&&mss2vQ!$4iA3-2|#5auVEpq@T#ehPD@+Q5nlt7%m;Q(h4!SscG!-PxzP-2^< zBLKG)!SRP{UJqe_M?K)^J|S4mija8flVvHBeIvaSWTNTK zPV{960Y;#X#5GJ)_;n9C4m%zEK&rqipO>R7*zTZTgQbYJ?}{9{o9sBs)m6?Ip%xO6 z1vd*fOV5nmsh(hG^*1Z%L&-0Jjn>JMZie1&^tIux9^rbZZp3sN@uvivz(lG}>5jDGoI)pofkVnO&|#$mThBd}N!L zseGxrQhGTeY{`C!v5ucOBHMzC&IX?m#|ZeT5ghbxQ(R(Z$=_Gp7!e8H5D7nHV#vMP$wX)(0EI(0^2xbWn$MFm{=!Z^$udVJbP`(mh%ME!D z8$|#qQdi8sijR!4#rnm?%MU6DAZW&ovA4Ic@p+X!rRyTJD#jkKlg}g@P%=t_+%^e2 zxP#e4vzvehmtNrEAzVu}FJDUesUi+!kAM*_MJ#A0DOVal@}w8ZYOqMc>NCGtJ-fI) z=@qFS5&>p1bK_Rkcw zwb~ns&3wRqY_HDvX)pGT^^L?YzjZ3Izdd{PVKx6|hq+iN1cGpF$|v*a@p0|T7?JaW zi*J56cjc)jE|pkT5ON#)aZ}i$#KSW_hO4{j%2Pti2<4%_2TT+acqGwPNSJf| z>tmGnv*LWmpWge}U*qS8&D^db)*>I!L35&Zm6{;ddF}M5m3=~%IS>@*7!l!EXL*zB z8w*ocV%{n)d6uASKk1U5r{6S^=Z}+;v`UY1_Ezv<`#FTIZ8NdNgWW%}^*+M&1iTjK z1}Dr+ZH&5cu352^DP|!NGb~HSbc{>TVCA+0H1P+ z!1OJ19x{A3zWKl36n-jqR)D&-4{40@~KYE{;(uL6WU3Zz8bT7@83*9T}7s8krL*9#ES3m=YSa5G8`W zB@!zg-zU>xxNRIH!!e?v&3DYb@m*{gkN2`dMrEx}#KsKg6;n4EI8;~BAYCoS_VSB# zEQ!?m_nnVgjO70`H~!t^5QBxsfnX|MR%`Ws<QyreV4hYo z6cSE%^66O8M%}6snY31~GeV�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

@+I>B*RzOYA$F(o<%vy5h9 zC-L+b85H(p|7a1)E`>-pfXxC)8B&jhFIh@&^8ZuLg4hGJQRqOf)zI*0n2M_VhL??( z1Bd}Nv>2vDE-8g;I}1DzACPbj+TD~W-Z_`BF!&uWHjBo75cDf}&=rPFj{qPg^TL3Z zS{uAO#YjH0?gSI<)q^%1WE(FPG-JW@-Dyx^p5#$@i0LS)fEzPEKipi1sAcc-M}<%Z z;#RmkN<;v~2T}9Hi04j@o>8Lz!8VW~k#OR5L5L*9f(ZhS4_n>44j7A9yG-*Z z1QOsH*&ILrj8eLYGPwtXf!k4>Vmc58MI+NZ7`yzd_hs@VkUe=ajU?ZuSg^3e6$yBJ{J6YsUU~TE;p=Oi0fvq_i;~7!D5Z$cW+D zlaV-cD=%>lOfa%-9BJ}FD%1z`K9JtW(VNTf{w641r^;KeUN#{*S?HN{)H3RHMLJr?&^IM@a8I_24$^Vu1f%~QgbjjuPGZ(gx zMdKYwk9<~qL`cA2{e=&FfQreT! zZ-s({^ob9Q@2n$CL8m-0FjQxduc6~q7cUhAp(UgcJiT*yeJw%^a-^e#+O3*3J;Fnk zykh+4iaNspF;ybm3U9fAuNh9b~$cQe&7!uuHi;{Kte~qzg?eVFN%ThTmI;Jgx!Jh3z4}) zhIxt^<3XFECrK$%Y#NGSdStc6O1vG7Y3dM1>#QLDnVZF>p>o;MGPj|ake6Sp~_ zavROz`eNg+lU3AkOtRT3&({yzzQb_bHhes#STE}D)hGI)@0X`Rn=1?y^<Xn0WlK(`

{~SO2@aj~r+uCuY(MFu5pL$&kA4DXMorBs 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�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

gSjC8sz4;3uHpJ3mfKZ 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

Cz<#YK(``Ik%n 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

-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 diff --git a/README.md b/README.md index 776487e8..506a9ec6 100644 --- a/README.md +++ b/README.md @@ -1,189 +1,9 @@ # prime - decentralized training at scale -prime (previously called ZeroBand) is a framework for efficient, globally distributed training of AI models over the internet. +this is a fork of prime that remove the distributed part just to debug the core stuff -https://github.com/user-attachments/assets/c034d2a2-400c-4bf8-acd0-c84b6c897d69 - -## Key Features - -- **`ElasticDeviceMesh` for Fault Tolerant Training:** - - In Prime, we’ve added a new distributed abstraction called `ElasticDeviceMesh` which encapsulates dynamic global process groups for fault-tolerant communication across the internet and local process groups for communication within a node or datacenter. - - The `ElasticDeviceMesh` manages the resizing of the global process groups when nodes join or leave, unlike the standard `DeviceMesh` in torch distributed, which will crash and require a cold restart to resize the process group. - - In order to know when to resize the process groups, we use a heartbeat mechanism to discover dead nodes and remove them from the process group. Crashing nodes will attempt a best effort deathrattle to fail their own heartbeat quickly, saving its comrades the timeout. -- **Asynchronous distributed checkpointing** - - Due to the size of the model, checkpointing can be an expensive operation, taking up to 20 minutes on the nodes we tested. This would reduce our compute utilisation if it blocked the main training process. - - In order to minimize the blocking time, we first checkpoint into `/dev/shm` which is a RAM backed filesystem. This operation is much faster and we can unblock the main training process once the checkpoint has been created in `/dev/shm`. - - We then use two subprocesses to asynchronously copy the checkpoint out of `/dev/shm` into the checkpoint directory on disk as well as upload it to the remote. -- **Live checkpoint recovery** - - Nodes that wish to join the run mid-training need to be able to get the most recent state of the model and optimiser before being able to contribute to the training. They must complete this operation in the time window between two outer steps, otherwise, the checkpoint they receive would be stale. - - In order to do this quickly, we have the joining nodes request the checkpoints from its peers which all host a sidecar HTTP server serving the latest checkpoint out of `/dev/shm`. - - Once the joining node has downloaded and initialized the model, it skips the inner steps and joins the outer step with zero pseudo-gradients. This is to prevent the joining node from stalling the existing nodes. If the joining node also performed the inner steps, it would be late to the outer step by the time it took to download and load the checkpoint, reducing the clusters compute utilisation. -- **Custom Int8 All-Reduce Kernel** - - In our experiments, we found that we are able to perform int8 quantization on the pseudo gradients without any impact on the loss curves. This means that we can reduce the payload size of each outer step all-reduce by 4x if we communicate the pseudo-gradients in int8 instead of fp32. - - However, we need to accumulate the reduce in fp32, dequantizing and re-quantizing intermediate results during the all-reduce. This is not supported by any collective communication libraries. - - We thus implemented our own fully pipelined ring-reduce kernel in C++ which is JIT compiled as a custom operator using the torch library. - - However, with the amount of quantization work we needed to perform, using the torch ops (`quantize_per_tensor`, `scatter_add`, `index`, etc) was too slow, resulting in underutilisation of our target network bandwidth of 4 Gbps. - - We thus implemented our own multithreaded uint8 ops in C++ to perform the quantization and dequantization operations, improving the quantization speed by more than 60x. -- **Maximising bandwidth utilization:** - - By sharding our DiLoCo pseudo-gradients in a node, we can maximise network bandwidth utilization by opening multiple connections at the same time when performing the all-reduce. This yielded a transfer speed improvement of 8x on some nodes. - - Relying on the public IP forward resulted in poor or unstable p2p bandwidth on some compute providers. To mitigate this, we employ VPN technology to optimize peer-to-peer connections between nodes, allowing us to better utilize the available internet bandwidth between nodes by modifying the routing of packets through the internet. - - We’ve improved bandwidth utilization between nodes in similar data center settings by up to 40x compared to our OpenDiLoCo release, achieving up to 4Gb/s connections between data centers across the whole United States. -- **PyTorch FSDP2 / DTensor ZeRO-3 implementation** - - In order to fit the 10B model training within our given memory resources, we had to do shard the model weights, gradients and optimizer states between intra-node GPUs. - - We achieved this using the `fully_shard` API from PyTorch FSDP2 which wraps the model parameters as `DTensor`s and registers hooks to schedule all-gather and reduce-scatter on the tensors when they are used. FSDP2 also optimizes the collectives by bucketing the parameters into `FSDPParamGroup`s. This allows us to execute the collectives on larger tensors, improving protocol-to-payload ratio and improving the overlap from pipelining. We employ the same trick for our pseudo-gradients, bucketing them by layer. -- **CPU Off-Loading** - - Our Diloco optimizer does not add any GPU overhead. All the tensors required by the Diloco optimizer are offloaded to CPU memory. - - Since we only perform a global sync every hundreds of steps, the reduced speed of copying and calculating the pseudo-gradient on cpu is negligible relative to the time to execute the inner steps and all-reduce. - -A research paper about the framework and our INTELLECT-1 10B experiment can be found [here](https://arxiv.org/abs/2412.01152). - -## Getting Started - -For an easy install that download the data - -``` -curl -sSL https://raw.githubusercontent.com/PrimeIntellect-ai/prime/main/scripts/install/install.sh | bash -``` - -step by step : - - -1. Clone: - -```bash -git clone git@github.com:PrimeIntellect-ai/prime.git -``` - -2. Install `uv`: - -```bash -curl -LsSf https://astral.sh/uv/install.sh | sh -source $HOME/.local/bin/env ``` - -3. Set up the environment: -```bash -sudo apt install iperf -y -uv venv -source .venv/bin/activate -uv sync --extra all -git submodule update --init --recursive -``` - - -4. Log into Hugging Face: -```bash -huggingface-cli login +curl -sSL https://raw.githubusercontent.com/samsja/prime/main/install.sh | bash ``` -5. Download the data -``` -mkdir -p datasets -uv run python scripts/subset_data.py --dataset_name PrimeIntellect/fineweb-edu --data_world_size 1 --data_rank 0 --max_shards 32 -mv fineweb-edu/ datasets/fineweb-edu/ -``` - - -### Quick Check -Verify your setup: -```bash -GLOO_SOCKET_IFNAME=lo GLOBAL_ADDR=localhost GLOBAL_RANK=0 GLOBAL_UNIQUE_ID=0 GLOBAL_WORLD_SIZE=1 GLOBAL_PORT=8989 uv run torchrun --nproc_per_node=2 src/zeroband/train.py @configs/debug/diloco.toml -``` - -## Usage - -### Running DiLoCo - -To test DiLoCo locally you can use the helper script `scripts/simulate_multi_node_diloco.sh` - -```bash -# Using 4 GPUs (2 diloco workers, each across 2 GPUs) -ZERO_BAND_LOG_LEVEL=DEBUG ./scripts/simulate_multi_node_diloco.sh 2 2 src/zeroband/train.py @configs/debug/diloco.toml - -# Using 2 GPUs (2 diloco workers, each on a single GPU) -ZERO_BAND_LOG_LEVEL=DEBUG ./scripts/simulate_multi_node_diloco.sh 2 1 src/zeroband/train.py @configs/debug/diloco.toml -``` - -### Running Tests - -Ensure you have at least two GPU to run the full test suite: -```bash -uv run pytest -``` - - -### Eval - -To eval you need first to convert the checkpoint to a huggingface compatible model. - -```bash -uv run python scripts/export_dcp.py @configs/10B/H100.toml --ckpt.path CONVERTED_MODEL_PATH --ckpt.resume CHECKPOINT_PATH --torch_dtype bfloat16 --ckpt.interval 1 -``` - - -``` -uv run accelerate launch -m lm_eval --model hf --model_args pretrained=CONVERTED_MODEL_PATH,add_bos_token=True --tasks hellaswag --num_fewshot 10 -``` - - -## Environment variables -### Global Store Initialization -| Environment Variable | Description | Default Value | -|-----------------------|--------------------------------------------------|---------------| -| `GLOBAL_UNIQUE_ID` | Unique identifier worker in global store. | `None` | -| `GLOBAL_ADDR` | IP Address of the global store | `None` | -| `GLOBAL_PORT` | Port number of the global store. | `None` | -| `GLOBAL_WORLD_SIZE` | The size of the global process group. | `1` | -| `GLOBAL_RANK` | Rank of the process in the global process group. | `0` | - -### Elastic Device Mesh Configuration -| Environment Variable | Description | Default Value | -|-----------------------|--------------------------------------------------|---------------| -| `ZERO_BAND_LOG_LEVEL` | Enable debug log lines | `False` | -| `ZERO_BAND_GLOBAL_STORE_TIMEOUT_SECONDS` | Number of seconds before the global store operations timeout | `300` | -| `ZERO_BAND_GLOBAL_PG_TIMEOUT_SECONDS` | Number of seconds before the global process group operations timeout | `600` | -| `ZERO_BAND_GLOBAL_STORE_POLLING_INTERVAL_SECONDS` | Number of seconds between polls to the store when waiting for values | `0.1` | -| `ZERO_BAND_EDM_HEARTBEAT_INTERVAL_SECONDS` | Interval in seconds between heartbeats | `2` | -| `ZERO_BAND_EDM_HEARTBEAT_TIMEOUT_SECONDS` | Time in seconds after which a node is considered dead if no heartbeat is received | `10` | -| `ZERO_BAND_LIVE_RECO_PORT` | Port number for the live recovery server | random | -| `ZERO_BAND_LIVE_RECO_ADDR` | IP Address for the live recovery server | `localhost` | - -## Troubleshooting - -If you encounter any dataset loading errors at the beginning of training, try setting: - -```bash -export HF_HUB_ETAG_TIMEOUT=500 -``` - -## Pre-downloading datasets -Streaming datasets from huggingface hub can sometimes result in http 443 errors which will crash the training process. -To avoid them, you can pre-download the dataset. - -Here is an example that downloads all the files in `PrimeIntellect/fineweb-edu` which are used by `data_rank` 5 in a training with `data_world_size` of 12. -```bash -python3 scripts/subset_data.py --dataset_name PrimeIntellect/fineweb-edu --data_world_size 12 --data_rank 5 -``` - -For info about the arguments to the script, do: -```bash -python3 scripts/subset_data.py --help -``` - -# Exporting checkpoints to huggingface compatible model -You can convert the checkpoints saved by the training script to a model that can be run with any huggingface-compatible inference engine (e.g. transformers, vLLM) using our export script. -The export script takes the training config as a positional argument and 2 keyword arguments, `ckpt.resume` which is the path to the checkpoint, `ckpt.path` which is the path you wish to save the converted model. -You may also pass the `torch_dtype` argument to either `float32` or `bfloat16` to specify the precision of the exported model weights. The default `torch_dtype` is `float32`. - -Example export command: -```bash -python scripts/export_dcp.py @configs/10B/H100.toml --ckpt.path /path/to/save/converted_model --ckpt.resume /path/to/ckpt/step_84000 --torch_dtype bfloat16 -``` - -You can then upload the model to huggingface using huggingface-cli: -```bash -# Usage: huggingface-cli upload [repo_id] [local_path] [path_in_repo] -huggingface-cli upload username/mymodel /path/to/save/converted_model . --private -``` -The repo will be created if `repo_id` does not exist. The `--private` will create the repo as a private repo and cab ne ommited to create a publicly accessible repo. diff --git a/scripts/install/install.sh b/install.sh similarity index 100% rename from scripts/install/install.sh rename to install.sh diff --git a/scripts/all_reduce.py b/scripts/all_reduce.py deleted file mode 100644 index 2d99b418..00000000 --- a/scripts/all_reduce.py +++ /dev/null @@ -1,69 +0,0 @@ -from pydantic_config import BaseConfig, parse_argv -import torch -from torch.distributed import destroy_process_group, init_process_group, ReduceOp -import torch.utils.benchmark as benchmark - -from zeroband.collectives import Compression, all_reduce -from zeroband.utils.world_info import get_world_info -from zeroband.utils.logger import get_logger - -from enum import Enum - - -class TorchDtype(str, Enum): - FLOAT32 = "float32" - FLOAT16 = "float16" - BFLOAT16 = "bfloat16" - UINT8 = "uint8" - - -TORCH_DTYPE_MAP = { - None: None, - TorchDtype.FLOAT32: torch.float32, - TorchDtype.FLOAT16: torch.float16, - TorchDtype.BFLOAT16: torch.bfloat16, - TorchDtype.UINT8: torch.uint8, -} - - -class Config(BaseConfig): - size_model: int = int(1e7) - n_iters: int = 4 - compression: Compression = Compression.NO - - -def main(config: Config): - world_info = get_world_info() - - mat = torch.rand(1, config.size_model) - - logger.info( - f"\n ======== Benchmark all reduce between {world_info.world_size} gpus over {world_info.nnodes} nodes =========\n" - ) - - t0 = benchmark.Timer( - stmt="compressed_all_reduce(compression, mat, op=op)", - globals={ - "compressed_all_reduce": all_reduce, - "mat": mat, - "compression": config.compression, - "op": ReduceOp.SUM, - }, - ) - - measured_time = t0.timeit(config.n_iters).mean - - bandwidth = config.size_model * 4 / 1e6 / measured_time - - logger.info(f"Average time per iteration: {measured_time:.2f} seconds, Average bandwidth: {bandwidth:.4f} MB/s") - - -if __name__ == "__main__": - config = Config(**parse_argv()) - - torch.set_float32_matmul_precision("high") - init_process_group(backend="gloo") - - logger = get_logger() - main(config) - destroy_process_group() diff --git a/scripts/bandwith/down.sh b/scripts/bandwith/down.sh deleted file mode 100755 index e8c32c37..00000000 --- a/scripts/bandwith/down.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# Check if the script is run as root -if [ "$EUID" -ne 0 ]; then - echo "Please run as root" - exit 1 -fi - -# Define variables -INTERFACE="lo" # localhost interface -RATE="500mbit" # 500 Mbps -BURST="500k" # burst size -LATENCY="50ms" # maximum latency - -# Remove any existing traffic control rules on the interface -tc qdisc del dev $INTERFACE root 2>/dev/null - -# Add the rate limiting rule -tc qdisc add dev $INTERFACE root tbf rate $RATE burst $BURST latency $LATENCY - -echo "Bandwidth limit of $RATE has been set on $INTERFACE" - -# To remove the limit, run: -# tc qdisc del dev $INTERFACE root \ No newline at end of file diff --git a/scripts/bandwith/up.sh b/scripts/bandwith/up.sh deleted file mode 100755 index fff8a800..00000000 --- a/scripts/bandwith/up.sh +++ /dev/null @@ -1 +0,0 @@ -tc qdisc del dev lo root diff --git a/scripts/convert_dl_ckpt.sh b/scripts/convert_dl_ckpt.sh deleted file mode 100755 index efc1defc..00000000 --- a/scripts/convert_dl_ckpt.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -set -e - -# Wrapper script to run the Python command on 8 checkpoints in parallel -# Usage: ./convert_all.sh /data/10b/step_50800/diloco_0/data - -# Input path prefix -INPUT_PATH=$1 - -# Run the commands for each checkpoint in parallel -for i in {0..7}; do - CHECKPOINT_PATH="${INPUT_PATH}/_${i}.pt" - BACKUP_PATH="${INPUT_PATH}/_${i}_old.pt" - TMP_PATH="${INPUT_PATH}/_${i}_tmp.pt" - - if [ -f "$BACKUP_PATH" ]; then - echo "Checkpoint ${CHECKPOINT_PATH} has already been processed, skipping." & - else - ( - uv run python scripts/convert_dl_state.py @configs/10B/H100.toml \ - --input_path "$CHECKPOINT_PATH" \ - --output_path "$TMP_PATH" \ - --rank "$i" \ - --world_size 8 && \ - mv "$CHECKPOINT_PATH" "$BACKUP_PATH" && \ - mv "$TMP_PATH" "$CHECKPOINT_PATH" && \ - echo "Processed ${CHECKPOINT_PATH} and moved to ${BACKUP_PATH}" - ) & - fi -done - -# Wait for all background jobs to complete -wait - -echo "All checkpoints processed" diff --git a/scripts/convert_dl_state.py b/scripts/convert_dl_state.py deleted file mode 100755 index d1d1b61c..00000000 --- a/scripts/convert_dl_state.py +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 -# Example Usage: -# python scripts/convert_dl_state.py @configs/10B/H100.toml --input_path /workspace/step_49200/diloco_0/data/_3.pt --output_path ./meow.pt --rank 3 --world_size 8 - -import torch -from zeroband.config import resolve_env_vars -from zeroband.data import get_dataloader -from transformers import AutoTokenizer -from zeroband.train import Config -from zeroband.utils.logger import get_logger -from pydantic_config import parse_argv - -COMMON_KEYS = [ - "_snapshot._main_snapshot._sampler_iter_yielded", - "_snapshot._snapshot_step", - "_snapshot._main_snapshot._index_sampler_state.samples_yielded", - "_snapshot._main_snapshot._num_workers", - "_snapshot._main_snapshot._sampler_iter_state", - "_snapshot._main_snapshot._shared_seed", - "_snapshot._last_yielded_worker_id", - "_snapshot._main_snapshot._base_seed", -] - - -def traverse_dict(d: dict, key: str): - _k = key.split(".") - for k in _k: - d = d[k] - return d - - -def transfer_states(old_state_dict: dict, new_state_dict: dict): - for k in COMMON_KEYS: - parent, _, child = k.rpartition(".") - if parent: - traverse_dict(new_state_dict, parent)[child] = traverse_dict(old_state_dict, parent)[child] - for worker_id in range(4): - ex_iterables = [ - ds_state["ex_iterable"] - for ds_state in traverse_dict( - old_state_dict, f"_snapshot._worker_snapshots.worker_{worker_id}.dataset_state.ex_iterable.ex_iterables" - ) - ] - num_ds = len(ex_iterables) - new_ds_state = traverse_dict( - new_state_dict, f"_snapshot._worker_snapshots.worker_{worker_id}.dataset_state.dataset" - ) - # HACK: dataset_4 is openwebmath which is not always present - if "dataset_4" not in new_ds_state.keys(): - num_ds -= 1 - new_ds_state = [ - traverse_dict( - new_state_dict, f"_snapshot._worker_snapshots.worker_{worker_id}.dataset_state.dataset.dataset_{i}" - ) - for i in range(num_ds) - ] - - for new_state, old_state in zip(new_ds_state, ex_iterables): - # HACK: We might index error because of skipping into a different sized shard for dclm - new_state["file_index"] = (old_state["shard_idx"] + 1) % len(new_state["files"]) - new_state["row_index"] = 0 # old_state["shard_example_idx"] - - -class ExportConfig(Config): - input_path: str - output_path: str - rank: int - world_size: int - - -def main(config: ExportConfig): - old_state_dict = torch.load(config.input_path)["data_loader"] - - if config.type_model == "llama2": - tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1", use_fast=True) - elif config.type_model == "llama3": - tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B", use_fast=True) - else: - raise ValueError(f"Model type {config.type_model} not supported") - - dl = get_dataloader( - tokenizer=tokenizer, - world_size=config.world_size, - rank=config.rank, - batch_size=config.train.micro_bs, - data_config=config.data, - ) - - iter_dl = iter(dl) - - # Needed to init the states because they are lazy - while True: - try: - _ = next(iter_dl) - new_state_dict = dl.state_dict() - transfer_states(old_state_dict, new_state_dict) - break - except KeyError: - print("Not inited, sampling again") - pass - - print(f"Saving to {config.output_path}") - torch.save({"data_loader": new_state_dict}, config.output_path) - - del dl - - -def test_dl(config: ExportConfig): - if config.type_model == "llama2": - tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1", use_fast=True) - elif config.type_model == "llama3": - tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B", use_fast=True) - else: - raise ValueError(f"Model type {config.type_model} not supported") - - dl = get_dataloader( - tokenizer=tokenizer, - world_size=config.world_size, - rank=config.rank, - batch_size=config.train.micro_bs, - data_config=config.data, - ) - dl.load_state_dict(torch.load(config.output_path, weights_only=True)["data_loader"]) - - iter_dl = iter(dl) - - # Needed to init the states because they are lazy - for i in range(10): - batch = next(iter_dl) - print(batch.keys(), batch["input_ids"].shape) - - -if __name__ == "__main__": - logger = get_logger() - config = ExportConfig(**parse_argv()) - resolve_env_vars(config) - logger.debug(f"config: {config.model_dump()}") - - main(config) - test_dl(config) diff --git a/scripts/export_dcp.py b/scripts/export_dcp.py deleted file mode 100644 index dd21e3d5..00000000 --- a/scripts/export_dcp.py +++ /dev/null @@ -1,228 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 -# Example Usage: -# python scripts/export_dcp.py @configs/10B/H100.toml --ckpt.path /data/intellect-1-step17000 --ckpt.resume /data/10b/step_17000/diloco_0 - -import torch -from typing import Literal -import torch.distributed.checkpoint as dcp -from zeroband.models.llama import get_model -from zeroband.config import resolve_env_vars -from zeroband.checkpoint import ModelWrapper -from zeroband.utils import get_module_signature -from zeroband.train import Config -from zeroband.utils.logger import get_logger -from pydantic_config import parse_argv -from transformers import AutoTokenizer -import math -from pathlib import Path -from safetensors.torch import save_file -import json -from zeroband.models.llama import ModelArgs -from transformers import LlamaConfig -from transformers.generation import GenerationConfig - - -class ExportConfig(Config): - save_format: Literal["pt", "safetensors"] = "safetensors" - torch_dtype: Literal["float32", "bfloat16"] = "float32" - with_debug_automap: bool = False - - -def remap_keys_llama(k: str) -> str: - """Maps ZeroBand keys to HuggingFace keys""" - return ("model." if "output.weight" not in k else "") + k.replace("tok_embeddings", "embed_tokens").replace( - "attention.wq", "self_attn.q_proj" - ).replace("attention.wk", "self_attn.k_proj").replace("attention.wv", "self_attn.v_proj").replace( - "attention.wo", "self_attn.o_proj" - ).replace("attention_norm", "input_layernorm").replace("feed_forward.w3", "mlp.up_proj").replace( - "feed_forward.w2", "mlp.down_proj" - ).replace("feed_forward.w1", "mlp.gate_proj").replace("ffn_norm", "post_attention_layernorm").replace( - "output.weight", "lm_head.weight" - ) - - -def _get_ffn_dim(hidden_dim: int, ffn_dim_multiplier: float, multiple_of: int) -> int: - """Get the FFN dimension from ZeroBand args""" - hidden_dim = int(8 * hidden_dim / 3) - # custom dim factor multiplier - if ffn_dim_multiplier is not None: - hidden_dim = int(ffn_dim_multiplier * hidden_dim) - hidden_dim = multiple_of * ((hidden_dim + multiple_of - 1) // multiple_of) - return hidden_dim - - -def convert_config_zb_to_hf( - zb_config: ModelArgs, with_debug_automap: bool = False, type_model: str = "llama3" -) -> LlamaConfig: - """Convert ZeroBand config to HuggingFace config""" - config = LlamaConfig() - config.hidden_size = zb_config.dim - config.num_hidden_layers = zb_config.n_layers - config.num_attention_heads = zb_config.n_heads - config.num_key_value_heads = zb_config.n_kv_heads - config.vocab_size = zb_config.vocab_size - config.intermediate_size = _get_ffn_dim(zb_config.dim, zb_config.ffn_dim_multiplier, zb_config.multiple_of) - config.rms_norm_eps = zb_config.norm_eps - config.rope_theta = float(zb_config.rope_theta) - config.max_position_embeddings = zb_config.max_seq_len - - if type_model == "llama2": - config.bos_token_id = [1] - config.eos_token_id = [2] - else: - config.bos_token_id = [128000] - config.eos_token_id = [128001, 128008, 128009] - - config.architectures = ["LlamaForCausalLM"] - - # Rope scaling - config.rope_scaling = { - "original_max_position_embeddings": 8192, - "rope_type": "default", - } - - if with_debug_automap: - config.auto_map = { - "AutoConfig": "PrimeIntellect/prime-llama-debug--configuration_llama.LlamaConfig", - "AutoModelForCausalLM": "PrimeIntellect/prime-llama-debug--modeling_llama.LlamaForCausalLM", - } - - return config - - -@torch.no_grad -def convert_qk_from_complex_to_rotate_half(linear_weight: torch.FloatTensor, head_dim: int) -> torch.FloatTensor: - """Converts the Q/K weight from complex to rotate half form. - This is required because the rotary implementation in ZeroBand uses complex numbers which encodes even elements as real and odd number as complex. - [0, 1, 2, 3] -> [0 + 1j, 2 + 3j] - However, the HuggingFace implementation uses rotate_half which encodes top half as real and bottom half as complex. - [0, 1, 2, 3] -> [0, 1] + [2, 3]j - - We thus need to permute the QK outputs to match the HuggingFace implementation. - """ - new_weight = torch.zeros_like(linear_weight) - - num_heads = linear_weight.size(0) // head_dim - hhd = head_dim // 2 - - # This applies the riffle shuffle permutation to the outputs of the linear for each attn head - # Even numbers go to the top half, odd numbers go to the bottom half - for i in range(num_heads): - new_weight[i * head_dim : (i * head_dim + hhd), :].copy_( - linear_weight[i * head_dim + 0 : (i + 1) * head_dim : 2, :] - ) - new_weight[i * head_dim + hhd : (i + 1) * head_dim, :].copy_( - linear_weight[i * head_dim + 1 : (i + 1) * head_dim : 2, :] - ) - - return new_weight - - -def main(config: ExportConfig): - # Create save path - save_path = Path(config.ckpt.path) - save_path.mkdir(parents=True, exist_ok=True) - - # Load model - logger.info("Getting tokenizer (for vocab size)") - if config.type_model == "llama2": - tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1", use_fast=True) - elif config.type_model == "llama3": - tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B", use_fast=True) - else: - raise ValueError(f"Model type {config.type_model} not supported") - - logger.info("Getting model") - model, model_config = get_model( - config.name_model, - config.type_model, - vocab_size=len(tokenizer), - seq_length=config.data.seq_length, - attn_fn=config.train.attn_fn, - ) - - # Convert ZeroBand config to HuggingFace config - hf_config = convert_config_zb_to_hf( - model_config, with_debug_automap=config.with_debug_automap, type_model=config.type_model - ) - hf_config.to_json_file(save_path / "config.json") - - # Load checkpoint - logger.info("Before load: %s", get_module_signature(model)) - states = { - "model": ModelWrapper(model), - } - logger.info("Loading from %s", config.ckpt.resume) - dcp.load( - state_dict=states, - checkpoint_id=config.ckpt.resume, - ) - - logger.info("After load: %s", get_module_signature(model)) - - # Convert model to HuggingFace format - num_shards = int(sum(p.numel() for p in model.parameters()) / 1e9) - state_dict = model.state_dict() - - index_json = {} - total_size = 0 - state_dict = {remap_keys_llama(k): v for k, v in state_dict.items()} - if not config.with_debug_automap: # The debug uses complex rotary impl - with torch.no_grad(): - for i in range(hf_config.num_hidden_layers): - old_q = state_dict[f"model.layers.{i}.self_attn.q_proj.weight"] - old_k = state_dict[f"model.layers.{i}.self_attn.k_proj.weight"] - new_q = convert_qk_from_complex_to_rotate_half(old_q, 128) - new_k = convert_qk_from_complex_to_rotate_half(old_k, 128) - state_dict[f"model.layers.{i}.self_attn.q_proj.weight"].copy_(new_q) - state_dict[f"model.layers.{i}.self_attn.k_proj.weight"].copy_(new_k) - if "model.freqs_cis" in state_dict: # This should not be persisted - del state_dict["model.freqs_cis"] - if config.torch_dtype == "bfloat16": - state_dict = {k: v.to(torch.bfloat16) for k, v in state_dict.items()} - - # Save model - state_keys = list(state_dict.keys()) - shard_size = int(math.ceil(len(state_keys) / num_shards)) - logger.info("Saving model to %d shards", num_shards) - - for i in range(num_shards): - _file = save_path / f"model-{i:04}-of-{num_shards:04}.{config.save_format}" - start = i * shard_size - end = min((i + 1) * shard_size, len(state_keys)) - shard = {k: state_dict[k] for k in state_keys[start:end]} - - index_json.update({k: _file.name for k in shard.keys()}) - total_size += sum(p.numel() for p in shard.values()) - if config.save_format == "pt": - torch.save(shard, _file) - else: - save_file(shard, _file, metadata=dict(format="pt")) - - json.dump( - { - "weight_map": index_json, - "metadata": { - "total_size": total_size * (2 if config.torch_dtype == "bfloat16" else 4), - }, - }, - (save_path / "model.safetensors.index.json").open("w"), - indent=2, - ) - - # Save Tokenizer - tokenizer.save_pretrained(save_path) - - # Save Generation Config - gconfig = GenerationConfig(max_length=100, use_cache=False, temperature=0.7, top_k=None, do_sample=True) - gconfig.save_pretrained(save_path) - - -if __name__ == "__main__": - logger = get_logger() - config = ExportConfig(**parse_argv()) - resolve_env_vars(config) - logger.debug(f"config: {config.model_dump()}") - - main(config) diff --git a/scripts/simple_gloo.py b/scripts/simple_gloo.py deleted file mode 100644 index b0c45097..00000000 --- a/scripts/simple_gloo.py +++ /dev/null @@ -1,17 +0,0 @@ -import os -import torch.distributed as dist - -master_addr = os.environ["MASTER_ADDR"] -master_port = 12345 -rank = int(os.environ["RANK"]) -world_size = int(os.environ["WORLD_SIZE"]) - -print("Ho") -store = dist.TCPStore(host_name=master_addr, port=master_port, is_master=(rank == 0), world_size=2) - -store.set("j", "k") -print("Hi") -pg = dist.distributed_c10d.ProcessGroupGloo(store, rank, world_size) -print("Hi 1") - -del pg diff --git a/scripts/simulate_multi_node_diloco.sh b/scripts/simulate_multi_node_diloco.sh deleted file mode 100755 index 38212900..00000000 --- a/scripts/simulate_multi_node_diloco.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash - -# -# simulate multi nodes on one gpu. start N torchrun on X gpu locally. -# example how to run ./scripts/simulate_multi_node.sh 2 1 src/zeroband/train.py @configs/debug/normal.toml - -# Function to get CUDA devices based on the number of GPUs and index -function get_cuda_devices() { - local num_gpu=$1 - local index=$2 - local start_gpu=$((num_gpu * index)) - local end_gpu=$((start_gpu + num_gpu - 1)) - - if [ "$num_gpu" -eq 1 ]; then - echo $start_gpu - else - echo $(seq -s ',' $start_gpu $end_gpu) - fi -} - -# Array to store PIDs of child processes -child_pids=() - -# Modified cleanup function to handle tail separately -cleanup() { - echo "Cleaning up child processes..." - local killed=0 - - # First kill the main processes - for pid in "${child_pids[@]}"; do - if kill -TERM "$pid" 2>/dev/null; then - ((killed++)) - fi - done - - # Kill the tail process if it exists - if [ -n "$tail_pid" ]; then - kill -TERM "$tail_pid" 2>/dev/null - ((killed++)) - fi - - wait - echo "All child processes terminated. Killed $killed processes." - exit -} - -# Check if at least three arguments were passed -if [ "$#" -lt 3 ]; then - echo "Usage: $0 [additional_python_args]" - exit 1 -fi - - -N=$1 # The number of processes -NUM_GPU=$2 # The number of GPUs used by each process -# Remove the first three arguments so $@ contains only additional Python arguments -shift 2 - -# Register the cleanup function to be called on SIGINT (Ctrl+C) -trap cleanup SIGINT - - -mkdir -p logs - -export GLOBAL_ADDR=localhost -export GLOBAL_PORT=${GLOBAL_PORT:-5565} -export GLOBAL_WORLD_SIZE=$N -export BASE_PORT=${BASE_PORT:-10001} -export GLOO_SOCKET_IFNAME=lo - -for i in $(seq 0 $(($N - 1 ))) -do - > logs/log$i.log - WANDB_MODE=$([ $i -eq 0 ] && echo "online" || echo "offline") GLOBAL_UNIQUE_ID=$i GLOBAL_RANK=$i CUDA_VISIBLE_DEVICES=$(get_cuda_devices $NUM_GPU $i) uv run torchrun --nproc_per_node=$NUM_GPU --node-rank 0 --rdzv-endpoint localhost:$((BASE_PORT + $i)) --nnodes=1 $@ --data.data_rank $i --data.data_world_size $N > logs/log$i.log 2>&1 & - child_pids+=($!) -done - -# Start tail in background and store its PID separately -tail -f logs/log0.log & -tail_pid=$! - -# Wait for the main processes only -for pid in "${child_pids[@]}"; do - wait $pid -done - -# Once main processes are done, kill the tail process -if [ -n "$tail_pid" ]; then - kill -TERM "$tail_pid" -fi diff --git a/scripts/skip_data.py b/scripts/skip_data.py deleted file mode 100644 index 2f2bc48a..00000000 --- a/scripts/skip_data.py +++ /dev/null @@ -1,88 +0,0 @@ -""" -This script is simulating a training to exaust the datasets and recover the dataloader ckpt. - -It has the same api as the training one. The only difference is that you probably want to change the total_steps and put a data_path. - -It can load config from the config file to have the same setup as the real run. - -example. -``` -uv run torchrun --nproc_per_node=4 scripts/skip_data.py @configs/150M/3090.toml --optim.total_steps 100 --ckpt.data_path out_data -``` - -""" - -import os -import torch -from pydantic_config import parse_argv - - -from transformers import AutoTokenizer -from zeroband.checkpoint import CkptManager -from zeroband.config import resolve_env_vars -from zeroband.train import Config - -from zeroband.data import get_dataloader - -from zeroband.utils.world_info import get_world_info -from zeroband.utils.logger import get_logger - - -def skip_data(config: Config): - # batch_size is the total batch size for all GPUs - assert config.optim.batch_size % world_info.local_world_size == 0 - batch_size = config.optim.batch_size // world_info.local_world_size - - assert batch_size % config.train.micro_bs == 0 - gradient_accumulation_steps = batch_size // config.train.micro_bs - - if config.type_model == "llama2": - tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1", use_fast=True) - elif config.type_model == "llama3": - tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B", use_fast=True) - else: - raise ValueError(f"Model type {config.type_model} not supported") - - logger.debug("tokenizer loaded") - - train_dataloader = get_dataloader( - tokenizer=tokenizer, - world_size=world_info.world_size, - rank=world_info.rank, - batch_size=config.train.micro_bs, - data_config=config.data, - ) - - train_dataloader_iterator = iter(train_dataloader) - - logger.info("starting skipping data up to step: %d", config.optim.total_steps) - - total_steps = 0 - - while True: - num_inner_steps = config.diloco.inner_steps if config.diloco is not None else 1 - - for _inner_step in range(num_inner_steps): - for _ in range(gradient_accumulation_steps): - next(train_dataloader_iterator) - - total_steps += num_inner_steps - logger.info("total steps: %d", total_steps) - if total_steps >= config.optim.total_steps: - break - - CkptManager.save_data(os.path.join(config.ckpt.data_path, "data"), train_dataloader, world_info.local_rank) - - logger.info("skipped data up to step: %d", config.optim.total_steps) - - -if __name__ == "__main__": - torch.manual_seed(42) - - world_info = get_world_info() - logger = get_logger() - - config = Config(**parse_argv()) - resolve_env_vars(config) - - skip_data(config) diff --git a/scripts/subset_data.py b/scripts/subset_data.py deleted file mode 100644 index 2e6c6484..00000000 --- a/scripts/subset_data.py +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 -# Usage: -# python scripts/subset_data.py --dataset_name PrimeIntellect/fineweb-edu --data_world_size 12 --data_rank 1 - -import argparse -import subprocess -from typing import Dict, List, Optional -import functools -from datasets import load_dataset_builder, BuilderConfig -import logging -from huggingface_hub import get_token -import os -import multiprocessing as mp -from tqdm import tqdm - -logger = logging.getLogger(__name__) -logger.setLevel(logging.DEBUG) -ch = logging.StreamHandler() -ch.setLevel(logging.DEBUG) -formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") -ch.setFormatter(formatter) -logger.addHandler(ch) - - -@functools.lru_cache(maxsize=None) -def _get_ds_config_dict(path: str, name: Optional[str] = None) -> Dict[str, BuilderConfig]: - ds_builder = load_dataset_builder(path=path, name=name) - return ds_builder.builder_configs - - -def _get_datafiles(path: str, name: Optional[str] = None, split: str = "train") -> List[str]: - builder_config = _get_ds_config_dict(path=path, name=name) - if name is None: - if "default" not in builder_config: - name = next(iter(builder_config.keys())) - else: - name = "default" - return builder_config[name].data_files[split] - - -def _download_file(data_file: str, save_path: str) -> None: - """Download a file from huggingface.co - - Args: - data_file (str): The file to download. e.g. 'hf://datasets/PrimeIntellect/fineweb-edu@14efaa24d7dff8a745bf4918e415878546542346/data1/train-00450.parquet' - save_path (str): The path to save the file. e.g. 'data1/train-00450.parquet' - """ - assert data_file.startswith("hf://") - data_file = data_file.replace("hf://", "").replace("@", "/resolve/") - - if "/" in save_path: - parent = "/".join(save_path.split("/")[:-1]) - if not os.path.exists(parent): - logger.debug(f"Creating directory: {parent}") - os.makedirs(parent, exist_ok=True) - - cmd = [ - "wget", - f'--header="Authorization: Bearer {get_token()}"', - f"https://huggingface.co/{data_file}?download=true", - f"-O {save_path}", - ] - result = subprocess.run(" ".join(cmd), shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) - if result.returncode != 0: - logger.error(f"Error downloading file: {data_file}") - logger.error(result.stderr.decode("utf-8")) - - -def _download_file_wrapper(args): - return _download_file(*args) - - -def _get_save_path(data_file: str) -> str: - ret_list = data_file.split("@")[-1].split("/")[1:] - return args.dataset_name.split("/")[-1] + "/" + "/".join(ret_list) - - -def main(args): - g_data_files = _get_datafiles(args.dataset_name) - logger.debug(f"Length of data_files: {len(g_data_files)}") - if len(args.filter) > 0: - args.filter = args.filter.split(",") - data_files = [] - for _filter in args.filter: - data_files.extend([f for f in g_data_files if _filter in f]) - else: - data_files = g_data_files - - logger.debug(f"Length of data_files: {len(data_files)}") - data_files = data_files[args.data_rank :: args.data_world_size][: args.max_shards] - logger.debug(f"Data files: {data_files}") - logger.debug(f"Length of data_files processing: {len(data_files)}") - - if args.dry_run: - return - - with mp.Pool(args.num_workers) as pool: - save_paths = list(pool.imap(_get_save_path, tqdm(data_files, desc="Getting save paths"))) - _ = list( - tqdm( - pool.imap(_download_file_wrapper, zip(data_files, save_paths)), - desc="Downloading files", - total=len(data_files), - bar_format="{l_bar}{bar:10}{r_bar}", - ) - ) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Download and process data from a HF dataset") - parser.add_argument("--dataset_name", type=str, default="PrimeIntellect/fineweb-edu", help="dataset name") - parser.add_argument("--dry_run", action="store_true", help="do not download data") - parser.add_argument("--filter", type=str, default="", help="search shards by the filter") - parser.add_argument("--data_rank", type=int, default=0, help="start index") - parser.add_argument("--data_world_size", type=int, default=4, help="world size") - parser.add_argument("--max_shards", type=int, default=1000) - parser.add_argument("--num_workers", type=int, default=12) - args = parser.parse_args() - main(args) diff --git a/tests/test_c/conftest.py b/tests/test_c/conftest.py deleted file mode 100644 index bb6ab323..00000000 --- a/tests/test_c/conftest.py +++ /dev/null @@ -1,41 +0,0 @@ -import pytest -import socket -from contextlib import contextmanager -import os -from unittest import mock - - -def get_random_available_port(): - # https://stackoverflow.com/questions/1365265/on-localhost-how-do-i-pick-a-free-port-number - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.bind(("", 0)) - return s.getsockname()[1] - - -@pytest.fixture() -def random_available_port(): - return get_random_available_port() - - -@pytest.fixture() -def dist_environment() -> callable: - @contextmanager - def dist_environment( - random_available_port, backend=None, rank=0, local_rank=0, world_size=1, local_world_size=1, global_unique_id="" - ): - with mock.patch.dict( - os.environ, - { - "GLOBAL_UNIQUE_ID": global_unique_id, - "RANK": str(rank), - "WORLD_SIZE": str(world_size), - "LOCAL_RANK": str(local_rank), - "LOCAL_WORLD_SIZE": str(local_world_size), - "MASTER_ADDR": "localhost", - "MASTER_PORT": str(random_available_port), - "ZERO_BAND_LOG_LEVEL": "DEBUG", - }, - ): - yield - - return dist_environment diff --git a/tests/test_c/test_collectives.py b/tests/test_c/test_collectives.py deleted file mode 100644 index 09c4b405..00000000 --- a/tests/test_c/test_collectives.py +++ /dev/null @@ -1,68 +0,0 @@ -import torch -import torch.distributed as dist -from zeroband.C.collectives import ring_allreduce -from zeroband.collectives import ring_allreduce_py -from zeroband.C.compression import uniform_8bit_quantize -import math -import pytest -import multiprocessing as mp - -N = 1_000_000 -TIME_COUNT = 2 - - -@pytest.mark.parametrize("world_size", [2, 4]) -@pytest.mark.parametrize("pg_source", ["gloo", "default"]) -def test_ring_allreduce(world_size: int, pg_source: str, random_available_port: int, dist_environment): - def all_reduce(rank: int, world_size: int): - with dist_environment(random_available_port, "gloo", rank=rank, world_size=world_size): - dist.init_process_group(backend="gloo") - rank = dist.get_rank() - world_size = dist.get_world_size() - if pg_source == "gloo": - store = dist.TCPStore( - host_name="localhost", - port=random_available_port + 1, - world_size=world_size, - is_master=(rank == 0), - ) - pg = dist.distributed_c10d.ProcessGroupGloo(store, rank, world_size) - else: - pg = dist.distributed_c10d._get_default_group() - a = torch.randn(N) * 10 - b = torch.clone(a) - c = torch.clone(a) - - ring_allreduce(a, dist.ReduceOp.SUM, pg) - ring_allreduce_py( - b, - dist.ReduceOp.SUM, - dist.distributed_c10d._get_default_group(), - quantization_func=uniform_8bit_quantize, - ) - dist.all_reduce(c, dist.ReduceOp.SUM, group=pg) - - if rank == 0: - error_new = torch.norm(a - c) - diff_new = (a - c).abs() - error_old = torch.norm(b - c) - diff_old = (b - c).abs() - print( - f"[New] norm: {error_new:.4f} diff mean: {diff_new.mean():.4f} std: {diff_new.std()} max: {diff_new.max():.4f}" - ) - print( - f"[Old] norm: {error_old:.4f} diff mean: {diff_old.mean():.4f} std: {diff_old.std()} max: {diff_old.max():.4f}" - ) - - assert (error_new - error_old).abs() / math.sqrt(N) < 0.5 - - dist.destroy_process_group() - - # Perform ring all-reduce - processes = [mp.Process(target=all_reduce, args=(rank, world_size)) for rank in range(world_size)] - for p in processes: - p.start() - for p in processes: - p.join() - if p.exitcode != 0: - pytest.fail(f"Process {p.pid} failed with exit code {p.exitcode}") diff --git a/tests/test_c/test_compression.py b/tests/test_c/test_compression.py deleted file mode 100644 index c713da6f..00000000 --- a/tests/test_c/test_compression.py +++ /dev/null @@ -1,78 +0,0 @@ -import torch -from torch.utils.benchmark import Timer -from zeroband.compression import uniform_8bit_quantize as uniform_8bit_quantize_old -from zeroband.compression import average_buckets as average_buckets_old - -from zeroband.C.compression import average_buckets, uniform_8bit_quantize, quantize_per_tensor_uint8 - -N = 10_000_000 -TIME_COUNT = 1 - - -def test_uniform_8bit_quantize(): - a = torch.randn(N) - - # Benchmark old function - timer_old = Timer( - stmt="uniform_8bit_quantize_old(a)", globals={"uniform_8bit_quantize_old": uniform_8bit_quantize_old, "a": a} - ) - time_old = timer_old.timeit(TIME_COUNT) - - # Benchmark new function - timer_new = Timer(stmt="uniform_8bit_quantize(a)", globals={"uniform_8bit_quantize": uniform_8bit_quantize, "a": a}) - time_new = timer_new.timeit(TIME_COUNT) - - print(f"New function time: {time_new.mean:.6f} seconds") - print(f"Old function time: {time_old.mean:.6f} seconds") - - new_result, new_lookup = uniform_8bit_quantize(a) - old_result, old_lookup = uniform_8bit_quantize_old(a) - - new_ten = new_lookup[new_result.long()] - old_ten = old_lookup[old_result.long()] - - new_err = torch.norm(new_ten - a) - old_err = torch.norm(old_ten - a) - new_diff = (new_ten - a).abs() - old_diff = (old_ten - a).abs() - print( - f"New error: {new_err:.6f} Diff mean: {new_diff.mean():.6f} Std: {new_diff.std():.6f} Max: {new_diff.max():.6f}" - ) - print( - f"Old error: {old_err:.6f} Diff mean: {old_diff.mean():.6f} Std: {old_diff.std():.6f} Max: {old_diff.max():.6f}" - ) - - -def test_quantize_per_tensor_uint8(): - a = torch.ones(N) * 10 - scale = 0.01 - print(f"Tensor size: {a.numel():,}") - - timer_new = Timer( - stmt="quantize_per_tensor(a, scale, 128)", - globals={"quantize_per_tensor": quantize_per_tensor_uint8, "a": a, "scale": scale}, - ) - time_new = timer_new.timeit(TIME_COUNT) - print(f"Custom quantize_per_tensor function time: {time_new.mean:.6f} seconds") - - timer_old = Timer( - stmt="torch.quantize_per_tensor(a, scale, 128, torch.quint8).int_repr()", - globals={"torch": torch, "a": a, "scale": scale}, - ) - time_old = timer_old.timeit(TIME_COUNT) - print(f"torch.quantize_per_tensor time: {time_old.mean:.6f} seconds") - - -def test_average_buckets(): - a = torch.randn(N) * 10 - b = torch.randint(0, 255, (N,), dtype=torch.uint8) - - timer_new = Timer(stmt="average_buckets(a, b, 256)", globals={"average_buckets": average_buckets, "a": a, "b": b}) - time_new = timer_new.timeit(TIME_COUNT) - print(f"Custom average_buckets function time: {time_new.mean:.6f} seconds") - - timer_old = Timer( - stmt="average_buckets(a, b, 256)", globals={"average_buckets": average_buckets_old, "a": a, "b": b} - ) - time_old = timer_old.timeit(TIME_COUNT) - print(f"torch.bucketize time: {time_old.mean:.6f} seconds") diff --git a/tests/test_configs.py b/tests/test_configs.py deleted file mode 100644 index eff493a6..00000000 --- a/tests/test_configs.py +++ /dev/null @@ -1,29 +0,0 @@ -""" -Tests all of the config file. usefull to catch mismatch key after a renaming of a arg name -Need to be run from the root folder -""" - -import os -from zeroband.train import Config -import pytest -import tomli - - -def get_all_toml_files(directory): - toml_files = [] - for root, _, files in os.walk(directory): - for file in files: - if file.endswith(".toml"): - toml_files.append(os.path.join(root, file)) - return toml_files - - -config_file_paths = get_all_toml_files("configs") - - -@pytest.mark.parametrize("config_file_path", config_file_paths) -def test_load_config(config_file_path): - with open(f"{config_file_path}", "rb") as f: - content = tomli.load(f) - config = Config(**content) - assert config is not None diff --git a/tests/test_data.py b/tests/test_data.py deleted file mode 100644 index fff9d537..00000000 --- a/tests/test_data.py +++ /dev/null @@ -1,272 +0,0 @@ -import copy -import torch -from zeroband.data import InterleaveDataset, ParquetDataset, SequencePackingDataSet, collate_fn -from torch.utils.data import DataLoader -from zeroband.data import load_all_datasets, DataConfig -from zeroband.utils.logger import get_logger -from collections import Counter -from itertools import chain -import pytest -import logging -import pyarrow as pa -import pyarrow.parquet as pq -from faker import Faker -from typing import List -import string -from torchdata.stateful_dataloader import StatefulDataLoader - - -@pytest.mark.skip(reason="not using hf for now") -@pytest.mark.parametrize( - "ratio, lower, upper", - [ - ("3:2", 1.2821, 1.7549), - ("0.5:1", 0.4247, 0.5886), - ], -) -def test_load_all_datasets_vanilla(ratio: str, lower: float, upper: float): - config = DataConfig( - dataset_name_or_paths="Jackmin108/abc-testing:A,Jackmin108/abc-testing:C", - dataset_ratio=ratio, - streaming=True, - fake=False, - ) - - ds = load_all_datasets(config, "train") - print(ds) - - dl = DataLoader(ds, batch_size=256) - batches = [i["text"] for i, _ in zip(dl, range(10))] - assert len(batches) == 10 - - # Check that the ratio is correct - letter_count = Counter(i[0] for i in chain(*batches)) - print(letter_count, letter_count["A"] / letter_count["C"]) - assert letter_count["A"] / letter_count["C"] < upper - assert letter_count["A"] / letter_count["C"] > lower - - -@pytest.mark.skip(reason="not using hf for now") -@pytest.mark.parametrize( - "ratio, lower, upper, data_rank, data_world_size", - [ - ("3:2", 1.2821, 1.7549, 1, 4), - ("0.5:1", 0.4247, 0.5886, 0, 3), - ], -) -def test_load_all_datasets_data_rank(ratio: str, lower: float, upper: float, data_rank: int, data_world_size: int): - get_logger().setLevel(logging.DEBUG) - config = DataConfig( - dataset_name_or_paths="Jackmin108/abc-testing:A,Jackmin108/abc-testing:C", - dataset_ratio=ratio, - streaming=True, - fake=False, - data_world_size=data_world_size, - data_rank=data_rank, - ) - - ds = load_all_datasets(config, "train") - print(ds) - - dl = DataLoader(ds, batch_size=256) - batches = [i["text"] for i, _ in zip(dl, range(10))] - assert len(batches) == 10 - - # Check that the ratio is correct - letter_count = Counter(i[0] for i in chain(*batches)) - print(letter_count, letter_count["A"] / letter_count["C"]) - assert letter_count["A"] / letter_count["C"] < upper - assert letter_count["A"] / letter_count["C"] > lower - - c_num_set = {int(i[1:]) for i in chain(*batches) if i[0] == "C"} - a_num_set = {int(i[1:]) for i in chain(*batches) if i[0] == "A"} - - # Check that the data is correctly sharded - first_a_shard = set(range(data_rank * (2**12), (data_rank + 1) * (2**12))) - first_10_c_shard = set() - for i in range(data_rank, data_world_size * 10, data_world_size): - first_10_c_shard = first_10_c_shard.union(set(range(i * (2**8), (i + 1) * (2**8)))) - assert all(i in first_a_shard for i in a_num_set) - assert all(i in first_10_c_shard for i in c_num_set) - - -def test_squence_packing(): - class FakeDataset(torch.utils.data.Dataset): - def __init__(self): - self.data = [[6, 1, 2, 3, 4], [6, 3, 3, 4, 1, 7], [3, 2], [1, 2], [1, 4, 5, 3, 4, 1, 7, 8]] - - def __len__(self): - return len(self.data) - - def __getitem__(self, index): - return {"input_ids": self.data[index]} - - MAX_SEQ_LEN = 8 - dataset = SequencePackingDataSet(FakeDataset(), max_seq_length=MAX_SEQ_LEN, eos_token=0) - - input_ids = [] - labels = [] - for data in dataset: - assert data["input_ids"].shape[0] == MAX_SEQ_LEN - assert data["labels"].shape[0] == MAX_SEQ_LEN - assert sum(data["seqlens"]) == MAX_SEQ_LEN - - input_ids.append(data["input_ids"].tolist()) - labels.append(data["labels"].tolist()) - - assert input_ids == [[6, 1, 2, 3, 4, 6, 3, 3], [3, 2, 1, 2, 1, 4, 5, 3]] - assert labels == [[1, 2, 3, 4, 0, 3, 3, 4], [2, 0, 2, 0, 4, 5, 3, 4]] - - -class SimpleTokenizer: - def __init__(self): - # Create vocabulary: a-z (0-25) and unknown token (26) - self.char_to_id = {char: idx for idx, char in enumerate(string.ascii_lowercase)} - self.unknown_token = 26 - - def encode(self, text: str) -> List[int]: - """Convert text to list of token ids""" - return [self.char_to_id.get(char.lower(), self.unknown_token) for char in text] - - -@pytest.fixture -def fake_sentences(): - """Generate 500 fake sentences (100 per file * 5 files)""" - fake = Faker() - return [fake.sentence() for _ in range(10_000)] - - -@pytest.fixture -def parquet_files(tmp_path, fake_sentences): - """Create 10 parquet files with 100 sentences each""" - files = [] - for i in range(10): - # Create data for this file - start_idx = i * 100 - sentences = fake_sentences[start_idx : start_idx + 100] - - # Create arrow table - table = pa.Table.from_arrays([pa.array(sentences)], names=["text"]) - - # Write to parquet file - file_path = tmp_path / f"data_{i}.parquet" - pq.write_table(table, file_path) - files.append(str(file_path)) - - return files - - -@pytest.fixture -def tokenizer(): - """Get a simple character-based tokenizer""" - return SimpleTokenizer() - - -def test_parquet_dataset_ckpt(parquet_files, tokenizer): - # Create first dataset and iterate halfway - dataset1 = ParquetDataset(parquet_files, tokenizer) - halfway_point = 100 - - for _, data in zip(range(halfway_point), dataset1): - pass - # Save state - state_dict = dataset1.state_dict() - - # Create new dataset and load state - dataset2 = ParquetDataset(parquet_files, tokenizer) - dataset2.load_state_dict(state_dict) - - max_to_yield = 200 - # Continue first dataset - - for _, data1, data2 in zip(range(max_to_yield), dataset1, dataset2): - assert data1["input_ids"] == data2["input_ids"] - - -def test_sequence_packing_dataset_ckpt(parquet_files, tokenizer): - dataset1 = SequencePackingDataSet(ParquetDataset(parquet_files, tokenizer), max_seq_length=16, eos_token=0) - - halfway_point = 100 - - for _, data in zip(range(halfway_point), dataset1): - pass - # Save state - state_dict = dataset1.state_dict() - - # Create new dataset and load state - dataset2 = SequencePackingDataSet(ParquetDataset(parquet_files, tokenizer), max_seq_length=16, eos_token=0) - dataset2.load_state_dict(state_dict) - - assert dataset1.state_dict() == dataset2.state_dict() - - max_to_yield = 199 - # Continue first dataset - - for _, data1, data2 in zip(range(max_to_yield), dataset1, dataset2): - assert (data1["input_ids"] == data2["input_ids"]).all() - assert (data1["labels"] == data2["labels"]).all() - assert data1["seqlens"] == data2["seqlens"] - - -def test_interleave_dataset_ckpt(parquet_files, tokenizer): - # Split parquet files into two groups to create two datasets - files1 = parquet_files[:2] # First two files - files2 = parquet_files[2:4] # Next two files - - # Create first dataset and iterate halfway - dataset1 = InterleaveDataset( - [ParquetDataset(files1, tokenizer), ParquetDataset(files2, tokenizer)], probabilities=[0.5, 0.5] - ) - - halfway_point = 100 - - for _, data in zip(range(halfway_point), dataset1): - pass - # Save state - state_dict = dataset1.state_dict() - - # Create new dataset and load state - dataset2 = InterleaveDataset( - [ParquetDataset(files1, tokenizer), ParquetDataset(files2, tokenizer)], probabilities=[0.5, 0.5] - ) - dataset2.load_state_dict(state_dict=copy.deepcopy(state_dict)) - - assert dataset1.state_dict() == dataset2.state_dict() - - max_to_yield = 250 - - for _, data1, data2 in zip(range(max_to_yield), dataset1, dataset2): - assert data1["input_ids"] == data2["input_ids"] - - -@pytest.mark.skip(reason="not working for now") -@pytest.mark.parametrize("num_workers", [0, 2, 16]) -def test_dataloader_parquet_dataset(parquet_files, tokenizer, num_workers): - dataset = SequencePackingDataSet(ParquetDataset(parquet_files, tokenizer), max_seq_length=8, eos_token=0) - - loader = StatefulDataLoader(dataset, batch_size=8, num_workers=num_workers, collate_fn=collate_fn) - - total_samples = 100 - - for _, _batch in zip(range(total_samples), loader): - ... - - # Save state - state_dict = loader.state_dict() - - # Create new loader and load state - dataset2 = SequencePackingDataSet(ParquetDataset(parquet_files, tokenizer), max_seq_length=8, eos_token=0) - - loader2 = StatefulDataLoader(dataset2, batch_size=8, num_workers=num_workers, collate_fn=collate_fn) - - print(state_dict) - - loader2.load_state_dict(state_dict) - - warmup = 10 - - for i, batch1, batch2 in zip(range(total_samples), loader, loader2): - if i > warmup: - assert (batch1["input_ids"] == batch2["input_ids"]).all() - assert (batch1["labels"] == batch2["labels"]).all() - assert (batch1["seqlens"] == batch2["seqlens"]).all() diff --git a/tests/test_dist/conftest.py b/tests/test_dist/conftest.py deleted file mode 100644 index 99361de8..00000000 --- a/tests/test_dist/conftest.py +++ /dev/null @@ -1,85 +0,0 @@ -""" -torch distribted test - -this test are different from the torchrun integration tests - -They manually do the job of torchrun to start the distributed process making it easy to write unit tests -""" - -import torch -import pytest -from torch.distributed import destroy_process_group, init_process_group - - -import os -from unittest import mock -import socket -from contextlib import contextmanager -import gc - - -@pytest.fixture(autouse=True) -def memory_cleanup(): - # credits to : https://github.com/pytorch/pytorch/issues/82218#issuecomment-1675254117 - try: - gc.collect() - torch.cuda.empty_cache() - yield - finally: - gc.collect() - torch.cuda.empty_cache() - - -def get_random_available_port(): - # https://stackoverflow.com/questions/1365265/on-localhost-how-do-i-pick-a-free-port-number - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.bind(("", 0)) - return s.getsockname()[1] - - -@pytest.fixture() -def random_available_port(): - return get_random_available_port() - - -@pytest.fixture() -def dist_environment() -> callable: - @contextmanager - def dist_environment( - random_available_port, backend=None, rank=0, local_rank=0, world_size=1, local_world_size=1, global_unique_id="" - ): - with mock.patch.dict( - os.environ, - { - "GLOBAL_UNIQUE_ID": global_unique_id, - "RANK": str(rank), - "WORLD_SIZE": str(world_size), - "LOCAL_RANK": str(local_rank), - "LOCAL_WORLD_SIZE": str(local_world_size), - "MASTER_ADDR": "localhost", - "MASTER_PORT": str(random_available_port), - "ZERO_BAND_LOG_LEVEL": "DEBUG", - }, - ): - try: - init_process_group(backend=backend) - torch.cuda.set_device(local_rank) - yield - finally: - destroy_process_group() - - return dist_environment - - -@pytest.fixture() -def mock_env() -> callable: - @contextmanager - def env(**kwargs): - kwargs = {k.upper(): str(v) for k, v in kwargs.items()} - with mock.patch.dict( - os.environ, - kwargs, - ): - yield - - return env diff --git a/tests/test_dist/test_comms.py b/tests/test_dist/test_comms.py deleted file mode 100644 index 28732949..00000000 --- a/tests/test_dist/test_comms.py +++ /dev/null @@ -1,237 +0,0 @@ -import time -import torch -import torch.distributed as dist -import pytest -from zeroband.comms import ElasticDeviceMesh -import multiprocessing as mp - -pytest.skip("Skipping test file", allow_module_level=True) -# skipping this test for now as they slow down the ci and we are going to remove them anyway - - -@pytest.mark.parametrize("world_size", [2, 8]) -def test_elastic_device_mesh_no_global(world_size: int, random_available_port: int, mock_env): - def foo(**kwargs): - with mock_env(**kwargs): - edm = ElasticDeviceMesh(enable=False) - - rank = int(kwargs["RANK"]) - a = torch.arange(3) * (rank + 1) - dist.all_reduce(a, op=dist.ReduceOp.SUM, group=edm.local_pg) - sum_ints = world_size * (world_size + 1) // 2 - assert torch.allclose(a, torch.tensor([0, sum_ints, 2 * sum_ints])) - - dist.all_reduce(a, op=dist.ReduceOp.SUM, group=edm.global_pg) - assert torch.allclose(a, torch.tensor([0, sum_ints, 2 * sum_ints])) - - del edm - - processes = [] - for rank in range(world_size): - processes.append( - mp.Process( - target=foo, - kwargs={ - "MASTER_ADDR": "localhost", - "MASTER_PORT": str(random_available_port), - "RANK": str(rank), - "WORLD_SIZE": str(world_size), - "LOCAL_RANK": str(rank), - "LOCAL_WORLD_SIZE": str(world_size), - "ZERO_BAND_LOG_LEVEL": "DEBUG", - }, - ) - ) - for p in processes: - p.start() - for p in processes: - p.join() - if p.exitcode != 0: - pytest.fail(f"Process {p.pid} failed with exit code {p.exitcode}") - - -@pytest.mark.parametrize("world_size", [2, 8]) -@pytest.mark.parametrize("global_world_size", [2, 8]) -def test_elastic_device_mesh(world_size: int, global_world_size: int, mock_env): - def foo(**kwargs): - with mock_env(**kwargs): - edm = ElasticDeviceMesh() - - rank = int(kwargs["RANK"]) - a = torch.arange(3) * (rank + 1) - dist.all_reduce(a, op=dist.ReduceOp.SUM, group=edm.local_pg) - sum_ints = world_size * (world_size + 1) // 2 - assert torch.allclose(a, torch.tensor([0, sum_ints, 2 * sum_ints])) - - global_rank = int(kwargs["GLOBAL_RANK"]) - a = torch.arange(3) * (global_rank + 1) + rank - dist.all_reduce(a, op=dist.ReduceOp.SUM, group=edm.global_pg) - sum_ints = global_world_size * (global_world_size + 1) // 2 - assert torch.allclose(a, torch.tensor([0, sum_ints, 2 * sum_ints]) + rank * global_world_size) - - del edm - - global_ports = [i for i in range(21970, 21970 + world_size)] - master_ports = [i for i in range(31000, 31000 + global_world_size)] - processes = [] - for global_rank in range(global_world_size): - for rank in range(world_size): - processes.append( - mp.Process( - target=foo, - kwargs={ - "MASTER_ADDR": "localhost", - "MASTER_PORT": str(master_ports[global_rank]), - "RANK": str(rank), - "WORLD_SIZE": str(world_size), - "LOCAL_RANK": str(rank), - "LOCAL_WORLD_SIZE": str(world_size), - "GLOBAL_UNIQUE_ID": str(global_rank), - "GLOBAL_ADDR": "localhost", - "GLOBAL_PORT": str(global_ports[0]), - "GLOBAL_RANK": str(global_rank), - "GLOBAL_WORLD_SIZE": str(global_world_size), - "ZERO_BAND_LOG_LEVEL": "DEBUG", - }, - ) - ) - for p in processes: - p.start() - for p in processes: - p.join() - if p.exitcode != 0: - pytest.fail(f"Process {p.pid} failed with exit code {p.exitcode}") - - -@pytest.mark.parametrize("world_size", [1, 2]) -@pytest.mark.parametrize("global_world_size", [2, 4]) -def test_elastic_device_mesh_on_off_ramp(world_size: int, global_world_size: int, mock_env): - ready_event = mp.Event() - - def foo(**kwargs): - with mock_env(**kwargs): - test_value = int(kwargs["TEST_VALUE"]) - - edm = ElasticDeviceMesh() - edm.maybe_reinit_global_pg() - assert edm.mesh_count == 0 - assert edm.global_pg.size() == global_world_size - - ready_event.wait() # Wait for bar to signal readiness - time.sleep(0.5) # Give time for bar to queue - - edm.maybe_reinit_global_pg() - assert edm.mesh_count == 0 - assert edm.global_pg.size() == global_world_size - - time.sleep(1) # TODO: I actually don't know why this is necessary - - edm.maybe_reinit_global_pg(admit_joiners=True) - assert edm.mesh_count == 1 - assert edm.global_pg.size() == global_world_size + 1 - - a = torch.arange(3) * (test_value + 1) - sum_ints = global_world_size * (global_world_size + 1) // 2 + 100 - dist.all_reduce(a, op=dist.ReduceOp.SUM, group=edm.global_pg) - assert torch.allclose(a, torch.tensor([0, sum_ints, 2 * sum_ints])) - - if test_value == 1: - return - time.sleep(2) - edm.maybe_reinit_global_pg() - assert edm.mesh_count == 2 - assert edm.global_pg.size() == global_world_size - - a = torch.arange(3) * (test_value + 1) - sum_ints = global_world_size * (global_world_size + 1) // 2 + 100 - 2 - dist.all_reduce(a, op=dist.ReduceOp.SUM, group=edm.global_pg) - assert torch.allclose(a, torch.tensor([0, sum_ints, 2 * sum_ints])) - - dist.barrier(edm.global_pg) - - del edm - - def bar(**kwargs): - with mock_env(**kwargs): - test_value = int(kwargs["TEST_VALUE"]) - time.sleep(1) - - ready_event.set() # Signal that we are about to queue - - edm = ElasticDeviceMesh() - assert edm.mesh_count == 1 - assert edm.global_pg.size() == global_world_size + 1 - - a = torch.arange(3) * test_value - sum_ints = global_world_size * (global_world_size + 1) // 2 + 100 - dist.all_reduce(a, op=dist.ReduceOp.SUM, group=edm.global_pg) - assert torch.allclose(a, torch.tensor([0, sum_ints, 2 * sum_ints])) - - edm.maybe_reinit_global_pg() - assert edm.mesh_count == 2 - assert edm.global_pg.size() == global_world_size - - a = torch.arange(3) * test_value - sum_ints = global_world_size * (global_world_size + 1) // 2 + 100 - 2 - dist.all_reduce(a, op=dist.ReduceOp.SUM, group=edm.global_pg) - assert torch.allclose(a, torch.tensor([0, sum_ints, 2 * sum_ints])) - - dist.barrier(edm.global_pg) - - del edm - - global_ports = [i for i in range(21970, 21970 + world_size)] - master_ports = [i for i in range(31000, 31000 + global_world_size + 1)] - processes = [] - for global_rank in range(global_world_size): - for rank in range(world_size): - processes.append( - mp.Process( - target=foo, - kwargs={ - "MASTER_ADDR": "localhost", - "MASTER_PORT": str(master_ports[global_rank]), - "RANK": str(rank), - "WORLD_SIZE": str(world_size), - "LOCAL_RANK": str(rank), - "LOCAL_WORLD_SIZE": str(world_size), - "GLOBAL_UNIQUE_ID": str(global_rank), - "GLOBAL_ADDR": "localhost", - "GLOBAL_PORT": str(global_ports[0]), - "GLOBAL_RANK": str(global_rank), - "GLOBAL_WORLD_SIZE": str(global_world_size), - "ZERO_BAND_LOG_LEVEL": "DEBUG", - "ZERO_BAND_LOG_ALL_RANK": "true", - "TEST_VALUE": str(global_rank), - }, - ) - ) - - for rank in range(world_size): - processes.append( - mp.Process( - target=bar, - kwargs={ - "MASTER_ADDR": "localhost", - "MASTER_PORT": str(master_ports[global_world_size]), - "RANK": str(rank), - "WORLD_SIZE": str(world_size), - "LOCAL_RANK": str(rank), - "LOCAL_WORLD_SIZE": str(world_size), - "GLOBAL_UNIQUE_ID": "A", - "GLOBAL_ADDR": "localhost", - "GLOBAL_PORT": str(global_ports[0]), - "GLOBAL_RANK": "100", - "GLOBAL_WORLD_SIZE": str(global_world_size), - "ZERO_BAND_LOG_LEVEL": "DEBUG", - "TEST_VALUE": "100", - }, - ) - ) - - for p in processes: - p.start() - for p in processes: - p.join() - if p.exitcode != 0: - pytest.fail(f"Process {p.pid} failed with exit code {p.exitcode}") diff --git a/tests/test_dist/test_diloco.py b/tests/test_dist/test_diloco.py deleted file mode 100644 index ba71f107..00000000 --- a/tests/test_dist/test_diloco.py +++ /dev/null @@ -1,64 +0,0 @@ -"""test Diloco.""" - -import multiprocessing -import pytest - -import torch -import torch.distributed as dist -from torch.distributed.fsdp import ShardingStrategy - -from zeroband.diloco import Diloco, DilocoConfig - - -@pytest.mark.skip("test failed since introduce of custom all reduce") -@pytest.mark.parametrize("world_size", [2]) # [1, 2]) -def test_diloco_all_reduce(world_size, random_available_port, dist_environment): - """ - In this test we manually create a inner model and a outer model where we control the weight: - inner has weight: (rank + 1) / 2 - outer has weight: (rank + 1) - - since we know the world_size we can predict the results of the all reduce of the pseudo gradient and therefore test - if it is done correclty. - """ - - class FakeElasticDeviceMesh: - def __init__(self): - self.global_pg = dist.new_group(backend="gloo") - - def maybe_reinit_global_pg(self, *args, **kwargs) -> None: ... - - def all_reduce(rank: int, world_size: int): - with dist_environment(random_available_port, rank=rank, world_size=world_size, global_unique_id=str(rank)): - diloco_config = DilocoConfig(inner_steps=10) - - model = torch.nn.Linear(10, 10) - - # init param to rank + 1 - for param in model.parameters(): - param.data = (rank + 1) * torch.ones_like(param.data).to("cuda") - - diloco = Diloco(diloco_config, model, ShardingStrategy.FULL_SHARD, FakeElasticDeviceMesh()) - - # simulate inner model updates - for param in model.parameters(): - param.data = (rank + 1) / 2 * torch.ones_like(param.data).to("cuda") - - diloco.sync_pseudo_gradient(model) - - for param in diloco.param_list_cpu: - print(f"param.grad.mean() {param.grad.mean()}") - target = ( - torch.ones_like(param.grad) - * sum([(rank + 1) - (rank + 1) / 2 for rank in range(world_size)]) - / world_size - ) - assert param.grad.mean() == target.mean() - - processes = [multiprocessing.Process(target=all_reduce, args=(rank, world_size)) for rank in range(world_size)] - for p in processes: - p.start() - for p in processes: - p.join() - if p.exitcode != 0: - pytest.fail(f"Process {p.pid} failed with exit code {p.exitcode}") diff --git a/tests/test_dist/test_send_state_dict.py b/tests/test_dist/test_send_state_dict.py deleted file mode 100644 index e4e1f22f..00000000 --- a/tests/test_dist/test_send_state_dict.py +++ /dev/null @@ -1,110 +0,0 @@ -import os -import pytest -import torch -from zeroband.comms import ElasticDeviceMesh -from zeroband.utils.state_dict_send_recv import ( - _get_sendable_state_dict, - _load_sendable_state_dict, - recv_state_dict, - send_state_dict, -) -import multiprocessing as mp - - -def test_load_state_dict(): - state_dict_to_send = { - "step": 0, - "world": "karl is having his best life", - "optim_sates": torch.ones(10), - "nested_data": {"foo": "bar", "tensor": torch.ones(10)}, - } - - state_dict_copy = { - "step": 0, - "world": "karl is having his best life", - "optim_sates": torch.ones(10), - "nested_data": {"foo": "bar", "tensor": torch.ones(10)}, - } - - non_tensored_state_send, tensors_send = _get_sendable_state_dict(state_dict_to_send) - - assert isinstance(non_tensored_state_send["optim_sates"], str) - assert non_tensored_state_send["optim_sates"].startswith("zeroband_tensor") - - print(len(tensors_send)) - print(non_tensored_state_send) - _load_sendable_state_dict(tensors_send, non_tensored_state_send) - - assert (state_dict_to_send["optim_sates"] == state_dict_copy["optim_sates"]).all() - assert id(state_dict_to_send["optim_sates"]) != id(state_dict_copy["optim_sates"]) - - assert (state_dict_to_send["nested_data"]["tensor"] == state_dict_copy["nested_data"]["tensor"]).all() - assert id(state_dict_to_send["nested_data"]["tensor"]) != id(state_dict_copy["nested_data"]["tensor"]) - - assert state_dict_to_send["step"] == state_dict_copy["step"] - assert state_dict_to_send["world"] == state_dict_copy["world"] - assert state_dict_to_send["nested_data"]["foo"] == state_dict_copy["nested_data"]["foo"] - - -@pytest.mark.skip(reason="hang") -@pytest.mark.parametrize("world_size", [2]) -def test_send_recv_state_dict(world_size: int, random_available_port: int, mock_env): - def foo(**kwargs): - with mock_env(**kwargs): - edm = ElasticDeviceMesh() - - state_dict_to_send = { - "step": 0, - "world": "karl is having his best life", - "optim_sates": torch.ones(10), - "nested_data": {"foo": "bar", "tensor": torch.ones(10)}, - } - - state_dict_to_recv = { - "step": 10, - "world": "karl is in holiday", - "optim_sates": torch.zeros(10), - "nested_data": {"foo": "barman", "tensor": torch.zeros(10)}, - } - - rank = int(os.environ.get("RANK")) - - if rank == 0: - send_state_dict(state_dict_to_send, 1, world_size) - else: - state_dict = recv_state_dict(pg=edm.global_pg, rank=0, world_size=world_size) - - assert (state_dict["optim_sates"] == state_dict_to_recv["optim_sates"]).all() - assert id(state_dict["optim_sates"]) != id(state_dict_to_recv["optim_sates"]) - - assert (state_dict["nested_data"]["tensor"] == state_dict_to_recv["nested_data"]["tensor"]).all() - assert id(state_dict["nested_data"]["tensor"]) != id(state_dict_to_recv["nested_data"]["tensor"]) - - assert state_dict["step"] == state_dict_to_recv["step"] - assert state_dict["world"] == state_dict_to_recv["world"] - assert state_dict["nested_data"]["foo"] == state_dict_to_recv["nested_data"]["foo"] - - del edm - - processes = [] - for rank in range(world_size): - processes.append( - mp.Process( - target=foo, - kwargs={ - "MASTER_ADDR": "localhost", - "MASTER_PORT": str(random_available_port), - "RANK": str(rank), - "WORLD_SIZE": str(world_size), - "LOCAL_RANK": str(rank), - "LOCAL_WORLD_SIZE": str(world_size), - "ZERO_BAND_LOG_LEVEL": "DEBUG", - }, - ) - ) - for p in processes: - p.start() - for p in processes: - p.join() - if p.exitcode != 0: - pytest.fail(f"Process {p.pid} failed with exit code {p.exitcode}") diff --git a/tests/test_model.py b/tests/test_model.py deleted file mode 100644 index 7853cb22..00000000 --- a/tests/test_model.py +++ /dev/null @@ -1,227 +0,0 @@ -import random -import pytest -import torch -from zeroband.models.llama import Transformer, llama2_configs -from zeroband.models.llama.model import Attention, ModelArgs, create_block_mask_from_seqlens - - -VOCAB_SIZE = 1024 - -ERROR_ATOL = { - torch.float: 3e-4, - torch.half: 4e-3, - torch.bfloat16: 2e-2, -} -ERROR_RTOL = { - torch.float: 2e-5, - torch.half: 4e-4, - torch.bfloat16: 5e-3, -} - - -@pytest.fixture -def llama_config() -> ModelArgs: - config = llama2_configs["debugmodel"] - config.vocab_size = VOCAB_SIZE - return config - - -def test_llama(llama_config: ModelArgs): - seq_len = 512 - bs = 8 - model = Transformer(llama_config).to("cuda") - input_ = torch.randint(0, llama_config.vocab_size, (bs, seq_len)).to("cuda") - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output = model(input_) - - assert output.shape == (bs, seq_len, llama_config.vocab_size) - - -def get_freqs_cis(llama_config: ModelArgs): - model = Transformer(llama_config).to("cuda") - return model.freqs_cis - - -def test_attn(llama_config: ModelArgs): - seq_len = 512 - bs = 8 - - freqs_cis = get_freqs_cis(llama_config) - input_ = torch.rand(bs, seq_len, llama_config.dim).to("cuda") - seqlens = [torch.Tensor([seq_len]).int().to("cuda") for _ in range(bs)] - block_mask = create_block_mask_from_seqlens(seqlens) - - attn = Attention(llama_config).to("cuda") - - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output_sdpa = attn(input_, freqs_cis) - - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output_flex = attn(input_, freqs_cis, block_mask=block_mask) - - rtol = ERROR_RTOL[torch.bfloat16] - atol = ERROR_ATOL[torch.bfloat16] - assert output_sdpa.shape == output_flex.shape - torch.testing.assert_close(output_sdpa, output_flex, rtol=rtol, atol=atol) - - -def test_packing_simple(llama_config: ModelArgs): - seq_len = 512 - bs = 8 - - freqs_cis = get_freqs_cis(llama_config) - input_ = torch.rand(bs, seq_len, llama_config.dim).to("cuda") - seqlens = [torch.Tensor([seq_len // 4] * 4).int().to("cuda") for _ in range(bs)] - block_mask = create_block_mask_from_seqlens(seqlens) - - attn = Attention(llama_config).to("cuda") - - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output = attn(input_, freqs_cis, block_mask=block_mask) - - assert output.shape == (bs, seq_len, llama_config.dim) - - -def test_sequence_packing_two_time_same_sequence(llama_config: ModelArgs): - """ - In this test we take a sequence and pack it with itself along the seqlen dimension. - We then pass the packed sequence to the attention layer and check that the output for each sequence is the same. - """ - - model = Attention(llama_config).to("cuda") - - emb = torch.nn.Embedding(10, llama_config.dim).to("cuda") - - seq = [2, 1, 4, 8] - input_stuff_raw = torch.Tensor([seq + seq]).long().to("cuda") - seqlens = [torch.Tensor([len(seq), len(seq)]).int().to("cuda")] - block_mask = create_block_mask_from_seqlens(seqlens) - - input_stuff = emb(input_stuff_raw) - - freqs_cis = get_freqs_cis(llama_config) - - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output = model(input_stuff, freqs_cis, block_mask=block_mask) - - output_left = output[:, :4, :] - output_right = output[:, 4:, :] - - ### TESTING - assert output_left.shape == output_right.shape - - rtol = ERROR_RTOL[torch.bfloat16] - atol = ERROR_ATOL[torch.bfloat16] - torch.testing.assert_close(output_left, output_right, atol=atol, rtol=rtol) - - -def test_sequence_packing_vs_normal(llama_config: ModelArgs): - """ - take two sequences and compare the outout of attention on individual sequences vs the output of attention on the packed sequence - """ - - model = Attention(llama_config).to("cuda") - emb = torch.nn.Embedding(10, llama_config.dim).to("cuda") - - freqs_cis = get_freqs_cis(llama_config) - - seq_1 = [2, 1, 4, 8] - seq_2 = [3, 7, 5, 6] - - input_packed_raw = torch.Tensor([seq_1 + seq_2]).long().to("cuda") - seqlens = [torch.Tensor([len(seq_1), len(seq_2)]).int().to("cuda")] - block_mask = create_block_mask_from_seqlens(seqlens) - - input_packed = emb(input_packed_raw) - - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output = model(input_packed, freqs_cis, block_mask=block_mask) - - output_packed_1 = output[:, :4, :] - output_packed_2 = output[:, 4:, :] - - input_raw_1 = torch.Tensor([seq_1]).long().to("cuda") - input_raw_2 = torch.Tensor([seq_2]).long().to("cuda") - - emb_1 = emb(input_raw_1) - emb_2 = emb(input_raw_2) - - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output_1 = model(emb_1, freqs_cis) - output_2 = model(emb_2, freqs_cis) - - rtol = ERROR_RTOL[torch.bfloat16] - atol = ERROR_ATOL[torch.bfloat16] - - ### TESTING - assert output_1.shape == output_packed_1.shape - assert output_2.shape == output_packed_2.shape - - torch.testing.assert_close(output_1, output_packed_1, atol=atol, rtol=rtol) - torch.testing.assert_close(output_2, output_packed_2, atol=atol, rtol=rtol) - - -def test_sequence_packing_vs_normal_random(llama_config: ModelArgs): - """ - take two sequences and compare the outout of attention on individual sequences vs the output of attention on the packed sequence - """ - - model = Attention(llama_config).to("cuda") - - freqs_cis = get_freqs_cis(llama_config) - - MAX_SEQ_LEN = 256 - - for _ in range(10): - seq_len_cutoff = random.randint(1, MAX_SEQ_LEN) - - seq1 = seq_len_cutoff - seq2 = MAX_SEQ_LEN - seq_len_cutoff - input_1 = torch.rand(1, seq1, llama_config.dim).to("cuda") - input_2 = torch.rand(1, seq2, llama_config.dim).to("cuda") - - seqlens = [torch.Tensor([seq1, seq2]).int().to("cuda")] - block_mask = create_block_mask_from_seqlens(seqlens) - - packed_input = torch.cat([input_1, input_2], dim=1) - - # packed output - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output = model(packed_input, freqs_cis, block_mask=block_mask) - - output_packed_1 = output[:, :seq_len_cutoff, :] - output_packed_2 = output[:, seq_len_cutoff:, :] - - # normal output - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output_1 = model(input_1, freqs_cis) - output_2 = model(input_2, freqs_cis) - - rtol = ERROR_RTOL[torch.bfloat16] - atol = ERROR_ATOL[torch.bfloat16] - - ### TESTING - assert output_1.shape == output_packed_1.shape - assert output_2.shape == output_packed_2.shape - - torch.testing.assert_close(output_1, output_packed_1, atol=atol, rtol=rtol) - torch.testing.assert_close(output_2, output_packed_2, atol=atol, rtol=rtol) - - -def test_end_to_end_packing(llama_config: ModelArgs): - model = Transformer(llama_config).to("cuda") - - BS = 8 - SEQ_LEN = 128 - - input_ = torch.randint(1, llama_config.vocab_size, (BS, SEQ_LEN)).to("cuda") - - seqlens = [torch.Tensor([SEQ_LEN // 4, SEQ_LEN // 4, SEQ_LEN // 2]).int().to("cuda") for _ in range(BS)] - block_mask = create_block_mask_from_seqlens(seqlens) - with torch.autocast(device_type="cuda", dtype=torch.bfloat16): - output = model(input_, block_mask=block_mask) - - assert output.shape == (BS, SEQ_LEN, llama_config.vocab_size) - - loss = output.mean() - loss.backward() # test that the backward for fa2 diff --git a/tests/test_torchrun/test_train.py b/tests/test_torchrun/test_train.py deleted file mode 100644 index 7c45b07c..00000000 --- a/tests/test_torchrun/test_train.py +++ /dev/null @@ -1,269 +0,0 @@ -import copy -import os -from pathlib import Path -import pickle -import subprocess -import pytest -import socket - -from zeroband.diloco import Compression - -import torch - -num_gpu = torch.cuda.device_count() - - -def get_random_available_port_list(num_port): - # https://stackoverflow.com/questions/1365265/on-localhost-how-do-i-pick-a-free-port-number - ports = [] - - while len(ports) < num_port: - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.bind(("", 0)) - new_port = s.getsockname()[1] - - if new_port not in ports: - ports.append(new_port) - - return ports - - -def get_random_available_port(num_port): - return get_random_available_port_list(num_port)[0] - - -def gpus_to_use(num_nodes, num_gpu, rank): - return ",".join(map(str, range(rank * num_gpu, (rank + 1) * num_gpu))) - - -def _test_multi_gpu(num_gpus, config, extra_args=[], diloco=False): - num_nodes, num_gpu = num_gpus[0], num_gpus[1] - - processes = [] - ports = get_random_available_port_list(num_nodes) - new_port = get_random_available_port(1) - for i in range(num_nodes): - cmd = [ - "torchrun", - f"--nproc_per_node={num_gpu}", - "--rdzv-endpoint", - f"localhost:{ports[i]}", - "src/zeroband/train.py", - f"@configs/{config}", - *extra_args, - ] - - env = copy.deepcopy(os.environ) - - if diloco: - new_env = { - "GLOBAL_RANK": str(i), - "GLOBAL_UNIQUE_ID": str(i), - "GLOBAL_ADDR": "localhost", - "GLOBAL_WORLD_SIZE": str(num_nodes), - "GLOBAL_PORT": str(new_port), - "GLOO_SOCKET_IFNAME": "lo", - } - env.update(new_env) - - env["CUDA_VISIBLE_DEVICES"] = gpus_to_use(num_nodes, num_gpu, i) - env["ZERO_BAND_LOG_LEVEL"] = "DEBUG" - - process1 = subprocess.Popen(cmd, env=env) - processes.append(process1) - - for process in processes: - result = process.wait() - if result != 0: - pytest.fail(f"Process {result} failed {result}") - - -@pytest.mark.parametrize("num_gpus", [[1, 1], [2, 1], [1, 2]]) -def test_multi_gpu(num_gpus): - _test_multi_gpu(num_gpus, "debug/normal.toml") - - -@pytest.mark.parametrize("num_gpus", [[2, 1], [2, 2]] if num_gpu >= 4 else [[2, 1]]) -def test_multi_gpu_diloco(num_gpus): - _test_multi_gpu(num_gpus, "debug/diloco.toml", diloco=True) - - -def test_act_ckpt(): - num_gpus = [1, 2] - _test_multi_gpu(num_gpus, "debug/normal.toml", extra_args=["--train.ac_ckpt"]) - - -def test_act_ckpt_num(): - num_gpus = [1, 2] - _test_multi_gpu(num_gpus, "debug/normal.toml", extra_args=["--train.ac_ckpt", "2"]) - - -@pytest.mark.parametrize("backend", [Compression.NO, Compression.UINT8]) -def test_all_reduce_diloco(backend: Compression): - num_gpus = [2, 1] - _test_multi_gpu(num_gpus, "debug/diloco.toml", extra_args=["--diloco.compression", backend.value], diloco=True) - - -def test_z_loss(): - num_gpus = [1, 1] - _test_multi_gpu(num_gpus, "debug/normal.toml", extra_args=["--optim.z_loss"]) - - -@pytest.mark.parametrize("packing", [True, False]) -def test_packing(packing: bool): - num_gpus = [2, 1] - packing_arg = "--train.sequence_packing" if packing else "--no-train.sequence_packing" - _test_multi_gpu(num_gpus, "debug/normal.toml", extra_args=[packing_arg]) - - -@pytest.mark.parametrize("diloco", [False, True]) -def test_soap(diloco: bool): - num_gpus = [1, 2] if diloco else [2, 1] - _test_multi_gpu( - num_gpus, - "debug/diloco.toml" if diloco else "debug/normal.toml", - extra_args=["--optim.optim.precondition_frequency", "1"], - diloco=diloco, - ) - - -@pytest.mark.parametrize("soap", [False, True]) -def test_ckpt(tmp_path: Path, soap: bool): - num_gpus = [1, 2] - v1_file = tmp_path / "v1.log" - v2_file = tmp_path / "v2.log" - # v3_file = tmp_path / "v3.log" - - v1_ckpt = tmp_path / "v1_ckpt" - v2_ckpt = tmp_path / "v2_ckpt" - # v3_ckpt = tmp_path / "v3_ckpt" - - os.mkdir(v1_ckpt) - os.mkdir(v2_ckpt) - # os.mkdir(v3_ckpt) - - _test_multi_gpu( - num_gpus, - "debug/diloco.toml", - extra_args=[ - "--project", - str(v1_file), - "--ckpt.path", - str(v1_ckpt), - "--ckpt.interval", - "5", - "--optim.total_steps", - "20", - "--train.log_model_hash", - "--no-train.sequence_packing", - "--train.attn_fn", - "math", - ] - + (["--optim.optim.precondition_frequency", "1"] if soap else []), - diloco=True, - ) - _test_multi_gpu( - num_gpus, - "debug/diloco.toml", - extra_args=[ - "--project", - str(v2_file), - "--ckpt.path", - str(v2_ckpt), - "--ckpt.interval", - "5", - "--ckpt.resume", - str(v1_ckpt / "step_5"), - "--optim.total_steps", - "20", - "--train.log_model_hash", - "--no-train.sequence_packing", - "--train.attn_fn", - "math", - ] - + (["--optim.optim.precondition_frequency", "1"] if soap else []), - diloco=True, - ) - # _test_multi_gpu( - # num_gpus, - # "debug/diloco.toml", - # extra_args=[ - # "--project", - # str(v3_file), - # "--ckpt.path", - # str(v3_ckpt), - # "--ckpt.interval", - # "5", - # "--ckpt.resume", - # str(v2_ckpt / "step_10"), - # "--optim.total_steps", - # "20", - # "--train.log_model_hash", - # "--no-train.sequence_packing", - # "--train.attn_fn", - # "math", - # ], - # diloco=True, - # ) - - key_to_round = ["Perplexity", "Loss"] - digit_to_round = [0, 3] - - def read_logs(path: Path): - with path.open("rb") as f: - data = pickle.load(f) - - filtered_data = {} - for entry in data: - step = entry.pop("step") - - # Round perplexity and loss - for key, digit in zip(key_to_round, digit_to_round): - if key in entry: - entry[key] = round(entry[key], digit) - - if step in filtered_data: - filtered_data[step].update(entry) - else: - filtered_data[step] = entry - - return filtered_data - - v1_data = read_logs(v1_file) - v2_data = read_logs(v2_file) - # v3_data = read_logs(v3_file) - - ## check that loading from v1 to v2 worked - - # first check that the hash of saving is the same as the hash of loading - assert v1_data[5]["inner_model_hash_save"] == v2_data[5]["inner_model_hash_resume"] - assert v1_data[5]["inner_optimizer_hash_save"] == v2_data[5]["inner_optimizer_hash_resume"] - assert v1_data[5]["outer_optimizer_hash_save"] == v2_data[5]["outer_optimizer_hash_resume"] - assert v1_data[5]["outer_model_hash_save"] == v2_data[5]["outer_model_hash_resume"] - - # then we check that the loss and lr value are the same after loading the ckpt - for step, data_v2 in v2_data.items(): - if step == 5: - continue # not testing 5 as ts the one were we restarted from - - data_v1 = v1_data[step] - assert abs(data_v1["Loss"] - data_v2["Loss"]) < .1 - assert data_v1["inner_lr"] == data_v2["inner_lr"] - assert data_v1["total_tokens"] == data_v2["total_tokens"] - - # ## check that the second loading is working - # ## why ? We had bugs where ckpt was working but not when the training was resuming - - # assert v2_data[10]["inner_model_hash_save"] == v3_data[10]["inner_model_hash_resume"] - # assert v2_data[10]["inner_optimizer_hash_save"] == v3_data[10]["inner_optimizer_hash_resume"] - # assert v2_data[10]["outer_optimizer_hash_save"] == v3_data[10]["outer_optimizer_hash_resume"] - # assert v2_data[10]["outer_model_hash_save"] == v3_data[10]["outer_model_hash_resume"] - - # for step, data_v3 in v3_data.items(): - # if step == 10: - # continue # not testing 10 as ts the one were we restarted from - - # data_v2 = v2_data[step] - # assert data_v2["Loss"] == data_v3["Loss"] - # assert data_v2["inner_lr"] == data_v3["inner_lr"] - # assert data_v2["total_tokens"] == data_v3["total_tokens"] diff --git a/third_party/gloo b/third_party/gloo deleted file mode 160000 index 5354032e..00000000 --- a/third_party/gloo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5354032ea08eadd7fc4456477f7f7c6308818509 From 16a1bb34a2d6c93d2c8e35a2e0293001047b1f7f Mon Sep 17 00:00:00 2001 From: Sami Jaghouar Date: Wed, 12 Feb 2025 20:50:37 -0800 Subject: [PATCH 02/13] update dependencies Signed-off-by: Sami Jaghouar --- install.sh | 4 +- pyproject.toml | 17 +- uv.lock | 875 +------------------------------------------------ 3 files changed, 6 insertions(+), 890 deletions(-) diff --git a/install.sh b/install.sh index e96c9309..8d6ad358 100755 --- a/install.sh +++ b/install.sh @@ -47,7 +47,7 @@ main() { source .venv/bin/activate log_info "Installing dependencies..." - uv sync --extra all + uv sync log_info "Updating git submodules..." git submodule update --init --recursive @@ -60,4 +60,4 @@ main() { log_info "Installation completed! You can double check that everything is install correctly by running 'GLOO_SOCKET_IFNAME=lo GLOBAL_ADDR=localhost GLOBAL_RANK=0 GLOBAL_UNIQUE_ID=0 GLOBAL_WORLD_SIZE=1 GLOBAL_PORT=8989 uv run torchrun --nproc_per_node=2 src/zeroband/train.py @configs/debug/diloco.toml'" } -main \ No newline at end of file +main diff --git a/pyproject.toml b/pyproject.toml index d1917715..7c9d0bb9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,25 +12,10 @@ dependencies = [ "datasets>=3.0.0", "pydantic_config @ git+https://github.com/samsja/pydantic_config.git@b7becc3", "torchdata>=0.8.0", - "fsspec[gcs]>=2024.3.1", "ninja", "zstandard", "pyarrow", - "toposolve>=0.1.17", - "psutil", - "torch-shampoo @ git+https://github.com/facebookresearch/optimizers.git@main", - "liger-kernel-nightly>=0.5.2.dev20250122195349", -] - -[project.optional-dependencies] - - -all = [ - "wandb", - "asyncio>=3.4.3", - "aiohttp>=3.10.5", - "requests>=2.32.3", - "lm-eval" + "wandb" ] diff --git a/uv.lock b/uv.lock index e5d6fdcf..264ede72 100644 --- a/uv.lock +++ b/uv.lock @@ -11,33 +11,6 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'linux'", ] -[[package]] -name = "absl-py" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7a/8f/fc001b92ecc467cc32ab38398bd0bfb45df46e7523bf33c2ad22a505f06e/absl-py-2.1.0.tar.gz", hash = "sha256:7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff", size = 118055 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl", hash = "sha256:526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308", size = 133706 }, -] - -[[package]] -name = "accelerate" -version = "1.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "huggingface-hub" }, - { name = "numpy" }, - { name = "packaging" }, - { name = "psutil" }, - { name = "pyyaml" }, - { name = "safetensors" }, - { name = "torch" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/85/15/0fab0260ab4069e5224e637d2e400538bb27b0dfc36f17daf68db9770d78/accelerate-1.3.0.tar.gz", hash = "sha256:518631c0adb80bd3d42fb29e7e2dc2256bcd7c786b0ba9119bbaa08611b36d9c", size = 342758 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/73/de/64508cb91af013aaba214752309c0967568a4219d50a4ea30e822af3c976/accelerate-1.3.0-py3-none-any.whl", hash = "sha256:5788d9e6a7a9f80fed665cf09681c4dddd9dc056bea656db4140ffc285ce423e", size = 336647 }, -] - [[package]] name = "aiohappyeyeballs" version = "2.4.4" @@ -155,15 +128,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233 }, ] -[[package]] -name = "asyncio" -version = "3.4.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/da/54/054bafaf2c0fb8473d423743e191fcdf49b2c1fd5e9af3524efbe097bafd/asyncio-3.4.3.tar.gz", hash = "sha256:83360ff8bc97980e4ff25c964c7bd3923d333d177aa4f7fb736b019f26c7cb41", size = 204411 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/22/74/07679c5b9f98a7cb0fc147b1ef1cc1853bc07a4eb9cb5731e24732c5f773/asyncio-3.4.3-py3-none-any.whl", hash = "sha256:c4d18b22701821de07bd6aea8b53d21449ec0ec5680645e5317062ea21817d2d", size = 101767 }, -] - [[package]] name = "attrs" version = "25.1.0" @@ -173,15 +137,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fc/30/d4986a882011f9df997a55e6becd864812ccfcd821d64aac8570ee39f719/attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a", size = 63152 }, ] -[[package]] -name = "cachetools" -version = "5.5.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d9/74/57df1ab0ce6bc5f6fa868e08de20df8ac58f9c44330c7671ad922d2bbeae/cachetools-5.5.1.tar.gz", hash = "sha256:70f238fbba50383ef62e55c6aff6d9673175fe59f7c6782c7a0b9e38f4a9df95", size = 28044 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/4e/de4ff18bcf55857ba18d3a4bd48c8a9fde6bb0980c9d20b263f05387fd88/cachetools-5.5.1-py3-none-any.whl", hash = "sha256:b76651fdc3b24ead3c648bbdeeb940c1b04d365b38b4af66788f9ec4a81d42bb", size = 9530 }, -] - [[package]] name = "certifi" version = "2024.12.14" @@ -257,15 +212,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9", size = 7249 }, ] -[[package]] -name = "chardet" -version = "5.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385 }, -] - [[package]] name = "charset-normalizer" version = "3.4.1" @@ -348,19 +294,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, ] -[[package]] -name = "dataproperty" -version = "1.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mbstrdecoder" }, - { name = "typepy", extra = ["datetime"] }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0b/81/8c8b64ae873cb9014815214c07b63b12e3b18835780fb342223cfe3fe7d8/dataproperty-1.1.0.tar.gz", hash = "sha256:b038437a4097d1a1c497695c3586ea34bea67fdd35372b9a50f30bf044d77d04", size = 42574 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/21/c2/e12e95e289e6081a40454199ab213139ef16a528c7c86432de545b05a23a/DataProperty-1.1.0-py3-none-any.whl", hash = "sha256:c61fcb2e2deca35e6d1eb1f251a7f22f0dcde63e80e61f0cc18c19f42abfd25b", size = 27581 }, -] - [[package]] name = "datasets" version = "3.2.0" @@ -386,15 +319,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d7/84/0df6c5981f5fc722381662ff8cfbdf8aad64bec875f75d80b55bfef394ce/datasets-3.2.0-py3-none-any.whl", hash = "sha256:f3d2ba2698b7284a4518019658596a6a8bc79f31e51516524249d6c59cf0fe2a", size = 480647 }, ] -[[package]] -name = "decorator" -version = "5.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/66/0c/8d907af351aa16b42caae42f9d6aa37b900c67308052d10fdce809f8d952/decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", size = 35016 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186", size = 9073 }, -] - [[package]] name = "dill" version = "0.3.8" @@ -425,28 +349,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f5/e8/f6bd1eee09314e7e6dee49cbe2c5e22314ccdb38db16c9fc72d2fa80d054/docker_pycreds-0.4.0-py2.py3-none-any.whl", hash = "sha256:7266112468627868005106ec19cd0d722702d2b7d5912a28e19b826c3d37af49", size = 8982 }, ] -[[package]] -name = "evaluate" -version = "0.4.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "datasets" }, - { name = "dill" }, - { name = "fsspec", extra = ["http"] }, - { name = "huggingface-hub" }, - { name = "multiprocess" }, - { name = "numpy" }, - { name = "packaging" }, - { name = "pandas" }, - { name = "requests" }, - { name = "tqdm" }, - { name = "xxhash" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5a/a0/10a56e0939ece94c54276e81459cb4101f46f0e9a6f54fc31a35f64e8854/evaluate-0.4.3.tar.gz", hash = "sha256:3a5700cf83aabee9549264e1e5666f116367c61dbd4d38352015e859a5e2098d", size = 65679 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/e7/cbca9e2d2590eb9b5aa8f7ebabe1beb1498f9462d2ecede5c9fd9735faaf/evaluate-0.4.3-py3-none-any.whl", hash = "sha256:47d8770bdea76e2c2ed0d40189273027d1a41ccea861bcc7ba12d30ec5d1e517", size = 84010 }, -] - [[package]] name = "exceptiongroup" version = "1.2.2" @@ -557,31 +459,10 @@ wheels = [ ] [package.optional-dependencies] -gcs = [ - { name = "gcsfs" }, -] http = [ { name = "aiohttp" }, ] -[[package]] -name = "gcsfs" -version = "2024.9.0.post1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "aiohttp" }, - { name = "decorator" }, - { name = "fsspec" }, - { name = "google-auth" }, - { name = "google-auth-oauthlib" }, - { name = "google-cloud-storage" }, - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d9/9d/64fa09b9c392ee79ffaa4b26d0481d2d775ffe03969b38a4ade77bd72d15/gcsfs-2024.9.0.post1.tar.gz", hash = "sha256:7ca70ee9d7c7dbce1a3e36b4883e14102c2d7b4284f49e242843a437bc684684", size = 79460 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/72/1d/37ab60da39d3b782b0cf7770ba8c9071be8bb2aee8bc01b6d350c28b51b3/gcsfs-2024.9.0.post1-py2.py3-none-any.whl", hash = "sha256:f3ab9d3bedc45da8cf40baed7c3a1e1694e8f599160d9138d78f0ef25e4a3ca1", size = 34977 }, -] - [[package]] name = "gitdb" version = "4.0.12" @@ -606,129 +487,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1d/9a/4114a9057db2f1462d5c8f8390ab7383925fe1ac012eaa42402ad65c2963/GitPython-3.1.44-py3-none-any.whl", hash = "sha256:9e0e10cda9bed1ee64bc9a6de50e7e38a9c9943241cd7f585f6df3ed28011110", size = 207599 }, ] -[[package]] -name = "google-api-core" -version = "2.24.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "google-auth" }, - { name = "googleapis-common-protos" }, - { name = "proto-plus" }, - { name = "protobuf" }, - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b8/b7/481c83223d7b4f02c7651713fceca648fa3336e1571b9804713f66bca2d8/google_api_core-2.24.1.tar.gz", hash = "sha256:f8b36f5456ab0dd99a1b693a40a31d1e7757beea380ad1b38faaf8941eae9d8a", size = 163508 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/a6/8e30ddfd3d39ee6d2c76d3d4f64a83f77ac86a4cab67b286ae35ce9e4369/google_api_core-2.24.1-py3-none-any.whl", hash = "sha256:bc78d608f5a5bf853b80bd70a795f703294de656c096c0968320830a4bc280f1", size = 160059 }, -] - -[[package]] -name = "google-auth" -version = "2.38.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cachetools" }, - { name = "pyasn1-modules" }, - { name = "rsa" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c6/eb/d504ba1daf190af6b204a9d4714d457462b486043744901a6eeea711f913/google_auth-2.38.0.tar.gz", hash = "sha256:8285113607d3b80a3f1543b75962447ba8a09fe85783432a784fdeef6ac094c4", size = 270866 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/47/603554949a37bca5b7f894d51896a9c534b9eab808e2520a748e081669d0/google_auth-2.38.0-py2.py3-none-any.whl", hash = "sha256:e7dae6694313f434a2727bf2906f27ad259bae090d7aa896590d86feec3d9d4a", size = 210770 }, -] - -[[package]] -name = "google-auth-oauthlib" -version = "1.2.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "google-auth" }, - { name = "requests-oauthlib" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cc/0f/1772edb8d75ecf6280f1c7f51cbcebe274e8b17878b382f63738fd96cee5/google_auth_oauthlib-1.2.1.tar.gz", hash = "sha256:afd0cad092a2eaa53cd8e8298557d6de1034c6cb4a740500b5357b648af97263", size = 24970 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/8e/22a28dfbd218033e4eeaf3a0533b2b54852b6530da0c0fe934f0cc494b29/google_auth_oauthlib-1.2.1-py2.py3-none-any.whl", hash = "sha256:2d58a27262d55aa1b87678c3ba7142a080098cbc2024f903c62355deb235d91f", size = 24930 }, -] - -[[package]] -name = "google-cloud-core" -version = "2.4.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "google-api-core" }, - { name = "google-auth" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b8/1f/9d1e0ba6919668608570418a9a51e47070ac15aeff64261fb092d8be94c0/google-cloud-core-2.4.1.tar.gz", hash = "sha256:9b7749272a812bde58fff28868d0c5e2f585b82f37e09a1f6ed2d4d10f134073", size = 35587 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/0f/2e2061e3fbcb9d535d5da3f58cc8de4947df1786fe6a1355960feb05a681/google_cloud_core-2.4.1-py2.py3-none-any.whl", hash = "sha256:a9e6a4422b9ac5c29f79a0ede9485473338e2ce78d91f2370c01e730eab22e61", size = 29233 }, -] - -[[package]] -name = "google-cloud-storage" -version = "3.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "google-api-core" }, - { name = "google-auth" }, - { name = "google-cloud-core" }, - { name = "google-crc32c" }, - { name = "google-resumable-media" }, - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7f/d7/dfa74049c4faa3b4d68fa1a10a7eab5a76c57d0788b47c27f927bedc606d/google_cloud_storage-3.0.0.tar.gz", hash = "sha256:2accb3e828e584888beff1165e5f3ac61aa9088965eb0165794a82d8c7f95297", size = 7665253 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/ae/1a50f07161301e40a30b2e40744a7b85ffab7add16e044417925eccf9bbf/google_cloud_storage-3.0.0-py2.py3-none-any.whl", hash = "sha256:f85fd059650d2dbb0ac158a9a6b304b66143b35ed2419afec2905ca522eb2c6a", size = 173860 }, -] - -[[package]] -name = "google-crc32c" -version = "1.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/67/72/c3298da1a3773102359c5a78f20dae8925f5ea876e37354415f68594a6fb/google_crc32c-1.6.0.tar.gz", hash = "sha256:6eceb6ad197656a1ff49ebfbbfa870678c75be4344feb35ac1edf694309413dc", size = 14472 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/be/d7846cb50e17bf72a70ea2d8159478ac5de0f1170b10cac279f50079e78d/google_crc32c-1.6.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:5bcc90b34df28a4b38653c36bb5ada35671ad105c99cfe915fb5bed7ad6924aa", size = 30267 }, - { url = "https://files.pythonhosted.org/packages/84/3b/29cadae166132e4991087a49dc88906a1d3d5ec22b80f63bc4bc7b6e0431/google_crc32c-1.6.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:d9e9913f7bd69e093b81da4535ce27af842e7bf371cde42d1ae9e9bd382dc0e9", size = 30113 }, - { url = "https://files.pythonhosted.org/packages/18/a9/49a7b2c4b7cc69d15778a820734f9beb647b1b4cf1a629ca43e3d3a54c70/google_crc32c-1.6.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a184243544811e4a50d345838a883733461e67578959ac59964e43cca2c791e7", size = 37702 }, - { url = "https://files.pythonhosted.org/packages/4b/aa/52538cceddefc7c2d66c6bd59dfe67a50f65a4952f441f91049e4188eb57/google_crc32c-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:236c87a46cdf06384f614e9092b82c05f81bd34b80248021f729396a78e55d7e", size = 32847 }, - { url = "https://files.pythonhosted.org/packages/b1/2c/1928413d3faae74ae0d7bdba648cf36ed6b03328c562b47046af016b7249/google_crc32c-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebab974b1687509e5c973b5c4b8b146683e101e102e17a86bd196ecaa4d099fc", size = 37844 }, - { url = "https://files.pythonhosted.org/packages/d6/f4/f62fa405e442b37c5676973b759dd6e56cd8d58a5c78662912456526f716/google_crc32c-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:50cf2a96da226dcbff8671233ecf37bf6e95de98b2a2ebadbfdf455e6d05df42", size = 33444 }, - { url = "https://files.pythonhosted.org/packages/7d/14/ab47972ac79b6e7b03c8be3a7ef44b530a60e69555668dbbf08fc5692a98/google_crc32c-1.6.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f7a1fc29803712f80879b0806cb83ab24ce62fc8daf0569f2204a0cfd7f68ed4", size = 30267 }, - { url = "https://files.pythonhosted.org/packages/54/7d/738cb0d25ee55629e7d07da686decf03864a366e5e863091a97b7bd2b8aa/google_crc32c-1.6.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:40b05ab32a5067525670880eb5d169529089a26fe35dce8891127aeddc1950e8", size = 30112 }, - { url = "https://files.pythonhosted.org/packages/3e/6d/33ca50cbdeec09c31bb5dac277c90994edee975662a4c890bda7ffac90ef/google_crc32c-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e4b426c3702f3cd23b933436487eb34e01e00327fac20c9aebb68ccf34117d", size = 32861 }, - { url = "https://files.pythonhosted.org/packages/67/1e/4870896fc81ec77b1b5ebae7fdd680d5a4d40e19a4b6d724032f996ca77a/google_crc32c-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51c4f54dd8c6dfeb58d1df5e4f7f97df8abf17a36626a217f169893d1d7f3e9f", size = 32490 }, - { url = "https://files.pythonhosted.org/packages/00/9c/f5f5af3ddaa7a639d915f8f58b09bbb8d1db90ecd0459b62cd430eb9a4b6/google_crc32c-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:bb8b3c75bd157010459b15222c3fd30577042a7060e29d42dabce449c087f2b3", size = 33446 }, - { url = "https://files.pythonhosted.org/packages/cf/41/65a91657d6a8123c6c12f9aac72127b6ac76dda9e2ba1834026a842eb77c/google_crc32c-1.6.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ed767bf4ba90104c1216b68111613f0d5926fb3780660ea1198fc469af410e9d", size = 30268 }, - { url = "https://files.pythonhosted.org/packages/59/d0/ee743a267c7d5c4bb8bd865f7d4c039505f1c8a4b439df047fdc17be9769/google_crc32c-1.6.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:62f6d4a29fea082ac4a3c9be5e415218255cf11684ac6ef5488eea0c9132689b", size = 30113 }, - { url = "https://files.pythonhosted.org/packages/25/53/e5e449c368dd26ade5fb2bb209e046d4309ed0623be65b13f0ce026cb520/google_crc32c-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c87d98c7c4a69066fd31701c4e10d178a648c2cac3452e62c6b24dc51f9fcc00", size = 32995 }, - { url = "https://files.pythonhosted.org/packages/52/12/9bf6042d5b0ac8c25afed562fb78e51b0641474097e4139e858b45de40a5/google_crc32c-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd5e7d2445d1a958c266bfa5d04c39932dc54093fa391736dbfdb0f1929c1fb3", size = 32614 }, - { url = "https://files.pythonhosted.org/packages/76/29/fc20f5ec36eac1eea0d0b2de4118c774c5f59c513f2a8630d4db6991f3e0/google_crc32c-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:7aec8e88a3583515f9e0957fe4f5f6d8d4997e36d0f61624e70469771584c760", size = 33445 }, - { url = "https://files.pythonhosted.org/packages/e7/ff/ed48d136b65ddc61f5aef6261c58cd817c8cd60640b16680e5419fb17018/google_crc32c-1.6.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48abd62ca76a2cbe034542ed1b6aee851b6f28aaca4e6551b5599b6f3ef175cc", size = 28057 }, - { url = "https://files.pythonhosted.org/packages/14/fb/54deefe679b7d1c1cc81d83396fcf28ad1a66d213bddeb275a8d28665918/google_crc32c-1.6.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18e311c64008f1f1379158158bb3f0c8d72635b9eb4f9545f8cf990c5668e59d", size = 27866 }, -] - -[[package]] -name = "google-resumable-media" -version = "2.7.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "google-crc32c" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/58/5a/0efdc02665dca14e0837b62c8a1a93132c264bd02054a15abb2218afe0ae/google_resumable_media-2.7.2.tar.gz", hash = "sha256:5280aed4629f2b60b847b0d42f9857fd4935c11af266744df33d8074cae92fe0", size = 2163099 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/82/35/b8d3baf8c46695858cb9d8835a53baa1eeb9906ddaf2f728a5f5b640fd1e/google_resumable_media-2.7.2-py2.py3-none-any.whl", hash = "sha256:3ce7551e9fe6d99e9a126101d2536612bb73486721951e9562fee0f90c6ababa", size = 81251 }, -] - -[[package]] -name = "googleapis-common-protos" -version = "1.66.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "protobuf" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ff/a7/8e9cccdb1c49870de6faea2a2764fa23f627dd290633103540209f03524c/googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c", size = 114376 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/0f/c0713fb2b3d28af4b2fded3291df1c4d4f79a00d15c2374a9e010870016c/googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed", size = 221682 }, -] - [[package]] name = "huggingface-hub" version = "0.28.0" @@ -786,152 +544,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bd/0f/2ba5fbcd631e3e88689309dbe978c5769e883e4b84ebfe7da30b43275c5a/jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb", size = 134596 }, ] -[[package]] -name = "joblib" -version = "1.4.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e", size = 2116621 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817 }, -] - -[[package]] -name = "jsonlines" -version = "4.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/35/87/bcda8e46c88d0e34cad2f09ee2d0c7f5957bccdb9791b0b934ec84d84be4/jsonlines-4.0.0.tar.gz", hash = "sha256:0c6d2c09117550c089995247f605ae4cf77dd1533041d366351f6f298822ea74", size = 11359 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f8/62/d9ba6323b9202dd2fe166beab8a86d29465c41a0288cbe229fac60c1ab8d/jsonlines-4.0.0-py3-none-any.whl", hash = "sha256:185b334ff2ca5a91362993f42e83588a360cf95ce4b71a73548502bda52a7c55", size = 8701 }, -] - -[[package]] -name = "liger-kernel-nightly" -version = "0.5.2.dev20250129180649" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "torch" }, - { name = "triton" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/23/fcab81f6e9dd018eecf112f462831f6648b9d85765fe2b70c35e73d4bdc5/liger_kernel_nightly-0.5.2.dev20250129180649.tar.gz", hash = "sha256:d11bdac72655c468ed498ca48a15bd14d2ecf2df4efd913288ab84d26bf5c3ff", size = 3460969 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/c7/a843f4c8289024034eeb03687326456b3ab356748d41f7d449551d4040a1/liger_kernel_nightly-0.5.2.dev20250129180649-py3-none-any.whl", hash = "sha256:2ae45799cea28e319e401217797ba7ba73cb6476db95cdd4a40497feb70e7ca6", size = 112180 }, -] - -[[package]] -name = "lm-eval" -version = "0.4.7" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "accelerate" }, - { name = "datasets" }, - { name = "dill" }, - { name = "evaluate" }, - { name = "jsonlines" }, - { name = "more-itertools" }, - { name = "numexpr" }, - { name = "peft" }, - { name = "pybind11" }, - { name = "pytablewriter" }, - { name = "rouge-score" }, - { name = "sacrebleu" }, - { name = "scikit-learn" }, - { name = "sqlitedict" }, - { name = "torch" }, - { name = "tqdm-multiprocess" }, - { name = "transformers" }, - { name = "word2number" }, - { name = "zstandard" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/c9/b5d03d5b2bf6819008e377844999fbd04ab00dff0c43728957f1c90a53c5/lm_eval-0.4.7.tar.gz", hash = "sha256:dcbef8722f363f58cfba36b6d783fc6bb17924b24b8da1684bf1ac835866208d", size = 1115713 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/45/b9/1b4e3268b590d9ff16e087685d9526455bb677c3e4d0caeba4451f20c586/lm_eval-0.4.7-py3-none-any.whl", hash = "sha256:d84a52580468fdc1d812e511db36e86679b69ee27f5a5e3dbd50f233d0bec69f", size = 2518804 }, -] - -[[package]] -name = "lxml" -version = "5.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e7/6b/20c3a4b24751377aaa6307eb230b66701024012c29dd374999cc92983269/lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f", size = 3679318 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/ce/2789e39eddf2b13fac29878bfa465f0910eb6b0096e29090e5176bc8cf43/lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656", size = 8124570 }, - { url = "https://files.pythonhosted.org/packages/24/a8/f4010166a25d41715527129af2675981a50d3bbf7df09c5d9ab8ca24fbf9/lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d", size = 4413042 }, - { url = "https://files.pythonhosted.org/packages/41/a4/7e45756cecdd7577ddf67a68b69c1db0f5ddbf0c9f65021ee769165ffc5a/lxml-5.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a", size = 5139213 }, - { url = "https://files.pythonhosted.org/packages/02/e2/ecf845b12323c92748077e1818b64e8b4dba509a4cb12920b3762ebe7552/lxml-5.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8", size = 4838814 }, - { url = "https://files.pythonhosted.org/packages/12/91/619f9fb72cf75e9ceb8700706f7276f23995f6ad757e6d400fbe35ca4990/lxml-5.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330", size = 5425084 }, - { url = "https://files.pythonhosted.org/packages/25/3b/162a85a8f0fd2a3032ec3f936636911c6e9523a8e263fffcfd581ce98b54/lxml-5.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965", size = 4875993 }, - { url = "https://files.pythonhosted.org/packages/43/af/dd3f58cc7d946da6ae42909629a2b1d5dd2d1b583334d4af9396697d6863/lxml-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22", size = 5012462 }, - { url = "https://files.pythonhosted.org/packages/69/c1/5ea46b2d4c98f5bf5c83fffab8a0ad293c9bc74df9ecfbafef10f77f7201/lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b", size = 4815288 }, - { url = "https://files.pythonhosted.org/packages/1d/51/a0acca077ad35da458f4d3f729ef98effd2b90f003440d35fc36323f8ae6/lxml-5.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7", size = 5472435 }, - { url = "https://files.pythonhosted.org/packages/4d/6b/0989c9368986961a6b0f55b46c80404c4b758417acdb6d87bfc3bd5f4967/lxml-5.3.0-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8", size = 4976354 }, - { url = "https://files.pythonhosted.org/packages/05/9e/87492d03ff604fbf656ed2bf3e2e8d28f5d58ea1f00ff27ac27b06509079/lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32", size = 5029973 }, - { url = "https://files.pythonhosted.org/packages/f9/cc/9ae1baf5472af88e19e2c454b3710c1be9ecafb20eb474eeabcd88a055d2/lxml-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86", size = 4888837 }, - { url = "https://files.pythonhosted.org/packages/d2/10/5594ffaec8c120d75b17e3ad23439b740a51549a9b5fd7484b2179adfe8f/lxml-5.3.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5", size = 5530555 }, - { url = "https://files.pythonhosted.org/packages/ea/9b/de17f05377c8833343b629905571fb06cff2028f15a6f58ae2267662e341/lxml-5.3.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03", size = 5405314 }, - { url = "https://files.pythonhosted.org/packages/8a/b4/227be0f1f3cca8255925985164c3838b8b36e441ff0cc10c1d3c6bdba031/lxml-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7", size = 5079303 }, - { url = "https://files.pythonhosted.org/packages/5c/ee/19abcebb7fc40319bb71cd6adefa1ad94d09b5660228715854d6cc420713/lxml-5.3.0-cp310-cp310-win32.whl", hash = "sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80", size = 3475126 }, - { url = "https://files.pythonhosted.org/packages/a1/35/183d32551447e280032b2331738cd850da435a42f850b71ebeaab42c1313/lxml-5.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3", size = 3805065 }, - { url = "https://files.pythonhosted.org/packages/5c/a8/449faa2a3cbe6a99f8d38dcd51a3ee8844c17862841a6f769ea7c2a9cd0f/lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b", size = 8141056 }, - { url = "https://files.pythonhosted.org/packages/ac/8a/ae6325e994e2052de92f894363b038351c50ee38749d30cc6b6d96aaf90f/lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18", size = 4425238 }, - { url = "https://files.pythonhosted.org/packages/f8/fb/128dddb7f9086236bce0eeae2bfb316d138b49b159f50bc681d56c1bdd19/lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442", size = 5095197 }, - { url = "https://files.pythonhosted.org/packages/b4/f9/a181a8ef106e41e3086629c8bdb2d21a942f14c84a0e77452c22d6b22091/lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4", size = 4809809 }, - { url = "https://files.pythonhosted.org/packages/25/2f/b20565e808f7f6868aacea48ddcdd7e9e9fb4c799287f21f1a6c7c2e8b71/lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f", size = 5407593 }, - { url = "https://files.pythonhosted.org/packages/23/0e/caac672ec246d3189a16c4d364ed4f7d6bf856c080215382c06764058c08/lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e", size = 4866657 }, - { url = "https://files.pythonhosted.org/packages/67/a4/1f5fbd3f58d4069000522196b0b776a014f3feec1796da03e495cf23532d/lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c", size = 4967017 }, - { url = "https://files.pythonhosted.org/packages/ee/73/623ecea6ca3c530dd0a4ed0d00d9702e0e85cd5624e2d5b93b005fe00abd/lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16", size = 4810730 }, - { url = "https://files.pythonhosted.org/packages/1d/ce/fb84fb8e3c298f3a245ae3ea6221c2426f1bbaa82d10a88787412a498145/lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79", size = 5455154 }, - { url = "https://files.pythonhosted.org/packages/b1/72/4d1ad363748a72c7c0411c28be2b0dc7150d91e823eadad3b91a4514cbea/lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080", size = 4969416 }, - { url = "https://files.pythonhosted.org/packages/42/07/b29571a58a3a80681722ea8ed0ba569211d9bb8531ad49b5cacf6d409185/lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654", size = 5013672 }, - { url = "https://files.pythonhosted.org/packages/b9/93/bde740d5a58cf04cbd38e3dd93ad1e36c2f95553bbf7d57807bc6815d926/lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d", size = 4878644 }, - { url = "https://files.pythonhosted.org/packages/56/b5/645c8c02721d49927c93181de4017164ec0e141413577687c3df8ff0800f/lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763", size = 5511531 }, - { url = "https://files.pythonhosted.org/packages/85/3f/6a99a12d9438316f4fc86ef88c5d4c8fb674247b17f3173ecadd8346b671/lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec", size = 5402065 }, - { url = "https://files.pythonhosted.org/packages/80/8a/df47bff6ad5ac57335bf552babfb2408f9eb680c074ec1ba412a1a6af2c5/lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be", size = 5069775 }, - { url = "https://files.pythonhosted.org/packages/08/ae/e7ad0f0fbe4b6368c5ee1e3ef0c3365098d806d42379c46c1ba2802a52f7/lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9", size = 3474226 }, - { url = "https://files.pythonhosted.org/packages/c3/b5/91c2249bfac02ee514ab135e9304b89d55967be7e53e94a879b74eec7a5c/lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1", size = 3814971 }, - { url = "https://files.pythonhosted.org/packages/eb/6d/d1f1c5e40c64bf62afd7a3f9b34ce18a586a1cccbf71e783cd0a6d8e8971/lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859", size = 8171753 }, - { url = "https://files.pythonhosted.org/packages/bd/83/26b1864921869784355459f374896dcf8b44d4af3b15d7697e9156cb2de9/lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e", size = 4441955 }, - { url = "https://files.pythonhosted.org/packages/e0/d2/e9bff9fb359226c25cda3538f664f54f2804f4b37b0d7c944639e1a51f69/lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f", size = 5050778 }, - { url = "https://files.pythonhosted.org/packages/88/69/6972bfafa8cd3ddc8562b126dd607011e218e17be313a8b1b9cc5a0ee876/lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e", size = 4748628 }, - { url = "https://files.pythonhosted.org/packages/5d/ea/a6523c7c7f6dc755a6eed3d2f6d6646617cad4d3d6d8ce4ed71bfd2362c8/lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179", size = 5322215 }, - { url = "https://files.pythonhosted.org/packages/99/37/396fbd24a70f62b31d988e4500f2068c7f3fd399d2fd45257d13eab51a6f/lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a", size = 4813963 }, - { url = "https://files.pythonhosted.org/packages/09/91/e6136f17459a11ce1757df864b213efbeab7adcb2efa63efb1b846ab6723/lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3", size = 4923353 }, - { url = "https://files.pythonhosted.org/packages/1d/7c/2eeecf87c9a1fca4f84f991067c693e67340f2b7127fc3eca8fa29d75ee3/lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1", size = 4740541 }, - { url = "https://files.pythonhosted.org/packages/3b/ed/4c38ba58defca84f5f0d0ac2480fdcd99fc7ae4b28fc417c93640a6949ae/lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d", size = 5346504 }, - { url = "https://files.pythonhosted.org/packages/a5/22/bbd3995437e5745cb4c2b5d89088d70ab19d4feabf8a27a24cecb9745464/lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c", size = 4898077 }, - { url = "https://files.pythonhosted.org/packages/0a/6e/94537acfb5b8f18235d13186d247bca478fea5e87d224644e0fe907df976/lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99", size = 4946543 }, - { url = "https://files.pythonhosted.org/packages/8d/e8/4b15df533fe8e8d53363b23a41df9be907330e1fa28c7ca36893fad338ee/lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff", size = 4816841 }, - { url = "https://files.pythonhosted.org/packages/1a/e7/03f390ea37d1acda50bc538feb5b2bda6745b25731e4e76ab48fae7106bf/lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a", size = 5417341 }, - { url = "https://files.pythonhosted.org/packages/ea/99/d1133ab4c250da85a883c3b60249d3d3e7c64f24faff494cf0fd23f91e80/lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8", size = 5327539 }, - { url = "https://files.pythonhosted.org/packages/7d/ed/e6276c8d9668028213df01f598f385b05b55a4e1b4662ee12ef05dab35aa/lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d", size = 5012542 }, - { url = "https://files.pythonhosted.org/packages/36/88/684d4e800f5aa28df2a991a6a622783fb73cf0e46235cfa690f9776f032e/lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30", size = 3486454 }, - { url = "https://files.pythonhosted.org/packages/fc/82/ace5a5676051e60355bd8fb945df7b1ba4f4fb8447f2010fb816bfd57724/lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f", size = 3816857 }, - { url = "https://files.pythonhosted.org/packages/94/6a/42141e4d373903bfea6f8e94b2f554d05506dfda522ada5343c651410dc8/lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a", size = 8156284 }, - { url = "https://files.pythonhosted.org/packages/91/5e/fa097f0f7d8b3d113fb7312c6308af702f2667f22644441715be961f2c7e/lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd", size = 4432407 }, - { url = "https://files.pythonhosted.org/packages/2d/a1/b901988aa6d4ff937f2e5cfc114e4ec561901ff00660c3e56713642728da/lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51", size = 5048331 }, - { url = "https://files.pythonhosted.org/packages/30/0f/b2a54f48e52de578b71bbe2a2f8160672a8a5e103df3a78da53907e8c7ed/lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b", size = 4744835 }, - { url = "https://files.pythonhosted.org/packages/82/9d/b000c15538b60934589e83826ecbc437a1586488d7c13f8ee5ff1f79a9b8/lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002", size = 5316649 }, - { url = "https://files.pythonhosted.org/packages/e3/ee/ffbb9eaff5e541922611d2c56b175c45893d1c0b8b11e5a497708a6a3b3b/lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4", size = 4812046 }, - { url = "https://files.pythonhosted.org/packages/15/ff/7ff89d567485c7b943cdac316087f16b2399a8b997007ed352a1248397e5/lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492", size = 4918597 }, - { url = "https://files.pythonhosted.org/packages/c6/a3/535b6ed8c048412ff51268bdf4bf1cf052a37aa7e31d2e6518038a883b29/lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3", size = 4738071 }, - { url = "https://files.pythonhosted.org/packages/7a/8f/cbbfa59cb4d4fd677fe183725a76d8c956495d7a3c7f111ab8f5e13d2e83/lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4", size = 5342213 }, - { url = "https://files.pythonhosted.org/packages/5c/fb/db4c10dd9958d4b52e34d1d1f7c1f434422aeaf6ae2bbaaff2264351d944/lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367", size = 4893749 }, - { url = "https://files.pythonhosted.org/packages/f2/38/bb4581c143957c47740de18a3281a0cab7722390a77cc6e610e8ebf2d736/lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832", size = 4945901 }, - { url = "https://files.pythonhosted.org/packages/fc/d5/18b7de4960c731e98037bd48fa9f8e6e8f2558e6fbca4303d9b14d21ef3b/lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff", size = 4815447 }, - { url = "https://files.pythonhosted.org/packages/97/a8/cd51ceaad6eb849246559a8ef60ae55065a3df550fc5fcd27014361c1bab/lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd", size = 5411186 }, - { url = "https://files.pythonhosted.org/packages/89/c3/1e3dabab519481ed7b1fdcba21dcfb8832f57000733ef0e71cf6d09a5e03/lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb", size = 5324481 }, - { url = "https://files.pythonhosted.org/packages/b6/17/71e9984cf0570cd202ac0a1c9ed5c1b8889b0fc8dc736f5ef0ffb181c284/lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b", size = 5011053 }, - { url = "https://files.pythonhosted.org/packages/69/68/9f7e6d3312a91e30829368c2b3217e750adef12a6f8eb10498249f4e8d72/lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957", size = 3485634 }, - { url = "https://files.pythonhosted.org/packages/7d/db/214290d58ad68c587bd5d6af3d34e56830438733d0d0856c0275fde43652/lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d", size = 3814417 }, - { url = "https://files.pythonhosted.org/packages/99/f7/b73a431c8500565aa500e99e60b448d305eaf7c0b4c893c7c5a8a69cc595/lxml-5.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c", size = 3925431 }, - { url = "https://files.pythonhosted.org/packages/db/48/4a206623c0d093d0e3b15f415ffb4345b0bdf661a3d0b15a112948c033c7/lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a", size = 4216683 }, - { url = "https://files.pythonhosted.org/packages/54/47/577820c45dd954523ae8453b632d91e76da94ca6d9ee40d8c98dd86f916b/lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005", size = 4326732 }, - { url = "https://files.pythonhosted.org/packages/68/de/96cb6d3269bc994b4f5ede8ca7bf0840f5de0a278bc6e50cb317ff71cafa/lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce", size = 4218377 }, - { url = "https://files.pythonhosted.org/packages/a5/43/19b1ef6cbffa4244a217f95cc5f41a6cb4720fed33510a49670b03c5f1a0/lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83", size = 4351237 }, - { url = "https://files.pythonhosted.org/packages/ba/b2/6a22fb5c0885da3b00e116aee81f0b829ec9ac8f736cd414b4a09413fc7d/lxml-5.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba", size = 3487557 }, -] - [[package]] name = "markdown-it-py" version = "3.0.0" @@ -1002,18 +614,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, ] -[[package]] -name = "mbstrdecoder" -version = "1.1.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "chardet" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/31/ab/05ae008357c8bdb6245ebf8a101d99f26c096e0ea20800b318153da23796/mbstrdecoder-1.1.4.tar.gz", hash = "sha256:8105ef9cf6b7d7d69fe7fd6b68a2d8f281ca9b365d7a9b670be376b2e6c81b21", size = 14527 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/30/ac/5ce64a1d4cce00390beab88622a290420401f1cabf05caf2fc0995157c21/mbstrdecoder-1.1.4-py3-none-any.whl", hash = "sha256:03dae4ec50ec0d2ff4743e63fdbd5e0022815857494d35224b60775d3d934a8c", size = 7933 }, -] - [[package]] name = "mdurl" version = "0.1.2" @@ -1023,15 +623,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, ] -[[package]] -name = "more-itertools" -version = "10.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/88/3b/7fa1fe835e2e93fd6d7b52b2f95ae810cf5ba133e1845f726f5a992d62c2/more-itertools-10.6.0.tar.gz", hash = "sha256:2cd7fad1009c31cc9fb6a035108509e6547547a7a738374f10bd49a09eb3ee3b", size = 125009 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/23/62/0fe302c6d1be1c777cab0616e6302478251dfbf9055ad426f5d0def75c89/more_itertools-10.6.0-py3-none-any.whl", hash = "sha256:6eb054cb4b6db1473f6e15fcc676a08e4732548acd47c708f0e179c2c7c01e89", size = 63038 }, -] - [[package]] name = "mpmath" version = "1.3.0" @@ -1164,21 +755,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d9/9d/0cc1e82849070ff3cbee69f326cb48a839407bcd15d8844443c30a5e7509/ninja-1.11.1.3-py3-none-win_arm64.whl", hash = "sha256:17978ad611d8ead578d83637f5ae80c2261b033db0b493a7ce94f88623f29e1b", size = 270571 }, ] -[[package]] -name = "nltk" -version = "3.9.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "click" }, - { name = "joblib" }, - { name = "regex" }, - { name = "tqdm" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3c/87/db8be88ad32c2d042420b6fd9ffd4a149f9a0d7f0e86b3f543be2eeeedd2/nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868", size = 2904691 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/66/7d9e26593edda06e8cb531874633f7c2372279c3b0f46235539fe546df8b/nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1", size = 1505442 }, -] - [[package]] name = "nodeenv" version = "1.9.1" @@ -1188,45 +764,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314 }, ] -[[package]] -name = "numexpr" -version = "2.10.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numpy" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/21/67/c7415cf04ebe418193cfd6595ae03e3a64d76dac7b9c010098b39cc7992e/numexpr-2.10.2.tar.gz", hash = "sha256:b0aff6b48ebc99d2f54f27b5f73a58cb92fde650aeff1b397c71c8788b4fff1a", size = 106787 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/dc/bd84219318826d138b7e729ac3ffce3c706ab9d810ce74326a55c7252dd1/numexpr-2.10.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5b0e82d2109c1d9e63fcd5ea177d80a11b881157ab61178ddbdebd4c561ea46", size = 145011 }, - { url = "https://files.pythonhosted.org/packages/31/6a/b1f08141283327478a57490c0ab3f26a634d4741ff33b9e22f760a7cedb0/numexpr-2.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3fc2b8035a0c2cdc352e58c3875cb668836018065cbf5752cb531015d9a568d8", size = 134777 }, - { url = "https://files.pythonhosted.org/packages/7c/d6/6641864b0446ce472330de7644c78f90bd7e55d902046b44161f92721279/numexpr-2.10.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0db5ff5183935d1612653559c319922143e8fa3019007696571b13135f216458", size = 408893 }, - { url = "https://files.pythonhosted.org/packages/25/ab/cb5809cb1f66431632d63dc028c58cb91492725c74dddc4b97ba62e88a92/numexpr-2.10.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15f59655458056fdb3a621b1bb8e071581ccf7e823916c7568bb7c9a3e393025", size = 397305 }, - { url = "https://files.pythonhosted.org/packages/9c/a0/29bcb31a9debb743e3dc46bacd55f4f6ee6a77d95eda5c8dca19a29c0627/numexpr-2.10.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ce8cccf944339051e44a49a124a06287fe3066d0acbff33d1aa5aee10a96abb7", size = 1378789 }, - { url = "https://files.pythonhosted.org/packages/cc/72/415262a7bdda706c41bf8254311a5ca13d3b8532341ab478be4583d7061a/numexpr-2.10.2-cp310-cp310-win32.whl", hash = "sha256:ba85371c9a8d03e115f4dfb6d25dfbce05387002b9bc85016af939a1da9624f0", size = 151935 }, - { url = "https://files.pythonhosted.org/packages/71/fa/0124f0c2a502a0bac4553c8a171c551f154cf80a83a15e40d30c43e48a7e/numexpr-2.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:deb64235af9eeba59fcefa67e82fa80cfc0662e1b0aa373b7118a28da124d51d", size = 144961 }, - { url = "https://files.pythonhosted.org/packages/de/b7/f25d6166f92ef23737c1c90416144492a664f0a56510d90f7c6577c2cd14/numexpr-2.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6b360eb8d392483410fe6a3d5a7144afa298c9a0aa3e9fe193e89590b47dd477", size = 145055 }, - { url = "https://files.pythonhosted.org/packages/66/64/428361ea6415826332f38ef2dd5c3abf4e7e601f033bfc9be68b680cb765/numexpr-2.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d9a42f5c24880350d88933c4efee91b857c378aaea7e8b86221fff569069841e", size = 134743 }, - { url = "https://files.pythonhosted.org/packages/3f/fb/639ec91d2ea7b4a5d66e26e8ef8e06b020c8e9b9ebaf3bab7b0a9bee472e/numexpr-2.10.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:83fcb11988b57cc25b028a36d285287d706d1f536ebf2662ea30bd990e0de8b9", size = 410397 }, - { url = "https://files.pythonhosted.org/packages/89/5a/0f5c5b8a3a6d34eeecb30d0e2f722d50b9b38c0e175937e7c6268ffab997/numexpr-2.10.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4213a92efa9770bc28e3792134e27c7e5c7e97068bdfb8ba395baebbd12f991b", size = 398902 }, - { url = "https://files.pythonhosted.org/packages/a2/d5/ec734e735eba5a753efed5be3707ee7447ebd371772f8081b65a4153fb97/numexpr-2.10.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebdbef5763ca057eea0c2b5698e4439d084a0505d9d6e94f4804f26e8890c45e", size = 1380354 }, - { url = "https://files.pythonhosted.org/packages/30/51/406e572531d817480bd612ee08239a36ee82865fea02fce569f15631f4ee/numexpr-2.10.2-cp311-cp311-win32.whl", hash = "sha256:3bf01ec502d89944e49e9c1b5cc7c7085be8ca2eb9dd46a0eafd218afbdbd5f5", size = 151938 }, - { url = "https://files.pythonhosted.org/packages/04/32/5882ed1dbd96234f327a73316a481add151ff827cfaf2ea24fb4d5ad04db/numexpr-2.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:e2d0ae24b0728e4bc3f1d3f33310340d67321d36d6043f7ce26897f4f1042db0", size = 144961 }, - { url = "https://files.pythonhosted.org/packages/2b/96/d5053dea06d8298ae8052b4b049cbf8ef74998e28d57166cc27b8ae909e2/numexpr-2.10.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5323a46e75832334f1af86da1ef6ff0add00fbacdd266250be872b438bdf2be", size = 145029 }, - { url = "https://files.pythonhosted.org/packages/3e/3c/fcd5a812ed5dda757b2d9ef2764a3e1cca6f6d1f02dbf113dc23a2c7702a/numexpr-2.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a42963bd4c62d8afa4f51e7974debfa39a048383f653544ab54f50a2f7ec6c42", size = 134851 }, - { url = "https://files.pythonhosted.org/packages/0a/52/0ed3b306d8c9944129bce97fec73a2caff13adbd7e1df148d546d7eb2d4d/numexpr-2.10.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5191ba8f2975cb9703afc04ae845a929e193498c0e8bcd408ecb147b35978470", size = 411837 }, - { url = "https://files.pythonhosted.org/packages/7d/9c/6b671dd3fb67d7e7da93cb76b7c5277743f310a216b7856bb18776bb3371/numexpr-2.10.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:97298b14f0105a794bea06fd9fbc5c423bd3ff4d88cbc618860b83eb7a436ad6", size = 400577 }, - { url = "https://files.pythonhosted.org/packages/ea/4d/a167d1a215fe10ce58c45109f2869fd13aa0eef66f7e8c69af68be45d436/numexpr-2.10.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9d7805ccb6be2d3b0f7f6fad3707a09ac537811e8e9964f4074d28cb35543db", size = 1381735 }, - { url = "https://files.pythonhosted.org/packages/c1/d4/17e4434f989e4917d31cbd88a043e1c9c16958149cf43fa622987111392b/numexpr-2.10.2-cp312-cp312-win32.whl", hash = "sha256:cb845b2d4f9f8ef0eb1c9884f2b64780a85d3b5ae4eeb26ae2b0019f489cd35e", size = 152102 }, - { url = "https://files.pythonhosted.org/packages/b8/25/9ae599994076ef2a42d35ff6b0430da002647f212567851336a6c7b132d6/numexpr-2.10.2-cp312-cp312-win_amd64.whl", hash = "sha256:57b59cbb5dcce4edf09cd6ce0b57ff60312479930099ca8d944c2fac896a1ead", size = 145061 }, - { url = "https://files.pythonhosted.org/packages/8c/cb/2ea1848c46e4d75073c038dd75628d1aa442975303264ed230bf90f74f44/numexpr-2.10.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a37d6a51ec328c561b2ca8a2bef07025642eca995b8553a5267d0018c732976d", size = 145035 }, - { url = "https://files.pythonhosted.org/packages/ec/cf/bb2bcd81d6f3243590e19ac3e7795a1a370f3ebcd8ecec1f46dcd5333f37/numexpr-2.10.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:81d1dde7dd6166d8ff5727bb46ab42a6b0048db0e97ceb84a121334a404a800f", size = 134858 }, - { url = "https://files.pythonhosted.org/packages/48/9b/c9128ffb453205c2a4c84a3abed35447c7591c2c2812e77e34fd238cb2bb/numexpr-2.10.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5b3f814437d5a10797f8d89d2037cca2c9d9fa578520fc911f894edafed6ea3e", size = 415517 }, - { url = "https://files.pythonhosted.org/packages/7e/b0/64c04c9f8b4a563218d00daa1ec4563364961b79025162c5276ab2c7c407/numexpr-2.10.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9309f2e43fe6e4560699ef5c27d7a848b3ff38549b6b57194207cf0e88900527", size = 403846 }, - { url = "https://files.pythonhosted.org/packages/80/35/60e9041fd709fe98dd3109d73a03cdffaeb6ee2089179155f5c3754e9934/numexpr-2.10.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ebb73b93f5c4d6994f357fa5a47a9f7a5485577e633b3c46a603cb01445bbb19", size = 1381659 }, - { url = "https://files.pythonhosted.org/packages/bd/5a/955bf5b5cf8f3de7b044a999e36327e14191fa073ed0e329456ed0f8161d/numexpr-2.10.2-cp313-cp313-win32.whl", hash = "sha256:ec04c9a3c050c175348801e27c18c68d28673b7bfb865ef88ce333be523bbc01", size = 152105 }, - { url = "https://files.pythonhosted.org/packages/be/7a/8ce360a1848bb5bcc30a414493371678f43790ece397f8652d5f65757e57/numexpr-2.10.2-cp313-cp313-win_amd64.whl", hash = "sha256:d7a3fc83c959288544db3adc70612475d8ad53a66c69198105c74036182d10dd", size = 145060 }, -] - [[package]] name = "numpy" version = "2.2.2" @@ -1399,15 +936,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/87/20/199b8713428322a2f22b722c62b8cc278cc53dffa9705d744484b5035ee9/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hash = "sha256:781e950d9b9f60d8241ccea575b32f5105a5baf4c2351cab5256a24869f12a1a", size = 99144 }, ] -[[package]] -name = "oauthlib" -version = "3.2.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6d/fa/fbf4001037904031639e6bfbfc02badfc7e12f137a8afa254df6c4c8a670/oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918", size = 177352 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", size = 151688 }, -] - [[package]] name = "packaging" version = "24.2" @@ -1465,36 +993,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ab/5f/b38085618b950b79d2d9164a711c52b10aefc0ae6833b96f626b7021b2ed/pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", size = 13098436 }, ] -[[package]] -name = "pathvalidate" -version = "3.2.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/92/87/c7a2f51cc62df0495acb0ed2533a7c74cc895e569a1b020ee5f6e9fa4e21/pathvalidate-3.2.3.tar.gz", hash = "sha256:59b5b9278e30382d6d213497623043ebe63f10e29055be4419a9c04c721739cb", size = 61717 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/50/14/c5a0e1a947909810fc4c043b84cac472b70e438148d34f5393be1bac663f/pathvalidate-3.2.3-py3-none-any.whl", hash = "sha256:5eaf0562e345d4b6d0c0239d0f690c3bd84d2a9a3c4c73b99ea667401b27bee1", size = 24130 }, -] - -[[package]] -name = "peft" -version = "0.14.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "accelerate" }, - { name = "huggingface-hub" }, - { name = "numpy" }, - { name = "packaging" }, - { name = "psutil" }, - { name = "pyyaml" }, - { name = "safetensors" }, - { name = "torch" }, - { name = "tqdm" }, - { name = "transformers" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/21/33/fb0c31eaa8162c01e9250b21aa65d46a5339f17a818a97c68391db2ff44b/peft-0.14.0.tar.gz", hash = "sha256:546d69af7b42f5ef715a3d3261ed818bc917ae6055e5d7e187ed3f2c76ad72dc", size = 411902 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/88/05/e58e3aaa36544d30a917814e336fc65a746f708e5874945e92999bc22fa3/peft-0.14.0-py3-none-any.whl", hash = "sha256:2f04f3a870c3baf30f15e7dcaa5dd70d3e54cfdd146d3c6c187735d3ae0a0700", size = 374831 }, -] - [[package]] name = "platformdirs" version = "4.3.6" @@ -1513,18 +1011,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 }, ] -[[package]] -name = "portalocker" -version = "3.1.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pywin32", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ac/91/8bfe23e1f7f630f2061ef38b5225d9fda9068d6a30fcbc187951e678e630/portalocker-3.1.1.tar.gz", hash = "sha256:ec20f6dda2ad9ce89fa399a5f31f4f1495f515958f0cb7ca6543cef7bb5a749e", size = 43708 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/60/1974cfdd5bb770568ddc6f89f3e0df4cfdd1acffd5a609dff5e95f48c6e2/portalocker-3.1.1-py3-none-any.whl", hash = "sha256:80e984e24de292ff258a5bea0e4f3f778fff84c0ae1275dbaebc4658de4aacb3", size = 19661 }, -] - [[package]] name = "pre-commit" version = "4.1.0" @@ -1614,18 +1100,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/41/b6/c5319caea262f4821995dca2107483b94a3345d4607ad797c76cb9c36bcc/propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54", size = 11818 }, ] -[[package]] -name = "proto-plus" -version = "1.26.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "protobuf" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/26/79/a5c6cbb42268cfd3ddc652dc526889044a8798c688a03ff58e5e92b743c8/proto_plus-1.26.0.tar.gz", hash = "sha256:6e93d5f5ca267b54300880fff156b6a3386b3fa3f43b1da62e680fc0c586ef22", size = 56136 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/42/c3/59308ccc07b34980f9d532f7afc718a9f32b40e52cde7a740df8d55632fb/proto_plus-1.26.0-py3-none-any.whl", hash = "sha256:bf2dfaa3da281fc3187d12d224c707cb57214fb2c22ba854eb0c105a3fb2d4d7", size = 50166 }, -] - [[package]] name = "protobuf" version = "5.29.3" @@ -1697,36 +1171,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/36/ef/1d7975053af9d106da973bac142d0d4da71b7550a3576cc3e0b3f444d21a/pyarrow-19.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:29cd86c8001a94f768f79440bf83fee23963af5e7bc68ce3a7e5f120e17edf89", size = 42077618 }, ] -[[package]] -name = "pyasn1" -version = "0.6.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ba/e9/01f1a64245b89f039897cb0130016d79f77d52669aae6ee7b159a6c4c018/pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034", size = 145322 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629", size = 83135 }, -] - -[[package]] -name = "pyasn1-modules" -version = "0.4.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pyasn1" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1d/67/6afbf0d507f73c32d21084a79946bfcfca5fbc62a72057e9c23797a737c9/pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c", size = 310028 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/77/89/bc88a6711935ba795a679ea6ebee07e128050d6382eaa35a0a47c8032bdc/pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd", size = 181537 }, -] - -[[package]] -name = "pybind11" -version = "2.13.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d2/c1/72b9622fcb32ff98b054f724e213c7f70d6898baa714f4516288456ceaba/pybind11-2.13.6.tar.gz", hash = "sha256:ba6af10348c12b24e92fa086b39cfba0eff619b61ac77c406167d813b096d39a", size = 218403 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/2f/0f24b288e2ce56f51c920137620b4434a38fd80583dbbe24fc2a1656c388/pybind11-2.13.6-py3-none-any.whl", hash = "sha256:237c41e29157b962835d356b370ededd57594a26d5894a795960f0047cb5caf5", size = 243282 }, -] - [[package]] name = "pycparser" version = "2.22" @@ -1843,24 +1287,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 }, ] -[[package]] -name = "pytablewriter" -version = "1.2.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "dataproperty" }, - { name = "mbstrdecoder" }, - { name = "pathvalidate" }, - { name = "setuptools" }, - { name = "tabledata" }, - { name = "tcolorpy" }, - { name = "typepy", extra = ["datetime"] }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f6/a1/617730f290f04d347103ab40bf67d317df6691b14746f6e1ea039fb57062/pytablewriter-1.2.1.tar.gz", hash = "sha256:7bd0f4f397e070e3b8a34edcf1b9257ccbb18305493d8350a5dbc9957fced959", size = 619241 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/21/4c/c199512f01c845dfe5a7840ab3aae6c60463b5dc2a775be72502dfd9170a/pytablewriter-1.2.1-py3-none-any.whl", hash = "sha256:e906ff7ff5151d70a5f66e0f7b75642a7f2dce8d893c265b79cc9cf6bc04ddb4", size = 91083 }, -] - [[package]] name = "pytest" version = "8.3.4" @@ -1899,25 +1325,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 }, ] -[[package]] -name = "pywin32" -version = "308" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/72/a6/3e9f2c474895c1bb61b11fa9640be00067b5c5b363c501ee9c3fa53aec01/pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e", size = 5927028 }, - { url = "https://files.pythonhosted.org/packages/d9/b4/84e2463422f869b4b718f79eb7530a4c1693e96b8a4e5e968de38be4d2ba/pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e", size = 6558484 }, - { url = "https://files.pythonhosted.org/packages/9f/8f/fb84ab789713f7c6feacaa08dad3ec8105b88ade8d1c4f0f0dfcaaa017d6/pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c", size = 7971454 }, - { url = "https://files.pythonhosted.org/packages/eb/e2/02652007469263fe1466e98439831d65d4ca80ea1a2df29abecedf7e47b7/pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a", size = 5928156 }, - { url = "https://files.pythonhosted.org/packages/48/ef/f4fb45e2196bc7ffe09cad0542d9aff66b0e33f6c0954b43e49c33cad7bd/pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b", size = 6559559 }, - { url = "https://files.pythonhosted.org/packages/79/ef/68bb6aa865c5c9b11a35771329e95917b5559845bd75b65549407f9fc6b4/pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6", size = 7972495 }, - { url = "https://files.pythonhosted.org/packages/00/7c/d00d6bdd96de4344e06c4afbf218bc86b54436a94c01c71a8701f613aa56/pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897", size = 5939729 }, - { url = "https://files.pythonhosted.org/packages/21/27/0c8811fbc3ca188f93b5354e7c286eb91f80a53afa4e11007ef661afa746/pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47", size = 6543015 }, - { url = "https://files.pythonhosted.org/packages/9d/0f/d40f8373608caed2255781a3ad9a51d03a594a1248cd632d6a298daca693/pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091", size = 7976033 }, - { url = "https://files.pythonhosted.org/packages/a9/a4/aa562d8935e3df5e49c161b427a3a2efad2ed4e9cf81c3de636f1fdddfd0/pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed", size = 5938579 }, - { url = "https://files.pythonhosted.org/packages/c7/50/b0efb8bb66210da67a53ab95fd7a98826a97ee21f1d22949863e6d588b22/pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4", size = 6542056 }, - { url = "https://files.pythonhosted.org/packages/26/df/2b63e3e4f2df0224f8aaf6d131f54fe4e8c96400eb9df563e2aae2e1a1f9/pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd", size = 7974986 }, -] - [[package]] name = "pyyaml" version = "6.0.2" @@ -2046,19 +1453,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, ] -[[package]] -name = "requests-oauthlib" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "oauthlib" }, - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/42/f2/05f29bc3913aea15eb670be136045bf5c5bbf4b99ecb839da9b422bb2c85/requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9", size = 55650 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36", size = 24179 }, -] - [[package]] name = "rich" version = "13.9.4" @@ -2073,30 +1467,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, ] -[[package]] -name = "rouge-score" -version = "0.1.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "absl-py" }, - { name = "nltk" }, - { name = "numpy" }, - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e2/c5/9136736c37022a6ad27fea38f3111eb8f02fe75d067f9a985cc358653102/rouge_score-0.1.2.tar.gz", hash = "sha256:c7d4da2683e68c9abf0135ef915d63a46643666f848e558a1b9f7ead17ff0f04", size = 17400 } - -[[package]] -name = "rsa" -version = "4.9" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pyasn1" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/aa/65/7d973b89c4d2351d7fb232c2e452547ddfa243e93131e7cfa766da627b52/rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21", size = 29711 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", size = 34315 }, -] - [[package]] name = "ruff" version = "0.9.3" @@ -2122,23 +1492,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/69/cb/b3fe58a136a27d981911cba2f18e4b29f15010623b79f0f2510fd0d31fd3/ruff-0.9.3-py3-none-win_arm64.whl", hash = "sha256:800d773f6d4d33b0a3c60e2c6ae8f4c202ea2de056365acfa519aa48acf28e0b", size = 10038168 }, ] -[[package]] -name = "sacrebleu" -version = "2.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama" }, - { name = "lxml" }, - { name = "numpy" }, - { name = "portalocker" }, - { name = "regex" }, - { name = "tabulate" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/01/14/8526cf8a5b912b618e7d6ed319a5b1876788bebba1f9a660e1291832c1cc/sacrebleu-2.5.1.tar.gz", hash = "sha256:1a088cc1c74ffaff0759c3191a85db09eecfa7a52e09be244e319d8d64e2fb11", size = 1896900 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/45/7b55a7bd7e5c5b573b40ad58ba43fa09962dc5c8d71b1f573d4aeaa54a7e/sacrebleu-2.5.1-py3-none-any.whl", hash = "sha256:7c9f7ee75bec3a5bf19dd87112dfd654952130e403ad30c48298fb7da3212d5d", size = 104107 }, -] - [[package]] name = "safetensors" version = "0.5.2" @@ -2161,94 +1514,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/86/ca/aa489392ec6fb59223ffce825461e1f811a3affd417121a2088be7a5758b/safetensors-0.5.2-cp38-abi3-win_amd64.whl", hash = "sha256:78abdddd03a406646107f973c7843276e7b64e5e32623529dc17f3d94a20f589", size = 303756 }, ] -[[package]] -name = "scikit-learn" -version = "1.6.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "joblib" }, - { name = "numpy" }, - { name = "scipy" }, - { name = "threadpoolctl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9e/a5/4ae3b3a0755f7b35a280ac90b28817d1f380318973cff14075ab41ef50d9/scikit_learn-1.6.1.tar.gz", hash = "sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e", size = 7068312 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/3a/f4597eb41049110b21ebcbb0bcb43e4035017545daa5eedcfeb45c08b9c5/scikit_learn-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d056391530ccd1e501056160e3c9673b4da4805eb67eb2bdf4e983e1f9c9204e", size = 12067702 }, - { url = "https://files.pythonhosted.org/packages/37/19/0423e5e1fd1c6ec5be2352ba05a537a473c1677f8188b9306097d684b327/scikit_learn-1.6.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:0c8d036eb937dbb568c6242fa598d551d88fb4399c0344d95c001980ec1c7d36", size = 11112765 }, - { url = "https://files.pythonhosted.org/packages/70/95/d5cb2297a835b0f5fc9a77042b0a2d029866379091ab8b3f52cc62277808/scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8634c4bd21a2a813e0a7e3900464e6d593162a29dd35d25bdf0103b3fce60ed5", size = 12643991 }, - { url = "https://files.pythonhosted.org/packages/b7/91/ab3c697188f224d658969f678be86b0968ccc52774c8ab4a86a07be13c25/scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:775da975a471c4f6f467725dff0ced5c7ac7bda5e9316b260225b48475279a1b", size = 13497182 }, - { url = "https://files.pythonhosted.org/packages/17/04/d5d556b6c88886c092cc989433b2bab62488e0f0dafe616a1d5c9cb0efb1/scikit_learn-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:8a600c31592bd7dab31e1c61b9bbd6dea1b3433e67d264d17ce1017dbdce8002", size = 11125517 }, - { url = "https://files.pythonhosted.org/packages/6c/2a/e291c29670795406a824567d1dfc91db7b699799a002fdaa452bceea8f6e/scikit_learn-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72abc587c75234935e97d09aa4913a82f7b03ee0b74111dcc2881cba3c5a7b33", size = 12102620 }, - { url = "https://files.pythonhosted.org/packages/25/92/ee1d7a00bb6b8c55755d4984fd82608603a3cc59959245068ce32e7fb808/scikit_learn-1.6.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:b3b00cdc8f1317b5f33191df1386c0befd16625f49d979fe77a8d44cae82410d", size = 11116234 }, - { url = "https://files.pythonhosted.org/packages/30/cd/ed4399485ef364bb25f388ab438e3724e60dc218c547a407b6e90ccccaef/scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc4765af3386811c3ca21638f63b9cf5ecf66261cc4815c1db3f1e7dc7b79db2", size = 12592155 }, - { url = "https://files.pythonhosted.org/packages/a8/f3/62fc9a5a659bb58a03cdd7e258956a5824bdc9b4bb3c5d932f55880be569/scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25fc636bdaf1cc2f4a124a116312d837148b5e10872147bdaf4887926b8c03d8", size = 13497069 }, - { url = "https://files.pythonhosted.org/packages/a1/a6/c5b78606743a1f28eae8f11973de6613a5ee87366796583fb74c67d54939/scikit_learn-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:fa909b1a36e000a03c382aade0bd2063fd5680ff8b8e501660c0f59f021a6415", size = 11139809 }, - { url = "https://files.pythonhosted.org/packages/0a/18/c797c9b8c10380d05616db3bfb48e2a3358c767affd0857d56c2eb501caa/scikit_learn-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:926f207c804104677af4857b2c609940b743d04c4c35ce0ddc8ff4f053cddc1b", size = 12104516 }, - { url = "https://files.pythonhosted.org/packages/c4/b7/2e35f8e289ab70108f8cbb2e7a2208f0575dc704749721286519dcf35f6f/scikit_learn-1.6.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c2cae262064e6a9b77eee1c8e768fc46aa0b8338c6a8297b9b6759720ec0ff2", size = 11167837 }, - { url = "https://files.pythonhosted.org/packages/a4/f6/ff7beaeb644bcad72bcfd5a03ff36d32ee4e53a8b29a639f11bcb65d06cd/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1061b7c028a8663fb9a1a1baf9317b64a257fcb036dae5c8752b2abef31d136f", size = 12253728 }, - { url = "https://files.pythonhosted.org/packages/29/7a/8bce8968883e9465de20be15542f4c7e221952441727c4dad24d534c6d99/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e69fab4ebfc9c9b580a7a80111b43d214ab06250f8a7ef590a4edf72464dd86", size = 13147700 }, - { url = "https://files.pythonhosted.org/packages/62/27/585859e72e117fe861c2079bcba35591a84f801e21bc1ab85bce6ce60305/scikit_learn-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:70b1d7e85b1c96383f872a519b3375f92f14731e279a7b4c6cfd650cf5dffc52", size = 11110613 }, - { url = "https://files.pythonhosted.org/packages/2e/59/8eb1872ca87009bdcdb7f3cdc679ad557b992c12f4b61f9250659e592c63/scikit_learn-1.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322", size = 12010001 }, - { url = "https://files.pythonhosted.org/packages/9d/05/f2fc4effc5b32e525408524c982c468c29d22f828834f0625c5ef3d601be/scikit_learn-1.6.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1", size = 11096360 }, - { url = "https://files.pythonhosted.org/packages/c8/e4/4195d52cf4f113573fb8ebc44ed5a81bd511a92c0228889125fac2f4c3d1/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348", size = 12209004 }, - { url = "https://files.pythonhosted.org/packages/94/be/47e16cdd1e7fcf97d95b3cb08bde1abb13e627861af427a3651fcb80b517/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97", size = 13171776 }, - { url = "https://files.pythonhosted.org/packages/34/b0/ca92b90859070a1487827dbc672f998da95ce83edce1270fc23f96f1f61a/scikit_learn-1.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb", size = 11071865 }, - { url = "https://files.pythonhosted.org/packages/12/ae/993b0fb24a356e71e9a894e42b8a9eec528d4c70217353a1cd7a48bc25d4/scikit_learn-1.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236", size = 11955804 }, - { url = "https://files.pythonhosted.org/packages/d6/54/32fa2ee591af44507eac86406fa6bba968d1eb22831494470d0a2e4a1eb1/scikit_learn-1.6.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35", size = 11100530 }, - { url = "https://files.pythonhosted.org/packages/3f/58/55856da1adec655bdce77b502e94a267bf40a8c0b89f8622837f89503b5a/scikit_learn-1.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691", size = 12433852 }, - { url = "https://files.pythonhosted.org/packages/ff/4f/c83853af13901a574f8f13b645467285a48940f185b690936bb700a50863/scikit_learn-1.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f", size = 11337256 }, -] - -[[package]] -name = "scipy" -version = "1.15.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numpy" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/76/c6/8eb0654ba0c7d0bb1bf67bf8fbace101a8e4f250f7722371105e8b6f68fc/scipy-1.15.1.tar.gz", hash = "sha256:033a75ddad1463970c96a88063a1df87ccfddd526437136b6ee81ff0312ebdf6", size = 59407493 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/86/53/b204ce5a4433f1864001b9d16f103b9c25f5002a602ae83585d0ea5f9c4a/scipy-1.15.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:c64ded12dcab08afff9e805a67ff4480f5e69993310e093434b10e85dc9d43e1", size = 41414518 }, - { url = "https://files.pythonhosted.org/packages/c7/fc/54ffa7a8847f7f303197a6ba65a66104724beba2e38f328135a78f0dc480/scipy-1.15.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:5b190b935e7db569960b48840e5bef71dc513314cc4e79a1b7d14664f57fd4ff", size = 32519265 }, - { url = "https://files.pythonhosted.org/packages/f1/77/a98b8ba03d6f371dc31a38719affd53426d4665729dcffbed4afe296784a/scipy-1.15.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:4b17d4220df99bacb63065c76b0d1126d82bbf00167d1730019d2a30d6ae01ea", size = 24792859 }, - { url = "https://files.pythonhosted.org/packages/a7/78/70bb9f0df7444b18b108580934bfef774822e28fd34a68e5c263c7d2828a/scipy-1.15.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:63b9b6cd0333d0eb1a49de6f834e8aeaefe438df8f6372352084535ad095219e", size = 27886506 }, - { url = "https://files.pythonhosted.org/packages/14/a7/f40f6033e06de4176ddd6cc8c3ae9f10a226c3bca5d6b4ab883bc9914a14/scipy-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f151e9fb60fbf8e52426132f473221a49362091ce7a5e72f8aa41f8e0da4f25", size = 38375041 }, - { url = "https://files.pythonhosted.org/packages/17/03/390a1c5c61fd76b0fa4b3c5aa3bdd7e60f6c46f712924f1a9df5705ec046/scipy-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21e10b1dd56ce92fba3e786007322542361984f8463c6d37f6f25935a5a6ef52", size = 40597556 }, - { url = "https://files.pythonhosted.org/packages/4e/70/fa95b3ae026b97eeca58204a90868802e5155ac71b9d7bdee92b68115dd3/scipy-1.15.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5dff14e75cdbcf07cdaa1c7707db6017d130f0af9ac41f6ce443a93318d6c6e0", size = 42938505 }, - { url = "https://files.pythonhosted.org/packages/d6/07/427859116bdd71847c898180f01802691f203c3e2455a1eb496130ff07c5/scipy-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:f82fcf4e5b377f819542fbc8541f7b5fbcf1c0017d0df0bc22c781bf60abc4d8", size = 43909663 }, - { url = "https://files.pythonhosted.org/packages/8e/2e/7b71312da9c2dabff53e7c9a9d08231bc34d9d8fdabe88a6f1155b44591c/scipy-1.15.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:5bd8d27d44e2c13d0c1124e6a556454f52cd3f704742985f6b09e75e163d20d2", size = 41424362 }, - { url = "https://files.pythonhosted.org/packages/81/8c/ab85f1aa1cc200c796532a385b6ebf6a81089747adc1da7482a062acc46c/scipy-1.15.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:be3deeb32844c27599347faa077b359584ba96664c5c79d71a354b80a0ad0ce0", size = 32535910 }, - { url = "https://files.pythonhosted.org/packages/3b/9c/6f4b787058daa8d8da21ddff881b4320e28de4704a65ec147adb50cb2230/scipy-1.15.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:5eb0ca35d4b08e95da99a9f9c400dc9f6c21c424298a0ba876fdc69c7afacedf", size = 24809398 }, - { url = "https://files.pythonhosted.org/packages/16/2b/949460a796df75fc7a1ee1becea202cf072edbe325ebe29f6d2029947aa7/scipy-1.15.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:74bb864ff7640dea310a1377d8567dc2cb7599c26a79ca852fc184cc851954ac", size = 27918045 }, - { url = "https://files.pythonhosted.org/packages/5f/36/67fe249dd7ccfcd2a38b25a640e3af7e59d9169c802478b6035ba91dfd6d/scipy-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:667f950bf8b7c3a23b4199db24cb9bf7512e27e86d0e3813f015b74ec2c6e3df", size = 38332074 }, - { url = "https://files.pythonhosted.org/packages/fc/da/452e1119e6f720df3feb588cce3c42c5e3d628d4bfd4aec097bd30b7de0c/scipy-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395be70220d1189756068b3173853029a013d8c8dd5fd3d1361d505b2aa58fa7", size = 40588469 }, - { url = "https://files.pythonhosted.org/packages/7f/71/5f94aceeac99a4941478af94fe9f459c6752d497035b6b0761a700f5f9ff/scipy-1.15.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ce3a000cd28b4430426db2ca44d96636f701ed12e2b3ca1f2b1dd7abdd84b39a", size = 42965214 }, - { url = "https://files.pythonhosted.org/packages/af/25/caa430865749d504271757cafd24066d596217e83326155993980bc22f97/scipy-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:3fe1d95944f9cf6ba77aa28b82dd6bb2a5b52f2026beb39ecf05304b8392864b", size = 43896034 }, - { url = "https://files.pythonhosted.org/packages/d8/6e/a9c42d0d39e09ed7fd203d0ac17adfea759cba61ab457671fe66e523dbec/scipy-1.15.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c09aa9d90f3500ea4c9b393ee96f96b0ccb27f2f350d09a47f533293c78ea776", size = 41478318 }, - { url = "https://files.pythonhosted.org/packages/04/ee/e3e535c81828618878a7433992fecc92fa4df79393f31a8fea1d05615091/scipy-1.15.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:0ac102ce99934b162914b1e4a6b94ca7da0f4058b6d6fd65b0cef330c0f3346f", size = 32596696 }, - { url = "https://files.pythonhosted.org/packages/c4/5e/b1b0124be8e76f87115f16b8915003eec4b7060298117715baf13f51942c/scipy-1.15.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:09c52320c42d7f5c7748b69e9f0389266fd4f82cf34c38485c14ee976cb8cb04", size = 24870366 }, - { url = "https://files.pythonhosted.org/packages/14/36/c00cb73eefda85946172c27913ab995c6ad4eee00fa4f007572e8c50cd51/scipy-1.15.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:cdde8414154054763b42b74fe8ce89d7f3d17a7ac5dd77204f0e142cdc9239e9", size = 28007461 }, - { url = "https://files.pythonhosted.org/packages/68/94/aff5c51b3799349a9d1e67a056772a0f8a47db371e83b498d43467806557/scipy-1.15.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c9d8fc81d6a3b6844235e6fd175ee1d4c060163905a2becce8e74cb0d7554ce", size = 38068174 }, - { url = "https://files.pythonhosted.org/packages/b0/3c/0de11ca154e24a57b579fb648151d901326d3102115bc4f9a7a86526ce54/scipy-1.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fb57b30f0017d4afa5fe5f5b150b8f807618819287c21cbe51130de7ccdaed2", size = 40249869 }, - { url = "https://files.pythonhosted.org/packages/15/09/472e8d0a6b33199d1bb95e49bedcabc0976c3724edd9b0ef7602ccacf41e/scipy-1.15.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:491d57fe89927fa1aafbe260f4cfa5ffa20ab9f1435025045a5315006a91b8f5", size = 42629068 }, - { url = "https://files.pythonhosted.org/packages/ff/ba/31c7a8131152822b3a2cdeba76398ffb404d81d640de98287d236da90c49/scipy-1.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:900f3fa3db87257510f011c292a5779eb627043dd89731b9c461cd16ef76ab3d", size = 43621992 }, - { url = "https://files.pythonhosted.org/packages/2b/bf/dd68965a4c5138a630eeed0baec9ae96e5d598887835bdde96cdd2fe4780/scipy-1.15.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:100193bb72fbff37dbd0bf14322314fc7cbe08b7ff3137f11a34d06dc0ee6b85", size = 41441136 }, - { url = "https://files.pythonhosted.org/packages/ef/5e/4928581312922d7e4d416d74c416a660addec4dd5ea185401df2269ba5a0/scipy-1.15.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:2114a08daec64980e4b4cbdf5bee90935af66d750146b1d2feb0d3ac30613692", size = 32533699 }, - { url = "https://files.pythonhosted.org/packages/32/90/03f99c43041852837686898c66767787cd41c5843d7a1509c39ffef683e9/scipy-1.15.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:6b3e71893c6687fc5e29208d518900c24ea372a862854c9888368c0b267387ab", size = 24807289 }, - { url = "https://files.pythonhosted.org/packages/9d/52/bfe82b42ae112eaba1af2f3e556275b8727d55ac6e4932e7aef337a9d9d4/scipy-1.15.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:837299eec3d19b7e042923448d17d95a86e43941104d33f00da7e31a0f715d3c", size = 27929844 }, - { url = "https://files.pythonhosted.org/packages/f6/77/54ff610bad600462c313326acdb035783accc6a3d5f566d22757ad297564/scipy-1.15.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82add84e8a9fb12af5c2c1a3a3f1cb51849d27a580cb9e6bd66226195142be6e", size = 38031272 }, - { url = "https://files.pythonhosted.org/packages/f1/26/98585cbf04c7cf503d7eb0a1966df8a268154b5d923c5fe0c1ed13154c49/scipy-1.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:070d10654f0cb6abd295bc96c12656f948e623ec5f9a4eab0ddb1466c000716e", size = 40210217 }, - { url = "https://files.pythonhosted.org/packages/fd/3f/3d2285eb6fece8bc5dbb2f9f94d61157d61d155e854fd5fea825b8218f12/scipy-1.15.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:55cc79ce4085c702ac31e49b1e69b27ef41111f22beafb9b49fea67142b696c4", size = 42587785 }, - { url = "https://files.pythonhosted.org/packages/48/7d/5b5251984bf0160d6533695a74a5fddb1fa36edd6f26ffa8c871fbd4782a/scipy-1.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:c352c1b6d7cac452534517e022f8f7b8d139cd9f27e6fbd9f3cbd0bfd39f5bef", size = 43640439 }, - { url = "https://files.pythonhosted.org/packages/e7/b8/0e092f592d280496de52e152582030f8a270b194f87f890e1a97c5599b81/scipy-1.15.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0458839c9f873062db69a03de9a9765ae2e694352c76a16be44f93ea45c28d2b", size = 41619862 }, - { url = "https://files.pythonhosted.org/packages/f6/19/0b6e1173aba4db9e0b7aa27fe45019857fb90d6904038b83927cbe0a6c1d/scipy-1.15.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:af0b61c1de46d0565b4b39c6417373304c1d4f5220004058bdad3061c9fa8a95", size = 32610387 }, - { url = "https://files.pythonhosted.org/packages/e7/02/754aae3bd1fa0f2479ade3cfdf1732ecd6b05853f63eee6066a32684563a/scipy-1.15.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:71ba9a76c2390eca6e359be81a3e879614af3a71dfdabb96d1d7ab33da6f2364", size = 24883814 }, - { url = "https://files.pythonhosted.org/packages/1f/ac/d7906201604a2ea3b143bb0de51b3966f66441ba50b7dc182c4505b3edf9/scipy-1.15.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14eaa373c89eaf553be73c3affb11ec6c37493b7eaaf31cf9ac5dffae700c2e0", size = 27944865 }, - { url = "https://files.pythonhosted.org/packages/84/9d/8f539002b5e203723af6a6f513a45e0a7671e9dabeedb08f417ac17e4edc/scipy-1.15.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f735bc41bd1c792c96bc426dece66c8723283695f02df61dcc4d0a707a42fc54", size = 39883261 }, - { url = "https://files.pythonhosted.org/packages/97/c0/62fd3bab828bcccc9b864c5997645a3b86372a35941cdaf677565c25c98d/scipy-1.15.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2722a021a7929d21168830790202a75dbb20b468a8133c74a2c0230c72626b6c", size = 42093299 }, - { url = "https://files.pythonhosted.org/packages/e4/1f/5d46a8d94e9f6d2c913cbb109e57e7eed914de38ea99e2c4d69a9fc93140/scipy-1.15.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bc7136626261ac1ed988dca56cfc4ab5180f75e0ee52e58f1e6aa74b5f3eacd5", size = 43181730 }, -] - [[package]] name = "sentry-sdk" version = "2.20.0" @@ -2349,12 +1614,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303 }, ] -[[package]] -name = "sqlitedict" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/12/9a/7620d1e9dcb02839ed6d4b14064e609cdd7a8ae1e47289aa0456796dd9ca/sqlitedict-2.1.0.tar.gz", hash = "sha256:03d9cfb96d602996f1d4c2db2856f1224b96a9c431bdd16e78032a72940f9e8c", size = 21846 } - [[package]] name = "sympy" version = "1.13.1" @@ -2367,46 +1626,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b2/fe/81695a1aa331a842b582453b605175f419fe8540355886031328089d840a/sympy-1.13.1-py3-none-any.whl", hash = "sha256:db36cdc64bf61b9b24578b6f7bab1ecdd2452cf008f34faa33776680c26d66f8", size = 6189177 }, ] -[[package]] -name = "tabledata" -version = "1.3.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "dataproperty" }, - { name = "typepy" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b2/35/171c8977162f1163368406deddde4c59673b62bd0cb2f34948a02effb075/tabledata-1.3.4.tar.gz", hash = "sha256:e9649cab129d718f3bff4150083b77f8a78c30f6634a30caf692b10fdc60cb97", size = 25074 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/64/fa4160151976ee4b2cf0c1217a99443ffaeb991956feddfeac9eee9952f8/tabledata-1.3.4-py3-none-any.whl", hash = "sha256:1f56e433bfdeb89f4487abfa48c4603a3b07c5d3a3c7e05ff73dd018c24bd0d4", size = 11820 }, -] - -[[package]] -name = "tabulate" -version = "0.9.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", size = 81090 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252 }, -] - -[[package]] -name = "tcolorpy" -version = "0.1.7" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/80/cc/44f2d81d8f9093aad81c3467a5bf5718d2b5f786e887b6e4adcfc17ec6b9/tcolorpy-0.1.7.tar.gz", hash = "sha256:0fbf6bf238890bbc2e32662aa25736769a29bf6d880328f310c910a327632614", size = 299437 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/05/a2/ed023f2edd1e011b4d99b6727bce8253842d66c3fbf9ed0a26fc09a92571/tcolorpy-0.1.7-py3-none-any.whl", hash = "sha256:26a59d52027e175a37e0aba72efc99dda43f074db71f55b316d3de37d3251378", size = 8096 }, -] - -[[package]] -name = "threadpoolctl" -version = "3.5.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/55/b5148dcbf72f5cde221f8bfe3b6a540da7aa1842f6b491ad979a6c8b84af/threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107", size = 41936 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467", size = 18414 }, -] - [[package]] name = "tokenizers" version = "0.21.0" @@ -2471,26 +1690,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257 }, ] -[[package]] -name = "toposolve" -version = "0.1.17" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pybind11" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/51/5d/e24dd0bbbf9f508d9aa11120fdcc7b0e4caf1c1d401359495636470e0431/toposolve-0.1.17.tar.gz", hash = "sha256:539a1301ed36df5e2fbd0d3e1806f2c6cd7840c3527938647a61b0a7b53689f9", size = 5437 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/02/91db85f3ab2822377e90357b23783c5a1408cdb7c36f9f94a7d3db6783cc/toposolve-0.1.17-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cc1a33e2438c29a29ccac4c957c6ffaf035b239b34f0e369f4665ed255b413c9", size = 125471 }, - { url = "https://files.pythonhosted.org/packages/ed/4c/90f3b00b1f381ead4394cb1a1391b8dcd2a043490b2f77ebf71609e24b91/toposolve-0.1.17-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dda111813910145f97df62e34d30ad38c39df45539f129b57df0e6c51e52902b", size = 125548 }, - { url = "https://files.pythonhosted.org/packages/61/46/062d43764ac1cf6fff3edde81295846d6191c43a103550ddf27472da49ca/toposolve-0.1.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141ba41c36e49ecd2280517031f4ef8c2c131b4fb93b85f38c10fead17974b7f", size = 95148 }, - { url = "https://files.pythonhosted.org/packages/58/c0/854d8b5cc5cb23d99720c28908e5eff587e1ec25c797ceac219bf5f0f3a7/toposolve-0.1.17-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8b13cdf80823dd86dd75bda7f94418b5b093cbb4989a4a6f0956f2595b8a7be1", size = 128253 }, - { url = "https://files.pythonhosted.org/packages/b9/ab/9e062fe4e58729594eda886ed464e4839232162e1ddbd0e36b5bcb61d664/toposolve-0.1.17-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:baa9a76f54f295d8beb06559bd90c117c9a0c2f84aa4c9c661fb283a7529fd68", size = 128431 }, - { url = "https://files.pythonhosted.org/packages/4f/3b/b6e6c863d06f8cb533068224f954b3b49722ba88cb6a0861fd62aefbc151/toposolve-0.1.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac94551501ca671d428c7ad435a50da5cd33f832c432c87e676f3ab8310bf19d", size = 96749 }, - { url = "https://files.pythonhosted.org/packages/70/1e/7028dbd313ba931c086ecb24856566fb34cd159d3bd305cf05fa6b66bb3b/toposolve-0.1.17-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e158c666e1492832dba077eaea9c4bcd88fbb3f45b8bfde8a8f545d5de8212e2", size = 127421 }, - { url = "https://files.pythonhosted.org/packages/44/3b/a51dd6d756076853f1a6d18cc20761126b613a28a5ff9e37a113a546477b/toposolve-0.1.17-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:17666bdb0078cddcffc89cb9e7c0f0ce35007597b8a309f7b29c6a39a0fb6d8a", size = 127540 }, - { url = "https://files.pythonhosted.org/packages/1e/8e/0d7b43f5c751490745bd25cf2cf1f1285627749e3ebfd2da131a9bbdac8c/toposolve-0.1.17-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b238dadaced7fe98638fcb595596619104724a66ba1205914d0faebb2a2081b", size = 95545 }, -] - [[package]] name = "torch" version = "2.5.1" @@ -2533,14 +1732,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/69/72/20cb30f3b39a9face296491a86adb6ff8f1a47a897e4d14667e6cf89d5c3/torch-2.5.1-cp313-cp313-manylinux1_x86_64.whl", hash = "sha256:9b61edf3b4f6e3b0e0adda8b3960266b9009d02b37555971f4d1c8f7a05afed7", size = 906393265 }, ] -[[package]] -name = "torch-shampoo" -version = "1.0.0" -source = { git = "https://github.com/facebookresearch/optimizers.git?rev=main#9c5700ad5ee81c28dc565c1a49c4b940da28eb8d" } -dependencies = [ - { name = "torch" }, -] - [[package]] name = "torchdata" version = "0.10.1" @@ -2566,19 +1757,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, ] -[[package]] -name = "tqdm-multiprocess" -version = "0.0.11" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama" }, - { name = "tqdm" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b4/1e/de81bd0f6cb2b61d6ee7ccbf304d99a42a0f53879481536dfb3288ee9a87/tqdm-multiprocess-0.0.11.tar.gz", hash = "sha256:a74002a1222ea9cbe8cdc9bd460108c6009be359621fbee9b92d0515d4d180f7", size = 8082 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/25/7e/0d889fc6c84e3df6b69aaafe893fc77f69b3d968ac9ce574d1c62c688050/tqdm_multiprocess-0.0.11-py3-none-any.whl", hash = "sha256:3ebdf03e7a675150fa0bbceaa9c3c64b8cb556e9ffafa4fe6c078e51820524aa", size = 9817 }, -] - [[package]] name = "transformers" version = "4.48.1" @@ -2605,7 +1783,7 @@ name = "triton" version = "3.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "filelock" }, + { name = "filelock", marker = "python_full_version < '3.13' and sys_platform == 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/98/29/69aa56dc0b2eb2602b553881e34243475ea2afd9699be042316842788ff5/triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b0dd10a925263abbe9fa37dcde67a5e9b2383fc269fdf59f5657cac38c5d1d8", size = 209460013 }, @@ -2613,25 +1791,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/78/eb/65f5ba83c2a123f6498a3097746607e5b2f16add29e36765305e4ac7fdd8/triton-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8182f42fd8080a7d39d666814fa36c5e30cc00ea7eeeb1a2983dbb4c99a0fdc", size = 209551444 }, ] -[[package]] -name = "typepy" -version = "1.3.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mbstrdecoder" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/79/59/4c39942077d7de285f762a91024dbda731be693591732977358f77d120fb/typepy-1.3.4.tar.gz", hash = "sha256:89c1f66de6c6133209c43a94d23431d320ba03ef5db18f241091ea594035d9de", size = 39558 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/31/e393c3830bdedd01735bd195c85ac3034b6bcaf6c18142bab60a4047ca36/typepy-1.3.4-py3-none-any.whl", hash = "sha256:d5ed3e0c7f49521bff0603dd08cf8d453371cf68d65a29d3d0038552ccc46e2e", size = 31449 }, -] - -[package.optional-dependencies] -datetime = [ - { name = "packaging" }, - { name = "python-dateutil" }, - { name = "pytz" }, -] - [[package]] name = "typing-extensions" version = "4.12.2" @@ -2706,12 +1865,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/48/20/945de2a62fbbb9193725ebbbb82887aea7ea9817a3c9d1bd4206e0d9c011/wandb-0.19.5-py3-none-win_amd64.whl", hash = "sha256:503b575c1c469e2f00caa1b2a02211bad8401c2376b43ef976b7fc88f385fb77", size = 19730876 }, ] -[[package]] -name = "word2number" -version = "1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4a/29/a31940c848521f0725f0df6b25dca8917f13a2025b0e8fcbe5d0457e45e6/word2number-1.1.zip", hash = "sha256:70e27a5d387f67b04c71fbb7621c05930b19bfd26efd6851e6e0f9969dcde7d0", size = 9723 } - [[package]] name = "xxhash" version = "3.5.0" @@ -2869,29 +2022,16 @@ version = "0.1.0" source = { editable = "." } dependencies = [ { name = "datasets" }, - { name = "fsspec", extra = ["gcs"] }, - { name = "liger-kernel-nightly" }, { name = "ninja" }, { name = "numpy" }, - { name = "psutil" }, { name = "pyarrow" }, { name = "pydantic-config" }, { name = "setuptools" }, - { name = "toposolve" }, { name = "torch" }, - { name = "torch-shampoo" }, { name = "torchdata" }, { name = "transformers" }, - { name = "zstandard" }, -] - -[package.optional-dependencies] -all = [ - { name = "aiohttp" }, - { name = "asyncio" }, - { name = "lm-eval" }, - { name = "requests" }, { name = "wandb" }, + { name = "zstandard" }, ] [package.dev-dependencies] @@ -2904,25 +2044,16 @@ dev = [ [package.metadata] requires-dist = [ - { name = "aiohttp", marker = "extra == 'all'", specifier = ">=3.10.5" }, - { name = "asyncio", marker = "extra == 'all'", specifier = ">=3.4.3" }, { name = "datasets", specifier = ">=3.0.0" }, - { name = "fsspec", extras = ["gcs"], specifier = ">=2024.3.1" }, - { name = "liger-kernel-nightly", specifier = ">=0.5.2.dev20250122195349" }, - { name = "lm-eval", marker = "extra == 'all'" }, { name = "ninja" }, { name = "numpy" }, - { name = "psutil" }, { name = "pyarrow" }, { name = "pydantic-config", git = "https://github.com/samsja/pydantic_config.git?rev=b7becc3" }, - { name = "requests", marker = "extra == 'all'", specifier = ">=2.32.3" }, { name = "setuptools" }, - { name = "toposolve", specifier = ">=0.1.17" }, { name = "torch", specifier = "==2.5.1" }, - { name = "torch-shampoo", git = "https://github.com/facebookresearch/optimizers.git?rev=main" }, { name = "torchdata", specifier = ">=0.8.0" }, { name = "transformers", specifier = ">=4.44.2" }, - { name = "wandb", marker = "extra == 'all'" }, + { name = "wandb" }, { name = "zstandard" }, ] From db898449e88abee97fcab0043a53b7e2efc7c4c7 Mon Sep 17 00:00:00 2001 From: Sami Jaghouar Date: Wed, 12 Feb 2025 21:00:02 -0800 Subject: [PATCH 03/13] use python 3.10 Signed-off-by: Sami Jaghouar --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 8d6ad358..a18a6675 100755 --- a/install.sh +++ b/install.sh @@ -41,7 +41,7 @@ main() { fi log_info "Creating virtual environment..." - uv venv + uv venv --python 3.10 log_info "Activating virtual environment..." source .venv/bin/activate From 746be967576ac3624ab636d7c363f50a62b837fa Mon Sep 17 00:00:00 2001 From: Sami Jaghouar Date: Wed, 12 Feb 2025 21:02:46 -0800 Subject: [PATCH 04/13] fix install Signed-off-by: Sami Jaghouar --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index a18a6675..e89688f6 100755 --- a/install.sh +++ b/install.sh @@ -27,7 +27,7 @@ main() { sudo apt install iperf -y log_info "Cloning repository..." - git clone https://github.com/PrimeIntellect-ai/prime.git + git clone https://github.com/samsja/prime.git log_info "Entering project directory..." cd prime From 725285fcf2a7e3cc94cab008517a8a428e8a11f4 Mon Sep 17 00:00:00 2001 From: sami jaghouar Date: Thu, 13 Feb 2025 06:39:28 +0000 Subject: [PATCH 05/13] refactor remove iuseless stuff Signed-off-by: sami jaghouar --- configs/10B/H100.toml | 41 -- configs/10B/H100_cooldown.toml | 40 -- configs/10B/H100_devel.toml | 32 - configs/13B/H100.toml | 17 - configs/7B_diloco/H100.toml | 25 - configs/debug/diloco.toml | 19 - configs/debug/normal.toml | 3 +- src/zeroband/C/__init__.py | 0 src/zeroband/C/collectives.py | 35 -- src/zeroband/C/compression.py | 46 -- src/zeroband/C/csrc/collectives.cpp | 249 -------- src/zeroband/C/csrc/compression.cpp | 155 ----- src/zeroband/checkpoint.py | 563 ----------------- src/zeroband/collectives.py | 192 ------ src/zeroband/comms.py | 609 ------------------- src/zeroband/compression.py | 70 --- src/zeroband/config.py | 275 --------- src/zeroband/data.py | 22 +- src/zeroband/diloco.py | 215 ------- src/zeroband/{utils => }/logger.py | 27 +- src/zeroband/loss.py | 87 --- src/zeroband/models/llama/__init__.py | 20 +- src/zeroband/models/llama/model.py | 5 +- src/zeroband/optimizers.py | 55 -- src/zeroband/train.py | 588 ------------------ src/zeroband/{utils/__init__.py => utils.py} | 96 +-- src/zeroband/utils/activation_ckpt.py | 24 - src/zeroband/utils/ip.py | 35 -- src/zeroband/utils/metric_logger.py | 49 -- src/zeroband/utils/monitor.py | 136 ----- src/zeroband/utils/profiler.py | 60 -- src/zeroband/utils/state_dict_send_recv.py | 165 ----- src/zeroband/utils/stopwatch.py | 130 ---- src/zeroband/utils/wget.py | 20 - src/zeroband/{utils => }/world_info.py | 0 train_fsdp.py | 250 ++++++++ uv.lock | 275 ++++----- 37 files changed, 446 insertions(+), 4184 deletions(-) delete mode 100644 configs/10B/H100.toml delete mode 100644 configs/10B/H100_cooldown.toml delete mode 100644 configs/10B/H100_devel.toml delete mode 100644 configs/13B/H100.toml delete mode 100644 configs/7B_diloco/H100.toml delete mode 100644 configs/debug/diloco.toml delete mode 100644 src/zeroband/C/__init__.py delete mode 100644 src/zeroband/C/collectives.py delete mode 100644 src/zeroband/C/compression.py delete mode 100644 src/zeroband/C/csrc/collectives.cpp delete mode 100644 src/zeroband/C/csrc/compression.cpp delete mode 100644 src/zeroband/checkpoint.py delete mode 100644 src/zeroband/collectives.py delete mode 100644 src/zeroband/comms.py delete mode 100644 src/zeroband/compression.py delete mode 100644 src/zeroband/config.py delete mode 100644 src/zeroband/diloco.py rename src/zeroband/{utils => }/logger.py (51%) delete mode 100644 src/zeroband/loss.py delete mode 100644 src/zeroband/optimizers.py delete mode 100644 src/zeroband/train.py rename src/zeroband/{utils/__init__.py => utils.py} (61%) delete mode 100644 src/zeroband/utils/activation_ckpt.py delete mode 100644 src/zeroband/utils/ip.py delete mode 100644 src/zeroband/utils/metric_logger.py delete mode 100644 src/zeroband/utils/monitor.py delete mode 100644 src/zeroband/utils/profiler.py delete mode 100644 src/zeroband/utils/state_dict_send_recv.py delete mode 100644 src/zeroband/utils/stopwatch.py delete mode 100644 src/zeroband/utils/wget.py rename src/zeroband/{utils => }/world_info.py (100%) create mode 100644 train_fsdp.py diff --git a/configs/10B/H100.toml b/configs/10B/H100.toml deleted file mode 100644 index d743cc8a..00000000 --- a/configs/10B/H100.toml +++ /dev/null @@ -1,41 +0,0 @@ -name_model = "10B" -project = "10B_zero_band" -wandb_resume = false - -[train] -micro_bs = 1 -ac_ckpt = true - -[optim] -sched_type = "wsd-sqrt" -batch_size = 128 #1M tokens bs -warmup_steps = 1000 -total_steps = 1_000_000_000_000 - - -z_loss = true - -[optim.optim] -lr = 7.5e-5 -betas1 = 0.9 -betas2 = 0.95 -weight_decay = 0.1 - -[data] -seq_length = 8192 -dataset_name_or_paths = "/data/datasets/fineweb-edu,/data/datasets/fineweb,/data/datasets/StackV1-popular,/data/datasets/dclm-baseline-1.0-parquet,/data/datasets/open-web-math" -dataset_ratio = "55:10:20:10:5" -num_workers = 4 -reverse_data_files = true -split_by_data_rank = false # the 10b training assume that data was already split by datarank. Keeping this for backward compatibility - - -[diloco] -inner_steps = 100 -compression = "uint8" - -[ckpt] -interval = 100 -topk = 40 -path = "/data/10B" -remote_data_path = "/data/10B_data_ckpt" diff --git a/configs/10B/H100_cooldown.toml b/configs/10B/H100_cooldown.toml deleted file mode 100644 index c443e0ed..00000000 --- a/configs/10B/H100_cooldown.toml +++ /dev/null @@ -1,40 +0,0 @@ -name_model = "10B" -project = "10B_zero_band" -wandb_resume = false - -[train] -micro_bs = 1 -ac_ckpt = true - -[optim] -sched_type = "wsd-sqrt" -batch_size = 128 #1M tokens bs -warmup_steps = 1000 -stable_steps = 74700 -total_steps = 90400 - -z_loss = true - -[optim.optim] -lr = 7.5e-5 -betas1 = 0.9 -betas2 = 0.95 -weight_decay = 0.1 - -[data] -seq_length = 8192 -dataset_name_or_paths = "/data/datasets/fineweb-edu,/data/datasets/fineweb,/data/datasets/StackV1-popular" -dataset_ratio = "80:10:10" -num_workers = 4 -reverse_data_files = false -split_by_data_rank = false # the 10b training assume that data was already split by datarank. Keeping this for backward compatibility - -[diloco] -inner_steps = 100 -compression = "uint8" - -[ckpt] -interval = 100 -topk = 40 -path = "/data/10B" -remote_data_path = "/data/10B_data_ckpt" diff --git a/configs/10B/H100_devel.toml b/configs/10B/H100_devel.toml deleted file mode 100644 index 45529fc0..00000000 --- a/configs/10B/H100_devel.toml +++ /dev/null @@ -1,32 +0,0 @@ -name_model = "10B" # "26B" -type_model = "llama2" - -project = "debug_I2_zero_band" -run_name = "testing :3" - -metric_logger_type = "dummy" # "wandb" -log_level = "DEBUG" - - -[train] -micro_bs = 1 -ac_ckpt = true -torch_profiler = false -torch_compile = true -fused_linear_ce = true -fsdp_cpu_offload = true - -[train.memory_profiler] -freq = 1 -snapshot_dir = "logs/" - -[optim] -sched_type = "wsd-sqrt" -batch_size = 128 -warmup_steps = 0 -total_steps = 1 # 2_000 -z_loss = true - -[data] -seq_length = 8192 -num_workers = 4 diff --git a/configs/13B/H100.toml b/configs/13B/H100.toml deleted file mode 100644 index 4bfc3e05..00000000 --- a/configs/13B/H100.toml +++ /dev/null @@ -1,17 +0,0 @@ -name_model = "13B" -project = "debug_13B_zero_band" - -[train] -micro_bs = 1 -ac_ckpt = true - -[optim] -batch_size = 1024 #2M tokens bs -warmup_steps = 1000 -total_steps = 88_000 - -[optim.optim] -lr = 3e-4 - -[data] -seq_length = 2048 \ No newline at end of file diff --git a/configs/7B_diloco/H100.toml b/configs/7B_diloco/H100.toml deleted file mode 100644 index b6a84d2c..00000000 --- a/configs/7B_diloco/H100.toml +++ /dev/null @@ -1,25 +0,0 @@ -name_model = "7B" -project = "debug_7B_zero_band" -type_model = "llama2" - -[train] -micro_bs = 1 - -[optim] -batch_size = 1024 #2M tokens bs -warmup_steps = 1000 -total_steps = 88_000 - -[optim.optim] -lr = 3e-4 - -[data] -seq_length = 2048 - -[diloco] -inner_steps = 50 - -[ckpt] -path = "/data/outputs_1b_diloco_50" -interval = 1000 - diff --git a/configs/debug/diloco.toml b/configs/debug/diloco.toml deleted file mode 100644 index c98e4603..00000000 --- a/configs/debug/diloco.toml +++ /dev/null @@ -1,19 +0,0 @@ -name_model = "debugmodel" -project = "/tmp/debug" -metric_logger_type = "dummy" -type_model = "llama2" - -[train] -micro_bs = 8 - -[optim] -batch_size = 16 -warmup_steps = 10 -total_steps = 4 - -[data] -fake = true - -[diloco] -inner_steps = 5 - diff --git a/configs/debug/normal.toml b/configs/debug/normal.toml index cd64084c..907e2e9f 100644 --- a/configs/debug/normal.toml +++ b/configs/debug/normal.toml @@ -1,6 +1,5 @@ name_model = "debugmodel" -project = "/tmp/debug" -metric_logger_type = "dummy" +wandb = false type_model = "llama2" [train] diff --git a/src/zeroband/C/__init__.py b/src/zeroband/C/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/zeroband/C/collectives.py b/src/zeroband/C/collectives.py deleted file mode 100644 index 8372d121..00000000 --- a/src/zeroband/C/collectives.py +++ /dev/null @@ -1,35 +0,0 @@ -import os -from typing import Optional -import torch -import torch.distributed as dist -from torch.utils import cpp_extension -from pathlib import Path -from torch.testing._internal.distributed.fake_pg import FakeProcessGroup - - -parent = Path(__file__).parent -INCLUDES = [str(parent / "csrc"), str(parent.parent.parent.parent / "third_party/gloo")] -COLLECTIVES_CSRC_PATH = parent / "csrc" / "collectives.cpp" - -collectives_ops = cpp_extension.load( - name="collectives", - sources=[COLLECTIVES_CSRC_PATH], - extra_cflags=["-O3", "-DUSE_C10D_GLOO"], - verbose=False if os.environ.get("ZERO_BAND_LOG_LEVEL") == "DEBUG" else True, - extra_include_paths=INCLUDES, -) - - -def ring_allreduce( - tensor: torch.Tensor, - op: dist.ReduceOp = dist.ReduceOp.SUM, - group: Optional[dist.ProcessGroup] = None, -) -> None: - if group is None: - group = dist.distributed_c10d._get_default_group() - if isinstance(group, dist.distributed_c10d.ProcessGroupGloo): - collectives_ops.ring_allreduce_gloo(tensor, op, group) - elif isinstance(group, FakeProcessGroup): - return - else: - collectives_ops.ring_allreduce(tensor, op, group) diff --git a/src/zeroband/C/compression.py b/src/zeroband/C/compression.py deleted file mode 100644 index f2e3cc21..00000000 --- a/src/zeroband/C/compression.py +++ /dev/null @@ -1,46 +0,0 @@ -from typing import Tuple -import torch -from torch.utils.cpp_extension import load -from pathlib import Path - -COMPRESS_CSRC_PATH = Path(__file__).parent / "csrc" / "compression.cpp" - -compress_ops = load(name="compression", sources=[COMPRESS_CSRC_PATH], extra_cflags=["-O3"], verbose=False) - - -def uniform_8bit_quantize(tensor: torch.Tensor, inplace: bool = True) -> Tuple[torch.Tensor, torch.Tensor]: - """Quantize a tensor to 8-bit integers - Args: - tensor (torch.Tensor): The tensor to quantize - inplace (bool): Whether the operation is allowed to modify the input tensor - Returns: - Tuple[torch.Tensor, torch.Tensor]: The quantized tensor and the lookup table - """ - return compress_ops.uniform_8bit_quantize(tensor, inplace) - - -def average_buckets(tensor: torch.Tensor, quant_weight: torch.Tensor, n_bins: int) -> torch.Tensor: - """Return the average value in each bin - Args: - tensor (torch.Tensor): The tensor to average - quant_weight (torch.Tensor): The tensor of indices - n_bins (int): The number of bins - Returns: - torch.Tensor: The average value in each bin - """ - return compress_ops.average_buckets(tensor, quant_weight, n_bins) - - -def quantize_per_tensor_uint8(tensor: torch.Tensor, scale: float, zero_point: int) -> torch.Tensor: - """Quantize a tensor to 8-bit integers - - quantized_value = clamp((round(input / scale) + zero_point), 0, 255) - - Args: - tensor (torch.Tensor): The tensor to quantize - scale (float): The scale of the quantization - zero_point (int): The zero point of the quantization - Returns: - torch.Tensor: The quantized tensor - """ - return compress_ops.quantize_per_tensor_uint8(tensor, scale, zero_point) diff --git a/src/zeroband/C/csrc/collectives.cpp b/src/zeroband/C/csrc/collectives.cpp deleted file mode 100644 index ab7777fc..00000000 --- a/src/zeroband/C/csrc/collectives.cpp +++ /dev/null @@ -1,249 +0,0 @@ -#include -#include -#include -#include - -constexpr int BUFFER_COUNT = 2; - -template -void fast_index_add_omp(T* output, const T* lookup_table, const uint8_t* indices, int64_t n) { - #pragma omp parallel for - for (int64_t i = 0; i < n; ++i) { - output[i] += lookup_table[indices[i]]; - } -} - -template -void fast_index_set_omp(T* output, const T* lookup_table, const uint8_t* indices, int64_t n) { - #pragma omp parallel for - for (int64_t i = 0; i < n; ++i) { - output[i] = lookup_table[indices[i]]; - } -} - -inline size_t get_num_threads() { - return std::max(1u, std::thread::hardware_concurrency()); -} - -template -void fast_index_add_worker(T* output, const T* lookup_table, const uint8_t* indices, int64_t start, int64_t end) { - for (int64_t i = start; i < end; ++i) { - output[i] += lookup_table[indices[i]]; - } -} - -template -void fast_index_add(T* output, const T* lookup_table, const uint8_t* indices, int64_t n) { - size_t num_threads = get_num_threads(); - std::vector threads; - int64_t chunk_size = n / num_threads; - - for (size_t i = 0; i < num_threads; ++i) { - int64_t start = i * chunk_size; - int64_t end = (i == num_threads - 1) ? n : (i + 1) * chunk_size; - threads.emplace_back(fast_index_add_worker, output, lookup_table, indices, start, end); - } - - for (auto& thread : threads) { - thread.join(); - } -} - -template -void fast_index_set_worker(T* output, const T* lookup_table, const uint8_t* indices, int64_t start, int64_t end) { - for (int64_t i = start; i < end; ++i) { - output[i] = lookup_table[indices[i]]; - } -} - -template -void fast_index_set(T* output, const T* lookup_table, const uint8_t* indices, int64_t n) { - size_t num_threads = get_num_threads(); - std::vector threads; - int64_t chunk_size = n / num_threads; - - for (size_t i = 0; i < num_threads; ++i) { - int64_t start = i * chunk_size; - int64_t end = (i == num_threads - 1) ? n : (i + 1) * chunk_size; - threads.emplace_back(fast_index_set_worker, output, lookup_table, indices, start, end); - } - - for (auto& thread : threads) { - thread.join(); - } -} - -template -void ring_allreduce( - torch::Tensor& tensor, - c10d::ReduceOp op, - T* group -) { - TORCH_CHECK(group != nullptr, "Group must be provided"); - TORCH_CHECK(op == c10d::ReduceOp::SUM || op == c10d::ReduceOp::AVG, "Unsupported reduce operation. Only SUM and AVG are supported."); - - int world_size = group->getSize(); - int rank = group->getRank(); - - // Divide the tensor into chunks - auto flat_tensor = tensor.view({tensor.numel()}); - std::vector chunks = flat_tensor.chunk(world_size * BUFFER_COUNT); - - // Temporary buffers for transferring data - int num_buffers = BUFFER_COUNT * world_size; - std::vector recv_buffer; - std::vector send_buffer; - std::vector send_lookup_buffer; - std::vector recv_lookup_buffer; - std::vector> send_lookup_work(BUFFER_COUNT); - std::vector> recv_lookup_work(BUFFER_COUNT); - std::vector> send_work(BUFFER_COUNT); - std::vector> recv_work(BUFFER_COUNT); - - for (int i = 0; i < BUFFER_COUNT; ++i) { - recv_buffer.push_back(torch::empty_like(chunks[0], torch::kUInt8)); - send_buffer.push_back(torch::Tensor()); - send_lookup_buffer.push_back(torch::Tensor()); - recv_lookup_buffer.push_back(torch::empty({256}, chunks[0].options())); - } - - // Send and receive ranks - int send_rank = (rank + 1) % world_size; - int recv_rank = (rank - 1 + world_size) % world_size; - - // Reduce-scatter loop - for (int step = 1; step <= world_size * BUFFER_COUNT; ++step) { - int send_chunk = (rank * BUFFER_COUNT - step + num_buffers) % num_buffers; - - if (send_work[step % BUFFER_COUNT]) { - send_work[step % BUFFER_COUNT]->wait(); - recv_work[step % BUFFER_COUNT]->wait(); - send_lookup_work[step % BUFFER_COUNT]->wait(); - recv_lookup_work[step % BUFFER_COUNT]->wait(); - - auto& chunk = chunks[send_chunk]; - auto& lookup = recv_lookup_buffer[step % BUFFER_COUNT]; - auto& indices = recv_buffer[step % BUFFER_COUNT]; - - fast_index_add_omp( - static_cast(chunk.data_ptr()), - static_cast(lookup.data_ptr()), - static_cast(indices.data_ptr()), - chunk.numel() - ); - } - - if (step <= (world_size - 1) * BUFFER_COUNT) { - // Quantize and send - std::tie(send_buffer[step % BUFFER_COUNT], send_lookup_buffer[step % BUFFER_COUNT]) = uniform_8bit_quantize(chunks[send_chunk], false); - - std::vector send_tensors = {send_lookup_buffer[step % BUFFER_COUNT]}; - send_lookup_work[step % BUFFER_COUNT] = group->send(send_tensors, send_rank, step + 1000); - - std::vector recv_tensors = {recv_lookup_buffer[step % BUFFER_COUNT]}; - recv_lookup_work[step % BUFFER_COUNT] = group->recv(recv_tensors, recv_rank, step + 1000); - - send_tensors = {send_buffer[step % BUFFER_COUNT]}; - send_work[step % BUFFER_COUNT] = group->send(send_tensors, send_rank, step); - - recv_tensors = {recv_buffer[step % BUFFER_COUNT]}; - recv_work[step % BUFFER_COUNT] = group->recv(recv_tensors, recv_rank, step); - } - } - - // TODO: Interleave these with the previous loop? - if (op == c10d::ReduceOp::AVG) { - for (int i = 0; i < BUFFER_COUNT; ++i) { - chunks[i + rank * BUFFER_COUNT].div_(world_size); - } - } - - for (int i = 0; i < BUFFER_COUNT; ++i) { - std::tie(send_buffer[0], send_lookup_buffer[0]) = uniform_8bit_quantize(chunks[i + rank * BUFFER_COUNT], true); - auto& chunk = chunks[i + rank * BUFFER_COUNT]; - auto& lookup = send_lookup_buffer[0]; - auto& indices = send_buffer[0]; - - fast_index_set_omp( - static_cast(chunk.data_ptr()), - static_cast(lookup.data_ptr()), - static_cast(indices.data_ptr()), - chunk.numel() - ); - } - - // Reset buffers for the second phase - recv_buffer.clear(); - send_buffer.clear(); - send_lookup_buffer.clear(); - recv_lookup_buffer.clear(); - for (int i = 0; i < BUFFER_COUNT; ++i) { - recv_buffer.push_back(torch::empty_like(chunks[0], torch::kUInt8)); - send_buffer.push_back(torch::Tensor()); - send_lookup_buffer.push_back(torch::Tensor()); - recv_lookup_buffer.push_back(torch::empty({256}, chunks[0].options())); - } - std::fill(send_work.begin(), send_work.end(), nullptr); - std::fill(recv_work.begin(), recv_work.end(), nullptr); - std::fill(send_lookup_work.begin(), send_lookup_work.end(), nullptr); - std::fill(recv_lookup_work.begin(), recv_lookup_work.end(), nullptr); - - for (int step = 1; step <= world_size * BUFFER_COUNT; ++step) { - int send_chunk = (rank * BUFFER_COUNT + BUFFER_COUNT - step + num_buffers) % num_buffers; - - if (send_work[step % BUFFER_COUNT]) { - send_work[step % BUFFER_COUNT]->wait(); - recv_work[step % BUFFER_COUNT]->wait(); - send_lookup_work[step % BUFFER_COUNT]->wait(); - recv_lookup_work[step % BUFFER_COUNT]->wait(); - - auto& chunk = chunks[send_chunk]; - auto& lookup = recv_lookup_buffer[step % BUFFER_COUNT]; - auto& indices = recv_buffer[step % BUFFER_COUNT]; - - fast_index_set_omp( - static_cast(chunk.data_ptr()), - static_cast(lookup.data_ptr()), - static_cast(indices.data_ptr()), - chunk.numel() - ); - } - - if (step <= (world_size - 1) * BUFFER_COUNT) { - // Quantize and send - // todo(jackmin): this quantization is redundant, we should be able to reuse the quantized values we just received - std::tie(send_buffer[step % BUFFER_COUNT], send_lookup_buffer[step % BUFFER_COUNT]) = uniform_8bit_quantize(chunks[send_chunk], false); - - std::vector send_tensors = {send_lookup_buffer[step % BUFFER_COUNT]}; - send_lookup_work[step % BUFFER_COUNT] = group->send(send_tensors, send_rank, step + 1000); - - std::vector recv_tensors = {recv_lookup_buffer[step % BUFFER_COUNT]}; - recv_lookup_work[step % BUFFER_COUNT] = group->recv(recv_tensors, recv_rank, step + 1000); - - send_tensors = {send_buffer[step % BUFFER_COUNT]}; - send_work[step % BUFFER_COUNT] = group->send(send_tensors, send_rank, step); - - recv_tensors = {recv_buffer[step % BUFFER_COUNT]}; - recv_work[step % BUFFER_COUNT] = group->recv(recv_tensors, recv_rank, step); - } - } -} - -PYBIND11_MODULE(collectives, m) { - m.def( - "ring_allreduce", - &ring_allreduce, - "Ring allreduce implementation", - py::arg("tensor"), - py::arg("op"), - py::arg("pg") - ); - m.def( - "ring_allreduce_gloo", - &ring_allreduce, - "Ring allreduce implementation", - py::arg("tensor"), - py::arg("op"), - py::arg("pg") - ); -} \ No newline at end of file diff --git a/src/zeroband/C/csrc/compression.cpp b/src/zeroband/C/csrc/compression.cpp deleted file mode 100644 index 8bd7dcbd..00000000 --- a/src/zeroband/C/csrc/compression.cpp +++ /dev/null @@ -1,155 +0,0 @@ -#include - -namespace py = pybind11; - -constexpr int n_bins = 256; // 8-bit quantization -constexpr double RANGE_IN_SIGMAS = 6.0; -const int max_num_threads = std::thread::hardware_concurrency(); - -torch::Tensor quantize_per_tensor_multithreaded(const torch::Tensor& tensor, float scale, int32_t zero_point, int num_threads) { - torch::TensorOptions options = tensor.options().dtype(torch::kByte); - torch::Tensor quantized_tensor = torch::empty_like(tensor, options); - - float* tensor_data = tensor.data_ptr(); - uint8_t* quant_data = quantized_tensor.data_ptr(); - int64_t numel = tensor.numel(); - float inv_scale = 1.0f / scale; - - std::vector threads; - int64_t chunk_size = numel / num_threads; - - auto quantize_chunk = [&](int64_t start, int64_t end) { - for (int64_t i = start; i < end; ++i) { - int32_t quant_val = static_cast(std::round(tensor_data[i] * inv_scale)) + zero_point; - quant_data[i] = static_cast(std::clamp(quant_val, 0, 255)); - } - }; - - for (int i = 0; i < num_threads - 1; ++i) { - int64_t start = i * chunk_size; - int64_t end = (i + 1) * chunk_size; - threads.emplace_back(quantize_chunk, start, end); - } - - // Handle the last chunk (which may be slightly larger due to rounding) - threads.emplace_back(quantize_chunk, (num_threads - 1) * chunk_size, numel); - - // Wait for all threads to complete - for (auto& thread : threads) { - thread.join(); - } - - return quantized_tensor; -} - -torch::Tensor average_buckets_multithread(const torch::Tensor& tensor, const torch::Tensor& quant_weight, int64_t n_bins, int num_threads) { - torch::NoGradGuard no_grad; - auto flat_tensor = tensor.flatten().contiguous(); - auto flat_quant_weight = quant_weight.flatten().contiguous(); - auto options = flat_tensor.options(); - auto bin_sums = torch::zeros({n_bins}, options); - auto bin_counts = torch::zeros({n_bins}, options.dtype(torch::kLong)); - - // Get raw pointers - float* tensor_data = flat_tensor.data_ptr(); - uint8_t* quant_data = flat_quant_weight.data_ptr(); - float* sums_data = bin_sums.data_ptr(); - int64_t* counts_data = bin_counts.data_ptr(); - int64_t numel = flat_tensor.numel(); - - // Create a vector to hold our threads - std::vector threads; - - // Lambda function for the work each thread will do - auto worker = [&](int64_t start, int64_t end) { - std::vector local_sums(n_bins, 0.0f); - std::vector local_counts(n_bins, 0); - - for (int64_t i = start; i < end; ++i) { - uint8_t bin = quant_data[i]; - if (bin < n_bins) { // No need to check for >= 0 as uint8_t is always non-negative - local_sums[bin] += tensor_data[i]; - local_counts[bin]++; - } - } - - // Use a mutex to safely update the shared data - static std::mutex mutex; - std::lock_guard lock(mutex); - for (int64_t i = 0; i < n_bins; ++i) { - sums_data[i] += local_sums[i]; - counts_data[i] += local_counts[i]; - } - }; - - // Divide the work among threads - int64_t chunk_size = numel / num_threads; - for (unsigned int i = 0; i < num_threads; ++i) { - int64_t start = i * chunk_size; - int64_t end = (i == num_threads - 1) ? numel : (i + 1) * chunk_size; - threads.emplace_back(worker, start, end); - } - - // Wait for all threads to complete - for (auto& thread : threads) { - thread.join(); - } - - // Compute averages - for (int64_t i = 0; i < n_bins; ++i) { - sums_data[i] = counts_data[i] > 0 ? sums_data[i] / counts_data[i] : 0.0f; - } - - return bin_sums; -} - -std::tuple uniform_8bit_quantize(torch::Tensor tensor, bool inplace) { - int offset = n_bins / 2; - - // Centered tensor handling (currently commented out, so no centering) - torch::Tensor centered_tensor = tensor; - - // Calculate unbiased standard deviation - double std_unbiased = centered_tensor.norm().item() / std::sqrt(centered_tensor.numel() - 1); - - // Calculate scale for quantization - double scale = RANGE_IN_SIGMAS * std_unbiased / n_bins; - - // Perform quantization - torch::Tensor quantized_tensor = quantize_per_tensor_multithreaded(centered_tensor, scale, offset, max_num_threads); - - // Call average_buckets to create the lookup table - torch::Tensor lookup = average_buckets_multithread(tensor, quantized_tensor, n_bins, max_num_threads); - - return std::make_tuple(quantized_tensor, lookup); -} - - -// PyBind11 module -PYBIND11_MODULE(compression, m) { - m.def( - "average_buckets", - &average_buckets_multithread, - "Average buckets for quantized values", - py::arg("tensor"), - py::arg("quant_weight"), - py::arg("n_bins"), - py::arg("num_threads") = max_num_threads - ) - .def( - "uniform_8bit_quantize", - &uniform_8bit_quantize, - "Uniform 8-bit quantization function", - py::arg("tensor"), - py::arg("inplace") = true - ) - .def( - "quantize_per_tensor_uint8", - &quantize_per_tensor_multithreaded, - "Faster torch::quantize_per_tensor", - py::arg("tensor"), - py::arg("scale"), - py::arg("zero_point"), - py::arg("num_threads") = max_num_threads - ); -} diff --git a/src/zeroband/checkpoint.py b/src/zeroband/checkpoint.py deleted file mode 100644 index bdeb4d48..00000000 --- a/src/zeroband/checkpoint.py +++ /dev/null @@ -1,563 +0,0 @@ -from dataclasses import dataclass -import gc -import multiprocessing -import os -import shutil -import threading -import time -from typing import Any -import uuid -import fsspec -from fsspec.generic import rsync as rsync_fsspec -import torch -from torch import nn -from torch.optim import Optimizer -from torch.optim.lr_scheduler import LRScheduler -from torchdata.stateful_dataloader import StatefulDataLoader -import torch.distributed.checkpoint as dcp -from torch.distributed.checkpoint.state_dict import ( - set_optimizer_state_dict, - set_model_state_dict, - get_model_state_dict, - get_optimizer_state_dict, - StateDictOptions, -) -import torch.distributed as dist - - -from torch.distributed.checkpoint.stateful import Stateful -import warnings -import logging -from torch.distributed._tensor.api import DTensor -from zeroband.utils.state_dict_send_recv import ( - _get_sendable_state_dict, - recv_state_dict, - send_state_dict, - send_tensor_and_state_dict, -) -from distributed_shampoo import DistributedShampoo -from zeroband.utils.logger import get_logger -from zeroband.config import CkptConfig -from zeroband.utils.world_info import get_world_info - -## code inspired by torchtitan https://github.com/pytorch/torchtitan/blob/main/torchtitan/checkpoint.py - - -@dataclass -class TrainingProgress(Stateful): - total_tokens: int - outer_step: int - step: int - - def state_dict(self) -> dict[str, Any]: - return {"total_tokens": self.total_tokens, "outer_step": self.outer_step, "step": self.step} - - def load_state_dict(self, state_dict: dict[str, Any]) -> None: - self.total_tokens = state_dict["total_tokens"] - self.outer_step = state_dict["outer_step"] - self.step = state_dict["step"] - - -class ModelWrapper(Stateful): - def __init__(self, model: nn.Module) -> None: - self.model = model - - def state_dict(self) -> dict[str, Any]: - return get_model_state_dict(self.model, options=StateDictOptions(strict=False)) - - def load_state_dict(self, state_dict: dict[str, Any]) -> None: - set_model_state_dict(model=self.model, model_state_dict=state_dict, options=StateDictOptions(strict=False)) - - -class OptimizerWrapper(Stateful): - def __init__( - self, - model: nn.Module, - optim: torch.optim.Optimizer, - ) -> None: - self.model = model - self.optim = optim - - def state_dict(self) -> dict[str, Any]: - if isinstance(self.optim, DistributedShampoo): - return self.optim.distributed_state_dict(key_to_param=self.model.named_parameters()) - else: - return get_optimizer_state_dict( - model=self.model, optimizers=self.optim, options=StateDictOptions(flatten_optimizer_state_dict=True) - ) - - def load_state_dict(self, state_dict: dict[str, Any]) -> None: - if isinstance(self.optim, DistributedShampoo): - self.optim.load_distributed_state_dict(state_dict, key_to_param=self.model.named_parameters()) - else: - set_optimizer_state_dict( - model=self.model, - optimizers=self.optim, - optim_state_dict=state_dict, - options=StateDictOptions(flatten_optimizer_state_dict=True), - ) - - -def cast_dtensor_to_tensor(state_dict: dict[str, Any]) -> dict[str, Any]: - """ - Traverse a state dict and cast all DTensor in the state dict to tensor - """ - new_state_dict = {} - - for key, value in state_dict.items(): - if isinstance(value, dict): - new_state_dict[key] = cast_dtensor_to_tensor(value) - elif isinstance(value, DTensor): - new_state_dict[key] = value.to_local() - else: - new_state_dict[key] = value - return new_state_dict - - -def load_dtensor_state_dict(state_src, loaded_state_dict): - for key, value in state_src.items(): - if isinstance(value, dict): - load_dtensor_state_dict(value, loaded_state_dict[key]) - elif isinstance(value, DTensor): - local_tensor = value.to_local() - - local_tensor.copy_(loaded_state_dict[key]) - loaded_state_dict[key] = value - else: - loaded_state_dict[key] = value - - -class OuterOptimizerWrapper(Stateful): - def __init__(self, optimizer: Optimizer) -> None: - self.optimizer = optimizer - - def state_dict(self) -> dict[str, Any]: - # the idea here is to cast any DTensor into local tensor - state = self.optimizer.state_dict() - return cast_dtensor_to_tensor(state) - - def load_state_dict(self, state_dict: dict[str, Any]) -> None: - # we pre-init the opt buffer DTensor. - # !! this assume that the model have grad buffer init - self.optimizer.step() # pre init buffer - - ## here the idea is for any DTensor, load the value from the state_dict into the local tensor - current_state = self.optimizer.state_dict() - load_dtensor_state_dict(current_state, state_dict) - self.optimizer.load_state_dict(state_dict) - - -def non_error_barrier(): - try: - dist.barrier() - except Exception as e: - from zeroband.utils.logger import get_logger - get_logger().info(f"Error in data checkpointing barrier: {e}, continuing training") - - -class CkptManager: - """Its name CkptManager because I (sami) always misstyped chekcpoint. - - Checkpoint are saved in a folder with the following structure: - ckpt_path/ - step_0/ - _0_0.pt - _1_0.pt - ... - step_1/ - ... - """ - - states: dict[str, Stateful] - - def __init__( - self, - config: CkptConfig, - model: nn.Module, - optimizer: Optimizer, - scheduler: LRScheduler, - dataloader: StatefulDataLoader, - training_progress: TrainingProgress, - data_rank: int | None, - diloco_offloaded_param_list: list[nn.Parameter] | None, - diloco_offloaded_optimizer: Optimizer | None, - ): - self.config = config - - self.model = model - self.optimizer = optimizer - self.scheduler = scheduler - self.dataloader = dataloader - self.training_progress = training_progress - self.data_rank = data_rank - - assert (diloco_offloaded_param_list is None) == ( - diloco_offloaded_optimizer is None - ), "diloco_offloaded_model and diloco_offloaded_optimizer must be both None or both have values" - - self.diloco_offloaded_optimizer = diloco_offloaded_optimizer # he we don't use Wrapper because it failed - # which might make the ckpt less generic in term of loading from different number of device. FSDP ckpt seems to be a mess tho - self.diloco_offloaded_param_list = diloco_offloaded_param_list - - self._init_state() - - self._logger = get_logger(config) - self.world_info = get_world_info() - - self.non_blocking_process: list[multiprocessing.Process] = [] - self.blocking_process: list[multiprocessing.Process] = [] - self._live_reco_thread: threading.Thread | None = None - - if self.world_info.local_rank == 0: - if self.config.path is not None: - self.check_path_access(self.config.path) - - if self.config.remote is not None: - self.check_path_access(self.config.remote.path) - - if self.config.remote_data_path is not None: - self.check_path_access(self.config.remote_data_path) - - def check_path_access( - self, - ckpt_path: str, - ): - rank = uuid.uuid4() - dummy_file_path = os.path.join(ckpt_path, f".dummy_file_{rank}.txt") - - try: - # Create the directory if it doesn't exist - fs, _ = fsspec.core.url_to_fs(ckpt_path) - fs.makedirs(ckpt_path, exist_ok=True) - - with fsspec.open(dummy_file_path, "w") as f: - f.write("This is a dummy file for testing access.") - except Exception as e: - self._logger.error(f"Error checking path access {ckpt_path}: {e}, aborting training") - raise e - - def _init_state(self): - # states can only be stateful object, hence we need to wrap Model and Optimizer - self.states: dict[str, Stateful] = { - "model": ModelWrapper(self.model), - "optimizer": OptimizerWrapper(self.model, self.optimizer), - "scheduler": self.scheduler, - # "dataloader": self.dataloader, # ignoring dataloader for now as each rank has its own dataloader - "training_progress": self.training_progress, - } - - # if self.diloco_offloaded_optimizer is not None: - # # even if the diloco_offloaded target the cpu list model, we still use the gpu model to load and save state. - # # main reason is that we actually don't a cpu model but just a list of cpu parameters. - # self.states["diloco_optimizer"] = self.diloco_offloaded_optimizer - - @torch.no_grad() - def save(self, remote: bool = False) -> None: - """ - Each rank will save the right shard of the model and optimizer. - - Saving is done inplace. - - Save in the subfolder `step_`. - - """ - - step_ckpt_path = os.path.join(self.config.path, f"step_{self.training_progress.step}") - - if remote and self.config.remote is not None: - remote_ckpt_path = os.path.join(self.config.remote.path, f"step_{self.training_progress.step}") - - # if we are not in self recovery mode we save to disk - time_start = time.perf_counter() - self._save(step_ckpt_path) - self._logger.info(f"Saved checkpoint to {step_ckpt_path} in {time.perf_counter() - time_start} seconds") - - # push to remote - non_error_barrier() - if self.world_info.local_rank == 0: - if remote and self.config.remote is not None: - self._async_save_remote(step_ckpt_path, remote_ckpt_path) - - @torch.no_grad() - def _save(self, ckpt_path: str): - self.wait_for_blocking_job() - - catch_warning = self._logger.getEffectiveLevel() <= logging.INFO - - with warnings.catch_warnings(): - # pytorch has an annoying warning when saving the optimizer state https://github.com/pytorch/pytorch/issues/136907 - # we can ignore it if we are not logging in DEBUG mode - if catch_warning: - warnings.simplefilter("ignore") - - dcp.save(self.states, checkpoint_id=ckpt_path) - - if self.diloco_offloaded_optimizer: - with open(os.path.join(ckpt_path, f"__{self.world_info.local_rank}_0.pt"), "wb") as f: - state = {} - state["optimizer"] = OuterOptimizerWrapper(self.diloco_offloaded_optimizer).state_dict() - - torch.save(state, f) - - data_path = os.path.join(ckpt_path, "data") - self.save_data(data_path, self.dataloader, self.world_info.local_rank) - - non_error_barrier() - - if self.config.remote_data_path is not None: - remote_data_path = os.path.join( - self.config.remote_data_path, f"data_{self.data_rank}", f"step_{self.training_progress.step}" - ) - latest_remote_data_path = os.path.join(self.config.remote_data_path, f"data_{self.data_rank}", "latest") - - self._async_save_remote(data_path, remote_data_path, blocking=False) - self._async_save_remote(data_path, latest_remote_data_path, blocking=False) - - gc.collect() - - @staticmethod - def save_data(data_path: str, dataloader, local_rank: int): - os.makedirs(data_path, exist_ok=True) - with open(os.path.join(data_path, f"_{local_rank}.pt"), "wb") as f: - state = {"data_loader": dataloader.state_dict()} - torch.save(state, f) - - def _async_save_remote(self, ckpt_path: str, remote_ckpt_path: str, blocking: bool = True) -> None: - """asyncronously rsync a ckpt folder to a remote location. Using fsspec to handle remote cloud storage without to install - specific libraries (e.g. s3fs). - """ - - def rsync(): - time_start = time.perf_counter() - self._logger.info(f"start pushing {ckpt_path} to {remote_ckpt_path} asynchronously") - try: - rsync_fsspec(ckpt_path, destination=remote_ckpt_path) - except Exception as e: - self._logger.error(f"Error pushing {ckpt_path} to {remote_ckpt_path}: {e}") - self._logger.info( - f"finish pushing {ckpt_path} to {remote_ckpt_path} in {time.perf_counter() - time_start} seconds" - ) - - processes = multiprocessing.Process(target=rsync, daemon=True) - processes.start() - - if blocking: - self.blocking_process.append(processes) - else: - self.non_blocking_process.append(processes) - - def wait_for_blocking_job(self): - for process in self.blocking_process: - process.join() - - self.blocking_process = [] - - if self.world_info.local_rank == 0: - if self.config.topk is not None: - delete_topk(self.logger, self.config.path, self.config.topk) - - def _del__(self): - self.wait_for_blocking_job() - - for process in self.non_blocking_process: - process.join() - - @torch.no_grad() - def _load_data(self, resume_ckpt_path: str): - self._logger.debug(f"loading data from {resume_ckpt_path}") - world_info = get_world_info() - - data_path = os.path.join(resume_ckpt_path, "data") - - with open(os.path.join(data_path, f"_{world_info.local_rank}.pt"), "rb") as f: - state = torch.load(f) - self.dataloader.load_state_dict(state["data_loader"]) - - @torch.no_grad() - def load( - self, - resume_ckpt_path: str, - skip_dataloader: bool = False, - data_path: str | None = None, - ) -> None: - """ - loading should be done after fsdp wrap and optimizer init. - Each rank will load the right shard of the model and optimizer. - All rank will load the global states (scheduler, step, total_tokens, dataloader). - - `resume_ckpt_path` should point to a specific step and not to the base ckpt folder. Example: `ckpt_path/step_100` - - Loading is done inplace. - - """ - time_start = time.perf_counter() - - world_info = get_world_info() - - files = os.listdir(resume_ckpt_path) - - if len(files) == 1 and files[0].startswith("diloco_"): - self._logger.warning( - f"Loading diloco ckpt from {files[0]}. This is deprecated and will be removed in the future" - ) - resume_ckpt_path = os.path.join(resume_ckpt_path, files[0]) - - dcp.load(self.states, checkpoint_id=resume_ckpt_path) - - if self.config.token_count is not None: - self.training_progress.total_tokens = self.config.token_count - - self._logger.debug("sync inner model") - # todo(refactor): here we should rather let the diloco class handle this logic - if self.diloco_offloaded_param_list is not None: - for param_offloaded, param in zip(self.diloco_offloaded_param_list, self.model.parameters()): - param_offloaded.data.to_local().copy_(param.data.to_local()) - - if self.diloco_offloaded_optimizer: - with open(os.path.join(resume_ckpt_path, f"__{world_info.local_rank}_0.pt"), "rb") as f: - rank_state_dict = torch.load(f) - - opt_wrapper = OuterOptimizerWrapper(self.diloco_offloaded_optimizer) - opt_wrapper.load_state_dict(rank_state_dict["optimizer"]) - - if not skip_dataloader: - if self.config.remote_data_load: - self.remote_data_load() - else: - data_path = resume_ckpt_path if data_path is None else data_path - self._load_data(data_path) - - self._init_state() - - self._logger.info(f"Loaded checkpoint from {resume_ckpt_path} in {time.perf_counter() - time_start} seconds") - - def remote_data_load(self): - remote_data_path = os.path.join(self.config.remote_data_path, f"data_{self.data_rank}", "latest") - id_ = uuid.uuid4() - dest = f"/tmp/zeroband/data_{id_}" - rsync_fsspec(remote_data_path, os.path.join(dest, "data")) - data_path = dest - self._load_data(data_path) - - @torch.no_grad() - def recv_ckpt_from_peer(self, global_pg: dist.ProcessGroup): - assert self.diloco_offloaded_param_list is not None, "recv_ckpt_from_peers is only supported with diloco" - - time_start = time.perf_counter() - self._logger.debug(f"Start receiving ckpt from rank {self.config.live_recovery_rank_src}") - - jobs = [] - buffers = [] - for i, param in enumerate(self.diloco_offloaded_param_list): - data = param.data - if isinstance(param.data, DTensor): - data = param.data.to_local() - - buffer = torch.empty_like(data) - buffers.append(buffer) - jobs.append(global_pg.recv([buffer], self.config.live_recovery_rank_src, i)) - - for job in jobs: - job.wait() - - for buffer, param in zip(buffers, self.model.parameters()): - data = param.data - if isinstance(data, DTensor): - data = data.to_local() - data.copy_(buffer) - - self._logger.debug("live recovery progress: offloaded model received 1/5") - - outer_opt_state_dict = recv_state_dict( - global_pg, self.config.live_recovery_rank_src, self.diloco_offloaded_optimizer.state_dict() - ) - self.diloco_offloaded_optimizer.load_state_dict(outer_opt_state_dict) - - self._logger.debug("live recovery progress: outer optimizer state dict received 2/5") - - training_process_state_dict = recv_state_dict( - global_pg, self.config.live_recovery_rank_src, self.training_progress.state_dict() - ) - self.training_progress.load_state_dict(training_process_state_dict) - self._logger.debug("live recovery progress: training progress state dict received 3/5") - - for group in self.optimizer.param_groups: - for p in group["params"]: - p.grad = torch.randn_like(p) - - self.optimizer.step() - self.optimizer.zero_grad() - - inner_opt_state_dict = recv_state_dict( - global_pg, self.config.live_recovery_rank_src, self.optimizer.state_dict() - ) - self.optimizer.load_state_dict(inner_opt_state_dict) - - self._logger.debug("live recovery progress: inner optimizer state dict received 4/5") - - sheduler_state_dict = recv_state_dict( - global_pg, self.config.live_recovery_rank_src, self.scheduler.state_dict() - ) - self.scheduler.load_state_dict(sheduler_state_dict) - - self._logger.debug("live recovery progress: scheduler state dict received 5/5") - - self._logger.debug( - f"Received ckpt from rank {self.config.live_recovery_rank_src} in {time.perf_counter() - time_start} seconds" - ) - - @torch.no_grad() - def send_ckpt_to_peer(self, global_pg: dist.ProcessGroup, dest_rank: int, blocking: bool = False): - def async_send(): - assert self.diloco_offloaded_param_list is not None, "send_ckpt_to_peers is only supported with diloco" - time_start = time.perf_counter() - self._logger.debug(f"Start sending ckpt to rank {dest_rank}") - - try: - jobs = [] - for i, param in enumerate(self.diloco_offloaded_param_list): - data = param.data - if isinstance(data, DTensor): - data = data.to_local() - jobs.append(global_pg.send([data], dest_rank, i)) - - for job in jobs: - job.wait() - - send_state_dict(global_pg, self.diloco_offloaded_optimizer.state_dict(), dest_rank) - send_state_dict(global_pg, self.training_progress.state_dict(), dest_rank) - - inner_optimizer_non_tensor_state_dict, inner_optimizer_tensors = _get_sendable_state_dict( - self.optimizer.state_dict() - ) - send_tensor_and_state_dict( - global_pg, dest_rank, inner_optimizer_non_tensor_state_dict, inner_optimizer_tensors - ) - - send_state_dict(global_pg, self.scheduler.state_dict(), dest_rank) - except RuntimeError as e: - self._logger.error(f"Error sending ckpt to rank {dest_rank}: {e}") - else: - self._logger.debug(f"Sent ckpt to rank {dest_rank} in {time.perf_counter() - time_start} seconds") - - thread = threading.Thread(target=async_send) - thread.start() - self._logger.debug("Live recovery thread started") - if blocking: - thread.join() - else: - self._live_reco_thread = thread - - -def delete_topk(logger: logging.Logger, ckpt_path: str, topk: int): - checkpoints_to_delete = get_checkpoints_to_delete(ckpt_path, topk) - for ckpt_path in checkpoints_to_delete: - shutil.rmtree(ckpt_path, ignore_errors=True) - if len(checkpoints_to_delete) > 0: - logger.info(f"Deleted {checkpoints_to_delete} checkpoints") - - -def get_checkpoints_to_delete(ckpt_path: str, topk: int) -> list[str]: - checkpoints = [d for d in os.listdir(ckpt_path) if d.startswith("step_")] - sorted_checkpoints = sorted(checkpoints, key=lambda x: int(x.split("_")[1]), reverse=True) - return [os.path.join(ckpt_path, d) for d in sorted_checkpoints[topk:]] diff --git a/src/zeroband/collectives.py b/src/zeroband/collectives.py deleted file mode 100644 index f9f6d47c..00000000 --- a/src/zeroband/collectives.py +++ /dev/null @@ -1,192 +0,0 @@ -from typing import Callable, Optional, TypeAlias -import torch -import torch.distributed as dist - -from zeroband.config import Compression - -AllReduceFunc: TypeAlias = Callable[ - [torch.Tensor, dist.ReduceOp, Optional[dist.ProcessGroup], Optional[torch.dtype]], None -] - - -def gloo_all_reduce( - tensor: torch.Tensor, - op: dist.ReduceOp = dist.ReduceOp.SUM, # type: ignore (defined weird) - group: Optional[dist.ProcessGroup] = None, -) -> None: - """Wrap gloo all reduce""" - if group is None: - group = dist.distributed_c10d._get_default_group() - if op not in [dist.ReduceOp.SUM, dist.ReduceOp.AVG]: - raise ValueError(f"Unsupported reduce operation {op}. Only SUM and AVG are supported.") - - # group = cast(dist.ProcessGroup, group) # just type hint stuff for IDE - if op == dist.ReduceOp.AVG: - # todo check numerical stability of doing post or pre div - tensor.div_(group.size()) - - dist.all_reduce(tensor, op, group=group) - - -def all_reduce( - compression: Compression, - tensor: torch.Tensor, - op: dist.ReduceOp = dist.ReduceOp.SUM, # type: ignore - group: Optional[dist.ProcessGroup] = None, -) -> None: - if compression == Compression.UINT8: - from zeroband.C.collectives import ring_allreduce as ring_allreduce_c - - return ring_allreduce_c(tensor, op, group) - else: - return gloo_all_reduce(tensor, op, group) - - -# =============== -# Code purgatory -# --------------- -# This code is still here because it is used by tests -# ring_allreduce is used by tests/test_c/test_collectives.py to make sure the new c impl doesnt deviate too much numerically -BUFFER_COUNT = 2 - - -def ring_allreduce_py( - tensor: torch.Tensor, - op: dist.ReduceOp = dist.ReduceOp.SUM, # type: ignore - group: Optional[dist.ProcessGroup] = None, - transfer_dtype: Optional[torch.dtype] = None, - quantization_func: Optional[Callable] = None, -) -> None: - """ - Perform all-reduce on a tensor using ring algorithm. - The accumulation will be done in-place on the input tensor. - The transfers will be done using the specified transfer_dtype. - """ - if quantization_func is not None: - if transfer_dtype is not None: - raise ValueError("Quantization and transfer_dtype cannot be used together") - transfer_dtype = tensor.dtype - if transfer_dtype is None: - transfer_dtype = tensor.dtype - if group is None: - group = dist.distributed_c10d._get_default_group() - if op not in [dist.ReduceOp.SUM, dist.ReduceOp.AVG]: - raise ValueError(f"Unsupported reduce operation {op}. Only SUM and AVG are supported.") - - world_size = group.size() - rank = group.rank() - - # Divide the tensor into chunks - flat_tensor = tensor.as_strided((tensor.numel(),), (1,)) - chunks = flat_tensor.chunk(world_size * BUFFER_COUNT) - - assert flat_tensor.size(0) % (world_size * BUFFER_COUNT) == 0, "Tensor size must be divisible by world size" - - # Temporary buffers for transferring data - num_buffers = BUFFER_COUNT * world_size - if quantization_func is not None: - recv_buffer = [torch.empty_like(chunks[0], dtype=torch.uint8) for _ in range(BUFFER_COUNT)] - send_buffer = [None for _ in range(BUFFER_COUNT)] - send_lookup_buffer = [None for _ in range(BUFFER_COUNT)] - recv_lookup_buffer = [torch.empty(256, dtype=chunks[0].dtype) for _ in range(BUFFER_COUNT)] - send_lookup_work = [None for _ in range(BUFFER_COUNT)] - recv_lookup_work = [None for _ in range(BUFFER_COUNT)] - else: - recv_buffer = [torch.empty_like(chunks[0], dtype=transfer_dtype) for _ in range(BUFFER_COUNT)] - send_buffer = [torch.empty_like(chunks[0], dtype=transfer_dtype) for _ in range(BUFFER_COUNT)] - send_work = [None] * BUFFER_COUNT - recv_work = [None] * BUFFER_COUNT - - send_rank = (rank + 1) % world_size - recv_rank = (rank - 1) % world_size - for step in range(1, world_size * BUFFER_COUNT + 1): - send_chunk = (rank * BUFFER_COUNT - step) % num_buffers - - if send_work[step % BUFFER_COUNT] is not None: - send_work[step % BUFFER_COUNT].wait() - recv_work[step % BUFFER_COUNT].wait() - if quantization_func is not None: - send_lookup_work[step % BUFFER_COUNT].wait() - recv_lookup_work[step % BUFFER_COUNT].wait() - # print(recv_lookup_buffer[step % BUFFER_COUNT][recv_buffer[step % BUFFER_COUNT].long()]) - chunks[send_chunk].add_( - recv_lookup_buffer[step % BUFFER_COUNT][recv_buffer[step % BUFFER_COUNT].long()] - ) - else: - chunks[send_chunk].add_(recv_buffer[step % BUFFER_COUNT]) - - if step <= (world_size - 1) * BUFFER_COUNT: - # Send and receive - if quantization_func is not None: - send_buffer[step % BUFFER_COUNT], send_lookup_buffer[step % BUFFER_COUNT] = quantization_func( - chunks[send_chunk] - ) - send_lookup_work[step % BUFFER_COUNT] = dist.isend( - send_lookup_buffer[step % BUFFER_COUNT], dst=send_rank, group=group, tag=step + 1000 - ) - recv_lookup_work[step % BUFFER_COUNT] = dist.irecv( - recv_lookup_buffer[step % BUFFER_COUNT], src=recv_rank, group=group, tag=step + 1000 - ) - else: - send_buffer[step % BUFFER_COUNT].copy_(chunks[send_chunk]) - send_work[step % BUFFER_COUNT] = dist.isend( - send_buffer[step % BUFFER_COUNT], dst=send_rank, group=group, tag=step - ) - recv_work[step % BUFFER_COUNT] = dist.irecv( - recv_buffer[step % BUFFER_COUNT], src=recv_rank, group=group, tag=step - ) - - if op == dist.ReduceOp.AVG: - for i in range(BUFFER_COUNT): - chunks[i + rank * BUFFER_COUNT].divide_(world_size) - if quantization_func is not None: - for i in range(BUFFER_COUNT): - quant_weight, lookup = quantization_func(chunks[i + rank * BUFFER_COUNT]) - chunks[i + rank * BUFFER_COUNT].copy_(lookup[quant_weight.long()]) - - if quantization_func is not None: - recv_buffer = [torch.empty_like(chunks[0], dtype=torch.uint8) for _ in range(BUFFER_COUNT)] - send_buffer = [None for _ in range(BUFFER_COUNT)] - send_lookup_buffer = [None for _ in range(BUFFER_COUNT)] - recv_lookup_buffer = [torch.empty(256, dtype=chunks[0].dtype) for _ in range(BUFFER_COUNT)] - send_lookup_work = [None for _ in range(BUFFER_COUNT)] - recv_lookup_work = [None for _ in range(BUFFER_COUNT)] - send_work = [None] * BUFFER_COUNT - recv_work = [None] * BUFFER_COUNT - - for step in range(1, world_size * BUFFER_COUNT + 1): - send_chunk = (rank * BUFFER_COUNT + BUFFER_COUNT - step) % num_buffers - - if send_work[step % BUFFER_COUNT] is not None: - send_work[step % BUFFER_COUNT].wait() - recv_work[step % BUFFER_COUNT].wait() - if quantization_func is not None: - send_lookup_work[step % BUFFER_COUNT].wait() - recv_lookup_work[step % BUFFER_COUNT].wait() - chunks[send_chunk].copy_( - recv_lookup_buffer[step % BUFFER_COUNT][recv_buffer[step % BUFFER_COUNT].long()] - ) - else: - chunks[send_chunk].copy_(recv_buffer[step % BUFFER_COUNT]) - - if step <= (world_size - 1) * BUFFER_COUNT: - # Send and receive - if quantization_func is not None: - send_buffer[step % BUFFER_COUNT], send_lookup_buffer[step % BUFFER_COUNT] = quantization_func( - chunks[send_chunk] - ) - send_lookup_work[step % BUFFER_COUNT] = dist.isend( - send_lookup_buffer[step % BUFFER_COUNT], dst=send_rank, group=group, tag=step + 1000 - ) - recv_lookup_work[step % BUFFER_COUNT] = dist.irecv( - recv_lookup_buffer[step % BUFFER_COUNT], src=recv_rank, group=group, tag=step + 1000 - ) - else: - send_buffer[step % BUFFER_COUNT].copy_(chunks[send_chunk]) - - send_work[step % BUFFER_COUNT] = dist.isend( - send_buffer[step % BUFFER_COUNT], dst=send_rank, group=group, tag=step - ) - recv_work[step % BUFFER_COUNT] = dist.irecv( - recv_buffer[step % BUFFER_COUNT], src=recv_rank, group=group, tag=step - ) diff --git a/src/zeroband/comms.py b/src/zeroband/comms.py deleted file mode 100644 index ca3d7ce6..00000000 --- a/src/zeroband/comms.py +++ /dev/null @@ -1,609 +0,0 @@ -import sys -import os -import time -import subprocess -from torch.distributed.device_mesh import init_device_mesh -from zeroband.utils.world_info import get_world_info -from zeroband.utils.logger import get_logger -import torch.distributed as dist -from datetime import timedelta -from typing import List, Tuple, Optional -from torch.testing._internal.distributed.fake_pg import FakeProcessGroup -import multiprocessing as mp -from uuid import uuid4 -import toposolve -from zeroband.utils.ip import parse_iperf_output - -TCPSTORE_TIMEOUT = timedelta(seconds=int(os.getenv("ZERO_BAND_GLOBAL_STORE_TIMEOUT_SECONDS", "300"))) -TCPSTORE_POLLING_INTERVAL = float(os.getenv("ZERO_BAND_GLOBAL_STORE_POLLING_INTERVAL_SECONDS", "0.1")) -GLOBAL_PG_TIMEOUT = timedelta(seconds=int(os.getenv("ZERO_BAND_GLOBAL_PG_TIMEOUT_SECONDS", "600"))) -MAX_JOINERS = 100 # Maximum number of nodes that can join in a single reinit -HEARTBEAT_INTERVAL = int( - os.getenv("ZERO_BAND_EDM_HEARTBEAT_INTERVAL_SECONDS", "2") -) # Interval in seconds between heartbeats -HEARTBEAT_TIMEOUT = int( - os.getenv("ZERO_BAND_EDM_HEARTBEAT_TIMEOUT_SECONDS", "10") -) # Time in seconds after which a node is considered dead if no heartbeat is received -IPERF_PORT = int(os.getenv("ZERO_BAND_IPERF_PORT", "10101")) -IPERF_IFNAME = os.getenv("GLOO_SOCKET_IFNAME", "eth0") -BENCH_TENSOR_SIZE = 1_000_000 - - -class ElasticDeviceMesh: - """A class to manage the process groups for elastic training without restarts. - - The way it works is rank 0 coordinates the joining and leaving of nodes. - Rank 0 manages the status to coordinate the creation and recreation of the process groups. - When a node wants to join, rank 0 will setup the store so that all nodes know the new world size and their respective ranks. - - Store keys used: - - status: "init", "running", "reinit" - - world_size: The current world size - - mesh_count: The version of the mesh - - rank_{uuid}: The rank of the node with the given uuid - - joiner_{i}: The uuid of the ith joiner. Its a KV implmentation of a queue. - """ - - local_pg: dist.ProcessGroup - global_pg: dist.ProcessGroup - - def __init__( - self, backend: str = "cpu:gloo,cuda:nccl", enable: bool = True, live_recovery_rank_src: int | None = None - ): - self._logger = get_logger() - self.world_info = get_world_info() - self.live_recovery_rank_src = live_recovery_rank_src - - # Initialize global process group - self.global_pg = FakeProcessGroup(self.world_info.rank, 1) - - self.enable = enable - if enable: - self._init_global_pg() - - # Initialize local process group - dist.init_process_group(backend=backend) - self.mesh = init_device_mesh( - "cuda", - (self.world_info.nnodes, self.world_info.local_world_size), - mesh_dim_names=("internode", "intranode"), - ) - self.local_pg = self.mesh.get_group("intranode") - - # Start heartbeat - - self.cuda_local_mesh = init_device_mesh("cuda", mesh_shape=(self.local_pg.size(),)) - self.cpu_local_mesh = init_device_mesh("cpu", mesh_shape=(self.local_pg.size(),)) - - # Logging - if self.enable: - self._optimize_ring_ranks() - if self.live_recovery_rank_src is not None: - self.live_recovery.ask_for_live_ckpt(self.live_recovery_rank_src) - self.global_pg.barrier().wait() - - self._logger.info(f"global_pg size : {self.global_pg.size()}, local_pg size: {self.local_pg.size()}") - - def __del__(self): - self._stop_heartbeat() - dist.destroy_process_group() - - def _init_global_store(self): - self._logger.info( - f"[{self.world_info.global_unique_id}](Leader: {self._global_leader}) TCPStore init: Connecting via {self.world_info.global_addr}:{self.world_info.global_port + self.world_info.rank}" - ) - self.global_store = dist.TCPStore( - host_name=self.world_info.global_addr, - port=self.world_info.global_port + self.world_info.rank, - timeout=TCPSTORE_TIMEOUT, - is_master=self._global_leader, - ) - self.god_store = dist.TCPStore( - host_name=self.world_info.global_addr, - port=self.world_info.global_port, - timeout=TCPSTORE_TIMEOUT, - is_master=False, - ) - - def _init_global_store_values(self): - """Initialize the global store with mesh_count, joiner_0, and status. Also sets the global status.""" - self._logger.debug("Initializing global store values") - self.global_store.set(f"gid_{self.world_info.global_rank}", self.world_info.global_unique_id) - self.global_store.set(f"rank_{self.world_info.global_unique_id}", str(self.world_info.global_rank)) - if self._global_leader: - self.global_store.set("mesh_count", "0") - self.global_store.set("world_size", str(self.world_info.global_world_size)) - self.global_store.set("joiner_0", "null") - for i in range(self.world_info.global_world_size): - self.global_store.set(f"barrier_{i}", "null") - self._global_ids = [ - self.global_store.get(f"gid_{i}").decode("utf-8") for i in range(self.world_info.global_world_size) - ] - for i in self._global_ids: - for j in self._global_ids: - self.global_store.set(f"ping_{i}_{j}", "1000_000_000") - self.global_store.set("status", "init") - self.global_status = "init" - else: - self.global_status = self._wait_for_status() - self._global_ids = [ - self.global_store.get(f"gid_{i}").decode("utf-8") for i in range(self.world_info.global_world_size) - ] - - def _create_global_pg(self): - # Delete the old global_pg - if hasattr(self, "global_pg"): - if sys.getrefcount(self.global_pg) > 2: - self._logger.warning( - f"Global PG refcount was {sys.getrefcount(self.global_pg)} when 2 is expected during deletion. This may cause a memory leak." - ) - del self.global_pg # TODO(jackmin): Where do we catch errors in teardown? - self._logger.info("Destroyed process group") - - # Get new global rank and world size - self.world_info.global_rank = int( - self.global_store.get(f"rank_{self.world_info.global_unique_id}").decode("utf-8") - ) - self.world_info.global_world_size = int(self.global_store.get("world_size").decode("utf-8")) - self.mesh_count = int(self.global_store.get("mesh_count").decode("utf-8")) - self._logger.debug( - f"New global rank: {self.world_info.global_rank}, New global world size: {self.world_info.global_world_size} New mesh count: {self.mesh_count}" - ) - - # Create prefix store - prefix_store = dist.PrefixStore(f"mesh_{self.mesh_count}", self.global_store) - self._logger.debug(f"Created prefix store with mesh_{self.mesh_count}") - - # Create process group - self._logger.debug( - f"Creating global pg with {self.world_info.global_world_size} rank {self.world_info.global_rank}" - ) - self.global_pg = dist.ProcessGroupGloo( - prefix_store, self.world_info.global_rank, self.world_info.global_world_size, GLOBAL_PG_TIMEOUT - ) - self._logger.debug("Global pg created with %d peers. Timeout of %s", self.global_pg.size(), GLOBAL_PG_TIMEOUT) - - def _optimize_ring_ranks(self): - self._global_ids = [ - self.global_store.get(f"gid_{i}").decode("utf-8") for i in range(self.world_info.global_world_size) - ] - if self.world_info.local_rank == 0: - self._logger.debug("Measuring bandwidths") - self._measure_connectivity() - self._logger.debug("Measuring bandwidths done") - - self.local_pg.barrier().wait() - self.global_pg.barrier().wait() - - if self._global_leader: - self._logger.debug("Calculating TSP") - pings = self.get_pings() - min_dist, path = toposolve.TSPSolver().solve_tsp(pings) - self._logger.debug(f"Min distance: {min_dist}") - self._logger.debug(f"Path: {path}") - new_gids = [self._global_ids[i] for i in path[:-1]] - assert set(new_gids) == set(self._global_ids) - - for i, gid in enumerate(new_gids): - self.global_store.set(f"rank_{gid}", str(i)) - self.global_store.set(f"gid_{i}", gid) - self.global_store.set("mesh_count", str(self.mesh_count + 1)) - - self.local_pg.barrier().wait() - self.global_pg.barrier().wait() - - self._global_ids = [ - self.global_store.get(f"gid_{i}").decode("utf-8") for i in range(self.world_info.global_world_size) - ] - self._create_global_pg() - - def _queue_join(self): - """Queue a node to join the mesh.""" - for i in range(MAX_JOINERS): - joiner_id = self.global_store.get(f"joiner_{i}").decode("utf-8") - if joiner_id == "null": - self.global_store.set(f"joiner_{i}", self.world_info.global_unique_id) - self.global_store.set(f"joiner_{i + 1}", "null") - break - else: - raise RuntimeError("Too many joiners") - - def _get_joiners(self) -> Tuple[List[str], List[str]]: - joiners = [] - for i in range(MAX_JOINERS): - joiner_id = self.global_store.get(f"joiner_{i}").decode("utf-8") - if joiner_id == "null": - break - joiners.append(joiner_id) - return joiners - - def _clear_joiners(self): - self.global_store.set("joiner_0", "null") - - def _wait_for_status(self, status: Optional[str] = None) -> str: - """Wait for status to be set in the store. - - Args: - store (dist.Store): The store to check. - status (Optional[str], optional): The status to wait for. If None, wait for any status. Defaults to None. - Returns: - status (str): The status. - """ - while True: - try: - ret = self.global_store.get("status").decode("utf-8") - if status is None or ret == status: - return ret - time.sleep(TCPSTORE_POLLING_INTERVAL) - except dist.DistStoreError as e: - if status is not None: - raise e - time.sleep(0.1) - - def _init_global_pg(self) -> None: - # Each rank gets its own global store with global rank 0 as the master - time_start = time.perf_counter() - - self._global_leader = self.world_info.global_rank == 0 - self._init_global_store() - - # Initialize store values - self._init_global_store_values() - - self.live_recovery = LiveRecovery(store=self.global_store) - - if self.global_status == "running": # Join path - # Ask to join and then wait for the status to be "reinit" - self._logger.info("Waiting to join") - self._queue_join() - self._wait_for_status("reinit") - - # Create global process group - self._create_global_pg() - - # Update global store values - if self._global_leader: - self.global_store.set("status", "running") - self.global_store.set("resolved_time", uuid4().hex) - self.global_status = "running" - self._last_resolved_time = self.global_store.get("resolved_time").decode("utf-8") - - self._start_heartbeat() - - self._logger.info( - f"Elastic Device mesh init done with {self.global_pg.size()} peers in {time.perf_counter() - time_start} seconds" - ) - - if self.world_info.local_rank == 0: - self._start_iperf_server() - self._evicted_nodes = [] - - def _start_heartbeat(self): - """Start sending heartbeats to the global store in a separate process.""" - self._heartbeat_stop_event = mp.Event() - self._heartbeat_process = mp.Process(target=self._heartbeat_loop, args=(self._heartbeat_stop_event,)) - self._heartbeat_process.start() - - def _stop_heartbeat(self): - """Stop the heartbeat process.""" - self._send_deathrattle() - if hasattr(self, "_heartbeat_stop_event"): - self._heartbeat_stop_event.set() - self._heartbeat_process.join() - - def _heartbeat_loop(self, stop_event): - """Continuously send heartbeats until stopped.""" - try: - while not stop_event.is_set(): - self._send_heartbeat() - time.sleep(HEARTBEAT_INTERVAL) - finally: - self._send_deathrattle() - - def _send_heartbeat(self): - """Send a heartbeat to the global store.""" - current_time = time.time() - try: - self.global_store.set(f"heartbeat_{self.world_info.global_unique_id}", str(current_time)) - except Exception: - self._logger.error("Error sending heartbeat", exc_info=True) - pass - - def _send_deathrattle(self): - """Send a deathrattle to the global store.""" - if hasattr(self, "global_store"): - self.global_store.set(f"heartbeat_{self.world_info.global_unique_id}", "-100") - else: - import warnings - - warnings.warn("global_store garbage collected. Skipping deathrattle.") - - def _check_heartbeats(self) -> List[str]: - """Check heartbeats and return a list of nodes that have missed their heartbeats.""" - dead_nodes = [] - current_time = time.time() - for gid in self._global_ids: - try: - last_heartbeat = float(self.global_store.get(f"heartbeat_{gid}").decode("utf-8")) - self._logger.debug(f"Node {gid} last heartbeat: {last_heartbeat}") - if current_time - last_heartbeat > HEARTBEAT_TIMEOUT: - dead_nodes.append(gid) - self.global_store.delete_key(f"heartbeat_{gid}") - except dist.DistStoreError: - self._logger.warning(f"Node {gid} has no heartbeat") - return dead_nodes - - def _resolve_world(self, admit_joiners: bool = False) -> bool: - """Set the new world size and ranks for all nodes if there are joiners or dead nodes. Else, do nothing. - - Args: - admit_joiners (bool, optional): Whether to admit joiners. Defaults to False. - Returns: - bool: True if the world was changed, False otherwise. - """ - # Find joiners - if admit_joiners: - joiners = self._get_joiners() - else: - joiners = [] - - # Check for dead nodes - dead_nodes = self._check_heartbeats() - self._logger.debug( - "Joiners (%sadmitting): %s, Dead nodes: %s, Evicting nodes: %s", - "" if admit_joiners else "not ", - joiners, - dead_nodes, - self._evicted_nodes, - ) - dead_nodes.extend(self._evicted_nodes) - - # If no joiners or dead nodes, no resolution needed - if len(joiners) == 0 and len(dead_nodes) == 0: - return False - - # Remap live ranks to smaller world_size caused by dead nodes - leaving_nodes = set(dead_nodes) - live_ranks = [i for i in self._global_ids if i not in leaving_nodes] - for i, rank in enumerate(live_ranks): - self.global_store.set(f"rank_{rank}", str(i)) - self.global_store.set(f"gid_{i}", rank) - new_world_size = len(live_ranks) - - # Give joiners new ranks - for joiner_id in joiners: - self.global_store.set(f"rank_{joiner_id}", str(new_world_size)) - self.global_store.set(f"gid_{new_world_size}", joiner_id) - live_ranks.append(joiner_id) - new_world_size += 1 - - self._global_ids = live_ranks - for i in self._global_ids: - for j in self._global_ids: - self.global_store.set(f"ping_{i}_{j}", "1000_000_000") - for i in range(1, new_world_size): - self.global_store.set(f"barrier_{i}", "null") - # Update world_size - self.global_store.set("world_size", str(new_world_size)) - self.global_store.set("mesh_count", str(self.mesh_count + 1)) - # Set status to "reinit" - self.global_store.set("status", "reinit") - return True - - def maybe_reinit_global_pg(self, admit_joiners: bool = False) -> bool: - """Reinitialize the global_pg if there are is a state change. - - Args: - admit_joiners (bool, optional): Whether to admit joiners. Defaults to False. - Returns: - bool: True if the global_pg was reinitialized, False otherwise. - """ - if not self.enable: - # no op if disabled - return - - time_start = time.perf_counter() - self._logger.debug("[%s] Resolving world", self.world_info.global_unique_id) - if self._global_leader: - self._resolve_world(admit_joiners=admit_joiners) - self.global_store.set("resolved_time", uuid4().hex) - else: - while (ans := self.global_store.get("resolved_time").decode("utf-8")) == self._last_resolved_time: - # TODO: Have a timeout here in case the leader is dead - time.sleep(TCPSTORE_POLLING_INTERVAL) - self._last_resolved_time = ans - - self._logger.debug("World resolved in %s seconds", time.perf_counter() - time_start) - - status = self.global_store.get("status").decode("utf-8") - if status == "running": # No joiners or dead nodes - return False - - # Reinit Path - try: - self._create_global_pg() - self._optimize_ring_ranks() - self.global_pg.barrier().wait() - except Exception as e: - self._logger.error(f"Error recreating process group: {e}. Retrying...") - return self.maybe_reinit_global_pg(admit_joiners=admit_joiners) - - if self._global_leader: - self._clear_joiners() - self.global_store.set("status", "running") - - self._logger.debug("Reinitialized global_pg done in %s seconds", time.perf_counter() - time_start) - - # TODO: We need to reset the self.world_info.global_rank reference - # Somehow the reference becomes stale and the heartbeats become wrong - # This will be fixed when heartbeats become unique id dependent which never changes - self._logger.debug("Reset Heartbet") - self._stop_heartbeat() - self._start_heartbeat() - self._logger.debug("Reset Heartbeat done") - return True - - def get_global_pg(self, maybe_reinit: bool = False) -> dist.ProcessGroup: - """Get the global process group. If maybe_reinit is True, reinitialize the global process group if needed.""" - if maybe_reinit: - self.maybe_reinit_global_pg() - return self.global_pg - - def monitored_barrier(self, flag: str): - flag = str(flag) - time_start = time.perf_counter() - self._logger.debug("[%s] Monitored Barrier %s", self.world_info.global_unique_id, flag) - if self._global_leader: - self._logger.debug("Others have %d seconds to resolve", GLOBAL_PG_TIMEOUT.total_seconds()) - while not all( - self.global_store.get(f"barrier_{i}").decode("utf-8") == flag - for i in range(1, self.world_info.global_world_size) - ): - if time.perf_counter() - time_start > GLOBAL_PG_TIMEOUT.total_seconds(): - self._logger.error("Monitored barrier failed due to timeout") - self._evicted_nodes = [ - i - for i in range(1, self.world_info.global_world_size) - if self.global_store.get(f"barrier_{i}").decode("utf-8") != flag - ] - self._logger.info("Evicting nodes: %s", self._evicted_nodes) - self.global_store.set(f"barrier_{self.world_info.global_rank}", "error") - # We neeed to evict the dead node - raise RuntimeError("Monitored barrier failed due to timeout") - time.sleep(TCPSTORE_POLLING_INTERVAL) - self.global_store.set(f"barrier_{self.world_info.global_rank}", flag) - else: - self.global_store.set(f"barrier_{self.world_info.global_rank}", flag) - while (ans := self.global_store.get("barrier_0").decode("utf-8")) != flag: - if ans == "error": - raise RuntimeError("Monitored barrier failed due to error") - # TODO: Have a timeout here in case the leader is dead - time.sleep(TCPSTORE_POLLING_INTERVAL) - - self._logger.debug("Monitored barrier resolved in %s seconds", time.perf_counter() - time_start) - - def get_pings(self) -> List[List[int]]: - pings = [[1000_000_000] * self.world_info.global_world_size for _ in range(self.world_info.global_world_size)] - for i, e1 in enumerate(self._global_ids): - for j, e2 in enumerate(self._global_ids): - if i == j: - continue - pings[i][j] = int(self.god_store.get(f"ping_{e1}_{e2}")) - - self._logger.debug("\n %s", format_grid(pings)) - return pings - - def _start_iperf_server(self) -> None: - """Start the iperf server process.""" - try: - from zeroband.utils.ip import get_ip_address - - iperf_addr = get_ip_address(IPERF_IFNAME) - iperf_port = IPERF_PORT + self.world_info.global_rank - cmd: List[str] = ["iperf", "-s", "-p", str(iperf_port)] - self.server_process = subprocess.Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) - self.god_store.set(f"iperf_{self.world_info.global_unique_id}", f"{iperf_addr}:{iperf_port}") - self._logger.info(f"Started iperf server on {iperf_addr} with port {iperf_port}") - except Exception as e: - self._logger.error(f"Failed to start iperf server: {str(e)}") - raise - - def _measure_connectivity(self): - for i in self._global_ids: - if i == self.world_info.global_unique_id: - continue - target_host, target_port = self.god_store.get(f"iperf_{i}").decode("utf-8").split(":") - target_port = int(target_port) - time_taken = self.measure_bandwidth(target_host, target_port) - self.god_store.set(f"ping_{self.world_info.global_unique_id}_{i}", str(time_taken)) - - def measure_bandwidth(self, target_host: str, target_port: int) -> int: - """ - Measure bandwidth to a specific target. - - Args: - target_host: The host to measure bandwidth to - target_port: The port to measure bandwidth to - - Returns: - int: The time taken to transfer 10Tb of data in seconds - """ - try: - cmd: List[str] = [ - "iperf", - "-c", - target_host, - "-p", - str(target_port), - "-t", - "1", # 1 second test - ] - result: subprocess.CompletedProcess = subprocess.run(cmd, capture_output=True, text=True, timeout=5) - - if result.returncode != 0: - raise Exception(f"iperf error: {result.stderr}") - - time_taken: int = int(1e13 / parse_iperf_output(result.stdout)) - time_taken = min(time_taken, 1_000_000_000) - - return time_taken - except Exception as e: - self._logger.error(f"Error measuring bandwidth to {target_host}:{target_port} {str(e)}") - return int(1e9) - - -def format_grid(grid): - N = len(grid) - - # Set the main diagonal elements to 0 - for i in range(N): - grid[i][i] = 0 - - # Determine the width needed for formatting based on max possible value (99.99) and indices - cell_width = 6 - - # Create header row with column indices - header_row = " " + " | ".join(f"{j:>{cell_width-1}}" for j in range(N)) - - # Start building the formatted grid string - formatted_grid = header_row + "\n" - - for i, row in enumerate(grid): - # Format each element in the row - formatted_row = [f"{i:>2}"] # Add row index at the beginning of the row - for value in row: - # Divide by 1000 and format to 2 decimal places - formatted_value = f"{value / 1000:.2f}" - formatted_row.append(formatted_value) - - # Join the elements of the row with '|' and add it to the grid string - formatted_grid += " | ".join(formatted_row).center(cell_width * (N + 1)) + "\n" - - return formatted_grid.strip() - - -class LiveRecovery: - def __init__(self, store: dist.Store): - self.logger = get_logger() - self.world_info = get_world_info() - - self.store = dist.PrefixStore("live_recovery", store) - self.reset() - - def reset(self): - self.store.set(f"rank_{self.world_info.global_rank}", "null") - - def should_send_ckpt_to(self) -> int | None: - """use this function to check if someone is awaiting for a live ckpt""" - data = self.store.get(f"rank_{self.world_info.global_rank}").decode("utf-8") - if data == "null": - return None - try: - return int(data) - except ValueError as e: - self.logger.error(f"Error parsing live recovery data: {e}") - return None - - def ask_for_live_ckpt(self, rank: int) -> int | None: - """use this function to send a signal to a node to ask for a live ckpt""" - self.store.set(f"rank_{rank}", str(self.world_info.global_rank)) diff --git a/src/zeroband/compression.py b/src/zeroband/compression.py deleted file mode 100644 index 2fc1da75..00000000 --- a/src/zeroband/compression.py +++ /dev/null @@ -1,70 +0,0 @@ -# Code adapted from https://github.com/PrimeIntellect-ai/hivemind/blob/213bff98a62accb91f254e2afdccbf1d69ebdea9/hivemind/compression/quantization.py -# Original code is licensed under the MIT License. -# See the LICENSE file in the original repository for more information. - -import torch -import numpy as np -from typing import Tuple -import math -from concurrent.futures import ThreadPoolExecutor -import os - -RANGE_IN_SIGMAS: int = 6 -EXECUTOR = ThreadPoolExecutor(max_workers=int(os.environ.get("QUANTIZATION_THREADS", 128))) -n_bins = 2**8 - - -def average_buckets(tensor: torch.Tensor, quant_weight: torch.Tensor, n_bins: int) -> torch.Tensor: - """Return the average value in each bucket""" - bin_sums = torch.zeros(n_bins).scatter_add_(0, quant_weight.flatten().long(), tensor.flatten()) - bin_counts = torch.clamp_min_(torch.bincount(quant_weight.flatten(), minlength=n_bins), 1) - lookup = bin_sums / bin_counts - return lookup - - -def get_chunk_size(num_elements: int, min_chunk_size: int) -> int: - """Adjust chunk_size to minimize imbalance between chunk sizes""" - if min_chunk_size >= num_elements: - return min_chunk_size - leftover_elements = num_elements % min_chunk_size - num_chunks = num_elements // min_chunk_size - return min_chunk_size + (leftover_elements - 1) // num_chunks + 1 - - -def quantile_qq_approximation(array: np.ndarray, n_quantiles: int, min_chunk_size: int = 10**5) -> np.ndarray: - """Estimate uniform quantiles of data using quantile-of-quantiles. Runs in parallel.""" - if not array.data.c_contiguous and array.data.f_contiguous: - array = array.T - array = np.ascontiguousarray(array.reshape(-1)) - quantiles = np.linspace(0.0, 1.0, num=n_quantiles, dtype=array.dtype) - chunk_size = get_chunk_size(len(array), min_chunk_size) - num_chunks = (len(array) - 1) // chunk_size + 1 - partition_quantiles = np.empty((num_chunks, len(quantiles)), dtype=array.dtype) - - jobs = [] - for i in range(num_chunks): - chunk = slice(chunk_size * i, chunk_size * (i + 1)) - jobs.append(EXECUTOR.submit(np.quantile, array[chunk], quantiles, out=partition_quantiles[i])) - - for job in jobs: - job.result() - return np.quantile(partition_quantiles, quantiles) - - -def uniform_8bit_quantize(tensor: torch.Tensor, inplace: bool = True) -> Tuple[torch.Tensor, torch.Tensor]: - offset = n_bins // 2 - # shift = tensor.mean() - # centered_tensor = tensor.sub_(shift) if inplace else tensor - shift - centered_tensor = tensor - std_unbiased = centered_tensor.norm() / math.sqrt(centered_tensor.numel() - 1) - scale = RANGE_IN_SIGMAS * std_unbiased / n_bins - quantized = torch.quantize_per_tensor(centered_tensor, scale, offset, torch.quint8).int_repr() - lookup = average_buckets(tensor, quantized, n_bins) - return quantized, lookup - - -def quantile_8bit_quantize(tensor: torch.Tensor, inplace: bool = True) -> Tuple[torch.Tensor, torch.Tensor]: - borders = torch.as_tensor(quantile_qq_approximation(tensor.numpy(), n_bins + 1)[1:-1]) - quantized = torch.clamp_(torch.bucketize(tensor, borders), 0, n_bins - 1) - lookup = average_buckets(tensor, quantized, n_bins) - return quantized, lookup diff --git a/src/zeroband/config.py b/src/zeroband/config.py deleted file mode 100644 index 84e2b294..00000000 --- a/src/zeroband/config.py +++ /dev/null @@ -1,275 +0,0 @@ -from enum import Enum -from typing import Any, Literal, TypeAlias -import os - -from pydantic import create_model, model_validator -from pydantic_config import BaseConfig - -AttnFnType: TypeAlias = Literal["flex", "math"] - -class Compression(Enum): - NO = "no" - UINT8 = "uint8" - - -class DataConfig(BaseConfig): - dataset_name_or_paths: str = "datasets/fineweb-edu" - val_dataset_name_or_paths: str | None = None - seq_length: int = 1024 - fake: bool = False - num_workers: int = 4 - max_train_samples: int | None = None - max_eval_samples: int | None = None - dataset_ratio: str | None = None - data_rank: int | None = None - data_world_size: int | None = None - reverse_data_files: bool = False - split_by_data_rank: bool = True - - -class AdamConfig(BaseConfig): - type: Literal["adam"] = ( - "adam" # the literal is used to distinguish between the different optimizers configuration in the union type - ) - lr: float = 4e-4 - weight_decay: float = 0.1 - betas1: float = 0.9 - betas2: float = 0.95 - - -class SoapConfig(BaseConfig): - type: Literal["soap"] = "soap" - lr: float = 4e-4 - weight_decay: float = 1e-05 - betas1: float = 0.9 - betas2: float = 0.95 - - max_preconditioner_dim: int = 8192 - precondition_frequency: int = 100 - - -OptimizersConfig: TypeAlias = AdamConfig | SoapConfig - - -class OptimConfig(BaseConfig): - optim: OptimizersConfig = AdamConfig() - - sched_type: Literal["cosine", "linear", "wsd-sqrt"] = "cosine" - warmup_steps: int = 1000 - stable_steps: int = 80_000 - total_steps: int = 88_000 - batch_size: int = 512 - - z_loss: bool = False - z_loss_weight: float = 2e-4 - num_chunks: int | None = None - - -class DilocoConfig(BaseConfig): - outer_lr: float = 0.7 - inner_steps: int - compression: Compression = Compression.NO - - retry_all_reduce: int = 3 - - -class MemoryProfilerConfig(BaseConfig): - freq: int = 10 - snapshot_dir: str - - -class TrainConfig(BaseConfig): - micro_bs: int = 1 - - ac_ckpt: bool | int = False - reshard_after_forward: bool = True # old shard grad op True mean full shard - - reduce_fp32: bool = False # should be True if SXM. Keep to false as default for backward compatibility - - log_model_hash: bool = False - - memory_profiler: MemoryProfilerConfig | None = None - - torch_profiler: bool = False - - sequence_packing: bool = True - - torch_compile: bool = True - - fused_linear_ce: bool = False - - fsdp_cpu_offload: bool = False - - attn_fn: AttnFnType = "flex" - - -class MonitorConfig(BaseConfig): - log_flush_interval: int = 10 - base_url: str | None = None - auth_token: str | None = None - - -class RemoteConfig(BaseConfig): - path: str # could be a s3 path - interval: int - - -class CkptConfig(BaseConfig): - path: str | None = None - interval: int | None = None - topk: int | None = None - - remote: RemoteConfig | None = None - - remote_data_path: str | None = None - remote_data_load: bool = False - - resume: str | None = None - - skip_dataloader: bool = False - - live_recovery_rank_src: int | None = None - - data_path: str | None = None - - token_count: int | None = None - - @model_validator(mode="after") - def validate_path_and_interval(self): - if (self.path is None) != (self.interval is None): - raise ValueError("path and interval must be both set or both None") - if self.path is None and self.remote is not None: - raise ValueError("remote_path is set but path is not set") - - return self - - @model_validator(mode="after") - def validate_remote_data_path(self): - if self.remote_data_load and self.data_path is not None: - raise ValueError("remote_data_load and data_path are mutually exclusive") - - if self.remote_data_load and self.remote_data_path is None: - raise ValueError("remote_data_load is set but remote_data_path is not set") - return self - - -ENV_VAR_PREFIX = "ZERO_BAND_" - -class Config(BaseConfig): - # main config - name_model: Literal["debugmodel", "70M","150M", "271M", "1B", "7B", "10B", "13B", "26B", "70B"] = "150M" - type_model: Literal["llama2", "llama3"] = "llama3" - - # Project/Run - project: str = "zeroband" - run_id: str | None = None - run_name: str | None = None - - # Logger - metric_logger_type: Literal["wandb", "dummy"] = "wandb" - wandb_resume: bool = False - log_level: Literal["NOTSET", "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] = "INFO" - log_all_rank: bool = False - - # sub config - diloco: DilocoConfig | None = None - data: DataConfig = DataConfig() - optim: OptimConfig = OptimConfig() - train: TrainConfig - monitor: MonitorConfig | None = None - - ckpt: CkptConfig = CkptConfig() - - @model_validator(mode="after") - def ckpt_diloco_step(self): - if self.ckpt is not None and self.ckpt.interval is not None and self.diloco is not None: - assert ( - self.ckpt.interval % self.diloco.inner_steps == 0 - ), "ckpt interval must be a multiple of diloco inner steps as we only save at the end of an outer step" - return self - - @model_validator(mode="after") - def validate_live_recovery_rank_src(self): - if self.ckpt is not None and self.ckpt.live_recovery_rank_src is not None and self.diloco is None: - raise ValueError("live_recovery_rank_src is only supported with diloco") - return self - - -def resolve_env_vars(config: Config) -> None: - """ - Resolve environment variables for config fields. - Modifies the config in place. - Environment variables should be prefixed with ZERO_BAND_. - """ - - def _resolve_value(env_var: str, field_name: str, config_obj: Any) -> Any: - """ - Resolve a single value from an environment variable - env_var: full environment variable name (e.g. ZERO_BAND_TRAIN_MICRO_BS) - field_name: actual field name in the config object (e.g. micro_bs) - """ - value = os.environ.get(env_var) - if value is not None: - if (field_info := config_obj.__class__.model_fields.get(field_name)) is None: - raise AttributeError(f"Config {config_obj} has no attribute {field_name}") - - try: - # Create a temporary model with just this field, then validate and rip it out. - py_model = create_model('TempModel', __base__ = BaseConfig, **{field_name: (field_info.annotation, ...)}) # type: ignore - validated = py_model.model_validate({field_name: value}) - return getattr(validated, field_name) - except Exception as e: - raise ValueError(f"Error setting {env_var}={value}: {e}") - return None - - def _resolve_nested(prefix: str, config_obj: Any) -> None: - if not hasattr(config_obj, 'model_fields'): - return - - for field_name, _ in config_obj.__class__.model_fields.items(): - # Build the full env var name - full_env_var = f"{ENV_VAR_PREFIX}{prefix}_{field_name}".upper() if prefix else f"{ENV_VAR_PREFIX}{field_name}".upper() - - # Try to resolve the field directly using the local field name - value = _resolve_value(full_env_var, field_name, config_obj) - if value is not None: - setattr(config_obj, field_name, value) - - # Handle nested configs - field_value = getattr(config_obj, field_name) - if field_value is not None and hasattr(field_value, 'model_fields'): - # Pass the prefix for building env var names, but use local field names for lookup - _resolve_nested(f"{prefix}_{field_name}" if prefix else field_name, field_value) - - def _get_valid_env_vars(prefix: str, config_obj: Any) -> set[str]: - """Recursively collect all valid environment variable names""" - valid_vars = set() - if not hasattr(config_obj, 'model_fields'): - return valid_vars - - for field_name, _ in config_obj.__class__.model_fields.items(): - full_env_var = f"{ENV_VAR_PREFIX}{prefix}_{field_name}".upper() if prefix else f"{ENV_VAR_PREFIX}{field_name}".upper() - valid_vars.add(full_env_var) - - field_value = getattr(config_obj, field_name) - if field_value is not None and hasattr(field_value, 'model_fields'): - nested_prefix = f"{prefix}_{field_name}" if prefix else field_name - valid_vars.update(_get_valid_env_vars(nested_prefix, field_value)) - - return valid_vars - - # Check for any invalid ZERO_BAND_ environment variables - valid_env_vars = _get_valid_env_vars("", config) - invalid_vars = [] - for env_var in os.environ: - if env_var.startswith(ENV_VAR_PREFIX) and env_var not in valid_env_vars: - invalid_vars.append(env_var) - - if invalid_vars: - raise ValueError( - f"Found invalid environment variables with {ENV_VAR_PREFIX} prefix: {', '.join(invalid_vars)}\n" - "See the full list of valid config veriables in src/zeroband/config.py." - ) - - # Now resolve the valid ones. - _resolve_nested("", config) diff --git a/src/zeroband/data.py b/src/zeroband/data.py index 64d8be19..b8e98b77 100644 --- a/src/zeroband/data.py +++ b/src/zeroband/data.py @@ -3,8 +3,9 @@ from typing import Any, Generator, Optional, List, Dict, TypedDict, Union import functools -from zeroband.utils.logger import get_logger -from zeroband.config import DataConfig +from pydantic_config import BaseConfig + +from zeroband.logger import get_logger import torch from torch.utils.data import IterableDataset, Dataset @@ -19,6 +20,21 @@ TEST_VOCAB_SIZE = 1024 +class DataConfig(BaseConfig): + dataset_name_or_paths: str = "datasets/fineweb-edu" + val_dataset_name_or_paths: str | None = None + seq_length: int = 1024 + fake: bool = False + num_workers: int = 4 + max_train_samples: int | None = None + max_eval_samples: int | None = None + dataset_ratio: str | None = None + data_rank: int | None = None + data_world_size: int | None = None + reverse_data_files: bool = False + split_by_data_rank: bool = True + + class FakeTokenizedDataset(IterableDataset): """This is a dummy dataset that generates random sequences of length seq_len and vocab_size""" @@ -273,6 +289,7 @@ def load_state_dict(self, state_dict): dataset.load_state_dict(state_dict[f"dataset_{i}"]) self._init_random_state() + def get_dataloader( tokenizer, world_size: int, @@ -395,7 +412,6 @@ def load_all_datasets( split_rank = rank split_world_size = world_size - get_logger().info("Loading Train dataset(s)") ds = _load_datasets( diff --git a/src/zeroband/diloco.py b/src/zeroband/diloco.py deleted file mode 100644 index 630a8d88..00000000 --- a/src/zeroband/diloco.py +++ /dev/null @@ -1,215 +0,0 @@ -import re -import time -import torch -from torch import nn -from zeroband.comms import ElasticDeviceMesh -from zeroband.collectives import Compression, all_reduce -from zeroband.utils.world_info import get_world_info -from zeroband.utils.logger import get_logger -from zeroband.config import DilocoConfig -import torch.distributed as dist -from torch.distributed._tensor.api import DTensor -from functools import lru_cache - - -@lru_cache(maxsize=None) -def _find_first_number(s: str) -> int: - match = re.search(r"\d+", s) - if match: - return int(match.group()) - else: - return -1 - - -class Diloco: - """ - This class implements the diloco algorithm from https://arxiv.org/abs/2311.08105 and https://arxiv.org/abs/2407.07852. - - It handles the outer loop as well as the inter node communication. - - There is no VRAM overhead with this implementation as the model is outer optimizer is offloaded to cpu. - All reduce communication are also done on cpu using GLOO. - - Example usage: - - # Example usage in a training loop: - - diloco = Diloco(config.diloco, model, elastic_device_mesh) - - for outer_step in range(num_outer_steps): - for inner_step in range(config.diloco.inner_steps): - # Regular inner training loop - optimizer.zero_grad() - loss = model(batch) - loss.backward() - optimizer.step() - - diloco.step(model) - """ - - def __init__( - self, - config: DilocoConfig, - model: nn.Module, - elastic_device_mesh: ElasticDeviceMesh, - ): - self.config = config - - if config.compression == Compression.UINT8: - from zeroband.C.collectives import ring_allreduce as _ # noqa: F401 - # just force compilation - - self.elastic_device_mesh = elastic_device_mesh - - self._logger = get_logger() - self.world_info = get_world_info() - - self._init_offloaded_optimizer(model=model) - - @torch.no_grad() - def _init_offloaded_optimizer(self, model): - self.param_list_cpu = self.get_offloaded_param(model) - self.outer_optimizer = torch.optim.SGD( - self.param_list_cpu, lr=self.config.outer_lr, momentum=0.9, nesterov=True - ) - self._logger.debug("offload model to cpu") - - @torch.no_grad() - def sync_pseudo_gradient(self, model: nn.Module, fake: bool = False, flag: str = "outer"): - """ - Sync the pseudo gradient from the local process group to the global process group - """ - _start_time = time.perf_counter() - - self.elastic_device_mesh.maybe_reinit_global_pg(admit_joiners=False) - world_size_post_init = self.elastic_device_mesh.global_pg.size() - - world_size = world_size_post_init - - self._logger.debug("sync pseudo gradient %s with world size %d", " fake" if fake else "", world_size) - - global_pg = self.elastic_device_mesh.global_pg - for i in range(self.config.retry_all_reduce): - for param_offloaded, param in zip(self.param_list_cpu, model.parameters()): - assert isinstance(param_offloaded.grad, DTensor) - if fake: - param_offloaded.grad.to_local().zero_() - else: - param_offloaded.grad.to_local().copy_(param_offloaded.data.to_local()) - param_offloaded.grad.to_local().sub_(param.data.to_local().to(param_offloaded.data.device)) - try: - self.offloaded_grad_flat_tensor.div_(world_size) - _collective_start_time = time.perf_counter() - self._logger.debug("Waiting on barrier") - self.elastic_device_mesh.monitored_barrier(flag) - - self._logger.debug("Beginning all reduce") - # all_reduce(self.config.compression, self.offloaded_grad_flat_tensor, dist.ReduceOp.SUM, global_pg) - for j, tensor_group in enumerate(self._offloaded_grad_grouped_tensor): - t0 = time.perf_counter() - all_reduce(self.config.compression, tensor_group, dist.ReduceOp.SUM, global_pg) - self._logger.debug( - f"{j}/{len(self._offloaded_grad_grouped_tensor)} all reduce bucket done in {time.perf_counter() - t0:.6f} seconds, numel: {tensor_group.numel()}" - ) - - self._logger.debug( - f"All reduce takes {time.perf_counter() - _collective_start_time:.6f} seconds numels: {self.offloaded_grad_flat_tensor.numel()}" - ) - break - except Exception as e: - self._logger.error(f"Error syncing pseudo gradient: {e}, retry {i+1}/{self.config.retry_all_reduce}") - global_pg = self.elastic_device_mesh.get_global_pg(maybe_reinit=True) - else: - self._logger.error( - "Failed to sync pseudo gradient after %d retries. Resorting to calculating pseudo-gradient without reduce", - self.config.retry_all_reduce, - ) - for param_offloaded, param in zip(self.param_list_cpu, model.parameters()): - if fake: - param_offloaded.grad.to_local().zero_() - else: - param_offloaded.grad.to_local().copy_(param_offloaded.data.to_local()) - param_offloaded.grad.to_local().sub_(param.data.to_local().to(param_offloaded.data.device)) - - self._logger.info(f"Sync psuedo-gradient in {time.perf_counter() - _start_time:.6f} seconds") - - @torch.no_grad() - def sync_inner_model(self, model: nn.Module): - """ - Sync the inner model from the CPU outer model to GPU - """ - - self._logger.debug("sync inner model") - for param_offloaded, param in zip(self.param_list_cpu, model.parameters()): - param.data.to_local().copy_(param_offloaded.data.to_local()) - - @torch.no_grad() - def get_offloaded_param(self, model: nn.Module) -> list[nn.Parameter]: - """ - Offload the model parameters to cpu - """ - param_items = [(name, param) for name, param in model.named_parameters() if param.requires_grad] - numels = sum(param.to_local().numel() for _, param in param_items) - - self.offloaded_data_flat_tensor = torch.empty((numels,), device="cpu", dtype=torch.float32) - self.offloaded_grad_flat_tensor = torch.zeros((numels,), device="cpu", dtype=torch.float32) - current_offset = 0 - offloaded_params = [] - param_group_cutoff = [] - - prev_id = None - for name, param in param_items: - if _find_first_number(name) != prev_id: - param_group_cutoff.append(current_offset) - prev_id = _find_first_number(name) - - # so here we copy the DTensor from gpu to cpu. The trick is that we need to recreate the DTensor with the correct - # cpu devise mesh, otherwise we have a cpu DTensor with a cuda device mesh which will fail to do any communication - target = param.data.to_local().detach() - data_tensor = self.offloaded_data_flat_tensor.as_strided(target.size(), target.stride(), current_offset) - grad_tensor = self.offloaded_grad_flat_tensor.as_strided(target.size(), target.stride(), current_offset) - current_offset += data_tensor.numel() - data_tensor.copy_(target) - - offloaded_param = nn.Parameter( - DTensor.from_local( - data_tensor, - device_mesh=self.elastic_device_mesh.cpu_local_mesh, - placements=param.data.placements, - ) - ) - - offloaded_param.grad = DTensor.from_local( - grad_tensor, - device_mesh=self.elastic_device_mesh.cpu_local_mesh, - placements=param.data.placements, - ) - # here we pre-allocate the grad DTensor on cpu. - offloaded_param.requires_grad = True - offloaded_params.append(offloaded_param) - - param_group_cutoff.append(current_offset) - # self._logger.debug(f"Cutoffs: {param_group_cutoff}") - - self._offloaded_grad_grouped_tensor = [ - self.offloaded_grad_flat_tensor.as_strided((j - i,), (1,), i) - for i, j in zip(param_group_cutoff, param_group_cutoff[1:]) - ] - # self._logger.debug( - # f"Grouped Tensors({len(self._offloaded_grad_grouped_tensor)}){[i.numel() for i in self._offloaded_grad_grouped_tensor]}" - # ) - return offloaded_params - - @torch.no_grad() - def step(self, model: nn.Module, fake: bool = False, flag: str = "outer"): - """ - Step the optimizer - """ - time_start = time.perf_counter() - self.sync_pseudo_gradient(model, fake=fake, flag=flag) - self._logger.info(f"all reduce pseudo gradient in: {time.perf_counter() - time_start} seconds") - - if self.outer_optimizer is not None: - self.outer_optimizer.step() - - self.sync_inner_model(model) diff --git a/src/zeroband/utils/logger.py b/src/zeroband/logger.py similarity index 51% rename from src/zeroband/utils/logger.py rename to src/zeroband/logger.py index 91050bf0..d1aa2f91 100644 --- a/src/zeroband/utils/logger.py +++ b/src/zeroband/logger.py @@ -1,17 +1,10 @@ import logging -from zeroband.config import Config -from zeroband.utils.world_info import get_world_info +from zeroband.world_info import get_world_info logger = None -""" -ZERO_BAND_LOG_LEVEL=DEBUG allow to control the log level for all ranks -ZERO_BAND_LOG_ALL_RANK=true allow to control if all ranks should log or only the local rank 0 -""" - - class CustomFormatter(logging.Formatter): def __init__(self, local_rank: int): super().__init__() @@ -24,28 +17,18 @@ def format(self, record): return formatter.format(record) -def get_logger(config: Config | None = None, name: str | None = None) -> logging.Logger: +def get_logger(config=None, name: str | None = None) -> logging.Logger: global logger # Add this line to modify the global logger variable if logger is not None: return logger + world_info = get_world_info() - try: - world_info = get_world_info() - except KeyError: - from zeroband.utils.world_info import WorldInfo - - world_info = WorldInfo.__new__(WorldInfo) - world_info.local_rank = 0 logger = logging.getLogger(name or __name__) - log_level = config.log_level if config else "DEBUG" if world_info.local_rank == 0: - logger.setLevel(level=getattr(logging, log_level, logging.INFO)) + logger.setLevel(level=logging.INFO) else: - if (not config) or config.log_all_rank: - logger.setLevel(level=getattr(logging, log_level, logging.INFO)) - else: - logger.setLevel(level=logging.CRITICAL) # Disable logging for non-zero ranks + logger.setLevel(level=logging.CRITICAL) handler = logging.StreamHandler() handler.setFormatter(CustomFormatter(world_info.local_rank)) diff --git a/src/zeroband/loss.py b/src/zeroband/loss.py deleted file mode 100644 index a7c04a43..00000000 --- a/src/zeroband/loss.py +++ /dev/null @@ -1,87 +0,0 @@ -from torch import Tensor -import torch -import torch.nn.functional as F - -def compute_cross_entropy_loss( - logits: Tensor, - labels: Tensor, - z_weight: float | None = None, - num_chunks: int | None = None, - ignore_index: int = -100, - fused_linear_weight: Tensor | None = None, - ) -> tuple[Tensor, Tensor | None]: - """ - Compute cross entropy loss in fp32, optionally chunked, and optionally with max z loss. - - Do not torch compile this function if you set num_chunks >= 1. It will unroll the chunking loop, thus removing the benefit of chunking. - - Max z loss is from the baichuan2 paper: https://arxiv.org/abs/2309.10305 - - .. math:: - z_{loss} = weight z^{2} - where z is the max logit - """ - - if fused_linear_weight is None: - num_elements = (labels != ignore_index).sum().float() - - if num_chunks is not None and not num_chunks <= 1: - l_labels: list[Tensor] = [target_chunk.reshape(-1) for target_chunk in labels.chunk(num_chunks, dim=0)] - l_logits: list[Tensor] = [logit_chunk.reshape(-1, logit_chunk.size(-1)) for logit_chunk in logits.reshape(-1, logits.size(-1)).chunk(num_chunks, dim=0)] - else: - l_labels: list[Tensor] = [labels.reshape(-1)] - l_logits: list[Tensor] = [logits.reshape(-1, logits.size(-1))] - - loss = 0.0 - ce_loss = None if z_weight is None else 0.0 - for logits_chunk, labels_chunk in zip(l_logits, l_labels): - if z_weight is None: - loss += _upcast_cross_entropy(logits_chunk, labels_chunk, ignore_index=ignore_index) - else: - ce, z = _upcast_cross_entropy_max_z(logits_chunk, labels_chunk, z_weight, ignore_index=ignore_index) - loss += ce - ce_loss += z - - return (loss / num_elements), (None if ce_loss is None else ce_loss / num_elements) - - else: - # Ignore number of chunks, since it is not confugrable in liger. - from liger_kernel.ops.fused_linear_cross_entropy import LigerFusedLinearCrossEntropyFunction - ret = LigerFusedLinearCrossEntropyFunction.apply( - logits, # _input - fused_linear_weight, # weight - labels, # target - None, # ce_weight - None, # bias - ignore_index, # ce_weight=None - z_weight if z_weight is not None else 0.0, # lse_square_scale - 0.0, # label_smoothing - "mean", # reduction - None, # softcap - fused_linear_weight is not None, # return_z_loss - ) - if not isinstance(ret, tuple): - assert isinstance(ret, Tensor) - ret = (ret, None) - return ret - - -# Compile the upcast into the CE calculation -@torch.compile -def _upcast_cross_entropy(logit_chunk, label_chunk, ignore_index) -> Tensor: - return F.cross_entropy(logit_chunk.float(), label_chunk, ignore_index=ignore_index, reduction="sum") - - -@torch.compile -def _upcast_cross_entropy_max_z( - logits: Tensor, - targets: Tensor, - z_loss_weight: float, - ignore_index: int = -100, -) -> tuple[Tensor, Tensor]: - # max is not differentiable. But here we just pick the indices of the max value, so it's fine for backpropagation. - loss = F.cross_entropy(logits.float(), targets, ignore_index=ignore_index, reduction="sum") - max_logits = logits.max(dim=-1)[0] - max_logits = max_logits.where(targets != ignore_index, 0) - z_loss = z_loss_weight * max_logits.pow(2).mean() - return loss, z_loss diff --git a/src/zeroband/models/llama/__init__.py b/src/zeroband/models/llama/__init__.py index 55ce25e8..40cc971a 100644 --- a/src/zeroband/models/llama/__init__.py +++ b/src/zeroband/models/llama/__init__.py @@ -7,7 +7,7 @@ # Llama 2 is licensed under the LLAMA 2 Community License, # Copyright (c) Meta Platforms, Inc. All Rights Reserved. -from zeroband.config import Config +from typing import Literal from zeroband.models.llama.model import ModelArgs, Transformer __all__ = ["Transformer"] @@ -83,21 +83,21 @@ def get_model( - config: Config, + type_model: Literal["llama2", "llama3"], + name_model: str, + seq_length: int, vocab_size: int, ) -> tuple[Transformer, ModelArgs]: """get the transformer model""" - if config.type_model == "llama2": - model_config = llama2_configs[config.name_model] - elif config.type_model == "llama3": - model_config = llama3_configs[config.name_model] + if type_model == "llama2": + model_config = llama2_configs[name_model] + elif type_model == "llama3": + model_config = llama3_configs[name_model] else: - raise ValueError(f"Model type {config.type_model} not supported") + raise ValueError(f"Model type {type_model} not supported") model_config.vocab_size = vocab_size - model_config.max_seq_len = config.data.seq_length - model_config.attn_fn = config.train.attn_fn - model_config.fused_linear_ce = config.train.fused_linear_ce + model_config.max_seq_len = seq_length return Transformer(model_config), model_config diff --git a/src/zeroband/models/llama/model.py b/src/zeroband/models/llama/model.py index d9650358..d54a269f 100644 --- a/src/zeroband/models/llama/model.py +++ b/src/zeroband/models/llama/model.py @@ -13,13 +13,12 @@ import contextlib from dataclasses import dataclass -from typing import Optional, Tuple +from typing import Literal, Optional, Tuple import torch import torch.nn.functional as F from torch import nn from zeroband.models.norms import build_norm -from zeroband.config import AttnFnType from torch.nn.attention.flex_attention import create_block_mask, flex_attention, BlockMask, _DEFAULT_SPARSE_BLOCK_SIZE from torch.nn.attention import SDPBackend, sdpa_kernel @@ -63,7 +62,7 @@ class ModelArgs: fused_linear_ce: bool = False - attn_fn: AttnFnType = "flex" # slow for testing + attn_fn: Literal["flex", "math"] = "flex" # slow for testing def precompute_freqs_cis(dim: int, end: int, theta: float = 10000.0) -> torch.Tensor: diff --git a/src/zeroband/optimizers.py b/src/zeroband/optimizers.py deleted file mode 100644 index 321fecf9..00000000 --- a/src/zeroband/optimizers.py +++ /dev/null @@ -1,55 +0,0 @@ -from typing import Iterable - -import torch -import torch.distributed.fsdp -import torch.distributed.tensor - -from distributed_shampoo import ( - DefaultEigenvalueCorrectedShampooConfig, - DistributedShampoo, - FullyShardShampooConfig, - ShampooPT2CompileConfig, -) - -from zeroband.config import Config, AdamConfig, SoapConfig, OptimizersConfig - - -def get_optimizer(config: Config, params: Iterable[torch.nn.Parameter]) -> torch.optim.Optimizer: - """ - Obtain the optimizer for the model. - """ - - _config: OptimizersConfig = config.optim.optim - - if isinstance(_config, AdamConfig): - opt = torch.optim.AdamW( - params, - lr=_config.lr, - weight_decay=_config.weight_decay, - betas=(_config.betas1, _config.betas2), - ) - elif isinstance(_config, SoapConfig): - opt = DistributedShampoo( - params, - lr=_config.lr, - betas=(_config.betas1, _config.betas2), - epsilon=1e-12, - weight_decay=_config.weight_decay, - max_preconditioner_dim=_config.max_preconditioner_dim, - precondition_frequency=_config.precondition_frequency, - use_decoupled_weight_decay=True, - # This can also be set to `DefaultSOAPConfig` which uses QR decompositions, hence is - # less expensive and might thereby allow for a smaller `precondition_frequency`. - preconditioner_config=DefaultEigenvalueCorrectedShampooConfig, - distributed_config=FullyShardShampooConfig(), - shampoo_pt2_compile_config=ShampooPT2CompileConfig( - enable_shampoo_pt2_dynamic_shape=False - ), - ) - else: - raise ValueError(f"Unknown optimizer {_config.optimizer}") - - return opt - - -__all__ = ["OptimizersConfig", "get_optimizer"] diff --git a/src/zeroband/train.py b/src/zeroband/train.py deleted file mode 100644 index ecab1829..00000000 --- a/src/zeroband/train.py +++ /dev/null @@ -1,588 +0,0 @@ -import os -import time -from typing import TYPE_CHECKING -from multiprocessing.process import _children # type: ignore - -import torch -import torch.distributed as dist -from torch.distributed._composable.fsdp import fully_shard, MixedPrecisionPolicy, CPUOffloadPolicy # type: ignore -from torch.autograd.profiler import record_function - -from zeroband.checkpoint import CkptManager, TrainingProgress -from zeroband.comms import ElasticDeviceMesh -from zeroband.config import Config, resolve_env_vars -from zeroband.data import TEST_VOCAB_SIZE, get_dataloader -from zeroband.diloco import Diloco -from zeroband.loss import compute_cross_entropy_loss -from zeroband.lr_scheduler import get_scheduler -from zeroband.models.llama import get_model -from zeroband.models.llama.model import create_block_mask_from_seqlens -from zeroband.optimizers import get_optimizer -from zeroband.utils import ( - FakeTokenizer, - PerfCounter, - get_module_signature, - get_optimizer_signature, - get_tensor_list_signature, - get_peak_flops, - get_num_params, - get_num_flop_per_token, -) -from zeroband.utils.metric_logger import MetricLogger, WandbMetricLogger, DummyMetricLogger -from zeroband.utils.monitor import HttpMonitor -from zeroband.utils.activation_ckpt import apply_ac_ckpt -from zeroband.utils.profiler import MemoryProfiler -from zeroband.utils.world_info import get_world_info -from zeroband.utils.logger import get_logger -from zeroband.utils.stopwatch import Stopwatch - -from transformers import AutoTokenizer -from pydantic_config import parse_argv - - -def log_hash_training_state( - config: Config, - model: torch.nn.Module, - inner_optimizer: torch.optim.Optimizer, - diloco: Diloco | None, - metric_logger: MetricLogger | None, - step: int, - id: str = "", -): - """Log the hash of the model and optimizer. This function is slow""" - if config.train.log_model_hash: - inner_model_hash = get_module_signature(model) - inner_optimizer_hash = get_optimizer_signature(inner_optimizer) - - logger.debug(f"inner diloco model {id} : {inner_model_hash}") - logger.debug(f"inner optimizer hash {id} : {inner_optimizer_hash}") - - metrics = { - "step": step, - f"inner_model_hash_{id}": inner_model_hash, - f"inner_optimizer_hash_{id}": inner_optimizer_hash, - } - - if config.diloco is not None and diloco is not None: - outer_optimizer_hash = get_optimizer_signature(diloco.outer_optimizer) - outer_model_hash = get_tensor_list_signature(diloco.param_list_cpu) # type: ignore - - logger.debug(f"outer diloco optimizer hash {id} : {outer_optimizer_hash}") - logger.debug(f"outer diloco model hash {id} : {outer_model_hash}") - - metrics.update({ - f"outer_optimizer_hash_{id}": outer_optimizer_hash, - f"outer_model_hash_{id}": outer_model_hash - }) - if world_info.rank == 0: - assert metric_logger is not None - metric_logger.log(metrics) - - -def train(config: Config): - # batch_size is the total batch size for all GPUs - assert config.optim.batch_size % world_info.local_world_size == 0 - batch_size = config.optim.batch_size // world_info.local_world_size - - assert ( - batch_size % config.train.micro_bs == 0 - ), f"The micro batch size ({config.train.micro_bs}) must divide the number of samples on each GPU ({batch_size})." - gradient_accumulation_steps = batch_size // config.train.micro_bs - - if config.ckpt is not None and config.ckpt.interval is not None and config.diloco is not None: - assert ( - config.ckpt.interval % config.diloco.inner_steps == 0 - ), "ckpt interval must be a multiple of diloco inner steps as we only save at the end of an outer step" - - sw = Stopwatch(config) - sw.start("train()") - - # Load tokenizer - with sw.record_block("Load Tokenizer"): - if config.data.fake and config.name_model == "debugmodel": - tokenizer = FakeTokenizer() - elif config.type_model == "llama2": - tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1", use_fast=True) - elif config.type_model == "llama3": - tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B", use_fast=True) - else: - raise ValueError(f"Model type {config.type_model} not supported") - - with sw.record_block("Get Dataloader"): - train_dataloader = get_dataloader( - tokenizer=tokenizer, - world_size=world_info.world_size, - rank=world_info.rank, - batch_size=config.train.micro_bs, - data_config=config.data, - ) - train_dataloader_iterator = iter(train_dataloader) - - with sw.record_block("Get Model"): - model, model_config = get_model( - config, - vocab_size=len(tokenizer) if config.name_model != "debugmodel" or not config.data.fake else TEST_VOCAB_SIZE, - ) - - - gpu_peak_flops = get_peak_flops(torch.cuda.get_device_name(torch.device("cuda"))) - logger.info(f"Peak FLOPS used for computing MFU: {gpu_peak_flops:.3e}") - - num_params = get_num_params(model, exclude_embedding=True) - logger.info(f"Number of parameters: {num_params}") - num_flop_per_token = get_num_flop_per_token( - num_params, - model_config, - config.data.seq_length, - ) - - with sw.record_block("Shard Model"): - if config.train.ac_ckpt: - num = 1 if isinstance(config.train.ac_ckpt, bool) else config.train.ac_ckpt - apply_ac_ckpt(model, num) - - elastic_device_mesh = ElasticDeviceMesh( - enable=config.diloco is not None, - live_recovery_rank_src=config.ckpt.live_recovery_rank_src - ) - - mp_policy = MixedPrecisionPolicy( - param_dtype=torch.bfloat16, - reduce_dtype=torch.float32 if config.train.reduce_fp32 else None - ) - - offload_policy = CPUOffloadPolicy(pin_memory=True) if config.train.fsdp_cpu_offload else None - - for layer_id, transformer_block in model.layers.items(): - if config.train.reshard_after_forward: - reshard_after_forward = int(layer_id) < len(model.layers) - 1 - else: - reshard_after_forward = False - fully_shard( - transformer_block, - mp_policy=mp_policy, - mesh=elastic_device_mesh.cuda_local_mesh, - reshard_after_forward=reshard_after_forward, - offload_policy=offload_policy, - ) - fully_shard( - model, - mp_policy=mp_policy, - mesh=elastic_device_mesh.cuda_local_mesh, - reshard_after_forward=config.train.reshard_after_forward, - offload_policy=offload_policy, - ) - - # Setup optimizers - with sw.record_block("Optimizer Setup"): - inner_optimizer = get_optimizer(config, model.parameters()) - - diloco = Diloco(config.diloco, model, elastic_device_mesh) if config.diloco is not None else None - - scheduler = get_scheduler( - sched_type=config.optim.sched_type, - optimizer=inner_optimizer, - num_warmup_steps=config.optim.warmup_steps, - num_stable_steps=config.optim.stable_steps, - num_training_steps=config.optim.total_steps, - ) - - training_progress = TrainingProgress(total_tokens=0, outer_step=0, step=0) - - ckpt_manager = CkptManager( - config=config.ckpt, - model=model, - optimizer=inner_optimizer, - scheduler=scheduler, - dataloader=train_dataloader, - training_progress=training_progress, - data_rank=config.data.data_rank, - diloco_offloaded_optimizer=diloco.outer_optimizer if config.diloco is not None else None, # type: ignore - diloco_offloaded_param_list=diloco.param_list_cpu if config.diloco is not None else None, # type: ignore - ) - - if world_info.rank == 0: - logger_cls = WandbMetricLogger if config.metric_logger_type == "wandb" else DummyMetricLogger - metric_logger = logger_cls( - project=config.project, - logger_config={"config": config.model_dump(), "world_info": world_info.json()}, - resume=config.wandb_resume, - ) - else: - metric_logger = None - - with sw.record_block("Compile Model"): - if config.train.torch_compile: - # we need to compile AFTER creating the CKPT manager, DON'T ASK ME WHY - model = torch.compile(model) if not TYPE_CHECKING else model - - if config.ckpt.resume is not None: - with sw.record_block("Resume Checkpoint"): - # all is inplace - ckpt_manager.load( - resume_ckpt_path=config.ckpt.resume, - skip_dataloader=config.ckpt.skip_dataloader, - data_path=config.ckpt.data_path, - ) - log_hash_training_state( - config, model, inner_optimizer, diloco, metric_logger, step=training_progress.step, id="resume" - ) - - if config.train.memory_profiler is not None: - memory_profiler = MemoryProfiler(config.train.memory_profiler.freq, config.train.memory_profiler.snapshot_dir) - - if config.monitor is not None: - monitor = HttpMonitor(config=config.model_dump(), resume=False) - monitor.set_stage("init") - - num_inner_steps = config.diloco.inner_steps if config.diloco is not None else 1 - perf_counter = PerfCounter(window_size=10) - - logger.debug("Finished setup in %f seconds", sw.elapsed()) - - need_live_recovery = config.ckpt.live_recovery_rank_src is not None - while True: - if num_inner_steps > 1: - # if we don't use diloco we don't print the outer step logs - logger.info(f"outer_step step: {training_progress.outer_step}") - - time_start_outer = time.perf_counter() - - if config.diloco is not None: - assert diloco is not None - # this is a patch for now to allow live recovery worker to not affect the all reduce at all - - if not need_live_recovery: - elastic_device_mesh.maybe_reinit_global_pg(admit_joiners=True) - - maybe_dest_rank = elastic_device_mesh.live_recovery.should_send_ckpt_to() - if maybe_dest_rank is not None: - logger.info(f"Start live recovery to rank {maybe_dest_rank}") - ckpt_manager.send_ckpt_to_peer(elastic_device_mesh.global_pg, maybe_dest_rank, blocking=True) - - elastic_device_mesh.live_recovery.reset() - else: - ## receiving - time_start_live_recovery = time.perf_counter() - logger.info(f"Start live recovery from rank {config.ckpt.live_recovery_rank_src}") - - ## we create grad buffer and opts stats mamnually, the value will be overwritten by the ckpt but we need the DTensor to be correctly init before loading it - - diloco.outer_optimizer.step() # need to step to init the DTensor stats - - ckpt_manager.recv_ckpt_from_peer(elastic_device_mesh.global_pg) - - log_hash_training_state( - config, - model, - inner_optimizer, - diloco, - metric_logger, - step=training_progress.step, - id="live_reco_recv", - ) - need_live_recovery = False - - if config.ckpt.remote_data_load: - ckpt_manager.remote_data_load() - - logger.info("live recovery done in %f", time.perf_counter() - time_start_live_recovery) - - # at the beginning of the inner steps we allow joiner to arrive. - # We maybe reinit before the all reduce but only to allow leaving, not to join anymore - - if world_info.rank == 0 and config.monitor is not None: - monitor.set_stage("inner_loop") - - for inner_step in range(num_inner_steps): - logger.debug("Starting inner step.") - sw.start("inner_step") - - loss_batch = 0 - z_loss_batch = 0 - - with sw.record_block("Grad Acc Steps"): - for grad_acc_step in range(gradient_accumulation_steps): - sw.start("grad_acc_step") - - is_accumulating = grad_acc_step < gradient_accumulation_steps - 1 - # no sync if we are accumulating gradients - model.set_requires_gradient_sync(not is_accumulating) - - with sw.record_block("Load batch"): - # TODO/NOTE: We could overlap sending the batch with communication - # although to be honest the perf impact is minimal - batch = next(train_dataloader_iterator) - input_ids = batch["input_ids"].to("cuda") - labels = batch["labels"].to("cuda") - if config.train.sequence_packing: - seqlens = [seqlen.to("cuda") for seqlen in batch["seqlens"]] - block_mask = create_block_mask_from_seqlens(seqlens) if seqlens is not None else None - else: - seqlens = None - block_mask = None - - with sw.record_block("Run forward()"): - logits = model(tokens=input_ids, block_mask=block_mask).contiguous() - flatten_logits = logits.reshape(-1, logits.size(-1)) # b seq vocab -> (b * seq) vocab - flatten_labels = labels.reshape(-1) # b seq -> (b * seq) - - with sw.record_block("Loss Calculation"): - ce_loss, z_loss = compute_cross_entropy_loss( - flatten_logits, - flatten_labels, - z_weight=config.optim.z_loss_weight if config.optim.z_loss else None, - num_chunks=config.optim.num_chunks, - fused_linear_weight=model.output.weight if config.train.fused_linear_ce else None, - ) - - del logits - del flatten_logits - del flatten_labels - - if config.optim.z_loss: - assert z_loss is not None - ce_loss /= gradient_accumulation_steps - z_loss /= gradient_accumulation_steps - loss = ce_loss + z_loss - else: - loss = ce_loss / gradient_accumulation_steps - - with sw.record_block("Run backward()"): - loss.backward() - - with record_function("Clone Loss"): - # No need to time, takes 0 seconds - if config.optim.z_loss: - assert z_loss is not None - loss_batch += ce_loss.detach().clone() - z_loss_batch += z_loss.detach().clone() - else: - loss_batch += loss.detach().clone() - - elapsed = sw.stop("grad_acc_step") - logger.debug(f"Grad acc step {grad_acc_step} completed in {elapsed:.2f} seconds") - - with sw.record_block("Loss allreduce()"): - # Launch both allreduces at the same time to hide latency - loss_allreduce = dist.all_reduce(tensor=loss_batch, op=dist.ReduceOp.AVG, group=elastic_device_mesh.local_pg, async_op=True) - if config.optim.z_loss: - z_loss_allreduce = dist.all_reduce(tensor=z_loss_batch, op=dist.ReduceOp.AVG, group=elastic_device_mesh.local_pg, async_op=True) - - assert isinstance(loss_allreduce, torch.distributed.Work) - loss_allreduce.wait() - if config.optim.z_loss: - assert isinstance(z_loss_allreduce, torch.distributed.Work) - z_loss_allreduce.wait() - - with sw.record_block("Clip Grad"): - grad_norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0).full_tensor() # type: ignore (is a dtensor) - - with sw.record_block("Optimizer Step"): - inner_optimizer.step() - scheduler.step() - - with sw.record_block("Optimizer Zero Grad"): - inner_optimizer.zero_grad() - - # logging - training_progress.step += 1 - inner_lr = [group["lr"] for group in inner_optimizer.param_groups][0] - - # syncing loss across all data parallel rank within a nodes - new_tokens = config.data.seq_length * config.optim.batch_size - perf_counter.count_tokens(new_tokens) - - if config.diloco is None: - training_progress.total_tokens += new_tokens - else: - # we count the total tokens with respect to all diloco workers - # might need to tweak this as some worker might fail to join the all reduce later - training_progress.total_tokens += new_tokens * elastic_device_mesh.global_pg.size() - - assert isinstance(loss_batch, torch.Tensor) - metrics = { - "Loss": loss_batch.item(), - "step": training_progress.step, - "inner_lr": inner_lr, - "Perplexity": torch.exp(loss_batch).item(), - "total_tokens": training_progress.total_tokens, - "time": time.time(), - "grad_norm": grad_norm.item(), - } - - if config.optim.z_loss: - assert isinstance(z_loss_batch, torch.Tensor) - metrics["z_loss"] = z_loss_batch.item() - - log = f"step: {training_progress.step}, loss: {loss_batch.item():.4f}" - - tokens_per_second = perf_counter.get_tokens_per_second() - if tokens_per_second is not None: - metrics["tokens_per_second"] = tokens_per_second - metrics["mfu"] = ( - 100 * num_flop_per_token * tokens_per_second / gpu_peak_flops / world_info.local_world_size - ) - log += f", tokens_per_second: {tokens_per_second:.2f}, mfu: {metrics['mfu']:.2f}" - - if config.diloco is not None: - metrics["num_peers"] = elastic_device_mesh.global_pg.size() - log += f", diloco_peers: {metrics['num_peers']}" - - if world_info.rank == 0: - assert metric_logger is not None - metric_logger.log(metrics) - if config.monitor is not None: - monitor.log(metrics) - - logger.info(log) - - if config.train.memory_profiler is not None: - memory_profiler.step() - - elapsed = sw.stop("inner_step") - logger.debug(f"Inner step {inner_step} completed in {elapsed:.2f} seconds") - - if config.diloco is not None: - assert diloco is not None - if world_info.rank == 0 and config.monitor is not None: - monitor.set_stage("outer_loop") - - time_start_inner = time.perf_counter() - diloco.step(model=model, flag=str(training_progress.outer_step)) - diloco_time = time.perf_counter() - time_start_inner - - log_hash_training_state( - config, model, inner_optimizer, diloco, metric_logger, step=training_progress.step, id="outer_step" - ) - - training_progress.outer_step += 1 - - if ( - config.ckpt.interval is not None - and training_progress.step > 0 - and training_progress.step % config.ckpt.interval == 0 - ): - # we only allow to checkpoint after a outer step. For non diloco training outer step = 1 anyway - - do_remote = config.ckpt.remote is not None and training_progress.step % config.ckpt.remote.interval == 0 - ckpt_manager.save(remote=do_remote) - log_hash_training_state( - config, model, inner_optimizer, diloco, metric_logger, step=training_progress.step, id="save" - ) - - if config.diloco: - tokens_per_second = ( - config.optim.batch_size - * config.diloco.inner_steps - * config.data.seq_length - / (time.perf_counter() - time_start_outer) - ) - mfu = 100 * num_flop_per_token * tokens_per_second / gpu_peak_flops / world_info.local_world_size - logger.info(f"effective mfu: {mfu}") - - if world_info.rank == 0: - assert metric_logger is not None - metric_logger.log( - { - "outer_mfu": mfu, - "step": training_progress.step, - "outer_step": training_progress.outer_step, - "outer_tokens_per_second": tokens_per_second, - "all_reduce_step": diloco_time, - } - ) - - if training_progress.step >= config.optim.total_steps: - # we only allow to break outisde of the inner loop. - # This avoid ending the training in the middle of a the inner loop - # Since ckpt strategy and all reduce is done at the outer loop level. - break - - if world_info.rank == 0: - assert metric_logger is not None - metric_logger.finish() - if config.monitor is not None: - monitor.finish() - - ckpt_manager.wait_for_blocking_job() - - del elastic_device_mesh # allow to clean up for smoother tests transition - - if config.train.memory_profiler is not None: - logger.debug(f"Max memory used: {torch.cuda.max_memory_allocated() / 1024**2:.2f} MB") - - logger.info("Training finished, exiting ...") - - -if __name__ == "__main__": - # Allow eager fallback during production so that that the training runs dont die - # However, in development, we want to know that we broke torch compile - torch._dynamo.config.suppress_errors = "ZERO_BAND_DEV" not in os.environ # type: ignore - torch.set_float32_matmul_precision("high") - torch.manual_seed(42) - - config = Config(**parse_argv()) # type: ignore - resolve_env_vars(config) - world_info = get_world_info() - logger = get_logger(config) - - # torch.set_default_device("cuda") - torch.cuda.set_device(world_info.local_rank) - - def pretty_dict(d, indent=2): - for key, value in d.items(): - if isinstance(value, dict): - logger.debug(" " * indent + f"{key}:") - pretty_dict(value, indent + 2) - else: - logger.debug(" " * indent + f"{key}: {value}") - - logger.debug("config:") - pretty_dict(config.model_dump()) - - try: - if config.train.torch_profiler and world_info.rank == 0: - # NOTE(apaz-cli): I cannot seem to get the memory profiler to work. - # Running into this issue: https://github.com/pytorch/pytorch/issues/64345 - # In the meantime, we can use the memory snapshotter. - - logger.debug("Running train() with profiler.") - prof = torch.profiler.profile( - activities=[ - torch.profiler.ProfilerActivity.CPU, - torch.profiler.ProfilerActivity.CUDA, - ], - record_shapes=True, - # profile_memory=True, - # with_stack=True, - ) - try: - prof.__enter__() - train(config) - finally: - logger.debug("Exiting profiler context.") - prof.__exit__(None, None, None) - - logger.info("Exporting chrome trace.") - prof.export_chrome_trace("logs/profile.json.gz") - - width = 30 - logger.info("\n" + "*" * width + " GPU TIME " + "*" * width) - logger.info(prof.key_averages().table(sort_by="cuda_time_total", row_limit=10)) - - logger.info("\n" + "*" * width + " GPU MEM " + "*" * width) - logger.info(prof.key_averages().table(sort_by="self_cuda_memory_usage", row_limit=10)) - - # logger.info("Exporting memory timeline.") - # prof.export_memory_timeline(f"logs/mem_timeline.html", device="cuda:0") - else: - train(config) - except Exception as e: - # Subprocesses can prevent the main process from exiting, so we need to terminate them - logger.info("Caught an exception, terminating children") - logger.info(e) - for p in _children: - p.terminate() - - raise e diff --git a/src/zeroband/utils/__init__.py b/src/zeroband/utils.py similarity index 61% rename from src/zeroband/utils/__init__.py rename to src/zeroband/utils.py index fafa9c7b..18bab868 100644 --- a/src/zeroband/utils/__init__.py +++ b/src/zeroband/utils.py @@ -1,13 +1,29 @@ -import hashlib +from zeroband.models.llama.model import Transformer +from torch.distributed.algorithms._checkpoint.checkpoint_wrapper import checkpoint_wrapper +from zeroband.logger import get_logger import socket import time import torch from torch.distributed.fsdp import ShardingStrategy -from torch.distributed._tensor.api import DTensor -from distributed_shampoo import DistributedShampoo -__all__ = ["get_sharding_strategy", "get_peak_flops", "get_num_flop_per_token", "get_num_params"] +def apply_ac_ckpt(model: Transformer, num: int): + """Apply activation checkpointing to the model. + Apply to layers multiple of `num`. + + Example if `num=2` only half of the layers are checkpointed. + """ + logger = get_logger() + + layers_ckpt = 0 + + for layer_id, transformer_block in model.layers.named_children(): + if layers_ckpt % num == 0: + transformer_block = checkpoint_wrapper(transformer_block, preserve_rng_state=False) + model.layers.register_module(layer_id, transformer_block) + layers_ckpt += 1 + + logger.debug(f"Applied activation checkpointing to {layers_ckpt} layers") def get_sharding_strategy(sharding_strategy: str) -> ShardingStrategy: @@ -96,76 +112,6 @@ def get_tokens_per_second(self) -> float | None: return sum(self.tokens[1:]) / (self.times[-1] - self.times[0]) -TENSOR_SIG_SAMPLE_SIZE = 100 - - -def get_tensor_signature(a: torch.Tensor | torch.nn.Parameter) -> str: - """ - Get the tensor signature - """ - while isinstance(a, torch.nn.Parameter): - a = a.data - - if isinstance(a, DTensor): - a = a.full_tensor() - - if a.numel() < TENSOR_SIG_SAMPLE_SIZE: - b = a.as_strided(size=(a.numel(),), stride=(1,)) - else: - step_size = a.numel() // TENSOR_SIG_SAMPLE_SIZE - b = a.as_strided(size=(TENSOR_SIG_SAMPLE_SIZE,), stride=(step_size,)) - element_str = "".join([f"{x:.3e}" for x in b]) - element_hash = hashlib.md5(element_str.encode("utf-8")).hexdigest() - return f"{a.dtype}{a.shape}{a.stride()}<{element_hash}>" - - -def get_module_signature(module: torch.nn.Module, compress: bool = True) -> str: - """ - Get the module signature - """ - state_dict_sig = {name: get_tensor_signature(param) for name, param in module.named_parameters()} - if compress: - return hashlib.md5(str(state_dict_sig).encode("utf-8")).hexdigest() - else: - return "\n".join(f"{name}: {sig}" for name, sig in state_dict_sig.items()) - - -def get_dict_signature(dict: dict, compress: bool = True) -> str: - return hashlib.md5(str(dict).encode("utf-8")).hexdigest() - - -def get_optimizer_signature(optimizer: torch.optim.Optimizer, compress: bool = True) -> str: - """ - Get the optimizer signature - """ - - if isinstance(optimizer, DistributedShampoo): - return "mocked signature because shampoo does not support state_dict()" - - def unwrap_tensor(state_dict: dict) -> dict: - new_dict = {} - for key, value in state_dict.items(): - if isinstance(value, dict): - new_dict[key] = unwrap_tensor(value) - elif isinstance(value, torch.Tensor): - new_dict[key] = get_tensor_signature(value) - else: - new_dict[key] = str(value) - return new_dict - - state_dict_sig = unwrap_tensor(optimizer.state_dict()) - - if compress: - return hashlib.md5(str(state_dict_sig).encode("utf-8")).hexdigest() - else: - return "\n".join(f"{name}: {sig}" for name, sig in state_dict_sig.items()) - - -def get_tensor_list_signature(tensor_list: list[torch.Tensor]) -> str: - tensors = [get_tensor_signature(tensor) for tensor in tensor_list] - return hashlib.md5(str(tensors).encode("utf-8")).hexdigest() - - def get_random_available_port_list(num_port): # https://stackoverflow.com/questions/1365265/on-localhost-how-do-i-pick-a-free-port-number ports = [] @@ -193,4 +139,4 @@ def __init__(self): self.pad_token_id = 2 def __len__(self): - return self.vocab_size \ No newline at end of file + return self.vocab_size diff --git a/src/zeroband/utils/activation_ckpt.py b/src/zeroband/utils/activation_ckpt.py deleted file mode 100644 index eea9a98d..00000000 --- a/src/zeroband/utils/activation_ckpt.py +++ /dev/null @@ -1,24 +0,0 @@ -from zeroband.models.llama.model import Transformer - -from torch.distributed.algorithms._checkpoint.checkpoint_wrapper import checkpoint_wrapper - -from zeroband.utils.logger import get_logger - - -def apply_ac_ckpt(model: Transformer, num: int): - """Apply activation checkpointing to the model. - Apply to layers multiple of `num`. - - Example if `num=2` only half of the layers are checkpointed. - """ - logger = get_logger() - - layers_ckpt = 0 - - for layer_id, transformer_block in model.layers.named_children(): - if layers_ckpt % num == 0: - transformer_block = checkpoint_wrapper(transformer_block, preserve_rng_state=False) - model.layers.register_module(layer_id, transformer_block) - layers_ckpt += 1 - - logger.debug(f"Applied activation checkpointing to {layers_ckpt} layers") diff --git a/src/zeroband/utils/ip.py b/src/zeroband/utils/ip.py deleted file mode 100644 index 4ec30aa9..00000000 --- a/src/zeroband/utils/ip.py +++ /dev/null @@ -1,35 +0,0 @@ -from typing import Optional -import socket -import fcntl -import struct - -MULTIPLIER = {"Kbits/sec": 1e3, "Mbits/sec": 1e6, "Gbits/sec": 1e9, "Tbits/sec": 1e12} - - -def parse_iperf_output(output: str) -> Optional[int]: - try: - value, mult = output.strip().split()[-2:] - return int(float(value) * MULTIPLIER[mult]) - except Exception: - return None - - -# Taken from https://stackoverflow.com/questions/24196932/how-can-i-get-the-ip-address-from-a-nic-network-interface-controller-in-python -def get_ip_address(ifname: str) -> str: - """Get the IP address of the specified network interface. - - Args: - ifname (str): The name of the network interface. - Returns: - str: The IP address of the network interface. - """ - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - ret = socket.inet_ntoa( - fcntl.ioctl( - s.fileno(), - 0x8915, # SIOCGIFADDR - struct.pack("256s", ifname.encode("utf-8")[:15]), - )[20:24] - ) - s.close() - return ret diff --git a/src/zeroband/utils/metric_logger.py b/src/zeroband/utils/metric_logger.py deleted file mode 100644 index 73befcaf..00000000 --- a/src/zeroband/utils/metric_logger.py +++ /dev/null @@ -1,49 +0,0 @@ -import pickle -from typing import Any, Protocol -import importlib.util - - -class MetricLogger(Protocol): - def __init__(self, project, logger_config): ... - - def log(self, metrics: dict[str, Any]): ... - - def finish(self): ... - - -class WandbMetricLogger(MetricLogger): - def __init__(self, project, logger_config, resume: bool): - if importlib.util.find_spec("wandb") is None: - raise ImportError("wandb is not installed. Please install it to use WandbMonitor.") - - import wandb - - wandb.init( - project=project, config=logger_config, name=logger_config["config"]["run_name"], resume="auto" if resume else None - ) # make wandb reuse the same run id if possible - - def log(self, metrics: dict[str, Any]): - import wandb - - wandb.log(metrics) - - def finish(self): - import wandb - - wandb.finish() - - -class DummyMetricLogger(MetricLogger): - def __init__(self, project, logger_config, *args, **kwargs): - self.project = project - self.logger_config = logger_config - open(self.project, "a").close() # Create an empty file to append to - - self.data = [] - - def log(self, metrics: dict[str, Any]): - self.data.append(metrics) - - def finish(self): - with open(self.project, "wb") as f: - pickle.dump(self.data, f) diff --git a/src/zeroband/utils/monitor.py b/src/zeroband/utils/monitor.py deleted file mode 100644 index e7af2990..00000000 --- a/src/zeroband/utils/monitor.py +++ /dev/null @@ -1,136 +0,0 @@ -from typing import Any -from zeroband.utils.logger import get_logger -import aiohttp -from aiohttp import ClientError -import asyncio - - -async def _get_external_ip(max_retries=3, retry_delay=5): - async with aiohttp.ClientSession() as session: - for attempt in range(max_retries): - try: - async with session.get('https://api.ipify.org', timeout=10) as response: - response.raise_for_status() - return await response.text() - except ClientError: - if attempt < max_retries - 1: - await asyncio.sleep(retry_delay) - return None - - -class HttpMonitor: - """ - Logs the status of nodes, and training progress to an API - """ - - def __init__(self, config, *args, **kwargs): - self.data = [] - self.log_flush_interval = config["monitor"]["log_flush_interval"] - self.base_url = config["monitor"]["base_url"] - self.auth_token = config["monitor"]["auth_token"] - - self._logger = get_logger() - - self.run_id = config.get("run_id", None) - if self.run_id is None: - raise ValueError("run_id must be set for HttpMonitor") - - self.node_ip_address = None - self.node_ip_address_fetch_status = None - - self.loop = asyncio.new_event_loop() - asyncio.set_event_loop(self.loop) - - def __del__(self): - self.loop.close() - - def _remove_duplicates(self): - seen = set() - unique_logs = [] - for log in self.data: - log_tuple = tuple(sorted(log.items())) - if log_tuple not in seen: - unique_logs.append(log) - seen.add(log_tuple) - self.data = unique_logs - - def set_stage(self, stage: str): - import time - - # add a new log entry with the stage name - self.data.append({"stage": stage, "time": time.time()}) - self._handle_send_batch(flush=True) # it's useful to have the most up-to-date stage broadcasted - - def log(self, data: dict[str, Any]): - # Lowercase the keys in the data dictionary - lowercased_data = {k.lower(): v for k, v in data.items()} - self.data.append(lowercased_data) - - self._handle_send_batch() - - def _handle_send_batch(self, flush: bool = False): - if len(self.data) >= self.log_flush_interval or flush: - self.loop.run_until_complete(self._send_batch()) - - async def _set_node_ip_address(self): - if self.node_ip_address is None and self.node_ip_address_fetch_status != "failed": - ip_address = await _get_external_ip() - if ip_address is None: - self._logger.error("Failed to get external IP address") - # set this to "failed" so we keep trying again - self.node_ip_address_fetch_status = "failed" - else: - self.node_ip_address = ip_address - self.node_ip_address_fetch_status = "success" - - async def _send_batch(self): - import aiohttp - - self._remove_duplicates() - await self._set_node_ip_address() - - batch = self.data[:self.log_flush_interval] - # set node_ip_address of batch - batch = [{**log, "node_ip_address": self.node_ip_address} for log in batch] - headers = { - "Content-Type": "application/json", - "Authorization": f"Bearer {self.auth_token}" - } - payload = { - "logs": batch - } - api = f"{self.base_url}/metrics/{self.run_id}/logs" - - try: - async with aiohttp.ClientSession() as session: - async with session.post(api, json=payload, headers=headers) as response: - if response is not None: - response.raise_for_status() - except Exception as e: - self._logger.error(f"Error sending batch to server: {str(e)}") - pass - - self.data = self.data[self.log_flush_interval :] - return True - - async def _finish(self): - import requests - - # Send any remaining logs - while self.data: - await self._send_batch() - - headers = {"Content-Type": "application/json"} - api = f"{self.base_url}/metrics/{self.run_id}/finish" - try: - response = requests.post(api, headers=headers) - response.raise_for_status() - return True - except requests.RequestException as e: - self._logger.debug(f"Failed to send finish signal to http monitor: {e}") - return False - - def finish(self): - self.set_stage("finishing") - - self.loop.run_until_complete(self._finish()) diff --git a/src/zeroband/utils/profiler.py b/src/zeroband/utils/profiler.py deleted file mode 100644 index e6a87b32..00000000 --- a/src/zeroband/utils/profiler.py +++ /dev/null @@ -1,60 +0,0 @@ -import os -import pickle -import torch -from zeroband.utils.logger import get_logger -from zeroband.utils.world_info import get_world_info - -_MAX_ENTRIES = 10000 - - -class MemoryProfiler: - """Pytorch Memory Profiler. - The output are pickles file that can be visualized here: https://pytorch.org/memory_viz - """ - - def __init__(self, freq: int, snapshot_dir: str): - torch.cuda.memory._record_memory_history(max_entries=_MAX_ENTRIES) - self.freq = freq - - self.world_info = get_world_info() - self.logger = get_logger() - self.step_num = 0 - - os.makedirs(snapshot_dir, exist_ok=True) - self.snapshot_dir = snapshot_dir - - def log_memory_summary(self, curr_snapshot_dir): - """Log memory summary and memory allocated""" - summary = torch.cuda.memory_summary(device=None, abbreviated=False) - allocated_memory = torch.cuda.memory_allocated() - - # Save the memory summary to a file - with open(f"{curr_snapshot_dir}/rank{self.world_info.rank}_memory_summary.txt", "w") as summary_file: - summary_file.write(summary) - - # Save the allocated memory as a text log - with open(f"{curr_snapshot_dir}/rank{self.world_info.rank}_memory_allocated.txt", "w") as alloc_file: - alloc_file.write(f"Allocated memory: {allocated_memory / 1024 ** 2:.2f} MB\n") - - # log this information using the logger - self.logger.info(f"Memory summary and allocation saved for rank {self.world_info.rank} at step {self.step_num}") - - def step(self): - self.step_num += 1 - if self.step_num % self.freq != 0: - return - - dir_name = f"iteration_{self.step_num}" - - curr_snapshot_dir = os.path.join(self.snapshot_dir, dir_name) - if not os.path.exists(curr_snapshot_dir): - os.makedirs(curr_snapshot_dir, exist_ok=True) - - # Save memory snapshot - with open(f"{curr_snapshot_dir}/rank{self.world_info.rank}_memory_snapshot.pickle", "wb") as output: - pickle.dump(torch.cuda.memory._snapshot(), output) - - # Log memory summary and allocated memory - self.log_memory_summary(curr_snapshot_dir) - - torch.distributed.barrier() diff --git a/src/zeroband/utils/state_dict_send_recv.py b/src/zeroband/utils/state_dict_send_recv.py deleted file mode 100644 index 66366dd9..00000000 --- a/src/zeroband/utils/state_dict_send_recv.py +++ /dev/null @@ -1,165 +0,0 @@ -import io -import pickle -import torch -from torch.distributed import ProcessGroup -from torch.distributed._tensor.api import DTensor - - -def _object_to_tensor(obj): - f = io.BytesIO() - pickle.Pickler(f).dump(obj) - byte_storage = torch.ByteStorage._from_buffer(f.getvalue()) # type: ignore[attr-defined] - # Do not replace `torch.ByteTensor` or `torch.LongTensor` with torch.tensor and specifying dtype. - # Otherwise, it will casue 100X slowdown. - # See: https://github.com/pytorch/pytorch/issues/65696 - byte_tensor = torch.ByteTensor(byte_storage) - local_size = torch.LongTensor([byte_tensor.numel()]) - return byte_tensor, local_size - - -def _tensor_to_object(tensor, tensor_size): - tensor = tensor.cpu() - buf = tensor.numpy().tobytes()[:tensor_size] - return pickle.Unpickler(io.BytesIO(buf)).load() - - -def _tensor_to_placeholder(idx: int, tensor: torch.Tensor) -> str: - return f"zeroband_tensor_{idx}_{tensor.shape}_{tensor.dtype}" - - -def _validate_placeholder_to_tensor(placeholder: str, tensors: list[torch.Tensor]) -> torch.Tensor: - """ - validate that the tensor is compatible with the placeholder. - """ - try: - idx, shape, dtype = placeholder.split("_")[2:] - except ValueError as e: - raise ValueError(f"Invalid tensor placeholder {placeholder}") from e - - tensor = tensors[int(idx)] - if shape != str(tensor.shape): - raise ValueError( - f"tensor {idx} try to load a tensor with shape {shape} but the tensor has shape {tensor.shape}" - ) - if dtype != str(tensor.dtype): - raise ValueError( - f"tensor {idx} try to load a tensor with dtype {dtype} but the tensor has dtype {tensor.dtype}" - ) - - return tensor - - -def _get_sendable_state_dict(state_dict: dict) -> tuple[dict, list[torch.Tensor]]: - """ - This function take a state dict (dict with tensor inside) and return a torch.send/recv-able format. - - It splits the state dict into two part : - * a list of tensor - * a dict emptied from tensor - - The order is deterministic. The function can be used in pair with _load_sendable_state_dict - """ - tensors: list[torch.Tensor] = [] - - def _split(state_dict_, tensors_): - new_dict = {} - for key, value in state_dict_.items(): - if isinstance(value, dict): - new_dict[key] = _split(value, tensors_) - elif isinstance(value, torch.Tensor): - idx = len(tensors_) - tensors_.append(value) - new_dict[key] = _tensor_to_placeholder(idx, value) - else: - new_dict[key] = value - - return new_dict - - state_dict = _split(state_dict, tensors) - return state_dict, tensors - - -def _load_sendable_state_dict(tensors: list[torch.Tensor], state_dict: dict) -> dict: - """ - This function take a list of tensor and a state dict and return state dict. - - The function can be used in pair with _get_sendable_state_dict - """ - - def _load(state_dict_): - for key, value in list(state_dict_.items()): # list needed as we modify the state_dict_ as we traverse it - if isinstance(value, dict): - state_dict_[key] = _load(value) - elif isinstance(value, str) and value.startswith("zeroband_tensor_"): - state_dict_[key] = _validate_placeholder_to_tensor(value, tensors) - - return state_dict_ - - return _load(state_dict) - - -def send_state_dict(pg: ProcessGroup, state_dict: dict, dest_rank: int) -> None: - non_tensored_state_dict, tensors = _get_sendable_state_dict(state_dict) - send_tensor_and_state_dict(pg, dest_rank, non_tensored_state_dict, tensors) - - -def send_tensor_and_state_dict(pg: ProcessGroup, dest_rank: int, state_dict: dict, tensors: list[torch.Tensor]) -> None: - # logger = get_logger() - # logger.debug(f"recv tensors {get_tensor_list_signature(tensors)}") - - state_dict_tensor_buffer, size = _object_to_tensor(state_dict) - pg.send([size], dest_rank, 0).wait() - pg.send([state_dict_tensor_buffer], dest_rank, 0).wait() - - jobs = [] - for i, tensor in enumerate(tensors): - buffer = tensor - if isinstance(tensor, DTensor): - buffer = tensor.to_local() - - buffer = buffer.detach().cpu() - - jobs.append(pg.send([buffer], dest_rank, i)) - - for job in jobs: - job.wait() - - -def recv_state_dict(pg: ProcessGroup, src_rank: int, og_state_dict: dict) -> dict: - size = torch.LongTensor(1) - - # Receive object sizes - pg.recv([size], src_rank, 0).wait() - # Tensor to receive serialized objects into. - object_tensor = torch.empty(size.item(), dtype=torch.uint8) - - pg.recv([object_tensor], src_rank, 0).wait() - state_dict = _tensor_to_object(object_tensor, size) - - _, tensors = _get_sendable_state_dict(og_state_dict) - - jobs = [] - datas = [] - for i, tensor in enumerate(tensors): - buffer = tensor - if isinstance(tensor, DTensor): - buffer = tensor.to_local() - - data = torch.empty_like(buffer, device="cpu") - jobs.append(pg.recv([data], src_rank, i)) - datas.append(data) - - for job in jobs: - job.wait() - - for tensor, data in zip(tensors, datas): - if isinstance(tensor, DTensor): - tensor = tensor.to_local() - tensor.copy_(data) - - state_dict = _load_sendable_state_dict(tensors, state_dict) - - # logger = get_logger() - # logger.debug(f"recv tensors {get_tensor_list_signature(tensors)}") - - return state_dict diff --git a/src/zeroband/utils/stopwatch.py b/src/zeroband/utils/stopwatch.py deleted file mode 100644 index 2b49d4fb..00000000 --- a/src/zeroband/utils/stopwatch.py +++ /dev/null @@ -1,130 +0,0 @@ -import time - -from torch.autograd.profiler import record_function - -from zeroband.config import Config -from zeroband.utils.logger import get_logger - - -class _RecordBlockContext: - def __init__(self, sw, prof_name): - self.sw = sw - self.prof_name = prof_name - - def __enter__(self): - self.torch_context = record_function(self.prof_name) - self.torch_context.__enter__() - - if self.sw.disabled: - return self - self.sw.start_block(message=f"Starting \"{self.prof_name}\"") - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - self.torch_context.__exit__(exc_type, exc_val, exc_tb) - self.torch_context = None - - if self.sw.disabled: - return - self.sw.end_block(format_str=f"Finished \"{self.prof_name}\"") - - -class Stopwatch: - def __init__(self, config: Config | None = None): - self.timers: dict[str, dict[str, float]] = {} # Timer name -> {start_time, last_lap_time} - self.stack: list[str] = [] # List timer names in order of last constructed - self.logger = get_logger(config) - self.disabled = (config.log_level != "DEBUG") if config else False - - def _resolve_name(self, name: str | None) -> str: - if name is None: - if not self.stack: - raise ValueError("No active timers") - return self.stack[-1] - return name - - def start(self, name: str) -> None: - if self.disabled: - return - - current_time = time.perf_counter() - self.timers[name] = { - 'start_time': current_time, - 'last_lap_time': current_time - } - self.stack.append(name) - - def _lap(self, name: str | None = None) -> float: - if self.disabled: - return 0.0 - - name = self._resolve_name(name) - if name not in self.stack: - raise ValueError(f"Timer '{name}' is not active") - - timer = self.timers.get(name) - if not timer: - raise ValueError(f"Timer '{name}' does not exist") - - current_time = time.perf_counter() - elapsed = current_time - timer['last_lap_time'] - timer['last_lap_time'] = current_time - return elapsed - - def start_block(self, message: str | None = None, name: str | None = None) -> None: - if self.disabled: - return - - self._lap(name) - if message: - self.logger.debug(message) - - def end_block(self, format_str: str | None = None, name: str | None = None) -> None: - if self.disabled: - return - - lap_time = self._lap(name) - if not format_str: - return - elif "{" in format_str: - self.logger.debug(format_str.format(name=name, time=lap_time)) - else: - self.logger.debug(f"{format_str} in {lap_time:.2f} seconds") - - def elapsed(self, name: str | None = None) -> float: - if self.disabled: - return 0.0 - - name = self._resolve_name(name) - timer = self.timers.get(name) - if not timer: - raise ValueError(f"Timer '{name}' does not exist") - - current_time = time.perf_counter() - return current_time - timer['start_time'] - - def stop(self, name: str | None = None) -> float: - if self.disabled: - return 0.0 - - name = self._resolve_name(name) - elapsed = self.elapsed(name) - - if name in self.stack: - self.stack.remove(name) - self.timers.pop(name) - - return elapsed - - def reset(self) -> None: - self.timers.clear() - self.stack.clear() - - def record_block(self, prof_name: str) -> _RecordBlockContext: - """ - Calls the torch profiler record_function() and times with start_block() and end_block(). - end_format_str is passed as end_block's format_str. - start_message is passed as start_block's message. - """ - return _RecordBlockContext(self, prof_name) - diff --git a/src/zeroband/utils/wget.py b/src/zeroband/utils/wget.py deleted file mode 100644 index 849e504e..00000000 --- a/src/zeroband/utils/wget.py +++ /dev/null @@ -1,20 +0,0 @@ -import subprocess - -import shutil - -def _get_cut_dirs_from_url(url: str) -> int: - return len(url.rstrip().partition("//")[-1].split("/")) - -def wget(source: str, destination: str) -> None: - # logger = get_logger() - cmd = f"wget -r -np -nH --cut-dirs={_get_cut_dirs_from_url(source)} -P {destination} {source}" - - if shutil.which("wget") is None: - raise RuntimeError("wget is required but not found. Please install wget and try again.") - - try: - subprocess.run(cmd, shell=True, check=True, capture_output=True, text=True) - except subprocess.CalledProcessError as e: - # logger.error(f"Error output: {e.stderr}") - print(f"Error output: {e.stderr}") - raise e diff --git a/src/zeroband/utils/world_info.py b/src/zeroband/world_info.py similarity index 100% rename from src/zeroband/utils/world_info.py rename to src/zeroband/world_info.py diff --git a/train_fsdp.py b/train_fsdp.py new file mode 100644 index 00000000..fba691fd --- /dev/null +++ b/train_fsdp.py @@ -0,0 +1,250 @@ +from dataclasses import dataclass +import os +import time +from typing import TYPE_CHECKING, Literal + +import torch +import torch.distributed as dist +from torch.distributed._composable.fsdp import fully_shard, MixedPrecisionPolicy # type: ignore +import wandb + +from zeroband.data import TEST_VOCAB_SIZE, DataConfig, get_dataloader +from zeroband.lr_scheduler import get_scheduler +from zeroband.models.llama import get_model +from zeroband.models.llama.model import create_block_mask_from_seqlens +from zeroband.utils import ( + FakeTokenizer, + PerfCounter, + get_peak_flops, + get_num_params, + get_num_flop_per_token, + apply_ac_ckpt, +) +from zeroband.logger import get_logger + +from transformers import AutoTokenizer +from pydantic_config import BaseConfig, parse_argv +import torch.nn.functional as F + +from zeroband.world_info import get_world_info + + +class AdamConfig(BaseConfig): + type: Literal["adam"] = "adam" + lr: float = 4e-4 + weight_decay: float = 0.1 + betas1: float = 0.9 + betas2: float = 0.95 + + +class OptimConfig(BaseConfig): + optim: AdamConfig = AdamConfig() + sched_type: Literal["cosine", "linear", "wsd-sqrt"] = "cosine" + warmup_steps: int = 1000 + stable_steps: int = 80_000 + total_steps: int = 88_000 + batch_size: int = 512 + + +class TrainConfig(BaseConfig): + micro_bs: int = 1 + ac_ckpt: bool | int = False + reshard_after_forward: bool = True # old shard grad op True mean full shard + torch_compile: bool = True + + +class Config(BaseConfig): + name_model: Literal["debugmodel", "70M", "150M", "271M", "1B", "7B", "10B", "13B", "26B", "70B"] = "150M" + type_model: Literal["llama2", "llama3"] = "llama3" + + project: str = "prime_simple" + wandb: bool = True + + data: DataConfig = DataConfig() + optim: OptimConfig = OptimConfig() + train: TrainConfig + + +@dataclass +class TrainingProgress: + total_tokens: int + outer_step: int + step: int + + +def train(config: Config): + # batch_size is the total batch size for all GPUs + assert config.optim.batch_size % world_info.local_world_size == 0 + batch_size = config.optim.batch_size // world_info.local_world_size + + assert batch_size % config.train.micro_bs == 0, ( + f"The micro batch size ({config.train.micro_bs}) must divide the number of samples on each GPU ({batch_size})." + ) + gradient_accumulation_steps = batch_size // config.train.micro_bs + + # Load tokenizer + if config.data.fake and config.name_model == "debugmodel": + tokenizer = FakeTokenizer() + elif config.type_model == "llama2": + tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1", use_fast=True) + elif config.type_model == "llama3": + tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B", use_fast=True) + else: + raise ValueError(f"Model type {config.type_model} not supported") + + train_dataloader = get_dataloader( + tokenizer=tokenizer, + world_size=world_info.world_size, + rank=world_info.rank, + batch_size=config.train.micro_bs, + data_config=config.data, + ) + train_dataloader_iterator = iter(train_dataloader) + + model, model_config = get_model( + type_model=config.type_model, + name_model=config.name_model, + seq_length=config.data.seq_length, + vocab_size=len(tokenizer) if config.name_model != "debugmodel" or not config.data.fake else TEST_VOCAB_SIZE, + ) + + gpu_peak_flops = get_peak_flops(torch.cuda.get_device_name(torch.device("cuda"))) + logger.info(f"Peak FLOPS used for computing MFU: {gpu_peak_flops:.3e}") + + num_params = get_num_params(model, exclude_embedding=True) + logger.info(f"Number of parameters: {num_params}") + num_flop_per_token = get_num_flop_per_token( + num_params, + model_config, + config.data.seq_length, + ) + + if config.train.ac_ckpt: + num = 1 if isinstance(config.train.ac_ckpt, bool) else config.train.ac_ckpt + apply_ac_ckpt(model, num) + + mp_policy = MixedPrecisionPolicy(param_dtype=torch.bfloat16, reduce_dtype=None) + + for layer_id, transformer_block in model.layers.items(): + if config.train.reshard_after_forward: + reshard_after_forward = int(layer_id) < len(model.layers) - 1 + else: + reshard_after_forward = False + fully_shard(transformer_block, mp_policy=mp_policy, reshard_after_forward=reshard_after_forward) + fully_shard(model, mp_policy=mp_policy, reshard_after_forward=config.train.reshard_after_forward) + + optimizer = torch.optim.AdamW( + params=model.parameters(), + lr=config.optim.optim.lr, + weight_decay=config.optim.optim.weight_decay, + betas=(config.optim.optim.betas1, config.optim.optim.betas2), + ) + + scheduler = get_scheduler( + sched_type=config.optim.sched_type, + optimizer=optimizer, + num_warmup_steps=config.optim.warmup_steps, + num_stable_steps=config.optim.stable_steps, + num_training_steps=config.optim.total_steps, + ) + + training_progress = TrainingProgress(total_tokens=0, outer_step=0, step=0) + + if world_info.rank == 0 and config.wandb: + wandb.init(project=config.project, config=config.model_dump()) + + if config.train.torch_compile: + model = torch.compile(model) if not TYPE_CHECKING else model + + perf_counter = PerfCounter(window_size=10) + + while True: + loss_batch = 0 + + for grad_acc_step in range(gradient_accumulation_steps): + is_accumulating = grad_acc_step < gradient_accumulation_steps - 1 + # no sync if we are accumulating gradients + model.set_requires_gradient_sync(not is_accumulating) + + batch = next(train_dataloader_iterator) + input_ids = batch["input_ids"].to("cuda") + labels = batch["labels"].to("cuda") + seqlens = [seqlen.to("cuda") for seqlen in batch["seqlens"]] + block_mask = create_block_mask_from_seqlens(seqlens) if seqlens is not None else None + + logits = model(tokens=input_ids, block_mask=block_mask).contiguous() + flatten_logits = logits.reshape(-1, logits.size(-1)) # b seq vocab -> (b * seq) vocab + flatten_labels = labels.reshape(-1) # b seq -> (b * seq) + + ce_loss = F.cross_entropy(flatten_logits, flatten_labels) + + del logits + del flatten_logits + del flatten_labels + + loss = ce_loss / gradient_accumulation_steps + loss.backward() + loss_batch += loss.detach().clone() + + # Launch both allreduces at the same time to hide latency + dist.all_reduce(tensor=loss_batch, op=dist.ReduceOp.AVG) + + grad_norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0).full_tensor() # type: ignore (is a dtensor) + + optimizer.step() + scheduler.step() + + optimizer.zero_grad() + + # logging + training_progress.step += 1 + inner_lr = [group["lr"] for group in optimizer.param_groups][0] + + # syncing loss across all data parallel rank within a nodes + new_tokens = config.data.seq_length * config.optim.batch_size + perf_counter.count_tokens(new_tokens) + training_progress.total_tokens += new_tokens + + metrics = { + "Loss": loss_batch.item(), + "step": training_progress.step, + "inner_lr": inner_lr, + "Perplexity": torch.exp(loss_batch).item(), + "total_tokens": training_progress.total_tokens, + "time": time.time(), + "grad_norm": grad_norm.item(), + } + + log = f"step: {training_progress.step}, loss: {loss_batch.item():.4f}" + + tokens_per_second = perf_counter.get_tokens_per_second() + if tokens_per_second is not None: + metrics["tokens_per_second"] = tokens_per_second + metrics["mfu"] = 100 * num_flop_per_token * tokens_per_second / gpu_peak_flops / world_info.local_world_size + log += f", tokens_per_second: {tokens_per_second:.2f}, mfu: {metrics['mfu']:.2f}" + + if world_info.rank == 0 and config.wandb: + wandb.log(metrics) + + logger.info(log) + + if training_progress.step > config.optim.total_steps: + break + + logger.info("Training finished, exiting ...") + + +if __name__ == "__main__": + # Allow eager fallback during production so that that the training runs dont die + # However, in development, we want to know that we broke torch compile + torch._dynamo.config.suppress_errors = "ZERO_BAND_DEV" not in os.environ # type: ignore + torch.set_float32_matmul_precision("high") + torch.manual_seed(42) + + config = Config(**parse_argv()) # type: ignore + world_info = get_world_info() + logger = get_logger() + + torch.cuda.set_device(world_info.local_rank) + + train(config) diff --git a/uv.lock b/uv.lock index 264ede72..e59ecd3d 100644 --- a/uv.lock +++ b/uv.lock @@ -1,10 +1,8 @@ version = 1 requires-python = ">=3.10" resolution-markers = [ - "python_full_version >= '3.13' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and sys_platform == 'linux'", - "python_full_version >= '3.13' and sys_platform != 'linux'", - "python_full_version == '3.12.*' and sys_platform != 'linux'", + "python_full_version >= '3.12' and sys_platform == 'linux'", + "python_full_version >= '3.12' and sys_platform != 'linux'", "python_full_version == '3.11.*' and sys_platform == 'linux'", "python_full_version < '3.11' and sys_platform == 'linux'", "python_full_version == '3.11.*' and sys_platform != 'linux'", @@ -13,16 +11,16 @@ resolution-markers = [ [[package]] name = "aiohappyeyeballs" -version = "2.4.4" +version = "2.4.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7f/55/e4373e888fdacb15563ef6fa9fa8c8252476ea071e96fb46defac9f18bf2/aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745", size = 21977 } +sdist = { url = "https://files.pythonhosted.org/packages/08/07/508f9ebba367fc3370162e53a3cfd12f5652ad79f0e0bfdf9f9847c6f159/aiohappyeyeballs-2.4.6.tar.gz", hash = "sha256:9b05052f9042985d32ecbe4b59a77ae19c006a78f1344d7fdad69d28ded3d0b0", size = 21726 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/74/fbb6559de3607b3300b9be3cc64e97548d55678e44623db17820dbd20002/aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8", size = 14756 }, + { url = "https://files.pythonhosted.org/packages/44/4c/03fb05f56551828ec67ceb3665e5dc51638042d204983a03b0a1541475b6/aiohappyeyeballs-2.4.6-py3-none-any.whl", hash = "sha256:147ec992cf873d74f5062644332c539fcd42956dc69453fe5204195e560517e1", size = 14543 }, ] [[package]] name = "aiohttp" -version = "3.11.11" +version = "3.11.12" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohappyeyeballs" }, @@ -34,68 +32,72 @@ dependencies = [ { name = "propcache" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fe/ed/f26db39d29cd3cb2f5a3374304c713fe5ab5a0e4c8ee25a0c45cc6adf844/aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e", size = 7669618 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/75/7d/ff2e314b8f9e0b1df833e2d4778eaf23eae6b8cc8f922495d110ddcbf9e1/aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8", size = 708550 }, - { url = "https://files.pythonhosted.org/packages/09/b8/aeb4975d5bba233d6f246941f5957a5ad4e3def8b0855a72742e391925f2/aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5", size = 468430 }, - { url = "https://files.pythonhosted.org/packages/9c/5b/5b620279b3df46e597008b09fa1e10027a39467387c2332657288e25811a/aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2", size = 455593 }, - { url = "https://files.pythonhosted.org/packages/d8/75/0cdf014b816867d86c0bc26f3d3e3f194198dbf33037890beed629cd4f8f/aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43", size = 1584635 }, - { url = "https://files.pythonhosted.org/packages/df/2f/95b8f4e4dfeb57c1d9ad9fa911ede35a0249d75aa339edd2c2270dc539da/aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f", size = 1632363 }, - { url = "https://files.pythonhosted.org/packages/39/cb/70cf69ea7c50f5b0021a84f4c59c3622b2b3b81695f48a2f0e42ef7eba6e/aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d", size = 1668315 }, - { url = "https://files.pythonhosted.org/packages/2f/cc/3a3fc7a290eabc59839a7e15289cd48f33dd9337d06e301064e1e7fb26c5/aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef", size = 1589546 }, - { url = "https://files.pythonhosted.org/packages/15/b4/0f7b0ed41ac6000e283e7332f0f608d734b675a8509763ca78e93714cfb0/aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438", size = 1544581 }, - { url = "https://files.pythonhosted.org/packages/58/b9/4d06470fd85c687b6b0e31935ef73dde6e31767c9576d617309a2206556f/aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3", size = 1529256 }, - { url = "https://files.pythonhosted.org/packages/61/a2/6958b1b880fc017fd35f5dfb2c26a9a50c755b75fd9ae001dc2236a4fb79/aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55", size = 1536592 }, - { url = "https://files.pythonhosted.org/packages/0f/dd/b974012a9551fd654f5bb95a6dd3f03d6e6472a17e1a8216dd42e9638d6c/aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e", size = 1607446 }, - { url = "https://files.pythonhosted.org/packages/e0/d3/6c98fd87e638e51f074a3f2061e81fcb92123bcaf1439ac1b4a896446e40/aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33", size = 1628809 }, - { url = "https://files.pythonhosted.org/packages/a8/2e/86e6f85cbca02be042c268c3d93e7f35977a0e127de56e319bdd1569eaa8/aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c", size = 1564291 }, - { url = "https://files.pythonhosted.org/packages/0b/8d/1f4ef3503b767717f65e1f5178b0173ab03cba1a19997ebf7b052161189f/aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745", size = 416601 }, - { url = "https://files.pythonhosted.org/packages/ad/86/81cb83691b5ace3d9aa148dc42bacc3450d749fc88c5ec1973573c1c1779/aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9", size = 442007 }, - { url = "https://files.pythonhosted.org/packages/34/ae/e8806a9f054e15f1d18b04db75c23ec38ec954a10c0a68d3bd275d7e8be3/aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76", size = 708624 }, - { url = "https://files.pythonhosted.org/packages/c7/e0/313ef1a333fb4d58d0c55a6acb3cd772f5d7756604b455181049e222c020/aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538", size = 468507 }, - { url = "https://files.pythonhosted.org/packages/a9/60/03455476bf1f467e5b4a32a465c450548b2ce724eec39d69f737191f936a/aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204", size = 455571 }, - { url = "https://files.pythonhosted.org/packages/be/f9/469588603bd75bf02c8ffb8c8a0d4b217eed446b49d4a767684685aa33fd/aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9", size = 1685694 }, - { url = "https://files.pythonhosted.org/packages/88/b9/1b7fa43faf6c8616fa94c568dc1309ffee2b6b68b04ac268e5d64b738688/aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03", size = 1743660 }, - { url = "https://files.pythonhosted.org/packages/2a/8b/0248d19dbb16b67222e75f6aecedd014656225733157e5afaf6a6a07e2e8/aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287", size = 1785421 }, - { url = "https://files.pythonhosted.org/packages/c4/11/f478e071815a46ca0a5ae974651ff0c7a35898c55063305a896e58aa1247/aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e", size = 1675145 }, - { url = "https://files.pythonhosted.org/packages/26/5d/284d182fecbb5075ae10153ff7374f57314c93a8681666600e3a9e09c505/aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665", size = 1619804 }, - { url = "https://files.pythonhosted.org/packages/1b/78/980064c2ad685c64ce0e8aeeb7ef1e53f43c5b005edcd7d32e60809c4992/aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b", size = 1654007 }, - { url = "https://files.pythonhosted.org/packages/21/8d/9e658d63b1438ad42b96f94da227f2e2c1d5c6001c9e8ffcc0bfb22e9105/aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34", size = 1650022 }, - { url = "https://files.pythonhosted.org/packages/85/fd/a032bf7f2755c2df4f87f9effa34ccc1ef5cea465377dbaeef93bb56bbd6/aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d", size = 1732899 }, - { url = "https://files.pythonhosted.org/packages/c5/0c/c2b85fde167dd440c7ba50af2aac20b5a5666392b174df54c00f888c5a75/aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2", size = 1755142 }, - { url = "https://files.pythonhosted.org/packages/bc/78/91ae1a3b3b3bed8b893c5d69c07023e151b1c95d79544ad04cf68f596c2f/aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773", size = 1692736 }, - { url = "https://files.pythonhosted.org/packages/77/89/a7ef9c4b4cdb546fcc650ca7f7395aaffbd267f0e1f648a436bec33c9b95/aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62", size = 416418 }, - { url = "https://files.pythonhosted.org/packages/fc/db/2192489a8a51b52e06627506f8ac8df69ee221de88ab9bdea77aa793aa6a/aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac", size = 442509 }, - { url = "https://files.pythonhosted.org/packages/69/cf/4bda538c502f9738d6b95ada11603c05ec260807246e15e869fc3ec5de97/aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886", size = 704666 }, - { url = "https://files.pythonhosted.org/packages/46/7b/87fcef2cad2fad420ca77bef981e815df6904047d0a1bd6aeded1b0d1d66/aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2", size = 464057 }, - { url = "https://files.pythonhosted.org/packages/5a/a6/789e1f17a1b6f4a38939fbc39d29e1d960d5f89f73d0629a939410171bc0/aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c", size = 455996 }, - { url = "https://files.pythonhosted.org/packages/b7/dd/485061fbfef33165ce7320db36e530cd7116ee1098e9c3774d15a732b3fd/aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a", size = 1682367 }, - { url = "https://files.pythonhosted.org/packages/e9/d7/9ec5b3ea9ae215c311d88b2093e8da17e67b8856673e4166c994e117ee3e/aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231", size = 1736989 }, - { url = "https://files.pythonhosted.org/packages/d6/fb/ea94927f7bfe1d86178c9d3e0a8c54f651a0a655214cce930b3c679b8f64/aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e", size = 1793265 }, - { url = "https://files.pythonhosted.org/packages/40/7f/6de218084f9b653026bd7063cd8045123a7ba90c25176465f266976d8c82/aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8", size = 1691841 }, - { url = "https://files.pythonhosted.org/packages/77/e2/992f43d87831cbddb6b09c57ab55499332f60ad6fdbf438ff4419c2925fc/aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8", size = 1619317 }, - { url = "https://files.pythonhosted.org/packages/96/74/879b23cdd816db4133325a201287c95bef4ce669acde37f8f1b8669e1755/aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c", size = 1641416 }, - { url = "https://files.pythonhosted.org/packages/30/98/b123f6b15d87c54e58fd7ae3558ff594f898d7f30a90899718f3215ad328/aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab", size = 1646514 }, - { url = "https://files.pythonhosted.org/packages/d7/38/257fda3dc99d6978ab943141d5165ec74fd4b4164baa15e9c66fa21da86b/aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da", size = 1702095 }, - { url = "https://files.pythonhosted.org/packages/0c/f4/ddab089053f9fb96654df5505c0a69bde093214b3c3454f6bfdb1845f558/aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853", size = 1734611 }, - { url = "https://files.pythonhosted.org/packages/c3/d6/f30b2bc520c38c8aa4657ed953186e535ae84abe55c08d0f70acd72ff577/aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e", size = 1694576 }, - { url = "https://files.pythonhosted.org/packages/bc/97/b0a88c3f4c6d0020b34045ee6d954058abc870814f6e310c4c9b74254116/aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600", size = 411363 }, - { url = "https://files.pythonhosted.org/packages/7f/23/cc36d9c398980acaeeb443100f0216f50a7cfe20c67a9fd0a2f1a5a846de/aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d", size = 437666 }, - { url = "https://files.pythonhosted.org/packages/49/d1/d8af164f400bad432b63e1ac857d74a09311a8334b0481f2f64b158b50eb/aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9", size = 697982 }, - { url = "https://files.pythonhosted.org/packages/92/d1/faad3bf9fa4bfd26b95c69fc2e98937d52b1ff44f7e28131855a98d23a17/aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194", size = 460662 }, - { url = "https://files.pythonhosted.org/packages/db/61/0d71cc66d63909dabc4590f74eba71f91873a77ea52424401c2498d47536/aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f", size = 452950 }, - { url = "https://files.pythonhosted.org/packages/07/db/6d04bc7fd92784900704e16b745484ef45b77bd04e25f58f6febaadf7983/aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104", size = 1665178 }, - { url = "https://files.pythonhosted.org/packages/54/5c/e95ade9ae29f375411884d9fd98e50535bf9fe316c9feb0f30cd2ac8f508/aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff", size = 1717939 }, - { url = "https://files.pythonhosted.org/packages/6f/1c/1e7d5c5daea9e409ed70f7986001b8c9e3a49a50b28404498d30860edab6/aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3", size = 1775125 }, - { url = "https://files.pythonhosted.org/packages/5d/66/890987e44f7d2f33a130e37e01a164168e6aff06fce15217b6eaf14df4f6/aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1", size = 1677176 }, - { url = "https://files.pythonhosted.org/packages/8f/dc/e2ba57d7a52df6cdf1072fd5fa9c6301a68e1cd67415f189805d3eeb031d/aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4", size = 1603192 }, - { url = "https://files.pythonhosted.org/packages/6c/9e/8d08a57de79ca3a358da449405555e668f2c8871a7777ecd2f0e3912c272/aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d", size = 1618296 }, - { url = "https://files.pythonhosted.org/packages/56/51/89822e3ec72db352c32e7fc1c690370e24e231837d9abd056490f3a49886/aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87", size = 1616524 }, - { url = "https://files.pythonhosted.org/packages/2c/fa/e2e6d9398f462ffaa095e84717c1732916a57f1814502929ed67dd7568ef/aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2", size = 1685471 }, - { url = "https://files.pythonhosted.org/packages/ae/5f/6bb976e619ca28a052e2c0ca7b0251ccd893f93d7c24a96abea38e332bf6/aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12", size = 1715312 }, - { url = "https://files.pythonhosted.org/packages/79/c1/756a7e65aa087c7fac724d6c4c038f2faaa2a42fe56dbc1dd62a33ca7213/aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5", size = 1672783 }, - { url = "https://files.pythonhosted.org/packages/73/ba/a6190ebb02176c7f75e6308da31f5d49f6477b651a3dcfaaaca865a298e2/aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d", size = 410229 }, - { url = "https://files.pythonhosted.org/packages/b8/62/c9fa5bafe03186a0e4699150a7fed9b1e73240996d0d2f0e5f70f3fdf471/aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99", size = 436081 }, +sdist = { url = "https://files.pythonhosted.org/packages/37/4b/952d49c73084fb790cb5c6ead50848c8e96b4980ad806cf4d2ad341eaa03/aiohttp-3.11.12.tar.gz", hash = "sha256:7603ca26d75b1b86160ce1bbe2787a0b706e592af5b2504e12caa88a217767b0", size = 7673175 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/42/3880e133590820aa7bc6d068eb7d8e0ad9fdce9b4663f92b821d3f6b5601/aiohttp-3.11.12-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:aa8a8caca81c0a3e765f19c6953416c58e2f4cc1b84829af01dd1c771bb2f91f", size = 708721 }, + { url = "https://files.pythonhosted.org/packages/d8/8c/04869803bed108b25afad75f94c651b287851843caacbec6677d8f2d572b/aiohttp-3.11.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:84ede78acde96ca57f6cf8ccb8a13fbaf569f6011b9a52f870c662d4dc8cd854", size = 468596 }, + { url = "https://files.pythonhosted.org/packages/4f/f4/9074011f0d1335b161c953fb32545b6667cf24465e1932b9767874995c7e/aiohttp-3.11.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:584096938a001378484aa4ee54e05dc79c7b9dd933e271c744a97b3b6f644957", size = 455758 }, + { url = "https://files.pythonhosted.org/packages/fd/68/06298c57ef8f534065930b805e6dbd83613f0534447922782fb9920fce28/aiohttp-3.11.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:392432a2dde22b86f70dd4a0e9671a349446c93965f261dbaecfaf28813e5c42", size = 1584797 }, + { url = "https://files.pythonhosted.org/packages/bd/1e/cee6b51fcb3b1c4185a7dc62b3113bc136fae07f39386c88c90b7f79f199/aiohttp-3.11.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:88d385b8e7f3a870146bf5ea31786ef7463e99eb59e31db56e2315535d811f55", size = 1632535 }, + { url = "https://files.pythonhosted.org/packages/71/1f/42424462b7a09da362e1711090db9f8d68a37a33f0aab51307335517c599/aiohttp-3.11.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b10a47e5390c4b30a0d58ee12581003be52eedd506862ab7f97da7a66805befb", size = 1668484 }, + { url = "https://files.pythonhosted.org/packages/f6/79/0e25542bbe3c2bfd7a12c7a49c7bce73b09a836f65079e4b77bc2bafc89e/aiohttp-3.11.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b5263dcede17b6b0c41ef0c3ccce847d82a7da98709e75cf7efde3e9e3b5cae", size = 1589708 }, + { url = "https://files.pythonhosted.org/packages/d1/13/93ae26b75e23f7d3a613872e472fae836ca100dc5bde5936ebc93ada8890/aiohttp-3.11.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50c5c7b8aa5443304c55c262c5693b108c35a3b61ef961f1e782dd52a2f559c7", size = 1544752 }, + { url = "https://files.pythonhosted.org/packages/cf/5e/48847fad1b014ef92ef18ea1339a3b58eb81d3bc717b94c3627f5d2a42c5/aiohttp-3.11.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d1c031a7572f62f66f1257db37ddab4cb98bfaf9b9434a3b4840bf3560f5e788", size = 1529417 }, + { url = "https://files.pythonhosted.org/packages/ae/56/fbd4ea019303f4877f0e0b8c9de92e9db24338e7545570d3f275f3c74c53/aiohttp-3.11.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:7e44eba534381dd2687be50cbd5f2daded21575242ecfdaf86bbeecbc38dae8e", size = 1557808 }, + { url = "https://files.pythonhosted.org/packages/f1/43/112189cf6b3c482ecdd6819b420eaa0c2033426f28d741bb7f19db5dd2bb/aiohttp-3.11.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:145a73850926018ec1681e734cedcf2716d6a8697d90da11284043b745c286d5", size = 1536765 }, + { url = "https://files.pythonhosted.org/packages/30/12/59986547de8306e06c7b30e547ccda02d29636e152366caba2dd8627bfe1/aiohttp-3.11.12-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:2c311e2f63e42c1bf86361d11e2c4a59f25d9e7aabdbdf53dc38b885c5435cdb", size = 1607621 }, + { url = "https://files.pythonhosted.org/packages/aa/9b/af3b323b20df3318ed20d701d8242e523d59c842ca93f23134b05c9d5054/aiohttp-3.11.12-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:ea756b5a7bac046d202a9a3889b9a92219f885481d78cd318db85b15cc0b7bcf", size = 1628977 }, + { url = "https://files.pythonhosted.org/packages/36/62/adf5a331a7bda475cc326dde393fa2bc5849060b1b37ac3d1bee1953f2cd/aiohttp-3.11.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:526c900397f3bbc2db9cb360ce9c35134c908961cdd0ac25b1ae6ffcaa2507ff", size = 1564455 }, + { url = "https://files.pythonhosted.org/packages/90/c4/4a24291f22f111a854dfdb54dc94d4e0a5229ccbb7bc7f0bed972aa50410/aiohttp-3.11.12-cp310-cp310-win32.whl", hash = "sha256:b8d3bb96c147b39c02d3db086899679f31958c5d81c494ef0fc9ef5bb1359b3d", size = 416768 }, + { url = "https://files.pythonhosted.org/packages/51/69/5221c8006acb7bb10d9e8e2238fb216571bddc2e00a8d95bcfbe2f579c57/aiohttp-3.11.12-cp310-cp310-win_amd64.whl", hash = "sha256:7fe3d65279bfbee8de0fb4f8c17fc4e893eed2dba21b2f680e930cc2b09075c5", size = 442170 }, + { url = "https://files.pythonhosted.org/packages/9c/38/35311e70196b6a63cfa033a7f741f800aa8a93f57442991cbe51da2394e7/aiohttp-3.11.12-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:87a2e00bf17da098d90d4145375f1d985a81605267e7f9377ff94e55c5d769eb", size = 708797 }, + { url = "https://files.pythonhosted.org/packages/44/3e/46c656e68cbfc4f3fc7cb5d2ba4da6e91607fe83428208028156688f6201/aiohttp-3.11.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b34508f1cd928ce915ed09682d11307ba4b37d0708d1f28e5774c07a7674cac9", size = 468669 }, + { url = "https://files.pythonhosted.org/packages/a0/d6/2088fb4fd1e3ac2bfb24bc172223babaa7cdbb2784d33c75ec09e66f62f8/aiohttp-3.11.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:936d8a4f0f7081327014742cd51d320296b56aa6d324461a13724ab05f4b2933", size = 455739 }, + { url = "https://files.pythonhosted.org/packages/e7/dc/c443a6954a56f4a58b5efbfdf23cc6f3f0235e3424faf5a0c56264d5c7bb/aiohttp-3.11.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2de1378f72def7dfb5dbd73d86c19eda0ea7b0a6873910cc37d57e80f10d64e1", size = 1685858 }, + { url = "https://files.pythonhosted.org/packages/25/67/2d5b3aaade1d5d01c3b109aa76e3aa9630531252cda10aa02fb99b0b11a1/aiohttp-3.11.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9d45dbb3aaec05cf01525ee1a7ac72de46a8c425cb75c003acd29f76b1ffe94", size = 1743829 }, + { url = "https://files.pythonhosted.org/packages/90/9b/9728fe9a3e1b8521198455d027b0b4035522be18f504b24c5d38d59e7278/aiohttp-3.11.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:930ffa1925393381e1e0a9b82137fa7b34c92a019b521cf9f41263976666a0d6", size = 1785587 }, + { url = "https://files.pythonhosted.org/packages/ce/cf/28fbb43d4ebc1b4458374a3c7b6db3b556a90e358e9bbcfe6d9339c1e2b6/aiohttp-3.11.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8340def6737118f5429a5df4e88f440746b791f8f1c4ce4ad8a595f42c980bd5", size = 1675319 }, + { url = "https://files.pythonhosted.org/packages/e5/d2/006c459c11218cabaa7bca401f965c9cc828efbdea7e1615d4644eaf23f7/aiohttp-3.11.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4016e383f91f2814e48ed61e6bda7d24c4d7f2402c75dd28f7e1027ae44ea204", size = 1619982 }, + { url = "https://files.pythonhosted.org/packages/9d/83/ca425891ebd37bee5d837110f7fddc4d808a7c6c126a7d1b5c3ad72fc6ba/aiohttp-3.11.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3c0600bcc1adfaaac321422d615939ef300df81e165f6522ad096b73439c0f58", size = 1654176 }, + { url = "https://files.pythonhosted.org/packages/25/df/047b1ce88514a1b4915d252513640184b63624e7914e41d846668b8edbda/aiohttp-3.11.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:0450ada317a65383b7cce9576096150fdb97396dcfe559109b403c7242faffef", size = 1660198 }, + { url = "https://files.pythonhosted.org/packages/d3/cc/6ecb8e343f0902528620b9dbd567028a936d5489bebd7dbb0dd0914f4fdb/aiohttp-3.11.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:850ff6155371fd802a280f8d369d4e15d69434651b844bde566ce97ee2277420", size = 1650186 }, + { url = "https://files.pythonhosted.org/packages/f8/f8/453df6dd69256ca8c06c53fc8803c9056e2b0b16509b070f9a3b4bdefd6c/aiohttp-3.11.12-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8fd12d0f989c6099e7b0f30dc6e0d1e05499f3337461f0b2b0dadea6c64b89df", size = 1733063 }, + { url = "https://files.pythonhosted.org/packages/55/f8/540160787ff3000391de0e5d0d1d33be4c7972f933c21991e2ea105b2d5e/aiohttp-3.11.12-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:76719dd521c20a58a6c256d058547b3a9595d1d885b830013366e27011ffe804", size = 1755306 }, + { url = "https://files.pythonhosted.org/packages/30/7d/49f3bfdfefd741576157f8f91caa9ff61a6f3d620ca6339268327518221b/aiohttp-3.11.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97fe431f2ed646a3b56142fc81d238abcbaff08548d6912acb0b19a0cadc146b", size = 1692909 }, + { url = "https://files.pythonhosted.org/packages/40/9c/8ce00afd6f6112ce9a2309dc490fea376ae824708b94b7b5ea9cba979d1d/aiohttp-3.11.12-cp311-cp311-win32.whl", hash = "sha256:e10c440d142fa8b32cfdb194caf60ceeceb3e49807072e0dc3a8887ea80e8c16", size = 416584 }, + { url = "https://files.pythonhosted.org/packages/35/97/4d3c5f562f15830de472eb10a7a222655d750839943e0e6d915ef7e26114/aiohttp-3.11.12-cp311-cp311-win_amd64.whl", hash = "sha256:246067ba0cf5560cf42e775069c5d80a8989d14a7ded21af529a4e10e3e0f0e6", size = 442674 }, + { url = "https://files.pythonhosted.org/packages/4d/d0/94346961acb476569fca9a644cc6f9a02f97ef75961a6b8d2b35279b8d1f/aiohttp-3.11.12-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e392804a38353900c3fd8b7cacbea5132888f7129f8e241915e90b85f00e3250", size = 704837 }, + { url = "https://files.pythonhosted.org/packages/a9/af/05c503f1cc8f97621f199ef4b8db65fb88b8bc74a26ab2adb74789507ad3/aiohttp-3.11.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8fa1510b96c08aaad49303ab11f8803787c99222288f310a62f493faf883ede1", size = 464218 }, + { url = "https://files.pythonhosted.org/packages/f2/48/b9949eb645b9bd699153a2ec48751b985e352ab3fed9d98c8115de305508/aiohttp-3.11.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dc065a4285307607df3f3686363e7f8bdd0d8ab35f12226362a847731516e42c", size = 456166 }, + { url = "https://files.pythonhosted.org/packages/14/fb/980981807baecb6f54bdd38beb1bd271d9a3a786e19a978871584d026dcf/aiohttp-3.11.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddb31f8474695cd61fc9455c644fc1606c164b93bff2490390d90464b4655df", size = 1682528 }, + { url = "https://files.pythonhosted.org/packages/90/cb/77b1445e0a716914e6197b0698b7a3640590da6c692437920c586764d05b/aiohttp-3.11.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9dec0000d2d8621d8015c293e24589d46fa218637d820894cb7356c77eca3259", size = 1737154 }, + { url = "https://files.pythonhosted.org/packages/ff/24/d6fb1f4cede9ccbe98e4def6f3ed1e1efcb658871bbf29f4863ec646bf38/aiohttp-3.11.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3552fe98e90fdf5918c04769f338a87fa4f00f3b28830ea9b78b1bdc6140e0d", size = 1793435 }, + { url = "https://files.pythonhosted.org/packages/17/e2/9f744cee0861af673dc271a3351f59ebd5415928e20080ab85be25641471/aiohttp-3.11.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dfe7f984f28a8ae94ff3a7953cd9678550dbd2a1f9bda5dd9c5ae627744c78e", size = 1692010 }, + { url = "https://files.pythonhosted.org/packages/90/c4/4a1235c1df544223eb57ba553ce03bc706bdd065e53918767f7fa1ff99e0/aiohttp-3.11.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a481a574af914b6e84624412666cbfbe531a05667ca197804ecc19c97b8ab1b0", size = 1619481 }, + { url = "https://files.pythonhosted.org/packages/60/70/cf12d402a94a33abda86dd136eb749b14c8eb9fec1e16adc310e25b20033/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1987770fb4887560363b0e1a9b75aa303e447433c41284d3af2840a2f226d6e0", size = 1641578 }, + { url = "https://files.pythonhosted.org/packages/1b/25/7211973fda1f5e833fcfd98ccb7f9ce4fbfc0074e3e70c0157a751d00db8/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:a4ac6a0f0f6402854adca4e3259a623f5c82ec3f0c049374133bcb243132baf9", size = 1684463 }, + { url = "https://files.pythonhosted.org/packages/93/60/b5905b4d0693f6018b26afa9f2221fefc0dcbd3773fe2dff1a20fb5727f1/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c96a43822f1f9f69cc5c3706af33239489a6294be486a0447fb71380070d4d5f", size = 1646691 }, + { url = "https://files.pythonhosted.org/packages/b4/fc/ba1b14d6fdcd38df0b7c04640794b3683e949ea10937c8a58c14d697e93f/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a5e69046f83c0d3cb8f0d5bd9b8838271b1bc898e01562a04398e160953e8eb9", size = 1702269 }, + { url = "https://files.pythonhosted.org/packages/5e/39/18c13c6f658b2ba9cc1e0c6fb2d02f98fd653ad2addcdf938193d51a9c53/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:68d54234c8d76d8ef74744f9f9fc6324f1508129e23da8883771cdbb5818cbef", size = 1734782 }, + { url = "https://files.pythonhosted.org/packages/9f/d2/ccc190023020e342419b265861877cd8ffb75bec37b7ddd8521dd2c6deb8/aiohttp-3.11.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c9fd9dcf9c91affe71654ef77426f5cf8489305e1c66ed4816f5a21874b094b9", size = 1694740 }, + { url = "https://files.pythonhosted.org/packages/3f/54/186805bcada64ea90ea909311ffedcd74369bfc6e880d39d2473314daa36/aiohttp-3.11.12-cp312-cp312-win32.whl", hash = "sha256:0ed49efcd0dc1611378beadbd97beb5d9ca8fe48579fc04a6ed0844072261b6a", size = 411530 }, + { url = "https://files.pythonhosted.org/packages/3d/63/5eca549d34d141bcd9de50d4e59b913f3641559460c739d5e215693cb54a/aiohttp-3.11.12-cp312-cp312-win_amd64.whl", hash = "sha256:54775858c7f2f214476773ce785a19ee81d1294a6bedc5cc17225355aab74802", size = 437860 }, + { url = "https://files.pythonhosted.org/packages/c3/9b/cea185d4b543ae08ee478373e16653722c19fcda10d2d0646f300ce10791/aiohttp-3.11.12-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:413ad794dccb19453e2b97c2375f2ca3cdf34dc50d18cc2693bd5aed7d16f4b9", size = 698148 }, + { url = "https://files.pythonhosted.org/packages/91/5c/80d47fe7749fde584d1404a68ade29bcd7e58db8fa11fa38e8d90d77e447/aiohttp-3.11.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a93d28ed4b4b39e6f46fd240896c29b686b75e39cc6992692e3922ff6982b4c", size = 460831 }, + { url = "https://files.pythonhosted.org/packages/8e/f9/de568f8a8ca6b061d157c50272620c53168d6e3eeddae78dbb0f7db981eb/aiohttp-3.11.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d589264dbba3b16e8951b6f145d1e6b883094075283dafcab4cdd564a9e353a0", size = 453122 }, + { url = "https://files.pythonhosted.org/packages/8b/fd/b775970a047543bbc1d0f66725ba72acef788028fce215dc959fd15a8200/aiohttp-3.11.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5148ca8955affdfeb864aca158ecae11030e952b25b3ae15d4e2b5ba299bad2", size = 1665336 }, + { url = "https://files.pythonhosted.org/packages/82/9b/aff01d4f9716245a1b2965f02044e4474fadd2bcfe63cf249ca788541886/aiohttp-3.11.12-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:525410e0790aab036492eeea913858989c4cb070ff373ec3bc322d700bdf47c1", size = 1718111 }, + { url = "https://files.pythonhosted.org/packages/e0/a9/166fd2d8b2cc64f08104aa614fad30eee506b563154081bf88ce729bc665/aiohttp-3.11.12-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bd8695be2c80b665ae3f05cb584093a1e59c35ecb7d794d1edd96e8cc9201d7", size = 1775293 }, + { url = "https://files.pythonhosted.org/packages/13/c5/0d3c89bd9e36288f10dc246f42518ce8e1c333f27636ac78df091c86bb4a/aiohttp-3.11.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0203433121484b32646a5f5ea93ae86f3d9559d7243f07e8c0eab5ff8e3f70e", size = 1677338 }, + { url = "https://files.pythonhosted.org/packages/72/b2/017db2833ef537be284f64ead78725984db8a39276c1a9a07c5c7526e238/aiohttp-3.11.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40cd36749a1035c34ba8d8aaf221b91ca3d111532e5ccb5fa8c3703ab1b967ed", size = 1603365 }, + { url = "https://files.pythonhosted.org/packages/fc/72/b66c96a106ec7e791e29988c222141dd1219d7793ffb01e72245399e08d2/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7442662afebbf7b4c6d28cb7aab9e9ce3a5df055fc4116cc7228192ad6cb484", size = 1618464 }, + { url = "https://files.pythonhosted.org/packages/3f/50/e68a40f267b46a603bab569d48d57f23508801614e05b3369898c5b2910a/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8a2fb742ef378284a50766e985804bd6adb5adb5aa781100b09befdbfa757b65", size = 1657827 }, + { url = "https://files.pythonhosted.org/packages/c5/1d/aafbcdb1773d0ba7c20793ebeedfaba1f3f7462f6fc251f24983ed738aa7/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2cee3b117a8d13ab98b38d5b6bdcd040cfb4181068d05ce0c474ec9db5f3c5bb", size = 1616700 }, + { url = "https://files.pythonhosted.org/packages/b0/5e/6cd9724a2932f36e2a6b742436a36d64784322cfb3406ca773f903bb9a70/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f6a19bcab7fbd8f8649d6595624856635159a6527861b9cdc3447af288a00c00", size = 1685643 }, + { url = "https://files.pythonhosted.org/packages/8b/38/ea6c91d5c767fd45a18151675a07c710ca018b30aa876a9f35b32fa59761/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e4cecdb52aaa9994fbed6b81d4568427b6002f0a91c322697a4bfcc2b2363f5a", size = 1715487 }, + { url = "https://files.pythonhosted.org/packages/8e/24/e9edbcb7d1d93c02e055490348df6f955d675e85a028c33babdcaeda0853/aiohttp-3.11.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:30f546358dfa0953db92ba620101fefc81574f87b2346556b90b5f3ef16e55ce", size = 1672948 }, + { url = "https://files.pythonhosted.org/packages/25/be/0b1fb737268e003198f25c3a68c2135e76e4754bf399a879b27bd508a003/aiohttp-3.11.12-cp313-cp313-win32.whl", hash = "sha256:ce1bb21fc7d753b5f8a5d5a4bae99566386b15e716ebdb410154c16c91494d7f", size = 410396 }, + { url = "https://files.pythonhosted.org/packages/68/fd/677def96a75057b0a26446b62f8fbb084435b20a7d270c99539c26573bfd/aiohttp-3.11.12-cp313-cp313-win_amd64.whl", hash = "sha256:f7914ab70d2ee8ab91c13e5402122edbc77821c66d2758abb53aabe87f013287", size = 436234 }, ] [[package]] @@ -139,11 +141,11 @@ wheels = [ [[package]] name = "certifi" -version = "2024.12.14" +version = "2025.1.31" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 } +sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 }, + { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393 }, ] [[package]] @@ -360,15 +362,14 @@ wheels = [ [[package]] name = "faker" -version = "35.0.0" +version = "36.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "python-dateutil" }, - { name = "typing-extensions" }, + { name = "tzdata" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d5/18/86fe668976308d09e0178041c3756e646a1f5ddc676aa7fb0cf3cd52f5b9/faker-35.0.0.tar.gz", hash = "sha256:42f2da8cf561e38c72b25e9891168b1e25fec42b6b0b5b0b6cd6041da54af885", size = 1855098 } +sdist = { url = "https://files.pythonhosted.org/packages/50/00/43012033ef13ecd4bf00d8d936508a49abaf1a66f8d420db3b7aaafd42b3/faker-36.1.0.tar.gz", hash = "sha256:f40510350aecfe006f45cb3f8879b35e861367cf347f51a7f2ca2c0571fdcc0b", size = 1874804 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b8/fe/40452fb1730b10afa34dfe016097b28baa070ad74a1c1a3512ebed438c08/Faker-35.0.0-py3-none-any.whl", hash = "sha256:926d2301787220e0554c2e39afc4dc535ce4b0a8d0a089657137999f66334ef4", size = 1894841 }, + { url = "https://files.pythonhosted.org/packages/eb/02/72c93c1df2eff2502bfb94d6c3937192c1090c8095c389bc24533a55d327/Faker-36.1.0-py3-none-any.whl", hash = "sha256:aa0b93487d3adf7cd89953d172e3df896cb7b35d8a5222c0da873edbe2f7adf5", size = 1917678 }, ] [[package]] @@ -489,7 +490,7 @@ wheels = [ [[package]] name = "huggingface-hub" -version = "0.28.0" +version = "0.28.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, @@ -500,18 +501,18 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/10/fd/c8ff7693942dac1c642ec3a93a2bf7cbac36e2e920dd61a79965d9a662b7/huggingface_hub-0.28.0.tar.gz", hash = "sha256:c2b18c02a47d4384763caddb4d0ab2a8fc6c16e0800d6de4d55d0a896244aba3", size = 387079 } +sdist = { url = "https://files.pythonhosted.org/packages/e7/ce/a734204aaae6c35a22f9956ebcd8d8708ae5b842e15d6f42bd6f49e634a4/huggingface_hub-0.28.1.tar.gz", hash = "sha256:893471090c98e3b6efbdfdacafe4052b20b84d59866fb6f54c33d9af18c303ae", size = 387074 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/ac/07f92291add9f425f40b3fd70a1d0c7117f6e1152599abc2bd7fda5b6abe/huggingface_hub-0.28.0-py3-none-any.whl", hash = "sha256:71cff4e500efe68061d94b7f6d3114e183715088be7a90bf4dd84af83b5f5cdb", size = 464084 }, + { url = "https://files.pythonhosted.org/packages/ea/da/6c2bea5327b640920267d3bf2c9fc114cfbd0a5de234d81cda80cc9e33c8/huggingface_hub-0.28.1-py3-none-any.whl", hash = "sha256:aa6b9a3ffdae939b72c464dbb0d7f99f56e649b55c3d52406f49e0a5a620c0a7", size = 464068 }, ] [[package]] name = "identify" -version = "2.6.6" +version = "2.6.7" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/bf/c68c46601bacd4c6fb4dd751a42b6e7087240eaabc6487f2ef7a48e0e8fc/identify-2.6.6.tar.gz", hash = "sha256:7bec12768ed44ea4761efb47806f0a41f86e7c0a5fdf5950d4648c90eca7e251", size = 99217 } +sdist = { url = "https://files.pythonhosted.org/packages/83/d1/524aa3350f78bcd714d148ade6133d67d6b7de2cdbae7d99039c024c9a25/identify-2.6.7.tar.gz", hash = "sha256:3fa266b42eba321ee0b2bb0936a6a6b9e36a1351cbb69055b3082f4193035684", size = 99260 } wheels = [ - { url = "https://files.pythonhosted.org/packages/74/a1/68a395c17eeefb04917034bd0a1bfa765e7654fa150cca473d669aa3afb5/identify-2.6.6-py2.py3-none-any.whl", hash = "sha256:cbd1810bce79f8b671ecb20f53ee0ae8e86ae84b557de31d89709dc2a48ba881", size = 99083 }, + { url = "https://files.pythonhosted.org/packages/03/00/1fd4a117c6c93f2dcc5b7edaeaf53ea45332ef966429be566ca16c2beb94/identify-2.6.7-py2.py3-none-any.whl", hash = "sha256:155931cb617a401807b09ecec6635d6c692d180090a1cedca8ef7d58ba5b6aa0", size = 99097 }, ] [[package]] @@ -863,7 +864,7 @@ name = "nvidia-cudnn-cu12" version = "9.1.0.70" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12", marker = "sys_platform == 'linux'" }, + { name = "nvidia-cublas-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/9f/fd/713452cd72343f682b1c7b9321e23829f00b842ceaedcda96e742ea0b0b3/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl", hash = "sha256:165764f44ef8c61fcdfdfdbe769d687e06374059fbb388b6c89ecb0e28793a6f", size = 664752741 }, @@ -874,7 +875,7 @@ name = "nvidia-cufft-cu12" version = "11.2.1.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12", marker = "sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/27/94/3266821f65b92b3138631e9c8e7fe1fb513804ac934485a8d05776e1dd43/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f083fc24912aa410be21fa16d157fed2055dab1cc4b6934a0e03cba69eb242b9", size = 211459117 }, @@ -893,9 +894,9 @@ name = "nvidia-cusolver-cu12" version = "11.6.1.9" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12", marker = "sys_platform == 'linux'" }, - { name = "nvidia-cusparse-cu12", marker = "sys_platform == 'linux'" }, - { name = "nvidia-nvjitlink-cu12", marker = "sys_platform == 'linux'" }, + { name = "nvidia-cublas-cu12" }, + { name = "nvidia-cusparse-cu12" }, + { name = "nvidia-nvjitlink-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/3a/e1/5b9089a4b2a4790dfdea8b3a006052cfecff58139d5a4e34cb1a51df8d6f/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl", hash = "sha256:19e33fa442bcfd085b3086c4ebf7e8debc07cfe01e11513cc6d332fd918ac260", size = 127936057 }, @@ -906,7 +907,7 @@ name = "nvidia-cusparse-cu12" version = "12.3.1.170" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12", marker = "sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink-cu12" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/db/f7/97a9ea26ed4bbbfc2d470994b8b4f338ef663be97b8f677519ac195e113d/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ea4f11a2904e2a8dc4b1833cc1b5181cde564edd0d5cd33e3c168eff2d1863f1", size = 207454763 }, @@ -1318,11 +1319,11 @@ wheels = [ [[package]] name = "pytz" -version = "2024.2" +version = "2025.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 } +sdist = { url = "https://files.pythonhosted.org/packages/5f/57/df1c9157c8d5a05117e455d66fd7cf6dbc46974f832b1058ed4856785d8a/pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e", size = 319617 } wheels = [ - { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 }, + { url = "https://files.pythonhosted.org/packages/eb/38/ac33370d784287baa1c3d538978b5e2ea064d4c1b93ffbd12826c190dd10/pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57", size = 507930 }, ] [[package]] @@ -1469,27 +1470,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.9.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/7f/60fda2eec81f23f8aa7cbbfdf6ec2ca11eb11c273827933fb2541c2ce9d8/ruff-0.9.3.tar.gz", hash = "sha256:8293f89985a090ebc3ed1064df31f3b4b56320cdfcec8b60d3295bddb955c22a", size = 3586740 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/77/4fb790596d5d52c87fd55b7160c557c400e90f6116a56d82d76e95d9374a/ruff-0.9.3-py3-none-linux_armv6l.whl", hash = "sha256:7f39b879064c7d9670197d91124a75d118d00b0990586549949aae80cdc16624", size = 11656815 }, - { url = "https://files.pythonhosted.org/packages/a2/a8/3338ecb97573eafe74505f28431df3842c1933c5f8eae615427c1de32858/ruff-0.9.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:a187171e7c09efa4b4cc30ee5d0d55a8d6c5311b3e1b74ac5cb96cc89bafc43c", size = 11594821 }, - { url = "https://files.pythonhosted.org/packages/8e/89/320223c3421962762531a6b2dd58579b858ca9916fb2674874df5e97d628/ruff-0.9.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c59ab92f8e92d6725b7ded9d4a31be3ef42688a115c6d3da9457a5bda140e2b4", size = 11040475 }, - { url = "https://files.pythonhosted.org/packages/b2/bd/1d775eac5e51409535804a3a888a9623e87a8f4b53e2491580858a083692/ruff-0.9.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dc153c25e715be41bb228bc651c1e9b1a88d5c6e5ed0194fa0dfea02b026439", size = 11856207 }, - { url = "https://files.pythonhosted.org/packages/7f/c6/3e14e09be29587393d188454064a4aa85174910d16644051a80444e4fd88/ruff-0.9.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:646909a1e25e0dc28fbc529eab8eb7bb583079628e8cbe738192853dbbe43af5", size = 11420460 }, - { url = "https://files.pythonhosted.org/packages/ef/42/b7ca38ffd568ae9b128a2fa76353e9a9a3c80ef19746408d4ce99217ecc1/ruff-0.9.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a5a46e09355695fbdbb30ed9889d6cf1c61b77b700a9fafc21b41f097bfbba4", size = 12605472 }, - { url = "https://files.pythonhosted.org/packages/a6/a1/3167023f23e3530fde899497ccfe239e4523854cb874458ac082992d206c/ruff-0.9.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c4bb09d2bbb394e3730d0918c00276e79b2de70ec2a5231cd4ebb51a57df9ba1", size = 13243123 }, - { url = "https://files.pythonhosted.org/packages/d0/b4/3c600758e320f5bf7de16858502e849f4216cb0151f819fa0d1154874802/ruff-0.9.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96a87ec31dc1044d8c2da2ebbed1c456d9b561e7d087734336518181b26b3aa5", size = 12744650 }, - { url = "https://files.pythonhosted.org/packages/be/38/266fbcbb3d0088862c9bafa8b1b99486691d2945a90b9a7316336a0d9a1b/ruff-0.9.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb7554aca6f842645022fe2d301c264e6925baa708b392867b7a62645304df4", size = 14458585 }, - { url = "https://files.pythonhosted.org/packages/63/a6/47fd0e96990ee9b7a4abda62de26d291bd3f7647218d05b7d6d38af47c30/ruff-0.9.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cabc332b7075a914ecea912cd1f3d4370489c8018f2c945a30bcc934e3bc06a6", size = 12419624 }, - { url = "https://files.pythonhosted.org/packages/84/5d/de0b7652e09f7dda49e1a3825a164a65f4998175b6486603c7601279baad/ruff-0.9.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:33866c3cc2a575cbd546f2cd02bdd466fed65118e4365ee538a3deffd6fcb730", size = 11843238 }, - { url = "https://files.pythonhosted.org/packages/9e/be/3f341ceb1c62b565ec1fb6fd2139cc40b60ae6eff4b6fb8f94b1bb37c7a9/ruff-0.9.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:006e5de2621304c8810bcd2ee101587712fa93b4f955ed0985907a36c427e0c2", size = 11484012 }, - { url = "https://files.pythonhosted.org/packages/a3/c8/ff8acbd33addc7e797e702cf00bfde352ab469723720c5607b964491d5cf/ruff-0.9.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ba6eea4459dbd6b1be4e6bfc766079fb9b8dd2e5a35aff6baee4d9b1514ea519", size = 12038494 }, - { url = "https://files.pythonhosted.org/packages/73/b1/8d9a2c0efbbabe848b55f877bc10c5001a37ab10aca13c711431673414e5/ruff-0.9.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:90230a6b8055ad47d3325e9ee8f8a9ae7e273078a66401ac66df68943ced029b", size = 12473639 }, - { url = "https://files.pythonhosted.org/packages/cb/44/a673647105b1ba6da9824a928634fe23186ab19f9d526d7bdf278cd27bc3/ruff-0.9.3-py3-none-win32.whl", hash = "sha256:eabe5eb2c19a42f4808c03b82bd313fc84d4e395133fb3fc1b1516170a31213c", size = 9834353 }, - { url = "https://files.pythonhosted.org/packages/c3/01/65cadb59bf8d4fbe33d1a750103e6883d9ef302f60c28b73b773092fbde5/ruff-0.9.3-py3-none-win_amd64.whl", hash = "sha256:040ceb7f20791dfa0e78b4230ee9dce23da3b64dd5848e40e3bf3ab76468dcf4", size = 10821444 }, - { url = "https://files.pythonhosted.org/packages/69/cb/b3fe58a136a27d981911cba2f18e4b29f15010623b79f0f2510fd0d31fd3/ruff-0.9.3-py3-none-win_arm64.whl", hash = "sha256:800d773f6d4d33b0a3c60e2c6ae8f4c202ea2de056365acfa519aa48acf28e0b", size = 10038168 }, +version = "0.9.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2a/e1/e265aba384343dd8ddd3083f5e33536cd17e1566c41453a5517b5dd443be/ruff-0.9.6.tar.gz", hash = "sha256:81761592f72b620ec8fa1068a6fd00e98a5ebee342a3642efd84454f3031dca9", size = 3639454 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/e3/3d2c022e687e18cf5d93d6bfa2722d46afc64eaa438c7fbbdd603b3597be/ruff-0.9.6-py3-none-linux_armv6l.whl", hash = "sha256:2f218f356dd2d995839f1941322ff021c72a492c470f0b26a34f844c29cdf5ba", size = 11714128 }, + { url = "https://files.pythonhosted.org/packages/e1/22/aff073b70f95c052e5c58153cba735748c9e70107a77d03420d7850710a0/ruff-0.9.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b908ff4df65dad7b251c9968a2e4560836d8f5487c2f0cc238321ed951ea0504", size = 11682539 }, + { url = "https://files.pythonhosted.org/packages/75/a7/f5b7390afd98a7918582a3d256cd3e78ba0a26165a467c1820084587cbf9/ruff-0.9.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b109c0ad2ececf42e75fa99dc4043ff72a357436bb171900714a9ea581ddef83", size = 11132512 }, + { url = "https://files.pythonhosted.org/packages/a6/e3/45de13ef65047fea2e33f7e573d848206e15c715e5cd56095589a7733d04/ruff-0.9.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1de4367cca3dac99bcbd15c161404e849bb0bfd543664db39232648dc00112dc", size = 11929275 }, + { url = "https://files.pythonhosted.org/packages/7d/f2/23d04cd6c43b2e641ab961ade8d0b5edb212ecebd112506188c91f2a6e6c/ruff-0.9.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac3ee4d7c2c92ddfdaedf0bf31b2b176fa7aa8950efc454628d477394d35638b", size = 11466502 }, + { url = "https://files.pythonhosted.org/packages/b5/6f/3a8cf166f2d7f1627dd2201e6cbc4cb81f8b7d58099348f0c1ff7b733792/ruff-0.9.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5dc1edd1775270e6aa2386119aea692039781429f0be1e0949ea5884e011aa8e", size = 12676364 }, + { url = "https://files.pythonhosted.org/packages/f5/c4/db52e2189983c70114ff2b7e3997e48c8318af44fe83e1ce9517570a50c6/ruff-0.9.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:4a091729086dffa4bd070aa5dab7e39cc6b9d62eb2bef8f3d91172d30d599666", size = 13335518 }, + { url = "https://files.pythonhosted.org/packages/66/44/545f8a4d136830f08f4d24324e7db957c5374bf3a3f7a6c0bc7be4623a37/ruff-0.9.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1bbc6808bf7b15796cef0815e1dfb796fbd383e7dbd4334709642649625e7c5", size = 12823287 }, + { url = "https://files.pythonhosted.org/packages/c5/26/8208ef9ee7431032c143649a9967c3ae1aae4257d95e6f8519f07309aa66/ruff-0.9.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:589d1d9f25b5754ff230dce914a174a7c951a85a4e9270613a2b74231fdac2f5", size = 14592374 }, + { url = "https://files.pythonhosted.org/packages/31/70/e917781e55ff39c5b5208bda384fd397ffd76605e68544d71a7e40944945/ruff-0.9.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc61dd5131742e21103fbbdcad683a8813be0e3c204472d520d9a5021ca8b217", size = 12500173 }, + { url = "https://files.pythonhosted.org/packages/84/f5/e4ddee07660f5a9622a9c2b639afd8f3104988dc4f6ba0b73ffacffa9a8c/ruff-0.9.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5e2d9126161d0357e5c8f30b0bd6168d2c3872372f14481136d13de9937f79b6", size = 11906555 }, + { url = "https://files.pythonhosted.org/packages/f1/2b/6ff2fe383667075eef8656b9892e73dd9b119b5e3add51298628b87f6429/ruff-0.9.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:68660eab1a8e65babb5229a1f97b46e3120923757a68b5413d8561f8a85d4897", size = 11538958 }, + { url = "https://files.pythonhosted.org/packages/3c/db/98e59e90de45d1eb46649151c10a062d5707b5b7f76f64eb1e29edf6ebb1/ruff-0.9.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c4cae6c4cc7b9b4017c71114115db0445b00a16de3bcde0946273e8392856f08", size = 12117247 }, + { url = "https://files.pythonhosted.org/packages/ec/bc/54e38f6d219013a9204a5a2015c09e7a8c36cedcd50a4b01ac69a550b9d9/ruff-0.9.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:19f505b643228b417c1111a2a536424ddde0db4ef9023b9e04a46ed8a1cb4656", size = 12554647 }, + { url = "https://files.pythonhosted.org/packages/a5/7d/7b461ab0e2404293c0627125bb70ac642c2e8d55bf590f6fce85f508f1b2/ruff-0.9.6-py3-none-win32.whl", hash = "sha256:194d8402bceef1b31164909540a597e0d913c0e4952015a5b40e28c146121b5d", size = 9949214 }, + { url = "https://files.pythonhosted.org/packages/ee/30/c3cee10f915ed75a5c29c1e57311282d1a15855551a64795c1b2bbe5cf37/ruff-0.9.6-py3-none-win_amd64.whl", hash = "sha256:03482d5c09d90d4ee3f40d97578423698ad895c87314c4de39ed2af945633caa", size = 10999914 }, + { url = "https://files.pythonhosted.org/packages/e8/a8/d71f44b93e3aa86ae232af1f2126ca7b95c0f515ec135462b3e1f351441c/ruff-0.9.6-py3-none-win_arm64.whl", hash = "sha256:0e2bb706a2be7ddfea4a4af918562fdc1bcb16df255e5fa595bbd800ce322a5a", size = 10177499 }, ] [[package]] @@ -1516,15 +1517,15 @@ wheels = [ [[package]] name = "sentry-sdk" -version = "2.20.0" +version = "2.21.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/68/e8/6a366c0cd5e129dda6ecb20ff097f70b18182c248d4c27e813c21f98992a/sentry_sdk-2.20.0.tar.gz", hash = "sha256:afa82713a92facf847df3c6f63cec71eb488d826a50965def3d7722aa6f0fdab", size = 300125 } +sdist = { url = "https://files.pythonhosted.org/packages/08/63/3f0e88709cf4af992e2813c27d8ba628a891db0805e3fcc6dc834e142c5b/sentry_sdk-2.21.0.tar.gz", hash = "sha256:a6d38e0fb35edda191acf80b188ec713c863aaa5ad8d5798decb8671d02077b6", size = 301965 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/0f/6f7e6cd0f4a141752caef3f79300148422fdf2b8b68b531f30b2b0c0cbda/sentry_sdk-2.20.0-py2.py3-none-any.whl", hash = "sha256:c359a1edf950eb5e80cffd7d9111f3dbeef57994cb4415df37d39fda2cf22364", size = 322576 }, + { url = "https://files.pythonhosted.org/packages/a4/18/7587660cb5e4d07134913d8e74137efcd4903fda873bf612c30eb34c7ab4/sentry_sdk-2.21.0-py2.py3-none-any.whl", hash = "sha256:7623cfa9e2c8150948a81ca253b8e2bfe4ce0b96ab12f8cd78e3ac9c490fd92f", size = 324096 }, ] [[package]] @@ -1759,7 +1760,7 @@ wheels = [ [[package]] name = "transformers" -version = "4.48.1" +version = "4.48.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, @@ -1773,9 +1774,9 @@ dependencies = [ { name = "tokenizers" }, { name = "tqdm" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/21/6b/caf620fae7fbf35947c81e7dd0834493b9ad9b71bb9e433025ac7a07e79a/transformers-4.48.1.tar.gz", hash = "sha256:7c1931facc3ee8adcbf86fc7a87461d54c1e40eca3bb57fef1ee9f3ecd32187e", size = 8365872 } +sdist = { url = "https://files.pythonhosted.org/packages/e3/82/cebeb7af5e64440f1638f18c4ed0f89156d0eeaa6290d98da8ca93ac3872/transformers-4.48.3.tar.gz", hash = "sha256:a5e8f1e9a6430aa78215836be70cecd3f872d99eeda300f41ad6cc841724afdb", size = 8373458 } wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/9f/92d3091c44cb19add044064af1bf1345cd35fbb84d32a3690f912800a295/transformers-4.48.1-py3-none-any.whl", hash = "sha256:24be0564b0a36d9e433d9a65de248f1545b6f6edce1737669605eb6a8141bbbb", size = 9665001 }, + { url = "https://files.pythonhosted.org/packages/b6/1a/efeecb8d83705f2f4beac98d46f2148c95ecd7babfb31b5c0f1e7017e83d/transformers-4.48.3-py3-none-any.whl", hash = "sha256:78697f990f5ef350c23b46bf86d5081ce96b49479ab180b2de7687267de8fd36", size = 9669412 }, ] [[package]] @@ -1783,7 +1784,7 @@ name = "triton" version = "3.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "filelock", marker = "python_full_version < '3.13' and sys_platform == 'linux'" }, + { name = "filelock" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/98/29/69aa56dc0b2eb2602b553881e34243475ea2afd9699be042316842788ff5/triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b0dd10a925263abbe9fa37dcde67a5e9b2383fc269fdf59f5657cac38c5d1d8", size = 209460013 }, @@ -1820,21 +1821,21 @@ wheels = [ [[package]] name = "virtualenv" -version = "20.29.1" +version = "20.29.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "distlib" }, { name = "filelock" }, { name = "platformdirs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/ca/f23dcb02e161a9bba141b1c08aa50e8da6ea25e6d780528f1d385a3efe25/virtualenv-20.29.1.tar.gz", hash = "sha256:b8b8970138d32fb606192cb97f6cd4bb644fa486be9308fb9b63f81091b5dc35", size = 7658028 } +sdist = { url = "https://files.pythonhosted.org/packages/f1/88/dacc875dd54a8acadb4bcbfd4e3e86df8be75527116c91d8f9784f5e9cab/virtualenv-20.29.2.tar.gz", hash = "sha256:fdaabebf6d03b5ba83ae0a02cfe96f48a716f4fae556461d180825866f75b728", size = 4320272 } wheels = [ - { url = "https://files.pythonhosted.org/packages/89/9b/599bcfc7064fbe5740919e78c5df18e5dceb0887e676256a1061bb5ae232/virtualenv-20.29.1-py3-none-any.whl", hash = "sha256:4e4cb403c0b0da39e13b46b1b2476e505cb0046b25f242bee80f62bf990b2779", size = 4282379 }, + { url = "https://files.pythonhosted.org/packages/93/fa/849483d56773ae29740ae70043ad88e068f98a6401aa819b5d6bee604683/virtualenv-20.29.2-py3-none-any.whl", hash = "sha256:febddfc3d1ea571bdb1dc0f98d7b45d24def7428214d4fb73cc486c9568cce6a", size = 4301478 }, ] [[package]] name = "wandb" -version = "0.19.5" +version = "0.19.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -1851,18 +1852,18 @@ dependencies = [ { name = "setuptools" }, { name = "typing-extensions", marker = "python_full_version < '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/87/a4/5611250c729da145803ce8da8fc38c7e1f545dd015a457cbebb5f2a48506/wandb-0.19.5.tar.gz", hash = "sha256:a2cbb5932b2970d277663515123610a4e10da01d5cbb321f94ccf36d3782c14c", size = 38909291 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/5f/ed184377bfe76f2652f8acf51e90474504787a308c304169c9456ca48fc9/wandb-0.19.5-py3-none-any.whl", hash = "sha256:5f846fd1908b9b12182de33f5293e7031df6ae52acf05c7912429363f689f60f", size = 6383456 }, - { url = "https://files.pythonhosted.org/packages/de/5b/e2e6915f156201d840901f1a0a5b7ae15e07aa356931d2b4e49c0f449091/wandb-0.19.5-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:d18e21a7cba2602dfe4512aa834d7eb9a725e785492e5c953656d0c7753bdee4", size = 20261782 }, - { url = "https://files.pythonhosted.org/packages/09/16/e059494e4ae69edf1dfde8a525007b659f77fae980518c8bb47038d5b63e/wandb-0.19.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a9f972096eef097948f067e9bd92146d7af081122880c28e88ecdd9bd7d11b08", size = 19439432 }, - { url = "https://files.pythonhosted.org/packages/a2/9d/46485a1b53589e8fe164dc660931797a5bddfb7c0d07c71e5b7aee1e0522/wandb-0.19.5-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:eecd605e7580d9bc98b7e983d6ea787922869495dcd4e3dd7a859c5fc299764c", size = 20270486 }, - { url = "https://files.pythonhosted.org/packages/f3/de/d01f45442695350cc1351966ee95eb59cec6ab039285603738c13959a1e3/wandb-0.19.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967d3ab3569322c546349cea7b301f69e24b97ad1cc50162612926a864127306", size = 19068620 }, - { url = "https://files.pythonhosted.org/packages/8a/30/8c495234e584ebcea92ec1d178897beeaf9798835bbb4f2b9a31c6533985/wandb-0.19.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f8be456cbe819e8202009cf4ac10a5a28141c4c6370f34b3f8cbd640c2dc8f9", size = 20349290 }, - { url = "https://files.pythonhosted.org/packages/4c/29/558b896d754f4ebd30b62910adb58bd6fcd33113f8a21919b5866d3ea35c/wandb-0.19.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:63bb83011194137c9385a01476216dbfc0920fec0e660d87b7ca0dc1373c556f", size = 19077834 }, - { url = "https://files.pythonhosted.org/packages/ca/b3/306ba19dc3faac29f0d0ce2367a83130a65978f7c9557c3dd377ded4346b/wandb-0.19.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ac54f7d949eee335de349e80e4c3babf0cc89d52f77e49131e258c4b97673dc1", size = 20428642 }, - { url = "https://files.pythonhosted.org/packages/27/6d/35b8455aee00f0b61d008977f8fca55e4307d9d514b3b9669ec3f74525a6/wandb-0.19.5-py3-none-win32.whl", hash = "sha256:1603dacb43093645419e8bb098ded5850ad8a7f3ab5ad50caf356f6792479a03", size = 19730874 }, - { url = "https://files.pythonhosted.org/packages/48/20/945de2a62fbbb9193725ebbbb82887aea7ea9817a3c9d1bd4206e0d9c011/wandb-0.19.5-py3-none-win_amd64.whl", hash = "sha256:503b575c1c469e2f00caa1b2a02211bad8401c2376b43ef976b7fc88f385fb77", size = 19730876 }, +sdist = { url = "https://files.pythonhosted.org/packages/41/a2/63fbebc6ed670a7d834ca76552b8c6382211874b23ee8a718ba26a342a4a/wandb-0.19.6.tar.gz", hash = "sha256:4661856ee070fe8a123caece5b372d495d3cf9f58176a8f981bd716830eefc49", size = 39203528 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/4f/5b77e20f10e643404df871557610a6618383e036de65e9c34b3a8354f2ac/wandb-0.19.6-py3-none-any.whl", hash = "sha256:0b174b5f190999a8238961c63c134622bf2173147a1301ea298a9ec58abbd7d4", size = 6387720 }, + { url = "https://files.pythonhosted.org/packages/25/aa/824a171586f3fa1549f9f946d32187362c8d06ff67540d9f1be694ee9094/wandb-0.19.6-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:ad2887dd916207ead5a9f36e4aebc1b6624265f29033e4e883bb6fbd5b674080", size = 20776552 }, + { url = "https://files.pythonhosted.org/packages/ad/3b/222e2a27ee3df3a973d8f165fa47f3e3bb25dc6d9ac1d3ec79b083c5ee09/wandb-0.19.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:ca90dd5519de1a48963536f02d6e14c150475807173b7af1d8ebe3e2f9e3afba", size = 19933524 }, + { url = "https://files.pythonhosted.org/packages/65/76/1d69145ac3c9c6b63545e684c39b95711c3632c34d452626fd831227089d/wandb-0.19.6-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:3cb10bd1e1c0b568464a017c88eb95e0c8c3e9c1283d9ad4ee717c8977d491c1", size = 20791479 }, + { url = "https://files.pythonhosted.org/packages/88/96/4411c4aa29cfb0bc8e310480181d79779b423231420bbcf5e61ff8c44ff7/wandb-0.19.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fe6e7bedd396b2b5f92c7fab3d364f7e0e8cb9f645d0f0c27ba7be94e720931", size = 19539263 }, + { url = "https://files.pythonhosted.org/packages/bc/89/2e414951d35e55caf6d8ac5758a82c61c1b8330f77852fbc733c833196eb/wandb-0.19.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd9ae9a7f08e4d3972ba341c42af787e951689e0d1a76c111aa66d09bcdadafd", size = 20861187 }, + { url = "https://files.pythonhosted.org/packages/3a/5e/7517c9fa9aa0075160c04e467f6d0e5d1b9bb6b91c4ffd6dd6fa23dd3dd0/wandb-0.19.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ff0973ca26cd06bc5451ae7ba469ad98f74024f5678dfa0d6dc78ca36eb950b6", size = 19549095 }, + { url = "https://files.pythonhosted.org/packages/bd/be/ef3c78ab14a631558f639ab3a8379efee6f7d529e3bbf9efb0e17472495b/wandb-0.19.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:2e8dc997eb3ae5f22f5a1c3d4f3b30c28398dda45b9dbada9ff20b8d3984d3e2", size = 20938943 }, + { url = "https://files.pythonhosted.org/packages/b6/43/2f9c71a1fe77a97e9d32b4828f1dd685ac545442f8dfbf703eac8128056f/wandb-0.19.6-py3-none-win32.whl", hash = "sha256:c0127d99e98202dc2471d44b920129c2c9242fb3a6b52a7aa8bbf9ffa35173e7", size = 20230403 }, + { url = "https://files.pythonhosted.org/packages/fd/b2/a9ffa91c43dbe2a6687467f3aa196947b7532592879738665be5c0db17c3/wandb-0.19.6-py3-none-win_amd64.whl", hash = "sha256:8688a4f724d37a90075312e8dccffd948adbe8b6bcb82f9d2b38b764b53269fb", size = 20230407 }, ] [[package]] From 6899988628fd143cbcdee0b876f752c6b0a615e9 Mon Sep 17 00:00:00 2001 From: sami jaghouar Date: Thu, 13 Feb 2025 06:56:03 +0000 Subject: [PATCH 06/13] change 70m Signed-off-by: sami jaghouar --- configs/70M/H100.toml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/configs/70M/H100.toml b/configs/70M/H100.toml index 3d077a30..c7ddfaf5 100644 --- a/configs/70M/H100.toml +++ b/configs/70M/H100.toml @@ -1,16 +1,16 @@ name_model = "70M" -project = "debug_70m_zero_band" +project = "70m_prime_simple" type_model = "llama2" [train] -micro_bs = 128 # change this base on the gpu +micro_bs = 64 # change this base on the gpu reshard_after_forward = false [optim] batch_size = 512 -warmup_steps = 1000 -total_steps = 88_000 +warmup_steps = 500 +total_steps = 4000 [optim.optim] -lr = 4e-4 +lr = 1e-3 From 925d939f94ae9716b98797650b76aac7d927db9b Mon Sep 17 00:00:00 2001 From: sami jaghouar Date: Thu, 13 Feb 2025 07:37:10 +0000 Subject: [PATCH 07/13] update torch Signed-off-by: sami jaghouar --- pyproject.toml | 2 +- uv.lock | 68 +++++++++++++++++++++++++++++--------------------- 2 files changed, 40 insertions(+), 30 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 7c9d0bb9..1ecc0fe1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ description = "ZeroBand is a production ready codebase for decentralized trainin readme = "README.md" requires-python = ">=3.10" dependencies = [ - "torch==2.5.1", + "torch==2.6.0", "numpy", "setuptools", "transformers>=4.44.2", diff --git a/uv.lock b/uv.lock index e59ecd3d..fadca86c 100644 --- a/uv.lock +++ b/uv.lock @@ -864,7 +864,7 @@ name = "nvidia-cudnn-cu12" version = "9.1.0.70" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12" }, + { name = "nvidia-cublas-cu12", marker = "sys_platform == 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/9f/fd/713452cd72343f682b1c7b9321e23829f00b842ceaedcda96e742ea0b0b3/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl", hash = "sha256:165764f44ef8c61fcdfdfdbe769d687e06374059fbb388b6c89ecb0e28793a6f", size = 664752741 }, @@ -875,7 +875,7 @@ name = "nvidia-cufft-cu12" version = "11.2.1.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12" }, + { name = "nvidia-nvjitlink-cu12", marker = "sys_platform == 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/27/94/3266821f65b92b3138631e9c8e7fe1fb513804ac934485a8d05776e1dd43/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f083fc24912aa410be21fa16d157fed2055dab1cc4b6934a0e03cba69eb242b9", size = 211459117 }, @@ -894,9 +894,9 @@ name = "nvidia-cusolver-cu12" version = "11.6.1.9" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas-cu12" }, - { name = "nvidia-cusparse-cu12" }, - { name = "nvidia-nvjitlink-cu12" }, + { name = "nvidia-cublas-cu12", marker = "sys_platform == 'linux'" }, + { name = "nvidia-cusparse-cu12", marker = "sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink-cu12", marker = "sys_platform == 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/3a/e1/5b9089a4b2a4790dfdea8b3a006052cfecff58139d5a4e34cb1a51df8d6f/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl", hash = "sha256:19e33fa442bcfd085b3086c4ebf7e8debc07cfe01e11513cc6d332fd918ac260", size = 127936057 }, @@ -907,12 +907,20 @@ name = "nvidia-cusparse-cu12" version = "12.3.1.170" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink-cu12" }, + { name = "nvidia-nvjitlink-cu12", marker = "sys_platform == 'linux'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/db/f7/97a9ea26ed4bbbfc2d470994b8b4f338ef663be97b8f677519ac195e113d/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ea4f11a2904e2a8dc4b1833cc1b5181cde564edd0d5cd33e3c168eff2d1863f1", size = 207454763 }, ] +[[package]] +name = "nvidia-cusparselt-cu12" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/a8/bcbb63b53a4b1234feeafb65544ee55495e1bb37ec31b999b963cbccfd1d/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:df2c24502fd76ebafe7457dbc4716b2fec071aabaed4fb7691a201cde03704d9", size = 150057751 }, +] + [[package]] name = "nvidia-nccl-cu12" version = "2.21.5" @@ -1693,7 +1701,7 @@ wheels = [ [[package]] name = "torch" -version = "2.5.1" +version = "2.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, @@ -1709,28 +1717,32 @@ dependencies = [ { name = "nvidia-curand-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "nvidia-cusolver-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "nvidia-cusparse-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparselt-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "nvidia-nccl-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "nvidia-nvjitlink-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "nvidia-nvtx-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "setuptools", marker = "python_full_version >= '3.12'" }, { name = "sympy" }, - { name = "triton", marker = "python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "triton", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "typing-extensions" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/ef/834af4a885b31a0b32fff2d80e1e40f771e1566ea8ded55347502440786a/torch-2.5.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:71328e1bbe39d213b8721678f9dcac30dfc452a46d586f1d514a6aa0a99d4744", size = 906446312 }, - { url = "https://files.pythonhosted.org/packages/69/f0/46e74e0d145f43fa506cb336eaefb2d240547e4ce1f496e442711093ab25/torch-2.5.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:34bfa1a852e5714cbfa17f27c49d8ce35e1b7af5608c4bc6e81392c352dbc601", size = 91919522 }, - { url = "https://files.pythonhosted.org/packages/a5/13/1eb674c8efbd04d71e4a157ceba991904f633e009a584dd65dccbafbb648/torch-2.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:32a037bd98a241df6c93e4c789b683335da76a2ac142c0973675b715102dc5fa", size = 203088048 }, - { url = "https://files.pythonhosted.org/packages/a9/9d/e0860474ee0ff8f6ef2c50ec8f71a250f38d78a9b9df9fd241ad3397a65b/torch-2.5.1-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:23d062bf70776a3d04dbe74db950db2a5245e1ba4f27208a87f0d743b0d06e86", size = 63877046 }, - { url = "https://files.pythonhosted.org/packages/d1/35/e8b2daf02ce933e4518e6f5682c72fd0ed66c15910ea1fb4168f442b71c4/torch-2.5.1-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:de5b7d6740c4b636ef4db92be922f0edc425b65ed78c5076c43c42d362a45457", size = 906474467 }, - { url = "https://files.pythonhosted.org/packages/40/04/bd91593a4ca178ece93ca55f27e2783aa524aaccbfda66831d59a054c31e/torch-2.5.1-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:340ce0432cad0d37f5a31be666896e16788f1adf8ad7be481196b503dad675b9", size = 91919450 }, - { url = "https://files.pythonhosted.org/packages/0d/4a/e51420d46cfc90562e85af2fee912237c662ab31140ab179e49bd69401d6/torch-2.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:603c52d2fe06433c18b747d25f5c333f9c1d58615620578c326d66f258686f9a", size = 203098237 }, - { url = "https://files.pythonhosted.org/packages/d0/db/5d9cbfbc7968d79c5c09a0bc0bc3735da079f2fd07cc10498a62b320a480/torch-2.5.1-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:31f8c39660962f9ae4eeec995e3049b5492eb7360dd4f07377658ef4d728fa4c", size = 63884466 }, - { url = "https://files.pythonhosted.org/packages/8b/5c/36c114d120bfe10f9323ed35061bc5878cc74f3f594003854b0ea298942f/torch-2.5.1-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:ed231a4b3a5952177fafb661213d690a72caaad97d5824dd4fc17ab9e15cec03", size = 906389343 }, - { url = "https://files.pythonhosted.org/packages/6d/69/d8ada8b6e0a4257556d5b4ddeb4345ea8eeaaef3c98b60d1cca197c7ad8e/torch-2.5.1-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:3f4b7f10a247e0dcd7ea97dc2d3bfbfc90302ed36d7f3952b0008d0df264e697", size = 91811673 }, - { url = "https://files.pythonhosted.org/packages/5f/ba/607d013b55b9fd805db2a5c2662ec7551f1910b4eef39653eeaba182c5b2/torch-2.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:73e58e78f7d220917c5dbfad1a40e09df9929d3b95d25e57d9f8558f84c9a11c", size = 203046841 }, - { url = "https://files.pythonhosted.org/packages/57/6c/bf52ff061da33deb9f94f4121fde7ff3058812cb7d2036c97bc167793bd1/torch-2.5.1-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:8c712df61101964eb11910a846514011f0b6f5920c55dbf567bff8a34163d5b1", size = 63858109 }, - { url = "https://files.pythonhosted.org/packages/69/72/20cb30f3b39a9face296491a86adb6ff8f1a47a897e4d14667e6cf89d5c3/torch-2.5.1-cp313-cp313-manylinux1_x86_64.whl", hash = "sha256:9b61edf3b4f6e3b0e0adda8b3960266b9009d02b37555971f4d1c8f7a05afed7", size = 906393265 }, + { url = "https://files.pythonhosted.org/packages/37/81/aa9ab58ec10264c1abe62c8b73f5086c3c558885d6beecebf699f0dbeaeb/torch-2.6.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:6860df13d9911ac158f4c44031609700e1eba07916fff62e21e6ffa0a9e01961", size = 766685561 }, + { url = "https://files.pythonhosted.org/packages/86/86/e661e229df2f5bfc6eab4c97deb1286d598bbeff31ab0cdb99b3c0d53c6f/torch-2.6.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c4f103a49830ce4c7561ef4434cc7926e5a5fe4e5eb100c19ab36ea1e2b634ab", size = 95751887 }, + { url = "https://files.pythonhosted.org/packages/20/e0/5cb2f8493571f0a5a7273cd7078f191ac252a402b5fb9cb6091f14879109/torch-2.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:56eeaf2ecac90da5d9e35f7f35eb286da82673ec3c582e310a8d1631a1c02341", size = 204165139 }, + { url = "https://files.pythonhosted.org/packages/e5/16/ea1b7842413a7b8a5aaa5e99e8eaf3da3183cc3ab345ad025a07ff636301/torch-2.6.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:09e06f9949e1a0518c5b09fe95295bc9661f219d9ecb6f9893e5123e10696628", size = 66520221 }, + { url = "https://files.pythonhosted.org/packages/78/a9/97cbbc97002fff0de394a2da2cdfa859481fdca36996d7bd845d50aa9d8d/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:7979834102cd5b7a43cc64e87f2f3b14bd0e1458f06e9f88ffa386d07c7446e1", size = 766715424 }, + { url = "https://files.pythonhosted.org/packages/6d/fa/134ce8f8a7ea07f09588c9cc2cea0d69249efab977707cf67669431dcf5c/torch-2.6.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:ccbd0320411fe1a3b3fec7b4d3185aa7d0c52adac94480ab024b5c8f74a0bf1d", size = 95759416 }, + { url = "https://files.pythonhosted.org/packages/11/c5/2370d96b31eb1841c3a0883a492c15278a6718ccad61bb6a649c80d1d9eb/torch-2.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:46763dcb051180ce1ed23d1891d9b1598e07d051ce4c9d14307029809c4d64f7", size = 204164970 }, + { url = "https://files.pythonhosted.org/packages/0b/fa/f33a4148c6fb46ca2a3f8de39c24d473822d5774d652b66ed9b1214da5f7/torch-2.6.0-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:94fc63b3b4bedd327af588696559f68c264440e2503cc9e6954019473d74ae21", size = 66530713 }, + { url = "https://files.pythonhosted.org/packages/e5/35/0c52d708144c2deb595cd22819a609f78fdd699b95ff6f0ebcd456e3c7c1/torch-2.6.0-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:2bb8987f3bb1ef2675897034402373ddfc8f5ef0e156e2d8cfc47cacafdda4a9", size = 766624563 }, + { url = "https://files.pythonhosted.org/packages/01/d6/455ab3fbb2c61c71c8842753b566012e1ed111e7a4c82e0e1c20d0c76b62/torch-2.6.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:b789069020c5588c70d5c2158ac0aa23fd24a028f34a8b4fcb8fcb4d7efcf5fb", size = 95607867 }, + { url = "https://files.pythonhosted.org/packages/18/cf/ae99bd066571656185be0d88ee70abc58467b76f2f7c8bfeb48735a71fe6/torch-2.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:7e1448426d0ba3620408218b50aa6ada88aeae34f7a239ba5431f6c8774b1239", size = 204120469 }, + { url = "https://files.pythonhosted.org/packages/81/b4/605ae4173aa37fb5aa14605d100ff31f4f5d49f617928c9f486bb3aaec08/torch-2.6.0-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:9a610afe216a85a8b9bc9f8365ed561535c93e804c2a317ef7fabcc5deda0989", size = 66532538 }, + { url = "https://files.pythonhosted.org/packages/24/85/ead1349fc30fe5a32cadd947c91bda4a62fbfd7f8c34ee61f6398d38fb48/torch-2.6.0-cp313-cp313-manylinux1_x86_64.whl", hash = "sha256:4874a73507a300a5d089ceaff616a569e7bb7c613c56f37f63ec3ffac65259cf", size = 766626191 }, + { url = "https://files.pythonhosted.org/packages/dd/b0/26f06f9428b250d856f6d512413e9e800b78625f63801cbba13957432036/torch-2.6.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:a0d5e1b9874c1a6c25556840ab8920569a7a4137afa8a63a32cee0bc7d89bd4b", size = 95611439 }, + { url = "https://files.pythonhosted.org/packages/c2/9c/fc5224e9770c83faed3a087112d73147cd7c7bfb7557dcf9ad87e1dda163/torch-2.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:510c73251bee9ba02ae1cb6c9d4ee0907b3ce6020e62784e2d7598e0cfa4d6cc", size = 204126475 }, + { url = "https://files.pythonhosted.org/packages/88/8b/d60c0491ab63634763be1537ad488694d316ddc4a20eaadd639cedc53971/torch-2.6.0-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:ff96f4038f8af9f7ec4231710ed4549da1bdebad95923953a25045dcf6fd87e2", size = 66536783 }, ] [[package]] @@ -1781,15 +1793,13 @@ wheels = [ [[package]] name = "triton" -version = "3.1.0" +version = "3.2.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "filelock" }, -] wheels = [ - { url = "https://files.pythonhosted.org/packages/98/29/69aa56dc0b2eb2602b553881e34243475ea2afd9699be042316842788ff5/triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b0dd10a925263abbe9fa37dcde67a5e9b2383fc269fdf59f5657cac38c5d1d8", size = 209460013 }, - { url = "https://files.pythonhosted.org/packages/86/17/d9a5cf4fcf46291856d1e90762e36cbabd2a56c7265da0d1d9508c8e3943/triton-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f34f6e7885d1bf0eaaf7ba875a5f0ce6f3c13ba98f9503651c1e6dc6757ed5c", size = 209506424 }, - { url = "https://files.pythonhosted.org/packages/78/eb/65f5ba83c2a123f6498a3097746607e5b2f16add29e36765305e4ac7fdd8/triton-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8182f42fd8080a7d39d666814fa36c5e30cc00ea7eeeb1a2983dbb4c99a0fdc", size = 209551444 }, + { url = "https://files.pythonhosted.org/packages/01/65/3ffa90e158a2c82f0716eee8d26a725d241549b7d7aaf7e4f44ac03ebd89/triton-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3e54983cd51875855da7c68ec05c05cf8bb08df361b1d5b69e05e40b0c9bd62", size = 253090354 }, + { url = "https://files.pythonhosted.org/packages/a7/2e/757d2280d4fefe7d33af7615124e7e298ae7b8e3bc4446cdb8e88b0f9bab/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8009a1fb093ee8546495e96731336a33fb8856a38e45bb4ab6affd6dbc3ba220", size = 253157636 }, + { url = "https://files.pythonhosted.org/packages/06/00/59500052cb1cf8cf5316be93598946bc451f14072c6ff256904428eaf03c/triton-3.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d9b215efc1c26fa7eefb9a157915c92d52e000d2bf83e5f69704047e63f125c", size = 253159365 }, + { url = "https://files.pythonhosted.org/packages/c7/30/37a3384d1e2e9320331baca41e835e90a3767303642c7a80d4510152cbcf/triton-3.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5dfa23ba84541d7c0a531dfce76d8bcd19159d50a4a8b14ad01e91734a5c1b0", size = 253154278 }, ] [[package]] @@ -2051,7 +2061,7 @@ requires-dist = [ { name = "pyarrow" }, { name = "pydantic-config", git = "https://github.com/samsja/pydantic_config.git?rev=b7becc3" }, { name = "setuptools" }, - { name = "torch", specifier = "==2.5.1" }, + { name = "torch", specifier = "==2.6.0" }, { name = "torchdata", specifier = ">=0.8.0" }, { name = "transformers", specifier = ">=4.44.2" }, { name = "wandb" }, From e86b207583235ac72dfcbc7dd2e0febf4dcc3070 Mon Sep 17 00:00:00 2001 From: sami jaghouar Date: Thu, 13 Feb 2025 07:37:29 +0000 Subject: [PATCH 08/13] update ddp Signed-off-by: sami jaghouar --- scripts/subset_data.py | 120 ++++++++++++++++++++ train_ddp.py | 245 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 365 insertions(+) create mode 100644 scripts/subset_data.py create mode 100644 train_ddp.py diff --git a/scripts/subset_data.py b/scripts/subset_data.py new file mode 100644 index 00000000..2e6c6484 --- /dev/null +++ b/scripts/subset_data.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python +# coding: utf-8 +# Usage: +# python scripts/subset_data.py --dataset_name PrimeIntellect/fineweb-edu --data_world_size 12 --data_rank 1 + +import argparse +import subprocess +from typing import Dict, List, Optional +import functools +from datasets import load_dataset_builder, BuilderConfig +import logging +from huggingface_hub import get_token +import os +import multiprocessing as mp +from tqdm import tqdm + +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) +ch = logging.StreamHandler() +ch.setLevel(logging.DEBUG) +formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") +ch.setFormatter(formatter) +logger.addHandler(ch) + + +@functools.lru_cache(maxsize=None) +def _get_ds_config_dict(path: str, name: Optional[str] = None) -> Dict[str, BuilderConfig]: + ds_builder = load_dataset_builder(path=path, name=name) + return ds_builder.builder_configs + + +def _get_datafiles(path: str, name: Optional[str] = None, split: str = "train") -> List[str]: + builder_config = _get_ds_config_dict(path=path, name=name) + if name is None: + if "default" not in builder_config: + name = next(iter(builder_config.keys())) + else: + name = "default" + return builder_config[name].data_files[split] + + +def _download_file(data_file: str, save_path: str) -> None: + """Download a file from huggingface.co + + Args: + data_file (str): The file to download. e.g. 'hf://datasets/PrimeIntellect/fineweb-edu@14efaa24d7dff8a745bf4918e415878546542346/data1/train-00450.parquet' + save_path (str): The path to save the file. e.g. 'data1/train-00450.parquet' + """ + assert data_file.startswith("hf://") + data_file = data_file.replace("hf://", "").replace("@", "/resolve/") + + if "/" in save_path: + parent = "/".join(save_path.split("/")[:-1]) + if not os.path.exists(parent): + logger.debug(f"Creating directory: {parent}") + os.makedirs(parent, exist_ok=True) + + cmd = [ + "wget", + f'--header="Authorization: Bearer {get_token()}"', + f"https://huggingface.co/{data_file}?download=true", + f"-O {save_path}", + ] + result = subprocess.run(" ".join(cmd), shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) + if result.returncode != 0: + logger.error(f"Error downloading file: {data_file}") + logger.error(result.stderr.decode("utf-8")) + + +def _download_file_wrapper(args): + return _download_file(*args) + + +def _get_save_path(data_file: str) -> str: + ret_list = data_file.split("@")[-1].split("/")[1:] + return args.dataset_name.split("/")[-1] + "/" + "/".join(ret_list) + + +def main(args): + g_data_files = _get_datafiles(args.dataset_name) + logger.debug(f"Length of data_files: {len(g_data_files)}") + if len(args.filter) > 0: + args.filter = args.filter.split(",") + data_files = [] + for _filter in args.filter: + data_files.extend([f for f in g_data_files if _filter in f]) + else: + data_files = g_data_files + + logger.debug(f"Length of data_files: {len(data_files)}") + data_files = data_files[args.data_rank :: args.data_world_size][: args.max_shards] + logger.debug(f"Data files: {data_files}") + logger.debug(f"Length of data_files processing: {len(data_files)}") + + if args.dry_run: + return + + with mp.Pool(args.num_workers) as pool: + save_paths = list(pool.imap(_get_save_path, tqdm(data_files, desc="Getting save paths"))) + _ = list( + tqdm( + pool.imap(_download_file_wrapper, zip(data_files, save_paths)), + desc="Downloading files", + total=len(data_files), + bar_format="{l_bar}{bar:10}{r_bar}", + ) + ) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Download and process data from a HF dataset") + parser.add_argument("--dataset_name", type=str, default="PrimeIntellect/fineweb-edu", help="dataset name") + parser.add_argument("--dry_run", action="store_true", help="do not download data") + parser.add_argument("--filter", type=str, default="", help="search shards by the filter") + parser.add_argument("--data_rank", type=int, default=0, help="start index") + parser.add_argument("--data_world_size", type=int, default=4, help="world size") + parser.add_argument("--max_shards", type=int, default=1000) + parser.add_argument("--num_workers", type=int, default=12) + args = parser.parse_args() + main(args) diff --git a/train_ddp.py b/train_ddp.py new file mode 100644 index 00000000..39c43a0d --- /dev/null +++ b/train_ddp.py @@ -0,0 +1,245 @@ +from dataclasses import dataclass +import os +import time +from typing import TYPE_CHECKING, Literal + +import torch +import torch.distributed as dist +import wandb + +from zeroband.data import TEST_VOCAB_SIZE, DataConfig, get_dataloader +from zeroband.lr_scheduler import get_scheduler +from zeroband.models.llama import get_model +from zeroband.models.llama.model import create_block_mask_from_seqlens +from zeroband.utils import ( + FakeTokenizer, + PerfCounter, + get_peak_flops, + get_num_params, + get_num_flop_per_token, + apply_ac_ckpt, +) +from zeroband.logger import get_logger + +from transformers import AutoTokenizer +from pydantic_config import BaseConfig, parse_argv +import torch.nn.functional as F +from torch.nn.parallel import DistributedDataParallel as DDP + +from zeroband.world_info import get_world_info + + +class AdamConfig(BaseConfig): + type: Literal["adam"] = "adam" + lr: float = 4e-4 + weight_decay: float = 0.1 + betas1: float = 0.9 + betas2: float = 0.95 + + +class OptimConfig(BaseConfig): + optim: AdamConfig = AdamConfig() + sched_type: Literal["cosine", "linear", "wsd-sqrt"] = "cosine" + warmup_steps: int = 1000 + stable_steps: int = 80_000 + total_steps: int = 88_000 + batch_size: int = 512 + + +class TrainConfig(BaseConfig): + micro_bs: int = 1 + ac_ckpt: bool | int = False + reshard_after_forward: bool = True # old shard grad op True mean full shard + torch_compile: bool = True + + +class Config(BaseConfig): + name_model: Literal["debugmodel", "70M", "150M", "271M", "1B", "7B", "10B", "13B", "26B", "70B"] = "150M" + type_model: Literal["llama2", "llama3"] = "llama3" + + project: str = "prime_simple" + wandb: bool = True + + data: DataConfig = DataConfig() + optim: OptimConfig = OptimConfig() + train: TrainConfig + + +@dataclass +class TrainingProgress: + total_tokens: int + outer_step: int + step: int + + +def train(config: Config): + # batch_size is the total batch size for all GPUs + assert config.optim.batch_size % world_info.local_world_size == 0 + batch_size = config.optim.batch_size // world_info.local_world_size + + assert batch_size % config.train.micro_bs == 0, ( + f"The micro batch size ({config.train.micro_bs}) must divide the number of samples on each GPU ({batch_size})." + ) + gradient_accumulation_steps = batch_size // config.train.micro_bs + + # Load tokenizer + if config.data.fake and config.name_model == "debugmodel": + tokenizer = FakeTokenizer() + elif config.type_model == "llama2": + tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1", use_fast=True) + elif config.type_model == "llama3": + tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B", use_fast=True) + else: + raise ValueError(f"Model type {config.type_model} not supported") + + train_dataloader = get_dataloader( + tokenizer=tokenizer, + world_size=world_info.world_size, + rank=world_info.rank, + batch_size=config.train.micro_bs, + data_config=config.data, + ) + train_dataloader_iterator = iter(train_dataloader) + + model, model_config = get_model( + type_model=config.type_model, + name_model=config.name_model, + seq_length=config.data.seq_length, + vocab_size=len(tokenizer) if config.name_model != "debugmodel" or not config.data.fake else TEST_VOCAB_SIZE, + ) + model = model.to(world_info.local_rank) + + gpu_peak_flops = get_peak_flops(torch.cuda.get_device_name(torch.device("cuda"))) + logger.info(f"Peak FLOPS used for computing MFU: {gpu_peak_flops:.3e}") + + num_params = get_num_params(model, exclude_embedding=True) + logger.info(f"Number of parameters: {num_params}") + num_flop_per_token = get_num_flop_per_token( + num_params, + model_config, + config.data.seq_length, + ) + + if config.train.ac_ckpt: + num = 1 if isinstance(config.train.ac_ckpt, bool) else config.train.ac_ckpt + apply_ac_ckpt(model, num) + + logger.info(f"Initializing DDP model on device {world_info.local_rank}") + model = DDP(model, device_ids=[world_info.local_rank], broadcast_buffers=False, gradient_as_bucket_view=True) + + optimizer = torch.optim.AdamW( + params=model.parameters(), + lr=config.optim.optim.lr, + weight_decay=config.optim.optim.weight_decay, + betas=(config.optim.optim.betas1, config.optim.optim.betas2), + ) + + scheduler = get_scheduler( + sched_type=config.optim.sched_type, + optimizer=optimizer, + num_warmup_steps=config.optim.warmup_steps, + num_stable_steps=config.optim.stable_steps, + num_training_steps=config.optim.total_steps, + ) + + training_progress = TrainingProgress(total_tokens=0, outer_step=0, step=0) + + if world_info.rank == 0 and config.wandb: + wandb.init(project=config.project, config=config.model_dump()) + + if config.train.torch_compile: + model = torch.compile(model) if not TYPE_CHECKING else model + + perf_counter = PerfCounter(window_size=10) + + while True: + loss_batch = 0 + + for grad_acc_step in range(gradient_accumulation_steps): + is_accumulating = grad_acc_step < gradient_accumulation_steps - 1 + # no sync if we are accumulating gradients + model.require_backward_grad_sync = not is_accumulating + + batch = next(train_dataloader_iterator) + input_ids = batch["input_ids"].to("cuda") + labels = batch["labels"].to("cuda") + seqlens = [seqlen.to("cuda") for seqlen in batch["seqlens"]] + block_mask = create_block_mask_from_seqlens(seqlens) if seqlens is not None else None + + logits = model(tokens=input_ids, block_mask=block_mask).contiguous() + flatten_logits = logits.reshape(-1, logits.size(-1)) # b seq vocab -> (b * seq) vocab + flatten_labels = labels.reshape(-1) # b seq -> (b * seq) + + ce_loss = F.cross_entropy(flatten_logits, flatten_labels) + + del logits + del flatten_logits + del flatten_labels + + loss = ce_loss / gradient_accumulation_steps + loss.backward() + loss_batch += loss.detach().clone() + + # Launch both allreduces at the same time to hide latency + dist.all_reduce(tensor=loss_batch, op=dist.ReduceOp.AVG) + + grad_norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) # type: ignore (is a dtensor) + + optimizer.step() + scheduler.step() + + optimizer.zero_grad() + + # logging + training_progress.step += 1 + inner_lr = [group["lr"] for group in optimizer.param_groups][0] + + # syncing loss across all data parallel rank within a nodes + new_tokens = config.data.seq_length * config.optim.batch_size + perf_counter.count_tokens(new_tokens) + training_progress.total_tokens += new_tokens + + metrics = { + "Loss": loss_batch.item(), + "step": training_progress.step, + "inner_lr": inner_lr, + "Perplexity": torch.exp(loss_batch).item(), + "total_tokens": training_progress.total_tokens, + "time": time.time(), + "grad_norm": grad_norm.item(), + } + + log = f"step: {training_progress.step}, loss: {loss_batch.item():.4f}" + + tokens_per_second = perf_counter.get_tokens_per_second() + if tokens_per_second is not None: + metrics["tokens_per_second"] = tokens_per_second + metrics["mfu"] = 100 * num_flop_per_token * tokens_per_second / gpu_peak_flops / world_info.local_world_size + log += f", tokens_per_second: {tokens_per_second:.2f}, mfu: {metrics['mfu']:.2f}" + + if world_info.rank == 0 and config.wandb: + wandb.log(metrics) + + logger.info(log) + + if training_progress.step > config.optim.total_steps: + break + + logger.info("Training finished, exiting ...") + + +if __name__ == "__main__": + # Allow eager fallback during production so that that the training runs dont die + # However, in development, we want to know that we broke torch compile + torch._dynamo.config.suppress_errors = "ZERO_BAND_DEV" not in os.environ # type: ignore + torch.set_float32_matmul_precision("high") + torch.manual_seed(42) + + config = Config(**parse_argv()) # type: ignore + world_info = get_world_info() + logger = get_logger() + + torch.cuda.set_device(world_info.local_rank) + dist.init_process_group(backend="nccl") + + train(config) From b7fa4bdd84992dcdc3c90cc8d984701091c39045 Mon Sep 17 00:00:00 2001 From: sami jaghouar Date: Thu, 13 Feb 2025 18:21:38 +0000 Subject: [PATCH 09/13] add ddp manual Signed-off-by: sami jaghouar --- train_ddp_manual.py | 246 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 train_ddp_manual.py diff --git a/train_ddp_manual.py b/train_ddp_manual.py new file mode 100644 index 00000000..50976e4c --- /dev/null +++ b/train_ddp_manual.py @@ -0,0 +1,246 @@ +from dataclasses import dataclass +import os +import time +from typing import TYPE_CHECKING, Literal + +import torch +import torch.distributed as dist +import wandb + +from zeroband.data import TEST_VOCAB_SIZE, DataConfig, get_dataloader +from zeroband.lr_scheduler import get_scheduler +from zeroband.models.llama import get_model +from zeroband.models.llama.model import create_block_mask_from_seqlens +from zeroband.utils import ( + FakeTokenizer, + PerfCounter, + get_peak_flops, + get_num_params, + get_num_flop_per_token, + apply_ac_ckpt, +) +from zeroband.logger import get_logger + +from transformers import AutoTokenizer +from pydantic_config import BaseConfig, parse_argv +import torch.nn.functional as F + +from zeroband.world_info import get_world_info + + +class AdamConfig(BaseConfig): + type: Literal["adam"] = "adam" + lr: float = 4e-4 + weight_decay: float = 0.1 + betas1: float = 0.9 + betas2: float = 0.95 + + +class OptimConfig(BaseConfig): + optim: AdamConfig = AdamConfig() + sched_type: Literal["cosine", "linear", "wsd-sqrt"] = "cosine" + warmup_steps: int = 1000 + stable_steps: int = 80_000 + total_steps: int = 88_000 + batch_size: int = 512 + + +class TrainConfig(BaseConfig): + micro_bs: int = 1 + ac_ckpt: bool | int = False + reshard_after_forward: bool = True # old shard grad op True mean full shard + torch_compile: bool = True + + +class Config(BaseConfig): + name_model: Literal["debugmodel", "70M", "150M", "271M", "1B", "7B", "10B", "13B", "26B", "70B"] = "150M" + type_model: Literal["llama2", "llama3"] = "llama3" + + project: str = "prime_simple" + wandb: bool = True + + data: DataConfig = DataConfig() + optim: OptimConfig = OptimConfig() + train: TrainConfig + + +@dataclass +class TrainingProgress: + total_tokens: int + outer_step: int + step: int + + +def train(config: Config): + # batch_size is the total batch size for all GPUs + assert config.optim.batch_size % world_info.local_world_size == 0 + batch_size = config.optim.batch_size // world_info.local_world_size + + assert batch_size % config.train.micro_bs == 0, ( + f"The micro batch size ({config.train.micro_bs}) must divide the number of samples on each GPU ({batch_size})." + ) + gradient_accumulation_steps = batch_size // config.train.micro_bs + + # Load tokenizer + if config.data.fake and config.name_model == "debugmodel": + tokenizer = FakeTokenizer() + elif config.type_model == "llama2": + tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1", use_fast=True) + elif config.type_model == "llama3": + tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3-8B", use_fast=True) + else: + raise ValueError(f"Model type {config.type_model} not supported") + + train_dataloader = get_dataloader( + tokenizer=tokenizer, + world_size=world_info.world_size, + rank=world_info.rank, + batch_size=config.train.micro_bs, + data_config=config.data, + ) + train_dataloader_iterator = iter(train_dataloader) + + model, model_config = get_model( + type_model=config.type_model, + name_model=config.name_model, + seq_length=config.data.seq_length, + vocab_size=len(tokenizer) if config.name_model != "debugmodel" or not config.data.fake else TEST_VOCAB_SIZE, + ) + model = model.to(world_info.local_rank) + + gpu_peak_flops = get_peak_flops(torch.cuda.get_device_name(torch.device("cuda"))) + logger.info(f"Peak FLOPS used for computing MFU: {gpu_peak_flops:.3e}") + + num_params = get_num_params(model, exclude_embedding=True) + logger.info(f"Number of parameters: {num_params}") + num_flop_per_token = get_num_flop_per_token( + num_params, + model_config, + config.data.seq_length, + ) + + if config.train.ac_ckpt: + num = 1 if isinstance(config.train.ac_ckpt, bool) else config.train.ac_ckpt + apply_ac_ckpt(model, num) + + optimizer = torch.optim.AdamW( + params=model.parameters(), + lr=config.optim.optim.lr, + weight_decay=config.optim.optim.weight_decay, + betas=(config.optim.optim.betas1, config.optim.optim.betas2), + ) + + scheduler = get_scheduler( + sched_type=config.optim.sched_type, + optimizer=optimizer, + num_warmup_steps=config.optim.warmup_steps, + num_stable_steps=config.optim.stable_steps, + num_training_steps=config.optim.total_steps, + ) + + training_progress = TrainingProgress(total_tokens=0, outer_step=0, step=0) + + if world_info.rank == 0 and config.wandb: + wandb.init(project=config.project, config=config.model_dump()) + + if config.train.torch_compile: + model = torch.compile(model) if not TYPE_CHECKING else model + + perf_counter = PerfCounter(window_size=10) + + while True: + loss_batch = 0 + + for grad_acc_step in range(gradient_accumulation_steps): + # is_accumulating = grad_acc_step < gradient_accumulation_steps - 1 + + batch = next(train_dataloader_iterator) + input_ids = batch["input_ids"].to("cuda") + labels = batch["labels"].to("cuda") + seqlens = [seqlen.to("cuda") for seqlen in batch["seqlens"]] + block_mask = create_block_mask_from_seqlens(seqlens) if seqlens is not None else None + + logits = model(tokens=input_ids, block_mask=block_mask).contiguous() + flatten_logits = logits.reshape(-1, logits.size(-1)) # b seq vocab -> (b * seq) vocab + flatten_labels = labels.reshape(-1) # b seq -> (b * seq) + + ce_loss = F.cross_entropy(flatten_logits, flatten_labels) + + del logits + del flatten_logits + del flatten_labels + + loss = ce_loss / gradient_accumulation_steps + loss.backward() + loss_batch += loss.detach().clone() + + # Launch both allreduces at the same time to hide latency + dist.all_reduce(tensor=loss_batch, op=dist.ReduceOp.AVG) + + jobs = [] + for param in model.parameters(): + jobs.append(dist.all_reduce(tensor=param.grad, op=dist.ReduceOp.AVG, async_op=True)) + + for job in jobs: + job.wait() + + grad_norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) # type: ignore (is a dtensor) + + optimizer.step() + scheduler.step() + + optimizer.zero_grad() + + # logging + training_progress.step += 1 + inner_lr = [group["lr"] for group in optimizer.param_groups][0] + + # syncing loss across all data parallel rank within a nodes + new_tokens = config.data.seq_length * config.optim.batch_size + perf_counter.count_tokens(new_tokens) + training_progress.total_tokens += new_tokens + + metrics = { + "Loss": loss_batch.item(), + "step": training_progress.step, + "inner_lr": inner_lr, + "Perplexity": torch.exp(loss_batch).item(), + "total_tokens": training_progress.total_tokens, + "time": time.time(), + "grad_norm": grad_norm.item(), + } + + log = f"step: {training_progress.step}, loss: {loss_batch.item():.4f}" + + tokens_per_second = perf_counter.get_tokens_per_second() + if tokens_per_second is not None: + metrics["tokens_per_second"] = tokens_per_second + metrics["mfu"] = 100 * num_flop_per_token * tokens_per_second / gpu_peak_flops / world_info.local_world_size + log += f", tokens_per_second: {tokens_per_second:.2f}, mfu: {metrics['mfu']:.2f}" + + if world_info.rank == 0 and config.wandb: + wandb.log(metrics) + + logger.info(log) + + if training_progress.step > config.optim.total_steps: + break + + logger.info("Training finished, exiting ...") + + +if __name__ == "__main__": + # Allow eager fallback during production so that that the training runs dont die + # However, in development, we want to know that we broke torch compile + torch._dynamo.config.suppress_errors = "ZERO_BAND_DEV" not in os.environ # type: ignore + torch.set_float32_matmul_precision("high") + torch.manual_seed(42) + + config = Config(**parse_argv()) # type: ignore + world_info = get_world_info() + logger = get_logger() + + torch.cuda.set_device(world_info.local_rank) + dist.init_process_group(backend="nccl") + + train(config) From 5e60b00d4a2d81070605a42430ae66364b28369e Mon Sep 17 00:00:00 2001 From: Sami Jaghouar Date: Fri, 14 Feb 2025 20:35:45 +0000 Subject: [PATCH 10/13] add muon Signed-off-by: Sami Jaghouar --- train_ddp_manual.py | 137 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 122 insertions(+), 15 deletions(-) diff --git a/train_ddp_manual.py b/train_ddp_manual.py index 50976e4c..832bc861 100644 --- a/train_ddp_manual.py +++ b/train_ddp_manual.py @@ -71,6 +71,94 @@ class TrainingProgress: step: int +def zeropower_via_svd(G, steps=None): + U, S, V = G.svd() + return U @ V.T + + +@torch.compile +def zeropower_via_newtonschulz5(G, steps=10, eps=1e-7): + """ + Newton-Schulz iteration to compute the zeroth power / orthogonalization of G. We opt to use a + quintic iteration whose coefficients are selected to maximize the slope at zero. For the purpose + of minimizing steps, it turns out to be empirically effective to keep increasing the slope at + zero even beyond the point where the iteration no longer converges all the way to one everywhere + on the interval. This iteration therefore does not produce UV^T but rather something like US'V^T + where S' is diagonal with S_{ii}' \sim Uniform(0.5, 1.5), which turns out not to hurt model + performance at all relative to UV^T, where USV^T = G is the SVD. + """ + assert len(G.shape) == 2 + a, b, c = (3.4445, -4.7750, 2.0315) + X = G.bfloat16() / (G.norm() + eps) # ensure top singular value <= 1 + if G.size(0) > G.size(1): + X = X.T + for _ in range(steps): + A = X @ X.T + B = A @ X + X = a * X + b * B + c * A @ B + if G.size(0) > G.size(1): + X = X.T + return X.to(G.dtype) + + +zeropower_backends = dict(svd=zeropower_via_svd, newtonschulz5=zeropower_via_newtonschulz5) + + +class Muon(torch.optim.Optimizer): + """ + Muon: MomentUm Orthogonalized by Newton-schulz + + Muon internally runs standard SGD-momentum, and then performs an orthogonalization post- + processing step, in which each 2D parameter's update is replaced with the nearest orthogonal + matrix. To efficiently orthogonalize each update, we use a Newton-Schulz iteration, which has + the advantage that it can be stably run in bfloat16 on the GPU. + + Some warnings: + - This optimizer assumes that all parameters passed in are 2D. + - It should not be used for the embedding layer, the final fully connected layer, or any {0,1}-D + parameters; those should all be optimized by a standard method (e.g., AdamW). + - To use it with 4D convolutional filters, it works well to just flatten their last 3 dimensions. + - We believe it is unlikely to work well for training with small batch size. + - We believe it may not work well for finetuning pretrained models, but we haven't tested this. + - We have not yet tried this optimizer for training scenarios larger than NanoGPT (124M). + + Arguments: + lr: The learning rate used by the internal SGD. + momentum: The momentum used by the internal SGD. + nesterov: Whether to use Nesterov-style momentum in the internal SGD. (recommended) + backend: The chosen backend for the orthogonalization step. (recommended: 'newtonschulz5') + backend_steps: The number of iteration steps to use in the backend, if it is iterative. + """ + + def __init__(self, params, lr=3e-4, momentum=0.95, nesterov=True, backend="newtonschulz5", backend_steps=5): + defaults = dict(lr=lr, momentum=momentum, nesterov=nesterov, backend=backend, backend_steps=backend_steps) + super().__init__(params, defaults) + + def step(self): + for group in self.param_groups: + lr = group["lr"] + momentum = group["momentum"] + zeropower_backend = zeropower_backends[group["backend"]] + for p in group["params"]: + g = p.grad + if g is None: + continue + state = self.state[p] + if "momentum_buffer" not in state: + state["momentum_buffer"] = torch.zeros_like(g) + buf = state["momentum_buffer"] + buf.mul_(momentum).add_(g) + if group["nesterov"]: + g = g.add(buf, alpha=momentum) + if g.size(0) == 3 * g.size(1): # split grouped QKV parameters + g = torch.cat([zeropower_backend(g1, steps=group["backend_steps"]) for g1 in g.split(g.size(1))]) + scale = g.size(1) ** 0.5 + else: + g = zeropower_backend(g, steps=group["backend_steps"]) + scale = max(g.size(0), g.size(1)) ** 0.5 # scale to have update.square().mean() == 1 + p.data.add_(g, alpha=-lr * scale) + + def train(config: Config): # batch_size is the total batch size for all GPUs assert config.optim.batch_size % world_info.local_world_size == 0 @@ -123,20 +211,38 @@ def train(config: Config): num = 1 if isinstance(config.train.ac_ckpt, bool) else config.train.ac_ckpt apply_ac_ckpt(model, num) - optimizer = torch.optim.AdamW( - params=model.parameters(), + hidden_matrix_params = [p for n, p in model.layers.named_parameters() if p.ndim >= 2 and "embed" not in n] + embed_params = [p for n, p in model.named_parameters() if "embed" in n] + scalar_params = [p for p in model.parameters() if p.ndim < 2] + head_params = [model.output.weight] + + # init the optimizer(s) + adam_params = [ + dict(params=head_params, lr=0.008), + dict(params=embed_params, lr=0.6), + dict(params=scalar_params, lr=0.04), + ] + optimizer1 = torch.optim.Adam(adam_params, betas=(0.8, 0.95), eps=1e-10, fused=True) + optimizer2 = Muon( + hidden_matrix_params, lr=config.optim.optim.lr, - weight_decay=config.optim.optim.weight_decay, - betas=(config.optim.optim.betas1, config.optim.optim.betas2), + momentum=0.95, + nesterov=True, + backend="svd", ) - scheduler = get_scheduler( - sched_type=config.optim.sched_type, - optimizer=optimizer, - num_warmup_steps=config.optim.warmup_steps, - num_stable_steps=config.optim.stable_steps, - num_training_steps=config.optim.total_steps, - ) + optimizers = [optimizer2, optimizer1] + + schedulers = [ + get_scheduler( + sched_type=config.optim.sched_type, + optimizer=optimizer, + num_warmup_steps=config.optim.warmup_steps, + num_stable_steps=config.optim.stable_steps, + num_training_steps=config.optim.total_steps, + ) + for optimizer in optimizers + ] training_progress = TrainingProgress(total_tokens=0, outer_step=0, step=0) @@ -186,14 +292,15 @@ def train(config: Config): grad_norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) # type: ignore (is a dtensor) - optimizer.step() - scheduler.step() + for optimizer, scheduler in zip(optimizers, schedulers): + optimizer.step() + scheduler.step() - optimizer.zero_grad() + optimizer.zero_grad() # logging training_progress.step += 1 - inner_lr = [group["lr"] for group in optimizer.param_groups][0] + inner_lr = [group["lr"] for group in optimizers[0].param_groups][0] # syncing loss across all data parallel rank within a nodes new_tokens = config.data.seq_length * config.optim.batch_size From 2efd87aaa85d691b64c963ea67ae50acd054230c Mon Sep 17 00:00:00 2001 From: Sami Jaghouar Date: Fri, 14 Feb 2025 21:06:54 +0000 Subject: [PATCH 11/13] remove newton Signed-off-by: Sami Jaghouar --- train_ddp_manual.py | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/train_ddp_manual.py b/train_ddp_manual.py index 832bc861..bf87c732 100644 --- a/train_ddp_manual.py +++ b/train_ddp_manual.py @@ -76,34 +76,6 @@ def zeropower_via_svd(G, steps=None): return U @ V.T -@torch.compile -def zeropower_via_newtonschulz5(G, steps=10, eps=1e-7): - """ - Newton-Schulz iteration to compute the zeroth power / orthogonalization of G. We opt to use a - quintic iteration whose coefficients are selected to maximize the slope at zero. For the purpose - of minimizing steps, it turns out to be empirically effective to keep increasing the slope at - zero even beyond the point where the iteration no longer converges all the way to one everywhere - on the interval. This iteration therefore does not produce UV^T but rather something like US'V^T - where S' is diagonal with S_{ii}' \sim Uniform(0.5, 1.5), which turns out not to hurt model - performance at all relative to UV^T, where USV^T = G is the SVD. - """ - assert len(G.shape) == 2 - a, b, c = (3.4445, -4.7750, 2.0315) - X = G.bfloat16() / (G.norm() + eps) # ensure top singular value <= 1 - if G.size(0) > G.size(1): - X = X.T - for _ in range(steps): - A = X @ X.T - B = A @ X - X = a * X + b * B + c * A @ B - if G.size(0) > G.size(1): - X = X.T - return X.to(G.dtype) - - -zeropower_backends = dict(svd=zeropower_via_svd, newtonschulz5=zeropower_via_newtonschulz5) - - class Muon(torch.optim.Optimizer): """ Muon: MomentUm Orthogonalized by Newton-schulz @@ -130,15 +102,14 @@ class Muon(torch.optim.Optimizer): backend_steps: The number of iteration steps to use in the backend, if it is iterative. """ - def __init__(self, params, lr=3e-4, momentum=0.95, nesterov=True, backend="newtonschulz5", backend_steps=5): - defaults = dict(lr=lr, momentum=momentum, nesterov=nesterov, backend=backend, backend_steps=backend_steps) + def __init__(self, params, lr=3e-4, momentum=0.95, nesterov=True): + defaults = dict(lr=lr, momentum=momentum, nesterov=nesterov) super().__init__(params, defaults) def step(self): for group in self.param_groups: lr = group["lr"] momentum = group["momentum"] - zeropower_backend = zeropower_backends[group["backend"]] for p in group["params"]: g = p.grad if g is None: @@ -151,10 +122,10 @@ def step(self): if group["nesterov"]: g = g.add(buf, alpha=momentum) if g.size(0) == 3 * g.size(1): # split grouped QKV parameters - g = torch.cat([zeropower_backend(g1, steps=group["backend_steps"]) for g1 in g.split(g.size(1))]) + g = torch.cat([zeropower_via_svd(g1, steps=group["backend_steps"]) for g1 in g.split(g.size(1))]) scale = g.size(1) ** 0.5 else: - g = zeropower_backend(g, steps=group["backend_steps"]) + g = zeropower_via_svd(g) scale = max(g.size(0), g.size(1)) ** 0.5 # scale to have update.square().mean() == 1 p.data.add_(g, alpha=-lr * scale) @@ -228,7 +199,6 @@ def train(config: Config): lr=config.optim.optim.lr, momentum=0.95, nesterov=True, - backend="svd", ) optimizers = [optimizer2, optimizer1] From 7a9b3339ba0c04ec2487bbe57f5c297e53bbb022 Mon Sep 17 00:00:00 2001 From: Sami Jaghouar Date: Wed, 26 Feb 2025 06:40:43 +0000 Subject: [PATCH 12/13] add muon to ddp Signed-off-by: Sami Jaghouar --- train_ddp.py | 182 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 161 insertions(+), 21 deletions(-) diff --git a/train_ddp.py b/train_ddp.py index 39c43a0d..4cc1b846 100644 --- a/train_ddp.py +++ b/train_ddp.py @@ -28,17 +28,20 @@ from zeroband.world_info import get_world_info +from torch import Tensor -class AdamConfig(BaseConfig): - type: Literal["adam"] = "adam" - lr: float = 4e-4 - weight_decay: float = 0.1 - betas1: float = 0.9 - betas2: float = 0.95 + +class MuonConfig(BaseConfig): + type: Literal["muon"] = "muon" + lr: float = 2e-2 + weight_decay: float = 0.01 + momentum: float = 0.95 + nesterov: bool = True + ns_steps: int = 5 class OptimConfig(BaseConfig): - optim: AdamConfig = AdamConfig() + optim: MuonConfig = MuonConfig() sched_type: Literal["cosine", "linear", "wsd-sqrt"] = "cosine" warmup_steps: int = 1000 stable_steps: int = 80_000 @@ -72,6 +75,122 @@ class TrainingProgress: step: int +def zeropower_via_newtonschulz5(G: Tensor, steps: int) -> Tensor: + """ + Newton-Schulz iteration to compute the zeroth power / orthogonalization of G. We opt to use a + quintic iteration whose coefficients are selected to maximize the slope at zero. For the purpose + of minimizing steps, it turns out to be empirically effective to keep increasing the slope at + zero even beyond the point where the iteration no longer converges all the way to one everywhere + on the interval. This iteration therefore does not produce UV^T but rather something like US'V^T + where S' is diagonal with S_{ii}' ~ Uniform(0.5, 1.5), which turns out not to hurt model + performance at all relative to UV^T, where USV^T = G is the SVD. + """ + assert ( + G.ndim >= 2 + ) # batched Muon implementation by @scottjmaddox, and put into practice in the record by @YouJiacheng + a, b, c = (3.4445, -4.7750, 2.0315) + X = G.bfloat16() + if G.size(-2) > G.size(-1): + X = X.mT + + # Ensure spectral norm is at most 1 + X = X / (X.norm(dim=(-2, -1), keepdim=True) + 1e-7) + # Perform the NS iterations + for _ in range(steps): + A = X @ X.mT + B = ( + b * A + c * A @ A + ) # quintic computation strategy adapted from suggestion by @jxbz, @leloykun, and @YouJiacheng + X = a * X + B @ X + + if G.size(-2) > G.size(-1): + X = X.mT + return X + + +class Muon(torch.optim.Optimizer): + """ + Muon - MomentUm Orthogonalized by Newton-schulz + + https://kellerjordan.github.io/posts/muon/ + + Muon internally runs standard SGD-momentum, and then performs an orthogonalization post- + processing step, in which each 2D parameter's update is replaced with the nearest orthogonal + matrix. To efficiently orthogonalize each update, we use a Newton-Schulz iteration, which has + the advantage that it can be stably run in bfloat16 on the GPU. + + Some warnings: + - This optimizer should not be used for the embedding layer, the final fully connected layer, + or any {0,1}-D parameters; those should all be optimized by a standard method (e.g., AdamW). + - To use it with 4D convolutional filters, it works well to just flatten their last 3 dimensions. + + Arguments: + lr: The learning rate used by the internal SGD. + momentum: The momentum used by the internal SGD. + nesterov: Whether to use Nesterov-style momentum in the internal SGD. (recommended) + ns_steps: The number of Newton-Schulz iteration steps to use. + """ + + def __init__( + self, params, lr=0.02, weight_decay=0.01, momentum=0.95, nesterov=True, ns_steps=5, rank=0, world_size=1 + ): + self.rank = rank + self.world_size = world_size + defaults = dict(lr=lr, weight_decay=weight_decay, momentum=momentum, nesterov=nesterov, ns_steps=ns_steps) + params: list[Tensor] = [*params] + param_groups = [] + for size in {p.numel() for p in params}: + b = torch.empty(world_size, size, dtype=torch.bfloat16, device="cuda") + group = dict( + params=[p for p in params if p.numel() == size], + update_buffer=b, + update_buffer_views=[b[i] for i in range(world_size)], + ) + param_groups.append(group) + super().__init__(param_groups, defaults) + + @torch.no_grad() + def step(self): + for group in self.param_groups: + update_buffer: Tensor = group["update_buffer"] + update_buffer_views: list[Tensor] = group["update_buffer_views"] + # generate weight updates in distributed fashion + params: list[Tensor] = group["params"] + handle = None + params_world = None + + def update_prev(): # optimized Muon implementation contributed by @YouJiacheng + handle.wait() + for p_world, g_world in zip(params_world, update_buffer_views): + p_world.mul_(1 - group["lr"] * group["weight_decay"]) + p_world.add_( + g_world.view_as(p_world), + alpha=-group["lr"] * max(1, p_world.size(-2) / p_world.size(-1)) ** 0.5, + ) + + for base_i in range(len(params))[:: self.world_size]: + if base_i + self.rank < len(params): + p = params[base_i + self.rank] + g = p.grad + assert g is not None + state = self.state[p] + if "momentum_buffer" not in state: + state["momentum_buffer"] = torch.zeros_like(g) + buf: Tensor = state["momentum_buffer"] + buf.lerp_(g, 1 - group["momentum"]) + g = g.lerp_(buf, group["momentum"]) if group["nesterov"] else buf + if g.ndim == 4: # for the case of conv filters + g = g.view(len(g), -1) + g = zeropower_via_newtonschulz5(g, steps=group["ns_steps"]).flatten() + else: + g = update_buffer_views[self.rank] + if base_i > 0: + update_prev() # async all_gather instead of sync all_reduce by @YouJiacheng + handle = dist.all_gather_into_tensor(update_buffer, g, async_op=True) + params_world = params[base_i : base_i + self.world_size] + update_prev() + + def train(config: Config): # batch_size is the total batch size for all GPUs assert config.optim.batch_size % world_info.local_world_size == 0 @@ -127,20 +246,40 @@ def train(config: Config): logger.info(f"Initializing DDP model on device {world_info.local_rank}") model = DDP(model, device_ids=[world_info.local_rank], broadcast_buffers=False, gradient_as_bucket_view=True) - optimizer = torch.optim.AdamW( - params=model.parameters(), + hidden_matrix_params = [p for n, p in model.module.layers.named_parameters() if p.ndim >= 2 and "embed" not in n] + embed_params = [p for n, p in model.module.named_parameters() if "embed" in n] + scalar_params = [p for p in model.module.parameters() if p.ndim < 2] + head_params = [model.module.output.weight] + + # init the optimizer(s) + adam_params = [ + dict(params=head_params, lr=0.008), + dict(params=embed_params, lr=0.6), + dict(params=scalar_params, lr=0.04), + ] + optimizer1 = torch.optim.Adam(adam_params, betas=(0.8, 0.95), eps=1e-10, fused=True) + optimizer2 = Muon( + hidden_matrix_params, lr=config.optim.optim.lr, - weight_decay=config.optim.optim.weight_decay, - betas=(config.optim.optim.betas1, config.optim.optim.betas2), + momentum=config.optim.optim.momentum, + nesterov=config.optim.optim.nesterov, + ns_steps=config.optim.optim.ns_steps, + rank=world_info.rank, + world_size=world_info.world_size, ) - scheduler = get_scheduler( - sched_type=config.optim.sched_type, - optimizer=optimizer, - num_warmup_steps=config.optim.warmup_steps, - num_stable_steps=config.optim.stable_steps, - num_training_steps=config.optim.total_steps, - ) + optimizers = [optimizer2, optimizer1] + + schedulers = [ + get_scheduler( + sched_type=config.optim.sched_type, + optimizer=optimizer, + num_warmup_steps=config.optim.warmup_steps, + num_stable_steps=config.optim.stable_steps, + num_training_steps=config.optim.total_steps, + ) + for optimizer in optimizers + ] training_progress = TrainingProgress(total_tokens=0, outer_step=0, step=0) @@ -185,10 +324,11 @@ def train(config: Config): grad_norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) # type: ignore (is a dtensor) - optimizer.step() - scheduler.step() + for optimizer, scheduler in zip(optimizers, schedulers): + optimizer.step() + scheduler.step() - optimizer.zero_grad() + optimizer.zero_grad() # logging training_progress.step += 1 From 9823517b44520f518bfd0be2ceb23947c62a2893 Mon Sep 17 00:00:00 2001 From: Sami Jaghouar Date: Wed, 26 Feb 2025 07:11:27 +0000 Subject: [PATCH 13/13] add fake fsdp code Signed-off-by: Sami Jaghouar --- train_ddp.py | 2 +- train_fsdp.py | 69 ++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 53 insertions(+), 18 deletions(-) diff --git a/train_ddp.py b/train_ddp.py index 4cc1b846..cffdbb8b 100644 --- a/train_ddp.py +++ b/train_ddp.py @@ -332,7 +332,7 @@ def train(config: Config): # logging training_progress.step += 1 - inner_lr = [group["lr"] for group in optimizer.param_groups][0] + inner_lr = [group["lr"] for group in optimizers[0].param_groups][0] # syncing loss across all data parallel rank within a nodes new_tokens = config.data.seq_length * config.optim.batch_size diff --git a/train_fsdp.py b/train_fsdp.py index fba691fd..15dc07e7 100644 --- a/train_fsdp.py +++ b/train_fsdp.py @@ -133,20 +133,54 @@ def train(config: Config): fully_shard(transformer_block, mp_policy=mp_policy, reshard_after_forward=reshard_after_forward) fully_shard(model, mp_policy=mp_policy, reshard_after_forward=config.train.reshard_after_forward) - optimizer = torch.optim.AdamW( - params=model.parameters(), - lr=config.optim.optim.lr, - weight_decay=config.optim.optim.weight_decay, - betas=(config.optim.optim.betas1, config.optim.optim.betas2), - ) - - scheduler = get_scheduler( - sched_type=config.optim.sched_type, - optimizer=optimizer, - num_warmup_steps=config.optim.warmup_steps, - num_stable_steps=config.optim.stable_steps, - num_training_steps=config.optim.total_steps, + hidden_matrix_params = [p for n, p in model.layers.named_parameters() if p.ndim >= 2 and "embed" not in n] + embed_params = [p for n, p in model.named_parameters() if "embed" in n] + scalar_params = [p for p in model.parameters() if p.ndim < 2] + head_params = [model.output.weight] + + # init the optimizer(s) + adam_params = [ + dict(params=head_params, lr=0.008), + dict(params=embed_params, lr=0.6), + dict(params=scalar_params, lr=0.04), + ] + optimizer1 = torch.optim.Adam(adam_params, betas=(0.8, 0.95), eps=1e-10, fused=True) + optimizer2 = torch.optim.Adam( + hidden_matrix_params, lr=config.optim.optim.lr, betas=(0.8, 0.95), eps=1e-10, fused=True ) + # optimizer2 = Muon( + # hidden_matrix_params, + # lr=config.optim.optim.lr, + # momentum=config.optim.optim.momentum, + # nesterov=config.optim.optim.nesterov, + # ns_steps=config.optim.optim.ns_steps, + # rank=world_info.rank, + # world_size=world_info.world_size, + # ) + + optimizers = [optimizer2, optimizer1] + + schedulers = [ + get_scheduler( + sched_type=config.optim.sched_type, + optimizer=optimizer, + num_warmup_steps=config.optim.warmup_steps, + num_stable_steps=config.optim.stable_steps, + num_training_steps=config.optim.total_steps, + ) + for optimizer in optimizers + ] + + schedulers = [ + get_scheduler( + sched_type=config.optim.sched_type, + optimizer=optimizer, + num_warmup_steps=config.optim.warmup_steps, + num_stable_steps=config.optim.stable_steps, + num_training_steps=config.optim.total_steps, + ) + for optimizer in optimizers + ] training_progress = TrainingProgress(total_tokens=0, outer_step=0, step=0) @@ -191,14 +225,15 @@ def train(config: Config): grad_norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0).full_tensor() # type: ignore (is a dtensor) - optimizer.step() - scheduler.step() + for optimizer, scheduler in zip(optimizers, schedulers): + optimizer.step() + scheduler.step() - optimizer.zero_grad() + optimizer.zero_grad() # logging training_progress.step += 1 - inner_lr = [group["lr"] for group in optimizer.param_groups][0] + inner_lr = [group["lr"] for group in optimizers[0].param_groups][0] # syncing loss across all data parallel rank within a nodes new_tokens = config.data.seq_length * config.optim.batch_size

-uH`~*?9T8-JgY~<0oA_ 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�Kunl5NulH~9yF+REda&( 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 s0G8!DH zRDa_1qb^|?jdjP>IIs_PxD@SFAxNyKO@(;wTMA=kBeN;QkU~MvPX3Plupe)4!Dslv z9}U%&yF&y~gld?iIYM2G{e1_xi4$j4CYs)f=3P;40qO7OX$I9G74X*BPCwn|xYN`? zg|w$6eu5)V3B~f}zsMGi@cRBnNewW4iZ5;#9x4~(x=ZTkh-k zb`j8+j3Z(Ppv#xpgK|^kRoof{;}FLg28pkbGJA1gCGNQ}I-|(Z3F3z~kPve|>JsLK zr?aes?d9@XV?rZs)%NN%`(jF9TgKjk7E2xY9==pw)ORc_5D}dE4E(Nj{uJ97{}te+ zkr#IW=Z9&Xe19Ea@_EBB>3#6d%L2>@G!$YOpOeN`c6b(mTD5IArqrx=1IXaF0U7N5 ze!*I8hffJ0ZYal`<8t9~O}J>E3_BJ#Uxi>&hWr>#xq8t5l>x`Jalv>NgS3Q~?JVmNW6vDTfGX0x0+Q7gOLi6_*yr=`HAE5pCOVFAaMH!r*76YF}iLB4UU ziQ90K+@HXj+4dYCzU)!b>rY#-;bWQG+Gq>eeh9DJ-~aIluB)dR^1Dj>Q@&(i{dF*s zjuuA}{3~4AgIyE=?Aqt*ENL$qH?d}Fx;AE zdl_!x>0{tu%cW6Eav5A2Lv!q5WB_Xr8D8Sb?Lr>Zf8}D+^?7O;^p))Sp)<3SL`80h9(?J0M54gLnS)ZVbmCC*sdg>x zy&dNDGon_#mU0cQfUYZVC0Q6eo^X-$CSo9>o}}+ zJ1>xQg45q=_@`L+Zw;lJQC~GY<_;9?iV|x>9+VGw(mV-ZN|eb$9f7vo0rmSDK}UR- zONSFs506asAm+3vglLLMhTdCAeO{7|Y3)dkzN9XdSIa+oU4CloPuRk{7Ksn{I}QI7 za2Wm-IOdM(M(U-95&ZT8?u9RZkuv9l>}QMMvzJOz$yRs|FvIY`sVTgY)ZQSywC(;c z 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 z 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 y` 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 z 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

}8EI%L#>gWau9%+S>dt;X>JNGB>T|^LV&F_Pu{0 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