+
    "Ý³jèa  ã                  óŒ  € R t ^ RIHt ^ RIt^ RIt^ RIHtHtHtH	t	H
t
Ht ^ RIt^RIHt ^RIHt ^RIHt  ^ RIHt ^ RIHt ]]]]]]],          ]P6                  3,          3,          ,          ]],          ]]],          ,          R	R
3,          tRR R lltR R ltRR R lltRR R llt RR.t!R#   ] d    R;tt L~i ; i)zFUtilities for preparing calibration datasets used during quantization.)ÚannotationsN)ÚAnyÚDictÚListÚOptionalÚSequenceÚUnion)Únormalize_seq_mask)Úcollate_data)Úsetup_logger)ÚDataset)ÚIterableDatasetÚ	HFDatasetÚHFIterableDatasetc               ó   € V ^8„  d   QhRR/# ©é   Ú
batch_sizeÚint© )Úformats   "Ú\/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/calibration.pyÚ__annotate__r   %   s   € ÷ ñ  #ñ ó    c              #  óÒ   "  € V^ 8:  d   \        R4      h. pV  F:  pVe	   V! V4      MTpVP                  V4       \        V4      V8X  g   K4  Vx € . pK<  	  V'       d   Vx € R# R# 5i)zEYield fixed-size batches from ``iterable`` after optional processing.zbatch_size must be positiveN)Ú
ValueErrorÚappendÚlen)Úiterabler   Úprocess_funcÚbatchÚitemÚ	processeds   &&&   r   Úbatchedr#   %   sk   é € ð �Q„ÜÐ6Ó7Ð7à€EÛˆØ*6Ò*B‘L Ô&Èˆ	Ø�‰�YÔÜˆu‹:˜Ö#ØŠKØŠEñ ÷ ØŒñ ùs   ‚AA'ÁA'ÁA'c               ó    € V ^8„  d   QhRRRR/# )r   Úsampler   Úreturnr   )r   s   "r   r   r   7   s   € ÷ ñ ¨cð °cñ r   c                óò   € \        V \        4      '       d?   RV 9   d
   V R,          # \        V P                  R4      \        4      '       d
   V R,          p \        V \        4      '       d   RRRRRRV /./.# V # )a  Normalize text-like calibration rows to processor chat conversations.

