日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【学习周报】

發布時間:2023/12/1 综合教程 23 生活家
生活随笔 收集整理的這篇文章主要介紹了 【学习周报】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習內容:

  1. instructGPT
  2. VLTinT: Visual-Linguistic Transformer-in-Transformer for Coherent Video Paragraph Captioning

學習時間:

  • 1.9 ~ 1.14

遇到的問題:

強化學習策略的使用:只看懂了HMN代碼,沒有完全看懂VPM中強化學習代碼的具體使用方法,還沒有設計好強化學習獎勵函數。

學習筆記:

instructGPT

openai關于ChatGPT的論文暫時還沒有出來,不過ChatGPT用到的技術和InstructGPT一樣,區別是InstructGPT是在GPT3上微調,ChatGPT是在GPT3.5上微調。

1.introduction

語言模型是每次給定一段東西,然后去預測下一個詞,是自監督學習,沒有人工標注。如果想讓語言模型去解釋費馬定理,那么訓練文本中需要出現過相關的內容。而訓練的文本一般是幾百億數量級,并不知道里面會有什么東西,只能全送進去期待大力出奇跡。

但是這樣做會有兩個問題:

  1. 有效性,想讓模型去學做一件事,但是模型無法學會,這是因為文本中可能就沒有相關的內容。
  2. 安全性,模型輸出一些不應該輸出(非法的、有害的等等)的內容。

解決這兩個問題的辦法,就是標一點數據,再把語言模型進行微調,效果會更好一些,能夠更加服從人類的指示(instruction)。

這篇論文展示了怎么樣對語言模型與人類意圖進行匹配,核心思想是在人為的反饋上進行微調。

方法簡介:收集很多問題,使用標注工具將問題的答案寫出來,用這些數據集對GPT3進行微調。接下來再收集一個數據集,通過剛才微調的模型輸入問題得到一些輸出答案,人工對這些答案按好壞進行排序,然后通過強化學習繼續訓練微調后的模型,這個模型就叫InstructGPT

2.training strategy

重點:兩個標注數據集,三個模型。


1、找人來寫出各種各樣的問題(或者從以前GPT3接口收集的問題),這些問題在GPT里面叫做prompt

例如:什么是月亮?

2、讓人根據問題寫答案

例如:圍繞地球旋轉的球形天體。

3、將問題和答案拼在一起,形成一段對話。大量這樣的對話文本,形成第一個標注數據集。

例如:什么是月亮?圍繞地球旋轉的球形天體。

4、使用這些對話微調GPT3。GPT3的模型在人類標注的這些數據上進行微調出來的模型叫做SFT(supervised fine-tune),有監督的微調。這就是訓練出來的第一個模型。

5、給出一個問題,通過SFT模型生成幾個答案,這里假設生成四個答案。

例如:什么是月亮?

SFT模型生成了四個答案:

A、月亮是太陽系中離地球最近的天體。

B、月亮是太陽系中體積第五大的衛星。

C、月亮是由冰巖組成的天體,在地球的橢圓軌道上運行。

D、月亮是地球的衛星。

6、將四個答案讓人根據好壞程度進行排序。

例如:張三覺得答案D是最好的,其次是C,C比A要好,A和B差不多。就是D>C>B=A。

7、將大量的人工排序整理為一個數據集,就是第二個標注數據集。

8、使用排序數據集訓練一個 RM模型(reward model) 獎勵模型。這是第二個模型。

模型輸入:問題+答案

例如:什么是月亮?月亮是地球的衛星。

模型輸出:分數,例如:9.4。

優化目標:問題+答案得到的分數要滿足人工排序的順序。

例如:

什么是月亮?月亮是太陽系中離地球最近的天體。 5.4

什么是月亮?月亮是太陽系中體積第五大的衛星。 5.4

什么是月亮?月亮是由冰巖組成的天體,在地球的橢圓軌道上運行。 8.2

什么是月亮?月亮是地球的衛星。 9.4

這里得到的分數就滿足張三的排序:D>C>B=A。

9、繼續給出一些沒有答案的問題,通過強化學習繼續訓練SFT模型,新的模型叫做RL模型(Reinforcement Learning)。優化目標是使得RF模型根據這些問題得到的答案在RM模型中得到的分數越高越好。這是第三個模型。

10、最終微調后的RL模型就是InstructGPT模型。

備注:兩次對模型的微調:GPT3模型—>SFT模型—>RL模型,其實這里始終都是同一個模型只是不同過程中名稱不一樣

需要SFT模型的原因:GPT3模型不一定能夠保證根據人的指示、有幫助的、安全的生成答案,需要人工標注數據進行微調。

需要RM模型的原因:標注排序的判別式標注,成本遠遠低于生成答案的生成式標注。

