偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

五分鐘帶你搞懂從零打造一個(gè)ChatGPT

人工智能
今年大家多多少少都有接觸到AI相關(guān)的項(xiàng)目了,從前端的角度來(lái)看以前是調(diào)用后端的接口,現(xiàn)在改成了調(diào)用大模型提供的接口,本質(zhì)依然沒(méi)變。

前言

歐陽(yáng)上一次寫(xiě)文章還是4個(gè)月前,之所以斷更有兩個(gè)原因:換工作業(yè)余時(shí)間ALL IN AI了。不管你是否承認(rèn),AI時(shí)代已經(jīng)來(lái)了,依然埋頭研究前端的那一畝三分地源碼在未來(lái)可能就是蒸汽時(shí)代被淘汰的紡織女工。

今年大家多多少少都有接觸到AI相關(guān)的項(xiàng)目了,從前端的角度來(lái)看以前是調(diào)用后端的接口,現(xiàn)在改成了調(diào)用大模型提供的接口,本質(zhì)依然沒(méi)變。

但是按照大家的程度來(lái)看,在未來(lái)的不久不管你是前端還是后端,大模型底層原理將會(huì)是和源碼一樣成為面試中的熱門(mén)話題。所以歐陽(yáng)打算寫(xiě)一個(gè)關(guān)于大模型底層原理系列的文章,包括熱門(mén)的Transformer、自注意力機(jī)制、深度思考等內(nèi)容(先挖一個(gè)大坑)。

什么是生成式大模型

大家平時(shí)接觸的AI基本都是生成式大模型,比如我們熟知的ChatGPT、DeepSeek等。在ChatGPT還沒(méi)火之前,判別式模型是最熱門(mén)的,也就是國(guó)內(nèi)的科技公司花了大精力去研究的領(lǐng)域,從現(xiàn)在的上帝視角來(lái)看只有OpenAI走了正確的路。

判別式模型的作用主要是分類(lèi),在我們的生活中到處都是判別式模型的影子,比如:

  • 垃圾郵件分類(lèi)器: 判斷一封郵件是"垃圾郵件"還是"正常郵件"。
  • 情感分析: 分析一個(gè)商品評(píng)價(jià)是"積極"、"消極"還是"中性"。
  • 人臉識(shí)別: 判斷一張臉屬于數(shù)據(jù)庫(kù)中的哪個(gè)人。
  • 圖像識(shí)別: 識(shí)別一張圖片中的物體是什么。

判別式模型做的事情只能是一個(gè)輔助工具,不能執(zhí)行一些創(chuàng)造性的任務(wù),比如寫(xiě)文章、寫(xiě)代碼等。

但是生成式大模型就能突破判別式模型的天花板,不僅可以做判別式模型能夠做到的所有事情,還能執(zhí)行一些大家熟知的創(chuàng)造性的任務(wù),比如寫(xiě)文章、寫(xiě)代碼等。

生成式大模型的主要特點(diǎn)就是,這里的指的是模型的規(guī)模。主要體現(xiàn)在兩個(gè)方面:參數(shù)數(shù)量訓(xùn)練數(shù)據(jù)量。

現(xiàn)在的那些大模型基本都是以B為單位,比如DeepSeek R1最小的是2B,最大的是685B。這里的B是指Billion,也就是10億。2B的意思是20億個(gè)參數(shù),685B的意思是6850億個(gè)參數(shù)。

DeepSeekDeepSeek

為什么這些大模型的參數(shù)數(shù)量會(huì)這么大呢?

答案是ChatGPT發(fā)現(xiàn)當(dāng)模型的參數(shù)數(shù)量達(dá)到一個(gè)臨界點(diǎn)后,模型突然就開(kāi)悟了一樣,能夠理解人類(lèi)語(yǔ)言的含義,并且能夠生成符合人類(lèi)語(yǔ)言習(xí)慣的回答,這就是大家常說(shuō)的模型的涌現(xiàn)能力。量變引起質(zhì)變,大力出奇跡(手動(dòng)狗頭)。

在接下來(lái)的文章中我們講的大模型都是指生成式大模型,因?yàn)?/span>判別式模型生成式大模型比起來(lái)完全就是弟弟,人們的注意力現(xiàn)在基本都放在了生成式大模型上。

文字接龍

大模型所做的事情本質(zhì)就是文字接龍,所以在講如何訓(xùn)練出一個(gè)ChatGPT之前我們來(lái)聊聊文字接龍。

