
     Ti+                     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, attention_mask, and position_ids.
This is an onnxscript version of the model.
    N)script)opset18)FLOATINT64c                    ^ ^^^^^^^^^	^
 [        5       S[        S   S[        S   S[        S   S[        S   [        S   [        S   44UU U
UU	UUUUUU4S jj5       nUR                  5       nU$ )	Ninput0   
   input1input2return)r
   r      )r
       r   @   c           	        > [         R                  " TwS9n[         R                  " T|S9n[         R                  " T{S9n[         R                  " TvS9n[         R                  " TS9n[         R                  " T}S9n[         R                  " TS9n	[         R                  " T~S9n
[         R                  " TyS9n[         R                  " TzS9n[         R                  " TxS9n[         R                  " X`SS9n[         R                  " SS/S/5      n[         R                  " US5      n[         R
                  " U/ SQ5      n[         R                  " US/5      n[         R                  " US/5      nUU-   nUS	:H  nUn[         R                  " US
U5      n[         R                  " U/ SQS9n[         R                  " U/ SQS9n[         R                  " U/ SQS9n[         R                  " U/ SQS9n[         R                  " US/5      n[         R                  " USS9n[         R                  " [        R                  " [        R                  " / SQ[        R                  S9R                  / SQ5      5      S9n[         R
                  " U/ SQSS9nUU-  n [         R
                  " U / SQSS9n![         R                  " U!/ SQS9n"[         R                   " U"U"SS9n#[         R"                  " U#5      n$[         R$                  " U#5      n%US-  n&[         R&                  " U&S/SSS9n'U'S-   n([         R(                  " U(5      n)[         R*                  " U)5      n*UU*-  n+UU+-  n,[         R                  " USS/S9n-U,U--  n.[         R                  " USS/S9n/U,U/-  n0[         R                  " U	SS/S9n1U,U1-  n2[         R
                  " U./ SQSS9n3[         R                  " U3/ SQS9n4[         R
                  " U0/ SQSS9n5[         R                  " U5/ SQS9n6[         R
                  " U2/ SQSS9n7[         R                  " U7/ SQS9n8[         R                  " U$S/5      n9[         R                  " U%S/5      n:U4U9-  n;[         R                  " S/S9n<[         R,                  " U4S/S/S/U<5      n=[         R                  " S/S9n>[         R,                  " U4S/S/S/U>5      n?[         R.                  " U?5      n@[         R                   " U@U=SS9nAUAU:-  nBU;UB-   nCU6U9-  nD[         R                  " S/S9nE[         R,                  " U6S/S/S/UE5      nF[         R                  " S/S9nG[         R,                  " U6S/S/S/UG5      nH[         R.                  " UH5      nI[         R                   " UIUFSS9nJUJU:-  nKUDUK-   nL[         R
                  " UL/ S QSS9nM[         R                  " UM/ SQS9nN[         R
                  " UN/ S!QSS9nOUCS"/-  nPUOS"/-  nQUPUQ-  nRURU-   nS[         R0                  " USSS9nTUTU8-  nU[         R                  " UU/ SQS9nV[         R
                  " UV/ S#QSS9nW[         R                  " U
SS/S9nXUWUX-  nYUUY-   nZUZS-  n[[         R&                  " U[S/SSS9n\U\S-   n][         R(                  " U]5      n^[         R*                  " U^5      n_UZU_-  n`UU`-  na[         R                  " USS/S9nbUaUb-  nc[         R2                  " Uc5      ndUcUd-  ne[         R                  " USS/S9nfUaUf-  ngUeUg-  nh[         R                  " USS/S9niUhUi-  njUZUj-   nkUkS-  nl[         R&                  " UlS/SSS9nmUmS-   nn[         R(                  " Un5      no[         R*                  " Uo5      npUkUp-  nqUUq-  nr[         R                  " USS/S9nsUrUs-  nt[         R4                  " Ut5      nuUuULU84$ )$N)valuer   )axisr   g   r
   )r
   r
   r   r      g        gM)r   r
   r      )perm)r
   r   r   r   )to) g      ?g    "?g   @?g   `?g   `=?g   `Z?g   ?g   ?g   ?g   2?g   @ʬ?g   B?g   `0?g   iH?g    5?g   @~O?g   @z?g    6~?g   w?g   Eq?g    i?g   !mc?g    "]?g   1U?g   MbP?g   H?g   BmB?g   ;?g    l4?g   /?g   `N'?g   @z!?dtype)r
   r   r
   )r
   r
   r   )	allowzero)r
   r   r   )r   r   r
   g       @)keepdimsnoop_with_empty_axesgh㈵>)r
   r   r   r   )r   r   r
   r   )
value_intsr   r   l    )r   r   r   )r
   r   r   r   gm`[?)r
   r   r   )r   ConstantGatherConstantOfShapeTriluReshape	UnsqueezeWhere	TransposeCastirtensornparrayfloat32reshapeConcatCosSin
ReduceMeanSqrt
ReciprocalSliceNegSoftmaxSigmoidIdentity)r   r   r   %model_layers_0_input_layernorm_weight.model_layers_0_post_attention_layernorm_weightmodel_norm_weightlm_head_weight&model_layers_0_self_attn_q_proj_weight&model_layers_0_self_attn_k_proj_weight&model_layers_0_self_attn_v_proj_weight&model_layers_0_self_attn_o_proj_weight#model_layers_0_mlp_gate_proj_weight!model_layers_0_mlp_up_proj_weight#model_layers_0_mlp_down_proj_weight	embeddingminus_inf_10x10
mask_10x10slice_5unsqueeze_2unsqueeze_3addeqslice_10masked_fillval_179slice_scatterval_191slice_scatter_1unsqueeze_6	to_copy_1view_1view_2bmmview_3	transposecatcossinpow_1meanadd_1val_244rsqrtmul_3mul_4tview_5t_1view_7t_2view_9view_10transpose_1view_11transpose_2view_12transpose_3unsqueeze_7unsqueeze_8mul_5val_267slice_19val_277slice_20negcat_1mul_6add_2mul_7val_287slice_21val_297slice_22neg_1cat_2mul_8add_3val_346val_347val_349val_351val_353val_354val_355val_356getitemtranspose_4view_13t_3view_15add_4pow_2mean_1add_5val_379rsqrt_1mul_9mul_10t_4view_17val_383silut_5view_19mul_11t_6view_21add_6pow_3mean_2add_7val_391rsqrt_2mul_12mul_13t_7view_23
to_copy_12head_weightinput_layernorm_weight_0mlp_down_proj_weight0mlp_gate_proj_weight0mlp_up_proj_weight0norm_weight post_attention_layernorm_weight0self_attn_k_proj_weight0self_attn_o_proj_weight0self_attn_q_proj_weight0self_attn_v_proj_weight0s                                                                                                                         c/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnxscript/rewriter/models/_smollm_1.py
main_graphmake_model.<locals>.main_graph   ss    180@0@*1
- :A9I9I2:
6 $,,;? ))<181A1A*2
. 291A1A*2
. 291A1A*2
. 291A1A*2
. /6.>.>EZ.[+,3,<,<CV,W).5.>.>EZ.[+NN>B	!112r(=S<TU]]?A6
//*n=''4''aS9#CZmmBx@##KlC))'E##ME!++G,G''4LL3	!!))!D **G$H '*%K&(
R J!DvokQ?%%f9=	nnY	;kk#kk#3!!%"PQRu,,u%""7+E!5=DAq6R FaQRVT FaQRVT//&/QG''lC//&/QG''lC//&/QG''lC''aS1''aS1k)""qc2==qcB4!gF""qc2==rd5H4IA3PWXkk(#sH26#k)""qc2==qcB4!gF""qc2==rd5H4IA3PWXH%uhR8#//%C##G)<//'?aH:,&ZL(G#O+//'3K'''lC//+{aH FaQRVTC-G#s
##EB4!RST,,u%$$W-?%G C1a&Q3,//'*  AAO3, C1a&Q3,s
##EB4!RST,,u%$$W-"V+aV<3,%%g.
5+--    )r   r   r   to_model_proto)r   r   r   r   r   r   r   r   r   r   r   r   models   ```````````  r   
make_modelr      s     Xk.ek.&+Elk.<A%Lk.