需要RF模型的原因:在對SFT模型進行微調時,生成的答案分布也會發生變化,會導致RM模型的評分會有偏差,需要用到強化學習。

3.data collection

首先要收集問題集,prompt集:標注人員寫出這些問題,寫出一些指令,用戶提交一些他們想得到答案的問題。先訓練一個最基礎的模型給用戶試用,同時可以繼續收集用戶提交的問題。劃分數據集時按照用戶ID劃分,因為同一個用戶問題會比較類似,不適合同時出現在訓練集和驗證集中。

三個模型的數據集:

1、SFT數據集:13000條數據。標注人員直接根據剛才的問題集里面的問題寫答案。

2、RM數據集:33000條數據。標注人員對答案進行排序。

3、RF數據集:31000條數據。只需要prompt集里面的問題就行,不需要標注。因為這一步的標注是RM模型來打分標注的。

openai專門找了40個標注人員進行標注,需要長期交流的合同工,因為這些標注任務需要一定熟練度、對業務的理解、并需要做到隨時溝通。

4.models

4.1 SFT(Supervised fine-tuning)模型

把GPT3這個模型,在標注好的第一個數據集(問題+答案)上面重新訓練一次。

由于只有13000個數據,1個epoch就過擬合,不過這個模型過擬合也沒什么關系,甚至訓練更多的epoch對后續是有幫助的,最終訓練了16個epoch。

4.2 RM(Reward modeling)模型


參數解釋:

1、D:第二個數據集,人工對答案進行排序。
2、x:第二個數據集D中的問題,每個問題對應K個答案,答案的順序已經人工標注好了。
3、yw和yl:x對應的K個答案中的兩個,其中yw排序比yl高,因為是一對,所以叫pairwise。
4、rθ(x,y):即需要訓練的RM模型,對于輸入的一對x和y得到的標量分數。
5、θ:需要優化的參數。

把SFT模型最后的unembedding層去掉,即最后一層不用softmax,改成一個線性層,這樣RM模型就可以做到輸入問題+答案,輸出一個標量的分數。

RM模型使用6B,而不是175B的原因:

  1. 小模型更便宜
  2. 大模型不穩定,loss很難收斂。如果你這里不穩定,那么后續再訓練RL模型就會比較麻煩。

損失函數,輸入是排序,需要轉換為值,這里使用Pairwise Ranking Loss。

損失函數的理解:

1、x和yw這一對問題和答案,放進RM模型中算出一個分數rθ(x,yw)
2、x和yl這一對問題和答案,放進RM模型中算出一個分數rθ(x,yl)
3、因為人工標注出yw的排序要比yl高,r(x,yw)得到的分數應該比r(x,yl)得到的分數高,所以rθ(x,yw)-rθ(x,yl)這個差值要越大越好
4、把相減后的分數通過sigmoid,那么這個值就在-1到1之間,并且我們希望σ(rθ(x,yw)-rθ(x,yl))越大越好
5、這里相當于將排序問題轉換為了分類問題,即σ(rθ(x,yw)-rθ(x,yl))越接近1,表示yw比yl排序高,屬于1這個分類,反之屬于-1這個分類。所以這里就用logistic
loss,由于是二分類,也相當于是交叉熵損失函數。
6、對于每個問題有K個答案,所以前面除以C(K,2),使得loss不會因為K的變化而變化太多。
7、最后是最小化loss(θ),就是要最大化rθ(x,yw)-rθ(x,yl)這個值,即如果一個答案的排序比另一個答案排序高的話,我們希望他們通過RM模型得到的分數之差能夠越大越好。

4.3 RL(Reinforcement learning)模型


參數解釋:

1、πSFT:SFT模型。
2、πφRL:強化學習中,模型叫做Policy,πφRL就是需要調整的模型,即最終的模型。初始化是πSFT。
3、(x,y)~DπφRL:x是第三個數據集中的問題,y是x通過πφRL模型得到的答案。
4、rθ(x,y):對問題x+答案y進行打分的RM模型。
5、πφRL(y | x):問題x通過πφRL得到答案y的概率,即對于每一個y的預測和它的softmax的輸出相乘。
6、πSFT(y | x):問題x通過πSFT得到答案y的概率。
7、x~Dpretrain:x是來自GPT3預訓練模型的數據。
8、β、γ:調整系數。

這里用的是強化學習,因為他的數據分布是隨著策略的更新,環境會發生變化的。優化算法是PPO,Proximal Policy Optimization,近端策略優化。簡單來說,就是對目標函數objective(φ)通過隨機梯度下降進行優化。

目標函數理解:優化目標是使得目標函數越大越好,objective(φ)可分成三個部分,打分部分+KL散度部分+GPT3預訓練部分