jielongjielong

人類(lèi)在做文字接龍的時(shí)候會(huì)結(jié)合自己掌握的知識(shí)去思考下一個(gè)字應(yīng)該接什么。

比如,輸入是人工智時(shí),大部分人都會(huì)接成,組合成人工智能這個(gè)詞,他的概率是80%(我瞎說(shuō)的)。當(dāng)然有人會(huì)覺(jué)得下一個(gè)字應(yīng)該是,組合成人工智障這個(gè)詞,他的概率是10%。還有一些情況下會(huì)接,組合成人工智能一,這種就是非常少見(jiàn)的情況,所以他的概率是0.01。

如果我們將文字接龍抽象化成一個(gè)函數(shù),那么這個(gè)函數(shù)就是:

function textJieLong(input) {
let arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10,...
  if (路人A) {
    return'能'
  } elseif (路人B) {
    return'障'
  } elseif (路人C) {
    return'一'
  } else {
    return'...'
  }
}

// 輸出:能   概率:80%
// 輸出:障   概率:10%
// 輸出:一   概率:0.01%
// 輸出:..   概率:...
textJieLong('人工智')

這個(gè)textJieLong函數(shù)就可以被看作是一個(gè)大模型,函數(shù)的輸出結(jié)果就是大模型的輸出結(jié)果。

函數(shù)中的一系列arg1、arg2等參數(shù)就是大模型的參數(shù),我們常說(shuō)的8B就是說(shuō)明有80億個(gè)參數(shù),也就是有80億個(gè)arg參數(shù)。

那么模型訓(xùn)練的作用是干嘛呢?

模型訓(xùn)練就是我們給textJieLong函數(shù)一堆輸入和輸出的數(shù)據(jù),然后根據(jù)這些輸入和輸出的數(shù)據(jù)去反推arg1arg2等參數(shù)。

輸入:人工智
輸出:能

輸入:中國(guó)的首都是
輸出:北京

輸入:今天天氣適合在家
輸出:打游戲

很多組輸入和輸出...

有沒(méi)有覺(jué)得這個(gè)和小學(xué)的方程式很像,一堆輸入,一堆輸出,然后求解方程式里面的未知數(shù),這些未知數(shù)就是模型的參數(shù)。

其實(shí)訓(xùn)練模型的過(guò)程就是計(jì)算求解這些參數(shù)的過(guò)程??! 每一次的訓(xùn)練都會(huì)去不斷的更新這些參數(shù),直到模型吐出的結(jié)果滿足我們的預(yù)期。

訓(xùn)練模型會(huì)經(jīng)歷哪些階段

訓(xùn)練一個(gè)模型會(huì)經(jīng)歷三個(gè)階段,對(duì)應(yīng)下面的這張圖的三個(gè)階段:

threethree