Multimodal processors expect one conversation per calibration sample, while
the public quantization API also accepts raw text and common dataset rows.
Already structured conversations are returned unchanged.
ÚmessagesÚtextÚroleÚuserÚcontentÚtype)Ú
isinstanceÚdictÚgetÚstr)r%   s   &r   Ú!normalize_chat_calibration_sampler2   7   s~   € ô �&œ$×ÒØ˜ÔØ˜*Õ%Ð%Ü�f—j‘j Ó(¬#×.Ò.Ø˜F•^ˆFä�&œ#×Òð ˜Ø˜V V¨V°VÐ<Ð=ðð
ð 	
ð €Mr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   P   s   € ÷ Qñ Q°ñ Qr   c              #  óJ   a"  € V3R lp\        WVR7       Rj  x€L
  R#  L5i)z@Yield chat-normalized calibration samples in fixed-size batches.c                ó6   <€ \        V 4      p Se	   S! V 4      # T # ©N)r2   )r%   r   s   &€r   Únormalize_and_processÚ4batched_conversations.<locals>.normalize_and_processS   s"   ø€ Ü2°6Ó:ˆØ'3Ò'?‰|˜FÓ#ÐKÀVÐKr   )r   N)r#   )r   r   r   r7   s   &&f r   Úbatched_conversationsr9   P   s   øé € õLô �xÐ:OÔP×PÔPùs   ƒ#š!›#c               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )r   Úcalibration_datasetÚCalibrationInputTypeÚcalibration_dataset_concat_sizezOptional[int]Úcalibration_dataset_sortzOptional[str]r   r   Úcalibration_data_min_lengthÚcalibration_concat_separatorr   )r   s   "r   r   r   Z   sN   € ÷ c+ñ c+à-ðc+ð &3ðc+ð ,ð	c+ð
 ðc+ð "%ðc+ð #0ñc+r   c                óŠ  a?a@aAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaP€ T;'       g    \        4       p\        V RR4      oP\        V RR4      p	RRp
\        e   V
\        3,          p
\        e   V
\        3,          p
\	        V\
        4      '       d   \        R4      hV
'       d   \	        W4      '       d   \        V4      pMb\	        V\        4      '       d   TpMI\	        V\        4      '       d)   \	        V\        \        34      '       g   \        V4      pM\        V4      p\        V4      ^ 8X  d   \        R4      h^ oMRoO^ pR VP3R lloBRoKRoLR	oNVKVLVNVP3R
 lo?R R loCR R lo@R V@VC3R lloAR VAVBVP3R lloDR V?VAVBVDVMVO3R llp. p\        V4       EF$  w  pp\	        V\        4      '       dû   RV9   dl   S?! 4       w  ppVf=   RV9   d+   V^,          pVP                  SD! VR,          V4      4       Kc  \        R4      hVP                  V! VR,          V4      4       K�  RV9   d"   VP                  SD! VR,          V4      4       K·  RV9   d2   VP                  SA! VR,          VP                  R4      V4      4       Kï  \        RV R\        VP!                  4       4       24      h\	        V\
        4      '       d   VP                  SD! VV4      4       EKH  \	        V\        \"        34      '       do   \$        ;QJ d    R V 4       F  '       d   K   R	M	  RM! R V 4       4      '       d&   VP                  SA! \        V4      RV4      4       EKÃ  \        RV R24      h\&        P(                  ! V4      '       d   VP                  SA! VRV4      4       EK
   VP                  SA! VRV4      4       EK'  	  TpR" p. p^ pRoIRoJ^ p^ pVIVJ3R# lp\        \        V R$R4      R%R4      pVeS   RSpRTpV F  pV! \        VVR4      V4      '       g   K   M	  SIf&   V F  pV! \        VVR4      V4      '       g   K   M	  SPe   \        SPR&R'4      MR'pVRU9  d   \        R)V R*24      hV EF.  pV! VR,          4      pV! VR,          4      p SIeÑ   R	p!. p". p#\/        VV 4       F®  w  p$p%\        V$4      p&V&SI8”  du   Rp!V^,          p\1        VV&4      pVR(8X  d-   V"P                  V$SI) R 4       V#P                  V%SI) R 4       Kb  V"P                  V$RSI 4       V#P                  V%RSI 4       KŒ  V"P                  V$4       V#P                  V%4       K°  	  V!'       d   T"pT#p \        V^ ,          4      V8:  d   V^,          pEK  VP                  RVRV /4       EK1  	  V^ 8”  d   VP3                  R+V R,V R-V R.24       SM^ 8”  d   SOe   VP5                  R/SMSO4       V^ 8”  d   VP3                  R0V4       V^ 8”  d   VP5                  R1VSJSIV4       V'       Ed-   SB! R24       . oF. oH. oE^ oGVe   TMR3p'V''       d8   SP! V'R4R57      p(V! V(R,          4      ^ ,          p)V! V(R,          4      ^ ,          p*M. p). p*\        V)4      p+VEVFVGVH3R6 lp,V EF  pVR,          ^ ,          p$VR,          ^ ,          p%^ p-\        V$4      p.V-V.8  g   K:  SH'       dK   V+'       dC   SGV+,           V8”  d
   V,! 4        K0  SHP7                  V)4       SEP7                  V*4       SGV+,          oGVSG,
          p/V/^ 8X  d
   V,! 4        Kt  \9        V/V.V-,
          4      p0V0^ 8X  d
   V,! 4        K—  V-V0,           p1SHP7                  V$V-V1 4       SEP7                  V%V-V1 4       SGV0,          oGT1p-SGV8X  g   KÜ  V,! 4        Kå  	  SH'       dš   V\        SH4      ,
          p2V2^ 8”  dj   \        SPR7^ 4      p3VR(8X  d$   V3.V2,          SH,           oH^ .V2,          SE,           oEM2SHP7                  V3.V2,          4       SEP7                  ^ .V2,          4       SFP                  RSH.RSE./4       SFpVR88X  d!   VP5                  R94       \;        VR: R;7      p4MsVR<8X  d"   VP5                  R=4       \;        VR> RR?7      p4MKVR@8X  d2   VP5                  RA4       VRB,          p4\<        P>                  ! V44       MVP5                  RC4       Tp4\1        ^ \A        \B        PD                  ! RDRE4      ;'       g    ^ 4      4      p5V5^ 8”  d”   \        V4RV5 ^RF7       F  w  ppVR,          ^ ,          p$R3p6SPe,    SPPG                  V$RG,          R	RH7      PI                  RIRJ4      p6VP5                  RKV\9        V5\        V44      4      \        V$4      V6RL,          4       K�  	  V	'       Ed   SPe   \        SPR7^ 4      M^ p7\K        ^ \        V44      V4       U8u. uF&  p8\M        V4V8V8V,            V7\        SPR&R'4      RM7      NK(  	  p9p8^ p:^ p;V9 F\  p<V<R,          p=V:V=^ 8H  PO                  4       PQ                  4       ,          p:V;V=^8H  PO                  4       PQ                  4       ,          p;K^  	  VP5                  RNV: 24       VP5                  ROV; 24       VP5                  RPV;V:,            24       V9# V4 U>u. uF2  p>R\&        PR                  ! V>R,          \&        PT                  RQ7      /NK4  	  p9p>V9#   \*         d"   p\        R\-        T4       R T R!24      ThRp?ii ; i  \*         d    R3p6 ELÈi ; iu up8i u up>i )Vz´Normalize, validate, and batch calibration samples for quantization.

