当前位置 博文首页 > 乐亦亦乐的博客:使用飞桨模型生成情话情诗

    乐亦亦乐的博客:使用飞桨模型生成情话情诗

    作者:[db:作者] 时间:2021-06-02 18:31

    飞桨官网地址:https://www.paddlepaddle.org.cn/hubdetail?name=ernie_gen_lover_words&en_category=TextGeneration

    ERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目标文本的关联性,加强了编码器和解码器的交互。ernie_gen_lover_words采用网络搜集的情诗、情话数据微调,可用于生成情话。

    paddle 安装参考我的另一篇博文:https://blog.csdn.net/qq_41251963/article/details/113665364

    ?

    安装好paddle环境后,激活环境:conda activate paddle

    安装模型:

    hub install ernie_gen_lover_words==1.0.1

    模型安装成功:?

    ?

    使用命令行进行预测:

    hub run ernie_gen_lover_words --input_text="情人节" --use_gpu True --beam_width 5

    预测结果:

    API

    def generate(texts, use_gpu=False, beam_width=5):

    预测API,输入情话开头,输出情话下文。

    参数

    • texts (list[str]): 情话的开头;
    • use_gpu (bool): 是否使用 GPU;若使用GPU,请先设置CUDA_VISIBLE_DEVICES环境变量
    • beam_width: beam search宽度,决定每个情话开头输出的下文数目。

    返回

    • results (list[list][str]): 情话下文,每个情话开头会生成beam_width个下文。
    import paddlehub as hub
    
    module = hub.Module(name="ernie_gen_lover_words")
    
    test_texts = ['情人节', '故乡', '思念']
    results = module.generate(texts=test_texts, use_gpu=True, beam_width=1)
    for result in results:
        print(result)

    ?