rlx-models 0.2.0

Model loading for RLX — config parsing, safetensors weights, graph builders
Documentation
+
�_
jz���Rt^RIHt^RIt^RIt^RIt^RIHt^RIt^RI	H
t
.^N^N^*NRNRNRNRNR	NR
NRNRNR
NRNRNRN^dN^�NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRONRPNRQNRRNRSNRTNRUNRVNRWNRXNRYNRZNR[NR\NR]NR^NR_NR`NRaNRbNRcNRdNReNRfNRgNRhNRiNRjNRkNRlNRmNRnNRoNRpNRqNRrNRsNRtNRuNRvNRwNRxNRyNRzNR{NR|NR}NR~NRNR�NR�NR�NR�NR�NR�NtR�R�ltR�R�lt
R�R�ltR�R�lt]P !4R�R�l4tR�R�ltR�R�lt]R�8Xd
]!4R#R#)�z�Python Transformers Qwen3 timing and CPU/MPS parity matrix.

Uses the same token grid as the Rust Qwen3 matrix example. The output is
CSV-compatible and intentionally mirrors the Rust columns where possible.
)�annotationsN)�Iterable)�AutoModelForCausalLMi:i�
i)#i.ji�i��i90�iii@i�i,i�i�iXi�i i�i�i�i�i�i�ipiXi@i(#i'i�*i�.i�2i�6i�:i�>ihBiPFi8Ji NiRi�Ui�Yi�]i�ai�eixii`miHqi0uiyi}i�iЄi��i��i��ip�iX�i@�i(�i�i��i�iȯi��i��i��ih�iP�i8�i �i�i��i��i��i��i��ix�i`�iH�i0�i�i�i��i�i�i�	i�
ipiXi@i(i!i�$i�(i�,i�0i�4i�8ih<iP@i8Di HiLi�Oi�Si�Wi�[i�_ixci`giHki0oisiwi�zi�~i��i��i��ip�iX�i@�i(�i�i��i�iȩi��c�(�V^8�dQhRRRRRRRR/#)��batch�int�seq�device�str�return�torch.Tensor�)�formats"�*rlx-models/examples/qwen3_python_matrix.py�__annotate__r%s(��?�?�C�?�c�?�3�?�<�?�c�Z�.p\V4FopV^,\\4,pTP\V4Uu.uF*p\WV,\\4,,NK,	up4Kq	\P
!V\PVR7#uupi)�)�dtyper)�range�len�
TOKEN_POOL�append�torch�tensor�long)rr
r�rows�b�off�is&&&    r�make_idsr"%sx��
�D�
�5�\���1�u��J��'�����e�C�j�Q�j��Z���C�
�O� ;�<�<�j�Q�R���<�<��E�J�J�v�>�>��Rs�0B(
c� �V^8�dQhRRRR/#)rrrr
�Noner)rs"rrr-s��!�!��!��!rc��VR8Xd!\PP4R#VR8Xd!\PP4R#R#)�mps�cudaN)rr&�synchronizer')rs&r�syncr)-s6��
���
�	�	����	�6�	�
�
�
��� �
rc�$�V^8�dQhRRRRRR/#)r�arrr
ztuple[int, int]r)rs"rrr4s!��9�9�,�9�<�9�O�9rc�R�VPRVPR,4PRR7pVPRVPR,4PRR7p\W#8HP	4P44\VP
443#)���dim�����)�reshape�shape�argmaxr	�sum�item�numel)r+r�aa�bbs&&  r�
top1_matchr94sz��	
���2�q�w�w�r�{�	#�	*�	*�r�	*�	2�B�	
���2�q�w�w�r�{�	#�	*�	*�r�	*�	2�B����~�~��$�$�&�'��R�X�X�Z��8�8rc�$�V^8�dQhRRRRRR/#)rr+rrr
�+tuple[float, float, float, float, int, int]r)rs"rrr:s"��
�
�|�
��
�1\�
rc�|�VP4P4P4PVP^,R4pVP4P4P4PVP^,R4pW#,
P4p\PPPW#RR7p\VP4P4VP4P44wrg\VP4P44\VP4P44\VP4P44\VP4P44VV3#)�r.r0)�detach�float�cpur1r2�absr�nn�
functional�cosine_similarityr9�maxr5�mean�min)r+r�af�bf�diff�cos�t1�totals&&      r�metricsrN:s ��	
����	�	�	�	�	�	!�	)�	)�!�'�'�!�*�b�	9�B�	
����	�	�	�	�	�	!�	)�	)�!�'�'�!�*�b�	9�B��G�=�=�?�D�
�(�(�
�
�
/�
/��B�
/�
?�C��1�8�8�:�>�>�+�Q�X�X�Z�^�^�-=�>�I�B�
�d�h�h�j�o�o�� �
�d�i�i�k��� �!�
�c�h�h�j�o�o�� �
�c�g�g�i�n�n���
�
�
�rc
�,�V^8�dQhRRRRRRRRRR/#)	rrrrr	r
�keep�bool�repsr)rs"rrrKs/����C����#��T���rc��\W#V4pRVRR/pV'd^VR&\^4FpV!R/VBPp	K	\V4.p
\V4Fgp\P
!4pV!R/VBPp	\V4V
P
\P
!4V,
R,4Ki	X	V
3#)�	input_ids�	use_cacheF�logits_to_keepg@�@r)r"r�logitsr)�time�perf_counterr)�modelrrr
rPrR�x�kwargs�_�out�times�t0s&&&&&&      r�run_caseraJs�����V�$�A��1�k�5�
1�F��#$��� �
�1�X���o�f�o�$�$�����L��E�
�4�[��
�
�
�
 ���o�f�o�$�$���V��
���d�'�'�)�B�.�&�8�9�	�
��:�rc�@�V^8�dQhRRRRRRRRRRR	R
RRR
RRRRR/
#)r�backendr�moderr	r
�shape_okrQ�
metric_valuesr;r_zIterable[float]�status�messager
r$r)rs"rrr\sl�� � �
� �

