1 概述
怎么學習?——給定輸入和輸出:
但是這樣做不現(xiàn)實,因為這樣輸入-輸出需要成對的資料,而chatgpt 成功解決了這一個難題。
chatgpt不需要成對的資料,只需要一段有用的資料,便可以自己學習內容,如下:
1.1 發(fā)展歷程
初代和第二代gpt
第二代到第三代
gpt3還會寫代碼
其性能表現(xiàn)
但是gpt3也有缺點
1.2 預訓練+監(jiān)督學習
想要實現(xiàn)chat的功能,就得經(jīng)過一個監(jiān)督式學習(問答),就要在預訓練后,增加一個監(jiān)督學習的流程,賦予模型問答能力:
預訓練的好處
在多種語言上做過多訓練以后,某一語言的任務會幫助其他語言學會同樣的任務。
實驗數(shù)據(jù)如下:
1.3 增強式學習
chatgpt還引入了增強式學習,給好的回答更多獎賞回饋。
1.4 對訓練數(shù)據(jù)的記憶
其能夠記得訓練數(shù)據(jù)的部分信息:
1.5 更新參數(shù)
可以通過對話改變其記憶:
1.6 AI內容檢測
檢測某一段文字是否為AI生成的,最簡單的做法是這樣:
1.7 保護隱私
有時候模型會泄漏訓練數(shù)據(jù),需要遺忘學習:
1.8 gpt和bert
一個是做文字接龍,一個是做文字填空:
窮人怎么用gpt
方法1 縮短輸入
把多個問題一起丟進去:
方法2 自建模型
方法3 LLM cascade
2 生成式模型
主要分為以下三種,注意英文的token指的不是單個完整的單詞,而是要把一個單詞拆分成前綴后綴的形式,拆解成更小的單位:
2.1 生成方式
生成式有兩種策略——各個擊破和一次到位,下面先介紹各個擊破
2.1.1 各個擊破 Autoregressive
每次生成一個(token),然后按照序列形式把全部完整的內容生成:
這種方式生成效果好,但是所需要的時間長。%
2.1.2 一次到位 Non-autoregressive
x需要先設定最大輸出長度,由于不需要每次都保證輸出的內容一樣長,需要一個end標志符表示結束。
兩者比較:
2.1.3 兩者結合
2.2 預訓練和微調
一般都是先訓練一個通用模型,然后在某些任務上做微調(finetune)。
2.3 指示學習 instruction learning 和 上下文學習 in-context learning
和chatgpt進行交互的時候,我們的promt可能包可以分為兩種情況:指示學習 instruction learning 和 上下文學習 in-context learning。所以在模型訓練階段,我們需要制造一些成對的語料數(shù)據(jù)加強模型的這兩種學習的能力。
前者是給模型一些指示,當模型進行學習和回答,后者是通過一些例子,讓模型進行學習和回答。
2.2.1 上下文學習 in-context learning
即讓機器在例子中進行學習。為got提供一些例子,比如情感分析中:
但是不同于傳統(tǒng)的模型更新(梯度下降),這里gpt的學習,不會更改其模型參數(shù)。
通過例子,雖然不會提升多少情感分析的能力,而是為了喚醒gpt的情感分析能力,這個結果來自一篇文獻的實驗結論。
2.2.2 指示學習 instruction learning
讓gpt能夠看懂指令:
一個指示學習的例子:判斷這句話的情感:給女朋友買了這個項鏈,她很喜歡。選項:A=好;B=一般;C=差。
訓練階段和測試階段,可以是不同的任務的指示。
用人類的語言訓練:
2.2.3 chain of thought (CoT) prompting
讓模型給出推理過程,這樣能夠讓模型做出更正確的答案。
讓模型具備這個能力,就得在模型訓練階段給出這樣的“帶有推理過程”的語料。
讓模型自動生成prompt
這里的promt也可以理解為指令。
1。 使用 soft prompt
之前我們講的都是hard prompt,但其實還有soft prompt,給一堆向量而不是人類語言。
2. 使用強化學習。
3. 讓模型自己尋找,下一些特殊指令:
最佳指令可以極大的提升模型的性能:
2.3 訓練數(shù)據(jù)的預處理
數(shù)據(jù)的收集和處理需要用到以下內容:
去掉重復資料的重要性:假設一段話在訓練數(shù)據(jù)中出現(xiàn)了6w多次,會發(fā)現(xiàn)模型很容易說出這些話,因此應該避免這種情況。
在固定運算資源的情況下,如何選擇模型規(guī)模和數(shù)據(jù)集規(guī)模?有人做了相關實驗,一條線表示固定的運算資源情況下的結果,縱軸的越小越好:
所以要找到每個U型曲線的最低點,把這些最低點串起來可以得到如下的圖:
模型規(guī)模和資料最佳適配比:
除此以外,指示學習(instruction-tuning)也可以大大提升模型的性能。
2.4 Human Teaching (強化學習)
這也是一種輔助模型訓練的技術(強化學習),可以有效提高模型的性能,讓小模型吊打大模型的性能。
KNN+LM
一般的LM是這樣的運作方式:
而KNN+LM是這樣的,尋找embedding的相似度
這樣做會帶來什么神奇的效果?
但是這種語言模型非常的慢
2.5 信心越高,正確率越高
讓AI 解釋AI
來解讀一下這篇文章:
解釋什么?——知道每一個神經(jīng)元的作用、和哪些詞關聯(lián)度最大:
有工作發(fā)現(xiàn)了某一個神經(jīng)元遇到以下詞時輸出會很大,通過觀察發(fā)現(xiàn),下一個會出現(xiàn)“an”:
如何操作?輸入以下promt:
能得到以下結果:
其他結果:
如何判斷解釋的好不好?
然后去gpt2模型找到那個神經(jīng)元檢查一下:
完整的prompt
縱軸表示可解釋性的分數(shù),分數(shù)越高,可解釋性越好,結論是小模型更容易解釋、越底層的神經(jīng)元越容易解釋。文章來源:http://www.zghlxwxcb.cn/news/detail-495751.html
大致流程
讓模型扮演一個神經(jīng)元:
尋找神經(jīng)元在什么時候激活值較大:文章來源地址http://www.zghlxwxcb.cn/news/detail-495751.html
到了這里,關于【LLM GPT】李宏毅大型語言模型課程的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!