Parameters mirror ``BaseQModel.prepare_dataset`` so existing code paths can
delegate directly to this helper.
Ú	tokenizerNÚsupport_batch_quantizeTzDQuantize: calibration dataset must be iterable, not a single string.z'Quantize: calibration dataset is empty.c               ó    € V ^8„  d   QhRRRR/# )r   Úreasonr1   r&   ÚNoner   )r   s   "r   r   Ú1prepare_calibration_dataset.<locals>.__annotate__ˆ   s   € ÷ Kñ K 3ð K¨4ñ Kr   c                ó.   <€ Sf   \        RV  R24      hR # )Nz tokenizer must be provided when Ú.)r   )rE   rB   s   &€r   Ú_require_tokenizerÚ7prepare_calibration_dataset.<locals>._require_tokenizerˆ   s#   ø€ ØÒÜÐ?À¸xÀqÐIÓJÐJñ r   Fc                 óh  <€ S'       d   SS3# R oSf   R# \        SRR4      p \        V 4      '       d	   V oRoSS3# \        SRR4      p\        V4      '       dF   \        SRR4      pVf)   \        SRR4      p\        V4      '       d    V! RR4      pVe	   VoRoSS3# R#   \         d    Rp Li ; i)TNÚapply_templateÚapply_chat_templateÚchat_templateÚget_chat_template)NN)ÚgetattrÚcallableÚ	Exception)Úapply_fnÚapply_chat_fnrO   rP   Úmessage_apply_fnÚmessage_apply_nameÚmessage_template_checkedrB   s       €€€€r   Ú_get_message_templateÚ:prepare_calibration_dataset.<locals>._get_message_template�   sï   ø€ ÷ $Ø#Ð%7Ð7Ð7à#'Ð àÒØÐä˜9Ð&6¸Ó=ˆÜ�H×ÒØ'ÐØ!1ÐØ#Ð%7Ð7Ð7ä 	Ð+@À$ÓGˆÜ�M×"Ò"Ü# I¨ÀÓEˆMØÒ$Ü$+¨IÐ7JÈDÓ$QÐ!ÜÐ-×.Ò.ð-Ù(9¸$ÀÓ(E˜ð Ò(Ø#0Ð Ø%:Ð"Ø'Ð);Ð;Ð;àÐøô %ô -Ø(,šð-ús   Â
	B! Â!B1Â0B1c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   Úvaluer   Únamer1   Úidxr   r&   útorch.Tensorr   )r   s   "r   r   rG   ¶   s(   € ÷ ñ  #ð ¨Sð °sð ¸|ñ r   c           	     ó�  €  \         P                  ! V \         P                  R 7      pTP
                  ^ 8X  d   \	        RT RT R24      hTP
                  ^8X  d   TP                  ^ 4      pT# TP
                  ^8”  dq   TR8X  dj   TP                  ^ 4      p\        TP
                  ^,
          ^ R4       F  pTP                  TR	7      pK  	  TP                  \         P                  4      pT# TP
                  ^8w  d    \	        RT RT R
