99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

視覺(jué)模型weak-to-strong的實(shí)現(xiàn)

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:深度學(xué)習(xí)自然語(yǔ)言處理 ? 2024-01-08 11:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

深度學(xué)習(xí)自然語(yǔ)言處理 原創(chuàng)
作者:pp

幾天前,OpenAI「超級(jí)對(duì)齊」(Superalignment)團(tuán)隊(duì)發(fā)布了成立以來(lái)的首篇論文,聲稱開(kāi)辟了對(duì)超人類模型進(jìn)行實(shí)證對(duì)齊的新研究方向。GPT-2能監(jiān)督GPT-4,Ilya帶頭OpenAI超級(jí)對(duì)齊首篇論文來(lái)了:AI對(duì)齊AI取得實(shí)證結(jié)果

可能是為了讓大家更容易實(shí)現(xiàn)論文中的思路,也可能是為了讓自己的研究更加接地氣,不再被調(diào)侃為“CloseAI”。在公布這篇論文的同時(shí),OpenAI也在GitHub開(kāi)源了論文提出的"weak-to-strong"框架的代碼[1]

在觀察了倉(cāng)庫(kù)中的代碼之后我們有了如下發(fā)現(xiàn):

既有NLP版本也有CV版本

主代碼倉(cāng)庫(kù)是一個(gè)對(duì)二元分類(binary classification)任務(wù)的“weak-to-strong”方法的實(shí)現(xiàn)。包含用于微調(diào)預(yù)訓(xùn)練語(yǔ)言模型的代碼(訓(xùn)練弱模型,生成若標(biāo)簽),以及針對(duì)來(lái)自另一種語(yǔ)言模型的標(biāo)簽進(jìn)行訓(xùn)練的代碼(使用弱標(biāo)簽,訓(xùn)練強(qiáng)學(xué)生)。

Vision目錄中則包含視覺(jué)模型"weak-to-strong"的實(shí)現(xiàn)(AlexNet -> DINO)。

a3897d4e-9e46-11ee-8b88-92fbcf53809c.png

支持論文中描述的各種損失函數(shù),如置信度輔助損失函數(shù),也可以自己定義損失函數(shù),見(jiàn)weak_to_strong/loss.py。

#Customlossfunction
classxent_loss(LossFnBase):
def__call__(
self,logits:torch.Tensor,labels:torch.Tensor,step_frac:float
)->torch.Tensor:
"""
Thisfunctioncalculatesthecrossentropylossbetweenlogitsandlabels.

Parameters:
logits:Thepredictedvalues.
labels:Theactualvalues.
step_frac:Thefractionoftotaltrainingstepscompleted.

Returns:
Themeanofthecrossentropyloss.
"""
loss=torch.nn.functional.cross_entropy(logits,labels)
returnloss.mean()


classproduct_loss_fn(LossFnBase):
...
returnloss.mean()


classlogconf_loss_fn(LossFnBase):
...
returnloss.mean()

Qwen(千問(wèn))模型出現(xiàn)在代碼中

在主文件train_weak_to_strong.py中,OpenAI以自己的GPT2模型,和國(guó)產(chǎn)的Qwen(千問(wèn))模型為例

ModelConfig(
name="gpt2",
default_lr=5e-5,
eval_batch_size=32,
custom_kwargs={
"bf16":torch.cuda.is_bf16_supported(),
"fp32":nottorch.cuda.is_bf16_supported(),
},
),
ModelConfig(
name="gpt2-medium",
default_lr=5e-5,
eval_batch_size=32,
custom_kwargs={
"bf16":torch.cuda.is_bf16_supported(),
"fp32":nottorch.cuda.is_bf16_supported(),
},
),
...
ModelConfig(
name="Qwen/Qwen-7B",
default_lr=1e-5,
eval_batch_size=2,
gradient_checkpointing=True,
model_parallel=True,
#note:youwillprobablynotbeabletorunthiswithoutmanygpus
custom_kwargs={
"trust_remote_code":True,
"bf16":torch.cuda.is_bf16_supported(),
"fp32":nottorch.cuda.is_bf16_supported(),
},
),
ModelConfig(
name="Qwen/Qwen-14B",
default_lr=1e-5,
eval_batch_size=2,
gradient_checkpointing=True,
model_parallel=True,
#note:youwillprobablynotbeabletorunthiswithoutbf16supportandmanygpus
custom_kwargs={
"trust_remote_code":True,
"bf16":torch.cuda.is_bf16_supported(),
"fp32":nottorch.cuda.is_bf16_supported(),
},
),
...

