
    /h8                         S SK rS SKrS SKJr  S SKJr   " S S5      r " S S\R                  R                  5      r
 " S S	\R                  R                  5      rSS
\4S jjrSS
\4S jjrg)    N)
DataLoader)DistributedTypec                   *    \ rS rSrSS jrS rS rSrg)RegressionDataset   Nc                 <   [         R                  R                  U5      nX0l        UR	                  U4S9R                  [         R                  5      U l        XR                  -  U-   UR	                  SU4S9R                  [         R                  5      -   U l        g )N)sizeg?)scaler	   )	nprandomdefault_rnglengthnormalastypefloat32xy)selfabr   seedrngs         X/home/james-whalen/.local/lib/python3.13/site-packages/accelerate/test_utils/training.py__init__RegressionDataset.__init__   sr    ii##D)&+222::>VVa#**3fY*"G"N"Nrzz"ZZ    c                     U R                   $ N)r   )r   s    r   __len__RegressionDataset.__len__   s    {{r   c                 @    U R                   U   U R                  U   S.$ )Nr   r   r"   )r   is     r   __getitem__RegressionDataset.__getitem__    s    VVAYTVVAY//r   )r   r   r   )      @   N)__name__
__module____qualname____firstlineno__r   r   r$   __static_attributes__ r   r   r   r      s    [0r   r   c                   6   ^  \ rS rSrSU 4S jjrSS jrSrU =r$ )RegressionModel4XPU$   c                 P  > [         TU ]  5         [        R                  R	                  [        R
                  " SS/5      R                  5       5      U l        [        R                  R	                  [        R
                  " SS/5      R                  5       5      U l        SU l	        g )Nr&   r'   T
superr   torchnn	Parametertensorfloatr   r   first_batchr   r   r   double_output	__class__s       r   r   RegressionModel4XPU.__init__%   sn    ##ELL!Q$8$>$>$@A##ELL!Q$8$>$>$@Ar   c                     U R                   (       aM  [        SU R                  R                   SU R                  R                   SUR                   35        SU l         XR                  S   -  U R                  S   -   $ )NModel dtype: , . Input dtype: Fr   r:   printr   dtyper   r   r   s     r   forwardRegressionModel4XPU.forward+   s_    M$&&,,r$&&,,qwwiXY$D66!9}tvvay((r   r   r   r:   r   r   Fr   r)   r*   r+   r,   r   rG   r-   __classcell__r=   s   @r   r0   r0   $   s     ) )r   r0   c                   6   ^  \ rS rSrSU 4S jjrSS jrSrU =r$ )RegressionModel2   c                 H  > [         TU ]  5         [        R                  R	                  [        R
                  " U5      R                  5       5      U l        [        R                  R	                  [        R
                  " U5      R                  5       5      U l        SU l	        g )NTr3   r;   s       r   r   RegressionModel.__init__3   sd    ##ELLO$9$9$;<##ELLO$9$9$;<r   c                     U R                   (       aM  [        SU R                  R                   SU R                  R                   SUR                   35        SU l         XR                  -  U R                  -   $ )Nr@   rA   rB   FrC   rF   s     r   rG   RegressionModel.forward9   sW    M$&&,,r$&&,,qwwiXY$D66zDFF""r   rI   rJ   r   rK   rM   s   @r   rO   rO   2   s     # #r   rO   
batch_sizec                 R  ^ ^^ SSK Jn  SSKJn  UR	                  S5      mSSS.nU" SUS	9nUS
   R                  S5      n[        U5       VVs0 s H  u  pxX_M	     snnmUU4S jn	UR                  U	S/ SQS9n
U U4S jn[        U
S
   SUSS9n[        U
S   SUSS9nX4$ s  snnf )Nr   load_datasetAutoTokenizerzbert-base-cased!tests/test_samples/MRPC/train.csvtests/test_samples/MRPC/dev.csvtrain
validationcsv
data_filesr^   labelc                 v   > T" U S   U S   SS SS9nSU ;   a  U S    Vs/ s H  nTU   PM
     snUS'   U$ s  snf )N	sentence1	sentence2T
max_length)
truncationrg   paddingrc   labelsr.   )examplesoutputsllabel_to_id	tokenizers      r   tokenize_function-mocked_dataloaders.<locals>.tokenize_functionK   s]    [!8K#8TVZdp
 h9A'9J K9JAQ9J KGH !Ls   6Tre   rf   rc   batchedremove_columnsc                    > TR                   [        R                  :X  a  TR                  U SSSS9$ TR                  U SSS9$ )Nrg      pt)ri   rg   return_tensorslongest)ri   ry   )distributed_typer   XLApad)rk   acceleratorro   s    r   
collate_fn&mocked_dataloaders.<locals>.collate_fn[   sD    ''?+>+>>==<C`d=ee}}Xy}NNr   r&   shuffler   rU   r_   F   )	datasetsrX   transformersrZ   from_pretrainedunique	enumeratemapr   )r~   rU   rX   rZ   rb   r   
label_listr#   vrp   tokenized_datasetsr   train_dataloadereval_dataloaderrn   ro   s   `             @@r   mocked_dataloadersr   @   s    %*--.?@I>NopJEj9H'"))'2J$-j$9:$9DA14$9:K ": & O ""4W"=tXbopq !3L!A5]gtuvO,,9 ;s   B#c                 P  ^ ^ SSK Jn  SSKJn  UR	                  S5      mTR
                  Tl        SSS.nU" SUS	9nU4S
 jnT R                  5          UR                  US/ SQS9nS S S 5        U U4S jn[        WS   SUSS9n	[        US   SUSS9n
X4$ ! , (       d  f       N6= f)Nr   rW   rY   zHuggingFaceTB/SmolLM-360Mr[   r\   r]   r`   ra   c                     > T" U S   SS SS9nU$ )Nre   TF)rh   rg   return_attention_maskr.   )rk   rl   ro   s     r   rp   Gmocked_dataloaders_for_autoregressive_models.<locals>.tokenize_functionr   s    H[1dtkpqr   Trr   rs   c           	        > TR                   [        R                  :X  a  SO'[        U  Vs/ s H  n[	        US   5      PM     sn5      nTR
                  S:X  a  SnOTR
                  S:w  a  SnOS nTR                  U SUS-   US	S
9nUS   S S 2SS 24   US'   US   S S 2S S24   US'   [        R                  " US   TR                  :H  SUS   5      US'   U$ s  snf )Nrw   	input_idsfp8   no   rg   r   rx   )ri   rg   pad_to_multiple_ofry   rj   i)
r{   r   r|   maxlenmixed_precisionr}   r5   wherepad_token_id)rk   erg   r   batchr~   ro   s        r   r   @mocked_dataloaders_for_autoregressive_models.<locals>.collate_fn   s    ++/B/BB 8<8ac!K.)8<= 	 &&%/!#((D0!"!% !A~1  
  ,QU3h";/3B37k++eHo9O9O&OQUW\]eWfgh/ =s   Cr^   Fr&   r   r_   r   )
r   rX   r   rZ   r   	eos_token	pad_tokenmain_process_firstr   r   )r~   rU   rX   rZ   rb   r   rp   r   r   r   r   ro   s   `          @r   ,mocked_dataloaders_for_autoregressive_modelsr   h   s    %*--.IJI#--I>NopJEj9H 
	'	'	)%\\> * 
 
*> ""4W"=uYcpqr !3L!A5]gtuvO,,S 
*	)s   B
B%)r   )numpyr   r5   torch.utils.datar   accelerate.utils.dataclassesr   r   r6   Moduler0   rO   intr   r   r.   r   r   <module>r      s^      ' 80 0)%((// )#ehhoo #%- %-P:-# :-r   