TP
                   R24      hT#   \         d   p\	        RT RT R24      ThRp?ii ; i)©ÚdtypezQuantize: failed to convert `z!` to tensor for calibration item rI   NzQuantize: `z` for calibration item z must be 1D or 2D, got scalar.Úattention_mask)Údimz must be rank 1 or 2, got rank éÿÿÿÿ)ÚtorchÚ	as_tensorÚlongrS   r   ÚndimÚ	unsqueezeÚneÚrangeÚanyÚto)r\   r]   r^   ÚtensorÚexcrd   s   &&&   r   Ú_to_2d_long_tensorÚ7prepare_calibration_dataset.<locals>._to_2d_long_tensor¶   sL  € ð	uÜ—_’_ U´%·*±*Ô=ˆFð �;‰;˜!ÔÜ˜{¨4¨&Ð0GÈÀuÐLjÐkÓlÐlØ�;‰;˜!ÔØ×%Ñ% aÓ(ˆFð ˆð �[‰[˜1Œ_ Ð)9Ô!9ð —Y‘Y˜q“\ˆFÜ˜VŸ[™[¨1�_¨a°Ö4�ØŸ™¨˜Ó,’ñ 5à—Y‘YœuŸz™zÓ*ˆFð
 ˆð	 �[‰[˜AÔÜØ˜d˜VÐ#:¸3¸%Ð?^Ð_e×_jÑ_jÐ^kÐklÐmóð ð ˆøô% ô 	uÜÐ<¸T¸FÐBcÐdgÐchÐhiÐjÓkÐqtÐtûð	uús   ‚&D" Ä"EÄ-E Å Ec               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Ú
mask_valuer   Ú
ids_tensorr_   r^   r   r&   r   )r   s   "r   r   rG   Í   s*   € ÷ ñ ¨cð ¸|ð ÐRUð ÐZfñ r   c           	     óð  €  \         P                  ! V 4      pTP                  ^ 8X  d   \        RT R24      hTP                  ^8X  d   TP                  ^ 4      p \        Y1P                  R,          R7      pTP                  \         P                  R7      pTP                  TP                  8w  d|   TP                  4       TP                  4       8X  d   TP                  TP                  4      pT# \        R	\        TP                  4       R
\        TP                  4       RT R24      hT#   \         d   p\        R T R24      ThRp?ii ; i  \         d   p\        RT RT 24      ThRp?ii ; i)zLQuantize: failed to convert `attention_mask` to tensor for calibration item rI   Nz0Quantize: `attention_mask` for calibration item z& must be rank 1 or higher, got scalar.)Úseq_lenzDQuantize: failed to normalize `attention_mask` for calibration item z: ra   zQuantize: attention_mask shape z  does not match input_ids shape ú for calibration item re   )rf   rg   rS   r   ri   rj   r	   Úshapern   rh   ÚnumelÚreshapeÚtuple)rt   ru   r^   Úmask_tensorrp   Ú	keep_masks   &&&   r   Ú_normalize_attention_maskÚ>prepare_calibration_dataset.<locals>._normalize_attention_maskÍ   s�  € ð	ÜŸ/š/¨*Ó5ˆKð ×Ñ˜qÔ ÜØBÀ3À%ÐGmÐnóð ð ×Ñ˜qÔ Ø%×/Ñ/°Ó2ˆKð	Ü*¨;×@PÑ@PÐQSÕ@TÔUˆIð  —l‘l¬¯©�lÓ4ˆØ×Ñ 
× 0Ñ 0Ô0Ø× Ñ Ó" j×&6Ñ&6Ó&8Ô8Ø)×1Ñ1°*×2BÑ2BÓC�ð Ðô	 !Ø5´e¸K×<MÑ<MÓ6NÐ5OÐOoÜ˜Z×-Ñ-Ó.Ð/Ð/EÀcÀUÈ!ðMóð ð Ðøô9 ô 	ÜØ^Ð_bÐ^cÐcdÐeóàðûð	ûô ô 	ÜØVÐWZÐV[Ð[]Ð^aÐ]bÐcóàðûð	ús/   ‚D0 ÁE Ä0EÄ;EÅEÅE5ÅE0Å0E5c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Ú	ids_valuer   rt   r^   r   r&   úDict[str, torch.Tensor]r   )r   s   "r   r   rG   î   s)   € ÷ 
ñ 
˜Sð 
¨cð 
¸ð 
Ð@Wñ 
r   c                óÄ   <€ S! V R V4      pVf(   \         P                  ! V\         P                  R7      pM	S! WV4      pR VP                  4       RVP                  4       /# )Ú	input_idsra   rc   )rf   Ú	ones_likerh   Údetach)r‚   rt   r^   ru   r}   r   rq   s   &&&  €€r   Ú	_pack_idsÚ.prepare_calibration_dataset.<locals>._pack_idsî   s_   ø€ Ù'¨	°;ÀÓDˆ
àÒÜŸ/š/¨*¼E¿J¹JÔG‰Ká3°JÈCÓPˆKð ˜×*Ñ*Ó,Ø˜k×0Ñ0Ó2ð
ð 	
r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Ú
text_valuer   r^   r   r&   rƒ   r   )r   s   "r   r   rG   û   s"   € ÷ 	9ñ 	9¨ð 	9°3ð 	9Ð;Rñ 	9r   c                óp   <€ S! R 4       S! V RRR7      pVR,          pVP                  R4      pS! W4V4      # )z"calibration data contains raw textTÚpt)Úadd_special_tokensÚreturn_tensorsr…   rc   )r0   )r‹   r^   Ú	tokenizedr…   rc   rˆ   rJ   rB   s   &&   €€€r   Ú_tokenize_text_valueÚ9prepare_calibration_dataset.<locals>._tokenize_text_valueû   sG   ø€ ÙÐ?Ô@ÙØØ#Øô
ˆ	ð
 ˜kÕ*ˆ	Ø"Ÿ™Ð'7Ó8ˆÙ˜°CÓ8Ð8r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úmessages_valuer   r^   r   r&   rƒ   r   )r   s   "r   r   rG     s"   € ÷ .
