ó
    Eñi¡'  ã                   óÔ  • S SK r S SKrS SKJr  S SKJr  S SKJrJr  S SK	r	SSK
JrJrJr  SSKJrJrJr  \R$                  R'                  \R(                  R+                  S\R$                  R-                  \R(                  R+                  S	S
5      S5      5      5      r\R$                  R-                  \S5      r\R$                  R-                  \S5      r\R$                  R-                  \S5      r\R$                  R7                  \5      (       d   \R$                  R7                  \5      (       d  \rO\rS r\ " S S5      5       r\ " S S\5      5       r\ " S S\5      5       r g)é    N)Ú	dataclass)ÚEnum)ÚOptionalÚUnioné   )ÚComputeEnvironmentÚDistributedTypeÚSageMakerDistributedType)ÚSAGEMAKER_PYTHON_VERSIONÚSAGEMAKER_PYTORCH_VERSIONÚSAGEMAKER_TRANSFORMERS_VERSIONÚHF_HOMEÚXDG_CACHE_HOMEz~/.cacheÚhuggingfaceÚ
acceleratezdefault_config.yamlc                 óŒ  • U b4  [         R                  R                  U 5      (       d  [        SU  S35      eO[        n [        U SS9 nU R                  S5      (       ak  [        R                  " U5      R                  S[        R                  5      [        R                  :X  a  [        nO[        nUR                  U S9sS S S 5        $ [        R                   " U5      R                  S[        R                  5      [        R                  :X  a  [        nO[        nUR#                  U S9sS S S 5        $ ! , (       d  f       g = f)	NzThe passed configuration file `zÃ` does not exist. Please pass an existing file to `accelerate launch`, or use the default one created through `accelerate config` and run `accelerate launch` without the `--config_file` argument.úutf-8©Úencodingz.jsonÚcompute_environment)Ú	json_file)Ú	yaml_file)ÚosÚpathÚisfileÚFileNotFoundErrorÚdefault_config_fileÚopenÚendswithÚjsonÚloadÚgetr   ÚLOCAL_MACHINEÚClusterConfigÚSageMakerConfigÚfrom_json_fileÚyamlÚ	safe_loadÚfrom_yaml_file)Úconfig_fileÚfÚconfig_classs      Úc/home/mande/repo/quber/.venv/lib/python3.13/site-packages/accelerate/commands/config/config_args.pyÚload_config_from_filer.   +   s  € ØÑÜ�w‰w�~‰~˜k×*Ñ*Ü#Ø1°+°ð ?8ð 8óð ð +ô *ˆÜ	ˆk GÒ	,°Ø×Ñ ×(Ñ(ä—	’	˜!“× Ñ Ð!6Ô8J×8XÑ8XÓYÜ%×3Ñ3ó4ô  -‘ä.�Ø×.Ñ.¸Ð.ÐE÷ 
-Ñ	,ô —’˜qÓ!×%Ñ%Ð&;Ô=O×=]Ñ=]Ó^Ü%×3Ñ3ó4ô  -‘ä.�Ø×.Ñ.¸Ð.ÐE÷% 
-×	,×	,ús   ÁA8D5Ã
A!D5Ä5
Ec                   ó¢   • \ rS rSr% \\S'   \\\4   \S'   \	\S'   \
\S'   \
\S'   S r\S 5       r\SS
 j5       rS r\SS j5       rS rS rSrg	)Ú
BaseConfigéK   r   Údistributed_typeÚmixed_precisionÚuse_cpuÚdebugc                 óÐ   ^• U R                   nU4S jmUR                  5        H  u  p#T" U5      X'   M     UR                  5        VVs0 s H  u  pEUc  M
  XE_M     nnnU$ s  snnf )Nc                 óÜ   >• [        U [        5      (       a  U R                  $ [        U [        5      (       a4  [	        U 5      (       d  g U R                  5        H  u  pT" U5      X'   M     U $ ©N)Ú
isinstancer   ÚvalueÚdictÚboolÚitems)r:   Úkey1Úvalue1Ú_convert_enumss      €r-   r@   Ú*BaseConfig.to_dict.<locals>._convert_enumsW   sV   ø€ Ü˜%¤×&Ñ&Ø—{‘{Ð"Ü˜%¤×&Ñ&Ü˜E—{‘{ØØ$)§K¡K¦M‘L�DÙ"0°Ó"8�E“Kñ %2àˆLó    )Ú__dict__r=   )ÚselfÚresultÚkeyr:   ÚkÚvr@   s         @r-   Úto_dictÚBaseConfig.to_dictS   s^   ø€ Ø—‘ˆõ	ð !Ÿ,™,ž.‰JˆCÙ(¨Ó/ˆF‹Kñ )à#)§<¡<¤>ÔC¢>™4˜1°Q“$�!’$¡>ˆÑCØˆùó Ds   Á
	A"ÁA"c                 óx  • SU ;  a  [         R                  U S'   SU ;  a  [        S5      eSU ;  a  U S   [        R                  :X  a  SU S'   SU ;  a  SU ;   a  U S   (       a  SOSU S'   SU ;   a  U S	 S	U ;   a   U R                  S	5      nUS
:X  a  0 OS	U0U S'   SU ;  a  SU S'   SU ;  a  SU S'   SU ;  a  SU S'   U $ )zF
Processes `config_dict` and sets default values for any missing keys
r   r2   z:A `distributed_type` must be specified in the config file.Únum_processesé   r3   Úfp16NÚdynamo_backendÚNOÚdynamo_configr4   Fr5   Úenable_cpu_affinity)r   r#   Ú
ValueErrorr	   rP   Úpop)Úconfig_dictrO   s     r-   Úprocess_configÚBaseConfig.process_configf   sû   € ð
 !¨Ó3Ü1C×1QÑ1QˆKÐ-Ñ.Ø [Ó0ÜÐYÓZÐZØ +Ó-°+Ð>PÑ2QÔUd×UgÑUgÓ2gØ+,ˆK˜Ñ(Ø KÓ/Ø8>À+Ó8MÐR]Ð^d×Re©VÐlpˆKÐ)Ñ*Ø�[Ó Ø˜FÐ#Ø˜{Ó*Ø(Ÿ_™_Ð-=Ó>ˆNØ1?À4Ó1G©2ÐN^Ð`nÐMoˆK˜Ñ(Ø˜KÓ'Ø%*ˆK˜	Ñ"Ø˜+Ó%Ø#(ˆK˜Ñ Ø ¨Ó3Ø16ˆKÐ-Ñ.ØÐrB   Nc                 óŒ  • Uc  [         OUn[        USS9 n[        R                  " U5      nS S S 5        U R	                  W5      n[        [        UR                  5       5      [        U R                  R                  5       5      -
  5      n[        U5      S:”  a  [        SU SU S35      eU " S0 UD6$ ! , (       d  f       NŽ= f©Nr   r   r   zThe config file at z had unknown keys (zs), please try upgrading your `accelerate` version or fix (and potentially remove) these keys from your config file.© )Údefault_json_config_filer   r    r!   rV   ÚsortedÚsetÚkeysÚ__dataclass_fields__ÚlenrS   )Úclsr   r+   rU   Ú
extra_keyss        r-   r&   ÚBaseConfig.from_json_file€   s»   € à09Ñ0AÕ,Àyˆ	Ü�) gÒ.°!ÜŸ)š) A›,ˆK÷ /à×(Ñ(¨Ó5ˆÜœC × 0Ñ 0Ó 2Ó3´c¸#×:RÑ:R×:WÑ:WÓ:YÓ6ZÑZÓ[ˆ
Üˆz‹?˜QÓÜØ% i [Ð0CÀJÀ<ð P]ð ]óð ñ
 Ñ!�[Ñ!Ð!÷ /Õ.úó   –B5Â5
Cc                 ó¾   • [        USSS9 n[        R                  " U R                  5       SSS9S-   nUR	                  U5        S S S 5        g ! , (       d  f       g = f)NÚwr   r   é   T)ÚindentÚ	sort_keysÚ
)r   r    ÚdumpsrI   Úwrite)rD   r   r+   Úcontents       r-   Úto_json_fileÚBaseConfig.to_json_file�   sE   € Ü�)˜S¨7Ò3°qÜ—j’j §¡£¸ÀTÑJÈTÑQˆGØ�G‰G�GÔ÷ 4×3Ö3ús   Œ9AÁ
Ac                 óŒ  • Uc  [         OUn[        USS9 n[        R                  " U5      nS S S 5        U R	                  W5      n[        [        UR                  5       5      [        U R                  R                  5       5      -
  5      n[        U5      S:”  a  [        SU SU S35      eU " S0 UD6$ ! , (       d  f       NŽ= frY   )Údefault_yaml_config_filer   r'   r(   rV   r\   r]   r^   r_   r`   rS   )ra   r   r+   rU   rb   s        r-   r)   ÚBaseConfig.from_yaml_file”   s¼   € à09Ñ0AÕ,Àyˆ	Ü�) gÒ.°!ÜŸ.š.¨Ó+ˆK÷ /à×(Ñ(¨Ó5ˆÜœC × 0Ñ 0Ó 2Ó3´c¸#×:RÑ:R×:WÑ:WÓ:YÓ6ZÑZÓ[ˆ
Üˆz‹?˜QÓÜØ% i [Ð0CÀJÀ<ð P]ð ]óð ñ Ñ!�[Ñ!Ð!÷ /Õ.úrd   c                 ó˜   • [        USSS9 n[        R                  " U R                  5       U5        S S S 5        g ! , (       d  f       g = f)Nrf   r   r   )r   r'   Ú	safe_dumprI   )rD   r   r+   s      r-   Úto_yaml_fileÚBaseConfig.to_yaml_file¢   s0   € Ü�)˜S¨7Ò3°qÜ�NŠN˜4Ÿ<™<›>¨1Ô-÷ 4×3Ö3ús	   Œ&;»
A	c                 ó†  • [        U R                  [        5      (       a  [        U R                  5      U l        [        U R                  [        5      (       aS  U R                  [        R
                  :X  a  [        U R                  5      U l        O[        U R                  5      U l        [        U SS 5      c  0 U l	        g g )NrQ   )
r9   r   Ústrr   r2   ÚAMAZON_SAGEMAKERr
   r	   ÚgetattrrQ   )rD   s    r-   Ú__post_init__ÚBaseConfig.__post_init__¦   s’   € Ü�d×.Ñ.´×4Ñ4Ü'9¸$×:RÑ:RÓ'SˆDÔ$Ü�d×+Ñ+¬S×1Ñ1Ø×'Ñ'Ô+=×+NÑ+NÓNÜ(@À×AVÑAVÓ(W�Õ%ä(7¸×8MÑ8MÓ(N�Ô%Ü�4˜¨$Ó/Ñ7Ø!#ˆDÕð 8rB   )r   r2   rQ   r8   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__annotations__r   r	   r
   rx   r<   rI   ÚstaticmethodrV   Úclassmethodr&   rn   r)   ru   r{   Ú__static_attributes__rZ   rB   r-   r0   r0   K   sy   ‡ à+Ó+Ø˜OÐ-EÐEÑFÓFØÓØƒMØƒKòð& ñó ðð2 ó"ó ð"òð
 ó"ó ð"ò.õ	$rB   r0   c                   ó  ^ • \ rS rSr% Sr\\S'   Sr\\S'   Sr\\S'   Sr	\
\   \S	'   Sr\
\   \S
'   Sr\
\   \S'   Sr\
\   \S'   Sr\
\   \S'   Sr\\S'   Sr\\S'   Sr\
\   \S'   Sr\
\   \S'   Sr\
\   \S'   Sr\
\   \S'   Sr\
\   \S'   Sr\
\   \S'   Sr\\S'   Sr\
\   \S'   Sr\
\   \S'   Sr\\S'   Sr\\S'   Sr\
\   \S'   Sr \!\   \S'   Sr"\!\   \S '   Sr#\!\   \S!'   Sr$\
\   \S"'   U 4S# jr%S$r&U =r'$ )%r$   é²   éÿÿÿÿrL   r   Úmachine_rankrM   Únum_machinesNÚgpu_idsÚmain_process_ipÚmain_process_portÚstaticÚrdzv_backendFÚsame_networkÚmainÚmain_training_functionrR   Ú
fp8_configÚdeepspeed_configÚfsdp_configÚparallelism_configÚmegatron_lm_configÚmpirun_configÚdowncast_bf16Útpu_nameÚtpu_zoneÚtpu_use_clusterÚtpu_use_sudoÚcommand_fileÚcommandsÚtpu_vmÚtpu_envrQ   c                 ó  >• U R                   c  0 U l         U R                  c  0 U l        U R                  c  0 U l        U R                  c  0 U l        U R                  c  0 U l        U R
                  c  0 U l        [        TU ]  5       $ r8   )r“   r”   r–   r—   r’   r•   Úsuperr{   )rD   Ú	__class__s    €r-   r{   ÚClusterConfig.__post_init__Û   s†   ø€ Ø× Ñ Ñ(Ø$&ˆDÔ!Ø×ÑÑ#Ø!ˆDÔØ×"Ñ"Ñ*Ø&(ˆDÔ#Ø×ÑÑ%Ø!#ˆDÔØ�?‰?Ñ"Ø ˆDŒOØ×"Ñ"Ñ*Ø&(ˆDÔ#Ü‰wÑ$Ó&Ð&rB   )r“   r’   r”   r–   r—   r•   )(r}   r~   r   r€   rL   Úintr�   rˆ   r‰   rŠ   r   rx   r‹   rŒ   rŽ   r�   r<   r‘   rR   r’   r;   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   ÚlistrŸ   r    rQ   r{   r„   Ú__classcell__)r£   s   @r-   r$   r$   ²   se  ø‡ à€M�3ÓØ€L�#ÓØ€L�#ÓØ!€GˆX�c‰]Ó!Ø%)€O�X˜c‘]Ó)Ø'+Ð�x ‘}Ó+Ø"*€L�(˜3‘-Ó*Ø#(€L�(˜4‘.Ó(Ø"(Ð˜CÓ(Ø %Ð˜Ó%ð "&€J�˜‘Ó%à'+Ð�h˜t‘nÓ+à"&€K�˜$‘Ó&à)-Ð˜ ™Ó-à)-Ð˜ ™Ó-à$(€M�8˜D‘>Ó(à€M�4Óð #€Hˆh�s‰mÓ"Ø"€Hˆh�s‰mÓ"Ø!€O�TÓ!Ø€L�$ÓØ"&€L�(˜3‘-Ó&Ø€Hˆd�3‰iÓØ€FˆD�‰IÓØ€GˆT�#‰YÓð %)€M�8˜D‘>Ó(÷'ó 'rB   r$   c                   ó  • \ rS rSr% \\S'   \\S'   Sr\\   \S'   Sr\\   \S'   Sr	\\S'   S	r
\\S
'   Sr\\S'   S\
 3r\\S'   \r\\S'   \r\\S'   \r\\S'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\S'   Srg)r%   éë   Úec2_instance_typeÚiam_role_nameNÚ	image_uriÚprofilez	us-east-1ÚregionrM   r‰   ÚallrŠ   zaccelerate-sagemaker-Úbase_job_nameÚpytorch_versionÚtransformers_versionÚ
py_versionÚsagemaker_inputs_fileÚsagemaker_metrics_fileÚadditional_argsrQ   FrR   rZ   )r}   r~   r   r€   rx   r�   r¬   r   r­   r®   r‰   r¥   rŠ   r°   r   r±   r   r²   r   r³   r´   rµ   r¶   r;   rQ   rR   r<   r„   rZ   rB   r-   r%   r%   ë   s½   ‡ àÓØÓØ#€Iˆx˜‰}Ó#Ø!€GˆX�c‰]Ó!Ø€FˆCÓØ€L�#ÓØ€GˆSÓØ0°°Ð?€M�3Ó?Ø4€O�SÓ4Ø >Ð˜#Ó>Ø.€J�Ó.Ø+/Ð˜8 C™=Ó/Ø,0Ð˜H S™MÓ0Ø&*€O�X˜d‘^Ó*Ø$(€M�8˜D‘>Ó(Ø %Ð˜Ö%rB   r%   )!r    r   Údataclassesr   Úenumr   Útypingr   r   r'   Úutilsr   r	   r
   Úutils.constantsr   r   r   r   Ú
expanduserÚenvironr"   ÚjoinÚhf_cache_homeÚ	cache_dirr[   rq   r   r   r.   r0   r$   r%   rZ   rB   r-   Ú<module>rÁ      s?  ðó" Û 	Ý !Ý ß "ã ç RÑ Rß rÑ rð —‘×"Ñ"Ø‡J�J‡N�N�9˜bŸg™gŸl™l¨2¯:©:¯>©>Ð:JÈJÓ+WÐYfÓgÓhó€ð �G‰G�L‰L˜¨Ó5€	ØŸ7™7Ÿ<™<¨	Ð3HÓIÐ ØŸ7™7Ÿ<™<¨	Ð3HÓIÐ ð ‡7�7‡>�>Ð*×+Ñ+°2·7±7·>±>ÐBZ×3[Ñ3[Ø2Ñà2ÐòFð@ ÷c$ð c$ó ðc$ðL ô5'�Jó 5'ó ð5'ðp ô&�jó &ó ñ&rB   