精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

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

深度學(xué)習(xí)自然語言處理 ? 來源:深度學(xué)習(xí)自然語言處理 ? 2024-01-08 11:07 ? 次閱讀

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

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

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

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

既有NLP版本也有CV版本

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

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

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

支持論文中描述的各種損失函數(shù),如置信度輔助損失函數(shù),也可以自己定義損失函數(shù),見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(千問)模型出現(xiàn)在代碼中

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

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)是:一個弱監(jiān)督者如何監(jiān)督一個比它聰明得多的模型?為此,OpenAI提出了一個兩階段的訓(xùn)練方法:

對于一個給定的任務(wù):

構(gòu)建弱監(jiān)督者。通過在一半訓(xùn)練數(shù)據(jù)上微調(diào)較小的預(yù)訓(xùn)練模型來構(gòu)造弱監(jiān)督者,他們把弱監(jiān)督者的表現(xiàn)稱為弱表現(xiàn),并通過弱模型的預(yù)測來生成弱標(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)練一個用于比較的性能上限的強(qiáng)模型。在另一半訓(xùn)練數(shù)據(jù)上以Ground Truth作為標(biāo)簽訓(xùn)練一個較大的模型作為比較的上限。(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,
)

通過第一步中的弱監(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在倉庫中提到,目前開源的代碼并非與論文實(shí)驗(yàn)部分完全一致,不過是結(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."

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

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

    關(guān)注

    3

    文章

    3256

    瀏覽量

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

    關(guān)注

    1

    文章

    3178

    瀏覽量

    48731
  • OpenAI
    +關(guān)注

    關(guān)注

    9

    文章

    1045

    瀏覽量

    6412

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    如何利用Transformers了解視覺語言模型

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

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

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

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

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

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

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

    HAL庫中__weak修飾符是什么?

    單片機(jī)系統(tǒng)時鐘是什么?HAL庫中__weak修飾符是什么?
    發(fā)表于 02-23 07:32

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

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

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

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

    【MCU】Keil編譯無法識別__WEAK問題

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

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

    __weak可以應(yīng)用于函數(shù)的聲明和實(shí)現(xiàn).若使用__weak修飾聲明 __weak void function(void);執(zhí)行 function(); 語句時,當(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密碼生成器

    輕量級視覺模型設(shè)計(jì)的新啟發(fā)

    風(fēng)頭正盛的ViT,是計(jì)算機(jī)視覺領(lǐng)域過去十年最矚目的研究突破之一。2020年,谷歌視覺模型Vision Transformer(ViT)橫空出世,憑借碾壓各路ConvNet的性能表現(xiàn),一舉掀起Transformer在計(jì)算機(jī)
    的頭像 發(fā)表于 07-28 09:33 ?1082次閱讀

    OpenCV中支持的非分類與檢測視覺模型

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

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

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

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

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

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

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