a c^@s$ddlmZmZGdddeZdS)) T5TokenizerMT5ForConditionalGenerationc@s2eZdZd edddZedddZd d Zd S) T5_Bgoogle/t5-large-ssmcuda:0)modelcCsP||_t||_|dkr6t||_|jnt|||_dS)Nmultigpu) devicerZfrom_pretrained tokenizerrevalrZ parallelizeto)selfrr r@/Users/svjack/temp/docvqa_upl/Question-Generator/zh_mt5_model.py__init__s   z T5_B.__init__)questioncCsN|jdkrdn|j}|j|dd|}|j|jd}|jj|dd}|S)Nrrpt)return_tensorsrTZskip_special_tokens)r r r rgenerateZ input_idsdecode)r rr encodeanswerdecodedrrrpredict s z T5_B.predictcsft|tgksJjdkr"dnj}j|ddd|}jjfi|}fdd|D}|S)NrrrT)rZpaddingcsg|]}jj|ddqS)Tr)r r).0Zansr rr z&T5_B.predict_batch..)typer r r rr)r Z question_listr rrrrrr predict_batchs zT5_B.predict_batchN)rr)__name__ __module__ __qualname__strrrr rrrrrs rN)Z transformersrrobjectrrrrrs