
    ;i)                         S SK r S SKrSSKJrJr  SSKJrJr  SSKJ	r	  SSK
Jr  SSKJrJrJrJrJrJrJr  \	" 5       (       a  S SKrS	 rS
 rS rg)    N   ) SAGEMAKER_PARALLEL_EC2_INSTANCESTORCH_DYNAMO_MODES)ComputeEnvironmentSageMakerDistributedType)is_boto3_available   )SageMakerConfig)DYNAMO_BACKENDS
_ask_field_ask_options_convert_dynamo_backend_convert_mixed_precision#_convert_sagemaker_distributed_mode_convert_yes_no_to_boolc           	      T   [         R                  " S5      nSSSS0SS./S.n UR                  U [        R                  " US	S
9S9  SS/ SQSS./S.nUR                  U U  S3[        R                  " US	S
9S9  g ! UR                  R                   a    [        SU  S35         g f = f)Niamz
2012-10-17AllowServicezsagemaker.amazonaws.comzsts:AssumeRole)Effect	PrincipalAction)Version	Statement   )indent)RoleNameAssumeRolePolicyDocument)zsagemaker:*zecr:GetDownloadUrlForLayerzecr:BatchGetImagezecr:BatchCheckLayerAvailabilityzecr:GetAuthorizationTokenzcloudwatch:PutMetricDatazcloudwatch:GetMetricDatazcloudwatch:GetMetricStatisticszcloudwatch:ListMetricszlogs:CreateLogGroupzlogs:CreateLogStreamzlogs:DescribeLogStreamszlogs:PutLogEventszlogs:GetLogEventszs3:CreateBucketzs3:ListBucketzs3:GetBucketLocationzs3:GetObjectzs3:PutObject*)r   r   Resource_policy_permission)r   
PolicyNamePolicyDocumentzrole z# already exists. Using existing one)	boto3clientcreate_rolejsondumpsput_role_policy
exceptionsEntityAlreadyExistsExceptionprint)	role_name
iam_clientsagemaker_trust_policypolicy_documents       t/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/accelerate/commands/config/sagemaker.py_create_iam_role_for_sagemakerr2   &   s    e$J  i9R-S_op
*FDZcd9e 	 	
 $ &* !$/
