Team Ai
Apppublic

sumanthd/IndicTrans-MultilingualTranslation

sourceHugging Facemitupdated 4y agoView on Hugging Face
6likes
custom_interactive.cpython-37.pyc66 linesDownload Raw Back to __pycache__
1B

2��,c�-�@s�dZddlZddlmZddlZddlmZmZmZm	Z	ddl3mZddlm
Z
mZddlmZddlZedd	�Zed4d�Zdd
d�ZGdd�d�ZdS)zC5Translate raw text with a trained model. Batches data on-the-fly.6�N)�7namedtuple)�checkpoint_utils�options�tasks�utils)�convert_namespace_to_omegaconf)�pack_constraints�unpack_constraints)� get_symbols_to_strip_from_output�Batchz&ids src_tokens src_lengths constraints�Translationz#src_str hypos pos_scores alignmentsFc#s&�fdd��|r�dd�|D�}x2t|�D]&\}}d|kr(|�d�^||<||<q(Wx,t|�D] \}}	��fdd�|	D�||<q\W|r�t|�}8nd}9��|��\}}�j�j|||10d�|jj|jj||jj	d�j11d	d12�}
xJ|
D]B}|d}|dd
}|dd}|�dd�}t||||d�Vq�WdS)Ncs�|�S)N�)�x)�	encode_fnr
�7D:\ai4bharat\indicTrans\inference\custom_interactive.py�encode_fn_targetsz&make_batches.<locals>.encode_fn_targetcSsg|]13}t��qSr
)�list)�.0�_r
r
r�14<listcomp>%sz make_batches.<locals>.<listcomp>�	cs"g|]}�jj�|�ddd��qS)F)Z15append_eosZadd_if_not_exist)�target_dictionaryZencode_line)r�16constraint)r�taskr
rr-s)�constraints)�dataset�17max_tokensZ
max_sentences�
max_positionsZignore_invalid_inputsF)�shuffle�id�	net_input�18src_tokens�src_lengthsr)�idsr!r"r)
�	enumerate�splitrZ"get_interactive_tokens_and_lengthsZget_batch_iteratorZbuild_dataset_for_inferencerr�19batch_size�#skip_invalid_size_inputs_valid_testZnext_epoch_itr�getr)�lines�cfgrrrZconstrainted_decodingZbatch_constraints�i�lineZconstraint_listZconstraints_tensor�tokens�lengths�itr�batchr#r!r"rr
)rrrr�make_batchess>202122r1c@s0eZdZddd�Zdd�Zdd�Zd
d23d�Zd	S)�24Translator�FcCs�||_tjdd�|_|jr8|jj|ddd||dd�n|jj|dd||dd�tj|j|gd	�}d25|_d|_d|_d
|_	t26|�|_t�
|jj�|jjjdkr�d|jj_|jjjdkr�|jjjdkr�d|jj_|jjjr�|jjj|jjjks�td��|jjj�r"|jjj|jjjk�s"td��tj���o8|jjj|_t�|jj �|_ t!�"|jj#j$�}t%j&t�'|jj#j(�||j |jj)j*|jj)j+dk|jj)j+d�\|_,|_-|j j.|_/|j j0|_1xZ|j,D]P}|dk�r̐q�|jjj2�r�|�3�|j�r�|jj4j5�s�|��|�6|j��q�W|j �7|j,|jj�|_8|j �9|jj:�|_:|j �;|jj<�|_<t�=|jjj>�|_?tj@|j �A�fdd�|j,D���|_AdS)NT)�interactive�subword_nmt������ordered�)�path�27remove_bpe�num_workersrr&�buffer_size)r9r:r;r&r<)�28input_argsZSRCZTGTFZ
model_configsz1--sampling requires --nbest to be equal to --beamz0--batch-size cannot be larger than --buffer-size)Z
arg_overridesr�suffix�strictZ29num_shardscSsg|]}|���qSr
)r)r�modelr
r
rr�sz'Translator.__init__.<locals>.<listcomp>)B�constrained_decodingrZget_generation_parser�parser�set_defaultsZparse_args_and_archZsource_lang�target_langr'Zuser_dirrr*rZimport_user_module�commonr4r<rrr&�30generationZsampling�nbestZbeam�AssertionError�torch�cuda�is_available�cpu�use_cudarZ31setup_taskr�ast�literal_eval�common_evalZmodel_overridesrZload_model_ensemble�split_pathsr9Z32checkpointZcheckpoint_suffixZcheckpoint_shard_count�modelsZ_model_argsZsource_dictionary�src_dictr�tgt_dictZfp16�halfZdistributed_trainingZpipeline_model_parallelZprepare_for_inference_Zbuild_generator�	generatorZbuild_tokenizer�	tokenizerZ	build_bpe�bpeZload_align_dictZreplace_unk�33align_dictZresolve_max_positionsr)�self�data_dirZcheckpoint_pathr&rA�args�	overridesr@r
r
r�__init__Tsx34353637383940zTranslator.__init__cCs0|jdk	r|j�|�}|jdk	r,|j�|�}|S)N)rW�encoderX)rZrr
r
rr�s414243zTranslator.encode_fncCs0|jdk	r|j�|�}|jdk	r,|j�|�}|S)N)rX�decoderW)rZrr
r
r�	decode_fn�s444546zTranslator.decode_fnNcCsP|jr|dkrtd��|js,|dk	r,td��|rjd}g}x*t||�D]\}}|�|d|���qDW|}nd}d}g}g}	�xt||j|j|j|j|�D]�}47|48j	�49d�}|50j	}|51j}
|52j}|j
r�|��}|
��}
|dk	r�|��}d||
d�i}|jj|j|j||d	�}d53d�t|�D�}|�r,dd�|D�}x^tt|54j��|��D]F\}\}}t�|||j���}||}|�||||d
|if��qBWq�Wx�t|dd�d�D]�\}}}}d}|jdk	�r�|j�||jjj�}xr|dtt |�|jj!j"��D]R}tj#|d�$��%�||d|j&|jdt'|j�d�\}}}|�(|�}|	�|��q�W�q�W|	S)Nz5Constraints cant be None in constrained decoding modez1Cannot pass constraints during normal translationTrFrr )r!r")rcSsg|]}g�qSr
r
)rrr
r
rrsz(Translator.translate.<locals>.<listcomp>cSsg|]}t|��qSr
)r	)r�cr
r
rrsrcSs|dS)Nrr
)rr
r
r�<lambda>�z&Translator.translate.<locals>.<lambda>)�key�r-�	alignmentr5)�hypo_tokens�src_strrgrYrTr:Zextra_symbols_to_ignore))rA�55ValueError�zip�appendr1r*rrrr!�sizer"rrMrJZinference_steprVrR�ranger$r#�tolistrZ	strip_padrT�pad�sortedrS�stringrPZpost_process�min�lenrFrGZpost_process_prediction�intrLrYr56ra)rZ�inputsrrAZmodified_inputs�_inputrZstart_id�resultsZfinal_translationsr0Zbszr!r"�sample�translationsZlist_constraintsr+rZhyposZsrc_tokens_i�id_rriZhyporhZhypo_strrgZdetok_hypo_strr
r
r�	translate�s�5758""59zTranslator.translate)r3F)N)�__name__�60__module__�__qualname__r^rrar|r
r
r
rr2Ss61qr2)F)�__doc__rN�collectionsrrIZfairseqrrrrZfairseq.dataclass.utilsrZ$fairseq.token_generation_constraintsrr	Zfairseq_cli.generater62�codecsrrr1r2r
r
r
r�<module>63s6465666