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