第一張圖為:自我學(xué)習(xí),累計(jì)實(shí)力(預(yù)訓(xùn)練 Pre-training

第二張圖為:名師指點(diǎn),發(fā)揮潛力(監(jiān)督微調(diào) SFT

第三張圖為:參與實(shí)戰(zhàn),打磨技巧(強(qiáng)化學(xué)習(xí) RLHF

這三個(gè)階段都是大模型在學(xué)習(xí)如何進(jìn)行文字接龍,只是訓(xùn)練的資料不同。

第一階段:自我學(xué)習(xí),累計(jì)實(shí)力(預(yù)訓(xùn)練 Pre-training)

在講預(yù)訓(xùn)練之前,我們先來(lái)聊聊在進(jìn)行預(yù)訓(xùn)練之前的模型是什么樣的?

一個(gè)大模型的結(jié)構(gòu)大概是下面這樣的:

structurestructure

主要就是很多個(gè)transformer堆疊在一起,并且像ChatGPT這種生成式大模型他是僅解碼器模型,沒(méi)有編碼器模塊(這段話看不懂就算了,后面單獨(dú)有文章講transformer)。

用戶的輸入,也就是transformer模塊的輸入,然后每個(gè)transformer模塊會(huì)輸出一個(gè)結(jié)果,然后將上一個(gè)transformer模塊的輸出作為下一個(gè)transformer模塊的輸入,最后輸出一個(gè)結(jié)果,這個(gè)結(jié)果就是大模型的輸出結(jié)果。

任何文字資料都可以作為這一階段上面的訓(xùn)練資料,所以這一階段會(huì)大量爬取網(wǎng)絡(luò)上面的文本用于模型的訓(xùn)練。

所以在這一階段會(huì)進(jìn)行大量的數(shù)據(jù)進(jìn)行訓(xùn)練(99%的訓(xùn)練數(shù)據(jù)都是在這一階段完成的),當(dāng)訓(xùn)練數(shù)據(jù)的量達(dá)到某個(gè)臨界點(diǎn)后,模型就能夠理解人類(lèi)語(yǔ)言的含義(至于為什么模型能夠理解人類(lèi)語(yǔ)言的含義,目前沒(méi)有人能夠說(shuō)清楚)。

這一階段的訓(xùn)練肯定能夠訓(xùn)練出一個(gè)大模型嗎?

答案是:不一定。除了訓(xùn)練模型找出來(lái)的參數(shù)之外還有一些人工設(shè)置的參數(shù),這些參數(shù)我們稱之為超參數(shù)。這些超參數(shù)都是通過(guò)人工設(shè)置的,在模型訓(xùn)練過(guò)程中也不會(huì)改變,比如:

  • 模型的層數(shù)
  • 模型的維度
  • 模型的頭數(shù)

當(dāng)在訓(xùn)練模型時(shí)失敗了(沒(méi)有找到參數(shù)符合訓(xùn)練資料),就需要手動(dòng)調(diào)整超參數(shù)。

在進(jìn)行預(yù)訓(xùn)練之前,模型的輸出是隨機(jī)的。比如你輸入:中國(guó)的首都是,模型會(huì)輸出:你好吖。明顯輸入和輸出是沒(méi)有任何關(guān)聯(lián)的。

經(jīng)過(guò)預(yù)訓(xùn)練后的模型是基礎(chǔ)模型,這種模型的名字包含一個(gè)Base字段。

basebase

經(jīng)過(guò)預(yù)訓(xùn)練后,模型突然像開(kāi)竅了一樣能夠理解人類(lèi)語(yǔ)言的含義。這個(gè)時(shí)候的模型只會(huì)成語(yǔ)接龍,沒(méi)有接受人類(lèi)的調(diào)教,所以他不能回答你的問(wèn)題,他只會(huì)拋出更多的問(wèn)題給你。如圖:

我在colab上面跑的一個(gè)千問(wèn)3的4B Base模型,輸入是:中國(guó)的首都是什么?

base-askbase-ask

從圖中可以看到此時(shí)模型的輸出奇奇怪怪的,他沒(méi)有回答我的問(wèn)題,反而拋出更多的問(wèn)題。

我又跑了一個(gè)千問(wèn)3的4B模型,同樣輸入是:中國(guó)的首都是什么?

qaqa

從圖中可以看到同樣都是4B的千問(wèn)3模型,經(jīng)過(guò)微調(diào)后不僅擁有了思考能力(think標(biāo)簽就是模型思考的過(guò)程),并且還能回答我們的問(wèn)題了。

第二階段:名師指點(diǎn),發(fā)揮潛力(監(jiān)督微調(diào) SFT)

經(jīng)過(guò)上個(gè)階段預(yù)訓(xùn)練pre-training海量的數(shù)據(jù)訓(xùn)練后,模型突然就涌現(xiàn)了“智慧”,能夠理解人類(lèi)語(yǔ)言的含義,但是模型只會(huì)成語(yǔ)接龍,不會(huì)回答你的問(wèn)題。

所以在這個(gè)階段我們需要訓(xùn)練模型,讓他能夠?qū)W會(huì)如何回答你的問(wèn)題。

在這個(gè)階段,我們只需要收集少量但高質(zhì)量的數(shù)據(jù)集。這里的少量是和第一階段海量的數(shù)據(jù)集相比是少量,其實(shí)也會(huì)覆蓋各種任務(wù)的數(shù)據(jù)集。

在這一階段的目標(biāo)是把模型打造成一個(gè)通才,讓他能夠回答各種問(wèn)題。

模型微調(diào)的數(shù)據(jù)集主要有兩種格式:AlpacaShareGPT

其中Alpaca數(shù)據(jù)集是下面這樣的:

[
  {
    "instruction": "人類(lèi)指令(必填)",
    "input": "人類(lèi)輸入(選填)",
    "output": "模型回答(必填)",
    "system": "系統(tǒng)提示詞(選填)",
    "history": [
      ["第一輪指令(選填)", "第一輪回答(選填)"],
      ["第二輪指令(選填)", "第二輪回答(選填)"]
    ]
  }
]

ShareGPT數(shù)據(jù)集是下面這樣的:

{
  "conversations": [
    {
      "from": "human",
      "value": "你好,我出生于1990年5月15日。你能告訴我我今天幾歲了嗎?"
    },
    {
      "from": "function_call",
      "value": "{\"name\": \"calculate_age\", \"arguments\": {\"birthdate\": \"1990-05-15\"}}"
    },
    {
      "from": "observation",
      "value": "{\"age\": 31}"
    },
    {
      "from": "gpt",
      "value": "根據(jù)我的計(jì)算,你今天31歲了。"
    }
  ],
"tools": "[{\"name\": \"calculate_age\", \"description\": \"根據(jù)出生日期計(jì)算年齡\", \"parameters\": {\"type\": \"object\", \"properties\": {\"birthdate\": {\"type\": \"string\", \"description\": \"出生日期以YYYY-MM-DD格式表示\"}}, \"required\": [\"birthdate\"]}}]"
}

從上面可以看到不管是Alpaca還是ShareGPT本質(zhì)都是通過(guò)問(wèn)答的形式來(lái)訓(xùn)練模型,在數(shù)據(jù)集中拋出問(wèn)題,并且給出問(wèn)題的答案,告訴模型遇見(jiàn)這樣的問(wèn)題就應(yīng)該這樣去回答。

當(dāng)訓(xùn)練的數(shù)據(jù)量達(dá)到某個(gè)臨界點(diǎn)時(shí),模型突然就開(kāi)竅了,不光能夠回答我們預(yù)設(shè)的問(wèn)題,并且類(lèi)似的問(wèn)題也能夠回答,有點(diǎn)像舉一反三的感覺(jué)。

前面我們講過(guò)這一階段想要將模型訓(xùn)練成一個(gè)通才,那么就需要人工標(biāo)注的高質(zhì)量一問(wèn)一答的數(shù)據(jù)集。

雖然我們前面說(shuō)過(guò)這一階段所需的數(shù)據(jù)集比較“少”,但是這里的“少”是和第一階段預(yù)訓(xùn)練相比起來(lái)比較少。畢竟第一階段訓(xùn)練的數(shù)據(jù)集基本是網(wǎng)絡(luò)上面能夠爬取到的所有資料,比起來(lái)當(dāng)然就少了。

并且在這一階段的數(shù)據(jù)還需要是人工標(biāo)注的高質(zhì)量數(shù)據(jù)集,涉及到人工的東西成本都不低。

OpenAI的做法是將其丟給外包公司來(lái)人工標(biāo)注,這個(gè)方法需要鈔能力的。沒(méi)有錢(qián)怎么辦呢?

答案是:可以對(duì)ChatGPT做逆向工程,由ChatGPT來(lái)幫我們生成微調(diào)數(shù)據(jù)集的問(wèn)題和答案。

人為的先給一些「訓(xùn)練數(shù)據(jù)樣例」讓 ChatGPT 看,

緊接著利用 ChatGPT 的續(xù)寫(xiě)功能,讓其不斷地舉一反三出新的訓(xùn)練數(shù)據(jù)集:

你被要求提供10個(gè)多樣化的任務(wù)指令。這些任務(wù)指令將被提供給GPT模型,我們將評(píng)估GPT模型完成指令的能力。
以下是你提供指令需要滿足的要求:
1.盡量不要在每個(gè)指令中重復(fù)動(dòng)詞,要最大化指令的多樣性。
2.使用指令的語(yǔ)氣也應(yīng)該多樣化。例如,將問(wèn)題與祈使句結(jié)合起來(lái)。
3.指令類(lèi)型應(yīng)該是多樣化的,包括各種類(lèi)型的任務(wù),類(lèi)別種類(lèi)例如:brainstorming,open QA,closed QA,rewrite,extract,generation,classification,chat,summarization。
4.GPT語(yǔ)言模型應(yīng)該能夠完成這些指令。例如,不要要求助手創(chuàng)建任何視覺(jué)或音頻輸出。例如,不要要求助手在下午5點(diǎn)叫醒你或設(shè)置提醒,因?yàn)樗鼰o(wú)法執(zhí)行任何操作。例如,指令不應(yīng)該和音頻、視頻、圖片、鏈接相關(guān),因?yàn)镚PT模型無(wú)法執(zhí)行這個(gè)操作。
5.指令用中文書(shū)寫(xiě),指令應(yīng)該是1到2個(gè)句子,允許使用祈使句或問(wèn)句。
6.你應(yīng)該給指令生成適當(dāng)?shù)妮斎?,輸入字段?yīng)包含為指令提供的具體示例,它應(yīng)該涉及現(xiàn)實(shí)數(shù)據(jù),不應(yīng)包含簡(jiǎn)單的占位符。輸入應(yīng)提供充實(shí)的內(nèi)容,使指令具有挑戰(zhàn)性。
7.并非所有指令都需要輸入。例如,當(dāng)指令詢問(wèn)一些常識(shí)信息,比如“世界上最高的山峰是什么”,不需要提供具體的上下文。在這種情況下,我們只需在輸入字段中放置“<無(wú)輸入>”。當(dāng)輸入需要提供一些文本素材(例如文章,文章鏈接)時(shí),就在輸入部分直接提供一些樣例。當(dāng)輸入需要提供音頻、圖片、視頻或者鏈接時(shí),則不是滿足要求的指令。
8.輸出應(yīng)該是針對(duì)指令和輸入的恰當(dāng)回答。
下面是10個(gè)任務(wù)指令的列表:
###
1. 指令: 在面試中如何回答這個(gè)問(wèn)題?
1. 輸入:當(dāng)你在車(chē)?yán)铼?dú)處時(shí),你會(huì)想些什么?
1. 輸出:如果是在晚上,我通常會(huì)考慮我今天所取得的進(jìn)步,如果是在早上,我會(huì)思考如何做到最好。我也會(huì)嘗試練習(xí)感恩和活在當(dāng)下的狀態(tài),以避免分心駕駛。
###
2. 指令: 按人口對(duì)這些國(guó)家進(jìn)行排名。
2. 輸入:巴西,中國(guó),美國(guó),日本,加拿大,澳大利亞
2. 輸出:中國(guó),美國(guó),巴西,日本,加拿大,澳大利亞
###
3. 指令:

下面是ChatGPT的回答:

chat-gptchat-gpt

從圖中可以看到ChatGPT已經(jīng)幫我們生成了一系列的問(wèn)題和答案。

并且可以結(jié)合字節(jié)seed團(tuán)隊(duì)發(fā)布的《Reformulation for Pretraining Data Augmentation》論文生成更多的數(shù)據(jù)集,論文地址:https://arxiv.org/abs/2502.04235v2

這篇論文的觀點(diǎn)是,我們可以通過(guò)同一個(gè)問(wèn)題,不同類(lèi)型的受眾就可以有不同的答案。

比如一個(gè)問(wèn)題:什么是大模型,根據(jù)不同類(lèi)型的受眾就應(yīng)該是不同的答案。

這個(gè)問(wèn)題可以映射為:“學(xué)術(shù)論文-科研人員”、“對(duì)話體-老年人”、“教科書(shū)-中學(xué)生”這三種類(lèi)型,每種類(lèi)型都有不同的答案。這樣就可以讓我們的數(shù)據(jù)集的規(guī)模輕松增加3倍。

除此之外還有一些公開(kāi)的數(shù)據(jù)集:

  • HuggingFace(??):大模型時(shí)代的GitHub,上面除了開(kāi)源模型之外還有很多開(kāi)源數(shù)據(jù)集地址:https://huggingface.co/datasets
  • Kaggle(??):Kaggle 是一個(gè)數(shù)據(jù)科學(xué)平臺(tái),不僅提供大量的公開(kāi)數(shù)據(jù)集,還舉辦各種數(shù)據(jù)科學(xué)競(jìng)賽。其數(shù)據(jù)集涵蓋了計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理、數(shù)據(jù)可視化等多個(gè)領(lǐng)域。地址:https://www.kaggle.com/datasets
  • Google DataSet Search(??):一個(gè)專門(mén)用于搜索數(shù)據(jù)集的搜索引擎,能夠幫助用戶找到互聯(lián)網(wǎng)上公開(kāi)的數(shù)據(jù)集。地址:https://datasetsearch.research.google.com
  • awesome-public-datasets:GitHub 上的 awesome-public-datasets 是一個(gè)開(kāi)源項(xiàng)目,匯集了各種主題的高質(zhì)量公共數(shù)據(jù)集(不過(guò)已經(jīng)有段時(shí)間沒(méi)更新了)。這些數(shù)據(jù)集按照主題分類(lèi),如農(nóng)業(yè)、生物、氣候、計(jì)算機(jī)網(wǎng)絡(luò)、教育、金融等。地址:https://github.com/awesomedata/awesome-public-datasets
  • openDataLab:一個(gè)專注于中文數(shù)據(jù)集的平臺(tái),也是中國(guó)本土最大的開(kāi)源數(shù)據(jù)集平臺(tái),提供了豐富的中文數(shù)據(jù)集資源。地址:https://opendatalab.com
  • ModelScope:ModelScope 是阿里巴巴推出的 AI 模型與數(shù)據(jù)集中心,除了提供預(yù)訓(xùn)練模型外,還包含與模型相關(guān)的數(shù)據(jù)集。其實(shí)有點(diǎn)類(lèi)似于中國(guó)版的 HuggingFace。地址:https://modelscope.cn/datasets

