+
     °³j^  ã                   ó(  € ^ RI t ^ RIt^ RIt^ RIHt ^ RIt^ RIHt ^ RIH	t	H
t
 ^ RIHt ^ RIHtHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHtHtHt ]P:                  ! ]P<                  R7       ]! 4       t ! R R]P@                  PB                  4      t"R t#R t$R t%R t&R t'R t(R t)R t*R t+],R8X  Ed   ]#! 4       w  t-t.t/]/P`                  ^8”  dã    ]! R4      t1]1Pe                  4       '       g   ]1Pg                  RRR7       ]$! ]/]-4      t-]/Pi                  4        ] Pj                  ! 4        ]! ].]/]-]14       ]/Pi                  4        ](! ]-]14       ])! ]-]14       ]*! ]-]14       ]+! ]-]14        ]/Pn                  '       d   ]Pp                  ! ]14       ]/Pi                  4        ]/Ps                  4        R# R# R#   ]6 d    h i ; i  ]/Pn                  '       d   ]Pp                  ! ]14       ]/Pi                  4        ]/Ps                  4        i ; i)é    N)ÚPath)Ú	load_file)ÚShardingStrategyÚStateDictType)Ú
DataLoader)ÚAcceleratorÚFullyShardedDataParallelPlugin)Úmerge_commandÚmerge_command_parser)ÚAcceleratorState)Útorch_device)ÚRegressionDataset)Úmerge_fsdp_weightsÚpatch_environmentÚsave_fsdp_model)Úlevelc                   ó8   a a€ ] tR t^&t oV 3R ltR tRtVtV ;t# )Ú	TinyModelc                óD  <€ \         SV `  4        \        P                  P	                  ^^4      V n        \        P                  P                  4       V n        \        P                  P	                  ^^4      V n        \        P                  P                  4       V n
        R# )é   N)ÚsuperÚ__init__ÚtorchÚnnÚLinearÚlinear1ÚReLUÚ
activationÚlinear2ÚSoftmaxÚsoftmax)ÚselfÚ	__class__s   &€Úq/home/luca/screen-checking/.venv/lib/python3.14/site-packages/accelerate/test_utils/scripts/test_merge_weights.pyr   ÚTinyModel.__init__'   s_   ø€ Ü‰ÑÔÜ—x‘x—‘ r¨2Ó.ˆŒÜŸ(™(Ÿ-™-›/ˆŒÜ—x‘x—‘ r¨2Ó.ˆŒÜ—x‘x×'Ñ'Ó)ˆŽó    c                ó`   € V P                  V P                  V P                  V4      4      4      # )N)r   r   r   )r"   Úxs   &&r$   ÚforwardÚTinyModel.forward.   s"   € Ø�|‰|˜DŸO™O¨D¯L©L¸«OÓ<Ó=Ð=r&   )r   r   r   r!   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r)   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r#   Ú__classdict__s   @@r$   r   r   &   s   ù‡ € õ*÷>ò >r&   r   c                  ó†  € \         P                  / 8w  d   \        4       P                  4        \        \        P
                  \        P                  R 7      p \        4       p\        RR7      ;_uu_ 4        V P                  V4       RRR4       \        V R7      pVP                  V4      pWV3#   + '       g   i     L1; i))Úsharding_strategyÚstate_dict_typeÚSIZE_BASED_WRAP)Úfsdp_auto_wrap_policyN)Úfsdp_plugin)r   Ú_shared_stateÚ_reset_stater	   r   Ú