u]3U=5I	Jk. k. k. k.Z %%'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                  " U 5      [        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U	5      [        R                  " U
5      5      nU$ )Ni   r   i    )r+   randomrandastyper-   r   r)   r*   )r   r   r   r   r   r   r   r   r   r   r   r   s               r   make_model_with_random_weightsr      s$   !yy~~d3::2::F')yy~~d';'B'B2::'N$))..&--bjj9K))..-44RZZ@K!yy~~dD9@@L!yy~~dD9@@L!yy~~dD9@@L!yy~~dD9@@LIINN46==bjjI))..t4;;BJJGIINN46==bjjI
		*+
		23
		+
		+
		*+
		*+
		*+
		*+
		'(
		%&
		'(E Lr   c                        \ rS rSrS rS rSrg)_SmollmTest1   c                     [        U S5      (       d/  [        5       n[        R                  R	                  U5      nX l        U R
                  $ )N_onnx_model)hasattrr   r)   serdedeserialize_modelr   )selfmodel_protor   s      r   get_onnx_model_SmollmTest1.get_onnx_model   s=    t]++8:KHH..{;E$r   c                 p   [        U S5      (       d  [        R                  R                  SSS5      R	                  [        R
                  5      [        R                  " S[        R                  S9[        R                  " S[        R
                  S9R                  SS5      S.nXl
        U R                  $ )	N_ort_inputsr   r   r	   r   r   r
   )r   r   r   )r   r+   r   randintr   int64onesr-   aranger.   r   )r   inputss     r   get_ort_inputs_SmollmTest1.get_ort_inputs   s    t]++))++Aug>EEbhhO'''<))Bbhh7??2F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_1r      s
    >r   )__doc__numpyr+   onnx_irr)   
onnxscriptr   onnxscript.onnx_opsetr   onnxscript.onnx_typesr   r   r   r   r   r   r   r   r   <module>r      s6   
    ) .|~8   &r   