ñ .
°ð .
¸3ð .
ÐCZñ .
r   c                óB  <€ S
! R 4       S! 4       w  r#Vf   \        R4      h VR8X  d   V! V RRR7      pMV! V RR7      p Vf   \        RV R24      hS^,          oVo\        VR	4      '       dM   VP                  R
4      pVP                  R4      pVP                  R4      pVe
   S	! WVV4      # Ve	   S! Wq4      # \	        V\
        \        34      '       dP   \        V4      ^ 8”  d1   \	        V^ ,          \        4      '       d   S	! \        V4      RV4      # \        RV R24      h\        P                  ! V4      '       d   S	! VRV4      # \	        V\        4      '       d	   S! WA4      # \        R\        V4       RV R24      h  \         d    T! T 4      p EL\i ; i)z,calibration data uses the `messages` featureNzftokenizer must expose `apply_template` or `apply_chat_template` to handle `messages` calibration data.rN   F)ÚtokenizeÚadd_generation_prompt)r–   z<tokenizer.apply_template returned None for calibration item rI   r0   r…   rc   r)   zTtokenizer.apply_template returned an unsupported sequence type for calibration item z3tokenizer.apply_template returned unsupported type rx   )r   Ú	TypeErrorÚhasattrr0   r.   Úlistr|   r   r   rf   Ú	is_tensorr1   r-   )r”   r^   rT   Útemplate_nameÚ	templatedr‚   rt   r‹   rY   rˆ   rJ   r‘   Úmessage_examplesÚmessage_template_names   &&      €€€€€€r   Ú_tokenize_messages_valueÚ=prepare_calibration_dataset.<locals>._tokenize_messages_value  sº  ø€ áÐIÔJÙ"7Ó"9ÑˆØÒÜØxóð ð	1ØÐ 5Ô5Ù$ ^¸eÐ[`Ôa‘	á$ ^¸eÔD‘	ð ÒÜÐ[Ð\_Ð[`Ð`aÐbÓcÐcà˜AÕÐØ -Ðä�9˜e×$Ò$Ø!Ÿ™ kÓ2ˆIØ"Ÿ™Ð'7Ó8ˆJØ"Ÿ™ vÓ.ˆJØÒ$Ù  ¸Ó<Ð<ØÒ%Ù+¨JÓ<Ð<ä�i¤$¬ ×/Ò/Ü�9‹~ Ô!¤j°¸1µ¼s×&CÒ&CÙ ¤ i£°$¸Ó<Ð<ÜØfÐgjÐfkÐklÐmóð ô �?Š?˜9×%Ò%Ù˜Y¨¨cÓ2Ð2ä�i¤×%Ò%Ù'¨	Ó7Ð7äØAÄ$ÀyÃ/ÐARÐRhÐilÐhmÐmnÐoó
ð 	
øô? ô 	1Ù  Ó0‹Ið	1ús   £F ¶
F ÆFÆFr(   r)   ztokenizer must expose `apply_template` or `apply_chat_template`, or calibration data must provide `text` when using `messages`.r…   rc   z=Quantize: unsupported calibration example structure at index z: keys=c              3  óB   "  € T F  p\        V\        4      x € K  	  R # 5ir6   )r.   r   )Ú.0Úxs   & r   Ú	<genexpr>Ú.prepare_calibration_dataset.<locals>.<genexpr>U  s   é € Ð7©w¨!”:˜a¤×%Ð%«wùs   ‚z2Quantize: list-based calibration example at index z must contain only integers.z/Quantize: unsupported calibration example type z
 at index rI   c                ó  € \        V \        P                  4      '       dh   \        V P                  4      ^8X  d   V P                  ^ 4      p V P                  4       p V P                  4       P                  4       P                  4       # V .# )é   )
