使用飛槳模型生成情話情詩
阿新 • • 發佈:2021-02-19
技術標籤:深度學習
飛槳官網地址: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)