
    9i^	                     d    S SK r S SKJr   " S S\R                  5      rS r\S:X  a  \" 5         gg)    Nc                   @   ^  \ rS rSrSr   SU 4S jjrSS jrSrU =r$ )Embedder   z
Composite embedding layer.
c	                    > [         [        U ]  5         [        R                  " X!5      U l        [        R                  " X15      U l        XR                  R                  l        [        R                  " XA5      U l	        [        R                  " XQ5      U l
        [        R                  " US9U l        [        R                  R                  U R
                  R                  5        [        R                  R                  U R                  R                  5        [        R                  R                  U R                  R                  5        [        R                  R                  U R                  R                  5        g )N)p)superr   __init__nn	Embeddingtoken_embeddingpos_embeddingweightrequires_gradtype_embeddingturn_embeddingDropoutdropout_layerinitxavier_uniform_)
self
hidden_dimnum_token_embeddingsnum_pos_embeddingsnum_type_embeddingsnum_turn_embeddingspadding_idxdropoutpos_trainable	__class__s
            l/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/models/nlp/space/modules/embedder.pyr	   Embedder.__init__   s     	h&(!||,@M\\*<I2?!!/ ll+>K ll+>KZZ'2
 	 4 4 ; ;<
 2 2 9 9:
 3 3 : :;
 3 3 : :;    c                     U R                  U5      nUb  XPR                  U5      -  nUb  XPR                  U5      -  nUb  XPR                  U5      -  nU R	                  U5      nU$ )N)r   r   r   r   r   )r   	token_inppos_inptype_inpturn_inpembeds         r    forwardEmbedder.forward'   sr    $$Y/''00E((22E((22E""5)r"   )r   r   r   r   r   )Ng?F)NNN)	__name__
__module____qualname____firstlineno____doc__r	   r)   __static_attributes____classcell__)r   s   @r    r   r      s"     "$6	 	r"   r   c                  b   SS K n [        SSSSS5      n[        R                  " U R                  R                  SSSS/5      R                  S5      5      n[        R                  " U R                  R                  SSSS/5      R                  S5      5      n[        R                  " U R                  R                  SSSS/5      R                  S5      5      n[        R                  " U R                  R                  SSSS/5      R                  S5      5      nU" X#XE5      n[        U5        g )Nr   
         int64)numpyr   torchtensorrandomrandintastypeprint)npmodelr$   r%   r&   r'   outs          r    mainrA   3   s    RRR(E
		!R"b*11':<Ill299,,QRH=DDWMNG||BII--ab"X>EEgNOH||BII--ab"X>EEgNOH
	H
7C	#Jr"   __main__)r8   torch.nnr
   Moduler   rA   r+    r"   r    <module>rF      s7     )ryy )X
 zF r"   