r.   rf   ÚTensorr   ry   rj   rh   ÚcpuÚnumpyÚtolist)ro   s   &r   Ú_convert_tensor_to_listÚ<prepare_calibration_dataset.<locals>._convert_tensor_to_listi  sd   € Ü�fœeŸl™l×+Ò+Ü�6—<‘<Ó  AÔ%Ø×)Ñ)¨!Ó,�Ø—[‘[“]ˆFØ—:‘:“<×%Ñ%Ó'×.Ñ.Ó0Ð0Øˆxˆr   c                ó€   <€  V f   R# \        V 4      pT^ 8:  d   R# Se   TS8  d   ToToR#   \         d     R# i ; i)NFT)r   rS   )r\   Úsource_nameÚlimitÚmax_positionsÚmax_positions_sources   && €€r   Ú_maybe_resolve_lengthÚ:prepare_calibration_dataset.<locals>._maybe_resolve_lengthy  sT   ø€ ð	ØŠ}ÙÜ˜“JˆEð �AŒ:ÙØÒ  E¨MÔ$9Ø!ˆMØ#.Ð Ùøô ô 	Úð	ús   ƒ. ‰. ®=¼=ÚmodelÚconfigÚpadding_sideÚrightÚleftz$Unsupported tokenizer.padding_side `z`. Expected `left` or `right`.z
Quantize: z input_ids with length <= z8 were removed. Use quantize(calibration_data_min_length=z!) to set a custom minimum length.z>Calibration: tokenized %s `messages` examples via tokenizer.%szyCalibration: fell back to raw `text` for %s `messages` examples because the tokenizer has no message template configured.zNQuantize: trimmed %s calibration rows above %s=%s (longest original length=%s)z.`calibration_dataset_concat_size` is specifiedÚ r�   )r�   c                 óB   <€ SP                  R S.RS ./4       . o. o ^ oR# )r…   rc   N)r   )Úattention_mask_buffÚconcatenated_dataÚcurrent_lengthÚinput_ids_buffs   €€€€r   Úflush_bufferÚ1prepare_calibration_dataset.<locals>.flush_bufferõ  s9   ø€ à×$Ñ$à .Ð!1Ø$Ð':Ð&;ðôð  ˆNØ"$ÐØŠNr   Úpad_token_idÚascz.Calibration: Sort in ascending order by lengthc                ó4   € \        V R ,          ^ ,          4      # ©r…   ©r   ©r!   s   &r   Ú<lambda>Ú-prepare_calibration_dataset.<locals>.<lambda>;  ó   € œS  kÕ!2°1Õ!5Ô6r   )ÚkeyÚdescz/Calibration: Sort in descending order by lengthc                ó4   € \        V R ,          ^ ,          4      # rÆ   rÇ   rÈ   s   &r   rÉ   rÊ   A  rË   r   )rÌ   ÚreverseÚshufflez#Calibration: Sort by random shuffle:NNNzCalibration: Native orderÚ!GPTQMODEL_LOG_CALIBRATION_SAMPLESÚ0)Ústart:Né€   N)Úskip_special_tokensÚ
Ú z.Calibration sample %s/%s: tokens=%s preview=%r:Néð   N)r¸   z"Calibration: Total padded tokens: z&Calibration: Total non-padded tokens: zCalibration: Total tokens: ra   r   )Úmax_position_embeddings)Úmax_sequence_lengthÚmax_seq_lenÚn_positionsÚ
seq_length)rº   r¹   )+r   rQ   r   r   r.   r1   r   rš   r   ÚbytesÚ	bytearrayr   Ú	enumerater/   r   r0   Úkeysr|   Úallrf   r›   rS   r-   ÚzipÚmaxÚwarnÚinfoÚextendÚminÚsortedÚrandomrÐ   r   ÚosÚgetenvÚdecodeÚreplacerl   r
   Úsumr!   ro   rh   )QÚqmodelr;   r=   r>   r   r?   r@   ÚloggerÚlogrC   Úhf_dataset_typesÚraw_examplesÚmessage_text_fallback_examplesr    Úprocessed_examplesr^   ÚexamplerT   Ú_rp   r­   Únew_calibration_datasetÚ too_short_calibration_data_countÚtrimmed_row_countÚlongest_trimmed_rowr´   Úmodel_configÚprimary_namesÚfallback_namesÚ	attr_namer¸   r…   rc   ÚtrimmedÚtrimmed_input_idsÚtrimmed_attention_maskÚrow_idsÚrow_maskÚrow_lenÚ	separatorÚnew_lineÚnew_line_input_idsÚnew_line_attention_maskÚnew_line_input_ids_lenrÁ   ÚpositionÚ
