精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

機器學習|從0開始大模型之模型DPO訓練

發布于 2025-2-4 20:36
瀏覽
0收藏

1、為什么需要DPO

Rafailov等人在2023年發表了一篇論文《Direct Preference Optimization: Your Language Model is Secretly a Reward Model》,該論文提出了一種新的訓練方法,稱為直接偏好優化(DPO),該論文介紹:

雖然大規模無監督語言模型 (LM) 可以學習廣泛的世界知識和一些推理技能,但由于其訓練完全無監督,因此很難精確控制其行為。  
現有的獲得這種可控性的方法是收集模型生成相對質量的人類標簽,并微調無監督語言模型以符合這些偏好,通常使用從人類反饋中進行強化學習 (RLHF)。  
然而,RLHF 是一個復雜且通常不穩定的過程,首先要擬合一個反映人類偏好的獎勵模型,然后使用強化學習微調大型無監督語言模型以最大化這個估計的獎勵,而不會偏離原始模型太遠。  
在該論文中,利用獎勵函數和最優策略之間的映射來表明,這個受約束的獎勵最大化問題可以通過一個階段的策略訓練進行精確優化,本質上是解決人類偏好數據的分類問題。  
由此產生的算法,稱之為直接偏好優化 (DPO),穩定、高效且計算量小,無需擬合獎勵模型、在微調期間從 LM 中采樣或執行重大超參數調整。

由此可見,DPO 主要解決RLHF不穩定的問題,直接使用人類偏好數據訓練模型。

2、DPO的訓練原理

DPO 的訓練原理如下圖所示(出自原論文):

機器學習|從0開始大模型之模型DPO訓練-AI.x社區

DPO

主要包括兩個步驟:

  • 數據收集:收集一個偏好數據集,其中包含給定提示的生成結果的正負選擇對;
  • 優化:直接最大化DPO 損失的對數似然函數,該損失函數是偏好數據集上的交叉熵損失和模型生成結果的對數似然性之間的加權平均值;

具體公式推導可以參考這篇博客:https://www.cnblogs.com/lemonzhang/p/17910358.html。

3、DPO的代碼實現

3.1 收集數據

DPO 訓練器對數據集的格式有具體的要求,包括三個部分:

  • 提示(prompt):提示的格式為:prompt: 文本;
  • 選中(chosen):選中文本的格式為:chosen: 文本;
  • 拒絕(rejected):拒絕選中文本的格式為:rejected: 文本;
  • 示例:

{
    "id": 0,
    "prompt": "最近,馬其頓流行歌手托瑟·普羅埃斯基在一場巡回展覽中被紀念。",
    "chosen": "\"最近,馬其頓流行歌手托斯·普羅埃斯基在一場展覽中被人們銘記。\" 讓我幫你理解。這意味著他們舉辦了一場特別的展示(我們稱之為展覽),以幫助人們記住馬其頓這個地方的歌手托斯·普羅埃斯基有多特別。這有點像翻看你的相冊來回憶快樂時光,但規模更大,更專注于他成名后的工作和生活。",
    "rejected": "哦!你想知道這句話的意思嗎?好的,讓我告訴你!??\n\n所以,“Son d?nem”在英語中意思是“Last period”。而“Makedon”在英語中是“Macedonian”。而“pop ?ark?c?s?”在英語中意思是“pop singer”!??\n\n所以,句子“Son d?nem Makedon pop ?ark?c?s? Tose Proeski gezer sergide an?l?yor”的意思是“Last period Macedonian pop singer Tose Proeski正在舞臺上表演?!??\n\n希望這有幫助,小伙伴!??"
}

DPO的數據可以搜索huggingface的DPO數據集,地址為:https://huggingface.co/datasets?sort=trending&search=dpo 。

比如 https://huggingface.co/datasets/Anthropic/hh-rlhf 的數據集如下:

hh-rlhf

3.2 TRL

引入 TRL 庫,支持 DPO 訓練器,訓練樣例代碼:

training_args = DPOConfig(
    beta=0.1,
)
dpo_trainer = DPOTrainer(
    model,
    ref_model,
    args=training_args,
    train_dataset=train_dataset,
    tokenizer=tokenizer,  # for visual language models, use tokenizer=processor instead
)
dpo_trainer.train()
dpo_trainer.save_model()

如上訓練默認是保存 safetensors? 格式的模型,如果想保存 pytorch 格式的模型, 可以改為如下代碼:

training_args = DPOConfig(
    beta=0.1,
    save_safetensors=False, // 設置為False,改為保存為pytorch格式的模型   
)
dpo_trainer = DPOTrainer(
    model,
    ref_model,
    args=training_args,
    train_dataset=train_dataset,
    tokenizer=tokenizer,  # for visual language models, use tokenizer=processor instead
)
dpo_trainer.train()
dpo_trainer.save_model(
    output_dir=f"./out/dpo_sft_xxx.pth"
)

3.3 訓練

Transformer?的代碼和前面的一樣,可以參考預訓練的代碼,如下就是初始化模型和 DPO 訓練的代碼:

def init_model():
    from transformers import AutoTokenizer, AutoModelForCausalLM, AutoConfig
    AutoConfig.register(MyPretrainConfig.model_type, MyPretrainConfig)
    AutoModelForCausalLM.register(MyPretrainConfig, Transformer)
    my_tokenizer = "./my_tokenizer"
    tokenizer = AutoTokenizer.from_pretrained(my_tokenizer, trust_remote_code=True, use_fast=False)
    ckp = f'./out/full_sft_{lm_config.dim}.pth.{batch_size}'

    print(f"lmconfigs: {lm_config.to_json_string()}")
    with open(ckp_path + "/config.json", 'w') as f:
        f.write(lm_config.to_json_string())

    # 拷貝文件到指定的目錄
    for item in os.listdir(my_tokenizer):
        src_item = os.path.join(my_tokenizer, item)
        if os.path.isfile(src_item):
            dest_item = os.path.join(ckp_path, item)
            shutil.copy2(src_item, dest_item)
    shutil.copy2(ckp, ckp_path + "/pytorch_model.bin")

    model = AutoModelForCausalLM.from_pretrained(ckp_path, trust_remote_code=True).to(device)

    def count_parameters(model):
        return sum(p.numel() for p in model.parameters() if p.requires_grad)
    
    tokenizer.pad_token = tokenizer.eos_token
    print(f'LLM總參數量:{count_parameters(model) / 1e6:.3f} 百萬')
    model = model.to(device)
    return model, tokenizer

if __name__ == '__main__':
    lm_config = MyPretrainConfig()
    max_seq_len = lm_config.max_seq_len
    out_dir = 'out'
    epochs = 20             # 訓練輪數
    batch_size = 8          # batch_size
    learning_rate = 1e-5    # 學習率
    device = 'cuda:0'       # or cpu
    dtype = 'bfloat16'

    ckp_path = f'./my_checkpoint'
    if not os.path.exists(ckp_path):
        os.makedirs(ckp_path)

    model, tokenizer = init_model()
    training_config = DPOConfig(
        output_dir=ckp_path,
        per_device_train_batch_size=1,
        remove_unused_columns=False,
        report_to="none",
        save_steps=2000,
        learning_rate=learning_rate,
        save_safetensors=False,
    )

    # 下載訓練圖片:https://huggingface.co/datasets/jingyaogong/minimind_dataset/tree/main/dpo
    dataset_path = f'{basepath}/dpo_train_data.json'
    train_dataset = load_dataset('json', data_files=dataset_path)
    dpo_trainer = DPOTrainer(
        model,
        ref_model=None,
        args=training_config,
        beta=0.1,
        train_dataset=train_dataset['train'],
        tokenizer=tokenizer,
        max_length=512,
        max_prompt_length=512
    )
    dpo_trainer.train()
    dpo_trainer.save_model(
        output_dir=f"./out/dpo_sft_{lm_config.dim}.pth.{batch_size}"
    )
  • init_model 函數主要是注冊和加載預訓練的模型,并將tokeinzer 的一些配置文件都拷貝到./my_checkpoint 方便后續的訓練;
  • DPOConfig 主要是配置訓練的一些參數,比如保存的模型路徑、學習率等;
  • DPOTrainer? 是DPO 訓練器,將模型載入后調用train 進行訓練,參數說明如下:

model: transformers.PreTrainedModel,預訓練模型

ref_model: transformers.PreTrainedModel,參考模型

args: DPOConfig,用于訓練的 DPO 配置參數

train_dataset: datasets.Dataset,訓練數據集

tokenizer: transformers.PreTrainedTokenizerBase,分詞器

model_init: 用于訓練的模型初始化器,如果指定為 None,則將使用默認的模型初始化器

optimizer: torch.optim.Optimizer,優化器