兩階段訓(xùn)練

Weak-to-strong關(guān)注的重點(diǎn)是:一個(gè)弱監(jiān)督者如何監(jiān)督一個(gè)比它聰明得多的模型?為此,OpenAI提出了一個(gè)兩階段的訓(xùn)練方法:

對(duì)于一個(gè)給定的任務(wù):

構(gòu)建弱監(jiān)督者。通過(guò)在一半訓(xùn)練數(shù)據(jù)上微調(diào)較小的預(yù)訓(xùn)練模型來(lái)構(gòu)造弱監(jiān)督者,他們把弱監(jiān)督者的表現(xiàn)稱為弱表現(xiàn),并通過(guò)弱模型的預(yù)測(cè)來(lái)生成弱標(biāo)簽。(Stage 1)

#Traintheweakmodelonthefirsthalfofthetrainingdata
print(f"Trainingweakmodel,size{weak_model_size}")
weak_test_results,weak_ds=train_model(
weak_model_config,
train1_ds,
test_ds,
loss_type="xent",
label="weak",
subpath=os.path.join("weak_model_gt",weak_model_size.replace("/","_")),
lr=weak_lr,
eval_batch_size=weak_eval_batch_size,
inference_ds=train2_ds,
epochs=gt_epochs,
linear_probe=linear_probe,
optimizer_name=weak_optim,
)

訓(xùn)練一個(gè)用于比較的性能上限的強(qiáng)模型。在另一半訓(xùn)練數(shù)據(jù)上以Ground Truth作為標(biāo)簽訓(xùn)練一個(gè)較大的模型作為比較的上限。(Upper bound)

#Trainthestrongmodelonthesecondhalfofthetrainingdata
print(f"Trainingstrongmodel,size{strong_model_size}")
strong_test_results,_=train_model(
strong_model_config,
train2_ds,
test_ds,
loss_type="xent",
label="strong",
subpath=os.path.join("strong_model_gt",strong_model_size.replace("/","_")),
lr=strong_lr,
eval_batch_size=strong_eval_batch_size,
epochs=gt_epochs,
linear_probe=linear_probe,
optimizer_name=strong_optim,
)

通過(guò)第一步中的弱監(jiān)督訓(xùn)練強(qiáng)學(xué)生模型。本文使用生成的弱標(biāo)簽微調(diào)強(qiáng)模型,并將該模型稱為強(qiáng)學(xué)生模型,將其產(chǎn)生的性能稱為從弱到強(qiáng)(weak-to-strong)的性能。(Stage 2)

#Trainthestrongmodelonthesecondhalfofthetrainingdatawithlabelsgeneratedbytheweakmodel
all_transfer_test_results={}
fortlossintransfer_losses:
print(
f"Trainingtransfermodel,size{strong_model_size}onlabelsfrom{weak_model_size},withloss{tloss}"
)
transfer_test_results,_=train_model(
strong_model_config,
weak_ds,
test_ds,
loss_type=tloss,
label="weak2strong",
subpath=os.path.join(
"strong_model_transfer",
f"{weak_model_size.replace('/','_')}_{strong_model_size.replace('/','_')}_{tloss}",
),
lr=transfer_lr,
eval_batch_size=strong_eval_batch_size,
epochs=transfer_epochs,
linear_probe=linear_probe,
optimizer_name=transfer_optim,
)
all_transfer_test_results[tloss]=transfer_test_results
deltransfer_test_results

復(fù)刻版本,并非源碼

OpenAI在倉(cāng)庫(kù)中提到,目前開(kāi)源的代碼并非與論文實(shí)驗(yàn)部分完全一致,不過(guò)是結(jié)果相近的。