1、將第三個數據集中的問題x,通過πφRL模型得到答案y
2、把一對(x,y)送進RM模型進行打分,得到rθ(x,y),即第一部分打分部分,這個分數越高就代表模型生成的答案越好
3、在每次更新參數后,πφRL會發生變化,x通過πφRL生成的y也會發生變化,而rθ(x,y)打分模型是根據πSFT模型的數據訓練而來,如果πφRL和πSFT差的太多,則會導致rθ(x,y)的分數估算不準確。因此需要通過KL散度來計算πφRL生成的答案分布和πSFT生成的答案分布之間的距離,使得兩個模型之間不要差的太遠。
4、我們希望兩個模型的差距越小越好,即KL散度越小越好,前面需要加一個負號,使得objective(φ)越大越好。這個就是KL散度部分。
5、如果沒有第三項,那么模型最終可能只對這一個任務能夠做好,在別的任務上會發生性能下降。所以第三部分就把原始的GPT3目標函數加了上去,使得前面兩個部分在新的數據集上做擬合,同時保證原始的數據也不要丟,這個就是第三部分GPT3預訓練部分。
6、當γ=0時,這個模型叫做PPO,當γ不為0時,這個模型叫做PPO-ptx。InstructGPT更偏向于使用PPO-ptx。
7、最終優化后的πφRL模型就是InstructGPT的模型。

VLTinT: Visual-Linguistic Transformer-in-Transformer for Coherent Video Paragraph Captioning

論文鏈接:
https://arxiv.org/abs/2211.15103
代碼鏈接:
https://github.com/UARK-AICV/VLTinT

1.introduction

視頻段落字幕生成任務要求模型對未處理的一段長視頻生成概況性的文字描述,且該視頻中所描述的連貫故事嚴格遵循一定的時間位置。這要求模型具有很強的時空事件提取能力。

作者遵循人類觀看視頻時的感知過程,通過將視頻場景分解為視覺(例如人類、動物)和非視覺成分(例如動作、關系、邏輯)來層次化的理解場景,并且提出了一種稱為Visual-Linguistic(VL)的多模態視覺語言特征。在VL特征中,一個完整的視頻場景主要由三種模態進行建模,包括:

  1. 全局視覺環境表征:代表周圍整體場景
  2. 局部視覺主體表征:代表當前進行中的事件
  3. 語言性場景元素:代表視覺和非視覺元素

作者設計了一種自回歸Transformer結構(TinT)來對這三種模態進行表征和建模,可以同時捕獲視頻中事件內和事件間內容的語義連貫性。為了更加高效的訓練模型,作者還配套提出了一種全新的VL多模態對比損失函數,來保證學習到的嵌入特征與字幕語義相匹配,作者在多個段落級字幕生成基準上對模型進行了評估,結果表明本文方法在字幕生成的準確性和多樣性方面性能達到SOTA。

2.overview of VLTinT:

作為密集視頻字幕生成(Dense Video Captioning,DVC) 的簡化版本,視頻段落字幕(Video Paragraph Captioning,VPC) 的目的是對給定的視頻生成概括性的段落描述,從而簡化事件解析和描述的流程。

之前的VPC方法大多使用一個基于CNN的黑盒網絡來對視頻特征進行編碼,這種做法可能會忽略視頻中視頻和語言模態之間的交互。

本文提出的VLTinT模型將視頻場景分解為三種模態,以達到對視頻中視覺和非視覺元素的細粒度描述。此外,為了關注對當前事件具有核心影響的主要代理主體,作者對其加入了混合注意機制(Hybrid Attention Mechanism,HAM) 進行學習。下圖展示了本文所提VLTinT模型與其他常規方法的對比。

在上圖中展示的Trans.XL和MART方法中,每個事件依然是獨立解碼,沒有考慮事件間的一致性。

為此,作者提出了Transformer in Transformer架構(TinT),TinT Decoder可以同時兼顧一段視頻中事件內和事件間的依賴關系建模。相比之前方法簡單的使用最大似然估計損失(MLE)來訓練模型,作者引入了一個新的多模態VL對比損失來保持在訓練過程中對視覺和語言語義的學習,而不增加額外的計算成本

3. method

本文的VLTinT由兩個主要模塊構成,分別對應一個編碼器VL Encoder和解碼器TinT Decoder。

VL Encoder:主要負責對一段視頻中的不同事件提取特征表示
TinT Decoder:主要負責對這些特征進行解碼生成每個事件的文字描述,同時對事件內和事件間的一致性進行建模

這兩個模塊都通過本文提出的VL對比損失以端到端的方式進行訓練,VLTinT的整體架構如下圖所示:

待續

文章算法實現部分還沒看明白,下周會繼續研究這方面的內容。

總結

以上是生活随笔為你收集整理的【学习周报】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。