§
    Þ˜ºh†  ã                   ó<  — d dl mZ d dlZd dlmZ d dlmZmZ ddlmZ ddl	m
Z
mZ ddlmZmZ ddlmZ dd	lmZ 	 	 d-dej        dej        deej                 dedej        f
d„Z	 	 	 d.dedeej                 dedeej                 dej        f
d„Z	 	 d-dej        dej        dedeej                 def
d„Zdej        dej        dej        fd„Zd„ Zdej        fd„Zi de“de“de“de“de“d e“d!e“d"e“d#e“d$e“d%e“d&e
“d'e
“d(e
“d)e“d*e“d+e“eeeed,œ¥ZdS )/é    )ÚOptionalN)ÚBCEWithLogitsLossÚMSELossé   )ÚDFineForObjectDetectionLoss)Ú$DeformableDetrForObjectDetectionLossÚ!DeformableDetrForSegmentationLoss)ÚForObjectDetectionLossÚForSegmentationLoss)Ú#GroundingDinoForObjectDetectionLoss)ÚRTDetrForObjectDetectionLosséœÿÿÿÚsourceÚtargetÚnum_items_in_batchÚignore_indexÚreturnc                 óÊ   — |�dnd}t           j                             | |||¬¦  «        }|dk    r3t          j        |¦  «        r|                     |j        ¦  «        }||z  }|S )NÚsumÚmean)r   Ú	reduction)ÚnnÚ
functionalÚcross_entropyÚtorchÚ	is_tensorÚtoÚdevice)r   r   r   r   Úkwargsr   Úlosss          úd/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/transformers/loss/loss_utils.pyÚfixed_cross_entropyr"      sv   € ð ,Ð7��¸V€IÝŒ=×&Ò& v¨vÀLÐ\eÐ&ÑfÔf€DØ�EÒÐåŒ?Ð-Ñ.Ô.ð 	DØ!3×!6Ò!6°t´{Ñ!CÔ!CÐØÐ(Ñ(ˆØ€Kó    Ú
vocab_sizeÚshift_labelsc                 ó\  — |                       ¦   «         } |€@t          j                             |d|¬¦  «        }|ddd …f                              ¦   «         }|                      d|¦  «        } |                     d¦  «        }|                     | j        ¦  «        }t          | |||fi |¤Ž}|S )N)r   r   )Úvalue.r   éÿÿÿÿ)	Úfloatr   r   ÚpadÚ
contiguousÚviewr   r   r"   )ÚlogitsÚlabelsr$   r   r   r%   r   r    s           r!   ÚForCausalLMLossr/   -   s­   € ð �\Š\‰^Œ^€FàÐå”×"Ò" 6¨6¸Ð"ÑFÔFˆØ˜c 1 2 2˜g”×1Ò1Ñ3Ô3ˆð �[Š[˜˜ZÑ(Ô(€FØ×$Ò$ RÑ(Ô(€Là—?’? 6¤=Ñ1Ô1€LÝ˜v |Ð5GÈÐ`Ð`ÐY_Ð`Ð`€DØ€Kr#   r-   r.   c                 óØ   — |                       ¦   «         } |                      d|¦  «        } |                     d¦  «        }|                     | j        ¦  «        }t	          | |||fi |¤Ž}|S ©Nr(   )r)   r,   r   r   r"   )r-   r.   r$   r   r   r   r    s          r!   ÚForMaskedLMLossr2   G   sl   € ð �\Š\‰^Œ^€Fð �[Š[˜˜ZÑ(Ô(€FØ�[Š[˜‰_Œ_€Fð �YŠY�v”}Ñ%Ô%€FÝ˜v vÐ/AÀ<ÐZÐZÐSYÐZÐZ€DØ€Kr#   Úpooled_logitsc                 ó„  — |j         }|j        €B|dk    rd|_        n4|dk    r'| j        t          j        t          j        fv rd|_        nd|_        |                      |j        ¦  «        } |j        dk    rPt          ¦   «         }|dk    r0 || 	                    ¦   «         |  	                    ¦   «         ¦  «        S  ||| ¦  «        S |j        dk    r5t          |                     d|¦  «        |                      d¦  «        fi |¤ŽS |j        dk    rt          ¦   «         } ||| ¦  «        S t          d|j        › �¦  «        ‚)Nr   Ú
regressionÚsingle_label_classificationÚmulti_label_classificationr(   zInvalid problem type: )Ú
num_labelsÚproblem_typeÚdtyper   ÚlongÚintr   r   r   Úsqueezer"   r,   r   ÚRuntimeError)r.   r3   Úconfigr   r8   Úloss_fcts         r!   ÚForSequenceClassificationLossrA   \   sO  € ØÔ"€JØÔÐ"Ø˜Š?ˆ?Ø".ˆFÔÐØ˜!Š^ˆ^ ¤µ%´*½e¼iÐ1HÐ!HÐ!HØ"?ˆFÔÐà">ˆFÔà�YŠY�}Ô+Ñ,Ô,€FØÔ˜lÒ*Ð*Ý‘9”9ˆØ˜Š?ˆ?Ø�8˜M×1Ò1Ñ3Ô3°V·^²^Ñ5EÔ5EÑFÔFÐFà�8˜M¨6Ñ2Ô2Ð2ØÔÐ;Ò;Ð;Ý" =×#5Ò#5°b¸*Ñ#EÔ#EÀvÇ{Â{ÐSUÁÄÐaÐaÐZ`ÐaÐaÐaàÔÐ:Ò:Ð:Ý$Ñ&Ô&ˆØˆx˜ vÑ.Ô.Ð.å
ÐE°Ô0CÐEÐEÑ
FÔ
FÐFr#   c                 ó0  — d }|��|��t          |                     ¦   «         ¦  «        dk    r-|                     d¦  «                             | j        ¦  «        }t          |                     ¦   «         ¦  «        dk    r-|                     d¦  «                             |j        ¦  «        }|                      d¦  «        }|                     d|¦  «        }|                     d|¦  «        }t          | |fd|i|¤Ž}t          ||fd|i|¤Ž}||z   dz  }|S )Nr   r(   r   r   é   )ÚlenÚsizer=   r   r   Úclampr"   )	Ústart_logitsÚ
end_logitsÚstart_positionsÚend_positionsr   Ú
total_lossÚignored_indexÚ
start_lossÚend_losss	            r!   ÚForQuestionAnsweringLossrO   w   s%  € Ø€JØÑ" }Ñ'@åˆ×#Ò#Ñ%Ô%Ñ&Ô&¨Ò*Ð*Ø-×5Ò5°bÑ9Ô9×<Ò<¸\Ô=PÑQÔQˆOÝˆ}×!Ò!Ñ#Ô#Ñ$Ô$ qÒ(Ð(Ø)×1Ò1°"Ñ5Ô5×8Ò8¸Ô9JÑKÔKˆMà$×)Ò)¨!Ñ,Ô,ˆØ)×/Ò/°°=ÑAÔAˆØ%×+Ò+¨A¨}Ñ=Ô=ˆå(¨°ÐmÐmÐUbÐmÐflÐmÐmˆ
Ý& z°=ÐgÐgÈ}ÐgÐ`fÐgÐgˆØ  8Ñ+¨qÑ0ˆ
ØÐr#   c                 óÖ   — |                       d|j        ¦  «        } |                      d¦  «                             | j        ¦  «        }|                      ¦   «         } t          | |fi |¤ŽS r1   )r,   r8   r   r   r)   r"   )r-   r.   r?   r   s       r!   ÚForTokenClassificationrQ   Š   s\   € à�[Š[˜˜VÔ.Ñ/Ô/€FØ�[Š[˜‰_Œ_×Ò ¤Ñ.Ô.€FØ�\Š\‰^Œ^€Få˜v vÐ8Ð8°Ð8Ð8Ð8r#   ÚForCausalLMÚForMaskedLMÚForQuestionAnsweringÚForSequenceClassificationÚForImageClassificationÚForVideoClassificationÚForAudioClassificationrQ   ÚForSegmentationÚForObjectDetectionÚForConditionalGenerationÚ DeformableDetrForObjectDetectionÚ!ConditionalDetrForObjectDetectionÚDabDetrForObjectDetectionÚGroundingDinoForObjectDetectionÚ!MMGroundingDinoForObjectDetectionÚConditionalDetrForSegmentation)ÚRTDetrForObjectDetectionÚRTDetrV2ForObjectDetectionÚDFineForObjectDetectionÚCsmForConditionalGeneration)Nr   )Nr   N)Útypingr   r   Útorch.nnr   r   r   Úloss_d_finer   Úloss_deformable_detrr   r	   Úloss_for_object_detectionr
   r   Úloss_grounding_dinor   Úloss_rt_detrr   ÚTensorr<   r"   r/   r2   rA   rO   rQ   ÚLOSS_MAPPING© r#   r!   ú<module>rp      s0  ðð Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø iÐ iÐ iÐ iÐ iÐ iÐ iÐ iØ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ DÐ DÐ DÐ DÐ DÐ DØ 6Ð 6Ð 6Ð 6Ð 6Ð 6ð 26Øð	ð ØŒLðàŒLðð ! ¤Ô.ðð ð	ð „\ðð ð ð ð* 26ØØ+/ðð ð ðð ! ¤Ô.ð	ð
 ðð ˜5œ<Ô(ðð „\ðð ð ð ð< 26Øðð ØŒLðàŒLðð ðð ! ¤Ô.ð	ð
 ðð ð ð ð*G¨%¬,ð GÀuÄ|ð GÐjoÔjvð Gð Gð Gð Gð6ð ð ð&9 5¤<ð 9ð 9ð 9ð 9ðØ�?ðà�?ðð Ð4ðð  Ð!>ð	ð
 Ð;ðð Ð;ðð Ð;ðð Ð4ðð Ð*ðð Ð0ðð  ðð 'Ð(Lðð (Ð)Mðð  Ð!Eðð &Ð'Jðð  (Ð)Lð!ð" %Ð&Gð#ð$ !=Ø">Ø:Ø#2ð+ð ð €€€r#   