Ë
    <ÁÜhS	  ã                  ó8   — d Z ddlmZ ddlZddlZ G d„ d«      Zy)a@  
This file contains deprecated code that can only be used with the old `model.fit`-style Sentence Transformers v2.X training.
It exists for backwards compatibility with the `model.old_fit` method, but will be removed in a future version.

Nowadays, with Sentence Transformers v3+, it is recommended to use the `SentenceTransformerTrainer` class to train models.
See https://www.sbert.net/docs/sentence_transformer/training_overview.html for more information.

In particular, you can pass "no_duplicates" to `batch_sampler` in the `SentenceTransformerTrainingArguments` class.
é    )ÚannotationsNc                  ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚNoDuplicatesDataLoaderc                óz   — || _         d| _        d| _        || _        t	        j
                  | j                  «       y)z±
        A special data loader to be used with MultipleNegativesRankingLoss.
        The data loader ensures that there are no duplicate sentences within the same batch
        r   N)Ú
batch_sizeÚdata_pointerÚ
collate_fnÚtrain_examplesÚrandomÚshuffle)Úselfr
   r   s      úv/var/www/html/axiom-chatbot/venv/lib/python3.12/site-packages/sentence_transformers/datasets/NoDuplicatesDataLoader.pyÚ__init__zNoDuplicatesDataLoader.__init__   s4   € ð
 %ˆŒØˆÔØˆŒØ,ˆÔÜ‰t×*Ñ*Õ+ó    c              #  ót  K  — t        | j                  «       «      D ]—  }g }t        «       }t        |«      | j                  k  rN| j
                  | j                     }d}|j                  D ]A  }t        |t        «      st        |«      }|j                  «       j                  «       |v sŒ?d} n |rj|j                  |«       |j                  D ]J  }t        |t        «      st        |«      }|j                  |j                  «       j                  «       «       ŒL | xj                  dz  c_        | j                  t        | j
                  «      k\  r&d| _        t        j                  | j
                  «       t        |«      | j                  k  rŒN| j                   | j!                  |«      n|–— Œš y ­w)NTFé   r   )ÚrangeÚ__len__ÚsetÚlenr   r
   r   ÚtextsÚ
isinstanceÚstrÚstripÚlowerÚappendÚaddr   r   r	   )r   Ú_ÚbatchÚtexts_in_batchÚexampleÚvalid_exampleÚtexts          r   Ú__iter__zNoDuplicatesDataLoader.__iter__   sh  è ø€ Üt—|‘|“~Ó&ó 	SˆAØˆEÜ ›UˆNäe“*˜tŸ™Ó.Ø×-Ñ-¨d×.?Ñ.?Ñ@à $Ø#ŸM™Mò DÜ% d¬CÔ0Ü" 4›y˜Ø—z‘z“|×)Ñ)Ó+¨~Ò=Ø(-˜Ùðñ !Ø—L‘L Ô)Ø '§¡ò A˜Ü)¨$´Ô4Ü#& t£9˜DØ&×*Ñ*¨4¯:©:«<×+=Ñ+=Ó+?Õ@ðAð
 ×!Ò! QÑ&Õ!Ø×$Ñ$¬¨D×,?Ñ,?Ó(@Ò@Ø()DÔ%Ü—N‘N 4×#6Ñ#6Ô7ô+ e“*˜tŸ™Ô.ð. -1¯O©OÐ,G$—/‘/ %Ô(ÈUÔRñ7	Sùs   ‚B(F8Â+C&F8Æ%F8c                ól   — t        j                  t        | j                  «      | j                  z  «      S )N)ÚmathÚfloorr   r
   r   )r   s    r   r   zNoDuplicatesDataLoader.__len__;   s%   € Üz‰zœ#˜d×1Ñ1Ó2°T·_±_ÑDÓEÐEr   N)Ú__name__Ú
__module__Ú__qualname__r   r$   r   © r   r   r   r      s   „ ò	,òSó<Fr   r   )Ú__doc__Ú
__future__r   r&   r   r   r+   r   r   ú<module>r.      s!   ðñõ #ã Û ÷+Fò +Fr   