第二階段監(jiān)督微調(diào) SFT其實(shí)就是畫(huà)龍點(diǎn)睛。

第三階段:參與實(shí)戰(zhàn),打磨技巧(強(qiáng)化學(xué)習(xí) RLHF)

經(jīng)過(guò)第二階段監(jiān)督微調(diào) SFT后,模型已經(jīng)能夠回答各種問(wèn)題了,可以當(dāng)做一個(gè)問(wèn)答助手使用了。

但是還可以進(jìn)一步提升其回答質(zhì)量,這是通過(guò)強(qiáng)化學(xué)習(xí)(RLHF)來(lái)實(shí)現(xiàn)的。這個(gè)過(guò)程分為兩個(gè)步驟。

  • 獎(jiǎng)勵(lì)模型(Reward Model 簡(jiǎn)稱 RM)
  • 強(qiáng)化學(xué)習(xí)(Reinforcement Learning 簡(jiǎn)稱 RL)

為什么需要RLHF?

回想第二階段有監(jiān)督微調(diào)SFT,我們只告訴模型什么是好的數(shù)據(jù),但是沒(méi)有告訴他什么是不好的數(shù)據(jù)。

我們通過(guò)有監(jiān)督微調(diào)SFT引導(dǎo)模型將在第一階段預(yù)訓(xùn)練pre-training學(xué)習(xí)到的海量知識(shí)在合適的問(wèn)題下面輸出出來(lái)。但是因?yàn)榈诙A段的數(shù)據(jù)集是人工標(biāo)注而來(lái)的,數(shù)據(jù)很有限,導(dǎo)致我們對(duì)模型的引導(dǎo)能力也有限。