"STATUS: This codebase is not well tested and does not use the exact same settings we used in the paper, but in our experience gives qualitatively similar results when using large model size gaps and multiple seeds. Expected results can be found for two datasets below. We may update the code significantly in the coming week."

這次開(kāi)源的weak-to-strong實(shí)現(xiàn)代碼較為簡(jiǎn)單,感興趣的朋友可以去嘗試一下,結(jié)合論文也許會(huì)有不一樣的感受。OpenAI正在大力研究超級(jí)對(duì)齊(Superalignment),不僅僅放出論文,開(kāi)源代碼,同時(shí)也宣布了一項(xiàng)高達(dá)1000萬(wàn)美金的資助計(jì)劃,我們將在之后的文章中為您帶來(lái)詳細(xì)解讀,敬請(qǐng)期待!

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3689

    瀏覽量

    43832
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3521

    瀏覽量

    50427
  • OpenAI
    +關(guān)注

    關(guān)注

    9

    文章

    1210

    瀏覽量

    8922

原文標(biāo)題:OpenAI開(kāi)源"weak-to-strong"方法代碼框架!我們帶你一探究竟

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何利用Transformers了解視覺(jué)語(yǔ)言模型

    模型稱為 “視覺(jué)語(yǔ)言” 模型是什么意思?一個(gè)結(jié)合了視覺(jué)和語(yǔ)言模態(tài)的模型?但這到底是什么意思呢?
    發(fā)表于 03-03 09:49 ?1322次閱讀
    如何利用Transformers了解<b class='flag-5'>視覺(jué)</b>語(yǔ)言<b class='flag-5'>模型</b>

    __attribute__((weak)) __weak_symbol在idf4.4庫(kù)中無(wú)效的原因?

    請(qǐng)教下,在編譯時(shí),遇到幾個(gè)問(wèn)題: 1.同一個(gè)工程中,在不同的C文件寫相同的函數(shù),編譯時(shí)不報(bào)錯(cuò),函數(shù)生效隨機(jī); 2.使用__attribute__((weak)) __weak_symbol無(wú)效。 請(qǐng)教下,__attribute__((w
    發(fā)表于 06-17 08:31

    在Fast-Strong情況下是否會(huì)出現(xiàn)過(guò)多的過(guò)沖

    ODT和CKE驅(qū)動(dòng)程序的正確配置時(shí)遇到問(wèn)題:SSTL18_II,有或沒(méi)有outerm = 25,50和SSTL18_I。他們都不滿意。根據(jù)配置的不同,在Fast-Strong情況下是否會(huì)出現(xiàn)過(guò)多的過(guò)沖
    發(fā)表于 06-11 14:54

    keil中__weak的功能和應(yīng)用是什么

    __weak可以應(yīng)用于函數(shù)的聲明和實(shí)現(xiàn).若使用__weak修飾聲明 __weak void function(void);執(zhí)行 function(); 語(yǔ)句時(shí),當(dāng)前文件中
    發(fā)表于 11-30 06:41

    __attribute__((weak)) __weak_symbol在idf4.4庫(kù)中無(wú)效,要怎么操作才能起作用呢?

    請(qǐng)教下,在編譯時(shí),遇到幾個(gè)問(wèn)題:1.同一個(gè)工程中,在不同的C文件寫相同的函數(shù),編譯時(shí)不報(bào)錯(cuò),函數(shù)生效隨機(jī);2.使用__attribute__((weak)) __weak_symbol無(wú)效。請(qǐng)教下,__attribute__((weak
    發(fā)表于 02-14 06:43

    目標(biāo)跟蹤的視覺(jué)注意計(jì)算模型

    目標(biāo)跟蹤的視覺(jué)注意計(jì)算模型:借鑒心理學(xué)中有關(guān)視覺(jué)注意的研究成果,提出一種應(yīng)用于視頻圖像序列的注意焦點(diǎn)計(jì)算模型。針對(duì)Itti 模型算法計(jì)算復(fù)雜
    發(fā)表于 01-04 12:20 ?14次下載

    【MCU】Keil編譯無(wú)法識(shí)別__WEAK問(wèn)題

    文章目錄1. Keil編譯無(wú)法識(shí)別__WEAK問(wèn)題2. ARM系列編譯工具鏈:`__CC_ARM、__ICCARM__、__GNUC__、__TASKING__`__CC_ARM對(duì)應(yīng)的平臺(tái)是:ARM
    發(fā)表于 11-05 16:05 ?54次下載
    【MCU】Keil編譯無(wú)法識(shí)別__<b class='flag-5'>WEAK</b>問(wèn)題

    keil中__weak的功能和應(yīng)用

    __weak可以應(yīng)用于函數(shù)的聲明和實(shí)現(xiàn).若使用__weak修飾聲明 __weak void function(void);執(zhí)行 function(); 語(yǔ)句時(shí),當(dāng)前文件中
    發(fā)表于 11-21 15:51 ?6次下載
    keil中__<b class='flag-5'>weak</b>的功能和應(yīng)用

    strong-password-generator密碼生成器

    strong-password-generator.zip
    發(fā)表于 05-07 10:40 ?0次下載
    <b class='flag-5'>strong</b>-password-generator密碼生成器

    OpenCV中支持的非分類與檢測(cè)視覺(jué)模型

    前面給大家分別匯總了OpenCV中支持的圖像分類與對(duì)象檢測(cè)模型視覺(jué)視覺(jué)任務(wù)除了分類與檢測(cè)還有很多其他任務(wù),這里我們就來(lái)OpenCV中支持的非分類與檢測(cè)的視覺(jué)
    的頭像 發(fā)表于 08-19 09:10 ?1642次閱讀

    基于可變形卷積的大規(guī)模視覺(jué)基礎(chǔ)模型

    擴(kuò)大模型的規(guī)模是提高特征表示質(zhì)量的重要策略,在計(jì)算機(jī)視覺(jué)領(lǐng)域,模型參數(shù)量的擴(kuò)大不僅能夠有效加強(qiáng)深度模型的表征學(xué)習(xí)能力,而且能夠實(shí)現(xiàn)從海量數(shù)據(jù)
    的頭像 發(fā)表于 11-21 11:28 ?1290次閱讀

    梳理一下DPHY的集成驗(yàn)證

    用于表示0的強(qiáng)度:highz0、supply0、strong0、pull0、weak0。
    的頭像 發(fā)表于 04-10 10:56 ?2218次閱讀

    Strong ARM比較器電路的工作原理

    “比較器是模數(shù)轉(zhuǎn)換器ADC中的核心電路之一。研究比較器失調(diào)等非理想因素的產(chǎn)生機(jī)制對(duì)提高ADC性能具有重要意義。鑒于此,本文以Strong ARM比較器為例,從工作原理和失調(diào)兩個(gè)方面對(duì)Strong ARM進(jìn)行介紹?!?/div>
    的頭像 發(fā)表于 07-17 16:19 ?1.1w次閱讀
    <b class='flag-5'>Strong</b> ARM比較器電路的工作原理

    一文詳解視覺(jué)語(yǔ)言模型

    視覺(jué)語(yǔ)言模型(VLM)是一種多模態(tài)、生成式 AI 模型,能夠理解和處理視頻、圖像和文本。
    的頭像 發(fā)表于 02-12 11:13 ?1764次閱讀
    一文詳解<b class='flag-5'>視覺(jué)</b>語(yǔ)言<b class='flag-5'>模型</b>

    ?VLM(視覺(jué)語(yǔ)言模型)?詳細(xì)解析

    視覺(jué)語(yǔ)言模型(Visual Language Model, VLM)是一種結(jié)合視覺(jué)(圖像/視頻)和語(yǔ)言(文本)處理能力的多模態(tài)人工智能模型,能夠理解并生成與
    的頭像 發(fā)表于 03-17 15:32 ?4111次閱讀
    ?VLM(<b class='flag-5'>視覺(jué)</b>語(yǔ)言<b class='flag-5'>模型</b>)?詳細(xì)解析