
     TiZ                     f    S r SSKrSSKrSSKJr  SSKJr  SSKJ	r	J
r
  S rS r " S S	5      rS
 rg)z
A one-layer SmolLM model test case, with inputs: input_ids, position_ids, and pask key/values.
This is an onnxscript version of the model.
    N)script)opset18)FLOATINT64c                    ^ ^^^^^^^^^	^
^ [        5       S[        S   S[        S   S[        S   S[        S   S[        S   [        S	   [        S	   44
UU U
UU	UUUUUUU4S
 jj5       nUR                  5       nU$ )N	input_ids      position_idspast_key_values_0_0)r
          @   past_key_values_0_1returnr
   r      )r
   r   .   r   c                 N;  > [         R                  " GTsU SS9n[         R                  " SS5      n[         R                  " SSU5      n[         R                  " SSS9n[         R                  " S	S
/SS9n[         R
                  " Xx5      n	[         R                  " SS9n
[         R                  " XSS9n[         R                  " SS
5      n[         R                  " SS
5      n[         R                  " US
U5      n[         R                  " SS/SS9n[         R                  " XoSS9nUU:  n[         R                  " USS9nUU-  n[         R                  " S/S9n[         R                  " USS9n[         R                  " GT~U5      n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n [         R                  " UUUUU 5      n![         R                  " S/S9n"[         R                  " U"SS9n#[         R                  " U!U#5      n$[         R                  " U$SS9n%[         R                  " / SQSS9n&[         R                  " U&5      n'[         R
                  " U%U'5      n([         R                  " SSS9n)[         R                  " S/S9n*[         R                  " U)U*SS9n+[         R                  " SSS9n,[         R                  " S/S9n-[         R                  " U,U-SS9n.[         R                  " SSS9n/[         R                  " S/S9n0[         R                  " U/U0SS9n1[         R                  " S/S9n2[         R                  " UU+U.U1U25      n3[         R                  " S/S9n4[         R                  " U4SS9n5[         R                  " U3U55      n6[         R                  " SSS9n7[         R                  " S/S9n8[         R                  " U7U8SS9n9[         R                  " SSS9n:[         R                  " S/S9n;[         R                  " U:U;SS9n<[         R                  " SSS9n=[         R                  " S/S9n>[         R                  " U=U>SS9n?[         R                  " S/S9n@[         R                  " U6U9U<U?U@5      nA[         R                  " UASS9nB[         R                  " U(SS9nC[         R                  " UBSS9nD[         R                  " / SQSS9nE[         R                  " UE5      nF[         R
                  " UCUF5      nG[         R                  " / SQSS9nH[         R                  " UGUHSS9nI[         R                  " / SQSS9nJ[         R                  " UJ5      nK[         R
                  " UDUK5      nL[         R                  " / SQSS9nM[         R                  " ULUMSS9nNUIUN-  nO[         R                  " / SQSS9nP[         R                  " UOUPSS9nQ[         R                  " UQ/ SQS9nR[         R                  " URURSS9nS[         R                  " US5      nT[         R                  " US5      nUUTS-  nVUUS-  nW[         R                  " UVSS9nX[         R                  " UWSS9nY[         R                  " USS9nZ[         R                  " SSS9n[UZU[-  n\[         R                  " S/S9n][         R                  " S/U]SS9n^[         R                   " U\U^SSS9n_U_S-   n`[         R"                  " U`5      na[         R$                  " Ua5      nbUZUb-  nc[         R                  " UcSS9ndGTtUd-  ne[         R                  " GT{SS/S9nf[         R                  " S	S/SS9ng[         R                  " UeUgSS9nhUhUf-  ni[         R                  " / SQSS9nj[         R                  " UiUjSS9nk[         R                  " GTySS/S9nl[         R                  " S	S/SS9nm[         R                  " UeUmSS9nnUnUl-  no[         R                  " / SQSS9np[         R                  " UoUpSS9nq[         R                  " GT|SS/S9nr[         R                  " S	S/SS9ns[         R                  " UeUsSS9ntUtUr-  nu[         R                  " / SQSS9nv[         R                  " UuUvSS9nw[         R                  " / SQSS9nx[         R                  " UkUxSS9ny[         R                  " Uy/ SQS9nz[         R                  " / SQSS9n{[         R                  " UqU{SS9n|[         R                  " U|/ SQS9n}[         R                  " / SQSS9n~[         R                  " UwU~SS9n[         R                  " U/ SQS9n[         R                  " S/S9n[         R                  " USS9n[         R                  " UXU5      n[         R                  " S/S9n[         R                  " USS9n[         R                  " UYU5      nUzU-  n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S SS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S!SS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n[         R                  " UzUUUU5      n[         R                  " S SS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S!SS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n[         R                  " UzUUUU5      n[         R&                  " U5      n[         R                  " UUSS9nUU-  nUU-   nU}U-  n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S SS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S!SS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n[         R                  " U}UUUU5      n[         R                  " S SS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S!SS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n[         R                  " U}UUUU5      n[         R&                  " U5      n[         R                  " UUSS9nUU-  nUU-   n[         R                  " UUS"S9n[         R                  " UUS"S9n[         R                  " S/S9n[         R                  " USS9n[         R                  " UU5      n[         R                  " S/S9n[         R                  " USS9n[         R                  " UU5      n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n[         R                  " UUUUU5      n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S!SS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n[         R                  " UUUUU5      n[         R                  " / S#QSS9n[         R                  " U5      n[         R
                  " UU5      n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n[         R                  " UUUUU5      n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n[         R                  " UUUUU5      n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " SSS9n[         R                  " S/S9n[         R                  " UUSS9n[         R                  " S/S9n[         R                  " UUUUU5      n[         R                  " SSS9n[         R                  " S/S9Gn [         R                  " UGU SS9Gn[         R                  " SSS9Gn[         R                  " S/S9Gn[         R                  " GUGUSS9Gn[         R                  " S!SS9Gn[         R                  " S/S9Gn[         R                  " GUGUSS9Gn[         R                  " S/S9Gn[         R                  " UGUGUGUGU5      Gn	[         R(                  " USS$9Gn
[         R                  " S/S9Gn[         R                  " GU
GUSS9Gn[         R                  " GUU5      Gn[         R                  " SS%9Gn[         R                  " GUU5      Gn[         R"                  " GU5      GnGUGU-  Gn[         R                  " GUU5      Gn[         R(                  " USS$9Gn[         R                  " S/S9Gn[         R                  " GUS/GU5      Gn[         R                  " GUS"/S/5      Gn[         R                  " S&/S9Gn[         R                  " GUGUS"/5      Gn[         R                  " S/S9Gn[         R                  " GUGUGUSS9Gn[         R                  " UGUSS9Gn[         R                  " GU/ SQS9Gn[         R                  " GUGUGUSS9Gn[         R                  " GUGUSS9Gn[         R"                  " GU5      GnUGU-  Gn [         R"                  " GU5      Gn!GUGU!-  Gn"GU GU"-  Gn#GU#GU	-   Gn$[         R*                  " GU$SS9Gn%[         R,                  " GU%S5      u  Gn&Gn'GU&U-  Gn([         R(                  " USS$9Gn)[         R                  " GU)S/S/5      Gn*[         R                  " GU)S/S/5      Gn+[         R                  " GU)S"/S/5      Gn,[         R                  " GU+SS9Gn-GU-S'-  Gn.[         R.                  " GU.5      Gn/GU/S'-  Gn0[         R                  " GU0SS9Gn1[         R                  " GU*GU,GU1SS9Gn2[         R
                  " SGU25      Gn3[         R                  " GU(/ SQS9Gn4[         R                  " / S(QSS9Gn5[         R                  " GU4GU5SS9Gn6[         R                  " GTzSS/S9Gn7[         R                  " S	S/SS9Gn8[         R                  " GU6GU8SS9Gn9GU9GU7-  Gn:[         R                  " / SQSS9Gn;[         R                  " GU:GU;SS9Gn<UGU<-   Gn=[         R                  " GU=SS9Gn>[         R                  " SSS9Gn?GU>GU?-  Gn@[         R                  " S/S9GnA[         R                  " S/GUASS9GnB[         R                   " GU@GUBSSS9GnCGUCS-   GnD[         R"                  " GUD5      GnE[         R$                  " GUE5      GnFGU>GUF-  GnG[         R                  " GUGSS9GnHGTxGUH-  GnI[         R                  " GTvSS/S9GnJ[         R                  " S	S/SS9GnK[         R                  " GUIGUKSS9GnLGULGUJ-  GnM[         R                  " / S)QSS9GnN[         R                  " GUMGUNSS9GnO[         R0                  " GUO5      GnPGUOGUP-  GnQ[         R                  " GTwSS/S9GnR[         R                  " S	S/SS9GnS[         R                  " GUIGUSSS9GnTGUTGUR-  GnU[         R                  " / S)QSS9GnV[         R                  " GUUGUVSS9GnWGUQGUW-  GnX[         R                  " GTuSS/S9GnY[         R                  " S	S*/SS9GnZ[         R                  " GUXGUZSS9Gn[GU[GUY-  Gn\[         R                  " / SQSS9Gn][         R                  " GU\GU]SS9Gn^GU=GU^-   Gn_[         R                  " GU_SS9Gn`[         R                  " SSS9GnaGU`GUa-  Gnb[         R                  " S/S9Gnc[         R                  " S/GUcSS9Gnd[         R                   " GUbGUdSSS9GneGUeS-   Gnf[         R"                  " GUf5      Gng[         R$                  " GUg5      GnhGU`GUh-  Gni[         R                  " GUiSS9GnjGT}GUj-  Gnk[         R                  " GTsSS/S9Gnl[         R                  " S	S/SS9Gnm[         R                  " GUkGUmSS9GnnGUnGUl-  Gno[         R                  " / S+QSS9Gnp[         R                  " GUoGUpSS9Gnq[         R                  " GUqSS9GnrGUrUU4$ ),Nr   )axisg      ?r   r   gMr
   )tor   /      )	value_int)upperg        )	allowzero)
value_intsl       )r
   r   r
   )r
   r   r
   )r
   r
   r   )r
   r   r   )r   r    r
   )perm)keepdimsnoop_with_empty_axesgh㈵>   )r
   r   r$   )r
   r   r   r   )r   r    r
      r   r%   )r
   r
   r   r   )start)value_floatl         g      @@)r
   r   r   )r
   r       r)   r   )r   GatherCastLikeRangeCastExpandConstantTriluReshape	UnsqueezeSliceAbs	TransposeConcatCosSin
ReduceMeanSqrt
ReciprocalNegShapeSoftmaxDropoutCeilSigmoid(  r   r   r   r   	embeddingval_2arangeval_5val_7fulldiagonal__1triuval_10val_11arange_1val_13viewgtconvert_element_type_defaultmuldim__2dim_0__2	unsqueezeval_15val_16val_17val_19val_20val_21val_23val_24val_25val_26slice_1dim__3dim_0__3unsqueeze_1_to_copy	size_0__4	size_1__4expandval_28val_29val_30val_31val_32val_33val_34val_35val_36val_37slice_2dim__5dim_0__5unsqueeze_2val_38val_39val_40val_41val_42val_43val_45val_46val_47val_48slice_3
_to_copy_1
_to_copy_2
_to_copy_3	size_0__6	size_1__6expand_1val_50view_1	size_0__7	size_1__7expand_2val_52view_2bmmval_54view_3	transposecatcossinmul_1mul_2
_to_copy_4
_to_copy_5
_to_copy_6scalar_tensor_defaultpow_1val_55val_57meanaddval_59rsqrtmul_3
_to_copy_7mul_4tval_61view_4mmval_63view_5t_1val_64view_6mm_1val_65view_7t_2val_66view_8mm_2val_67view_9val_69view_10transpose_1val_70view_11transpose_2val_71view_12transpose_3dim__8dim_0__8unsqueeze_3dim__9dim_0__9unsqueeze_4mul_5val_72val_73val_74val_76val_77val_78val_80val_81val_82val_83slice_4val_84val_85val_86val_87val_88val_89val_90val_91val_92val_93slice_5negcat_1mul_6add_1mul_7val_94val_95val_96val_97val_98val_99val_100val_101val_102val_103slice_6val_104val_105val_106val_107val_108val_109val_110val_111val_112val_113slice_7neg_1cat_2mul_8add_2cat_3cat_4dim__10	dim_0__10unsqueeze_5dim__11	dim_0__11unsqueeze_6val_114val_115val_116val_117val_118val_119val_120val_121val_122val_123slice_8val_124val_125val_126val_127val_128val_129val_130val_131val_132val_133slice_9
size_0__12
size_1__12expand_3val_135val_136val_137val_138val_139val_140val_141val_142val_143val_144slice_10val_145val_146val_147val_148val_149val_150val_151val_152val_153val_154slice_11val_155val_156val_157val_158val_159val_160val_161val_162val_163val_164slice_12val_165val_166val_167val_168val_169val_170val_171val_172val_173val_174slice_13val_175val_176val_177val_178val_179val_180val_181val_182val_183val_184val_185val_186val_188val_189val_190val_191val_192val_193val_194val_195val_196val_197val_198val_199val_200val_201val_202val_203val_204_unusedgetitemval_206val_209val_211val_212val_213val_215val_216val_217val_218val_219._scaled_dot_product_flash_attention_for_cpu__1transpose_4val_221view_13t_3val_222view_14mm_3val_223view_15add_3
_to_copy_8scalar_tensor_default_1pow_2val_224val_225mean_1add_4val_226rsqrt_1mul_9
_to_copy_9mul_10t_4val_227view_16mm_4val_229view_17val_230silut_5val_231view_18mm_5val_232view_19mul_11t_6val_234view_20mm_6val_235view_21add_5_to_copy_10scalar_tensor_default_2pow_3val_236val_237mean_2add_6val_238rsqrt_2mul_12_to_copy_11mul_13t_7val_239view_22mm_7val_241view_23_to_copy_12lm_head_weight%model_layers_0_input_layernorm_weight#model_layers_0_mlp_down_proj_weight#model_layers_0_mlp_gate_proj_weight!model_layers_0_mlp_up_proj_weight.model_layers_0_post_attention_layernorm_weight&model_layers_0_self_attn_k_proj_weight&model_layers_0_self_attn_o_proj_weight&model_layers_0_self_attn_q_proj_weight&model_layers_0_self_attn_v_proj_weightmodel_norm_weightmodel_rotary_emb_inv_freqs                                                                                                                                                                                                                                                                                                                                                                                     c/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnxscript/rewriter/models/_smollm_2.py
main_graphmake_model.<locals>.main_graph   s    NN>91E	  b)r2u-]q1b"X!,~~e+&&3}}Ta8!!#r*!!#r*==V4r1g!,v;_'.||B1'=$11!!aS1<<1-%%&?J	aA&!!bT21=1a8!!bT21=aA&!!bT21=!!aS1--	6666J!!aS1<<1-'':<<2LL2	KK	*	)4aA&!!bT21=1a8!!bT21=aA&!!bT21=!!aS1--ffffM!!aS1<<1-'':aA&!!bT21=1a8!!bT21=aA&!!bT21=!!aS1--VVVVL\\'a0
\\&Q/
\\*3
LL2	KK	*	>>*i8jQ/6Q?LL2	KK	*	>>*i8jQ/6Q?voka0f:%%f9=	nnY	;kk#kk#c	c	\\%A.
\\%A.
\\)2
 'Q1 511!!bT2"v;!!%!RSTUlc"""6*U"\\%A.
5
BDAq6Rr4jQ/!<aZm2Vq9 FaQRVTr4jQ/!<|m2v; FaQRVTr4jQ/!<|m2v;o!4//&&A>''lCo!4//&&A>''lCo!4//&&A>''lC!!aS1<<1-''
H=!!aS1<<1-''
H=k)aA&!!bT21=bQ'!!bT21=aA&!!bT21=!!aS1--VVVVLbQ'!!bT21=1a8!!bT21=aA&!!bT21=!!aS1--VVVVLkk'"sG"5#k)aA&!!bT21=bQ'!!bT21=,,qQ'""rd3//'7a@""qc2--VVWgN,,ra(""rd3//'7a@,,2q9""rd3//'7a@,,qQ'""rd3//'7a@""qc2--WgwPG$ugB7#2EC2KbI""qc2LLQ/	''Y7""qc2LLQ/	''Y?,,qQ'""rd3//'7a@,,2q9""rd3//'7a@,,qQ'""rd3//'7a@""qc2--WgwP,,qQ'""rd3//'7a@,,2q9""rd3//'7a@,,qQ'""rd3//'7a@""qc2--'7GL\\.Q7
[[,
>>':6,,qQ'""rd3//'7a@,,2q9""rd3//'7a@,,qQ'""rd3//'7a@""qc2==7GWgN,,qQ'""rd3//'7a@,,2q9""rd3//'7a@,,qQ'""rd3//'7a@""qc2==7GWgN,,qQ'""rd3//'7a@,,2q9""rd3//'7a@,,qQ'""rd3//'7a@""qc2==7GWgN,,qQ'""rd3//'7a@,,ra(""rd3//'7a@,,qQ'""rd3//'7a@""qc2==7GWgN--Q/""rd3..':""7E2""s3""7E2,,w'G#""7E2--Q/""/B.CD--"w7--"t4""/C.DE--2$7""rd3..'7C//%A>##G)<..'7C//'7a@,,w''/,,w'G#G#H$//'3"??7C8E/--Q/--!qc2--!qc2--"t4,,w1-D.,,w'D.,,w1-..'7C9@W9U6''lC,,{q1//+w!D FaQRVT,,Dza0//'7a@},,}3//$1=G#\\%A.
"),,qQ"733""rd3//2$1=##E7QUVW,,u%$$W-W$\\%A.
?*L C1a&Q,,Dza0//&'Q?},,}3//$1=//'*  AAO,,Dza0//&'Q?},,}3//$1= C1a&Q,,Dza0//&'Q?},,}3//$1=ll5Q/"),,qQ"744""rd3//2$1=##E7QUVW,,u%$$W-w&ll6a0"[0aV<,,Dza0//&'Q?},,~!4//$1=ll7q1E5((    )r   r   r   to_model_proto)r  r  r  r  r  r  r  r  r  r  r  r  r  models   ````````````  r  
make_modelr     s     Xt)<t)Elt) #=1t) #=1	t)
 
u]3U=5I	Jt) t) t) t)l %%'ELr  c                     [         R                  R                  S5      R                  [         R                  5      n [         R                  R                  S5      R                  [         R                  5      n[         R                  R                  S5      R                  [         R                  5      n[         R                  R                  SS5      R                  [         R                  5      n[         R                  R                  SS5      R                  [         R                  5      n[         R                  R                  SS5      R                  [         R                  5      n[         R                  R                  SS5      R                  [         R                  5      n[         R                  R                  SS5      R                  [         R                  5      n[         R                  R                  SS5      R                  [         R                  5      n[         R                  R                  SS5      R                  [         R                  5      n	[         R                  R                  SS5      R                  [         R                  5      n
[         R                  R                  S5      R                  [         R                  5      n[        U UUUUUUUUU	U
U5      nU$ )Nr$   r   r)   r   )numpyrandomrandastypefloat32r  )r  r  r  r  r  r  r  r  r  r  r  r  r  s                r  make_model_with_random_weightsr    s   ,1LL,=,=d,C,J,J5==,Y)5:\\5F5Ft5L5S5S62 ))$/66u}}E\\&&ud3::5==IN-2\\->->tT-J-Q-Q.* .3\\->->tT-J-Q-Q.* .3\\->->tT-J-Q-Q.* .3\\->->tT-J-Q-Q.* +0,,*;*;D$*G*N*Nu}}*]'(-(9(9$(E(L(LU]]([%*/,,*;*;D$*G*N*Nu}}*]' % 1 1" 5 < <U]] K-6....+)+!E Lr  c                        \ rS rSrS rS rSrg)_SmollmTest2i  c                     [        U S5      (       d/  [        5       n[        R                  R	                  U5      nX l        U R
                  $ )N_onnx_model)hasattrr  irserdedeserialize_modelr  )selfmodel_protor  s      r  get_onnx_model_SmollmTest2.get_onnx_model  s=    t]++8:KHH..{;E$r  c           	      F   [        U S5      (       Gd  [        R                  R                  SSS5      R	                  [        R
                  5      [        R                  " S5      R                  SS5      R	                  [        R
                  5      [        R                  R                  SSSS	5      R	                  [        R                  5      [        R                  R                  SSSS	5      R	                  [        R                  5      S
.nXl
        U R                  $ )N_ort_inputsr   r   r	   r   r
   r   r   r   )r   r   r   r   )r  r  r  randintr  int64rD   reshaper  r  r  )r  inputss     r  get_ort_inputs_SmollmTest2.get_ort_inputs  s    t]++"\\11!UGDKKEKKX %R 0 8 8B ? F Fu{{ S',||'8'8BB'G'N'Nu}}']',||'8'8BB'G'N'Nu}}']	F  &r  )r  r  N)__name__
__module____qualname____firstlineno__r  r  __static_attributes__ r  r  r  r    s     	 r  r  c                      [        5       $ )N)r  r  r  r  smollm_test_2r    s
    >r  )__doc__r  onnx_irr  
onnxscriptr   onnxscript.onnx_opsetr   onnxscript.onnx_typesr   r   r  r  r  r  r  r  r  <module>r     s7   
    ) .FR%P   (r  