
    9i                         d dl Zd dlZd dlmZ d dlmZ  G d d      Z G d dej                  j                        Z
 G d d	ej                  j                        Zdd
efdZy)    N)
DataLoader)DistributedTypec                        e Zd ZddZd Zd Zy)RegressionDatasetNc                 L   t         j                  j                  |      }|| _        |j	                  |f      j                  t         j                        | _        || j                  z  |z   |j	                  d|f      j                  t         j                        z   | _        y )N)sizeg?)scaler   )	nprandomdefault_rnglengthnormalastypefloat32xy)selfabr   seedrngs         h/var/www/html/backtest/airagagent/rag_env/lib/python3.12/site-packages/accelerate/test_utils/training.py__init__zRegressionDataset.__init__   sv    ii##D)&+222::>TVVa#**3fY*"G"N"Nrzz"ZZ    c                     | j                   S N)r   )r   s    r   __len__zRegressionDataset.__len__   s    {{r   c                 @    | j                   |   | j                  |   dS )Nr   r   r   )r   is     r   __getitem__zRegressionDataset.__getitem__    s    VVAYTVVAY//r   )      @   N)__name__
__module____qualname__r   r   r!    r   r   r   r      s    [0r   r   c                   (     e Zd Zd fd	ZddZ xZS )RegressionModel4XPUc                 L   t         |           t        j                  j	                  t        j
                  ddg      j                               | _        t        j                  j	                  t        j
                  ddg      j                               | _        d| _	        y )Nr"   r#   T
superr   torchnn	Parametertensorfloatr   r   first_batchr   r   r   double_output	__class__s       r   r   zRegressionModel4XPU.__init__%   sn    ##ELL!Q$8$>$>$@A##ELL!Q$8$>$>$@Ar   c                     | j                   rMt        d| j                  j                   d| j                  j                   d|j                          d| _         || j                  d   z  | j                  d   z   S )NModel dtype: , . Input dtype: Fr   r3   printr   dtyper   r   r   s     r   forwardzRegressionModel4XPU.forward+   sa    M$&&,,r$&&,,qwwiXY$D466!9}tvvay((r   r   r   Fr   r%   r&   r'   r   r?   __classcell__r6   s   @r   r*   r*   $   s     )r   r*   c                   (     e Zd Zd fd	ZddZ xZS )RegressionModelc                 D   t         |           t        j                  j	                  t        j
                  |      j                               | _        t        j                  j	                  t        j
                  |      j                               | _        d| _	        y )NTr,   r4   s       r   r   zRegressionModel.__init__3   sd    ##ELLO$9$9$;<##ELLO$9$9$;<r   c                     | j                   rMt        d| j                  j                   d| j                  j                   d|j                          d| _         || j                  z  | j                  z   S )Nr8   r9   r:   Fr;   r>   s     r   r?   zRegressionModel.forward9   sY    M$&&,,r$&&,,qwwiXY$D466zDFF""r   r@   r   rA   rC   s   @r   rE   rE   2   s     #r   rE   
batch_sizec                 f    ddl m} ddlm} |j	                  d      ddd} |d|	      }|d
   j                  d      }t        |      D ci c]  \  }}||
 c}}fd}	|j                  |	dg d      }
 fd}t        |
d
   d|d      }t        |
d   d|d      }||fS c c}}w )Nr   )load_dataset)AutoTokenizerzbert-base-casedz!tests/test_samples/MRPC/train.csvztests/test_samples/MRPC/dev.csv)train
validationcsv)
data_filesrL   labelc                 r     | d   | d   dd d      }d| v r| d   D cg c]  }|   	 c}|d<   |S c c}w )N	sentence1	sentence2T
max_length)
truncationrT   paddingrP   labelsr(   )examplesoutputsllabel_to_id	tokenizers      r   tokenize_functionz-mocked_dataloaders.<locals>.tokenize_functionK   sW    [!8K#8TVZdp
 h9A'9J KAQ KGH !Ls   4T)rR   rS   rP   )batchedremove_columnsc                     j                   t        j                  k(  rj                  | ddd      S j                  | dd      S )NrT      pt)rV   rT   return_tensorslongest)rV   rc   )distributed_typer   TPUpad)rX   acceleratorr\   s    r   
collate_fnz&mocked_dataloaders.<locals>.collate_fn[   sD    ''?+>+>>==<C`d=ee}}Xy}NNr   r"   )shuffleri   rH   rM   F   )	datasetsrJ   transformersrK   from_pretrainedunique	enumeratemapr   )rh   rH   rJ   rK   rO   rl   
label_listr    vr]   tokenized_datasetsri   train_dataloadereval_dataloaderr[   r\   s   `             @@r   mocked_dataloadersrw   @   s    %*--.?@I>NopJEj9H'"))'2J$-j$9:DAq1a4:K ": & O ""4W"=tXbopq !3L!A5]gtuvO_,,9 ;s   B-)   )numpyr
   r.   torch.utils.datar   accelerate.utils.dataclassesr   r   r/   Moduler*   rE   intrw   r(   r   r   <module>r~      sQ      ' 80 0)%((// )#ehhoo #%- %-r   