row_lengthÚ	availableÚ	chunk_lenÚendÚpadding_lengthÚpad_idÚsorted_datasetÚpreview_countÚpreviewrÃ   rÓ   Únew_calibration_dataset_batchedÚtotal_paddedÚtotal_non_paddedr    ÚmaskÚblockrY   r   rˆ   rJ   rq   r‘   r½   r¾   r¿   rÀ   r²   r³   rV   rW   rž   rX   rŸ   rB   sQ   &&&&&&&&                                                       @@@@@@@@@@@@@@@@@@r   Úprepare_calibration_datasetr  Z   s¿  ÿÿù€ ð  ×
"Ð
"”L“N€Cä˜ ¨TÓ2€IÜ$ VÐ-EÀtÓLÐà ÐÜÒØœY˜LÕ(ÐÜÒ$ØÔ.Ð0Õ0ÐäÐ%¤s×+Ò+ÜÐ_Ó`Ð`çœJÐ':×MÒMÜÐ/Ó0‰Ü	Ð'¬×	.Ò	.Ø*‰Ü	Ð'¬×	2Ò	2¼:ÐFYÔ\aÔclÐ[m×;nÒ;nÜÐ/Ó0‰äÐ/Ó0ˆä
ˆ<Ó˜AÔÜÐBÓCÐCàÐØ ÐØ%&Ð"÷Kð Kð ÐØÐØ$Ð÷$ð $õLõ.÷B
ñ 
÷	9ò 	9÷.
õ .
ð` 9;ÐÜ! ,×/‰ˆˆWÜ�gœt×$Ò$Ø˜WÔ$Ù3Ó5‘�˜!ØÒ#Ø Ô(Ø6¸!Õ;Ð6Ø*×1Ñ1Ñ2FÀwÈvÅÐX[Ó2\Ô]Ù Ü$ð@óð ð #×)Ñ)Ñ*BÀ7È:ÕCVÐX[Ó*\Ô]ÙØ˜Ô Ø"×)Ñ)Ñ*>¸wÀv½ÐPSÓ*TÔUÙØ˜gÔ%Ø"×)Ñ)©)°G¸KÕ4HÈ'Ï+É+ÐVfÓJgÐilÓ*mÔnÙÜØOÐPSÈuÐT[Ô\`Ðah×amÑamÓaoÓ\pÐ[qÐróð ô �gœs×#Ò#Ø×%Ñ%Ñ&:¸7ÀCÓ&HÔIÚä�g¤¤e˜}×-Ò-ß‹sÑ7©wÓ7�s�sŠsÑ7©wÓ7×7Ò7Ø"×)Ñ)©)´D¸³MÀ4ÈÓ*MÔNÚÜØDÀSÀEÐIeÐfóð ô �?Š?˜7×#Ò#Ø×%Ñ%¡i°¸¸sÓ&CÔDÚð	Ø×%Ñ%¡i°¸¸sÓ&C×DñU 0ð` -Ðòð !ÐØ'(Ð$à€MØÐØÐØÐöô œ7 6¨7°DÓ9¸8ÀTÓJ€LØÒØ4ˆð
ˆó 'ˆIÙ$¤W¨\¸9ÀdÓ%KÈY×WÔWÙñ 'ð Ò Û+�	Ù(¬°¸yÈ$Ó)OÐQZ×[Ô[Ùñ ,ð CLÒBW”7˜9 n°gÔ>Ð]d€LØÐ,Ô,ÜØ2°<°.Ð@^Ð_ó
ð 	
ô 'ˆÙ+¨G°KÕ,@ÓAˆ	Ù0°Ð9IÕ1JÓKˆàÒ$ØˆGØ "ÐØ%'Ð"ä%(¨°NÖ%CÑ!�˜Ü˜g›,�Ø˜]Ô*Ø"�GØ%¨Õ*Ð%Ü*-Ð.AÀ7Ó*KÐ'Ø# vÔ-Ø)×0Ñ0°¸-¸¸Ð1IÔJØ.×5Ñ5°hÀ¸~¸Ð6OÖPà)×0Ñ0°¸¸-Ð1HÔIØ.×5Ñ5°h¸~ÀÐ6NÖOà%×,Ñ,¨WÔ5Ø*×1Ñ1°(Ö;ñ &D÷  Ø-�	Ø!7�äˆy˜�|ÓÐ ;Ô;Ø,°Õ1Ð,Úà×&Ñ&à˜YØ  .ð÷	
ñC 'ðP (¨!Ô+Ø�‰ØÐ9Ð:Ð:TÐUpÐTqð r8Ø8SÐ7TÐTuðwô	
ð
 ˜!ÔÐ 5Ò AØ�‰ØLØØ!ô	
ð
 &¨Ô)Ø�‰ð#à*ô	
