L ib UddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z m Z mZmZmZddlZddlmcmZddlmZddlmZmZmZmZmZddlmZddlm Z ddl!m"Z"dd l#m$Z$dd l%m&Z&m'Z'm(Z(dd l)m*Z*m+Z+dd l,m-Z-dd l.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZCddlDmEZEmFZFeFrddlGmHZHe$jeJZKejjddjeEvZO dwdePe*deeeQeReQfdeReQfdZSgdZTddgZUgZVeTD]:ZWeXeWeYreVjeSdxieW$eVjeSeW<gdZ[e\e]e^eVe[zZ_da`dZa dydZbdZcdZdd Zed!Zfd"Zgdzd#Zhd$Zidd%d&Zjd'Zkd(Zld{dd%d)Zmd{dd%d*Znddd+d,Zodd%d-Zpd.Zqdd%d/Zrdd%d0Zsdddd1d2Ztdddd1d3Zud4Zvd5Zwddd6d7Zxdd%d8Zyd9Zzddd:d;Z{d<Z|dwd=Z}d>Z~d?Zd@ZdAZdwdBZdwdCZdDZdEZdFZd|dGZ d}dHZdIZdJZdKZdLZiej,jeaej,jjebej,j ecej,j"edej,j$eeej&efej,jj&ehej,j(egej*eiej,ejej.ekej0elej2emej4enej6eoej8epej:j8eqiej<erej>esej@etej:j@euejBevej:jDewejFexejHe}ejJe~ej:jJeejLeyej:jLezejNe{ej:jNe|ej,jPeej,jReejTeej:jTeejVeej:jVeejXeej,jjZeej,j\eej,j^eej,j`eejbei ZeYe e fedM<eeej,jjh<GdNdOeZGdPdQeZGdRdSeZGdTdUeZ dwdVe dWeedXedYedZfd[ee egefde fd\ZGd]d^ePZd_e de\e e ffd`ZdaZdbePe&de egeffdcZedde&fiee&eZedfe'fiee'eZedge(fiee(eZd~dhediedjeeRefdkZGdldmeZdnejdoeReQfdpZddrZddsZddefdndqdoeeReQdteduePedef dvZy)N)AnyCallableLiteralOptionalUnion)nn)Graph GraphModuleNodeProxyTracer) compatibility) is_fx_tracingParameterProxy)logging)Cache DynamicCache StaticCache)PretrainedConfigPreTrainedModel) get_values),MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMES MODEL_FOR_BACKBONE_MAPPING_NAMES!MODEL_FOR_CAUSAL_LM_MAPPING_NAMESMODEL_FOR_CTC_MAPPING_NAMES3MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING_NAMES,MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMESMODEL_FOR_IMAGE_MAPPING_NAMES-MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING_NAMES!MODEL_FOR_MASKED_LM_MAPPING_NAMES'MODEL_FOR_MULTIPLE_CHOICE_MAPPING_NAMES0MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING_NAMES#MODEL_FOR_PRETRAINING_MAPPING_NAMES*MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES-MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING_NAMES,MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES/MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES(MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES,MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES,MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING_NAMES6MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING_NAMESMODEL_MAPPING_NAMES)ENV_VARS_TRUE_VALUESis_peft_available) PeftModel FX_DEBUG_MODE model_namesupported_tasksreturncidtdtdtdtdtdt dt dtd td td td td tdtdtdtdt t"t$t&d}||j)}t+|t,r|g}g}|D]+}||j/|d}|s|j1|-|S)Ndefault pretrainingznext-sentence-predictionz masked-lmz causal-lmz seq2seq-lmzspeech-seq2seqzmultiple-choicezdocument-question-answeringzquestion-answeringzsequence-classificationztoken-classificationzmasked-image-modelingzimage-classificationzzero-shot-image-classificationctczaudio-classification)zsemantic-segmentationbackbonezimage-feature-extraction)r.r%r$r"rr(r*r#rr&r)r+r!rr-rrr'rr keys isinstancestrgetappend)r5r6 task_mappingmodel_class_namestask class_names [/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/transformers/utils/fx.py%_generate_supported_model_class_namesrGMs`&: #$T 6  6  B  B B &'Z H "#R  L !N  L )*` *!"  L#$"O4$A)L.&++-/3'*+1!$'++J=   $ $Z 01 ):altclipalbertbartbertbitnet blenderbotzblenderbot-smallbloomclipconvnextdebertaz deberta-v2dinov2dinov3_convnext dinov3_vit distilbertz donut-swinelectragpt2gpt_neogptjhierahubertijepalayoutlmllamacoherelxmertm2m_100marianmbart megatron-bert ministralmistralmixtral mobilebertmt5nezhaoptpegasusplbartqwen2 qwen2_moeqwen3 qwen3_next qwen3_moeresnetroberta segformerspeech_to_textspeech_to_text_2swint5trocrvitvjepa2xglmwav2vec2r_rl) CLIPTextModelCLIPTextModelWithProjectionCLIPVisionModelCLIPVisionModelWithProjectionAltCLIPTextModelAltCLIPVisionModelGitVisionModelGPT2DoubleHeadsModelSpeech2Text2Decoder TrOCRDecoderPeftModelForCausalLMPeftModelForSeq2SeqLMVJEPA2ForVideoClassificationctjg|j|jjdd|jjdSNmeta)devicedtype)torchemptyshapeweightrselfinputs rFtorch_nn_embeddingrs@ ;; c cT[[%6%6r%: c6QUQ\Q\QbQb ccrHFcztjg|j|jdd|jdSr)rrrr)rr padding_idxmax_norm norm_typescale_grad_by_freqsparses rFtorch_nn_functional_embeddingrs3 ;; Y YV\\"%5 YfFLL YYrHc|SNrs rFtorch_nn_layernormr LrHc|Srrrs rFtorch_nn_groupnormrrrHcftj|jdd|jfzdS)Nrrr)rrr out_featuresrs rFtorch_nn_linearrs, ;;u{{3B'4+<+<*>>v NNrHc|Srrxs rF torch_relur HrHc|Srr)rrs rF torch_nn_relurrrHc |s td|S)Nz>Don't support in-place functional.relu for MetaTensor analysis ValueError)rinplaces rFtorch_nn_functional_relurs YZZ HrHcr|jd|jdz|jdzSNrrto) conditionrys rF torch_wherers5 <floatintr@rr)argskwargsnrstartendrs rF torch_arangers D A DAv1g a ssD%E #uC$4y ::fd #D JJw E ;;e ,E& IIrHct|}t|dkDrd|d<nd|d<t|}|jddt j |i|ddiS)Nr/ fill_valuerr)listrdictpoprfull)rrkwargs_without_devices rF torch_fullrs] :D 4y1}Q | Lh- ::t D4 DV DDrHc$|d||dkr|djz|Dcgc]}|j}}t|d}tfd|D}|d|gz|dzdz}t j |dScc}w)Nrc3(K|] }| ywrr).0rdims rF ztorch_cat..-s:%5::sr/rr)rrrsumrr) tensorsraxisrtshapesrconcatenated_dim final_shapes ` rF torch_catr$s {t| {t' Qwajnn$& '!agg 'F ' OE:6::+!1 22U3795EEK ;;{6 22 (sB c||d}|||}|dkr|djdz|z}t|dj}|j|t |t j |dSNrr/rr)rrrinsertrrr)rrrrrs rF torch_stackr2sw {t| {t' Qwajnn"S( !! "E LLc'l# ;;uV ,,rH)alpharc^t|tjstj|dSt|tjstj|dSt |j |j }t |jdg||j z zz}t |jdg||j z zz}g}t|D]#}|jt ||||%tj|dS)Nrrr/) r>rTensor empty_likemaxrrrrangerAr) rotherrr max_length input_shape other_shaperis rF torch_addr>s eU\\ *f55 eU\\ *f55UYY[%))+.Ju{{#qcZ%))+-E&FFKu{{#qcZ%))+-E&FFK E : : SQQ89: ;;uV ,,rHct|||S)Nr)r)rrrs rF torch_mulrLs UEs ++rHct||Sr)r)rrs rFtorch_tensor_mulrPs T5 !!rHc|j}|j}d}|dk(r |dk(rd}n|dk(r)|dk(r$|jd|jdf}n\|dk(r|dk(r|jdf}n>|dk(r|dk(r|jdf}n t|j|j}t|j}t|j}|dk(rdg|z}|dk(r|j ddg||z zt|jz}dg||z zt|jz}g}t |D]#} |j t|| || %|d|d<|d|d<|dk(r|jd|dk(r|jd|tjddStj|d diS) Nr/rrrrrr) rsizerrrrArrrtensorr) rrrd1d2rrshape1shape2rs rF torch_matmulrTs B B E Qw27 qR1WA 1 . qR1WA  qR1WA eiik2 ekk"ekk" 7S6\F 7 MM! b)D,==b)D,==z" 4A LLVAYq 2 3 42Jb 2Jb 7 IIbM 7 IIbM }||C// ;; -f --rHc| td|j\}}}|j\}}}tj|||dS)Nz2Don't support in-place bmm for MetaTensor analysisrr)rrrr)rmat2r batch_sizerm_ps rF torch_bmmr xsG MNN{{J1jjGAq! ;;z1a 77rHbetarrc4| tdt||S)Nz6Don't support in-place baddbmm for MetaTensor analysis)rr )rbatch1batch2r rrs rF torch_baddbmmrs  QRR VV $$rHc$t||||||S)Nr )r)rr rr rrs rFtorch_tensor_baddbmmrs vvD3 OOrHc^d|D}tj|g|jdS)Nc3JK|]}tj|dyw)cpurN)rr)roperands rFrztorch_einsum..s YW))'%@@Ys!#r)reinsumr)equationoperandsconcrete_operandss rF torch_einsumrs.YPXY << 5#4 5 8 8 @@rHct|j}t|D]\}}||xx|zcc<tj|dSr)rr enumeraterr)rsizesrrrs rFtorch_tensor_repeatrsF  E% 1 aA  ;;uV ,,rH)r output_sizect|}|dk(r||n|djg}nt|dj}||dkDr|d}nt|g}d}|d}t |t st j|dk(r||xxt |zcc<n||n|j||<t j|ddiS)Nr/rrrr) rrrrr>rrnumelr)rrrnum_argsrrepeatss rFtorch_repeat_interleaver$s4yH1} + 7T!W[[]KT!W]]# ;!|1gU q' gs #u{{7';q'@ #J#g, &J(3(?W[[]E#J ;; -f --rHcrt|j}t|||<tj|ddiSNrr)rrrrr)rrindexrrs rFtorch_index_selectr(s1  EUE#J ;; -f --rHct|||Sr)r(rrr's rFtorch_tensor_index_selectr+s dC //rH) sparse_gradrczt|j}|j|||<tj|ddiSr&)rrrr)rrr'r,rrs rF torch_gatherr.s6  ES!E#J ;; -f --rHct|||Sr)r.r*s rFtorch_tensor_gatherr0s c5 ))rHc|Srr)rshiftsdimss rF torch_rollr4rrHc|Srr)rr3s rF torch_flipr6rrHc|Srr)rr3s rFtorch_tensor_flipr8s KrHc|jd}d}|j}|dk(rd}|dk(rt|j}|qt|j}tj|d|dzz|j d|j ddz zz dz |jdz dz}||d<|j|d<tj|d S) Nrvalidrrsamerrr/rrr rpaddingrmathfloordilation kernel_sizestride out_channelsrr)rrl_inrr>l_outs rFtorch_nn_conv1drGs ;;r?D EllG'&U[[! }U[[! A N "T]]1%59I9I!9Lq9P%Q QTU UY]YdYdefYg gjk k b !!E"I ;;uV ,,rHch|jdd\}}d}|j}|dk(rd}|dk(rt|j}|t|j}tj|d|dzz|j d|j ddz zz dz |jdz dz}tj|d|dzz|j d|j ddz zz dz |jdz dz}||g|dd|j|d<tj|d S) Nrr:r;r<rrr/rrr=)rrh_inw_inrr>h_outw_outs rFtorch_nn_conv2drNsKRS!JD$ EllG'&U[[! }U[[! A N "T]]1%59I9I!9Lq9P%Q QTU UY]YdYdefYg gjk k  A N "T]]1%59I9I!9Lq9P%Q QTU UY]YdYdefYg gjk k U^bc !!E"I ;;uV ,,rHct|j}|2|dkr|j|z}||dk(r4|j|n"g}|D]}|dk(r |j ||}t j |dSr)rrrrrArr)rrr new_shape dim_values rF torch_squeezerRs  E  7))+#C :? IIcN  (IA~   Y ' ( ;;uV ,,rHct||Sr)rRrrs rFtorch_tensor_squeezerUs s ##rHct|j}|dkr|jdz|z}|j|dt j |dSr)rrrrrr)rrrs rFtorch_unsqueezerWsJ  E QwiikAo# LLa ;;uV ,,rHct||Sr)rWrTs rFtorch_tensor_unsqueezerYs 4 %%rHc tjtj|dfi|}t|tjr|j dSt t|dS)Nrrrc$|jdSNrrrs rFz*torch_unique_consecutive..s144<rH)runique_consecutive zeros_liker>rrtuplemap)rroutputs rFtorch_unique_consecutivercsT  % %e&6&6uU&K Vv VF&%,,'yy  S!7899rHc|dkr tdt|j|gz}tj|dS)NrzEDon't support automatic num_classes inference for MetaTensor analysisrr)rrrrr)r num_classesrs rFtorch_nn_functional_one_hotrfs;Q`aa  + .E ;;uV ,,rHc|jd}|jd}tjg|jdd||dS)Nrrrr)rrr) querykeyvalue attn_mask dropout_p is_causalscale target_lengthhead_dims rF0torch_nn_functional_scaled_dot_product_attentionrq"sJKKOM{{2H ;;CSb)C=C(CF SSrHcl|jdk(r |j}nd}tj|dSNnone)r/rr reductionrrrrrtargetrs rFtorch_nn_mselossry*- ~~  ;;uV ,,rHcl|jdk(r |j}nd}tj|dSrsrurws rFtorch_nn_crossentropylossr|2rzrHcl|jdk(r |j}nd}tj|dSrsrurws rFtorch_nn_bcewithlogitslossr~:rzrHc8d}t|tjrht|trtt ||}n||}t j tj|d|jdSt j ||S)Nc>t|tjrtj|d}|jtj tj tjtjfvr|jtj}|S|S)Nrr) r>rr ones_likerfloat16float32float64int32rint64)rconcretes rF to_concretez%operator_getitem..to_concreteCsa a &q7H~~%-- u{{![[#;;u{{3OrHrrr) r>rrr`raoperatorgetitemrr)abrs rFoperator_getitemrBsy!U\\" a c+q)*AAA 0 05 A1EHHPP   Aq !!rH_MANUAL_META_OVERRIDEScheZdZdZdZedZedZfdZfdZ dZ dZ fd Z xZ S) HFProxyzI Proxy that uses metadata to handle data-dependent control-flow. c||_yr) _metadata)rmetadatas rFinstall_metadatazHFProxy.install_metadatas !rHc@|jjdd|fiS)N call_methodr)tracer create_proxyrs rFrz HFProxy.shapes{{'' vwKKrHct|dS)Nr)MetaDeviceAttributers rFrzHFProxy.devices#422rHczt|dr!|jt|jSt|SNr)hasattrrrsuper__len__r __class__s rFrzHFProxy.__len__s2 4 %$..*Dt~~& &w  rHcht|dr|j |jSt| Sr)rrr__bool__rs rFrzHFProxy.__bool__s. 4 %$..*D>> !w!!rHcF|dk(r|j|St||Sr)__getattribute__ HFAttribute)rks rF __getattr__zHFProxy.__getattr__s* ((+ +4##rHc`|jjdtj|||fiSN call_function)rrrsetitem)rindicesvaluess rF __setitem__zHFProxy.__setitem__s-{{''9I9IDRY[aKbdfggrHcnt|dr|j||jvSt| |Sr)rrr __contains__)rrirs rFrzHFProxy.__contains__s5 4 %$..*D$..( (w#C((rH)__name__ __module__ __qualname____doc__rpropertyrrrrrrr __classcell__rs@rFrrsV"LL33 ! " $h))rHrc.eZdZdefdZedZdZy)rattrc||_||_|j|_d|_t |jdr0|j t |jj|yyr)rootrr_noderrgetattrr)rrrs rF__init__zHFAttribute.__init__sT  kk  499k *  ! !'$))*=*=t"D E +rHc|jQ|jjdtj|j |j fij|_|jSr)rrrbuiltinsrrrnoders rFrzHFAttribute.nodesT :: 11/8CSCSVZV_V_aeajajUkmopuuDJzzrHcn|jjd|j|jf|z|S)Nr)rrrr)rrrs rF__call__zHFAttribute.__call__s.{{'' tyy499,QUBUW]^^rHN)rrrr?rrrrrrHrFrrs*F3F_rHrc eZdZy)rN)rrrrrHrFrrsrHrc2eZdZdZdeefdZedZy) HFCacheProxyzP Proxy that represents an instance of `transformers.cache_utils.Cache`. orig_cache_clsc||_yr)_orig_cache_cls)rrs rFinstall_orig_cache_clsz#HFCacheProxy.install_orig_cache_clss -rHcvt|ds td|jj|jS)Nrz?The original Cache class must be installed to the HFCacheProxy.)r RuntimeErrorr_CLASSES_TO_PATCHrrs rFrzHFCacheProxy.__class__s4t./`a a{{,,T-A-ABBrHN) rrrrtyperrrrrrHrFrrs-.T%[.CCrHrfunctionop_typerrget_attrproxy_factory_fncJtjfd}|S)Ncts|i|Sgfd}tjjj ||tjjj ||t dkDrSdj }dk(r}n&dk(sdk(r j}ntdd|j|||S|i|S) NcJt|trj|yyr)r>r rA)r found_proxiess rF check_proxyz4create_wrapper..wrapper..check_proxys !U#$$Q'$rHrrrrzop_type z not supported.r) rrfxr map_aggregaterrrrr) rrrrrxrrrrs @rFwrapperzcreate_wrapper..wrappersT,V, ,  (  ##D+6  ##FK8 }  !"1%,,F/)!M)W -B!** 8G9O!DEE&&wfWg&h hT,V, ,rH) functoolswraps)rrrrs``` rFcreate_wrapperrs' __X--2 NrHc ^eZdZdZ ddedeedfdeeefde e e ge fffd Z xZS) HFProxyableClassMetazW Metaclass that creates a class with its main methods wrapped to be proxyable. namebases.attrsrc @t|||||}t|D]|}t||d}||dk(rd}nF|j drd}n2t j |rd}nt j|rd}nd}|dt||t|||~|S)Nrr__rr) r__new__dirr startswithinspectismethod isfunctionsetattrr) clsrrrr attr_namerrrs rFrzHFProxyableClassMeta.__new__sgoc46S jI3 40D|J&)%%d+!!$')##D)'"YtWWg(hi j  rHr)rrrrr?r`rrrrrr r rrrs@rFrrs_?C T3YCH~  #8TFEM#:; rHrrxc"t|d}||fS)zo Wraps `target` to be proxyable. Used for tensor creators like `torch.ones`, `torch.arange` and so on. r)r)rxrs rFgen_constructor_wrapperrsV_5G F?rHct|tryt|tjjr6t|t r t |dstd||jS|S)z\Returns the underlying metadata for HFProxies, and behaves like the identity for the others.rrzNo metadata was found for ) r>rrrr rrrr)vs rF_proxies_to_metasr'sW!()!UXX^^$1g&71k+B!;A3?@ @{{ HrHrc,dtdtffd }|S)Nrr7cttts tdt |t}|j |S)NzJCannot create HFCacheProxy because there is no HFTracer currently tracing.)r>_CURRENT_TRACERHFTracerrrr)r cache_proxyrs rFcache_proxy_factory_fnz=create_cache_proxy_factory_fn..cache_proxy_factory_fn3s9/84kl l"1o6 **>:rH)r r)rrs` rFcreate_cache_proxy_factory_fnr2s$< "!rHProxyableCacherProxyableDynamicCacheProxyableStaticCachelowhighforbidden_valuescx|g}tj||}||vrtj||}||vr|Sr)randomrandint)rrrrjs rF_generate_random_intrOsG NN3 %E # #sD) # # LrHc eZdZUdZdZeed<dZeed<gdZe e e e e eiZesefneefZefdffd Zdd d ed eed eed eeej6ff dZd)fd ZdZdededeeeffdZ fdZ!dZ"e#jHde%ejLjNe(defffdZ) d*de%ejLjNe(deffde*eeefde*eeefded e+f fd Z,de&jNd efdZ-de&jNd efd Z.de&jNd effd! Z/d"ejLjNd#ed effd$ Z0e1d%d&d'd efd(Z2xZ3S)+rz Tracer that is able to symbolically trace models from the library. To do that, it uses the HFProxy instead of the regular PyTorch torch.fx.Proxy. Tproxy_buffer_attributesallow_insert_stateless_mods) arangezerosonesr full_likeeyerrclampfinfotrilrc(t|||y)N)autowrap_modulesautowrap_functions)rr)rrrrs rFrzHFTracer.__init__vs *:OabrHmodelr input_namer input_namesr7c*t|d|jj}|ji}d}|dvr|d}|gt t t t t tt tt tt tvr+tj|tj|d<|S|gt tt tdvrTtj|tj|d<tj|tj|d <|S|t t vr&t#|j$d r|j$j& t)d |j$j&d k(r)||j$j*f} tj,} n|j$j&dk(r|f} tj} ne|j$j&dk(r)||j$j*f} tj,} n#t)d|j$j&dtj| | d|d<|S|gt t.t t0t t2t t4t t6t t8dddvr+tj|tj|d<|S|gt t:vr+tj|tj,|d<|St=d|d|dd|vr|d}t|j$dd } | t#|j$dr!|j$j>j@} nKt#|j$dr!|j$jBj@} ntEtEf} t|j$dd} tG| tHjJjLs| | f} | \} }tj|| | |tj,||<|Sd|vr.tjg|dtjNd||<|Sd |vrBtjg||j$jPtjNd||<|Sd!|vr|d}t|j$d"d 0|j$jRd#k7r|j$jT}n|j$jV}tY|dk(r ||d$|d%|f}n||d$|f}tj|tjN||<|Sd&|vrCtj||j$jZgztjN||<|Sd'|vrCtj||j$j\gztjN||<|Sd(|vr)tj|tjNd||<|Sd)|vr>|\}}tEd*d+,}tj||tjN||<|Sd-|vr?d.|vr|d|d$|zg}n|}tj|tj||<|Sd/|vr+tj|tj||<|Sd.|vr|j$jRt^vr#t=d0|j$jRd1|j$j`}|j$jV|j$j`z}|d|||ftcfd2te|j$jfD}|||<|S||j$jVgz}tj|tjN||<|S)3z4Generates dummy input for model inference recording.class_for_deserialization)labelsstart_positions end_positionsrrrXLNetForQuestionAnsweringrr problem_typeNzCould not retrieve the problem type for the sequence classification task, please set model.config.problem_type to one of the following values: "regression", "single_label_classification", or "multi_label_classification". regressionsingle_label_classificationmulti_label_classificationzExpected model.config.problem_type to be either: "regression", "single_label_classification", or "multi_label_classification", but "z" was provided.rrrz!Generating the dummy input named z for z is not supported yet. pixel_values image_size vision_configencoder num_channelsbboxinput_features inputs_embedsembedding_sizerer/r visual_feats visual_posinputs input_valuesi'i Nrrmaskpast_key_valuesidszMSymbolic trace with past_key_values input is not supported yet for the model ze. Please open an issue or a PR in Transformers repository if you would like to see the support added.c3K|]P}tjtjtjtjfRyw)rN)rrandr)rr cache_shapers rFrz1HFTracer._generate_dummy_input..sE JJ{%++fMJJ{%++fMsAA)4rrrrrr$r#rr,rrrr longr&rr)rconfigrr num_labelsrr%r+rr"r(r'rNotImplementedErrorr%r$r&rr> collectionsabcIterablerinput_feat_per_channel model_typer- hidden_sizervisual_feat_dimvisual_pos_dim"_FX_SUPPORTED_MODELS_WITH_KV_CACHEnum_attention_headsr`rnum_hidden_layers)rrrrrmodel_class_name inputs_dictkv_cache_lengthr labels_shape labels_dtyper$r'heightwidthr-embedding_shaper seq_length mask_shape num_headsrppkvshape_with_hidden_sizer8rs @@rF_generate_dummy_inputzHFTracer._generate_dummy_inputys: #5*EuW``  G GqJ$LM$CD$HI$HI $ <= $ HI $). JejjY_(` H%ji"&FG&OP&,& 27Zuzzbh1i -./4{{:UZZ`f/g O,\["Z0_%``u||^< @Y@Y@a$Z <<,, <$. 0G0G#HL#(==L\\..2OO$.=L#(::L\\..2NN$. 0G0G#HL#(==L$CCH< &=> & HI & IJ &' &' &( & ). ETZ([ H%TS"%Oz2M'N%OO(- EW](^ H%PM*7 |5IYHZZpqz )qJ |TBJ!5<<9!&!;!;!F!FJU\\95!&!5!5!@!@J"6"8:N:P!QJ#5<<CLj+//*B*BC(*5 &MFE&+kkL&%u}}U['K #faz !&+kk&^5&^!&^5;;W]&^K #^] +&+kk'' ;;'CH;;W]'K #ZU *qJ &6=ILL++>!&!"R$.uQx"H&+kk/]c&dK #poz )&+kkLL00kk 'K #l]Z '&+kkLL//kk 'K #ZK #&+kk5 TZ&[K #HGz )!MJ-%eDJ&+kk*jPUP[P[dj&kK #>=z ! K/#Aha?(BC " &+kk*EJJW]&^K #0/j &+kk%uzzRX&YK #,+* ,||&&.PP)cdidpdpd{d{c|}bc 88I||//5<<3S3SSH 8YJK u||==> C'*K # &+ell.F.F-G%G "&+kk2HPUP[P[dj&kK #rHc ^t||||||||}|dk(r.||jvr |j|j||S||jvr d|vrd|d< t j jj|t} t j jj|t} d} d|_ d|_ |dk(rMtj||} | | i| } t| t jr+| j!d} n|dk(r8t#| dj$|}tj||} | | i| } n|d k(rnt'|d st)|d |j*j-|}t/|}|tvrt||g| i| } nz|j0| i| } ng|d k(r`|j*}|j3d }|D]}t#||}t|t jr|j!d} n|} nd} | r,t|t4s t7d|j d|_ d|_ |S#t8$r.}t:rt=j>d|d|d|Yd}~Bd}~wwxYw)N placeholderrrTrrrr call_module orig_forwardz/ does not have an attribute called orig_forwardr.Fz"Don't support composite output yetzCould not compute metadata for z target z: ) rr meta_argsrorig_fnsrrrrr_disable_module_getattr_disable_call_modulerr@r>rrrrrAttributeErrorr get_submodulerrYsplitr r Exception_IS_IN_DEBUG_MODEwarningswarn)rkindrxrrr type_exprrrv args_metas kwargs_metasshould_install_metadata meta_targetmeta_outmethodmodmod_typeattr_itratomsatomers rFrzHFTracer.create_proxy)s W !$fdIO_ ` = Vt~~%=   v 6 7I T]] " 6!#)x . ]44T;LMJ 88==66v?PQL&* #+/D ((,D %&488H & ClCh 5'{{&{9H& A!8!8&A488H & ClC&t^4(D61`)abbii--f59555h?ajaT`aH0t00*M MH#99 S)!7D&x6H7h 5'{{&{9H'H*/'&!"e,$%IJJ##H- (-$$)!  ]  ?vXfXUWXYWZ[\ ]s"HI55 J,>$J''J,c\tddr|Sfd}t|tjjr&||j j |}||Sjr@t|tjr&||j j|}||S|S)Nr]Fc|D]t\}|us |vr`i}dtjjjvrjsdnfd|d<jddifi|}||<|cSy)Nrc t|Srr)rattr_valrrs rFr]zLHFTracer._module_getattr..maybe_get_proxy_for_attr..}snT4QRT\6]rHrr)r signaturer parametersparam_shapes_constant)rxcollection_to_searchparameter_proxy_cacherr val_proxyrrs` @rFmaybe_get_proxy_for_attrz:HFTracer._module_getattr..maybe_get_proxy_for_attrts0 8DAq1}$99%'F1W5F5FtGXGX5Y5d5dd,0+E+E%))]!''9 : ):(9(9*aR(ZSY(ZI7@1!44Q77 8rH) rr>rr Parameterrnamed_parametersrr named_buffers)rrrxr}rmaybe_parameter_proxymaybe_buffer_proxys` rF_module_getattrzHFTracer._module_getattros 42E :O  (EHH$6$67(@dii88: 4/ 7D+F+ +#w"1gtV<2)-)?)?)E)E)G =%+'*||'9'9';=OItx'Y'ABY <= = =  $99??A 'OD)1d E4 & '%'" (/ . $CH CH - .?& sG!GDG3BG concrete_args dummy_inputs6complete_concrete_args_with_inputs_not_in_dummy_inputsc &tjt|tjj r |j n|}|i}||r|jjD]P}|j|vr|jtjjus9td|jd|j|jjDcic]5}|j|vr%|j|vr|j|j7c}|jj|jz }t!} t!} | | g} |j"j$t't(vrt!dd} | j+d| | t-|ni} |D]t}|| vrt||j.s$t1|j2j5dr%| j|j7||| | gt9d |d d }t;j<|| }|jjD]K}|j>tjj@k(s+|j|vs:i|d |j<M||_!|a"|jG|5 tH||||_&da" ddd|jLjND]}|jPdk(r|jR|vrd|_*tjV|_n|g}tYjZ}|r?|j]d}d||<|t_|j`jz }|r?tc|jD]}|jLje||jPdk(sd|_|jLScc}w#da"wxYw#1swYxYw)a Traces `root` and returns the corresponding FX `torch.fx.Graph` representation. `root` can either be a `torch.nn.Module` instance or a Python callable. Note that after this call, `self.root` may be different from the `root` passed in here. For example, when a free function is passed to `trace()`, we will create a `torch.nn.Module` instance to use as the root and add embedded constants to. Args: root (`torch.nn.Module` or `Callable`): Either a `torch.nn.Module`` or a function to be traced through. If root is not a [`~transformers.PreTrainedModel`], then `dummy_inputs` must be passed, otherwise tracing will fail. concrete_args (`dict[str, Any], *optional*): Concrete arguments that should not be treated as Proxies dummy_inputs (`dict[str, Any]`, *optional*): The dummy inputs needed to handle data-dependent control-flow if `root` is not a [`~transformers.PreTrainedModel`]. It can also be used when `root` is a [`~transformers.PreTrainedModel`] to specify custom dummy inputs for a subset or all the model inputs. complete_concrete_args_with_inputs_not_in_dummy_inputs (`bool`, *optional*, defaults to `True`): If `True`, and `dummy_inputs` is specified, every argument that `root` can take that is not in `dummy_inputs` and not in `concrete_args` will be added to `concrete_args`, otherwise does nothing. Returns: `torch.fx.Graph`: A FX `torch.fx.Graph` representing the semantics of the passed-in `root`. Nz6You need to specify a default value for the parameter rZrrr2r/)_deserialize_graph_module_CodeOnlyModule)rzCould not generate input named z8 for because root is not a transformers.PreTrainedModel.c\t|tjr|jdS|Sr\)r>rrr)rjs rFto_metazHFTracer.trace..to_metas$%.xx''LrH**rrWrrrb)3rryr>rrModulerrzrrr9rrrupdater=rrrrr#rrsupported_archsrrrrUrpytreetree_maprf VAR_KEYWORDr[rrrtracegraphnodesoprxrrr= OrderedDictrrusersreversed erase_node)rrrrrsigparamrrrsequence_lengthr num_choicesr0rrconcrete_metasrto_visit to_deleteruserrs rFrzHFTracer.traces@ 40Q W[\  M  #(^..0 m::-==G$5$5$;$;;$']^c^h^h]iij%kll  m  !^^224l2qvv]7RFFAII% nn))+m.@.@.BB *+ .0_- >> " "j1X&Y Y.11=K LLK ('3'?l#R% JV#$ 4 45d9P9P9[9[@: d88z5^i8jk"5j\B55    &9^^**, 7EzzW..:::uzzQ\?\46EJJ<01 7(  # #D ) ' '"W]4}]M "&  'JJ$$ !Dww-';;+- "DI!& DI!%vH + 7 7 9I"$LLO'+ !  D$88# !))9 :4 --d34 ww("  / !2zzch#'  ' 's*#:O:PO?&P?PPProcVtd|jjDS)z Whether the module was instantiated with Proxies. If that is the case, such module cannot be a leaf module because its attributes are input-dependent. c3<K|]}t|tywr)r>r )rrs rFrzKHFTracer._stateless_mod_instantiation_depends_on_proxies..JsMt:dE*Ms)anyrr)rros rF/_stateless_mod_instantiation_depends_on_proxiesz8HFTracer._stateless_mod_instantiation_depends_on_proxiesEs" Ms||7J7J7LMMMrHcl|j|ryd}|jjj}|d|}d}t |j |r>t |j ||urd}n#|d|}|dz }t |j |r>|s|j j|||S)zb Helper method which tries to insert a module that was not declared as submodule. r4rrFTr/)rrrlowerrrr add_module)rroidxmod_namepathalready_inserteds rF_insert_module_as_submodulez$HFTracer._insert_module_as_submoduleLs  ? ? D==))//11SE" dii&tyy$'3.#' Zq&D 1HC dii& II s + rHc& t||S#t$ru}|jrbt t |j dk(r=t t |jdk(r|j|}|cYd}~S|d}~wwxYw)ag Helper method to find the qualified name of `mod` in the Module hierarchy of `root`. For example, if `root` has a submodule named `foo`, which has a submodule named `bar`, passing `bar` into this function will return the string "foo.bar". Args: mod (str): The `Module` to retrieve the qualified name for. rN) rpath_of_module NameErrorr rrrzbuffersr)rrortrrs rFrzHFTracer.path_of_moduleds 7)#. . //CS^^=M8N4OST4TY\]abebmbmbo]pYquvYv77< G  s! BA(B B B  Brmodule_qualified_namecL|j| xrt| ||Sr)rris_leaf_module)rrrrs rFrzHFTracer.is_leaf_moduleus3HHKK QVQXQg $R  rH)is_backward_compatibleobjr ct|d}|jjjdr |jS|S)zCalled when a proxy object is has the keys() method called. This is what happens when ** is called on a proxy. This should return an iterator if ** is supposed to work in your custom tracer. r=r)rrrxrr)rr attributes rFr=z HFTracer.keyszs= -KV,. 88?? % %d +&& &rH)NNN)NNT)4rrrrrbool__annotations__r rrrrrrrrr1rr2rr?rr?rrrrrrUrrrrrXr contextlibcontextmanagerrrrrrrr rrrrrrr=rrs@rFrrXs@ %)T((,,  ~+) 1B0C(/[dIeO)-Bcn&n47n@DS nX\]`Xan c5<< n`CL#LKCK3KtCQTH~K= #".eEHHOOXc3h=O,O&P".".N3715GK }EHHOOXc3h%778} S#X/}tCH~. } AE }  }~N299NQUNryyS0"))"   PT $/C0rHrrrctj|j}t|t|jj ks^t |dk(r|dndj|}dj|jj }td|d||jjDcic](}|j|vs|j|j*c}Scc}w)Nr/r, z(The model does not have input(s) named: z&, expected a subset of the following: ) rryrrrzr=rjoinrrrr9)rrrformatted_input_namesformatted_allowed_input_namesrs rFget_concrete_argsrs   EMM *C  CNN$7$7$9 : :25k2Ba2G ATYYWbMc(, #..2E2E2G(H%67L6MN-. 0  (+~~'<'<'> \!!&&P[B[AFFAII  \\ \s C9C9rc:|jjtvSr)rr_SUPPORTED_MODELS)rs rFis_model_supportedrs ?? # #'8 88rHct|s:djt}td|jj d|y)NrzModel z) is not supported yet, supported models: )rrrr<rr)rsupported_model_namess rFcheck_if_model_is_supportedrsJ e $ $ *; <!U__--..WXmWn o   %rH disable_check tracer_clscB||jj}t|}t||}|s t |d|vr,t |j ddstjdd|vr=t |j ddr&tjdd|j _ |}|j||}tjj||}|j |_|j|_|j |_|S)a Performs symbolic tracing on the model. Args: model ([`PretrainedModel`]): The model to trace. input_names (`list[str]`, *optional*): The names of the inputs of the traced model. If unset, model.dummy_inputs.keys() are used instead. disable_check (`bool`, *optional*, defaults to `False`): If `True`, no check is done before trying to trace the model, this is mostly usesul for debugging purposes. tracer_cls (`Type[HFTracer]`, *optional*, defaults to `HFTracer`): The tracer class to use for instantiating the tracer. If unset, `HFTracer` is used instead. Returns: `torch.fx.GraphModule`: A GraphModule constructed by recording operations seen while tracing the model. Example: ```python from transformers.utils.fx import symbolic_trace traced_model = symbolic_trace(model, input_names=["input_ids", "attention_mask", "token_type_ids"]) ``` r4 use_cacheFz|`past_key_values` were specified as input names, but model.config.use_cache = False, this might lead to unexpected behavior.z`past_key_values` were not specified as input names, but model.config.use_cache = True. Setting model.config.use_cache = False.r)rr=rrrrr:loggerwarningrrrrr rrr)rrrrrr traced_graphtraceds rFsymbolic_tracers<((--/ {#K%e[9M #E*K' kSX0Y #  + kSX0Y . "' \F<<]<CL XX ! !% 6FLLFM(-F$LLFM MrHrr)NNg@FF)F)NN)r)NrFN) N)rr)rr=rrrr?rosrrrdtypingrrrrrrtorch.utils._pytreeutils_pytreerrtorch.fxr r r r r torch.fx._compatibilityrtorch.fx._symbolic_tracertorch.fx.proxyrr4r cache_utilsrrrmodeling_utilsrr models.autormodels.auto.modeling_autorrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r. import_utilsr0r1peftr2 get_loggerrrenvironr@upperrcrr?rrG(_REGULAR_SUPPORTED_MODEL_NAMES_AND_TASKSrE_REGULAR_SUPPORTED_MODELSitemr>rextend_SPECIAL_SUPPORTED_MODELSr`sortedrrrrrrrrrrrrrrrrrrrrrr rrrrr$r(r+r.r0r4r6r8rGrNrRrUrWrYrcrfrqryr|r~r Embedding functional embedding LayerNorm GroupNormLinearreluReLUwhereabsr rcatstackrmulrmatmulbmmbaddbmmrrepeatrepeat_interleaverollflip index_selectgatherConv1dConv2dsqueeze unsqueezer^one_hotMSELossCrossEntropyLossBCEWithLogitsLossrrrscaled_dot_product_attentionrrrrrrrrrrrrrrrrrrrrrrrHrFr%s  :: $$<<12)::>$.    H %JJNN?B7==?CWW 8<&%&&eCcN34& #Y&R<,(|'.u%5" 4VD$!(()N)VQU)VW!(()Nt)TU V "&%>AZ%Z![\]d ejZ O   S ! J* E 34 3 -T -&'D -$(,"'+!.H#'823!% 89tPA -(,.(26. 049d. *-$-*-"$-&:-NRT---"&,4 HH*,4 HH!!#@,4 HH*,4 HH* ,4  HHOO_ ,4  JJ ,4 HH6,4 HHMM=,4 KK,4 IIy,4 LL,,4 JJ ,4 IIy,4 KK,4 IIy,4  IIy!,4" LL&#,4$ LL,%,4& IIy',4( MM=),4* LL.+,4, LL,-,4. LL,/,40 41,42 JJ 3,44 JJ 5,46 LL(7,48 *9,4: LL8;,4< LL,=,4> LL,?,4@ HHOO_A,4B HHOO_C,4D MM=E,4F LL. OO_ LL2 6 HH!< HH& HH8 HH : &W,4Xx/0,^5uxx**GGH ))e))X_'_, +  C7 C$;? 7?+W]-CWZEXX Yx 67 D4@Hx7I1J "$u+"(D6S_K_B`"&uh5RSX5Y-O2<@  ,N2;? cc(SWX[S\J]kvk\ ]RYY ]T#Y ]9 (,!) > >$s)$>>X >  >rH