From 42a8f751349d64217097b2c01ddc861588e19206 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Sun, 6 Sep 2026 18:29:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E7=94=B1ModelHub=20XC=E7=A4=BE=E5=8C=BA=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Model: Nirbhayhero07/deepsentinel-overseer-small Source: Original Platform --- .gitattributes | 39 ++ README.md | 67 +++ artifacts/loss_plot.png | Bin 0 -> 49801 bytes artifacts/reward_plot.png | Bin 0 -> 84591 bytes artifacts/train.log | 77 +++ chat_template.jinja | 54 ++ checkpoint-100/chat_template.jinja | 54 ++ checkpoint-100/config.json | 57 +++ checkpoint-100/generation_config.json | 13 + checkpoint-100/model.safetensors | 3 + checkpoint-100/optimizer.pt | 3 + checkpoint-100/rng_state.pth | 3 + checkpoint-100/scheduler.pt | 3 + checkpoint-100/tokenizer.json | 3 + checkpoint-100/tokenizer_config.json | 29 ++ checkpoint-100/trainer_state.json | 304 +++++++++++ checkpoint-100/training_args.bin | 3 + checkpoint-200/chat_template.jinja | 54 ++ checkpoint-200/config.json | 57 +++ checkpoint-200/generation_config.json | 13 + checkpoint-200/model.safetensors | 3 + checkpoint-200/optimizer.pt | 3 + checkpoint-200/rng_state.pth | 3 + checkpoint-200/scheduler.pt | 3 + checkpoint-200/tokenizer.json | 3 + checkpoint-200/tokenizer_config.json | 29 ++ checkpoint-200/trainer_state.json | 574 +++++++++++++++++++++ checkpoint-200/training_args.bin | 3 + checkpoint-250/chat_template.jinja | 54 ++ checkpoint-250/config.json | 57 +++ checkpoint-250/generation_config.json | 13 + checkpoint-250/model.safetensors | 3 + checkpoint-250/optimizer.pt | 3 + checkpoint-250/rng_state.pth | 3 + checkpoint-250/scheduler.pt | 3 + checkpoint-250/tokenizer.json | 3 + checkpoint-250/tokenizer_config.json | 29 ++ checkpoint-250/trainer_state.json | 709 ++++++++++++++++++++++++++ checkpoint-250/training_args.bin | 3 + config.json | 57 +++ generation_config.json | 13 + model.safetensors | 3 + tokenizer.json | 3 + tokenizer_config.json | 29 ++ training_args.bin | 3 + 45 files changed, 2445 insertions(+) create mode 100644 .gitattributes create mode 100644 README.md create mode 100644 artifacts/loss_plot.png create mode 100644 artifacts/reward_plot.png create mode 100644 artifacts/train.log create mode 100644 chat_template.jinja create mode 100644 checkpoint-100/chat_template.jinja create mode 100644 checkpoint-100/config.json create mode 100644 checkpoint-100/generation_config.json create mode 100644 checkpoint-100/model.safetensors create mode 100644 checkpoint-100/optimizer.pt create mode 100644 checkpoint-100/rng_state.pth create mode 100644 checkpoint-100/scheduler.pt create mode 100644 checkpoint-100/tokenizer.json create mode 100644 checkpoint-100/tokenizer_config.json create mode 100644 checkpoint-100/trainer_state.json create mode 100644 checkpoint-100/training_args.bin create mode 100644 checkpoint-200/chat_template.jinja create mode 100644 checkpoint-200/config.json create mode 100644 checkpoint-200/generation_config.json create mode 100644 checkpoint-200/model.safetensors create mode 100644 checkpoint-200/optimizer.pt create mode 100644 checkpoint-200/rng_state.pth create mode 100644 checkpoint-200/scheduler.pt create mode 100644 checkpoint-200/tokenizer.json create mode 100644 checkpoint-200/tokenizer_config.json create mode 100644 checkpoint-200/trainer_state.json create mode 100644 checkpoint-200/training_args.bin create mode 100644 checkpoint-250/chat_template.jinja create mode 100644 checkpoint-250/config.json create mode 100644 checkpoint-250/generation_config.json create mode 100644 checkpoint-250/model.safetensors create mode 100644 checkpoint-250/optimizer.pt create mode 100644 checkpoint-250/rng_state.pth create mode 100644 checkpoint-250/scheduler.pt create mode 100644 checkpoint-250/tokenizer.json create mode 100644 checkpoint-250/tokenizer_config.json create mode 100644 checkpoint-250/trainer_state.json create mode 100644 checkpoint-250/training_args.bin create mode 100644 config.json create mode 100644 generation_config.json create mode 100644 model.safetensors create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json create mode 100644 training_args.bin diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3fb2daf --- /dev/null +++ b/.gitattributes @@ -0,0 +1,39 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text +checkpoint-100/tokenizer.json filter=lfs diff=lfs merge=lfs -text +checkpoint-200/tokenizer.json filter=lfs diff=lfs merge=lfs -text +checkpoint-250/tokenizer.json filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..89ddbb5 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +--- +base_model: Qwen/Qwen2.5-0.5B-Instruct +library_name: transformers +model_name: deepsentinel_model_small +tags: +- generated_from_trainer +- grpo +- trl +licence: license +--- + +# Model Card for deepsentinel_model_small + +This model is a fine-tuned version of [Qwen/Qwen2.5-0.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct). +It has been trained using [TRL](https://github.com/huggingface/trl). + +## Quick start + +```python +from transformers import pipeline + +question = "If you had a time machine, but could only go to the past or the future once and never return, which would you choose and why?" +generator = pipeline("text-generation", model="None", device="cuda") +output = generator([{"role": "user", "content": question}], max_new_tokens=128, return_full_text=False)[0] +print(output["generated_text"]) +``` + +## Training procedure + + + + + +This model was trained with GRPO, a method introduced in [DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models](https://huggingface.co/papers/2402.03300). + +### Framework versions + +- TRL: 1.2.0 +- Transformers: 5.0.0 +- Pytorch: 2.10.0+cu128 +- Datasets: 4.8.4 +- Tokenizers: 0.22.2 + +## Citations + +Cite GRPO as: + +```bibtex +@article{shao2024deepseekmath, + title = {{DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models}}, + author = {Zhihong Shao and Peiyi Wang and Qihao Zhu and Runxin Xu and Junxiao Song and Mingchuan Zhang and Y. K. Li and Y. Wu and Daya Guo}, + year = 2024, + eprint = {arXiv:2402.03300}, +} +``` + +Cite TRL as: + +```bibtex +@software{vonwerra2020trl, + title = {{TRL: Transformers Reinforcement Learning}}, + author = {von Werra, Leandro and Belkada, Younes and Tunstall, Lewis and Beeching, Edward and Thrush, Tristan and Lambert, Nathan and Huang, Shengyi and Rasul, Kashif and Gallouédec, Quentin}, + license = {Apache-2.0}, + url = {https://github.com/huggingface/trl}, + year = {2020} +} +``` \ No newline at end of file diff --git a/artifacts/loss_plot.png b/artifacts/loss_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..f56552860b4c763a8b19a172ecd8eb65c494e801 GIT binary patch literal 49801 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 a);)Z0j@|6@uJx~J3E58Wt0azoNB$1GbhqIE literal 0 HcmV?d00001 diff --git a/artifacts/reward_plot.png b/artifacts/reward_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..25e65bddd03e67be561105541a94f6025a4c7cdc GIT binary patch literal 84591 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�?rPK zFH1e5_MZ=auH9Jx%wU=^Q9BV4ETABs`by(1d3)ZUf$fzOyc^{xVvU_mi{Az)R5wGXLK z3z8=~5jOEDPgAxwmJ3krm2%PL_tP%(i$5KFCVtSE#>F3t2NO~-w;MF^{3P8kV1!L3I5G)A1(YqNM$C-N<+C{rg5cz8CbM0!NqQic-L(@5$J|G^Wa8 zf;R)&)+YcT1BO>zDxG|ZFhwl{A3YGLK#NxNY;Hvy0iTngXhuOVC@vozeG8K!GqItao%+j@k=9Ki_0F^QUTx9L)WIVH|+1baKxZLO@%EB*f?9 z08x0(7B-pg6l(`#`v7YO)C?>2V)OJUT!WiN30A0-%1rx%|0R6LRyS<(Kw{tw zL_wHO{0QHzFaY)JgTEdgRh8o3CSPQoP}PW0J#XT@97xCKjZW%NYvuWYqR=NfMgqlg zy0lONgQR#ph&a%XT)ySmG*tuIDvrIQ(tVy&`|MeA0LTDUr$EtouV|4&I!_C#YB<`K zzZl`}qFwZgR={Nj=u+&q=g_W>Mwt!hVPx?)b@#kYVYiUls96ha86Glx)adB8_1PnP z8uJ~BwJ^&g!P8*ijJQ5l8Zk69SgAeW{$*`K3YtPeCO+NgUoreoB|)piVHFUcr0X~Q zLfCzqhveJ$Kd5CCG%I%_craiGuS-jQ08o_+cOxqQbf=&i>1kXl-ycF={0IHMIpBN& zKv+T`DRw)0P1+w%YIrz74Gv;Mj{47o|2JEs>84b8i zV3j#+xwWi|p!S#GR(JF1Q-Eyx5%}zLY`DbEoW_#EunL3jt#iM1@ipD`l=q^TIY(aw zv)B}%p@7VmE1;bh1YP8U{qOiI>ceIeX8U4#04)O&`~UVy3dua>2k0h*9G1_3=YlVX zGvvQreo~@KDHApi_l6Ha3*jG(#|j!FpHokltw}{Btanku?#jY z?J(L*kq2v}ARy$}1A6^-|Ib?z7(?Jr%_pt38PzZrTlfYUVQr)Hd z2uQJCZ+`aP8{`4Ztc+m*o{n3UGYAbcqP_(X0RlAb$(_OybFa3%(1|+IJP}PyuPUSr$>$+syNYjeZeE)|vY;z} z?bRnI`7|k$kd0L)uhVxJ+u=n)Q=6nRNFNq)wf}9tB%vCiF9f0d&MmuFpfKkR5}o}H zd&PiEN;nUZcYgjEw7v~Zk9uR}ZhYa*?sp+Khj))-h*NZ#H?j(JJ7ww@|I07>Vm*-p?dx!s_MY%N%Lm|2}?t;zs2!eIRXp8yO;F7XP6 zfYvC$>VQ3SnPTH8!QUwX2^>l$jIGpNyqaPPe3H3WBzE#?zIml_9$xF@bIAasgy;$d zA7poapq{%Q)-FZnxzdbi#U%-VcSn|GV|8Yc{~$vZ#)QI_6e`N!>3yRkOp|#TCUJlh z(>VhL2W$r%$6j-www@@58+`l%yU)KSNV7QM;s2tf1Q30WeD#(lM7EaSK#my5Xy+WY z?|;Krb8QdR-fhEejLDDdrUw!Sz+qQ_A4#u_oTypRyr4jiyn zHnmkrB7q|XCVtnqCqiLIg*pv^G=~E0F3MasQFp(7C*OL}`MiU1G;{T9GM85D&hwPQP@Z_X=mt=LBlMLpI0rLloqpeMe% zE!0(KfvrK*NU4ZEL!X+=8Cl0S7mFEisBm-J?L|fC|0fX2rA9~+Msokk7K^H(&pJv=3Q=X+U*@V62d3R~dA z18{w>g6|-%_B3GzAPXP)D4_dOa|u)rqUJz>{OcM1hHfx?N#nY~&Q9w+dJMQXH}6di zDn%_d_lh;%0OC6IsB*>tFd@|f9E1xnkD0NbUnwGt`oX%;(I40?YwN-;8$J5USt${~ z?>xtkZ(!Yi|GW)&-&mHAQZP=VYZzKa34(1j7#5=YiZ&~0t+8C<9ApCQ6 z_nkCKHe{)rcZa`QUp~^k@(SKg#%@k5-Y5%tu}P}s#(Z0SK_dTm4&%LlLJKG| zL)lG#CwX(1nJ~4G{MGW^i|?R5xcu}oe`}N8(voxB%4$7IZ9)#k7b_wiy01ga?M4wtWhdtU*fjhB^=p&+XyOgq~p~6LK)lTMAQ!Yu{l%+Kv(bvU;v9e+sKUJxR{Z=k(J6 z-kL9TM%CZXY^{6jsU-}X1~gi>y%=&gC^2RT;^+Lw&;Fmn<{{eDqMlqhci5q$y|&!# z+X(=JSexziX>M+oIRum7-app2@SvpRdwXpLXlRh1e*wErJVgM29ug?eD|Jz4V&79G zM!rMY2r;jb8O~kaiAe))D*Q2wYWNv=@8P0s}2kHNKe3}j|QN`id zCc2vhHG8;DD~nwYk#?)sPgs%=-75!f?kvFkNZRy_RXs_5F!i0n z+_-;{=C|i9OiIr;a|@y0+Cu&X3uWecLx1w})zUmW{LOEfSmIX^65{EeV13Pw$zEzO zh+^lP-mG79xrTY$Y|z>qIl1ay=2#{ZDzfVPCUP};+BNp0H>(kLm-b26?uGb7*WH(I zPqrs{w?)m9&os~6rCpZ^OnIQeVcX}{ z(X47Y)l7$AAxB9Z?%ANbi7n{4UI1o>{lW!SZtfE>tv{=xFrhiv^L)}rbX>^f9ILn2 z$@cP3wH=;8u@p$TB!-cW=C!as19A`Bx%~Rr4Ay^`^834`&vtPi%StrIpLQ8vi_rL> zG0mAL{fBa?f+S4T`-K*N8TID@&cRZ?%pwj1TJL=uXe!CicqHJ83T!w329y^I3 zqA?VSvcaej$cn%A9v+xyV?hdKv20U|mTb{{=E7g0xNZ+`Ep=}6{Z{_MZ7AsN&@Jzi znZz%B4?o$?ukjHh&gC9m_ukQ4RoW!fTv*xeE_{fB6q7SUTl3^d<=A}fFCIgDvf?X} zF2O*CZ@+!V zU?LbFvw5SB_)do2Yy>>po8>=@&$j!V_-&z$qBnN;cboJD0hzP{#?JBi`84PnpiG%L zgxgXB`-6y|oW0Y)0;>|4qLcSTAl>_=Ur)K*JF-vNBJ{srzO9=;K!^SD(uKT zEb(8~>ik8)>ubqwAvyspL>aCtr%PRTo4&Xu(Qq&czu4cLulEcgMSjsQ7ts|344!-V z;%ZYP@}fd0zMkXP87k#GrG!r@x5l61soydqeC|3c=Mt^46i)xH{(zDCa6DV;vvj(|7?4}NW3m( zXB&1zFrM!&om}7@LP|&SnYg9hBI}je0--}1(`0@Go6DkB^vS;Ommz}7p1St9K*>z` z%7b%Xm%hlVSe!u)gGP`YZdL<|+-XFvF->j37_CT3VG5@&?D~5Ap`3@`h{>O)$A7r0|4r2~!OFi)n!qxr zlSJQoDSJ6+WVS{TUdphgW}k1d;?HJFLv-SG3CG!Zm8WdSZG#*bw|5C_D~N2x>Dyy1 zmpg7W@6KJ2I8(zBj{X%emRrRm3 zO0n^$8<_-gln0ESQxOr2um2wWGn2ZFntbMMGBv*~zllcRuCsaB)=qjx&4u5TXQ}&svC@SQKZv@Shh%E2h$uS629fypNElQ642$KeHX zfK0&|-D*&D_x$s8H_Z(MGYjF`u-v9LYK<0YAN9q%r|H7@t^XT>^qxn5fd0{^GVzFT zC)$bIy5{YrasF&OT{2lk;m9=&Jt`JT+LI4Ggx83pzer$^t(86I@%|(;;=Li?c9Oda zF~^a{9v4kK0r>|#8X22ToivVDT-Cyt_P zi~Po2EdD_pzGnYpKiOfAQ#d!LU%?hzD{tDUco_)a6VBw@yW~oI)H%nsq7t?Z{J>MK9q`2(>Yd%Mqw1AG*tDzyS$4W|IItWsn zc<9nIj8i>Xw^n-S{Fo3T7;kFH^3XSXqLtSnBKJJ2@SY)Fzt!7V_(hzEo!ys`W zcmKlPUJ-_~=^B&k>J8fsdpsmoeI@!4-A9|8DLmw=GHE!!(~Xo*r(dnV5`Jt)!tqTp zzPsa_-R-1nR#if5qWYCv^d8qFbgv`vg$cA}`C1U1ER>^854+AqZT0O+;_Jlm50tJ7_=wzj!MO4O#Z{PE*8<@+jlzQM6R-4mGqtC%h;52tGXLz$dE1^U`!fYYxXLmN-yuCHs1`H zs+cJ!Q}p&ZYd-7!zimwG977iS;_f#oPqvHaGrbcCC#-ex!-qpjgQGHh?SM$`hcX74keSNb>a@AI?p;F8}pY7G@aad1&Pb(N| zoZ=%qUr+e*dR2Ua@2rwwyxUE47tYk|)3`%8l5QN8&#<9aT7_a&n22xY-1u$@5qWn~ zlY^X*e5+M#7=y6OUKn?fcb{Ifk*y1O9L8@&m9W!H!>4Sn{;H3=wJt1FeMcY;vpcap z6&l66Tid6aXMVbwCP(J|Tea_uvIph3`;_D+I9`UD?t$(Ab*-{nrV@&GVqbb~G8wG) zkv>d(_`Zs23VY)2gyb~)gpR@dQ6Qf>LvHd>$2jkaRq`Sk!gY>)+Ta76bHASBKeAJ; z1SWpHqh7gqfQ?4@JiRnn{>HsHXNncO%6k3bs0S}Y@Vpa&9ittB`y3|zYHQi?bKI5N zZ>ejlZoT|-O}$w)*O2P3-{0t+gVK-Jul8sADws$b5F=l5eEhpO2<9>3%I$i+cSqG;_Ha!<0e9rC9*I8nMTm}%F* z4YHi2RX2HiztZIpL%O;A3>&Ah^!RK9el^}^CaKh^ zl{mppdZb{NN*d^WBoDy0GvV8}J9B@1`D+PZ zPF$`hvuZ@bN-u0PK#Ii5wBK|Ryi zGdIRkj+>FLL@9!FBooWug}Dmxd40NdnY)Tn6p+)Nn&jn<va_=@-S?eK_x?5&T8`qu&~*g>*ShfGq5XxTLfB@C zEY@j?E=~UY-{ZWPmMwB?<)@Foy}jK?l)LerAXjoy5=~ z(@^yr&@=s72OkEIY?WHx^P3(l=eeLK9Hhkf$X>a9`5piJO1->7J2L-n&yM7W?=Q1j zP%Y)ils#xrpdbkHCu!@pIllAM;7MJEqSnxkYawy%{Y&$d=;X^B@{ zAwIo%F}Mi#CVDiKe5UD^j123wYpC%W&)L9IJh>a6KBW*Ewm|ti_qGprVS47~8d@s1 z3%SYnQyrezGdFW8zNA_7rV4UT-FEV7LCS6R z9eCK>>L}Z2`v+2s5FC^G3BGHC2Kf=)BKHbJ>sglI{X>_Au`8eZg`=orm{FF$a(s@| z>dPO>dynG^#})}vTKp`^*A@2W_v0|gSj~8r!@gE3L&ZaX>)Fdj$$j+gXVkdj(_^eM zJ%4xv@qS+`p;Y9jj4M4+`1R|trHVs|jfLMnZo3y6%oHkEw8(tMzt{H z^>iLh+T`SWwGcTZ%6v0BG+r~8ZL%SiKO#aLpN;B&V{o{qe0b~Ss!a2v$-=5120UMF zqIv9sZVs^x8RK6%q(idDv#FrYWl~pc=Z`mhQU^cCF@NMqsq&UuMafw*QT(2JYW`>- znR}RCGiWgo*xObP@rH^IZzMo%bqm0nRmLcUZQzwkn@(g)1qoruLx@O2S~@VTi{UdJSZZ$Dmjc zj2GzX>->84?MlHhlS-zV2fFDx1jHhr3KLYFu3vZ_;QiilICbrbu!a?FeM)d*eZSXz z%`ZLYHAjD2c&JB~yKLkeQ=O*y)M&+*$QN=t=9PR}_`BJsXJda_CF-`*4fu`n{0aOK z)TEqs`7hCm1ijpL8*X23}V@7OSOuO=X@pKOOMB3m|UQtfPvEPP56#jxQ zIHALqNyIv-XOhZPhCg0G_d-Cx!YU)wxLbKP}6;svK^|hbIHZmq|;c@aj`qik{4}SZzGHuXO^@%UsGIQ^o z!4rxvBp3@nL23P#B!OSn)=ingSw>@LrRhH^rTSe@>+MN#)gs9~dazdc2hS=Mu~D2x zkl26Brt183jg1mGW8uE8@cpd5xGE#Lij*{7wtmioehoj*%TtiWR_Kw{xCSSQa17(g zlU|ce;p08(7PaODgLP0hl|9PaAX-bBxP6D_N(kSzL_Q1xIZtJxC1mq)?uMbIzdzoA zbTmnLLD&_C3smG2s~24GMI-*k5o&8m|9Wa#TVo+khWHB9jh!giyRqI&=}(gK`29&>G>)LV8|b;93i zJ?B2ARgAJ$AK1qYlUKU;wnl7?6psgbw;2~dK@&C@n0tkV(UdM%ld2XxXYAHfND>p&xc1G31uV)#O6V8{C@LkopA0|9fZ}Qn z&2-RAas;SYJGhxsjkay<-+kh}v-P$_B(d2;ujnrnkA-wGOB3Is< zy8dMj;#GM;Q-xU*h)>JT8_w>>S{IHj)I^}FB#JLQ|A4rqQI+=-l`~6KIT}C}d zJm!~&l_V5Vp=MA-?L(MP`0|A$oJ+GBmhM@Q1kj!<&VA<+8t(_J>KWzk+^L57`brJ+ z0p(KZDut-1D4O6Bx%jp3=SM&vnXU(Yq;K+xkqRmXJbhsko`u1MM#6Bbm8u-v{q|Qg z?{3{H&-Gn~OL^U9iw>y_WV86*o9x!Ymcb`rcR9eB4H+5vPxh^Sha> zjgf=WU6z|N5nN<#X^yS>R$98nJcd&9SP_o+LBneinHKvJ;TIB0(gq8Sr^VsVJ7!+{ z`w|Ncf84KLoP-Lqqd$o{XPRT$vOqylR+=R}+p6oYwcOdp@kFJnK^)C?8_Poy8bj`m z!vBY<_YS0bkN?Nt$5xJ!vR4w7oxM+4DXUZxB9fI&Hb=^cNF;ltsH}=YWMrIDItPiA zJy_{p;4f-FuJsdA*aXx%mE<$mvdlzadJGTcEck@72int(Re= z&vlVTvQ*cfEt(A%D3C8!Vf#(A7zkhfB|6Nxu1z{qQzkat&2;v)@&4n0;P39t9oG5C z!d>9nlpDx2RG3)14_Tl86uCZIJ+Kl`Jj%DQ!*z)5&_lEOH!WA5={%=E)Sc;S=ut@I zO3|#Hxp@&=lKf*BSzd}us2XnEVx0y-&aVIEO|hnXTLbP`N8M5%45g!kL;coVT|9KR z>jSmH$0Q_bhXZwDIdV_gY4smrV~&gEjOMT%4CXjWJo)dz8QA@Ub%X1){YEW^*ZTR{ znJI8*FYbd;u-$fQh)NcFA3G_^&Z0an82EdmWvOR*NEoTV+eE+KUc>KCmTML~U3g3T zlpO|LAs4zCykUeo=6C{wklkmQ-UtQL_kQ>-b;9K!+T2{CXpowRixl7GG8)@o<*kn- zXxN->J@`jsBt-n22zwNb_hs*7t7}EKTjZj zV)zG)W#{GaL^%-*a*iO@1z)Rzx(o(n;BTC}CH7$2A1_T39zD7v=lt{7FVb7FBXV+w z&D3K_Gwzu9*rC(=ZrM0RFL29R2u9@n`9|+h9Hnm&`Yn`Zx}rOJEII?9-vFN{ z$S;Uw*c1y7>{*l$(kmgDWXCz+x5Rx`XJknuKLEP4@ zq3LdPrTR>OzFy{2*=&q}sw|Jn&sp5rXTc4lP*-D(BtnK)0v!FCsQV%IiMd4Y^+4Ey z*|z;dJ2Sw6;mH3`GE9LXh{&u&y5w?cJ2{p%aqVos2_Gyz7GpB3BvAUlzFLgr)Equ4 zEIgc_?)vGecFb${q0_Pa8X>PWnW>WiI6tV+BeMGopFh+Z`@JdpA8YI&DGIRH1E)hX z@ifz{W-!PBn46pT}! zk>`Hi_FVDGckR1Qes#;i2>z6PeMXUzLx~&Td?57qg-z3Igimez;oLOvhSpK)&T1SW z8MNVs6d_eYi_sgflrER9GcwN|Ex=?#co1>Q-d!}J@r8n*iiCOdt1~W7Bn9>P=dv4* z&N6QhVG~QqR5FK|e_;I^mA9Llq>YWuYtON>Na{U%o+kmAlQdt(EF&ogp+!Rx`kO;VWIPT=(EIeJY+nY5C_$?0Ct| z(z=jfUA5YZtw3ZNJ2W7%QEX~urGJWFOoPMSB<||^;3rxH|0}f&z^h2|j{lMIq4?Wgdjr;2cuc?W18hp=l8R`+TT?v2&cCbFLCS`PE(We_H<8}Tjs*99BB;XI&4#hXod)%v{xSW0o9uK?Es`m-jpaxY87P=S4#n3qP z^%gCxF|>&4$7x5H9zJev!s=I>S8FAqSXJ`=BU|>*;C=NWZ|91(?El0^-c+YT030}I zHL&7yjbZ+JoF+w>YVj=0-Az0W3%;&B#O$&Dr7ufQvF)GrK4XxB7pbi%H#63-F0 z8{cXSwj?M}yw-iI>OZe{Nc4!DQj0nDBGqzK3QOz3PyzWIFB#7_C+){xXH}oHx2ubJ zGFlBy`;^@&l4TETClRJ4M?YxR!BrnVC?7m{a1e|U9Ul$~8f3hJm;w=DgS+ZY_QSnj zh>G$#oQ*@lhl&|lNjn*s8L5P34#p2$1ifx+H=KyBu zK@-2*cAjt}Z})SHNC0+``i672aMhZ!IS&Gkln`tBpHD>mJH0@Z++{stqk|wJ>-|g% zvlDZ#ECpZIF9gdy6v@$i#vE((n&3oZLwWU)&@Ic4hoIn9F4v$;p3ll<#*vNaRL4~s zZ;h;``q`s7W z`>LaAK)SkCJj_c-eb^#p+7ISq{gP#p0vU-)gqP%ruSd0ouTS)5(sf4yO#gaya$mnlxv5aMfvp9Wa2UkrP!l)CpoKA_2x*x;(+&UyP8W|S*u$Wnn_GrKxB;go zyfl~3`DmoC)5JN#%*R#YA=e1h4%dAL9D&O=fjKM3L#~&#;(}?4sIgti;`&r(iP8fC zlPY6B8ri9vsj+Ivgwq_Yn0nP zwV<)Pr17G(RQK%J)=PD3U}SphHu$G(;+2)iqOS$+jFU8{eyffPL6L5eQ5rKtgfspS zep>wj4~n#s{K|IqOG@$~Vg)v&P?p>RTg4)I(OF_OKVa39LcCd43##6SmE&v2jp3aY z{#~O?&3ER{m(bcjrotiA8mYUiNd2$PvP$PI%hzAzE8_J2vCI{Q@zfngi&&E*xh``j z-SgCHJ2!u`Xra}qnIrG~=FZJsC$QfhY@!q~UJB=`DgSqL^ycW|b_bL8J?-P6ap5m9 z;)~fw&sjny>9xMkRFK{PR068Qg zV)XO%fqhi})2iKASxKDjJL$U&Jzm&mmj-BKT~VyAEp9z+XR>qk&-e$h3}x@%i6!3; zLh9GXgP1xy^8J@rGNeVE;}+NJkG8loL^|Liry3uhVf7_@wo7{auKbN4uw^!~GORvMz*w4!cR&TMZc13)ey#l19vL zD>#NU7kVxBajwz}7~N zSSJt49mKdx?rwNWw{T2bRI^G)a3J*&yxg08KDzzg{e5we3x_nYG_Y{8y%amMU3A!; ziv(wy{4dW6^O}hl9VZ`%3L2#)$ZPuZFi7(Ro?APSy_B-6KRcgF<9*|X5UgI-@2*CY z``^EpmsL<;;_5s#TKb{54=@Kds3*_hT|y^JKIizBE~(Bol0DfcF6=lWOC!*lK z5-a#~aWK=^+8;TacJ`vi4!8Y4eH`&Ng8VeN7HQtn54&cit?Rf26b|2se?(YG$Q_+PrIB-2xLz*M49l=pB&OgCRf#)_E=-%5YO=s#o6@ zTfJ#)otCD2=sm1p_-zP9@6bz>Pmlg`73zpsx}n% z$nc;seygE-+7A@_Guasa+wjh7p2z*+ZMU5{|27*)^-8zRU@lXwEH=<`I471+TNA?= zZ@d)~-A~6JYmswS=peNu6u;1+{Z@EjU*~pr=1$d>*3|Iq&h2h%oOyItWwx^MTo;Rf z{7CUb;C;BXD7mZ|A{CV69Vs0t;Fq*3rhkkX5YVzbJlOD&`cu-6Z(4l)Z zHL4)o8SXN*YEC+CVr*`{9|3f@ay-p>{_~M|aBDJxEw$&3E$wMdO}Ub^Gr>EGWfYRd#U#=XD2$w53QHan#lUfIh)63&)?Wt8Ur1{d`p@_68$FaK+wa^f7gU1 zCWW#MK{gkkg%HpG5{OhsEDrs4{x&myz+ z?YYqS*;&_$cqiw*=S-9)P+Y$}g1M6O+LZg+z`bGz^4hUSccc$?y8D4YU2%S}DcfVE` zjMpcg?9vBE@c}to6yhSMA?lYtBFDRTtc^#80VE7Q8|JZ1OsY-hy+7&t37nr>P+R3XUv7i>ldqx?|rP)d?2 zJz{KpD20_2*~*k#T#bblM2{CRC^k50#VpP7s6zVAS=@8^MR07Y^>d2cRPNt-2^&JQ`}!1>Hyrc2UbpNJJ{Flfoy1dTLAz9}`pP1fNhofEs1RRk)_C@q z@wyh}hrB#W5u>c8H?{Y`&}BA|aWRc5AQ0uJR61R=H9 z#;egFdvxW+i_cm@5BNv_M~e7FAGd%#Ls#rD!wdS!&}@MimmaO=2hFXvhBzxd{->sf z#(k;yeoxQ+tB+?Xks#Y~1t}5d@65z`UQ|=^+UNr4D?ujW0zX%l1y1o{L9)g@Zk;~} z;y3m~biFZG!|!8+bw@`Rg;xb9&RyFbK}lB{@8?wq_QY=P7u5G}FGpl=HdCLv zkR7Gx^rn0;Xv7~>pRjKm>80LDI<`Atui4vKj_K>@xP#@EM=xaVEHEMznU$fpE_W50 zg7@z1MlF;2Isz6;UR1c4l-#SiV_JOm9$dy+e3t(QVAvQ0SfQp2CDSZ{BFk#FU%!4K zcyaUhl|exZJcJR&&7T#u_n;QSk%jA7yT(QmZv&E~uBx7sFRT}6L-C=*g7cy2WUzs* zQRG{9(T6({F|4DTaRL2V2FRu`Izv3?ufJo6mv_HwV>b@2^H?zZs1m6A^ zD!Jo!X=+I}fzoAGegx14xssNOXd3T}R}SVE7_4nhMgILXPb?*yRQ0Tft7+6{Ed@sS zv0jqb_`mJ=CUVn2XNjqFV9SfG)rbkE5k^1@`?19}I zabkkg?^cFytmr+--u>7&pb66_GMH+feJWO3r)yKS&EsmiG*37yb`lQN;5&3X2e5+B z%lkju`FOVTruNLk03P;Dn%`8*>rD%-wxKaY>r)GLC)k-_r1?{Fu8J}D@M?A!_2aO| zl-nV{wpvLCpk|4uK{IvhkG*q;;`7^Bz!rvl>$Z49fT6L0t0D?mmqWEeBs+j@6~Cuo?EMRFA{|fxaPN-y1`%B-qSO=ys&@&{!+yj zYr^hwXPAh=>TF+3Mg|YZ105}0UE9UcFYDiZYr}_!hcVfjS)H(2r+$z@D)A40h(Pb= zj_e0rB4ZQ1173-AW1e9V zpSbPdO9euylDh89NX7g2Pm7CZUJbx4nQ@Rqrlq9?cehYNx$^t>vH<1E$bXGOJwFIv zAWS^S7OfaRxtsc<1(d><$}b;_rfNqwKdzyt{SYh|UppRX)5kb`pT% zAloOw$1UK!%Bou7tjjpblyF)~#Y-O4%S<{`aEOXC%h`6_`gftCU0pjq8#3amw0ab;%hnL@-BtFi!vV77*Jf)xf>bbY=NcT z_wll%Sn@IiZ)j8xJ8SH25Enk}mjpO$DSg1Y;STk+;x^u!UT`IymR1vfU}9a4FyZ%a z{rvg!tr{^kGmu&*AS1&H`fGU4{3bGe=TS0kf|yOvWKz2ecQ&Ftn_>6(wBC6ipB20n zw*$SM)cPb@w{?UexFx5~NULPu%yjkRwOboz-{LZh|1E@X%*}RX6i%m)xBL8~7@zZU zFdE3tGZNL%_HnW%`%;Vg?)E3YOF}m&TlUzMwJpn%0b3E7)A@l!R5Km(xuR1 z+4WG>DFVrN@_gS=b{!$nR%C>?CLEOd8OPPa@6J;dpIcON%M9L+FdyQ&CwtrlyaN3} zb=%|b2AYOqBHzq)s86d_u*OdZP{n@>XmT#)pSRVJJ!{psNL1yPTVLL^T zvc#KP%>zb8g9GL(j`II2nZ9xJ=Cy@)MMYxI!#3|p1~rVlLl5CYA;+G&evt6TcfZI- zv1mWAxJrADo|*JkMph%hmRp#Ron0y>Pu^LpV=_yACnonIsMk9FT!O%15eeN9r(-0c z2$9qLHg)4ye$A3C*=1EP&8%vF0NzXb`p)BSdFN)`ZR^K*|0zobni zwDZ+X5(_Ah?+V$GRe_TY;WAkJ`GUmN>h^pQBSM7p_Llry>ha(}^SCZPbRhA`>EJUu zsp9f}F{D@y79XNS2%D`<3j%c9s?hDn(;bzs>JRtpcIMr2-ZbOjc8+&F;d1q-wIv0IS1Um7QR2uTP4x-xs$lITtnl=6i$YI_jo* z8DS@mdSsxl(DBVX;Db(69L~gml`DX2eOCp?u(oSE(p<~SR%Ppzz}2R~ zL}`{%#vH1+O8fcYc~^15rypTQ*Z}Pd$yl?!VkZhpshaZ5qc@(d`z8_JR@y!6PZH2< zv3JQHn*CAzPU1@ekcv-h+Ct2C#Yfy0UJ_eho@p+rzCE%4gohua%02 zet35wh>l1cW9wSy-y`{y1$b9;g%7co>L1VL6jtmfW(3gS)h_={R|xXDf}OM`@A6Cz zCl0f`mtg>RM^OKcKaQ-SPHw-BtUfQ_UuyYc^c`&>Zaws$=$$R2j=Da$m-$6uA@^!& za}2vE;jGbI^&QLe=RMv%fnpIywe#Wv?5GRr1<={}?WeuUxj^sx^^Y70oB( zjIsnhb5b!g{)cXE5eH)(c3rtFA6(J;eDtmm8#C8ROU_qGpU0vxbi00|@vUoQ>+ehy z!(OLA)Nl5~J0~NCPIAH-T0u1k?8z=G0|KW`2O6ok4%}AZQobX3^0Wb96?1tF@A1Z! z@F&I=ssaYCX{~>H!=6OlsZl*-pAjOgog$&{pDpoX5oA69NKK3X+K*g08K6f}$kwwY zcT&|`O9@Czd-T+u*4*mHgP$G$ka^3^`TF%CeChGpWWabPh1SP}4br@urD;@l-gRG_ zT7ILaB5o;u%vpjGv3N4QE0Q*v-gHt`K1aLGd8pe!rZY9OGmZQDWD9oEa*H{ zy7nMQRu^PtDGF|U2tx`MMA-eoYnDhoO!1b=Az&i_x>|a2;rH*~Z$fu>uJiIEjJ(Rv zRN4GVqh|Ns1+%kKTG@14ak*GlqsVi1+Q=!+pL3&G8}2N1iL~ z01_eUAvkLG6yvf_=K7xKI~NCr54>80rhewb4^7K5%ss3meDIyAULhSd>O7FVkz8hI zknC$bW9M$#Esx>qF0XTeQt;jv>ra!F?ZB=CP0hGrkOQAs=eM5Mb-&V&=VaGl1ZA|t z`DU+QY{UJ^n-NUUl?^Rr1t$Goz9!8StqgAFsuS z!oxsykgct)?%=gJ0`>}6fh;Xoi%K0k^U?I^M&%H&yP@}zo4Zy~qY@|Z#n2~yxm!{q z0g;=?Yh5=oahFUyM0|I(7=4;(R0Dzt9yxMdmaF~GABMuNEYllO9P_X!*+AY>Y*#%RyHkB|h?U^Dy)*^jxMt3d#yt>o%Iyw^b!V zcxsh53IV>ZJ#mr!{!5UTSS8GLvy%9ef|0^obM)f8BLPXG?Z!QS7ayL_(-{H*ir;d( zt~8A1umh4v#@`^z+(>nS3d-2s%F4>?{GlLvL*>A=TYYmje=0pD|NcD%)C7bT$Jdd^ zB>lE#Dy~a$l=$_3y0?E}%4(Mju$}r8X{^r#qjT=4=26>i;eD*Gk%A|W9Y)!xk=w;z)JvLhvXX16-PmsCSg)V zR`q}UCJf9r|EqC!%@1a|u4h8;)axW$q7w*c#eN-$`M%Huc zp9jdww&TA`*{yf&`o05Y`|`W#KNE54k^kO1AsHe0xzRk6tX(4H+ouXYhcb5F8v+X7 z2{r-2or5a^aA*Jw)Q|3T|Cw))4)1UN;X28qN2!g}H-xf+7WE3^)nM=>kBVq`yyROf zf|bpB_Pyld;*&4zi$-9{JM&OLQ^()A>gO1h7-2j_z%ZP1nFe6xocxawtfW)=vN>2~ zP2&M|^@C;2vD)TrN@^^Z2F}Mfmx{I2u54MKOi{JSTvHmyf!HJJcWISnwM|exxkaqnIm?wqksIzlqX%Gva-K+24%R#1_p%ykWD{DN zC_W`fA7QbLZHGnN`|0skdIus4D=Cbl?(i|}$rRRF#@c+ngQ)R+qCmU4F=ZgY~ z8pHid!Ce{paCtq5*?GR?~j*&ybzt*>OFc8Z=iH)&zjz4aDrwLvgV%4YF?4$R}1Y&Gw%?*F1sq%56-?(RlweXe#Rhimw7>|)(r^OX}>#* z1E-$J?`}WSJSedD*gkVN-97MxIl#~uIJvF6Re1%J29^dOl8vrs3u6AC+7)K%C~jD&B_=ZE>@3)!AgIS-;1QLEu01 zKgOoT6;RQGe7=5X|CYzoO)cEcuiMEZeVPsGfR}X(^>C9WxQWgo=UY8C{Q=7@O0CrC z4ES94O@GQ76LQq3vZ9CI=8 zZ9@hd^U48M-jbGlLoK(EYAqCD<+;(Xe2qa8G&-ixm;XxBD+eCY{0*TCI4 zl(IV=zn`vjyfCruKL7Xa!^oh1A7@dhtr}{j!K%m$Y%JW+4|L^n4cgE_|N4mEsHKIM zJHaZ8-`lrCan@*%%6ovS{L*_Tb*0_u1pD*d=V_t$jeg+#yUODLbxy{|UbdvgA62S@ ze;HLzmx0#3gOu7U^YHpEsf|X~KO9s`!HFN9WkLNKoAcK39t7VrC{<#4fFKx z_GEkJ_+}3jt6n<^(zZn&`J8CkQ9!`p*EEDHba3y7(I{#g$*;fk$Dz(kL{=!NGmuh> zQ~w{2h<@hC`T@O1QX*gZ8d-|qB}m#0QbKp-Qa?VL%!a=cqld<>wb%Rw?uu2W zd?fe?eM5nz7L9**3%9%Qng9I2c_w7N`Hq$QW~zle7#;;Rk6;j8(QOghtD_q6MjY`h z(qQI|pfDQ@>OH)u34_rOZhvkWf9*PY2l#Z~7uIAS%H(wFJDzR4%Svj1Hfv9?)8v1O z+H7Q%UCYm5D+{InvjMym95|`a$=B%da^-??EqkW3Vr1IwKnoLrQ4N(xcAQLgE3dz@ z$o^ONERCByqSo3V_2A5-XCUy2k!v~OtL^YE>NOB8@%(-~h`US2yY)pa&}dJ=9FIDH zkYg_v35U2oP;4)6QrXIL%-uVM6jhV03MWV?P*JR;a&Hm8)x&lGol~ zc!RVk)7TAZ*<7Mp()4D#0f330mLGhJdQN9nC!7h8%03NCP?%xUA2hp$^XPq=P+D(9SuLSh{rXIrbTdvco z$!~pXdTyJH_DJQO8%H}(%_dq|Kbr&l!pzSHHOs+>xvE!L590l90GlAj(%3*3Hz@ek z(~43#4lQW1ONZC8G`@bE*m}$9D3i2*u7RU*q2V4Af<&`K1NVLYx6Q@XTMcEiYP(T^ z#5LOCPsO$wmtK3_!UYEI>%S!pTp$`NaIQP#OJS)|nD!`cttY@33^5*Zn!mmJ`Ra0+ z+G+n#pI=nFg=2Mm1|Fze>2~n)1C*bX{tJIOJq2(0;4F518Yf-VOg}kzq3iO!@BM~I zeI*s7{OY^vNL(H-;`!-iI$qQSed~njsLChJ#>c;t!d)nOrFS>-&nr-0q|yZFq4ZGg z_)qEghg{(|m!97bGAb=L-6*Q3@#b&GyS^zuwjkTT_-)9ZL;`XGUUYQ=INl3`G-v~S zqk}O+8Q+v%&6Emo(S?3E;5h0%<2WV_YB2-BbRgvZfrcpVyhzyD3`LOBfOZW|aLt~r zDOVo%wT*_|yUomy< z=Y|gnp=gXJc*5wlN6{O#XJQ zD_Fomt1vq7Bpy`pG}=p?lj(RGeE5?)A`vjKqvA^FJT5WkQ?G{JZeF$)@cffrPd}*+ zqRILf3IGmvWiPclzlToPgxOkN@;Tl;6vJ9O`MCRey~u2kvSnaz0r4FWQ9n7R7W=Mh zHRg7IK%QEIC*j$lc2xCT4bZpq6@x)g=j+Bir^dM(;3!vFokHBPjM)lc8q2fMJ$#WJ zu#6qeM?xT86I3|DZX_AX_1xgOlyCa=eKLntB)Hon9E#5^e<(^3yODCz_<9Ll8jnNz zt^GY@dxV2mfeQ+2F$ZH_f7Ep4twV*2;u-i_WvIC@6)Ilx+LtZoXHT*Dmt4^Pql*gZ zDYs@V$kvk^mhk{_Y=M*EVTB{6Blk;gB)YUxeA50ELlNSO-Jsb?I@*B)p45JdNMQ|c z8qq`fi4y4_3$#>`oa64%^bRd<3|8fbxlAq;Snot_q&!kSdMurI2VB4Ie~}wzKP$P2 zTOghI;roMu1ClbO4b8 zxyfbAveuDOy@tF2!B1xgEVTSyjUW7{Jk1htP8YNcHQ`tXK`a`20pc&zJvQf+fxpRE z9soVFK?;+}lNw86-l8fR5pOZ|9f&muoqoEJw=6|FCOB4b# z_`j6Iv4@nrRMI>!n#!GcH_-78_b5GKYPqBBYwTmt;ETq z?!mF!GJ)kui0y-s$jLK9m&WM7*6B3XY%SWU^2O0wC+q zKGM9e8GFd1>$oSOdI1k)clCvjvir3)SJ zomg0SSaMlfU3|kJ;YQ}p5yjUS11FhDY-`e$93ve2Pqw`f80&Ejm6M$MJryC@orxq- zugf+Ao53)B@RjJBgSHovR*>a^Jlt(K{;jq~V>kt0IniIl&d&Ui{UddQ3EhVeun&Qy zU&Pta$-*FXOLEpUxmkj@5y}qelcQw?Ae?1Dpg8KNKYWexQG=hQ?5NsgA2{Gl(?qZD z1=Oe-$nI&U@AE!)kv=G;#kdS+2R>qO*99q<8qkkcbz5X{?kgeUICqlX+SjqZ)JU}U z1VQcL?}Gj$imFrVB(t1wyF(;?l8qy#{;&O_n1{!q`Hwu4Y7;XH+^B=-ChaP;JaPCM z{muR-00bULFRT_8r(f_%V|c|tFgif>Uqv z(>{NN2%5`i%*j<2?BuKWCqT+7S0XHR47TIfcw_gBK^q3$K_HB+9kUXAqd1zjGX8-7on?rWl*<9@;N$8ysnFS4ptC)R=3htK;M<7D#!{?UD4m)< z=I>g%);0bMwYuX*!8IuO2`BRPEbgD@x-UGH#uQP5h7~Vq^7J9R@Q-k6ihm95JA=g5LnakA1=2 zxG>rv@_0=O`fSCwGi4LF-#55nAtSv{3H@ziLkyL_m+BtevI2`=1I+q@l3tL=#H8`; zkThJZNqZFw_7A!ehDiv90QWY=okE!e2?GD~QC>{F(9|=DZs~df>wtaANhxsW!n27w zn)gINR_GvZzR5jmO%K|{H~6|+zU!cHEg}Hz4N@CS$11fn;UMGPn%p6!LQKFSdAx>AreM0B}#zDP%q>ifRbqoZ46O_`@-2RN>PVLX-5v=Flm59a!; zJS8G8J_tvL2=5L!)2P5~;y8d;H}TamWsHg*)c3qbR7KLBI)^ zcj4hHA~|8TdJ;PBRPyckWP$78yMuoR=VjUI)7p2C_A8|`%g~p!M6^cM1E3Yn5x4kr zF+}A8#pCrFs0Cs0!-xrziyF3Ryft;hPi_an*8#g+>TiOOXYz>Pr@Y6yawRma%QE$3 z`wkjzlGe4+^`SJZL&qZ_z1D-?RUkw2y_5pkY~dxCHu}jN0XF8F%{Lle?15fs#+Ju! z+I^!y!=;#7)s4Z>Ri#1Db`RrgYzKK?#CIC_8JM&|5mTr!vHAvlg+gGTL!`D+%MW|z zXcX=;+>9~nyn6e|G!259(mWPMWQ*_JVMRZN5EtoykiLEv4Cx1_wJuW0+^$&m@gqLY1Y1z*T|8Ae$qWDxaDRzT!(;2c7 zIaxJmSP#H`?*w|tguwU1o8Eu zN6lvCO`j_P;_I)cHIY?@kZZAr#i2-!YNL^7*Lh%rfie3|=1EK&9b*L~LB&oEehFpM zqP!aMErt`L?}#J3!5Cyoi+rt(A_@O?f3_F}=Q(_XsL3kLvoW^u!le{26rxA$OV2-z zr%b^?;#YEg-Go%9F&}8Rx$!2QZ)8BD<8CQ@gQFcHlhZR)h#1;R{`;cf2|+8d5-`M{ z_;v_TcX%t^V7BfVR>1EhTEq^~=|9MP06AI|_4E#l8DRN(OrVvd)?pwl{2PI!2ny?+ zB^)d+RMvG-8@CsJ15czBHy0l}$dO@78BiHRH>L7#p)L~mGbs@-#^l(W{o;;C8k543 zJ|9Ht+fU4R=4kJfQPIb|Wp}(xORWISt>zibSYRAMkdkvZDbvb9(gHLo%xLfpgt8{q z3H}sHQOr8y#d6&m72(3}qVy%fWNw@|)b&`yEJ7DG49!3cn_8wiE&o>`S| zcIPG;@%T~9sLg;>S-T9&N0)!(XR`&8hBp-9vtl)j|XQ!kqQ+Hu~8P>@7G3wGAE=k-t7Rn)Y4Ba-PHw zX5iyseClP!g3>wc)m|6@0141fa{eoBfP}$<76{{LPv~{jrOjm5tQg2xUiG_(oJGym z4lh827x;ADg>wM#tZn%(oT;>Kr@!N4YgOwb>Dau(Gw8uR`v1^8hyM-W$ElX*qsjIH zifEZ(b%FrAe8^q|J4!x-1nFpe8olXK@ z{pE4K*!FrbeJbR{aNUQHz08nn5NnjBWRo3|1x>ch^@~Up9V0Fsl`8Xaa=o;eJla8l zzT%$$!;+YNkvr0H0fIw3KY>+w9?DHVLFQ>Vw9QGC+?$ljQqgpbP^JqEAgl;g_|`Xg zf_Fh>Tw_4?pK#m1dD?}cg%kxFK187O7}HxZXN!bQMa&ErG)$Kn9W$@gPGTTAkpLA5 zgD%x79R`2F_(D0j&EsH}{HCC(AAe2C3BwQ&ZfceNnWfrV>l&~Qd)9p59p=EP4$8iL z$T5X7jG9Hg!eU z;=Ol`vKJUOtRjEod2nLv#ZjW>KbxUrIs*^qn5B98U2&-J)&jBJ0golxD=SGsr>d}t z8^qCbS`4%@Igv(M?(p0p4hszX+{1T2$ZN+2VQAz= zFj>K;Z~yUY^j-I%y-)_dKy*sPz~d+dVYZGtLw3|4_+F`9YT`!d<#xrW*`&7_+$qv( zYz>puvM)rSPNfHhoLLau(f+fK2F!WiKY+-OZav&z<>ptgb(djTBljkQt~CsaH7>WuZ;idFYjKy_{pIsW=(scwzZJQsko8U$xZS&< zBR07!LN-yKNZnL=NUdX{$hjk2$()YCF?1gfH3Fk{xj#NR*6dR?#TkH*SpCDU;1o~X zKDZZ{q4@(M%YFy;w%aTa%`@K#Ltpg49477FO^czUjDe4*Pv*di=329W8eTSw?8B1# z-@=5|Wsl-uEWFiRJuv_!efAiws=pz~)h-uLXk zWIUEhvz)uA+1jUgP6xKqasoOhz)TCZq|`%|#m4*7d=&lU@{2(W9Nn_zXIT7r9RMo$ z-|#2R2AlsWaff?uq_=ccMr;rpE3AJ|j7{hZG`j=h;dJrDX`fuEY8o(%m*g=*yPymi zaMRckN7J&9_`c;7$W-KFbdwbH{uWy6zub1s-{5HjT1T#f2;i9OF&YqYfUbIjjnHzK zo#jJGakas(Tm0WxNw8?0p)*1N>cAb@Yg2A%>2_9oNgNP!>SXc2Iqo9g`Q$gA2Rh|o z)cJFAoDHe}on7|;c8ZomFEuSv#$;=pTSOGa1dHl61wWneIT~$jUoW|d@POaJ-?zf$07kg<{b`B*iUB(+KaF- zTg8wqy@BPWeCqU?^K9*}+s@2=4O74B^CPdc>&LIVM;_}U$T?lfl}Tq7r5JdRnPBEs zRI-ERfZ6iP8%Ib+n&K&F30LbrpK%42PbE3N^7Cp!*4mj==ovivqqVy#8%>6SI^)$<9Oj3LY^a1aB#R0!-{@>Ol z7xQ8ND3h_LL>Tv$_3u;fZ;vFN%SHy5m)xIgJx7OZoV9EYw+c68Inv`)hh_GfSO#QU|B9mT%9tWq)0sI6vshT)PV?B538^82GUa9t|7|aW*(-(_B zV$`G^pL!n3{`>^0<~|vj9LurwK(^^b*WsoQkWV;jlNidn$Fz(>2IGiDqf+S&yH`VJ zw5@hz*qIs8oyEkL2H-3>#(adBw;A}`uw7OLQG9s%4v5ZRKIHX{A3tKTii;T>R7!ptbYiF*C)B^5e( z45%1txP5R;WP8qnjd8$PIeokfAS<}DPyr<9psed~nxmrVaFBD>>nN8BH)sP4YGbhQ zUxYr~&iPOX%#`J0el~3!arFQn=&|TUNw+}M8+H1WOo{1R{PxlRB`#!5(qKh;bNskT z(#L((_qS_cWOqOl)F8a~n#vLv%9TMdo!?GM@TNax>7p#}*8|ZO!zq-(hbp{!oo2 z-?4$d?Uufj)jzWOJDoSY&8sm;UF8D%)yHRK#bi3v>Y|LB+<*kP_FTLXUqjRG{@(|~ zI_%7gSRKueh1|00S5H?4SV{SV-$QA3)Tnpn9JOJRp@Bp)n3eB;4*M=i)CHt{#EHfi z=-mIJ0L`!rW zg{l1q4+a67Ee+f?l9O{5)+)d`x6ZC%5NH_(mVF%_xuG~kIIy;mNiC!;3?Ni{7XX?$ zrMYJ{6YWx2NsOPoub+uNivieQ0L5)VdVpBpg8K9f>){*>GA;;wlPkIDzNb?VC%t}D z|N2;9!du0!*~8Mg0J-Z*>}1YSmIWgB=IG)OU>G-|5FSS}){7FfNNg&v1igCPUln4}m6=Z+@{4gH_8g!&>G}<8G##aw(b(=BSM>yA9`R zc^e_fQAEhl`p2Dpu;ZZPEe3I8tD{f9)miy;h=u(|72e$ebn$(wJ`#ij2QRW&!>=CN z{nC8Q^77m$?muJtg_Rz7>G#l@T6Fto`U`dB*0vd{<#PKPHS3)97Bi!|H#uBIQ@;R@ zpbY!ZnKA=5Fac0>Bknn5d`lNY5r{EqC4NoW?vw>wjx8g&L!6x7Ewd*gzix1g;MWiCc2cLK>#77^#vQGk$Xqi9FwXemlK+CeG@ zinv11;GsDGUvUOx>v3qKlZj_QN(5;*VcYDhBU&r;W48%7ATc&508KpZV3mc36BUUT zIkLT6U$R&FVh_Kq;=kUhBs+gtcxV3qETU0yKn6wQyDYSNI=b#aH`!|rmu4!poX}&U z$-~b47T$KlCUHx@ z%Yy!Ol#uwwgP;TdlvZo$BV@LsUU@v4$_$u-Fc)be{d?Z~kC#WBN>F=F0%vA4=zK7M zS8SJpc1Gc$?H^9dmt7tAyZ2dnO>z9*S3&)!*?ONoB=y9`@YCY@==WCoWN!)1#&zr- zHRcbT$&}_YsuzWvSFQ|2>0zq!C7vUS9Z&sYxJjX(L`gOfaP$8Lk|sIoLeQ%9(wDZB z?crNRz3*G+*abn}nT;P`mT@!?6Qm0A-3PR*k$zef(0?v5^iojefs(2-Pnxb|3gaY& zi#ndD8V>Hd#8yZRW&Xq^tx>bR-49sPS6B(KhC@!BE02HP34+iC6gl7%XEY%mJYECqteL*X3bl!u~hto_uxg$++uo@WAuIlQL~tlrYHl zxxHxSg$N_yETZTh7>}iBIoY7!GZ3zjP{9OqR{lqwFQU&HqM2eig~v7ahbf|wy^t<8 z;i+Q#OAem_dp z`D!mnosbualpiO^d}9k8(vba78$EYdi_iVTYWZRcyqUCdUp>g;w&z8kp3g=zxb8@3 z6^PwnNTQ$ozbwyMwk9epVyDNLkUW0l7dy-C)!V~2+Vmb2{sqL)$S^CmDM||tlrdz* zlvR{jH4bz~ubl$GP`sD!y;lCw*ERbUZglI{}C&Qlv6~L9I3W#;XnQ@K4M-KYeoId`L z{P*1yB2pSon4{83F}+8xeO7*keEpRnEfXvZ>2R%UqKhhVp+DmOBFuk1Y|d;XrE!+BokeO>o`{~o{ZmNC41`McsCpagHgZ+r9k2=|4&XV@0PP?(dr#xedwQjigILMiJoHzP ztJSjUkoB!C%Nhq4M;O4_adcapvW0Z^$aU2BRz9sd> z-lPn?`yGG-2p9YW)eX?!kDZOj1>$>w=SA3fzg3uraNeNx+jR;PDCp3p@ES@WgZCm2 zlB58v2-RK^0004<^c72vG@Tr@AoTU;|)DPkRAsfZ+?8SU>%ll2wfI9L1gP>cfxsHtJ&y|;xhz_XyXgGJ+MF1eNe}o@f_L7Cxzo&!Qr3V55 z>3md93MZlN^3k%(qj4JpC*+(+q;Jp0rh3hdHA~x29za96!yW2dovnm^ijT-@u;q#{ zS~3w+mIw&YFLyB;GWqiG#Rgt+oi1@4oXt`aVqP~&CAkeD+Ka3rTgRxJiWw7jRLhKN zQeC3Sa^>6_i(*-IRe<6A2}^vw#rt(L?_k*(a~*GtZ>_g=ckks=ER3^W4kX<`C~hE! zVo1*=O{fdROCjn>hup(7Mc#PbHZXKC|K5;4tta$lUPsk>n|~)g`h)~TosNujDlZKz z5n>!i!orXNk^TS3GN`(z-Ue6pD48@T)1y;ONV&;8euRDp1=MEVys8nSI2brpU1S+? zeYZgP9_h~*-_DzI+tl_qRso&)Va>a7=AX_O|2*5$o|T@iY!T>7l>f-L(R>c9L09Mz zQ7I!927%3UU{@A1>G#O24Vo{tA78mVKJL6D@1*4YfItzIjG)RIYHKJ}meq!>M!q#p z2Uw3=gGnI}wufxTuSrTt5u)-R^h-ZOvcTTjhHkk)$;#@;?UClkFa_U2aLBcPxe44t< z=_#Lf^`8u8J!Te>GLM4`poxvSoRH;bmbLWE&JJvq)A~;3{iAtTzt9|d*bsf55GE#6 z92NbdGRcNE$zyuLsb|HCpxgd}pE*o(VHGfiBy5CZXg1&!!5|xX{}oS$3Q0+-$7?O=lc}Hq;iWN|Gg+%K1F1lFPfuEsgtfH*I2OtF(`G|0IZT8~1i>5#y+ixi zgkKNPIfXpwzd&>dX1mNi*uuV2r&uAYgTBoM83Ox3+%RTqi)Q|18Tz)bYdb@eDPz(B*mu{7E$1gDiV<8poaj*Kg z`4!J~sT*v+o_nJ9rG2rhIu4y);~VfKfiN`Mu=Oe_8=ju!tId4PgTfHKQ!0!H*%=!V zRD`tb8PCRgW~LDJAzF!tI7|ySwaULfp&$_(m!7_zM=e3}^5vaSUrmDRc1n7BBsiwv zp4|U_?K8BPEWs70nLnzetekvz_U6JwwD?y@C~Mi7K^8Q3+%J(}q=J24kYUwZ0pd9@ z>Y{UfktAn-ZM$_|;!870gBz^>s(^GN4#XVD&m11yQFKy_XaC`K5o{62u2|hKNvyS? zwAxpi|NLV9l#8=sU<*SomMDXY``zxv8NUZW7+v*zd>!x~wP(I0Y36Z9rq zn;s0?Ue(n;O$6ru&h#If)J3|Te@kgNCtLn-+S|$@y}9RFqn;4auW7i!?Y%5|&@|9T zTCN3cNH5GMNcC$(?~YmBf+fwh`a#`QYv^gD1iXT>0xtmORc&SRUfxiGk2PmU=BALM z0S=`NOcmTs*|tZ(QK2E-Sy3Kf^5ip=2p%PZl0kCTS)QviFfzKCk$VNz z+dmNNJx88>t9x*cP3Ck>@^_g<%!5ha+;B+NKoARqb-xUmPNQZHm|V>N<|j?9^EK~w z1P%3{kv=?+K!KZk(#!ip+fA@G+XZPBR*vPoae8OLd%7I;Jf7mf609tObbZ&~tvyCS z&FH58!vBI}U4aw7%%||+ho;5)RmCzw1qR=i3 zXHEX-&%cj&xM904OfJ;!IzSiwTNyF)YQPZ$%<+#QB|F>B)YR;bNSXowtT z{ySNge9imw{6X`B)893vbar=0zxw>@<3($d%VCP)k%*>8Xhqbh5hcf2w|fBE4eoO8(H69Z$7Zq={qGMy!Kk4+!l z3eFYvg4o|zPoo;tS*I0W+TdF=Ffc%o*E9H(?x6m3R2Ylbk@`_8Z`D^O7m7O>-f$h_ zzxqnK{Lf@wmJzq{J}MF?4QH}vt+v!{o9`a2YI`cm-NrllMe zoeD*Xy#Go_k6&i^_VmmduLsbL9o%sygq}l=aYb8(u?UE4bU3pEMD zt?8`BbiAnz(NpjBUhX-UYpP!?*FE+#FjCw87nR@C55thxr_GEK>a_h6u2t+z+FjLR z-C|?8EACiq;nvBwCLi)fQ82T=ijZ>)b0$}--!pyhJC3?`@1i7u!+tj9YTKEk-iht2 zQl7{~<+>+&dU{gim5+hiJSH%ve!r$?=9Zc<6E~l#+_~r|+FvP_J@zTjo?MIzNTJqH zFxxrBUn{46-;$&7?WL{Wc2N%$FR-Q$Hfk+p^~E~b)ad$}#`MR4U@6ba^m{pHWJi$D zwq1Ts4+cDq^5z{H#~Nt29IKz+d)H}X8hY?&C+qGkq!rQYuKm=xhPCKn?S`3w<2qkm znZzY;UVA@~c=S0ep}~;xB5drg$kcAhn|C_%Y0uWTMB{P02Jfq+Hx55hkTXy z5>2bSwQ~*5PO9&Is0cOP*+#M$JeodU{(SrI=}RXtHFki)!>fb@v--Ske6V)lIgv98 zfWOpN=fr-pFht;;_^7D8*0*WzG9|~92c^#XLdv$Q<AUQTG9EGySIvKAPnL9@ z1EhjSKGT}P=?v|eYdWnWQx&&JBeK(TuY*Ve3pFe-5&{4j75JFiH83b?t5MU(G9I zFZP#LmRTM58~XboWVJsi?elwLJbEnktqv6__?_@WxEZYmubkDs)CFp{MPL8$vWz>B zjjxQFjA1b_fcc=))jXf&y8vy8F4+mBJdfGZrC%R;9^@{-i4+d(UNx6Tw;74i0d|u? zv(pz&|5VAlq4=E@HhFx81Jopvbh)(T$%}02v$JQr`0nLW#79Bl>POIxyh-D56Cer3 zMzW^lOJ)7-rk~V6l$)NFmG(;89Ixg_=MOiA)2;7hi8=ixWS@Of$QTtYBynr{uX{+U z!}@9!CZ(}&1*W@qT2b0rc>3!2tMk%~hvXJ$AZEj_MKo{RwpqAefh2(*q1k+sDFz4A zGsefs0~mnky!B<6IkDDM=QvaFPiUbz;-q z=Q(Nvkt}vKp{ecbxi=)tWF9Dyp|Wd_d063k=z{+OIR#9*N=0h>HzK!-&*pjkuF1hV z`_!~=-_8;GBqV1-+||G^Sa5!|AOfrQ-`vKnMmeF*x*rHhM?%wWIgH zx8?jWCsYCLu6X)p@BA5zB)PN8zf1=F*W|GDw4Yz?~^M|c56%p^)`Kb7qNxd@^xS^O&+);g&4Ic?E z&+WUGXVwtP7vx-MzWeNkpkt<}BEihPe*LyForNG>_dlFczi zPUj{5dxJ*wGFu+ot38m*^XXib;>H~j`v;~a2XRt995|Ic>}k5f$ujTPzS}>lgOZ?$ zCy|e_0tJB+l((k9&)e7cetrEV$PTt` z&zo5dAD0^9O2x+-(?8Err`YD$LUVzXs!yqm3Q!FN0EmvNfYw$j4oBSXafhs8a%0>+!}qNrM+q(3@m)xH0K-kWm2Nw9Yf7h?Zs(Mg>xK^*&K3Tk zW67P&)0xUWyUZ+fI=hwM@xI%m)0&q~Xge%CDR&|U+a&iVEMHwH#-WjIpC5A}(qf=` zKT$5e6foS(DSgVoV4wbvmo9`xn=36#rFG^E;cNoW8Vf=LusY@f>?TiXYBIk#aQU9o z(x0#y5TuJA^&dhXgby=-8Jqf$W+0HEmA)lDm^N~+5NhD0`} zFV#2c_ygqb3?&!+uGjO*n8=n7I(D@xO8&m1*MSnVi~554KXwojfM&Z~-6*~Es4}xt znF(i~OCIL*G`5ymd^Ef~dpATIE6(3t<;o{V#<$-w{-tp#`#L|QdJAHswWU6aF%w1_ z99+zxC=_>EuIs!gF6JHm8113 zoBkVTv6Qmy>#_)iRnl*NJ*Q7Lt&0iV+avh6U>^rJ9Vcl|xkAi1NTRS51__fZR*|T= z5}%-b(_u1i79#kxb)t`j<37K}4};`-|7_UgxjiBrGeL-^m?(FFpT}m-1I5~}rA;MA zFe`F%o3k`Ycu(=GsM7eP)>#(FRvm}kC;_(kY1OT(snceRBVjYg=CPK!=|j9NVtxx3 zmy~B3a>L#(i2&UPb#5(Z_VG3Bn>)|XvUzES&-Q&jiyjjd`=iLrct$kr4VCV9epOYF zVEAeA0E}c1Juu0Bmq=(?-?;wc6lMf~Dr6AdYW4vxcs&r7cFqJc;~{cV0$3T+DMZop zlph)bi$nV`GP185{Tfq$f#keAHuR5!^;M z_A7y5wj3Q2T+>yc+~sYvV-5WG9u>+hhrF`eBV&DnM2IE{p#2x1pVwJaL{a}I?D4|Z z^22U!ed~4C!y(!MWHQnIWwfrLl9cFg!#~|c}Bj(1WSuXQme(7^~wKIm(cpBd8^nSjm(E1dC2eRBYPP?3VXFfC)rLIu1Nix-I zyu|~85AQ_rKmsF-_MP1jaC*pARwLh9k|2x2HjchZPIsFYUbmU=BE!!lh|wL=dO2Qh zyp%z`Jp0p$dwHQ_Y&!_Squ$^4vn#G#%I>`f8=Oa~fCJiDp^CrILzAw9_piwxAI9K>$&9d1mueaBJtdC58$H=k~#|FkSyfnJR1S)&gP+0MATx ziMc>Vq9lQx{u^f4+V)zPUl6^i0vJ2}H}C^``t(1y5}CtG=N?_QI)w6FkK2Av|PfLbe?IHDD(K-8BFFi+;;Bj)dVcHmaw*>ap-)UwQT?oF|?@zDl?XiZQsWHi=4<~Q*30{@YB}TZbBe#)~dL`@!Ypsi(#$^XRa0{;a@1t1ua^Nhm ze{py|+W%u!IG-K+%Ydv>RP$@l2vZYQxM#>xKz|Mw1QM%9X}bBNRqMc_yOee-V7yg$ z2RK0NfCI`cDI8d50%=mzQ_W(b(Af4py5>yI&*4t*={Ry`o!tFub7Y61=cqZ6R^RaZ zHwVMYh&=CedgL!f94lXKl6kTZ+Q(V54`!f0`2s_G{Cn26t* z+{eP_-4(L4Ov5EK56eIwGh~xGN(~~s|j^4`~v5}TW zaX^v%jhM5$TG&q^PNXCIw!kEl1cZCbZr-E;PL|47mD%Hgl3mOH1$OX-T7aHj%g-(F z3RR}l#&sM*n!aW-uB+BL-zI-Lj?=sIbLPfMu7Y<5=giv$pE^;Ips!yDEgQ>-+0R>B z>+l_N`GxIU4&Ln7k;?d3ludH|r^%glKqEfS5~Ntf+9#1fMg{KLMwWvHph1MzSGkcb zorzq$Nl`(S5gTBBIO(?U(0`kxx_z?(=7IfHY_UKC7eV5Jm^(xuOf4zxW{3*(NJI3e zltAYZ|3%T`7VpE>j7QFje~uIsTc5vVpL?f7_hKLqTgl<^l0V5;i>NupL*2Q&#NLYD zDBEC_v;xGjH#OYu-3S~$p;Djx!Lq){Ht$ESvxUN5>>fX$H`zLeJJL@q*>x;>j4?@e zJwY@?52Ujeoe<5)W(vu!l9dbGOwWAy8ezz;>5(Q$Z4DwUk{b*foq!7126kJZuHk=m>gk8%?yeU++gdKgZ8H(e*!e*x*aNEkZ(m5C>yn3g zHwkk-y1^YVE-Kz!@Gx>mUVCDXeksgpw~?NyJ?|Z>W3ZWVD_4+|EVKI;b@lHpjZW^X zd(c&XUn)jX+TYtw&u~>;(qa|D`)=vYj_F-C#nSSYdi-$38?LtcCo+#}hS}zf-vOgU z3a556F#Cc$?D0rF2vbK=J`mA}L``~$drIDq3xBs9rJ(md0ypM=Ip6Hje^aiM!OmVz zL>f23*+mS|z2M72Z@WdX^OSxzlt=Fj6%>(H)se3RGvkRQM)nm|1(r^sZ;9{>;^#MH zC$(Lf{k@I;3AOb{vEbQqM};nlbTF^SzIvUQ5`j%|vDO~!QSVrEP%zE}upmmdJSaen zK|{?P(-_uw?&q{t_OLK-la=P@?e3D)0$ky)XM>;FphmsE^EsX%IbR_zB=TPIy{l)# zFiUGc*G=!o!#)mS1IR4V#g-0?|B+hy0}AD#zF!&}r5e@2HaW#P-#-F02&+9yQI!+%HtO_hJ($O*^@9A>zJ?#SZ2P1L3{qv)AkJgcn-GroWxW1Jq(w5+-}l*lAw6bN9Wa$tBJ2W`9}a)4-oGjC+vNz+ zsp>5$cXSBI1A2#NweP##Q~Wn7`oq#2;{+pu__TtfFPSQIDcI1zX_t8{=OXsSvC6OW z^~-3BxrQTbncR0djAa;qd<1=@sAj)uR5LfBxY0gPn zOw`*2i#?_jfXL)3fF|Bvc#Alb_vLX$G??a&BS%EcCbn)c(Y#*G}WUtO|l+e|~Ci?Qe9=f=LyGj87me_a}P;_zX72JIQ>;IQot_vP>Vpfz8fy{LC;2 zdptm{kqoY^Jbz~Yk=4dj>T(iCmK#oVe98W-NrC<4T?eSTA8X+3Gkdbv*W(muV-Z3X zq~7iHPZoM-IePx+>Nx`ie@R4tKdCLgBmJTS-8-{bOw4w9(KADkn2Ma>Qg;EK$C&)- zjGV;rW1Zh`;S(?{2%KW9@hb1{jV%G&8K|EEyAk}~mq=B+pSWe8Mq&?}c~;}{@K*ce zZgxVk_RzBMc~CP^0!8ax4sPGU^A$rl_E#Hwg1QoYLdxuSQl?9r)oF7iKchfzyRBYq) zH@bGt@8m)f_OGvb`zz&FT=$YGO#4&A36m)}Q36n&FvWffRI;*bhpvL-uAq1-5!wLI z-S~9vknP9A?BxNzHR)~^F+}F=380Ys#LmzIPX&CSbKd+jIrh?5BKqM&f5JHz*B! z>J&0x7tT-tcM6#!KC|U6rr=76&V9nTAC=LUf(*JW2e~oF7h8S5e#7>BbrM`BJX}A+ z_lgA88P3CnHFx|wJEYE7d^`)#d!RO?m!iX5xsawlUdLeR&^QTr5W>d#bMV`}Y_$^; z0=30Z0=NXqtZ%0!Z0DqyAYCQL_ zDkKGVpl+isbJ;e=1m~BiH}ZdEv|iHy7N^_1o|K0mHuW;Oq^W6^!XT4Eu9JcNBI zBM|P=_Ow05AXQNUB^F_>g<4H9I6U?!@x<5}f5f>%cTEHoJ6SbziKnX{2zq9F&z7IO zBITJwhRe73()KW)|O9y~F0B(eo6#ETT1#lqO>Lb4sXB;~t zK=I_aUT07w*L8)=_4?tYdSB?IKil+E!JV`U;tbwLkiV=3uXN&rWI3OhjFlcy;ZwmA!uoFmY6R1-lZS+Nu zE4-%t&b^T`Vs9~cf9ScU=v7dx&Il)jDx+$x-GRYv?O_T-eL12T2BN_ z87t}$r>+o;Bw+l0@~q+-bbex`Jc#p)!JFqyp}VB|MMhE^pmW7}d=MRTq~%{0{^;(u z(*?CPRhu?#%ExDnK(Rsq*sl>Go^mVs;c+Ir9eN2b_nluopYAZ6(cQ@Jw*D#Qp@qNR zms46PDx8HY90zYR5?5f!3RKm{M5R>E9$5AZQDeNRrnOt@W*rD zn!?muZC164Qb7GE`y)Lenm%;xEaC=sfaS{I{RdyJ3M=#s>-m;#KYd$` zD0d1VR095-{~O4*uN#R|pPm50V!8NqT6=X~v)FAFJOu`i-Sc$@+c|{LUXG#@qyP(_ zK0_bF_y><3P?BytrZFt5%{Ud8-{}!w!-cs6V&_&;QuH-C&_gus9HBxtATmG#9iJZQ zC^_R|6V~6oMwT|^r8E53cOO2W)M-QsbDFwa)fv{G%Zc3sCrr!tbDX*xr^0qR@hmU_ z%pHB#0qO}zx-ndcm*Mn?`9G?vS`u3QQ zJR^jtEa!rndxiG*m~31V9rpN}3P>(b(+-@{z7VS18ivFbdXmZOSR{#K89YqV{JcAl z@^4T3zZSayd9k1KzUob;XNN)wCKJy%lbP#l@MXzwxci%a2TCB{$bxZ_rk(Z*l)XsE zb2p*Io1&Qyp92MPFY;nfAeZF9_z(9YC`?l?UjPd_e0f4Jqr7HiRmRe)G2gZupS_9u zT+tl+ruLXxpiOqlosV45HrTQi7Ayk3AJB(k>Okf znF}phF!oOdyvz^ZDWbD+D4QA*WY{D?@gXh>@2LVKf%efJ;5EQ&O5t*A@^dwU-l({f z&6Euo)sm-;0NG6aT-Pj8nD*Hej9!=)&x-J`c7QGV!109Kxbd4Ew5)~ZoA71?$Atan z6Sp?d`yalkdj+|h?)q!Jn@>$Xew_S?U5NaZ0(nLGv?gbIA7uP0qm=x(*>ymdKi2Rl z{b}p%0bwHFWxq-AcO<*EAkxn%u3f`kv@CYUB1X|rg6=Sd!|a4r9Dgm-8+z|B$e#`{ zM{9(1J{t}4KdNZ!)u1A3z40s({lKh1f=z}uA^3J~-}Za@=DUEX@Y5&^ViIgexna0U z>Gkn?2BcUBJN3IE#L=R;_r7#U=YzLa%;OGF%{ai6wUP9@tamiLsPRbO^zoLQg0-}G z_`T$JR#R@ zdO~1E&&+fb-FHmv{B?ZgerZ?kw}{#r*73_(pUPH02yGYQziqp+WLbbN26&(_{%@!; zo|;nK0F zx(T3NeuZ#_=XM3#2;vQdSC$nyI8x;hEV}ZW!BIA%-Vj8he+x~k?dZkP4rUPYKya%@ zb?3BOR|uf7^VR1C+NK|Gh~DqLAJyGcdp0c6ZRB^W`T`9YGYOk1YeHuTDcFgx;exw` z5AT#%URm|PsQxc?=iLS%EQ>pli!j4#5+BP+bQ1N?S)4y%qh6bCndcSU*Ua>G;f{z}E-!Kb)zGcPgyl6pl;6)kwIIGz$9(2PA? zn%vGDg9S0hj`PkHANuOxQ)&}2osp38)=&617>y@1chax+MF$6v!%qwJe~3w4P`UL( z^d*UUg_JNC+Wj#dop-!z8Toi8P_Hier7qhTDqyVw(E?Oj%Q&8JLlCiUtNeq|nPfIE z^6mXlL@|QX+z|j~|1MAf zFI33D^ili*`@`L(&wFYzad8Vf$ybm9>d$v6+G=WRDdW~v0vXZ&l~EP}0xv2?q&Ko2 zGG74*CQ+La2B9Z+y_&W&#m|?Xkk{~IxAwJPHUdKdof&!H|J5MYd_eW7Mp4qGgZoUm z!KlG)M4*6zxfi;G_r^y-)xu23%}tXWzcWxPQ(00Hf>Ojp4+j7>3~$OTGi!utiQ}69 zK(-ukRJJ{^7m1D>7C9q19PSB-$|bTkXyfv(@DOSK75eazH{@hPqBPyM@iW6KVS6ix zu>Xq5n^(jo9M0x|qgTSO3L(%DroXiE^iYJLClPxQjsQO^u>u&8Wyq``~NNNqS`X-Gj>wLKs&s@B?MORn%ka6t+!i?msjm>nDS5tGdd&qH{j-O|D zeSNZ(=h=%F)Y3law`n`hcC&@$S$3Z3o?kOx)6{f)i1G10i|dlp^3-e8H=acuC*Y2RlPFnok9d+_YjRj`wtrsTY+WS}eSRtuzMp*Edf=g~rTc7ank zo=*RF#ZKI-Knk)7vZyK{FHIPz7uT8nvg0{6Qt!4fzTn*CdJ+p~9XgKAr9pz76a7^r z=Q^UsCsY&%Y_UUy-9PCO@-P$)X6u6uUaPFZzRRdPl|GQ@9`&sNqZD^wr z%*RTW<1iS!?2L&Tzb8?vk=)zPH^55~{s<(}zhimbW@hdrR`(i=w&Z;K{{0gyR_M2F zd*sb=R(Gu9E7|17tXU|r4#*acBO(kK>aD3>MUb`8`X)I~>{F1i2bKqi#s5SzI)*G* z-5;mn$sy?9MstPn`6ELHV+GKZ*qbWEqrmCwr=qIL?RDfZb!fQNg8KFAZ}!skjgQ}i zu@L0!BU4ki!qIBqfdgN#Hn|qs>74TK(~0#}js=(Y$0a1N{x+7Em*>sdOK-@baHDm} zF?p69K>CX2<~Y-n+%aZ}kL1&IBm_PQ^p$ffon5c=Z1W3BQlG(q#2OKSgnb`>pYZ>- z{ChP1#-ii$=r8-Fvw20z8^V;{!mDe+Ubf3=W?Iz&&n}>$*?(~>J^kOtJ}rkF=B!2k z{5XOgejmgUJv|P9(VnJ`d92Ndhg|PUMY%eZ6qq*Y=XuT|194e+;O~obmPl%BG4OktP*hc*Kynll0bP<*z#19IZr^@ zQd?8&($v;vUbrvBswEcQTfKn@a?fA9=$LO^7E?{sUR-Xe1kd~D$M z___1eRhys59+u+0xBJ`%j)$t2;msHKiO8kii+>?w;`hW^HTKg^i}UISRI=GsxbHQu z;^cU8e*Nb4MuBd&k?Ub-~xk-X) z>5+0-dSWFAP4f0sA*B4?W@NxmH5CD`Q^AlN{W}x&AO`3dj#i| zbMZ@xgZ=PUtLgh0IrvMQo4dHt^Xa_K&kmR|3}8$6IVgm1tM$1Vt3UJvs7j-0=gyr2 zRncC%A}K1i`0+`E{W$(M^s36TPF-+tSzhKNCua_c;eyNes7TJWoSz#G`QBqc6cl%e8%Yj*I*S^=-ISX4Y zDXllO1yHc;+Bw>Ljzp5sdun}VAoPpA37qfglE&@ zIB$C5cRrQRYdj&t`lPFVbJ0;z#qAc~+AaFT|3Opdm;a(nWrr<|jpSa?E;35+KF>d==sdx%&CwfpvnN$F*} zzg27H*DBm6%$woDfm^3>>A~%Fim`?9J_YSb{32LZd{OC*oNR0-aT3`oLTQaOZ1|M z3AjN$@wMYAcc$jWlArQHH>N%ycO;S2Kdim+;Fv;7-=th09+g37m&X%}Gxf|nNu*N$ zg6gz=hbkmQk5C%T`IQtG`*40OEIcM7M;aKNOw_4Mp^K9CNmHy(D7z36WIAFdoF7emGo~%jmwU2rQaN(@H1pfzx#xZ8;K;qv;_}*QYn|@klAKUbM}}+ z^ti(1rURcSNTg!yiFaxyd`_+uB#94SF`IF=+piO|nDG0!_?eF5-P{eb*afdlJ_Pt0QLFrt{dvt&8EU>2QQHm7boA}W4X zMX+$k;NAz8?LY9Bc!jgAo;{9z{0E!gKRWl~T)(xn($pK1#fgG286U(A`E$YHmlyT- z?-6_RJ@IWYmfDC?I;Xw_74g><6)!>Ajq$x}lRKjB;O{um=#?@()FLyC-)WiYp;_!p z-PNB^W3#_CWYl$Ej&E;S)s3BDm&=YHxQZ^Fb zhc;ArI%(2t)s-eddUD)3R^@!Os5x?Zz!~Lxl3nDPreaKyAa8I2dj;BvN)I56+oM~rk zUr)DA?UF_Pa@y(7+{1}RItCUo%(Q1iw6oas&7;3W&sfuvKS_P%la5x4d}|G!E$p=t z>N;;=Vesbjt%tg|Gluh>C30qmgT!)r1{`81D`WhLB`WN=@}~^si`Mf&15Zl! zB(eTt%YKG*Z?v9E+33pi?TsRrlX~}oj>`8+TeWzVPD+2O`8=__J*H&)+t@}mi;U*m z8F~ZC^$GHh(gi;#$!`;WG=hZ1qVoEP(llpFq+e@X+_dmWzolZT?4?!ItGGY!{CVX_ z{0W&7nbbdB3N)Jh6}?tc4+Kn1$hVS0O|gXMQ6VZ?KYFrtj%&U)PmGd^(yv-fx=bQk zvDfmi!%b>6`H}~TOK$UfKC{K6|8SJHLy`5)$gYoF)Slmthc-0j#u!c=Bfo77EB2nV z+FxYGs=^9}QrwZ56yYE@=f;8q2(y^wT=YE1z@y-R)m_vb*GF@<+ek zcxzkUva$(j^OvL<-tv&>U(3JZ@ult23=2mL z3LLWgK09(({;tidT2^(9!DJjpKi^r#21-(}BvI+{RxCV2ushvCS*mFKO~c&Cnr45@ z1#O_1bfrW%Y9h7hq~)EQr+&1wIM}6E-i|h$%&ocUpBaA}Q3)z72C8|NWjtl|dybGF zkk~7HX$C5IKuR6T&o_s?@;{UF8tbFmzl(>R^Of|!Zh`!Jsq7)%16!L)TCbA-xI)*G z;S~8_*bE2vtppAHZxiC%S$SRAK~KS6=n^D3N@TU-{dJt-bO}3&+*0ypmSq zL9e|258s*{n=*XTQiyqp_OJJq;J8BMdgNFBwja)CBKZre?c8tNP7y4kG!XfwMWmT7 zJ+9=0a+`tUx28u$!~sWs{U3h%|8ip%l|BBD}!T+C+0v8kb0FK;mqN2F> z@0V_GZ-4USiPFuR?}2-N1s`B1*EK035G~C_V2byG)%QhvPmZ&m20cFl2CCosYV!Ig zWQ~Y;FbgYdS+vV3E;`Iny|d6mxyX|xUQ z;2*yODm}9&&{)8rV)sFvT+PCl>hr#J62E4A(%-&)tL^a>+yp0M(Q-8%hd0u`d;1?T znLVrOub!;aNhJCTjUO%bsB)FVyFXgA-&2jd6oKD)i=<}#h7G>>H5$R@aL{=NkVeH$ zGUsZy&WUJK#e4ACHf^fQ-5lm?e4QkI+-@R9`rNrgKJJ_hjEqJ|wkNY~Mq7H&AXuVh zFi^p}UgZpMb|zIJ)i&Ctk!JGt{c`55K{*417{4NrO7`yFoo^>*+9;r`s#^PPbiF|f za@}j)71O)^^p+>4I@#G}8rCI*)NqN4HX|>*Tz=M**|6CRZ1L~L;UjmyHz6BklHMyM z^sz8m=*W=|jaCOV(&A2qo|Tf?=~{3hdil6>ZPeYebBB5TOCCIYs8TOzRJ~96(xpq+ zopch-9as`wYQOnsPfj-0?GWR#zrVBMcPt3@1}GXuaBB&9OLh)({n6Y94qUu&!5al# zJjhYQ4Ij>;W*@hSk%+C1IK2j}8I}1R0tV;bhy?@$WX_Ldslbq)f{MDY?bH3@(oz+q ze1uJ!bR`;HDF#1Z6*?Z5_^_RYCH`u`Bg2vAj5$<`31E&S&UN?n7)|v3%)}Q$kWq$P zax`XVXYujXC46~tZEaWLb@H_7#1}05i2Gj}2uf!~PsZ3o&k`(lzs1`_^$|Kt$n`hJ#?uz7mw+%kDQ4~-1oAwglaLp!i|H8pYLW- z{BH5%QR5yStWS><8H0TCr0KWK_?(Xg~!yC38IOHRDH-`tO@3Uv;uLnyQr&@LvGB#n07-~hbqOLg= zl=#o(&)pn0-WcYa^L3-aObwHHHk&k~h;_`|^r+5ThtChz5qpu-5ZyTsMkeP>o&yI` zYCi@ZHGa{UW~$Nu61!2;=efUs^mMCJ9(^QLV0wOjzTNbsdqj6p&A2{lkl(*8{9e2; zs(GifwecIioV(vObgo^yW&mvlpVz`xJ^QdoEBQmSPherCnKV?!j8VuppvEyanf?*= z{53oo*P9Z%>@ap&0H5vP1}sP~N`Zx_n3!`->E`~N9`MR6*25t(f-oUnnYT2Vc;+dM z#G*-4nmowUKJUs0A3RufYp_;+vn`Flqx);<24==O@#7L)+Mw~n)^gc#MgvE&#R+BO zrazbG=Ba6!W3Zm3yAGb;j{VWdd+=atnnO`^7=5zNXk}Tva&$YnmRl<8K2mB)OkR~KfSwVl30~Dwaz;~Y7G{1 zXl(TK@=BcgIBwcKPfF6kzJ*^X&%*}~V&dZDutC*Rjr<j?7ABrZwT3nZ@%CocFBIC((3?#lLRw3< ztqLyos=TmHZbbJ&q395gsK+-!^<(3y}b;df6%fH{k(e3CP z7G`eh`sk6Wz2YSa3zP8;+Mz8hnwv$?!*3#Q~HP2tY8d005lZXo}-Vu2t)b@<* zivw?~{j*myYNN(?9DAzMmo=K}Thd*Lu%a1}6H(YSH?`*cWm8+8n&n0{-RyWGp>URg zy>A36>dB!7Wrb+v%9_LhM2~p&Jja}o%t2mhC3W>c+FfEp<>yg0d+${Uj)AJkJ6w9L z{HoKZP6_CKS!;^5`ThHMpVxRB1h=^(7sFL%Y7!mac!|xO^O-2-NsK}LPPC0ov%hO3 zI54fja`Who;=+fCT#P2VOr!;l-Mb~8Zs&VpJ;_&$N1EFBpHD%es`F+>%9T%)(n=>! zx}cfyVf}CyBqnjf>XioHZGX63z+rAerbwXrjz;SeiFOIn=UcQYCptp{5A*;+`)F&T?yktD+dn6f>*lj zpvORh!yYlNI^);J*}>VhuSdGYSig+Y1k>As%@ zQ!kxs6B2A2a_nuw=6vg%mu<(Vh8jMI*oNPL<@IBf&nX=naNA%9Mz7nD&n-1&55U? zP`iZvuWqv(&ztDQay$w<;T(ISOJT(u+3kyMYs8;jbkN?mZJQBHXMMPP_h4tsAGaAv zNh|UC>SJBRVsojfrh6DoxA-77G!U+1u#lW(OngoN`MFILl3w4@CeX2yJ8 zqeY}@tNa@3B{G?rOEvY$dQAI_NHs`QYjFf)3V}9XnzkGjORI zaNu^-nl269&YH|>T~w&7VP-jIa_QkzS;%qYwtN?#*L!4N^g%hquWW4SL%EEP$nBw+ zPxsddO4ds}<;QWeUZ-_B&8@qH9F-~>Yq-oEGRSwrMg2Rn#Gfzd^=nR!?_Y|Ff{^|p zN!@?&;8F9O$rq2^-35GpfLXb~yuZTkn!bKuSJ$;a1F?yLNDyDXe}7o-M@@EfvYzWs z;hV3$uW<%k{-Cci5a#WD6_j*$&Lc?ttokb0^xXL|%j$U>9eNlA*SW(Rw)2`)Pp?i{ zwVh8}0H^;4Ru&QKLq0#SFnET_%gYlh__(-=z7!TRN=G5#+k4`~FI-g9@G(O}!@ZoG zuN#ApJ<6uOdm$`)ap6ySY0}k#ABdEtcvNwVd-m+nFL*?=S6H}#@o8*H)^JmLP=3Ay z$9H!o!Lndc+sYk!Kk)Q_#9jUnx3ml^?4d;pQYrD#@e6mBW_t&#>*@wIbc&3_Q{S1l z%-OA+$x;Z2{s94on>TNcdreD2a}?*1T}zgYxz$*Ql#}ba6h=gD)g|e}3ei=X_QR=# z{no1W;>a7VX2-j^%ah>*O(dW!Ok1~J*IH#iXGd*AYC(FT_fRx$g#UW+a~X%Ksw#Ob zr8qq_`QF3s_m}%3dE1`Ef9y99L zLo8Ys*nr}p1R}{Anuf#W6o-z@5yppm93~T-CUHizq0m~8uEJ7gIdnRjENL>h#@jKsz;fSwehP%uvG z>O3c>($Etc>8+0T9621}wwTAnCOIGuGkWpu+ZU5k{`Yr3w#S^QgPctYG8b0AZ(H|w z)i#+QR{Hn9|F2Z4|4Xg-f2#;4uGK)Oa7X;*4`<%-G@;MAx0+@&z-BlpK}irU7@?5HZv3Nuz?@Kai%TVm+{$l z_@ZwiG-UiT)B0#}68Yg=Pmp;EmcZmdO-XA6CEAvLSJ1=7|6eV1cP0t593E*q6g!g` zYNegBKY#w2-PF+A&=d9p$wjQnXzGi9UWE_gDIgc^;j3pbU5g*i8p({U?QBXh|r_lZAap zkE$T9*iALusQGY15y6~T!#2&9u3|897s<84RSH~Rspi#R0#fh}(;RIUCRWx2oGZlc zz;r$;sJ=$fv%tR@A%s@vv%8 zif(0Kh@6Zf(CF&!T zDz8{i*cr6uI!w;&#}$O{ze?`&RGfPK=1u=}-f|9t$u;+%SSiRtqEP-SqBuk6tp?Hx z#v#I1QQEyu@X_RyMmZYye&&F*V6(-2WZ>M=$Rr*7imdx8PGY^pridfYLoD&-9B$3i zX?2`8&FLUkT-8dW%YY4E(*zQ;lZb(p5L#3F<+QvwP!sEq+Lu!rX=Kd?zU**JV;rD| zcuQ;B8(vVsj3P=%pXWY4uZZlkh;#2=8K2s?%aKDv zL)p~n|R9L)9%pJHP60l*?#^5Wpi z^pHy-xPs_tp_G&M33Z(7w_D=G?N&S&l9O*uCU#rJfjBf-Y+7t@Jak}VVKbnxK8upT*};APip&ek~c^B}|%#!bS%d>$6`z>Hd zw?5je!YgMJ0W9z?e|UKKDzL=@%!F>hA;i@shYwDeAfOw)%?CJY1FA??0pm1q>C&ZI z8X5t>{&pLWsystem\n' }} + {%- if messages[0]['role'] == 'system' %} + {{- messages[0]['content'] }} + {%- else %} + {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }} + {%- endif %} + {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" }} +{%- else %} + {%- if messages[0]['role'] == 'system' %} + {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }} + {%- else %} + {{- '<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- for message in messages %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %} + {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role }} + {%- if message.content %} + {{- '\n' + message.content }} + {%- endif %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '\n\n{"name": "' }} + {{- tool_call.name }} + {{- '", "arguments": ' }} + {{- tool_call.arguments | tojson }} + {{- '}\n' }} + {%- endfor %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- message.content }} + {{- '\n' }} + {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} +{%- endif %} diff --git a/checkpoint-100/chat_template.jinja b/checkpoint-100/chat_template.jinja new file mode 100644 index 0000000..bdf7919 --- /dev/null +++ b/checkpoint-100/chat_template.jinja @@ -0,0 +1,54 @@ +{%- if tools %} + {{- '<|im_start|>system\n' }} + {%- if messages[0]['role'] == 'system' %} + {{- messages[0]['content'] }} + {%- else %} + {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }} + {%- endif %} + {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" }} +{%- else %} + {%- if messages[0]['role'] == 'system' %} + {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }} + {%- else %} + {{- '<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- for message in messages %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %} + {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role }} + {%- if message.content %} + {{- '\n' + message.content }} + {%- endif %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '\n\n{"name": "' }} + {{- tool_call.name }} + {{- '", "arguments": ' }} + {{- tool_call.arguments | tojson }} + {{- '}\n' }} + {%- endfor %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- message.content }} + {{- '\n' }} + {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} +{%- endif %} diff --git a/checkpoint-100/config.json b/checkpoint-100/config.json new file mode 100644 index 0000000..c920646 --- /dev/null +++ b/checkpoint-100/config.json @@ -0,0 +1,57 @@ +{ + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": null, + "dtype": "bfloat16", + "eos_token_id": 151645, + "hidden_act": "silu", + "hidden_size": 896, + "initializer_range": 0.02, + "intermediate_size": 4864, + "layer_types": [ + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 32768, + "max_window_layers": 21, + "model_type": "qwen2", + "num_attention_heads": 14, + "num_hidden_layers": 24, + "num_key_value_heads": 2, + "pad_token_id": 151643, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 1000000.0, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.0.0", + "use_cache": false, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/checkpoint-100/generation_config.json b/checkpoint-100/generation_config.json new file mode 100644 index 0000000..d58659f --- /dev/null +++ b/checkpoint-100/generation_config.json @@ -0,0 +1,13 @@ +{ + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "repetition_penalty": 1.1, + "temperature": 0.7, + "top_k": 20, + "top_p": 0.8, + "transformers_version": "5.0.0" +} diff --git a/checkpoint-100/model.safetensors b/checkpoint-100/model.safetensors new file mode 100644 index 0000000..eb4c432 --- /dev/null +++ b/checkpoint-100/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8e93e7edb2fca3ee7153407aa68df9fc7958fcb4caf3a1343e1bc03a283184c +size 988097824 diff --git a/checkpoint-100/optimizer.pt b/checkpoint-100/optimizer.pt new file mode 100644 index 0000000..a7ad44c --- /dev/null +++ b/checkpoint-100/optimizer.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:654dbb5e5c52340fd6bbbed4076701c00ac95503d50a32b13269c616b07431da +size 1976378699 diff --git a/checkpoint-100/rng_state.pth b/checkpoint-100/rng_state.pth new file mode 100644 index 0000000..9250ddf --- /dev/null +++ b/checkpoint-100/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4562c38db0d1b4734547153fdf17fd74b325082e8fc241be1d78988aac5fdc54 +size 14645 diff --git a/checkpoint-100/scheduler.pt b/checkpoint-100/scheduler.pt new file mode 100644 index 0000000..77e7c88 --- /dev/null +++ b/checkpoint-100/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d19e9d246a3b522af1266d86db2c0a2723b502fbb6e56448bd47c5229c1fe90 +size 1465 diff --git a/checkpoint-100/tokenizer.json b/checkpoint-100/tokenizer.json new file mode 100644 index 0000000..34510ff --- /dev/null +++ b/checkpoint-100/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fd169731d2cbde95e10bf356d66d5997fd885dd8dbb6fb4684da3f23b2585d8 +size 11421892 diff --git a/checkpoint-100/tokenizer_config.json b/checkpoint-100/tokenizer_config.json new file mode 100644 index 0000000..7d75d3b --- /dev/null +++ b/checkpoint-100/tokenizer_config.json @@ -0,0 +1,29 @@ +{ + "add_prefix_space": false, + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "is_local": false, + "model_max_length": 131072, + "pad_token": "<|endoftext|>", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +} diff --git a/checkpoint-100/trainer_state.json b/checkpoint-100/trainer_state.json new file mode 100644 index 0000000..bdc568c --- /dev/null +++ b/checkpoint-100/trainer_state.json @@ -0,0 +1,304 @@ +{ + "best_global_step": null, + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 3.3333333333333335, + "eval_steps": 500, + "global_step": 100, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.8625, + "completions/max_length": 379.3, + "completions/max_terminated_length": 57.8, + "completions/mean_length": 362.7625, + "completions/mean_terminated_length": 46.4125, + "completions/min_length": 318.1, + "completions/min_terminated_length": 38.1, + "entropy": 0.5937434114515782, + "epoch": 0.3333333333333333, + "frac_reward_zero_std": 0.8, + "grad_norm": 0.0, + "learning_rate": 1.9280000000000002e-05, + "loss": -0.017474760115146638, + "num_tokens": 61847.0, + "reward": -0.0987912505865097, + "reward_std": 0.9303328216075897, + "rewards/reward_fn/mean": -0.0987912505865097, + "rewards/reward_fn/std": 0.9303328156471252, + "step": 10, + "step_time": 31.724731107300066 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 1.0, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.0, + "completions/mean_length": 400.0, + "completions/mean_terminated_length": 0.0, + "completions/min_length": 400.0, + "completions/min_terminated_length": 0.0, + "entropy": 0.6593769532628357, + "epoch": 0.6666666666666666, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.8480000000000003e-05, + "loss": 0.0, + "num_tokens": 126843.0, + "reward": 0.048249998688697816, + "reward_std": 0.8191121600568294, + "rewards/reward_fn/mean": 0.048249998688697816, + "rewards/reward_fn/std": 0.8191121838986873, + "step": 20, + "step_time": 33.554111711299946 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 49.7, + "completions/mean_length": 396.2125, + "completions/mean_terminated_length": 49.7, + "completions/min_length": 369.7, + "completions/min_terminated_length": 49.7, + "entropy": 0.5578590292367153, + "epoch": 1.0, + "frac_reward_zero_std": 0.9, + "grad_norm": 1.8046875, + "learning_rate": 1.768e-05, + "loss": -0.005067326501011849, + "num_tokens": 191538.0, + "reward": 0.11049998998641967, + "reward_std": 0.711869715154171, + "rewards/reward_fn/mean": 0.11049998998641967, + "rewards/reward_fn/std": 0.7118697345256806, + "step": 30, + "step_time": 33.49379607419994 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 1.0, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.0, + "completions/mean_length": 400.0, + "completions/mean_terminated_length": 0.0, + "completions/min_length": 400.0, + "completions/min_terminated_length": 0.0, + "entropy": 0.004339599603554234, + "epoch": 1.3333333333333333, + "frac_reward_zero_std": 0.95, + "grad_norm": 0.0, + "learning_rate": 1.688e-05, + "loss": 0.0, + "num_tokens": 256536.0, + "reward": 0.07887499779462814, + "reward_std": 0.8938172444701195, + "rewards/reward_fn/mean": 0.07887499779462814, + "rewards/reward_fn/std": 0.8938172534108162, + "step": 40, + "step_time": 33.4393088197 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9875, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.9, + "completions/mean_length": 395.1125, + "completions/mean_terminated_length": 0.9, + "completions/min_length": 360.9, + "completions/min_terminated_length": 0.9, + "entropy": 0.004430754791246727, + "epoch": 1.6666666666666665, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.384765625, + "learning_rate": 1.6080000000000002e-05, + "loss": 0.0, + "num_tokens": 321071.0, + "reward": -0.16437500417232515, + "reward_std": 1.063568216562271, + "rewards/reward_fn/mean": -0.16437500417232515, + "rewards/reward_fn/std": 1.0635682106018067, + "step": 50, + "step_time": 33.5646041849001 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 3.7, + "completions/mean_length": 385.4625, + "completions/mean_terminated_length": 3.7, + "completions/min_length": 283.7, + "completions/min_terminated_length": 3.7, + "entropy": 0.09348616125644185, + "epoch": 2.0, + "frac_reward_zero_std": 0.925, + "grad_norm": 0.0, + "learning_rate": 1.5280000000000003e-05, + "loss": 0.009755914658308029, + "num_tokens": 384804.0, + "reward": -0.16562500596046448, + "reward_std": 0.9360396310687065, + "rewards/reward_fn/mean": -0.16562500596046448, + "rewards/reward_fn/std": 0.9360396608710289, + "step": 60, + "step_time": 33.48749011520003 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.8625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 44.3, + "completions/mean_length": 351.7625, + "completions/mean_terminated_length": 42.26666679382324, + "completions/min_length": 159.8, + "completions/min_terminated_length": 39.8, + "entropy": 0.6013902719132602, + "epoch": 2.3333333333333335, + "frac_reward_zero_std": 0.925, + "grad_norm": 2.40625, + "learning_rate": 1.448e-05, + "loss": -0.011668374389410019, + "num_tokens": 445825.0, + "reward": 0.08912500143051147, + "reward_std": 0.9901719689369202, + "rewards/reward_fn/mean": 0.08912500143051147, + "rewards/reward_fn/std": 0.9901719927787781, + "step": 70, + "step_time": 33.48351585430014 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9, + "completions/max_length": 400.0, + "completions/max_terminated_length": 36.8, + "completions/mean_length": 365.4875, + "completions/mean_terminated_length": 34.75, + "completions/min_length": 192.7, + "completions/min_terminated_length": 32.7, + "entropy": 0.7647990029305219, + "epoch": 2.6666666666666665, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.0, + "learning_rate": 1.3680000000000003e-05, + "loss": 0.0, + "num_tokens": 507944.0, + "reward": -0.14375001043081284, + "reward_std": 0.6796593680977822, + "rewards/reward_fn/mean": -0.14375001043081284, + "rewards/reward_fn/std": 0.6796593815088272, + "step": 80, + "step_time": 33.443731949500034 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.95, + "completions/max_length": 400.0, + "completions/max_terminated_length": 38.7, + "completions/mean_length": 386.45, + "completions/mean_terminated_length": 35.4, + "completions/min_length": 312.1, + "completions/min_terminated_length": 32.1, + "entropy": 0.817728553712368, + "epoch": 3.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.2880000000000002e-05, + "loss": 0.0, + "num_tokens": 571920.0, + "reward": -0.09100000560283661, + "reward_std": 0.7491292104125022, + "rewards/reward_fn/mean": -0.09100000560283661, + "rewards/reward_fn/std": 0.7491292074322701, + "step": 90, + "step_time": 33.4239154713001 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.95, + "completions/max_length": 400.0, + "completions/max_terminated_length": 52.1, + "completions/mean_length": 386.5125, + "completions/mean_terminated_length": 52.1, + "completions/min_length": 292.1, + "completions/min_terminated_length": 52.1, + "entropy": 0.7871452756226063, + "epoch": 3.3333333333333335, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.2080000000000001e-05, + "loss": 0.0, + "num_tokens": 635831.0, + "reward": -0.11849999725818634, + "reward_std": 0.9780218183994294, + "rewards/reward_fn/mean": -0.11849999725818634, + "rewards/reward_fn/std": 0.9780218482017518, + "step": 100, + "step_time": 33.44708331829988 + } + ], + "logging_steps": 10, + "max_steps": 250, + "num_input_tokens_seen": 635831, + "num_train_epochs": 9, + "save_steps": 100, + "stateful_callbacks": { + "TrainerControl": { + "args": { + "should_epoch_stop": false, + "should_evaluate": false, + "should_log": false, + "should_save": true, + "should_training_stop": false + }, + "attributes": {} + } + }, + "total_flos": 0.0, + "train_batch_size": 2, + "trial_name": null, + "trial_params": null +} diff --git a/checkpoint-100/training_args.bin b/checkpoint-100/training_args.bin new file mode 100644 index 0000000..bafd374 --- /dev/null +++ b/checkpoint-100/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f0dd240a760a35edcf19bfedd721f31bea53099058c16d322d918d5f830b64a +size 7057 diff --git a/checkpoint-200/chat_template.jinja b/checkpoint-200/chat_template.jinja new file mode 100644 index 0000000..bdf7919 --- /dev/null +++ b/checkpoint-200/chat_template.jinja @@ -0,0 +1,54 @@ +{%- if tools %} + {{- '<|im_start|>system\n' }} + {%- if messages[0]['role'] == 'system' %} + {{- messages[0]['content'] }} + {%- else %} + {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }} + {%- endif %} + {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" }} +{%- else %} + {%- if messages[0]['role'] == 'system' %} + {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }} + {%- else %} + {{- '<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- for message in messages %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %} + {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role }} + {%- if message.content %} + {{- '\n' + message.content }} + {%- endif %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '\n\n{"name": "' }} + {{- tool_call.name }} + {{- '", "arguments": ' }} + {{- tool_call.arguments | tojson }} + {{- '}\n' }} + {%- endfor %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- message.content }} + {{- '\n' }} + {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} +{%- endif %} diff --git a/checkpoint-200/config.json b/checkpoint-200/config.json new file mode 100644 index 0000000..c920646 --- /dev/null +++ b/checkpoint-200/config.json @@ -0,0 +1,57 @@ +{ + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": null, + "dtype": "bfloat16", + "eos_token_id": 151645, + "hidden_act": "silu", + "hidden_size": 896, + "initializer_range": 0.02, + "intermediate_size": 4864, + "layer_types": [ + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 32768, + "max_window_layers": 21, + "model_type": "qwen2", + "num_attention_heads": 14, + "num_hidden_layers": 24, + "num_key_value_heads": 2, + "pad_token_id": 151643, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 1000000.0, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.0.0", + "use_cache": false, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/checkpoint-200/generation_config.json b/checkpoint-200/generation_config.json new file mode 100644 index 0000000..d58659f --- /dev/null +++ b/checkpoint-200/generation_config.json @@ -0,0 +1,13 @@ +{ + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "repetition_penalty": 1.1, + "temperature": 0.7, + "top_k": 20, + "top_p": 0.8, + "transformers_version": "5.0.0" +} diff --git a/checkpoint-200/model.safetensors b/checkpoint-200/model.safetensors new file mode 100644 index 0000000..280db21 --- /dev/null +++ b/checkpoint-200/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c84aba5165dfd69644cb6316f3b3375193b0efe4a622abb141bfab133699a48f +size 988097824 diff --git a/checkpoint-200/optimizer.pt b/checkpoint-200/optimizer.pt new file mode 100644 index 0000000..603372a --- /dev/null +++ b/checkpoint-200/optimizer.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6e0906cabe1f0726e51f18953c33912747a07a53f8c596be347f8bfd6de0319 +size 1976378699 diff --git a/checkpoint-200/rng_state.pth b/checkpoint-200/rng_state.pth new file mode 100644 index 0000000..fa8c43e --- /dev/null +++ b/checkpoint-200/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a48e54fd1ade1441bcc9a3da8003d35a0e81a05b41997eb4c78e53062bb68fda +size 14645 diff --git a/checkpoint-200/scheduler.pt b/checkpoint-200/scheduler.pt new file mode 100644 index 0000000..4c13763 --- /dev/null +++ b/checkpoint-200/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a23f05f4402bb7e3181df91e26f2c401cfdf935eaee7bfea5795007f352fa683 +size 1465 diff --git a/checkpoint-200/tokenizer.json b/checkpoint-200/tokenizer.json new file mode 100644 index 0000000..34510ff --- /dev/null +++ b/checkpoint-200/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fd169731d2cbde95e10bf356d66d5997fd885dd8dbb6fb4684da3f23b2585d8 +size 11421892 diff --git a/checkpoint-200/tokenizer_config.json b/checkpoint-200/tokenizer_config.json new file mode 100644 index 0000000..7d75d3b --- /dev/null +++ b/checkpoint-200/tokenizer_config.json @@ -0,0 +1,29 @@ +{ + "add_prefix_space": false, + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "is_local": false, + "model_max_length": 131072, + "pad_token": "<|endoftext|>", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +} diff --git a/checkpoint-200/trainer_state.json b/checkpoint-200/trainer_state.json new file mode 100644 index 0000000..45fea2f --- /dev/null +++ b/checkpoint-200/trainer_state.json @@ -0,0 +1,574 @@ +{ + "best_global_step": null, + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 6.666666666666667, + "eval_steps": 500, + "global_step": 200, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.8625, + "completions/max_length": 379.3, + "completions/max_terminated_length": 57.8, + "completions/mean_length": 362.7625, + "completions/mean_terminated_length": 46.4125, + "completions/min_length": 318.1, + "completions/min_terminated_length": 38.1, + "entropy": 0.5937434114515782, + "epoch": 0.3333333333333333, + "frac_reward_zero_std": 0.8, + "grad_norm": 0.0, + "learning_rate": 1.9280000000000002e-05, + "loss": -0.017474760115146638, + "num_tokens": 61847.0, + "reward": -0.0987912505865097, + "reward_std": 0.9303328216075897, + "rewards/reward_fn/mean": -0.0987912505865097, + "rewards/reward_fn/std": 0.9303328156471252, + "step": 10, + "step_time": 31.724731107300066 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 1.0, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.0, + "completions/mean_length": 400.0, + "completions/mean_terminated_length": 0.0, + "completions/min_length": 400.0, + "completions/min_terminated_length": 0.0, + "entropy": 0.6593769532628357, + "epoch": 0.6666666666666666, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.8480000000000003e-05, + "loss": 0.0, + "num_tokens": 126843.0, + "reward": 0.048249998688697816, + "reward_std": 0.8191121600568294, + "rewards/reward_fn/mean": 0.048249998688697816, + "rewards/reward_fn/std": 0.8191121838986873, + "step": 20, + "step_time": 33.554111711299946 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 49.7, + "completions/mean_length": 396.2125, + "completions/mean_terminated_length": 49.7, + "completions/min_length": 369.7, + "completions/min_terminated_length": 49.7, + "entropy": 0.5578590292367153, + "epoch": 1.0, + "frac_reward_zero_std": 0.9, + "grad_norm": 1.8046875, + "learning_rate": 1.768e-05, + "loss": -0.005067326501011849, + "num_tokens": 191538.0, + "reward": 0.11049998998641967, + "reward_std": 0.711869715154171, + "rewards/reward_fn/mean": 0.11049998998641967, + "rewards/reward_fn/std": 0.7118697345256806, + "step": 30, + "step_time": 33.49379607419994 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 1.0, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.0, + "completions/mean_length": 400.0, + "completions/mean_terminated_length": 0.0, + "completions/min_length": 400.0, + "completions/min_terminated_length": 0.0, + "entropy": 0.004339599603554234, + "epoch": 1.3333333333333333, + "frac_reward_zero_std": 0.95, + "grad_norm": 0.0, + "learning_rate": 1.688e-05, + "loss": 0.0, + "num_tokens": 256536.0, + "reward": 0.07887499779462814, + "reward_std": 0.8938172444701195, + "rewards/reward_fn/mean": 0.07887499779462814, + "rewards/reward_fn/std": 0.8938172534108162, + "step": 40, + "step_time": 33.4393088197 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9875, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.9, + "completions/mean_length": 395.1125, + "completions/mean_terminated_length": 0.9, + "completions/min_length": 360.9, + "completions/min_terminated_length": 0.9, + "entropy": 0.004430754791246727, + "epoch": 1.6666666666666665, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.384765625, + "learning_rate": 1.6080000000000002e-05, + "loss": 0.0, + "num_tokens": 321071.0, + "reward": -0.16437500417232515, + "reward_std": 1.063568216562271, + "rewards/reward_fn/mean": -0.16437500417232515, + "rewards/reward_fn/std": 1.0635682106018067, + "step": 50, + "step_time": 33.5646041849001 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 3.7, + "completions/mean_length": 385.4625, + "completions/mean_terminated_length": 3.7, + "completions/min_length": 283.7, + "completions/min_terminated_length": 3.7, + "entropy": 0.09348616125644185, + "epoch": 2.0, + "frac_reward_zero_std": 0.925, + "grad_norm": 0.0, + "learning_rate": 1.5280000000000003e-05, + "loss": 0.009755914658308029, + "num_tokens": 384804.0, + "reward": -0.16562500596046448, + "reward_std": 0.9360396310687065, + "rewards/reward_fn/mean": -0.16562500596046448, + "rewards/reward_fn/std": 0.9360396608710289, + "step": 60, + "step_time": 33.48749011520003 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.8625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 44.3, + "completions/mean_length": 351.7625, + "completions/mean_terminated_length": 42.26666679382324, + "completions/min_length": 159.8, + "completions/min_terminated_length": 39.8, + "entropy": 0.6013902719132602, + "epoch": 2.3333333333333335, + "frac_reward_zero_std": 0.925, + "grad_norm": 2.40625, + "learning_rate": 1.448e-05, + "loss": -0.011668374389410019, + "num_tokens": 445825.0, + "reward": 0.08912500143051147, + "reward_std": 0.9901719689369202, + "rewards/reward_fn/mean": 0.08912500143051147, + "rewards/reward_fn/std": 0.9901719927787781, + "step": 70, + "step_time": 33.48351585430014 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9, + "completions/max_length": 400.0, + "completions/max_terminated_length": 36.8, + "completions/mean_length": 365.4875, + "completions/mean_terminated_length": 34.75, + "completions/min_length": 192.7, + "completions/min_terminated_length": 32.7, + "entropy": 0.7647990029305219, + "epoch": 2.6666666666666665, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.0, + "learning_rate": 1.3680000000000003e-05, + "loss": 0.0, + "num_tokens": 507944.0, + "reward": -0.14375001043081284, + "reward_std": 0.6796593680977822, + "rewards/reward_fn/mean": -0.14375001043081284, + "rewards/reward_fn/std": 0.6796593815088272, + "step": 80, + "step_time": 33.443731949500034 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.95, + "completions/max_length": 400.0, + "completions/max_terminated_length": 38.7, + "completions/mean_length": 386.45, + "completions/mean_terminated_length": 35.4, + "completions/min_length": 312.1, + "completions/min_terminated_length": 32.1, + "entropy": 0.817728553712368, + "epoch": 3.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.2880000000000002e-05, + "loss": 0.0, + "num_tokens": 571920.0, + "reward": -0.09100000560283661, + "reward_std": 0.7491292104125022, + "rewards/reward_fn/mean": -0.09100000560283661, + "rewards/reward_fn/std": 0.7491292074322701, + "step": 90, + "step_time": 33.4239154713001 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.95, + "completions/max_length": 400.0, + "completions/max_terminated_length": 52.1, + "completions/mean_length": 386.5125, + "completions/mean_terminated_length": 52.1, + "completions/min_length": 292.1, + "completions/min_terminated_length": 52.1, + "entropy": 0.7871452756226063, + "epoch": 3.3333333333333335, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.2080000000000001e-05, + "loss": 0.0, + "num_tokens": 635831.0, + "reward": -0.11849999725818634, + "reward_std": 0.9780218183994294, + "rewards/reward_fn/mean": -0.11849999725818634, + "rewards/reward_fn/std": 0.9780218482017518, + "step": 100, + "step_time": 33.44708331829988 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.95, + "completions/max_length": 400.0, + "completions/max_terminated_length": 75.3, + "completions/mean_length": 389.775, + "completions/mean_terminated_length": 65.95, + "completions/min_length": 336.6, + "completions/min_terminated_length": 56.6, + "entropy": 0.8245016686618328, + "epoch": 3.6666666666666665, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.128e-05, + "loss": 0.0, + "num_tokens": 699917.0, + "reward": 0.06824999898672104, + "reward_std": 0.8597677208483219, + "rewards/reward_fn/mean": 0.06824999898672104, + "rewards/reward_fn/std": 0.8597677327692509, + "step": 110, + "step_time": 33.43369797569976 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9875, + "completions/max_length": 400.0, + "completions/max_terminated_length": 29.0, + "completions/mean_length": 398.625, + "completions/mean_terminated_length": 29.0, + "completions/min_length": 389.0, + "completions/min_terminated_length": 29.0, + "entropy": 0.8096485503017903, + "epoch": 4.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.0480000000000001e-05, + "loss": 0.0, + "num_tokens": 764733.0, + "reward": -0.05875001698732376, + "reward_std": 0.7073742881417274, + "rewards/reward_fn/mean": -0.05875001698732376, + "rewards/reward_fn/std": 0.7073742985725403, + "step": 120, + "step_time": 33.47654410239984 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 51.8, + "completions/mean_length": 391.475, + "completions/mean_terminated_length": 51.8, + "completions/min_length": 331.8, + "completions/min_terminated_length": 51.8, + "entropy": 0.8178432904183864, + "epoch": 4.333333333333333, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.0, + "learning_rate": 9.68e-06, + "loss": 0.0, + "num_tokens": 828855.0, + "reward": -0.017000006139278413, + "reward_std": 0.7560826383531094, + "rewards/reward_fn/mean": -0.017000006139278413, + "rewards/reward_fn/std": 0.7560826435685157, + "step": 130, + "step_time": 33.514995820599964 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9375, + "completions/max_length": 400.0, + "completions/max_terminated_length": 46.2, + "completions/mean_length": 380.775, + "completions/mean_terminated_length": 46.2, + "completions/min_length": 246.2, + "completions/min_terminated_length": 46.2, + "entropy": 0.8854692216962576, + "epoch": 4.666666666666667, + "frac_reward_zero_std": 0.95, + "grad_norm": 0.0, + "learning_rate": 8.880000000000001e-06, + "loss": -0.012354153394699096, + "num_tokens": 892373.0, + "reward": -0.13475000411272048, + "reward_std": 0.9627669990062714, + "rewards/reward_fn/mean": -0.13475000411272048, + "rewards/reward_fn/std": 0.9627670347690582, + "step": 140, + "step_time": 33.50577180429955 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 32.3, + "completions/mean_length": 394.275, + "completions/mean_terminated_length": 17.1, + "completions/min_length": 361.9, + "completions/min_terminated_length": 1.9, + "entropy": 0.8237141810357571, + "epoch": 5.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 8.08e-06, + "loss": 0.0, + "num_tokens": 956875.0, + "reward": -0.030000001192092896, + "reward_std": 0.7297740295529366, + "rewards/reward_fn/mean": -0.030000001192092896, + "rewards/reward_fn/std": 0.7297740370035172, + "step": 150, + "step_time": 33.46883516300004 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 38.5, + "completions/mean_length": 394.8125, + "completions/mean_terminated_length": 38.5, + "completions/min_length": 358.5, + "completions/min_terminated_length": 38.5, + "entropy": 0.9815139673650265, + "epoch": 5.333333333333333, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 7.280000000000001e-06, + "loss": 0.0, + "num_tokens": 1021402.0, + "reward": -0.06250000596046448, + "reward_std": 0.9604951858520507, + "rewards/reward_fn/mean": -0.06250000596046448, + "rewards/reward_fn/std": 0.9604952037334442, + "step": 160, + "step_time": 33.41488298210034 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 21.2, + "completions/mean_length": 392.65, + "completions/mean_terminated_length": 21.2, + "completions/min_length": 341.2, + "completions/min_terminated_length": 21.2, + "entropy": 0.9070465706288815, + "epoch": 5.666666666666667, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.0, + "learning_rate": 6.480000000000001e-06, + "loss": 0.0, + "num_tokens": 1085632.0, + "reward": -0.1513125091791153, + "reward_std": 0.855255764722824, + "rewards/reward_fn/mean": -0.1513125091791153, + "rewards/reward_fn/std": 0.8552557826042175, + "step": 170, + "step_time": 33.4777201513999 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 1.0, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.0, + "completions/mean_length": 400.0, + "completions/mean_terminated_length": 0.0, + "completions/min_length": 400.0, + "completions/min_terminated_length": 0.0, + "entropy": 0.9226562466472388, + "epoch": 6.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 5.68e-06, + "loss": 0.0, + "num_tokens": 1150692.0, + "reward": 0.08200000673532486, + "reward_std": 0.9346169531345367, + "rewards/reward_fn/mean": 0.08200000673532486, + "rewards/reward_fn/std": 0.9346169650554657, + "step": 180, + "step_time": 33.47372673979989 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 35.5, + "completions/mean_length": 394.4375, + "completions/mean_terminated_length": 35.5, + "completions/min_length": 355.5, + "completions/min_terminated_length": 35.5, + "entropy": 0.9981254413723946, + "epoch": 6.333333333333333, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.0, + "learning_rate": 4.880000000000001e-06, + "loss": 0.0, + "num_tokens": 1215133.0, + "reward": -0.08775000870227814, + "reward_std": 0.8883017361164093, + "rewards/reward_fn/mean": -0.08775000870227814, + "rewards/reward_fn/std": 0.8883017897605896, + "step": 190, + "step_time": 33.41868621859985 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9875, + "completions/max_length": 400.0, + "completions/max_terminated_length": 30.4, + "completions/mean_length": 398.8, + "completions/mean_terminated_length": 30.4, + "completions/min_length": 390.4, + "completions/min_terminated_length": 30.4, + "entropy": 0.9789559677243233, + "epoch": 6.666666666666667, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 4.08e-06, + "loss": 0.0, + "num_tokens": 1279879.0, + "reward": -0.03525000065565109, + "reward_std": 0.8935358546674251, + "rewards/reward_fn/mean": -0.03525000065565109, + "rewards/reward_fn/std": 0.8935358554124833, + "step": 200, + "step_time": 33.424166100800086 + } + ], + "logging_steps": 10, + "max_steps": 250, + "num_input_tokens_seen": 1279879, + "num_train_epochs": 9, + "save_steps": 100, + "stateful_callbacks": { + "TrainerControl": { + "args": { + "should_epoch_stop": false, + "should_evaluate": false, + "should_log": false, + "should_save": true, + "should_training_stop": false + }, + "attributes": {} + } + }, + "total_flos": 0.0, + "train_batch_size": 2, + "trial_name": null, + "trial_params": null +} diff --git a/checkpoint-200/training_args.bin b/checkpoint-200/training_args.bin new file mode 100644 index 0000000..bafd374 --- /dev/null +++ b/checkpoint-200/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f0dd240a760a35edcf19bfedd721f31bea53099058c16d322d918d5f830b64a +size 7057 diff --git a/checkpoint-250/chat_template.jinja b/checkpoint-250/chat_template.jinja new file mode 100644 index 0000000..bdf7919 --- /dev/null +++ b/checkpoint-250/chat_template.jinja @@ -0,0 +1,54 @@ +{%- if tools %} + {{- '<|im_start|>system\n' }} + {%- if messages[0]['role'] == 'system' %} + {{- messages[0]['content'] }} + {%- else %} + {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }} + {%- endif %} + {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" }} +{%- else %} + {%- if messages[0]['role'] == 'system' %} + {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }} + {%- else %} + {{- '<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- for message in messages %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %} + {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role }} + {%- if message.content %} + {{- '\n' + message.content }} + {%- endif %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '\n\n{"name": "' }} + {{- tool_call.name }} + {{- '", "arguments": ' }} + {{- tool_call.arguments | tojson }} + {{- '}\n' }} + {%- endfor %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- message.content }} + {{- '\n' }} + {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} +{%- endif %} diff --git a/checkpoint-250/config.json b/checkpoint-250/config.json new file mode 100644 index 0000000..c920646 --- /dev/null +++ b/checkpoint-250/config.json @@ -0,0 +1,57 @@ +{ + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": null, + "dtype": "bfloat16", + "eos_token_id": 151645, + "hidden_act": "silu", + "hidden_size": 896, + "initializer_range": 0.02, + "intermediate_size": 4864, + "layer_types": [ + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 32768, + "max_window_layers": 21, + "model_type": "qwen2", + "num_attention_heads": 14, + "num_hidden_layers": 24, + "num_key_value_heads": 2, + "pad_token_id": 151643, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 1000000.0, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.0.0", + "use_cache": false, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/checkpoint-250/generation_config.json b/checkpoint-250/generation_config.json new file mode 100644 index 0000000..d58659f --- /dev/null +++ b/checkpoint-250/generation_config.json @@ -0,0 +1,13 @@ +{ + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "repetition_penalty": 1.1, + "temperature": 0.7, + "top_k": 20, + "top_p": 0.8, + "transformers_version": "5.0.0" +} diff --git a/checkpoint-250/model.safetensors b/checkpoint-250/model.safetensors new file mode 100644 index 0000000..76221d2 --- /dev/null +++ b/checkpoint-250/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f6ecf368a5199e23b82403ab68284fec38fb1f66520d261e9e8cb1f6b4ede31 +size 988097824 diff --git a/checkpoint-250/optimizer.pt b/checkpoint-250/optimizer.pt new file mode 100644 index 0000000..12e76a9 --- /dev/null +++ b/checkpoint-250/optimizer.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d8ddb2a1eae3170886a27db3b5ac9bf3aedea6f613bc1f3564d112947682900 +size 1976378699 diff --git a/checkpoint-250/rng_state.pth b/checkpoint-250/rng_state.pth new file mode 100644 index 0000000..48234c3 --- /dev/null +++ b/checkpoint-250/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:979e24915498a0c3479f76d4e80c72ae05419a1971ce8f05dcfdb1d82b4c524f +size 14645 diff --git a/checkpoint-250/scheduler.pt b/checkpoint-250/scheduler.pt new file mode 100644 index 0000000..811ded8 --- /dev/null +++ b/checkpoint-250/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b04611bea80597dee677a377375d057cf3fa3437fb4ed8809d4662285b8811b +size 1465 diff --git a/checkpoint-250/tokenizer.json b/checkpoint-250/tokenizer.json new file mode 100644 index 0000000..34510ff --- /dev/null +++ b/checkpoint-250/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fd169731d2cbde95e10bf356d66d5997fd885dd8dbb6fb4684da3f23b2585d8 +size 11421892 diff --git a/checkpoint-250/tokenizer_config.json b/checkpoint-250/tokenizer_config.json new file mode 100644 index 0000000..7d75d3b --- /dev/null +++ b/checkpoint-250/tokenizer_config.json @@ -0,0 +1,29 @@ +{ + "add_prefix_space": false, + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "is_local": false, + "model_max_length": 131072, + "pad_token": "<|endoftext|>", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +} diff --git a/checkpoint-250/trainer_state.json b/checkpoint-250/trainer_state.json new file mode 100644 index 0000000..a4a59c0 --- /dev/null +++ b/checkpoint-250/trainer_state.json @@ -0,0 +1,709 @@ +{ + "best_global_step": null, + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 8.333333333333334, + "eval_steps": 500, + "global_step": 250, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.8625, + "completions/max_length": 379.3, + "completions/max_terminated_length": 57.8, + "completions/mean_length": 362.7625, + "completions/mean_terminated_length": 46.4125, + "completions/min_length": 318.1, + "completions/min_terminated_length": 38.1, + "entropy": 0.5937434114515782, + "epoch": 0.3333333333333333, + "frac_reward_zero_std": 0.8, + "grad_norm": 0.0, + "learning_rate": 1.9280000000000002e-05, + "loss": -0.017474760115146638, + "num_tokens": 61847.0, + "reward": -0.0987912505865097, + "reward_std": 0.9303328216075897, + "rewards/reward_fn/mean": -0.0987912505865097, + "rewards/reward_fn/std": 0.9303328156471252, + "step": 10, + "step_time": 31.724731107300066 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 1.0, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.0, + "completions/mean_length": 400.0, + "completions/mean_terminated_length": 0.0, + "completions/min_length": 400.0, + "completions/min_terminated_length": 0.0, + "entropy": 0.6593769532628357, + "epoch": 0.6666666666666666, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.8480000000000003e-05, + "loss": 0.0, + "num_tokens": 126843.0, + "reward": 0.048249998688697816, + "reward_std": 0.8191121600568294, + "rewards/reward_fn/mean": 0.048249998688697816, + "rewards/reward_fn/std": 0.8191121838986873, + "step": 20, + "step_time": 33.554111711299946 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 49.7, + "completions/mean_length": 396.2125, + "completions/mean_terminated_length": 49.7, + "completions/min_length": 369.7, + "completions/min_terminated_length": 49.7, + "entropy": 0.5578590292367153, + "epoch": 1.0, + "frac_reward_zero_std": 0.9, + "grad_norm": 1.8046875, + "learning_rate": 1.768e-05, + "loss": -0.005067326501011849, + "num_tokens": 191538.0, + "reward": 0.11049998998641967, + "reward_std": 0.711869715154171, + "rewards/reward_fn/mean": 0.11049998998641967, + "rewards/reward_fn/std": 0.7118697345256806, + "step": 30, + "step_time": 33.49379607419994 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 1.0, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.0, + "completions/mean_length": 400.0, + "completions/mean_terminated_length": 0.0, + "completions/min_length": 400.0, + "completions/min_terminated_length": 0.0, + "entropy": 0.004339599603554234, + "epoch": 1.3333333333333333, + "frac_reward_zero_std": 0.95, + "grad_norm": 0.0, + "learning_rate": 1.688e-05, + "loss": 0.0, + "num_tokens": 256536.0, + "reward": 0.07887499779462814, + "reward_std": 0.8938172444701195, + "rewards/reward_fn/mean": 0.07887499779462814, + "rewards/reward_fn/std": 0.8938172534108162, + "step": 40, + "step_time": 33.4393088197 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9875, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.9, + "completions/mean_length": 395.1125, + "completions/mean_terminated_length": 0.9, + "completions/min_length": 360.9, + "completions/min_terminated_length": 0.9, + "entropy": 0.004430754791246727, + "epoch": 1.6666666666666665, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.384765625, + "learning_rate": 1.6080000000000002e-05, + "loss": 0.0, + "num_tokens": 321071.0, + "reward": -0.16437500417232515, + "reward_std": 1.063568216562271, + "rewards/reward_fn/mean": -0.16437500417232515, + "rewards/reward_fn/std": 1.0635682106018067, + "step": 50, + "step_time": 33.5646041849001 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 3.7, + "completions/mean_length": 385.4625, + "completions/mean_terminated_length": 3.7, + "completions/min_length": 283.7, + "completions/min_terminated_length": 3.7, + "entropy": 0.09348616125644185, + "epoch": 2.0, + "frac_reward_zero_std": 0.925, + "grad_norm": 0.0, + "learning_rate": 1.5280000000000003e-05, + "loss": 0.009755914658308029, + "num_tokens": 384804.0, + "reward": -0.16562500596046448, + "reward_std": 0.9360396310687065, + "rewards/reward_fn/mean": -0.16562500596046448, + "rewards/reward_fn/std": 0.9360396608710289, + "step": 60, + "step_time": 33.48749011520003 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.8625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 44.3, + "completions/mean_length": 351.7625, + "completions/mean_terminated_length": 42.26666679382324, + "completions/min_length": 159.8, + "completions/min_terminated_length": 39.8, + "entropy": 0.6013902719132602, + "epoch": 2.3333333333333335, + "frac_reward_zero_std": 0.925, + "grad_norm": 2.40625, + "learning_rate": 1.448e-05, + "loss": -0.011668374389410019, + "num_tokens": 445825.0, + "reward": 0.08912500143051147, + "reward_std": 0.9901719689369202, + "rewards/reward_fn/mean": 0.08912500143051147, + "rewards/reward_fn/std": 0.9901719927787781, + "step": 70, + "step_time": 33.48351585430014 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9, + "completions/max_length": 400.0, + "completions/max_terminated_length": 36.8, + "completions/mean_length": 365.4875, + "completions/mean_terminated_length": 34.75, + "completions/min_length": 192.7, + "completions/min_terminated_length": 32.7, + "entropy": 0.7647990029305219, + "epoch": 2.6666666666666665, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.0, + "learning_rate": 1.3680000000000003e-05, + "loss": 0.0, + "num_tokens": 507944.0, + "reward": -0.14375001043081284, + "reward_std": 0.6796593680977822, + "rewards/reward_fn/mean": -0.14375001043081284, + "rewards/reward_fn/std": 0.6796593815088272, + "step": 80, + "step_time": 33.443731949500034 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.95, + "completions/max_length": 400.0, + "completions/max_terminated_length": 38.7, + "completions/mean_length": 386.45, + "completions/mean_terminated_length": 35.4, + "completions/min_length": 312.1, + "completions/min_terminated_length": 32.1, + "entropy": 0.817728553712368, + "epoch": 3.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.2880000000000002e-05, + "loss": 0.0, + "num_tokens": 571920.0, + "reward": -0.09100000560283661, + "reward_std": 0.7491292104125022, + "rewards/reward_fn/mean": -0.09100000560283661, + "rewards/reward_fn/std": 0.7491292074322701, + "step": 90, + "step_time": 33.4239154713001 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.95, + "completions/max_length": 400.0, + "completions/max_terminated_length": 52.1, + "completions/mean_length": 386.5125, + "completions/mean_terminated_length": 52.1, + "completions/min_length": 292.1, + "completions/min_terminated_length": 52.1, + "entropy": 0.7871452756226063, + "epoch": 3.3333333333333335, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.2080000000000001e-05, + "loss": 0.0, + "num_tokens": 635831.0, + "reward": -0.11849999725818634, + "reward_std": 0.9780218183994294, + "rewards/reward_fn/mean": -0.11849999725818634, + "rewards/reward_fn/std": 0.9780218482017518, + "step": 100, + "step_time": 33.44708331829988 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.95, + "completions/max_length": 400.0, + "completions/max_terminated_length": 75.3, + "completions/mean_length": 389.775, + "completions/mean_terminated_length": 65.95, + "completions/min_length": 336.6, + "completions/min_terminated_length": 56.6, + "entropy": 0.8245016686618328, + "epoch": 3.6666666666666665, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.128e-05, + "loss": 0.0, + "num_tokens": 699917.0, + "reward": 0.06824999898672104, + "reward_std": 0.8597677208483219, + "rewards/reward_fn/mean": 0.06824999898672104, + "rewards/reward_fn/std": 0.8597677327692509, + "step": 110, + "step_time": 33.43369797569976 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9875, + "completions/max_length": 400.0, + "completions/max_terminated_length": 29.0, + "completions/mean_length": 398.625, + "completions/mean_terminated_length": 29.0, + "completions/min_length": 389.0, + "completions/min_terminated_length": 29.0, + "entropy": 0.8096485503017903, + "epoch": 4.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.0480000000000001e-05, + "loss": 0.0, + "num_tokens": 764733.0, + "reward": -0.05875001698732376, + "reward_std": 0.7073742881417274, + "rewards/reward_fn/mean": -0.05875001698732376, + "rewards/reward_fn/std": 0.7073742985725403, + "step": 120, + "step_time": 33.47654410239984 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 51.8, + "completions/mean_length": 391.475, + "completions/mean_terminated_length": 51.8, + "completions/min_length": 331.8, + "completions/min_terminated_length": 51.8, + "entropy": 0.8178432904183864, + "epoch": 4.333333333333333, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.0, + "learning_rate": 9.68e-06, + "loss": 0.0, + "num_tokens": 828855.0, + "reward": -0.017000006139278413, + "reward_std": 0.7560826383531094, + "rewards/reward_fn/mean": -0.017000006139278413, + "rewards/reward_fn/std": 0.7560826435685157, + "step": 130, + "step_time": 33.514995820599964 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9375, + "completions/max_length": 400.0, + "completions/max_terminated_length": 46.2, + "completions/mean_length": 380.775, + "completions/mean_terminated_length": 46.2, + "completions/min_length": 246.2, + "completions/min_terminated_length": 46.2, + "entropy": 0.8854692216962576, + "epoch": 4.666666666666667, + "frac_reward_zero_std": 0.95, + "grad_norm": 0.0, + "learning_rate": 8.880000000000001e-06, + "loss": -0.012354153394699096, + "num_tokens": 892373.0, + "reward": -0.13475000411272048, + "reward_std": 0.9627669990062714, + "rewards/reward_fn/mean": -0.13475000411272048, + "rewards/reward_fn/std": 0.9627670347690582, + "step": 140, + "step_time": 33.50577180429955 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 32.3, + "completions/mean_length": 394.275, + "completions/mean_terminated_length": 17.1, + "completions/min_length": 361.9, + "completions/min_terminated_length": 1.9, + "entropy": 0.8237141810357571, + "epoch": 5.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 8.08e-06, + "loss": 0.0, + "num_tokens": 956875.0, + "reward": -0.030000001192092896, + "reward_std": 0.7297740295529366, + "rewards/reward_fn/mean": -0.030000001192092896, + "rewards/reward_fn/std": 0.7297740370035172, + "step": 150, + "step_time": 33.46883516300004 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 38.5, + "completions/mean_length": 394.8125, + "completions/mean_terminated_length": 38.5, + "completions/min_length": 358.5, + "completions/min_terminated_length": 38.5, + "entropy": 0.9815139673650265, + "epoch": 5.333333333333333, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 7.280000000000001e-06, + "loss": 0.0, + "num_tokens": 1021402.0, + "reward": -0.06250000596046448, + "reward_std": 0.9604951858520507, + "rewards/reward_fn/mean": -0.06250000596046448, + "rewards/reward_fn/std": 0.9604952037334442, + "step": 160, + "step_time": 33.41488298210034 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 21.2, + "completions/mean_length": 392.65, + "completions/mean_terminated_length": 21.2, + "completions/min_length": 341.2, + "completions/min_terminated_length": 21.2, + "entropy": 0.9070465706288815, + "epoch": 5.666666666666667, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.0, + "learning_rate": 6.480000000000001e-06, + "loss": 0.0, + "num_tokens": 1085632.0, + "reward": -0.1513125091791153, + "reward_std": 0.855255764722824, + "rewards/reward_fn/mean": -0.1513125091791153, + "rewards/reward_fn/std": 0.8552557826042175, + "step": 170, + "step_time": 33.4777201513999 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 1.0, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.0, + "completions/mean_length": 400.0, + "completions/mean_terminated_length": 0.0, + "completions/min_length": 400.0, + "completions/min_terminated_length": 0.0, + "entropy": 0.9226562466472388, + "epoch": 6.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 5.68e-06, + "loss": 0.0, + "num_tokens": 1150692.0, + "reward": 0.08200000673532486, + "reward_std": 0.9346169531345367, + "rewards/reward_fn/mean": 0.08200000673532486, + "rewards/reward_fn/std": 0.9346169650554657, + "step": 180, + "step_time": 33.47372673979989 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.975, + "completions/max_length": 400.0, + "completions/max_terminated_length": 35.5, + "completions/mean_length": 394.4375, + "completions/mean_terminated_length": 35.5, + "completions/min_length": 355.5, + "completions/min_terminated_length": 35.5, + "entropy": 0.9981254413723946, + "epoch": 6.333333333333333, + "frac_reward_zero_std": 0.975, + "grad_norm": 0.0, + "learning_rate": 4.880000000000001e-06, + "loss": 0.0, + "num_tokens": 1215133.0, + "reward": -0.08775000870227814, + "reward_std": 0.8883017361164093, + "rewards/reward_fn/mean": -0.08775000870227814, + "rewards/reward_fn/std": 0.8883017897605896, + "step": 190, + "step_time": 33.41868621859985 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9875, + "completions/max_length": 400.0, + "completions/max_terminated_length": 30.4, + "completions/mean_length": 398.8, + "completions/mean_terminated_length": 30.4, + "completions/min_length": 390.4, + "completions/min_terminated_length": 30.4, + "entropy": 0.9789559677243233, + "epoch": 6.666666666666667, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 4.08e-06, + "loss": 0.0, + "num_tokens": 1279879.0, + "reward": -0.03525000065565109, + "reward_std": 0.8935358546674251, + "rewards/reward_fn/mean": -0.03525000065565109, + "rewards/reward_fn/std": 0.8935358554124833, + "step": 200, + "step_time": 33.424166100800086 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 57.2, + "completions/mean_length": 392.15, + "completions/mean_terminated_length": 57.2, + "completions/min_length": 337.2, + "completions/min_terminated_length": 57.2, + "entropy": 0.9129896691069007, + "epoch": 7.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 3.2800000000000004e-06, + "loss": 0.0, + "num_tokens": 1344343.0, + "reward": -0.011500009894371032, + "reward_std": 0.8285948574543, + "rewards/reward_fn/mean": -0.011500009894371032, + "rewards/reward_fn/std": 0.8285948634147644, + "step": 210, + "step_time": 33.59373969100034 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 1.0, + "completions/max_length": 400.0, + "completions/max_terminated_length": 0.0, + "completions/mean_length": 400.0, + "completions/mean_terminated_length": 0.0, + "completions/min_length": 400.0, + "completions/min_terminated_length": 0.0, + "entropy": 0.960437498241663, + "epoch": 7.333333333333333, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 2.4800000000000004e-06, + "loss": 0.0, + "num_tokens": 1409195.0, + "reward": 0.018250004947185518, + "reward_std": 0.8383742928504944, + "rewards/reward_fn/mean": 0.018250004947185518, + "rewards/reward_fn/std": 0.8383742868900299, + "step": 220, + "step_time": 33.32045125410023 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9875, + "completions/max_length": 400.0, + "completions/max_terminated_length": 19.6, + "completions/mean_length": 397.45, + "completions/mean_terminated_length": 19.6, + "completions/min_length": 379.6, + "completions/min_terminated_length": 19.6, + "entropy": 0.9672328025102616, + "epoch": 7.666666666666667, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 1.6800000000000002e-06, + "loss": 0.0, + "num_tokens": 1473919.0, + "reward": -0.11225000917911529, + "reward_std": 0.8593939155340194, + "rewards/reward_fn/mean": -0.11225000917911529, + "rewards/reward_fn/std": 0.8593939125537873, + "step": 230, + "step_time": 33.41978766690026 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 36.1, + "completions/mean_length": 389.5125, + "completions/mean_terminated_length": 36.1, + "completions/min_length": 316.1, + "completions/min_terminated_length": 36.1, + "entropy": 1.013204599916935, + "epoch": 8.0, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 8.8e-07, + "loss": 0.0, + "num_tokens": 1538120.0, + "reward": -0.015000000596046448, + "reward_std": 0.9198581218719483, + "rewards/reward_fn/mean": -0.015000000596046448, + "rewards/reward_fn/std": 0.9198581159114838, + "step": 240, + "step_time": 33.588851060100204 + }, + { + "clip_ratio/high_max": 0.0, + "clip_ratio/high_mean": 0.0, + "clip_ratio/low_mean": 0.0, + "clip_ratio/low_min": 0.0, + "clip_ratio/region_mean": 0.0, + "completions/clipped_ratio": 0.9625, + "completions/max_length": 400.0, + "completions/max_terminated_length": 54.6, + "completions/mean_length": 391.825, + "completions/mean_terminated_length": 54.6, + "completions/min_length": 334.6, + "completions/min_terminated_length": 54.6, + "entropy": 0.9223409309983254, + "epoch": 8.333333333333334, + "frac_reward_zero_std": 1.0, + "grad_norm": 0.0, + "learning_rate": 8e-08, + "loss": 0.0, + "num_tokens": 1602540.0, + "reward": 0.044499991834163664, + "reward_std": 0.8610172867774963, + "rewards/reward_fn/mean": 0.044499991834163664, + "rewards/reward_fn/std": 0.8610173106193543, + "step": 250, + "step_time": 33.55163867890042 + } + ], + "logging_steps": 10, + "max_steps": 250, + "num_input_tokens_seen": 1602540, + "num_train_epochs": 9, + "save_steps": 100, + "stateful_callbacks": { + "TrainerControl": { + "args": { + "should_epoch_stop": false, + "should_evaluate": false, + "should_log": false, + "should_save": true, + "should_training_stop": true + }, + "attributes": {} + } + }, + "total_flos": 0.0, + "train_batch_size": 2, + "trial_name": null, + "trial_params": null +} diff --git a/checkpoint-250/training_args.bin b/checkpoint-250/training_args.bin new file mode 100644 index 0000000..bafd374 --- /dev/null +++ b/checkpoint-250/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f0dd240a760a35edcf19bfedd721f31bea53099058c16d322d918d5f830b64a +size 7057 diff --git a/config.json b/config.json new file mode 100644 index 0000000..c920646 --- /dev/null +++ b/config.json @@ -0,0 +1,57 @@ +{ + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": null, + "dtype": "bfloat16", + "eos_token_id": 151645, + "hidden_act": "silu", + "hidden_size": 896, + "initializer_range": 0.02, + "intermediate_size": 4864, + "layer_types": [ + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 32768, + "max_window_layers": 21, + "model_type": "qwen2", + "num_attention_heads": 14, + "num_hidden_layers": 24, + "num_key_value_heads": 2, + "pad_token_id": 151643, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 1000000.0, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "transformers_version": "5.0.0", + "use_cache": false, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..d58659f --- /dev/null +++ b/generation_config.json @@ -0,0 +1,13 @@ +{ + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "repetition_penalty": 1.1, + "temperature": 0.7, + "top_k": 20, + "top_p": 0.8, + "transformers_version": "5.0.0" +} diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..76221d2 --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f6ecf368a5199e23b82403ab68284fec38fb1f66520d261e9e8cb1f6b4ede31 +size 988097824 diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..34510ff --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fd169731d2cbde95e10bf356d66d5997fd885dd8dbb6fb4684da3f23b2585d8 +size 11421892 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..7d75d3b --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,29 @@ +{ + "add_prefix_space": false, + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "is_local": false, + "model_max_length": 131072, + "pad_token": "<|endoftext|>", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +} diff --git a/training_args.bin b/training_args.bin new file mode 100644 index 0000000..bafd374 --- /dev/null +++ b/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f0dd240a760a35edcf19bfedd721f31bea53099058c16d322d918d5f830b64a +size 7057