ð ˜1ÔØ�‰Ø\ØØ ØØô	
÷ 'Ð&ÙÐKÔLØÐØˆØ ÐØˆà4PÒ4\Ñ0Ðbdˆ	ßÙ  ¸4Ô@ˆHÙ!8¸À+Õ9NÓ!OÐPQÕ!RÐÙ&=¸hÐGWÕ>XÓ&YÐZ[Õ&\Ñ#à!#ÐØ&(Ð#Ü!$Ð%7Ó!8Ð÷
	ð 
	ô /ˆGØ˜kÕ*¨1Õ-ˆGØÐ/Õ0°Õ3ˆHØˆHÜ˜W›ˆJà˜ZÖ'ß!ß-Ø)Ð,BÕBÐEdÔdÙ(œNÙ$Ø&×-Ñ-Ð.@ÔAØ+×2Ñ2Ð3JÔKØ&Ð*@Õ@˜à;¸nÕL�	Ø ”>Ù ”NÙä 	¨:¸Õ+@ÓA�	Ø ”>Ù ”NÙà Õ*�Ø×%Ñ% g¨h°sÐ&;Ô<Ø#×*Ñ*¨8°H¸SÐ+AÔBØ )Õ+�Ø�à!Ð%DÖDÙ –NñC /÷F Ø<¼sÀ>Ó?RÕRˆNØ Ô!Ü  ¨N¸AÓ>�Ø 6Ô)Ø'- h°Õ&?À>Õ%Q�NØ,-¨3°Õ+?ÐCVÕ*VÑ'à"×)Ñ)¨6¨(°^Õ*CÔDØ'×.Ñ.°¨s°^Õ/CÔDØ×$Ñ$à .Ð!1Ø$Ð':Ð&;ðôð #4Ðà 5Ô(Ø�‰ÐAÔBÜØ#Ù6ô
‰ð 
" VÔ	+Ø�‰ÐBÔCÜØ#Ù6Øô
‰ð
 
" YÔ	.Ø�‰Ð6Ô7Ø0°Õ3ˆÜ�Š�~Õ&à�‰Ð,Ô-Ø0ˆä˜œ3œrŸyšyÐ)LÈcÓR×WÐWÐVWÓXÓY€MØ�qÔä% n°^°mÐ&DÈA×N‰LˆC�Ø˜kÕ*¨1Õ-ˆGØˆGØÒ$ð!Ø'×.Ñ.¨w°t­}ÐRWÐ.ÓX×`Ñ`ÐaeÐgjÓk�Gð �H‰HØ@ØÜ�M¤3 ~Ó#6Ó7Ü�G“Ø˜•öñ O÷  ÐØ@IÒ@U”w˜y¨.¸!Ô<Ð[\ˆô ˜q¤# nÓ"5°zÔBó+
ñ C�ô Ø˜u u¨zÕ'9Ð:ØÜ$ Y°ÀÓH÷ñ
 Cð 	(ð +
ð ˆØÐã4ˆEØÐ)Õ*ˆDØ˜T Q™YŸO™OÓ-×2Ñ2Ó4Õ4ˆLØ ¨¡§¡Ó 1× 6Ñ 6Ó 8Õ8Òñ 5ð
 	�‰Ð5°l°^ÐDÔEØ�‰Ð9Ð:JÐ9KÐLÔMØ�‰Ð.Ð/?À,Õ/NÐ.OÐPÔQð +Ð*ñ (ó	+
ñ (�ð œUŸ\š\¨%°Õ*<ÄEÇJÁJÔOóñ (ð	 	(ð +
ð +Ð*øôw ô 	ÜØAÄ$ÀwÃ-ÀÐPZÐ[^ÐZ_Ð_`Ðaóàðûð	ûôf !ô !Ø “Gð!üò+
ùò*+
s6   Îk8å*l'ç,l;ê<8m ë8l$ìlìl$ì'l8ì7l8r#   r  r6   )NNr¨   é
   NN)"Ú__doc__Ú
__future__r   rë   rê   Útypingr   r   r   r   r   r   rf   Ú	attn_maskr	   Údatar
   rñ   r   Údatasetsr   r   r   r   rS   r1   r   Ú
LongTensorr<   r#   r2   r9   r  Ú__all__r   r   r   Ú<module>r%     sÂ   ðñ Må "ã 	Û ß =× =ã å )Ý Ý  ð)Ý-Ý=ð
 Øˆˆc�5˜˜c� E×$4Ñ$4Ð4Õ5Ð5Õ	6Õ7Øˆ…IØˆˆc�…OØØð	õÐ ÷õ$÷2Q÷c+ðL Ð3Ð
4‚øðQ ô )Ø$(Ð(€IÒ!ð)ús   ¸B5 Â5CÃC