� �� �

�	 �
� �?�
 �� �
� �� �
� rc	�*�\V4p\RPVVVV\V4P	4V^,V^,V^,V^,V^,V^,\V4\P!V4VVR74R#)z�prefill,python,{backend},{mode},{batch},{seq},{shape_ok},{max_abs:.6f},{mean_abs:.6f},{cos_mean:.7f},{cos_min:.7f},{top1_match},{top1_total},{min_ms:.1f},{median_ms:.1f},{status},{message})rcrdrr
re�max_abs�mean_abs�cos_mean�cos_minr9�
top1_total�min_ms�	median_msrgrhN)�list�printrr�lowerrG�
statistics�median)	rcrdrr
rerfr_rgrhs	&&&&&&&&&r�emit_rowrv\s���
��K�E�	�	T�TZ�TZ�������]�(�(�*�!�!�$�"�1�%�"�1�%�!�!�$�$�Q�'�$�Q�'��u�:� �'�'��.���U[�U
�rc��V^8�dQhRR/#)rr
r$r)rs"rrrs��e�e�d�erc��\PPRR4p\^\	\PPRR444p\
PPP4'dRMRp\R4\P!VR\
PR7PR4P4pVR8XdTMC\P!VR\
PR7PV4P4pR
F�pRF�pRF�wrx\VRWVV^4wr�\WBWVWq4wr�\!V	P"4\!VP"48Hp
\%W�4pV
'dV^,V^,8XdR	MR
p\'VP)4W�WmW�VR4	K�	K�	K�	R#)�
RLX_QWEN3_DIRz$/Users/Shared/rlx/weights/Qwen3-0.6B�RLX_QWEN3_MATRIX_REPS�3r&r@z�kind,impl,backend,mode,batch,seq,shape_ok,max_abs,mean_abs,cos_mean,cos_min,top1_match,top1_total,min_ms,median_ms,status,messageT)�local_files_onlyr�ok�fail�cpu_refN)r-r�)�� �@�))F�full)T�last)�os�environ�getrEr	r�backendsr&�is_availablerrr�from_pretrained�float32�to�evalra�tupler2rNrv�upper)�	model_dirrR�target�	cpu_model�target_modelrr
rPrd�refr]�gotr_re�valsrgs                r�mainr�sk���
�
����0V�W�I��q�#�b�j�j�n�n�%<�c�B�C�D�D��n�n�(�(�5�5�7�7�U�U�F�	�	@��%�4�4��D��
�
���b��i�����!'�%��9�5I�5Y�5Y��D��
�
�6��b��j�������#�C�?�
��!�)�U�E��a�H���%�l�E��S�
�� ����+�u�S�Y�Y�/?�?���s�(��!)�d�1�g��a��.@��f��������c�T�RX�Zc�d�
@�$�r�__main__)�__doc__�
__future__rr�rtrX�typingrr�transformersrrr"r)r9rN�no_gradrarvr��__name__rrr�<module>r�s����#�	�����-����	��
�������� %��'+��-2��49��;>��@D����
������ ��"%��'*��,/��14��69��;>��@C��	��������!��#'��)-��/3��59��;@��BG��
�	��	��	��	�!&�	�(-�	�/4�	�6;�	�=B�	�DI�	�

��
��
��
��
!&��
(-��
/4��
6;��
=B��
DI��
�
��
��
��
�!&�
�(-�
�/4�
�6;�
�=B�
�DI�
�
��������!&��(-��/4��6;��=B��DI��
��������!&��(-��/4��6;��=B��DI��
��������!&��(-��/4��6;��=B��DI��
��������!&��(-��/4��6;��=B��DI��
��������!&��(-��/4��6;��=B��DI��
��������!&��(-��/4��6;��=C����
����#��%+��-3��5;��=C����
��
�$?�!�9�
� �������" �Fe�6�z���F�r