> 	""#$67::oa@ 	# 	

   == Fi[ CDEFs   AA; ;)B'&B'c                 X    [         R                  " S5      nUR                  U S9S   S   $ )Nr   )r   RoleArn)r$   r%   get_role)r-   r.   s     r1   _get_iam_role_arnr7   \   s.    e$J	26:5AA    c                  "   [        SSS/[        5      n S nU S:X  a  [        SSS9nU[        R                  S'   OG[        S	5        [        S
5      nU[        R                  S'   [        S5      nU[        R                  S'   [        SSS9nU[        R                  S'   [        SSS/[        5      nUS:X  a  [        S5      nOSn[        SU S35        [        U5        [        S[        SSS9nS nU(       a  [        SS 5      n[        S[        SSS9n	S n
U	(       a  [        SS  5      n
[        S![        SSS9nS nU(       a  [        S"S# 5      n[        S$S%S&/[        5      n0 n[        S'[        SSS9nU(       a  S(n[        S)[         Vs/ s H  nUR                  5       PM     sn[        S*S9UUS+-   '   [        S,[        SSS9nU(       aY  [        S-[        S. SS9UUS/-   '   [        S0[        SSS9UUS1-   '   [        S2[        SSS9UUS3-   '   [        S4[        SSS9UUS5-   '   S6nU[        R                  :w  a  [        U[        S7 5      nOUS8-  n[        US9 S:S9nSnU[        R                  :w  a  [        S;[        SSS9nS<nU[        R                   [        R"                  4;   a  [        S=[        S<S9n[        S>/ S?Q[$        5      nU(       a  US@:X  a  [        SA5        ['        U[(        R*                  USUUUUUUUU
UUSB9$ s  snf )CNzHow do you want to authorize?zAWS Profilez7Credentials (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) r   z'Enter your AWS Profile name: [default] default)r:   AWS_PROFILEzNote you will need to provide AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY when you launch you training script with,`accelerate launch --aws_access_key_id XXX --aws_secret_access_key YYY`zAWS Access Key ID: AWS_ACCESS_KEY_IDzAWS Secret Access Key: AWS_SECRET_ACCESS_KEYz"Enter your AWS Region: [us-east-1]z	us-east-1AWS_DEFAULT_REGIONzMDo you already have an IAM Role for executing Amazon SageMaker Training Jobs?zProvide IAM Role namez%Create new IAM role using credentialszEnter your IAM role name: #accelerate_sagemaker_execution_rolez$Accelerate will create an iam role "z " using the provided credentialsz2Do you want to use custom Docker image? [yes/NO]: FzPlease enter yes or no.)r:   error_messagezEnter your Docker image: c                 4    [        U 5      R                  5       $ Nstrlowerxs    r1   <lambda>%get_sagemaker_input.<locals>.<lambda>   s    Qr8   zODo you want to provide SageMaker input channels with data locations? [yes/NO]: z\Enter the path to the SageMaker inputs TSV file with columns (channel_name, data_location): c                 4    [        U 5      R                  5       $ rB   rC   rF   s    r1   rH   rI          c!fllnr8   z3Do you want to enable SageMaker metrics? [yes/NO]: z[Enter the path to the SageMaker metrics TSV file with columns (metric_name, metric_regex): c                 4    [        U 5      R                  5       $ rB   rC   rF   s    r1   rH   rI      rK   r8   zWhat is the distributed mode?zNo distributed trainingzData parallelismz?Do you wish to optimize your script with torch dynamo?[yes/NO]:dynamo_z+Which dynamo backend would you like to use?r   backendzGDo you want to customize the defaults sent to torch.compile? [yes/NO]: zWhich mode do you want to use?c                 &    [         [        U 5         $ rB   )r   intrF   s    r1   rH   rI      s    ,SV4r8   modez\Do you want the fullgraph mode or it is ok to break model into several subgraphs? [yes/NO]: use_fullgraphz7Do you want to enable dynamic shape tracing? [yes/NO]: use_dynamicz6Do you want to enable regional compilation? [yes/NO]: use_regional_compilationz:Which EC2 instance type you want to use for your training?c                 &    [         [        U 5         $ rB   )r   rP   rF   s    r1   rH   rI      s    LlmpqrmsLtr8   z? [ml.p3.2xlarge]:c                 4    [        U 5      R                  5       $ rB   rC   rF   s    r1   rH   rI      s    SV\\^r8   zml.p3.2xlargezShould distributed operations be checked while running for errors? This can avoid timeout issues but will be slower. [yes/NO]: r	   z(How many machines do you want use? [1]: z2Do you wish to use FP16 or BF16 (mixed precision)?)nofp16bf16fp8rW   zTorch dynamo used without mixed precision requires TF32 to be efficient. Accelerate will enable it by default when launching your scripts.)	image_uricompute_environmentdistributed_typeuse_cpudynamo_configec2_instance_typeprofileregioniam_role_namemixed_precisionnum_machinessagemaker_inputs_filesagemaker_metrics_filedebug)r   rP   r   osenvironr,   r2   r   r   r   rE   r   r   r   NOr   DATA_PARALLELMODEL_PARALLELr   r
   r   AMAZON_SAGEMAKER)credentials_configurationaws_profileaws_access_key_idaws_secret_access_key
aws_regionrole_managementrc   is_custom_docker_imagedocker_imageis_sagemaker_inputs_enabledrf   is_sagemaker_metrics_enabledrg   r]   r_   
use_dynamoprefixrG   use_custom_optionsec2_instance_queryr`   rh   re   rd   s                           r1   get_sagemaker_inputr}   a   s    ,'	QR!
 K A% !JT]^$/

=!V	
 ''<=*;

&' *+D E.C

*+@+VJ'1BJJ#$"W	 "IJO
 !"#?@=4]OCcde&}5'</	 L!"=?WX",Y/	# !" *j$!

 $.=/	$  "#!+i$"

 $'	"$67+
 MI/	J ,89 /01QWWY0#	-
fy() (U#3	
 -90"4!	.M&6/* 7An'7	7M&?23 5?I'7	5M&=01 BLH'7	BM&#==> V3666( @Bt
 	22&'9;S]lmE3666 N#3	
 L4BBD\DkDkll!6
 #<% O o- Y	
 .??)#+#'!35 U 1s   L
)r'   ri   utils.constantsr   r   utils.dataclassesr   r   utils.importsr   config_argsr
   config_utilsr   r   r   r   r   r   r   r$   r2   r7   r}    r8   r1   <module>r      sI      	 S M / (   3FlB
qr8   