
    oi                     H   S SK r S SKJrJrJrJr   S SKJr  \rSSKJ	r	  SSK
JrJrJr  SS	K
7  SS
KJr  SSKJr  S SKJrJr  S SKJs  Jr  S SKJr  S SKJrJrJr   S SKJ!r!  S SKJ"r#  S SK$J%r%J&r&J'r'  S SK(J)r)  S SKJr*  S SK+Jr,  S SK-J.r.  S SK/J0r0J1r1J2r2J3r3  S SK4J5r5  S SK6J7r7  S SK-J8r8  S SKJr*  S SK9r9S SK:r:S SK;r;S SK<r<S SK=r=S SK>J?r?J@r@JArAJBrB  S SKCrCS SKDrDS SKErES SKFrF S SKGJHrH  SSKJJKrKJLrLJMrMJNrNJOrOJPrP  S/rQ\R" 5       qS/ SQrTS/rUS/rVS SKJWrWJXrXJYrYJZrZ   S S KJ[r[  \[r\S"\\R                  ;   r^S S#KJWrWJXrXJYrY  \X" S$SS%S&9r_S'\_l`        S S(KaJbrbJcrc   \ R                  R                  rfS) rg " S* S5      rhg!   S SKJr   GNd= f!   S SKIJHrH   N= f!   S S!KJ\r\   Nz= f!   Srf N<= f)+    N)BitsAndBytesConfigAutoProcessorAutoTokenizerAutoModelForCausalLM)AutoModelForImageTextToText)AutoModelForVision2Seq   )post_patch_loss_function   )__version__importlib_version_prepare_model_for_qat)*)patch_saving_functions)is_distributed)&unpatch_unsloth_gradient_checkpointing,unpatch_unsloth_smart_gradient_checkpointing)
LoraConfigTaskTypeget_peft_model)PeftModelForCausalLM)set_seed)get_peft_regexSKIP_QUANTIZATION_MODULES(requires_grad_for_gradient_checkpointing)logger)r   )
_get_dtype)dtype_from_configadd_dtype_kwargsfix_lora_auto_mappingget_auto_processor)patch_model_and_tokenizer)prepare_model_for_training)Version)OptionalTupleListUnion)	get_token)is_hipget_device_typeDEVICE_TYPEDEVICE_TYPE_TORCHDEVICE_COUNTALLOW_PREQUANTIZED_MODELSFastBaseModel)
qwen2_5_vlgemma3mistral3qwen3_vlmllamagpt_oss)GenerationConfigCompileConfigHybridCache
AutoConfig)PreTrainedConfig)PretrainedConfigtorch_dtype)r7   r8   r9   Fzreduce-overhead)	fullgraphdynamicmodeT)convert_lora_modulesreturn_lora_modulesc           	         [        U5      S:w  a  US   nOSU;   a  US   nOSU;   a  US   nOsSU;   a  US   nOgSU;   a  US   nO[SU;   a  US   nOO[        [        UR                  5       5      5      n[	        X$   5      [
        R                  La  [        S5      eX$   n[	        U5      [
        R                  L d   eUR                  S   n[        R                  U 5        [        [        U R                  5      5      n[        R                  R!                  SS	5      S
:H  nU(       a  [
        R"                  n[%        S U R                  R&                   5       5      nU=(       d    [)        U R                  S5      nU R                  R&                  S   n	[)        U S5      (       aa  [)        U S5      (       aP  [*        R,                  " U R.                  5      R0                  R                  5       n
SU
;  a  UR3                  SS 5        U	[4        ;  a  U n[)        US5      (       a  [)        US5      (       aX  [*        R,                  " UR.                  5      R0                  R                  5       n
SU
;   a
  S[4        U	'   O/SU
;   a
  S[4        U	'   OUR6                  n[)        US5      (       a  M  U	[4        ;  a	  S [4        U	'   [4        U	   nUb	  XB;  a  SX$'   [9        U R                  SS 5      nUb  [)        US5      (       a  US   nUR3                  SU5      US'    US   R;                  U5      US'   [        R                  R!                  SS	5      S
:X  a8  [
        R<                  " [>        [
        R@                  S9n[
        R@                  nO[
        R<                  " [>        US9n[
        RB                  RE                  US5        [
        RB                  RG                  US5        SU;   aF  [
        RB                  RE                  US   S5        [
        RB                  RG                  US   S5        SU;   aF  [
        RB                  RE                  US   S5        [
        RB                  RG                  US   S5        [9        U R                  SS 5      n[9        U S[9        U SS5      5      (       aI  [        R                  R!                  SS	5      S	:X  a  S nO$[I        [J        5      [I        S!5      :  a  S nOS nOS nUbx  [9        [9        U R                  S"U R                  5      S#S 5      nUS:X  d  [	        U5      [L        La  [9        U SS5      SL a  S nO![I        [J        5      [I        S!5      :  a  S$nOS nU(       a  S nS%U;   a  XS%   l'        Ub  [P        US%   l)        OXS'   Ub	  [P        US&'   U RU                  5        HU  u  nn[)        US'5      (       a   U?+[)        US(5      (       d  M-  S)[Y        URZ                  R\                  5      ;   d  MR   U?-MW     [
        R^                  " 5          U   U R`                  " U0 UD6nS S S 5        S S S 5        U RU                  5        HU  u  nn[)        US'5      (       a   U?+[)        US(5      (       d  M-  S)[Y        URZ                  R\                  5      ;   d  MR   U?-MW     W$ !    GN= f!    N= f!    GM  = f! , (       d  f       N= f! , (       d  f       N= f!    N= f!    M  = f)*Nr   	input_idsinputinput_featuresinput_embedsinputsz4Unsloth: You need to pass in input_ids to .generate! UNSLOTH_BFLOAT16_MIXED_PRECISION01c              3   D   #    U  H  nUR                  S 5      v   M     g7f))ForConditionalGenerationForVisionText2TextN)endswith).0xs     O/home/james-whalen/.local/lib/python3.13/site-packages/unsloth/models/vision.py	<genexpr>-unsloth_base_fast_generate.<locals>.<genexpr>   s$      *A 	


EFF*s    vision_configgenerateforwardtoken_type_idsmodelnum_logits_to_keeplogits_to_keepr   eos_token_id__iter__pad_token_idpixel_valuesUNSLOTH_FORCE_FLOAT32)device_typedtypeattention_maskcache_implementation_supports_static_cache_can_compile_fullgraphT!UNSLOTH_DISABLE_STATIC_GENERATIONstaticz4.56.0.dev0text_configsliding_windowhybridgeneration_configcompile_config_flex_attention_cache_cachecache_utils)1lennextiterkeystypetorchTensor	TypeErrorshaper0   for_inferencer   r   configosenvirongetbfloat16anyarchitectureshasattrinspect	signaturerW   
parameterspopNUM_LOGITS_TO_KEEPrY   getattrtoautocastr-   float16_dynamomark_staticmark_dynamicr$   transformers_versionintrd   _compile_configrm   named_modulesrn   strro   	__class__inference_mode_old_generate)selfargskwargsrD   keybszrb   do_bfloat16_mixed_precisionis_vlmarchrt   mmodel_eos_token_id
autocasterrd   swanamemoduleoutputs                      rR   unsloth_base_fast_generater      sM   
 4yA~G			;'		F	7O		V	#+,		6	!>*		V	8$	4&'ELL0RSSK		?ell***
//!
C%(56E 	

93?3F   #  ** F <wt{{O<F;;$$Q'D tZ  WT9%=%=  .99>>@4'JJ'.
 %% a!!q)$$((3>>CCE'4//C&t,%-/?&t,A a!! ))'+t$
T
"C
3, !ndC%'2Dj*Q*Q/2#ZZ8JKF>!'!7!:!:5!A~
 
zz~~-s3s:^^2CU]][
^^2CUS

 
MMi+	MMy!,6!!!&)9":A>""6*:#;Q?6!!!&)9":A>""6*:#;Q? #4;;0FM&6NPT(U  ::>>=sCsJ#+ )*W]-CC#'  $, #'DKK<>NPT
 1HS	,D2D9TA#+ +,w}/EE'/$'/$"#f$;O"#8+9HF&'6)=%&+'6F#$ **,f62330 68$$#fmm>U>U:V)VM - 
			##T4V4 ",	 **,f62330 68$$#fmm>U>U:V)VM - MAF
 ",		
s`   [ [[4[.7[
[.[?=\[
[[
[+	'[..
[<?\\c                       \ rS rSr\SSSSSSSSSSSS\SSSSSSSSS	SS
SSS4S j5       r\SSSSSSSSSSSSS
SSSS0 \R                  SSS4S j5       r	\     SS j5       r
\S 5       r\SS j5       rSrg)r0   iA  zunsloth/Llama-3.2-1B-Instructi   NTF
sequentialunslothg      ?iO  @   c                 $   U(       a/  [         R                  R                  SS5      S:w  a  [        S5      eU
c  [        S5      e[         R                  R                  SS5      S:X  a!  U R	                  5       [         R                  S'   U[
        [        4;   nUS L=(       a    US LnU(       d  U(       a  [        O[        nU
S   nUS	:X  a  U
 H  nUS	:w  d  M    O   S
n U(       a<  U(       a5  [        S U
 5       5      (       d  [        SSR                  U
5       S35      e[        S U
 5       5      (       a  Sn S[         R                  S'   U	(       a  [        S5        [        U5      n[        5       n![        S:X  a  [        R                   R#                  S5      n"U"R$                  S:w  a  U"R$                  S-   OSn#[        R&                  R                   n$SU"R(                   SU"R*                   SU$ S3n% S[-        S5       S3n&O[        S:X  aq  [        R                   R#                  S5      n"U"R$                  S:w  a  U"R$                  S-   OSn#[        R&                  R.                  n$SU$ S3n% S[-        S5       S3n&O[        S:X  ac  [        R0                  R#                  S5      n"U"R$                  S:w  a  U"R$                  S-   OSn#[        R&                  R0                  n$S U$ S3n%Sn&O[3        S![         35      e[5        U"R6                  S"-  S"-  S"-  S#5      n'UR9                  5       n(U(R;                  S$S%5      R;                  S&S'5      n(SR                  / S(P[<         PS)PU( PS*P[>         PSPU& PS+P[A        S,5       P[A        S,5       PS-PU# PS.P[B         PS/PU' PS0P[D         PS1P[A        S,5       PS2P[A        S,5       PS3P[        R<                   PSPU% PS4P[F         PS5P[A        S,5       PS6P[I        U!5      RK                  5        PS7P[L         PS8P[N         PS9P5      n)[        U)5        S:[         R                  ;   a$  [         R                  S:   n*U*S;;   a  Sn*U*S<;   a  Sn*OSn*U*S:X  a  [        S=5        U*S:w  a  S[         R                  S:'   [Q        UR                  S>S5      5        Uc(  U!(       d  [        RR                  O[        RT                  nO[         R                  R                  S?S5      S:X  a%  U[        RR                  :X  a  [        RT                  nOAU[        RT                  :X  a-  U!(       d&  [V        RX                  " S@5        [        RR                  nU[        RR                  [        RT                  [        RZ                  4;   d   eUn+Sn,[         R                  R                  S?S5      S:X  a!  [        SAU SB35        [        RR                  n+S
n,S n-S n.[         R                  R                  SCS5      S:w  Ga	  [         R                  SC   n-U-R]                  SD5      SE:  d   eU-R_                  SDSE5      u  n/n0n1n2n3U/SF:H  n4U/SG:H  =(       d    U/SH:H  =(       a=    U[        RR                  :H  =(       d#    [         R                  R                  S?S5      S:H  n5U4(       d  U5(       a[  [a        U05      b  [a        U05      n[a        U15      b  [a        U15      n+U+n.U2n-[c        U3Re                  5       5      S:w  a  [g        U35        OS n-S n.SIU;  a  SJUSI'   U(       dD  [         R                  R                  SKS5      S:X  a  [        SLUR9                  5        SM35        USI	 S n6UR                  SNS 5      n7U(       a  U(       d  U(       a  [        SO5        SnSnSn[i        U5      [i        U5      -   [i        U5      -   SP:  a  [        SQ5      eU(       a!  [k        S
S
SRU+[l        Rn                  " 5       SS9n6OOU(       a  [k        S
[l        Rn                  " 5       ST9n6O*U(       a  S n6O U(       d  U(       d  U(       d  [        SU5        U(       ad  S[         R                  SV'   U[        RT                  :X  a1  US
:w  a  [        SW5        O>[        SX5        S[         R                  SY'   O[        SZ5        OS[         R                  SV'   U6b  [q        U6S[5      (       d  S\ U6l9        U(       d  U(       a2  S]U R	                  5       ;   d  S^U R	                  5       ;   a  OU7c  U6USN'   OUc  [t        Rv                  " U UU	S_9n[q        USN5      (       a  SS`K<J=n8  UR|                  n9U9Sa   n:U:Sb:X  a  SbU8;  a  ScU8;  a  [        Sd5      eU8Sc   n;OU8U:   n;0 n<U:Se:X  a  OLU(       a)  Sf[        R                  " U;5      R                  ;   a  S
U<Sf'    U;R                  " U940 U<D6n9U7c  U9USN'   Un=U,(       a  [        RT                  n=[        U=U5      n[t        Rv                  " U UU(       a  SJOSgU	Sh9n>[        U>5        [        5       n?U(       Gd}  UR                  SiS 5      n@URv                  " U 4UUU	Sj.UD6nA[q        UASk5      (       a%  [        WAR                  5      UAlJ        [        UAlL        U(       Ga  [        [         R                  R                  Sl5      =(       d    [         R                  R                  Sm5      5      (       a  GO[         R$                  Sn:X  a  GOWAR                  5       nBUBR                  R                  5       UBR                  R                  -  nC[5        UCS"-  S"-  S"-  SP5      nD[        SoUD Sp35        UBR                  Sq5        [        R                   R                  5         [        R                  " 5         GOSSrKVJWnEJXnFJYnGJZnHJ[nI  U(       a  [        WI" 5       5      n[        SsU St35      eU U>l^        U(       a  [        U U>5      u  nn [        R                  " WE5      R                  nJ[        U U>UUUUU UUUUUSu9nKUJ H  nLULWK;  d  M  WLU;   d  M  UWL   WKUL'   M     WE" S0 WKD6nMWF" UMU>USv9u  nNnOWG" UOU>UU6USw9nAUMUAlc        UAR                  R                  UAlJ        [        R                  " WHUAR                  5      UAlL        U?R                  5         U*[         R                  S:'   [         R                  R                  SxS5      S:X  ar  [        WAR                  5       5       HU  u  nPu  nQnRUQR                  Sy5      (       d  SzWQ;   d  S{WQ;   d  M-  [q        WRS|5      (       d  M@  [        RZ                  WRlj        MW     U-bO  [        R                  " 5          [        WAR                  5       5       H  u  nPu  nQnR[g        U-5        M     S S S 5        [        S#5       Hl  nN[        R                  " 5         [        S};   a   [        R                   R                  5         MB  [        S:X  d  MN  [        R0                  R                  5         Mn     Uc  U OUnU(       a  U(       d   UR                  R                  S~5      (       a  URw                  USUUUU	S9nSO URw                  USUU	S9nS[q        WSS5      (       a  WSR                  nTSUTlp        [q        UTS5      (       a"  WTR                  WSlq        UTR                  USlr        [q        WTS5      (       a"  WTR                  WSls        UTR                  USlt        [q        WTS5      (       a"  WTR                  WSlu        UTR                  USlv        [        WAWSSSU,U.S9u  nAnS[        UAUS5      u  nAnS[        UA5      nA[q        UAS5      (       a!  WAR                  R                  S[<        05        [        WAS
S9  WSc  AA[        S5      e[        WSS
S9  SSK}J~nU  [        UU5        SUSlp        [q        USS5      (       a  SWSR                  lp        WAnV[q        UVS5      (       a>  UWVl        WSUVl        U(       d  S
OSWVl        UVGR                  nV[q        UVS5      (       a  M>  UWVl        WAGR	                  5        H
  nRUURl        M     WSWVl        U(       d  S
OSWVl        [         R                  R                  SS5      S:X  a  [q        WASk5      (       ap  WAR                  R                  S:w  aV  WAR                  UAl        UAGR
                  GR                  G[        l        G[        GR                  " G[        UA5      UAlI        U	WAl        G[        GR                  UAUU	UWSUS9nA[        S#5       Hl  nN[        R                  " 5         [        S};   a   [        R                   R                  5         MB  [        S:X  d  MN  [        R0                  R                  5         Mn     WAWS4$ !   Sn& GN= f!   Sn& GN= f!    GN8= f! , (       d  f       GNM= f!   [        USUU	S9nS GN= f)NUNSLOTH_VLLM_STANDBYrJ   rK   zPUnsloth: UNSLOTH_VLLM_STANDBY is True, but UNSLOTH_VLLM_STANDBY is not set to 1!zTUnsloth: Please use FastModel or FastVisionModel and not use FastBaseModel directly!UNSLOTH_MODEL_NAME r   siglipTc              3   2   #    U  H  o[         ;   v   M     g 7fN)VLLM_SUPPORTED_VLMrP   r   s     rR   rS   0FastBaseModel.from_pretrained.<locals>.<genexpr>{  s     Jkd11k   zUnsloth: Fast inference is only supported for Language models and Qwen2.5-VL, Gemma3 among vision models. Found architectures: z, !c              3   2   #    U  H  o[         ;   v   M     g 7fr   )VLLM_NON_LORA_VLMr   s     rR   rS   r     s     A[T(([r   FUNSLOTH_USE_NEW_MODELzcUnsloth: WARNING `trust_remote_code` is True.
Are you certain you want to do remote code execution?cudaz. zNVIDIA GPU Device. zCUDA: .z. CUDA Toolkit: z vLLM: vllmhipzAMD GPU Device. zROCm Toolkit: xpuzIntel XPU Device. zIntel Toolkit: z"Unsloth: Unsupported device type: i      _Vl__VL__Moe_MoEz==((====))==  Unsloth z: Fast z patching. Transformers: z
   \   z	   /|    zNum GPUs = z. Max memory: z GB. Platform: z.
O^O/ z_/ z    Torch: z	 Triton: 
z        /    Bfloat16 = z. FA [Xformers = z. FA2 = zA]
 "-____-"     Free license: http://github.com/unslothai/unslothHF_HUB_ENABLE_HF_TRANSFER)Falsefalse)TruetruezUUnsloth: Fast downloading is enabled - ignore downloading bars which are red colored!local_files_onlyr`   z9Device does not support bfloat16. Will change to float16.z%Unsloth: Using float16 precision for z won't work! Using float32.UNSLOTH_FORCE_CUSTOM_DTYPE;   allr   ztorch.float16attn_implementationsdpaUNSLOTH_ENABLE_FLEX_ATTENTIONz	Unsloth: z1 does not support SDPA - switching to fast eager.quantization_configzcUnsloth: You selected full finetuning support, but 4bit / 8bit is enabled - disabling LoRA / QLoRA.r	   zCUnsloth: Can only load in 4bit or 8bit or 16bit, not a combination!nf4)load_in_4bitbnb_4bit_use_double_quantbnb_4bit_quant_typebnb_4bit_compute_dtypellm_int8_skip_modules)load_in_8bitr   zMUnsloth: QLoRA and full finetuning all not selected. Switching to 16bit LoRA.UNSLOTH_ENABLE_FULL_FINETUNINGzUnsloth: Using bfloat16 full finetuning which cuts memory usage by 50%.
To enable float32 training, use `float32_mixed_precision = True` during FastLanguageModel.from_pretrainedzUnsloth: Using full float32 full finetuning. To enable bfloat16 training to reduce VRAM usage by 50% albeit with a slightly higher loss, do:
use `float32_mixed_precision = False` during FastLanguageModel.from_pretrainedrI   zUUnsloth: Float16 full finetuning uses more memory since we upcast weights to float32.get_loading_attributesc                      0 $ r    )r   r   s     rR   <lambda>/FastBaseModel.from_pretrained.<locals>.<lambda>M  s        zgpt-oss-20bzgpt-oss-120b)tokentrust_remote_code) AUTO_QUANTIZATION_CONFIG_MAPPINGquant_methodbitsandbytesbitsandbytes_4bitzKUnsloth: AUTO_QUANTIZATION_CONFIG_MAPPING does not have `bitsandbytes_4bit`zcompressed-tensors
dequantizeeager)r   r   r   load_in_fp8)
device_mapr   r   rV   WSL_DISTRO_NAMEWSL_INTEROPntz.Unsloth: Offloading embeddings to RAM to save z GB.cpu)	load_vllmget_vllm_state_dictconvert_vllm_to_huggingfacegenerate_batchesget_lora_supported_ranksa(  Unsloth: `fast_inference=True` cannot be used together with `full_finetuning=True`.
Reason: fast_inference is optimized for inference-only workflows and does not currently support full fine-tuning.
Workaround: disable fast_inference, or use parameter-efficient fine-tuning (e.g. LoRA with rank r=z).)
model_namer{   gpu_memory_utilizationmax_seq_lengthrb   float8_kv_cacheenable_loramax_lora_rankdisable_log_statsuse_bitsandbytesunsloth_vllm_standbyis_vision_model)r{   r   )r    UNSLOTH_HIGH_PRECISION_LAYERNORM)normnorm1norm2norm3norm4	layernorm
layer_normweightr   r   rM   left)padding_sider   languagetaskr   )r
  r   r   	tokenizer	bos_token	eos_token	pad_token)downcast_ropefix_embeddingsdo_forced_float32correct_dtyper{   unsloth_versionvisionzKUnsloth: The tokenizer is weirdly not loaded? Please check if there is one.TrainerrY   UNSLOTH_DISABLE_FAST_GENERATIONr   )use_gradient_checkpointingr   
model_typer  float32_mixed_precisionr   )r|   r}   r~   RuntimeErrorlowerr   r   r   r   r   joinprinthf_loginis_bfloat16_supportedr,   rv   r   get_device_propertiesr   versionmajorminorr   r   r   
ValueErrorroundtotal_memorytitlereplacer   r   chrr.   platform_systemtriton_versionr   upperxformers_versionHAS_FLASH_ATTENTIONget_statisticsr   r   r   warning_oncefloat32countsplitevalrq   stripexecr   r   r   copyr   r   r:   from_pretrainedtransformers.quantizers.autor   r   KeyErrorr   r   r   	from_dictr    verify_fp8_support_if_applicableRaiseUninitializedr   make_fast_generate_wrapperrV   fast_generateerror_out_no_vllmfast_generate_batchesboolget_input_embeddingsr  numelitemsizer   empty_cachegccollectunsloth_zoo.vllm_utilsr   r   r   r   r   maxNotImplementedErrorr   fast_inference_setupgetfullargspecr   dictvllm_engine	functoolspartialremove	enumerater   rO   _pre_set_compute_dtypeno_gradrange__name__r!   r  r
  r  bos_token_idr  r\   r  r^   r"   patch_tokenizerr
   r{   updater   transformers.trainerr  patch_gradient_accumulation_fixr   _saved_temp_tokenizeris_loaded_in_8bitrY   modulesr   __doc__r   types
MethodType_unsloth_trust_remote_coder0   post_patch_model)Wr   r   rb   r   r   load_in_16bitfull_finetuningr   r   r   model_typestokenizer_name
auto_modelr  supports_sdpawhisper_languagewhisper_taskauto_configoffload_embeddingr  fast_inferencer   r   random_stater   r   r   r   r   
is_whisperauto_processormodel_type_archvllm_enable_loraSUPPORTS_BFLOAT16	gpu_statsgpu_stats_namegpu_versiongpu_stats_snippetvllm_version
max_memory	arch_name
statisticsold_hf_transferbnb_compute_dtyper  custom_datatyper  checker_dtype_bnb_compute_dtype_custom_datatypeexecute_codeallow_all_runsallow_float16_runs
bnb_configuser_quantization_configr   r   r   	quantizerquantizer_kwargsr=   model_configraise_handlerr   rY   embed_tokensnbytesngbr   r   r   r   r   allowed_argsload_vllm_kwargsallowed_argllm_quant_state_dictjjr   r   r  _FastBaseModel__tokenizerr  r   sW                                                                                          rR   r<  FastBaseModel.from_pretrainedB  sB   @  BJJNN3I3$OSV$Vb  f  ::>>.3r9/9/?/?/ABJJ+, 68STT%T1Nl$6N
+1Zm%a.h&#."h. $/  nJkJJJ",,0IIk,B+C1F 
 A[AAA
  %.1

*+H 13& 

88;I)22)=	%CX   --,,K"((99??:KK[\g[hhi j"!():6)B(C1E E!

88;I)22)=	%CU   --++K"0Q ?"!():6)B(C1E E!		77:I)22)=	%CW   --++K"1+a @LA+OPP911D84?$FJ
#))+	%%ff5==ffM	O O$ O[M O O OC\ O]q\r Ors O  uA  tB O B Ob'Or7)O#,O-;,<O<GOHT~OUcOdncoOo~O @O  POPOG9OO #ByO(3O494E4E3FOFHOIZH[O[dOesdtOtvO 2wiO 0O 144E0F0L0L0N/OO PaO br`rO s{O |O  {POPNO 	 	j '"**4 jj)DEO"44"%"22"%!Oc!g c!69BJJ23 	vzz"4e<==):EMMEZZ^^3S9S@%enn$->K MMEFFFF!!::>>1373>77HHcd !& $ ::>>6;rA jj)EFO"((-222%%c1- PGV/1A< %-N 9$B?(B" & G::>>"93?3F	  !3<+ LE*+7(,-?(@% 1"2|))+,1&"& $ &/,2F()zz~~=sCsJ 5 5 788ij ,-
#)::.CT#J u !L L!M|s<003}3EEJU  +#,0&+):(A(F(F(HJ +#(A(F(F(HJ Jl?_ ;>BJJ78&*d2D
 i
 FIBJJABk <?BJJ78 !'*>V*W*W0JJ- < !1!1!33!Z%5%5%77+34>F01"(88!(9
 {$9:: '2&E&E#2>B !N2&.NN*2RR&i  !AAT UI @ NI#% #77 &(G,=,=i,H,S,SS9=(6.7.A.A//3C/+
 078K45 ..K!+v6!11,9&w 1	
 	)6*, **]D9K..	' $5	 	E uj))&@&P#.?+ JJNN#45V9V  WW_#(#=#=#?L)00668<;N;N;W;WWF 4t ;Q?CJ3%tTU OOE* JJ**,JJL   #$<$> ?). /<_B	@  '1L#-A.*
 #11)<AAL#'%)?!/"1. -$5#/';"(   ,&66;&;P4:;4G$[1  ,
 /./C #6%"(#A
 0 "(E !$E"'"3"3"<"<E*3*;*; %"3"3+E' 	 3B

./ ::>><cBcI&/0C0C0E&F"NT6MM"NOO"d*#t+fh//49MMF1 'G &*3E4G4G4I*J&Bv) +K ! qAJJLo-

&&(%		%%'  (6'=>*2E2E2N2N&3
 3
 '66%+#$5 7 I*::"#)!(9	 ; 	 9k**#--K'-K${K00&1&;&;	#)4)A)A	&{K00&1&;&;	#)4)A)A	&{K00&1&;&;	#)4)A)A	&4!" 1)
y +5)<y(/ 5(##LL!2K @Aut4]  	y48 	1'0 "(	9k**/5I,a!!-A&/A#.=$5AA a!! *mmoF$2F! &"+*9du ::>>;SASHW:N
 N
 ~~&&*FF&+nn#5:5H5H5P5P*2!&!1!12Le!T+<(..)C 1(!&= / 
 qAJJLo-

&&(%		%%'  iy"!"!|h !@."#)!(9		sK   ;AH 6AH AH /2AH'/AH9 HAHHAHHAH$H'
AH6H9AI
   g        none _unsloth_temporary_saved_buffersc           
      x	   [         R                  R                  SS5      S:X  a  [        S5        U $ [	        U5        [        U5      [        La  [        S[        U5       S35      eUS::  a  [        S[        U5       S35      e[        U [        5      (       a  [        S	5      eUS
:X  a  SnSnSnSn	Ub  US
:X  a  [        U UUUU	S9nO [        U5      [        [        [        4;   d   e[        U S5      (       a  [        U R                   S5      (       a]  [        U R                   R"                  S5      (       a8  [%        U R                   R"                  R&                  SS 5       c  [        S5      eU(       a  [        S5      eU R(                  R*                  [,        ;   a  [        S5      e[/        S5       Hl  n[0        R2                  " 5         [4        S;   a   [6        R8                  R;                  5         MB  [4        S:X  d  MN  [6        R<                  R;                  5         Mn     U R>                  n[A        UXEUU 5      n0 [C        5       EUEnUS	 [D        RF                  " [H        5      RJ                  RM                  5       n[I        S0 URO                  5        VVs0 s H  u  nnUU;   d  M  UU_M     snnD6n[Q        U US9n [S        U U5      n Ub  [        S5        [U        U U5      n [W        U 5        [Y        U 5        [%        U SS5      n[Z        R]                  U UUS9n Xl        U R_                  5        H
  nUUl        M     [/        S5       Hl  n[0        R2                  " 5         [4        S;   a   [6        R8                  R;                  5         MB  [4        S:X  d  MN  [6        R<                  R;                  5         Mn     [a        U SS9  [c        U 5        [d        Rf                  " [Z        Rh                  U 5      U l4        [d        Rf                  " [Z        Rj                  U 5      U l5        U n [        U S5      (       as  [d        Rf                  " [Z        Rh                  U 5      U l4        [d        Rf                  " [Z        Rj                  U 5      U l5        U Rl                  n [        U S5      (       a  Ms  U $ s  snnf ) Nr   rJ   rK   zEUnsloth: Full finetuning is enabled, so .get_peft_model has no effectzUnsloth: Rank of z must be an integer.r   z must be larger than 0.z7Unsloth: You already added LoRA adapters to your model!z
all-linearT)finetune_vision_layersfinetune_language_layersfinetune_attention_modulesfinetune_mlp_modulesrS  
llm_enginevllm_configlora_configz,Unsloth: LoRA is not enabled for this model!zfUnsloth: Finetuning vision layers is not supported for fast_inference. Only text layers are supported!z^Unsloth: LoRA finetuning for Llama 3.2 aka mllama models is not supported with fast_inference!r   r  r   r   )r  z:Unsloth: Applying QAT to mitigate quantization degradationrg  F)r  r   r  rY   r   )7r|   r}   r~   r!  transformers_set_seedru   r   rx   r   
isinstancer   r  r   listtupler   rS  r  r   r  r{   r  r   rZ  rK  rL  r,   rv   r   rJ  r   r   validate_loftq_configlocalsr   r   r   r   rt   itemsprepare_model_for_kbit_training_get_peft_modelr   r    r   r0   rh  rc  r   patch_peft_fast_inferencerT  rU  for_trainingrz   rY   )!rY   rtarget_modules
lora_alphalora_dropoutbiasr  r  r  r  layers_to_transformlayers_patternr  rt  r   
use_rsloramodules_to_saveinit_lora_weightsloftq_config	task_typetemporary_location
qat_schemeensure_weight_tyingr   r  local_variablesallowed_parameterskvr  r   r   r   s!                                    rR   r   FastBaseModel.get_peft_model  s?   6 ::>>:C@CGW Ll+7#/Ax7KLMM6/Ax7NOPPe122I  \)%)"'+$)-&#' !^|%C+)?+C-G';N ',    5-(())<88E--88-HH%%00<<mT  ##QRR% #|  ||&&*;;
 #t 
 qAJJLo-

&&(%		%%'  --,,.?


h

 H%$..z:EEJJL  
 / 5 5 7S 711@R;Rtq!t 7S
 0)C
  {3!NO*5*=Ee$07#E+GO..)C 1 / 

  .mmoF$2F! & qAJJLo-

&&(%		%%'  	ut4!%( '..}/I/I5Q'//0K0KUSa!!&..}/I/I1MAN'//0K0KQOAOA a!! W Ts    R61R6c                   ^ [         R                  R                  SS5      S:H  n[        U5      [        L a  O;Sn[        [        U R                  5      5      [        R                  :X  a	  U(       a  Sn[        5       (       + nU(       d@  [        5         [        5         [        R                  mU4S jnU[        l        U[        l        [!        U UUUUUUUSS9	n SS	KJn	  U	R&                  R(                  S
:w  a  US:X  a  [+        S5      e[-        U SS9  U n
[/        U
S5      (       av  [/        U
S5      (       a6  [/        U
R0                  S5      (       a  SU
R0                  R2                  l        U(       d  SOSU
l        U
R8                  n
[/        U
S5      (       a  Mv  [/        U
S5      (       a6  [/        U
R0                  S5      (       a  SU
R0                  R2                  l        U(       d  SOSU
l        [;        S5       Hl  n[<        R>                  " 5         [@        S;   a   [        RB                  RE                  5         MB  [@        S:X  d  MN  [        RF                  RE                  5         Mn     [H        RJ                  " [L        RN                  U 5      U l'        [H        RJ                  " [L        RP                  U 5      U l(        U n
[/        U
S5      (       as  [H        RJ                  " [L        RN                  U
5      U
l'        [H        RJ                  " [L        RP                  U
5      U
l(        U
R8                  n
[/        U
S5      (       a  Ms  [S        USS 5      nUb  [S        USS 5      U:w  a  [        RT                  " 5          U RW                  5        H  u  p[        U5      [        RX                  RZ                  L d  M-  [S        USS 5      c  M=  [S        USS 5      c  MM  UR\                  U:X  d  M_  UR\                  UR^                  R`                  S   :  d  M  SUR^                  UR\                  '   M     S S S 5        U $ U $ ! , (       d  f       U $ = f)Nr   rJ   rK   TFc                 &   > SUS'   T" U /UQ70 UD6$ )NFuse_reentrantr   )functionr   r   _orig_checkpoints      rR   _nonre_checkpoint9FastBaseModel.post_patch_model.<locals>._nonre_checkpointW  s"    */''B4B6BBr   )r  r  rj  train_layernormstrain_embeddingtrain_lm_headr  patch_modules_to_saver   r  _fast_inner_training_loopz3Unsloth: Unsuccessfully patched inner_training_loopr  rY   ra  r  r	  r   r  r   r^   r\   r  padding_idx)1r|   r}   r~   ru   rF  r   r   r{   rv   r   r   r   r   torch_checkpoint
checkpointhf_modeling_utilsr#   r_  r  _inner_training_loopr[  r  r   r   ra  r  r
  rb  rY   rZ  rK  rL  r,   r   rJ  r   rT  rU  r0   r  rz   r   rY  r   nn	Embeddingr  r  ry   )rY   r  r   r  r  r  rj  r  r  r  r   r  r^   r   r   r  s                  @rR   rh  FastBaseModel.post_patch_model6  sf    **..)I3OSVV'(D0&*#,U\\:;u~~M# +0' +,,248:/::C +<'+<(*)C)-.-+&=$(

 	1 ((115PP!U*TUUut4 a!!q122122K@@EKA++55B.=$5AA a!! 1-..q..<<AG''11>*9du qAJJLo-

&&(%		%%'  '..}/I/I5Q'//0K0KUSa!!&..}/I/I1MAN'//0K0KQOAOA a!! y.$?!	>48LH$)$7$7$9LDF|uxx'9'99#FHd;G 't D P !' 2 2l B$*$6$69L9LQ9O$ODEf.@.@ A %: ! u ! s*    :Q>QQQ0%QQ
Qc                    [        U S5      (       d  [        S5      eS nU n[        US5      (       a'  U" U5        UR                  n[        US5      (       a  M'  U" U5        U R                  5         U R	                  5        H  n[        US5      (       d  M  SUl        M     [        U S5      (       a(  U R                  5       n[        US5      (       a  SUl        [        U S	5      (       a(  U R                  5       n[        US5      (       a  SUl        S
[        R                  S'   S[        R                  S'   [        b
  [        SSS9  U $ )Nr   zLUnsloth: I think you're passing a tokenizer, not the model to for_inference!c                     [        U S5      (       a  SU l        [        U S5      (       a  SU l        [        U S5      (       a  SU R                  l        SU l        g )Ngradient_checkpointingFtrainingra  r	  Tr   r  r  ra  r
  _flag_for_generation)r   s    rR   _for_inference3FastBaseModel.for_inference.<locals>._for_inference  sP    q233+0(q*%%"
q1227=''4%)A"r   rY   r  FrG  r  get_output_embeddingsrJ   UNSLOTH_RETURN_HIDDEN_STATESrK   UNSLOTH_RETURN_LOGITSdefaultstanceskip_guard_eval_unsafe)r   rx   rY   r8  rc  r  rG  r  r  r|   r}   torch_compiler_set_stance)rY   r  r   r   
embeddingss        rR   rz   FastBaseModel.for_inference  s+   ul++^ 		* a!!1A a!! 	q

 mmoFv78805- &
 5011335Jz:..&+
#5122446Jz:..&+
#58

12.1

*+$0%ySXYr   c                   ^ [        U S5      (       d  [        S5      eU R                  5        H  n[        US5      (       d  M  U?M     U4S jnU n[        US5      (       a'  U" U5        UR                  n[        US5      (       a  M'  U" U5        U R                  5         U R                  5        H  n[        US5      (       d  M  TUl        M     [        U S5      (       a(  U R                  5       n[        US5      (       a  S	Ul	        [        U S
5      (       a(  U R                  5       n[        US5      (       a  S	Ul	        S[        R                  S'   [        b
  [        SSS9  U $ )Nr   zKUnsloth: I think you're passing a tokenizer, not the model to for_training!
_fast_lorac                    > [        U S5      (       a  TU l        [        U S5      (       a  SU l        [        U S5      (       a  SU R                  l        [        U S5      (       a   U ?g g !    g = f)Nr  r  Tra  rightr  r  )r   r  s    rR   _for_training1FastBaseModel.for_training.<locals>._for_training  sq    q233+E(q*%%!
q1227>''4q011. 2s   &A* *A.rY   r  rG  r  Tr  rJ   r  r  Fr  )r   rx   r   r  rY   trainrc  r  rG  r  r  r|   r}   r  )rY   r  paramr  r   r   r  s    `     rR   r  FastBaseModel.for_training  sE   ul++] 
 %%'Eul++$ (	  a!!!A a!! 	a mmoFv7880J- &
 5011335Jz:..&*
#5122446Jz:..&*
#.1

*+$0%ySXYr   r   )TFNNN)T)r[  
__module____qualname____firstlineno__staticmethodr   r<  r   	CAUSAL_LMr   rh  rz   r  __static_attributes__r   r   rR   r0   r0   A  s   4!!+%.!"&!$!$9S	  S	 j  !%#'%)#"%. &&?#/[ [z  &*!"&m m^ - -^ 5 5r   )irv   transformersr   r   r   r   r   r   kernelsr
   _utilsr   r   r   saver   models.loader_utilsr   "unsloth_zoo.gradient_checkpointingr   r   torch.utils.checkpointutilsr  r  transformers.modeling_utilsmodeling_utilsr  peftr   r   r   r  r   r   r  unsloth_zoo.peft_utilsr   r   r   (transformers.models.llama.modeling_llamar   r   tritonr/  unsloth_zoo.utilsr   unsloth_zoo.hf_utilsr   r   r    r!   unsloth_zoo.patching_utilsr"   unsloth_zoo.training_utilsr#   r$   re  rT  r|   rK  mathtypingr%   r&   r'   r(   rer   sys
contextlibhuggingface_hub.utilsr)   huggingface_hub.utils._tokenra   r*   r+   r,   r-   r.   r/   __all__rR  r   r   r   PRE_COMPILE_INFERENCEr7   r8   r9   r:   r;   r<   rd  HAS_TORCH_DTYPEr   disablerM  rA   rB   compiler
set_stancer  r   r0   r   r   rR   <module>r     s    488 K J  ) 0 2 1 7 H H % : 
 < < 0 (  A A % <   	 	  / /   7/  
 V       R Q.-'  #3#;#;; E E
  
% % 9 9
rjK KM	433b76H.-(% $s/   E3 F F F 3E>FFF!