FULL_SHARDr   ÚSHARDED_STATE_DICTr   r   Úset_auto_wrap_policyr   Úprepare)ÚpluginÚmodelÚaccelerators      r$   ÚsetuprB   2   s’   € Ü×%Ñ%¨Ô+ÜÓ×'Ñ'Ô)Ü+Ü*×5Ñ5Ä}×GgÑGgô€Fô ‹K€EÜ	Ð1B×	CÖ	CØ×#Ñ# EÔ*÷ 
Dä¨&Ô1€KØ×Ñ Ó&€EØ˜+Ð%Ð%÷	 
D×	Cús   Á5B0Â0C 	c                 óÚ  € \        ^€^*R7      p\        V^RR7      p\        P                  P	                  VP                  4       RR7      pV P                  W1V4      w  r1p\        ^4       F|  pV Fs  pVP                  4        V! VR,          4      p\        P                  P                  P                  WvR,          4      pV P                  V4       VP                  4        Ku  	  K~  	  V# )é€   )ÚlengthÚseedF)Ú
batch_sizeÚshufflegš™™™™™¹?)Úlrr(   Úy)r   r   r   ÚoptimÚSGDÚ
parametersr>   ÚrangeÚ	zero_gradr   Ú
functionalÚmse_lossÚbackwardÚstep)	rA   r@   Ú	train_setÚtrain_dlÚ	optimizerÚ_ÚbatchÚoutputÚlosss	   &&       r$   Úmock_trainingr[   @   s¿   € Ü!¨°2Ô6€IÜ˜)°¸EÔB€HÜ—‘—‘ × 0Ñ 0Ó 2°s�Ó;€Ià!,×!4Ñ!4°XÀiÓ!PÑ€H�YÜ�1ŽXˆÛˆEØ�O‰OÔÙ˜5 �:Ó&ˆFÜ—8‘8×&Ñ&×/Ñ/°¸c½
ÓCˆDØ× Ñ  Ô&Ø�N‰NÖó ñ ð €Lr&   c                 óò   € \        VP                  4       VP                  4       4       FJ  w  r4V R 8X  d!   \        P                  ! W44      '       g   Q hK,  \        P                  ! W44      '       g   KJ  Q h	  R# )ÚsameN)ÚzipÚvaluesr   Úallclose)Ú	operationÚstate_1Ústate_2Úweight_1Úweight_2s   &&&  r$   Úcheck_weightsrf   P   sW   € Ü! '§.¡.Ó"2°G·N±NÓ4DÖEÑˆØ˜ÔÜ—>’> (×5Ò5Ð5Ò5ä—~’~ h×9Ô9Ð9Ð9ó	 Fr&   c                 ó*  € \        V R ,          4      p\        4       P                  \        4      p\	        RVP                  4       VP                  4       4       VP                  V4       \	        RVP                  4       VP                  4       4       R# )zmodel.safetensorsÚdiffr]   N)r   r   Útor   rf   Ú
state_dictÚload_state_dict)Úpathr@   Úsafe_state_dictÚsafe_loaded_models   &&  r$   Úcheck_safetensors_weightsro   X   so   € Ü Ð':Õ :Ó;€OÜ!›Ÿ™¤|Ó4ÐÜ�&˜%×*Ñ*Ó,Ð.?×.JÑ.JÓ.LÔMØ×%Ñ% oÔ6Ü�&˜%×*Ñ*Ó,Ð.?×.JÑ.JÓ.LÖMr&   c                 óD  € \         P                  ! V R ,          RR7      p\        4       P                  \        4      p\        RVP                  4       VP                  4       4       VP                  V4       \        RVP                  4       VP                  4       4       R# )zpytorch_model.binT)Úweights_onlyrh   r]   N)r   Úloadr   ri   r   rf   rj   rk   )rl   r@   Únonsafe_state_dictÚnonsafe_loaded_models   &&  r$   Úcheck_pytorch_weightsru   `   sw   € ÜŸš DÐ+>Õ$>ÈTÔRÐÜ$›;Ÿ>™>¬,Ó7ÐÜ�&˜%×*Ñ*Ó,Ð.B×.MÑ.MÓ.OÔPØ×(Ñ(Ð);Ô<Ü�&˜%×*Ñ*Ó,Ð.B×.MÑ.MÓ.OÖPr&   c                 óF   € \        VR ,          VRR7       \        W4       R# )Úpytorch_model_fsdp_0T©Úsafe_serializationN)r   ro   ©r@   rl   s   &&r$   Útest_merge_weights_safetensorsr{   h   s   € ä�tÐ4Õ4°dÈtÕTÜ˜dÖ*r&   c                 ó’   € \         P                  \        VR ,          4      \        V4      .4      p\        V4       \	        W4       R# )rw   N)ÚparserÚ
parse_argsÚstrr
   ro   ©r@   rl   Úargss   && r$   Ú&test_merge_weights_command_safetensorsr‚   n   s6   € Ü×Ñœc $Ð)?Õ"?Ó@Ä#ÀdÃ)ÐLÓM€DÜ�$ÔÜ˜dÖ*r&   c                 óF   € \        VR ,          VRR7       \        W4       R# )rw   Frx   N)r   ru   rz   s   &&r$   Útest_merge_weights_pytorchr„   t   s   € ä�tÐ4Õ4°dÈuÕUÜ˜$Ö&r&   c                 ó”   € \         P                  \        VR ,          4      \        V4      R.4      p\        V4       \	        W4       R# )rw   z--unsafe_serializationN)r}   r~   r   r
   ru   r€   s   && r$   Ú"test_merge_weights_command_pytorchr†   z   s9   € Ü×Ñœc $Ð)?Õ"?Ó@Ä#ÀdÃ)ÐMeÐfÓg€DÜ�$ÔÜ˜$Ö&r&   Ú__main__Útest_merge_weights_fsdp_weightsT)ÚparentsÚexist_ok):ÚgcÚloggingÚshutilÚpathlibr   r   Úsafetensors.torchr   Ú2torch.distributed.fsdp.fully_sharded_data_parallelr   r   Útorch.utils.datar   Ú
accelerater   r	   Úaccelerate.commands.merger
   r   Úaccelerate.stater   Úaccelerate.test_utilsr   Úaccelerate.test_utils.trainingr   Úaccelerate.utilsr   r   r   ÚbasicConfigÚINFOr}   r   ÚModuler   rB   r[   rf   ro   ru   r{   r‚   r„   r†   r+   r@   r?   rA   Únum_processesÚout_pathÚexistsÚmkdirÚwait_for_everyoneÚcollectÚ	ExceptionÚis_main_processÚrmtreeÚend_training© r&   r$   Ú<module>r¦      sÐ  ðó 
Û Û Ý ã Ý 'ß ^Ý 'ç Bß IÝ -Ý .Ý <ß SÑ Sð × Ò ˜'Ÿ,™,Õ 'á	Ó	€ô	>�—‘—‘ô 	>ò&òò :òNòQò+ò+ò'ò'ð ˆzÕá!&£Ñ€Eˆ6�;Ø× Ñ  1Ô$ð	'áÐ=Ó>ˆHØ—?‘?×$Ò$Ø—‘ t°d�Ô;ñ " +¨uÓ5ˆEØ×)Ñ)Ô+à�JŠJŒLÙ˜F K°¸ÔAØ×)Ñ)Ô+ñ +¨5°(Ô;Ù2°5¸(ÔCÙ& u¨hÔ7Ù.¨u°hÕ?ð
 ×*×*Ð*Ø—’˜hÔ'Ø×)Ñ)Ô+Ø×$Ñ$Ö&ñ7 %ñ øð. ô 	Øð	ûð ×*×*Ð*Ø—’˜hÔ'Ø×)Ñ)Ô+Ø×$Ñ$Õ&ús   ÃBF? Æ?	GÇG ÇAH