
    9i                         S SK JrJr  S SKrS SKJrJr  S SKJr  S SK	J
r
  S SKJr  \R                  " \R                  S9 " S S	\
5      5       rg)
    )AnyDictN)MetricsTrainers)ModelOutputBase)NlpEpochBasedTrainer)TRAINERS)module_namec                   8    \ rS rSrS rS rS\\\4   4S jr	Sr
g)TextGenerationTrainer   c                 R    U R                   R                  UR                  5       SS9$ )NT)skip_special_tokens)eval_preprocessordecodetolist)selftokenss     o/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/trainers/nlp/text_generation_trainer.py_decodeTextGenerationTrainer._decode   s+    %%,,MMO - 7 	7    c                 6   U R                   (       a  U R                  R                  OU R                  nUR                  5         [	        5       n[
        R                  " 5          [        R                  U R                  ;   a   UR                  U R                  X!5      5        [        R                  U R                  ;   d  [        R                  U R                  ;   a!  UR                  UR                  " S0 UD65        S S S 5        U$ ! , (       d  f       U$ = f)N )_distmodelmoduleevaldicttorchno_gradr   text_gen_metricmetricsupdate_eval_genaratePPLloss_metricforward)r   datar   outputs       r   evaluation_step%TextGenerationTrainer.evaluation_step   s    %)ZZ

!!TZZ

]]_&&$,,6d11%>?{{dll*g.A.AT\\.Qemm3d34	 
  _
 s   #BD		
Dreturnc                 b   UR                  U5      n[        U[        5      (       a  UR                  5       nUS    Vs/ s H  o@R	                  U5      PM     snUS'   US    Vs/ s H  o@R	                  U5      PM     snUS'   [        US   5      [        US   5      :X  d   eU$ s  snf s  snf )N	sequencespredslabelstgts)generate
isinstancer   to_dictr   len)r   r   r)   resultseqs        r   r%   $TextGenerationTrainer._eval_genarate    s    %fo..^^%F8>{8KL8K<<,8KLw59(^D^cS)^DV6'?#s4<'8888 MDs   B'%B,r   N)__name__
__module____qualname____firstlineno__r   r+   r   strr   r%   __static_attributes__r   r   r   r   r      s     7
T#s(^ r   r   )typingr   r   r    modelscope.metainfor   r   modelscope.outputs.outputsr   modelscope.trainersr   modelscope.trainers.builderr	   register_moduletext_generation_trainerr   r   r   r   <module>rG      sG      1 6 4 0 
h&F&FG0  Hr   