NLG模块实现(未完成)
NLG(Natural Language Generation),計算機(jī)將結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為文本并以人類語言編寫信息。
使用GPT框架完成NLG任務(wù)。GPT模型是預(yù)訓(xùn)練模型, 采用兩階段過程,第一個階段是利用語言模型進(jìn)行預(yù)訓(xùn)練(無監(jiān)督形式),第二階段通過 Fine-tuning 的模式解決下游任務(wù)(監(jiān)督模式下)。
GPT模型是Seq2Seq模型中的一種。分為encoder和decoder兩部分。
encoder:有12個transform block。輸入句子,輸出詞向量。
decoder:有12個transform block。
第一步:輸入前i-1個時候的輸出,做self-attention,輸出結(jié)果。
第二步:以encoder的輸出為key和value,yty_tyt?為query,對前i-1個輸出做multi-head attention。
第三步:將第一步和第二步的結(jié)果求平均。(這樣做的好處是:不僅可以把encoder的信息加入,還可以加入其他信息。例如提問者的背景)
第四步:對第三步的結(jié)果做MLP。
第五步:對第四步的結(jié)果做Linear 和 殘差鏈接。
這是一個transform block結(jié)束。以上輸出作為下一層的block的輸入。
最后一層使用最后一個時間步的輸出,在詞庫上做softmax,預(yù)測下一步單詞。
為了節(jié)省內(nèi)存,encoder和decoder共享參數(shù)。encoder和decoder中的self-attention參數(shù)共享。
總結(jié)
以上是生活随笔為你收集整理的NLG模块实现(未完成)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: npm下载webpack时常见错误解决办
- 下一篇: 120. Triangle