這將導(dǎo)致預(yù)訓(xùn)練模型中原先「錯(cuò)誤」或「有害」的知識(shí)沒(méi)能在 SFT 數(shù)據(jù)中被糾正,

從而出現(xiàn)「有害性」或「幻覺(jué)」的問(wèn)題。

所以才需要第三階段強(qiáng)化學(xué)習(xí)RLHF來(lái)解決這些問(wèn)題,告訴模型什么是好的數(shù)據(jù),什么是不好的數(shù)據(jù)。

我們先來(lái)看看什么是獎(jiǎng)勵(lì)模型RM?

獎(jiǎng)勵(lì)模型RM是一個(gè)單獨(dú)訓(xùn)練的一個(gè)模型,這個(gè)模型用于給第二階段SFT訓(xùn)練出來(lái)的模型的輸出打分。

注意,這里的打分不是真的打分,本質(zhì)上排列一個(gè)好壞的先后順序。

就像是給作文打分一樣,不同的人打的分都不相同。

但是如果改成根據(jù)內(nèi)容的好壞進(jìn)行排序就很容易了,比如作文1、作文2、作文3,不同的人排序大概率都相同。

獎(jiǎng)勵(lì)模型RM本質(zhì)依然還是給不同的輸出進(jìn)行好壞的排序,然后根據(jù)這些排序利用【分差變化】計(jì)算出每一個(gè)輸出的得分。

根據(jù)第二階段SFT訓(xùn)練出來(lái)的模型根據(jù)不同的temperature值生成多個(gè)輸出,然后使用獎(jiǎng)勵(lì)模型RM對(duì)這些輸出進(jìn)行打分。