callbacks: 用于訓練的回調函數

  • dpo_trainer.save_model? 保存模型,傳入output_dir 參數,指定保存的模型路徑

4、總結

至此,訓練系列按照步驟寫完了,現在總結訓練流程:

模型訓練流程

不過驗證下來,訓練效果不是很好,這個也是從0開始訓練會遇到的問題,因此接下來會完成幾個事項:

  • 模型迭代優化,解決訓練效果不好的問題;
  • 模型嘗試新的模型和解決方案,解決訓練速度問題;
  • 加入多模態訓練集,將語言大模型改進為多模態模型;
  • 最后將整個模型訓練完成后,將代碼開源;

收藏
回復
舉報
回復
相關推薦
97中文字幕在线观看| 麻豆传媒网站在线观看| 天天干,天天干| 久久婷婷蜜乳一本欲蜜臀| 欧美日韩国产另类一区| 日韩精品第1页| 牛牛澡牛牛爽一区二区| 精品一区二区三区视频在线观看| 欧美国产精品va在线观看| 国产中年熟女高潮大集合| 国产情侣一区在线| 欧美午夜片欧美片在线观看| 亚洲一区二区精品在线| 日批视频免费播放| 久久99蜜桃精品| 97在线视频国产| 精品无码久久久久成人漫画| 免费观看不卡av| 精品福利一区二区三区| 我看黄色一级片| 毛片电影在线| 亚洲欧美区自拍先锋| 日韩精品久久久毛片一区二区| 精品人妻无码一区二区色欲产成人| 久久久久国内| 91a在线视频| 九九免费精品视频| 91一区二区| 夜夜嗨av色综合久久久综合网| 伦理片一区二区| 日韩av综合| 欧美高清视频www夜色资源网| 毛片一区二区三区四区| a√中文在线观看| 一区二区三区在线观看网站| 一区二区不卡在线视频 午夜欧美不卡'| 午夜影院免费视频| 成人国产精品免费| 波多野结衣成人在线| 91久久精品无码一区二区| 日韩和欧美一区二区三区| 欧美怡春院一区二区三区| 国产精品9191| 99国产精品久久久久久久| 久久91精品国产91久久跳| 婷婷久久综合网| 国产精品国内免费一区二区三区| 一本一本久久a久久精品综合小说| 亚洲av片不卡无码久久| 欧美精品密入口播放| 欧美精品一区二区三区视频| 韩国三级丰满少妇高潮| 精品国产亚洲一区二区在线观看 | 国产91丝袜在线播放0| 91久久中文字幕| 国产精品午夜福利| 国产麻豆精品久久一二三| 91精品视频一区| av男人天堂av| 高清av一区二区| 国产精品xxxx| 色呦呦免费观看| 91蜜桃免费观看视频| 久久久久久久久久久一区 | 在线观看国产区| 日韩精品成人一区二区在线| 国产精品美女在线| 国产乱码久久久| 粉嫩av一区二区三区| 国产呦系列欧美呦日韩呦| 亚洲av成人精品日韩在线播放| 91美女在线观看| 亚洲欧美99| 91精选在线| 精品magnet| 亚洲中文字幕无码不卡电影| 成人mm视频在线观看| 91精品国产综合久久久蜜臀图片| 亚洲妇女无套内射精| 欧美亚洲国产日韩| 中文字幕在线亚洲| 免费在线一级片| 媚黑女一区二区| 成人xxxx视频| 色欲av伊人久久大香线蕉影院| 26uuu精品一区二区三区四区在线| 视频一区二区在线| 午夜av在线播放| 欧美日韩一区二区三区| 玖玖爱视频在线| 国产精品欧美大片| 搡老女人一区二区三区视频tv| 欧美三级日本三级| 久久精品盗摄| av成人免费观看| 黄色影院在线播放| 夜夜嗨av一区二区三区网页 | 成人午夜私人影院| 日韩精品久久一区二区三区| bt在线麻豆视频| 色呦呦国产精品| 亚洲成a人片在线www| 成人久久一区| 2019中文字幕免费视频| 国产三级第一页| 国产蜜臀97一区二区三区| 妺妺窝人体色www看人体| 欧美三区四区| 亚洲精品一线二线三线| 中文字幕91视频| 欧美中文日韩| 成人自拍爱视频| 日本三级视频在线播放| 婷婷成人激情在线网| 女同激情久久av久久| 国产麻豆精品久久| 久久久免费观看| 国产原创中文av| 国产欧美一区在线| 日本毛片在线免费观看| 亚洲视频一起| 精品国产美女在线| 亚洲无码精品一区二区三区| 9人人澡人人爽人人精品| 亚洲小说欧美另类激情| 少妇精品视频一区二区免费看| 亚洲国产成人在线视频| 精品国产精品国产精品| 免费精品视频最新在线| 手机在线观看国产精品| 快播电影网址老女人久久| 亚洲精品wwwww| 国产第一页第二页| 成人性生交大合| 国产精品自拍合集| 51亚洲精品| 欧美极品在线播放| 亚洲女人18毛片水真多| 亚洲精品美腿丝袜| 一区二区在线免费观看视频| 一区二区三区四区电影| 91精品免费久久久久久久久| 色的视频在线免费看| 欧美日韩在线观看一区二区| 日韩免费成人av| 日本不卡123| 亚洲不卡一卡2卡三卡4卡5卡精品| 日产福利视频在线观看| 亚洲欧美国产日韩天堂区| 日本一区二区免费电影| 国产亚洲人成网站| 亚洲激情在线观看视频| 日韩大片在线| 亚洲xxxxx性| 尤物在线网址| 亚洲高清不卡av| 久久国产视频精品| 国产日韩亚洲欧美综合| 91制片厂毛片| 中文精品久久| 国产综合 伊人色| 欧亚在线中文字幕免费| 亚洲精品一区二区久| 91黑人精品一区二区三区| 国产精品乱码妇女bbbb| 国产91在线免费观看| 午夜天堂精品久久久久| 久久成人资源| 国产69精品久久久久按摩| 俺也去精品视频在线观看| 国产美女无遮挡永久免费| 亚洲一区二区三区视频在线播放| 无码一区二区精品| 欧美96一区二区免费视频| 日本久久高清视频| 黄色免费大全亚洲| 国产精品精品视频一区二区三区| 免费在线看黄网站| 亚洲国产精品久久精品怡红院| av大全在线观看| 中文字幕一区在线观看| 国产吃瓜黑料一区二区| 美女尤物久久精品| 男人的天堂视频在线| 天堂成人娱乐在线视频免费播放网站| 国产精品视频午夜| 好久没做在线观看| 亚洲欧洲自拍偷拍| 国产乱人乱偷精品视频a人人澡 | 久久男人资源站| 九九在线精品| 91视频婷婷| 国精产品一区二区三区有限公司| 欧美肥老妇视频| 精品视频二区| 精品国产精品一区二区夜夜嗨| 国产伦精品一区二区三区视频网站| 亚洲欧洲日本在线| 免费成人深夜夜行p站| 久久99久久久欧美国产| 91国视频在线| 影音先锋成人在线电影| 欧洲国产精品| 成人在线tv视频| 91精品中国老女人| 国产精品亚洲一区二区三区在线观看| 九九视频这里只有精品 | 综合欧美一区二区三区| 熟女人妻在线视频| 国产麻豆视频一区二区| 久久精品免费网站| 国产欧美欧美| 久久精品xxx| 99久久夜色精品国产亚洲1000部| 欧美高清性xxxxhd | 玛丽玛丽电影原版免费观看1977| 精品久久国产一区| 国产精品你懂得| 第84页国产精品| 亚洲18私人小影院| 污视频网站免费在线观看| 精品激情国产视频| 二人午夜免费观看在线视频| 亚洲欧美成人网| 五月婷婷久久久| 亚洲国产黄色片| 精品人妻无码一区二区| 日韩一区二区在线免费观看| 中文字幕 人妻熟女| 日本福利一区二区| 九九热在线免费观看| 午夜精品久久久久| 国产性70yerg老太| 亚洲一区二区黄色| 精品无码久久久久久久久| 一区二区三区日韩欧美精品| www.97视频| 亚洲欧洲www| 91传媒免费观看| 国产精品激情偷乱一区二区∴| 又嫩又硬又黄又爽的视频| 国产欧美一区视频| 免费看的黄色录像| 中文字幕在线不卡一区| 极品色av影院| 亚洲欧美国产三级| 久久av红桃一区二区禁漫| 1024国产精品| www.99re7| 亚洲一区二区在线视频| 久久久久久久久久免费视频| 午夜视频一区二区三区| 天天综合网入口| 91国产视频在线观看| 成年人视频免费| 欧美日韩精品一区二区在线播放| 7777久久亚洲中文字幕| 91精品在线免费观看| 成人av一区二区三区在线观看| 欧美大片在线观看一区二区| 黑人精品一区二区三区| 精品在线欧美视频| 97在线观看免费观看高清| 精品国偷自产在线| 2001个疯子在线观看| 青青草成人在线| 国产亚洲精彩久久| 99国产视频| 亚欧洲精品视频在线观看| 日韩资源av在线| 亚洲欧洲美洲一区二区三区| 精品少妇人妻av免费久久洗澡| 羞羞答答国产精品www一本| 国产一二三区av| 国产精品1024| 免费毛片视频网站| 亚洲欧美一区二区三区国产精品| 日本少妇bbwbbw精品| 色狠狠一区二区| 国产男男gay体育生网站| 精品国产1区二区| 99riav在线| 久久久久久久久中文字幕| 户外露出一区二区三区| 91久久久久久久久久| 丝袜连裤袜欧美激情日韩| 亚洲自拍偷拍二区| 国产精品综合| 亚洲制服中文字幕| 久久亚洲精品国产精品紫薇| av黄色免费在线观看| 午夜精品久久久久| 国产人妻精品一区二区三| 国产丝袜一区二区| av在线免费播放| 国产精品久久久久久久久久久久 | 久草视频在线资源| 91国偷自产一区二区三区成为亚洲经典 | 777精品伊人久久久久大香线蕉| 少妇高潮一区二区三区99小说| 中文字幕日韩在线视频| ****av在线网毛片| 亚洲自拍另类欧美丝袜| 国产欧美日韩在线观看视频| www插插插无码免费视频网站| 人人超碰91尤物精品国产| 成人在线电影网站| 亚洲精品v日韩精品| 中文字幕视频免费观看| 亚洲激情国产精品| av大大超碰在线| 国产在线精品自拍| 国产欧美日韩一区二区三区四区| 免费一级特黄特色毛片久久看| 国产乱子伦一区二区三区国色天香| 国产美女永久免费无遮挡| 五月婷婷色综合| 亚洲av永久纯肉无码精品动漫| 在线视频日韩精品| 久久sese| 欧美日韩亚洲在线| 午夜在线一区二区| 日本三级日本三级日本三级极| 亚洲精品国产第一综合99久久| 亚洲最大成人av| 最近2019好看的中文字幕免费| 范冰冰一级做a爰片久久毛片| 国产伦精品一区二区三区照片91| 欧美阿v一级看视频| 97超碰成人在线| 国产精品久久久久天堂| 国产精品第六页| 国产一区二区三区视频在线观看| 欧美亚洲日本精品| 久久久影院一区二区三区| 日韩一级在线| 欧类av怡春院| 日韩欧美aaa| 男同在线观看| 国产精品久久久久久久久| 国产亚洲一卡2卡3卡4卡新区| 国产麻花豆剧传媒精品mv在线| 久久久一区二区三区| 久久精品视频1| 亚洲欧洲中文天堂| 成人午夜一级| 一区二区三区视频| 国产自产高清不卡| 成人观看免费视频| 精品国产欧美一区二区| 91桃色在线| 蜜桃视频日韩| 日av在线不卡| 男女做暖暖视频| 精品免费99久久| 看黄在线观看| 日韩亚洲视频| 精品写真视频在线观看| 美女福利视频在线观看| 亚洲第一av在线| 性孕妇free特大另类| 区一区二区三区中文字幕| 日本视频一区二区| 亚洲波多野结衣| 欧美刺激午夜性久久久久久久| 成人一级福利| 日韩欧美国产二区| 国产在线不卡视频| 久久久久久免费观看| 日韩精品www| 福利一区二区免费视频| 日本一级淫片演员| 成人午夜激情视频| 五月天婷婷导航| 久久亚洲精品一区| 国产丝袜一区| 亚洲这里只有精品| 亚洲成人激情自拍| 黄色av网站在线免费观看| 91在线免费看网站| 国产精品久久久久9999高清| 久久久久久成人网| 欧美成人综合网站| 色成人免费网站| 久久av高潮av| 日本一区二区三区四区在线视频| 99热这里只有精品在线| 日本电影亚洲天堂| 中文字幕日韩欧美精品高清在线| 37p粉嫩大胆色噜噜噜| 91精品国产全国免费观看| 在线看的毛片| 久久久久福利视频| 国产人久久人人人人爽| 亚洲欧美高清视频| 国产日韩在线观看av| 国产日韩一区二区三区在线| 老司机深夜福利网站| 亚洲精品美女在线| 久久免费福利|