接著就是強(qiáng)化學(xué)習(xí)RL,其實(shí)就是利用每個(gè)輸出的打分反過(guò)來(lái)影響模型的參數(shù)。通過(guò)調(diào)整參數(shù)讓打分較高的輸出出現(xiàn)的概率更大,打分更低的輸出出現(xiàn)的概率更小。

為什么需要獎(jiǎng)勵(lì)模型RM?

并不是所有人在使用ChatGPT時(shí)會(huì)對(duì)輸出進(jìn)行“好”或者“壞”的評(píng)價(jià),所以需要一個(gè)獎(jiǎng)勵(lì)模型RM來(lái)模擬人類(lèi)的反饋,人類(lèi)覺(jué)得不錯(cuò)的輸出獎(jiǎng)勵(lì)模型就會(huì)給出高的得分,反之則給出低的得分。

總結(jié)

這篇文章我們講了訓(xùn)練出一個(gè)ChatGPT需要經(jīng)歷三個(gè)階段:

  • 第一階段:自我學(xué)習(xí),累計(jì)實(shí)力(預(yù)訓(xùn)練 Pre-training)
  • 第二階段:名師指點(diǎn),發(fā)揮潛力(監(jiān)督微調(diào) SFT)
  • 第三階段:參與實(shí)戰(zhàn),打磨技巧(強(qiáng)化學(xué)習(xí) RLHF)

在第一階段預(yù)訓(xùn)練Pre-training階段,大模型通過(guò)網(wǎng)絡(luò)上面大量的數(shù)據(jù)資料進(jìn)行自我學(xué)習(xí)(那些參數(shù)很大的模型基本都將網(wǎng)絡(luò)上面的資料全部學(xué)完了),最終在某個(gè)臨界點(diǎn)時(shí)突然就開(kāi)竅了理解了人類(lèi)語(yǔ)言的含義。但是此時(shí)模型只會(huì)文字接龍,不會(huì)回答你的問(wèn)題。

這一步我理解為量變引起質(zhì)變,大力出奇跡。

在第二階段需要一個(gè)老師來(lái)指導(dǎo)大模型應(yīng)該如何利用第一階段學(xué)習(xí)的知識(shí)回答問(wèn)題,所以需要一些人工標(biāo)注的高質(zhì)量數(shù)據(jù)集來(lái)對(duì)大模型進(jìn)行監(jiān)督微調(diào)SFT,通過(guò)這些高質(zhì)量數(shù)據(jù)集模型學(xué)會(huì)了如何回答問(wèn)題。

這一步我理解為畫(huà)龍點(diǎn)睛。

在前面的階段我們只告訴模型什么是好的數(shù)據(jù),但是沒(méi)有告訴他什么是壞的數(shù)據(jù)。所以在第三階段我們需要去訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型RM來(lái)對(duì)模型的輸出進(jìn)行打分,通過(guò)打分來(lái)影響模型的輸出,讓得分高的輸出出現(xiàn)的概率更大,得分低的輸出出現(xiàn)的概率更小。

責(zé)任編輯:武曉燕 來(lái)源: 前端歐陽(yáng)
相關(guān)推薦

2025-03-13 06:22:59

2021-06-18 07:34:12

Kafka中間件微服務(wù)

2022-06-10 14:52:46

開(kāi)源項(xiàng)目字節(jié)跳動(dòng)

2024-01-16 07:46:14

FutureTask接口用法

2023-07-12 14:45:38

2018-11-08 13:53:15

Flink程序環(huán)境

2020-09-14 11:30:26

HTTP3運(yùn)維互聯(lián)網(wǎng)

2017-03-30 19:28:26

HBase分布式數(shù)據(jù)

2018-05-14 10:56:25

APPiOS開(kāi)發(fā)代碼

2024-01-12 07:38:38

AQS原理JUC

2024-07-05 09:31:37

2012-06-28 10:26:51

Silverlight

2020-11-23 16:23:59

CSS設(shè)計(jì)技術(shù)

2020-10-30 15:04:16

開(kāi)發(fā)技能代碼

2012-05-21 09:31:56

HTML5

2024-12-11 07:00:00

面向?qū)ο?/a>代碼

2022-08-09 10:00:57

ViteTypeScripVue3

2019-06-14 09:34:59

Linux 系統(tǒng) 數(shù)據(jù)

2020-03-03 15:40:51

開(kāi)發(fā)技能代碼

2022-06-17 08:05:28

Grafana監(jiān)控儀表盤(pán)系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)