精品欧美一区二区三区在线观看 _久久久久国色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開始訓練會遇到的問題,因此接下來會完成幾個事項:

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

收藏
回復
舉報
回復
相關推薦
国产熟女高潮一区二区三区| 国产日韩一区二区三区| 怡红院一区二区三区| 欧美成人xxxx| 亚洲动漫第一页| 欧美午夜精品久久久久久蜜| 一区二区三区精| 亚洲天天综合| 国产午夜精品麻豆| 国产一级免费大片| 国产剧情av在线播放| 国产欧美精品一区二区色综合 | 99国产精品视频免费观看| 国产不卡av在线免费观看| 色噜噜狠狠成人中文综合| 国产福利精品在线| 精品亚洲永久免费| 人人狠狠综合久久亚洲婷婷| 欧美精品一区二区三区在线| 欧美精品久久久久久久久25p| 成入视频在线观看| 亚洲三级免费电影| 午夜精品电影在线观看| 香蕉视频国产在线| 国产一区二区在线电影| 国产精品国产福利国产秒拍| 国产精品theporn动漫| 午夜精品视频一区二区三区在线看| 日韩国产欧美精品在线| 国产精品日日摸夜夜爽| 国产精品色婷婷在线观看| 色一情一伦一子一伦一区| av免费看网址| 人妖欧美1区| 亚洲视频一区在线观看| 亚洲精品在线视频观看| 国产高清视频在线播放| 26uuu精品一区二区三区四区在线| 91免费版网站在线观看| 国产一区二区在线视频聊天| 日本中文在线一区| 国产精品精品视频| 日韩在线视频不卡| 免费在线欧美黄色| 欧美亚洲视频在线观看| 久久黄色精品视频| 亚洲专区一区| 亚州av一区二区| 日韩激情在线播放| 亚洲精品1区| 久久久久久亚洲精品不卡| 久久久综合久久| 精品av久久久久电影| 欧美激情乱人伦一区| 免费中文字幕在线| 黑丝一区二区| 51色欧美片视频在线观看| 国产一区二区三区影院| 99国产精品视频免费观看一公开 | 日韩三级av在线| 欧美日韩国产中文字幕在线| 最新精品国偷自产在线| 日韩高清av在线| 国产男女猛烈无遮挡a片漫画 | 天天免费亚洲黑人免费| 色婷婷av一区二区三区大白胸| 男人操女人免费| 天然素人一区二区视频| 欧美日韩国产高清一区| 欧美日韩精品久久| 老女人性淫交视频| 亚洲精品电影| 欧美日韩成人精品| 日韩福利片在线观看| 一区二区三区精品视频在线观看| 91超碰caoporn97人人| 国产精品suv一区| 美女网站色91| 亚洲综合大片69999| 超碰在线观看99| 91网址在线看| 亚洲综合五月天| 影院在线观看全集免费观看| 亚洲国产aⅴ天堂久久| 日韩av黄色网址| 国产精品99精品一区二区三区∴| 制服丝袜激情欧洲亚洲| 理论片大全免费理伦片| 精品福利久久久| 久久色免费在线视频| 五月天婷婷丁香| 三级成人在线视频| 91精品在线国产| avove在线观看| 久久久久亚洲视频| 韩国av一区二区三区在线观看| 97se视频在线观看| 黄色小视频在线免费观看| 亚洲人成小说网站色在线 | 国产ts丝袜人妖系列视频 | 久久精品福利视频| 欧美福利视频一区二区| 国产尤物一区二区在线| 久久艳妇乳肉豪妇荡乳av| 免费人成在线观看播放视频| 欧美日韩美女在线| 亚洲一二区在线观看| 欧美精品momsxxx| 欧美另类老女人| 中文字幕第315页| 97国产精品videossex| 综合久久国产| 快播电影网址老女人久久| 日韩区在线观看| 国精产品一区一区三区mba下载| 国产成人欧美日韩在线电影| 免费电影一区| av免费在线观看网址| 欧美在线综合视频| 性久久久久久久久久久| 亚洲高清资源在线观看| 国产精品美女呻吟| 青青久在线视频免费观看| 亚洲一区二区三区爽爽爽爽爽 | 久久99久久久久| 美女诱惑一区二区| 69av在线视频| 韩国av免费在线| 亚洲欧洲99久久| 最新中文字幕免费视频| 国产成人精品999在线观看| 国产69精品99久久久久久宅男| 99久久久无码国产精品免费| 国产精品免费视频一区| 黄色av免费在线播放| 亚洲午夜久久| 日本高清不卡在线| 亚洲欧美一区二区三| 婷婷亚洲久悠悠色悠在线播放| 成人一区二区三区仙踪林| 亚洲综合婷婷| 亚洲一区二区三区四区在线播放| 久久久久久国产精品免费无遮挡| 欧美日韩国产首页在线观看| 国产精品麻豆免费版现看视频| 久久天堂成人| 天堂资源在线亚洲视频| 国产91亚洲精品久久久| 色婷婷综合成人av| 一级片视频网站| 亚洲特黄一级片| 一级黄色免费毛片| 精品动漫3d一区二区三区免费版 | 任你躁av一区二区三区| 韩国一区二区三区在线观看| www.久久爱.cn| gogo高清在线播放免费| 亚洲国产精久久久久久| 亚洲伊人成人网| 久久久久久久免费视频了| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 禁断一区二区三区在线| 国产精品视频免费观看www| 毛片在线不卡| 日韩视频在线一区二区| 国产在线免费视频| 97久久超碰国产精品| 日本老熟妇毛茸茸| 亚洲国产一成人久久精品| 99精品在线直播| 国产成人精品日本亚洲11| 免费电影网站在线视频观看福利| 亚洲第一精品夜夜躁人人爽| 久久精品视频5| 国产精品久久久久精k8| 日本少妇xxxx软件| 亚洲一级理论片| 国产精品视频久久一区| 日韩亚洲一区在线播放| 精品国产第一国产综合精品| 国产做受高潮69| 成人免费在线视频网| 欧美一级高清片| 天码人妻一区二区三区在线看| 国产精品每日更新| 天天躁日日躁狠狠躁av| 日本在线不卡视频一二三区| 91精品国产毛片武则天| 一本色道久久综合亚洲精品酒店| 国产日韩欧美在线| 成年男女免费视频网站不卡| 日韩在线免费视频观看| 婷婷在线免费观看| 欧美日韩成人一区二区| 日韩精品国产一区二区| 中文字幕永久在线不卡| 久久久久国产精品区片区无码| 久久99国产精品免费| 日韩欧美一区三区| 亚洲天堂一区二区三区四区| 日韩av免费电影| caoporn成人免费视频在线| 国产精品久久久久99| 韩国精品一区| 欧美成人午夜激情视频| 成人在线观看网站| 精品88久久久久88久久久| 91国偷自产中文字幕久久| 欧美午夜性色大片在线观看| 免费在线黄色片| 中文字幕一区二区三区视频| 国产精品无码久久久久久| 国产精品538一区二区在线| 天天综合网日韩| 日韩中文字幕亚洲一区二区va在线| 欧美中日韩在线| 在线观看国产精品入口| 国产欧美综合在线| 日本香蕉视频在线观看| 久久在线视频| 色综合影院在线观看| 你懂的一区二区三区| 国内精品**久久毛片app| 免费观看性欧美大片无片| 国产精品一区二区三区成人| 欧美与亚洲与日本直播| 欧美一级视频免费在线观看| 99thz桃花论族在线播放| 久久国产精品首页| 黄色在线免费| 久久精品国产精品| 在线观看免费黄色| 国产午夜精品美女视频明星a级| 天堂av电影在线观看| 亚洲电影免费观看高清完整版在线观看 | 久久国产精品一区| 日韩亚洲欧美中文高清在线| 在线免费观看的av网站| 国产丝袜一区视频在线观看| 日本不卡视频一区二区| 日韩精品一区二区三区第95| 日韩欧美电影在线观看| 亚洲男人的天堂在线播放| 天堂成人在线| 亚洲图片欧美午夜| 国产污视频在线| 伊人成人开心激情综合网| аⅴ资源新版在线天堂| 中文字幕日本精品| 中文字幕日本在线观看| 精品国产区一区二区三区在线观看| 在线免费av电影| 久久久99免费视频| 最新黄网在线观看| 午夜精品久久久久久久久久久久久| av电影在线地址| 奇米一区二区三区四区久久| 日韩高清成人| 成人免费福利在线| 亚洲成人黄色| 久久久久久久有限公司| 欧美人与牛zoz0性行为| 夜夜爽www精品| 中文无码久久精品| 免费国产黄色网址| 日韩精品欧美成人高清一区二区| 久久这里只精品| 国产成人8x视频一区二区| 国产精品手机在线观看| 国产亚洲精品免费| 成人免费黄色小视频| 亚洲午夜一区二区| 亚洲欧美一二三区| 在线不卡的av| 免费av网站在线播放| 亚洲视频一区二区三区| 黄色网址在线免费| 91高清视频免费观看| 香蕉视频xxxx| 精品一区二区三区在线视频| 宇都宫紫苑在线播放| 97精品国产97久久久久久久久久久久| 少妇人妻好深好紧精品无码| 亚洲免费观看高清| 国产一级片毛片| 欧美电影一区二区| 日本人妖在线| 久久久av一区| 中文字幕成在线观看| 91精品久久久久久久久青青| 久久97精品| 一本久久a久久精品vr综合| 最新亚洲激情| 午夜剧场高清版免费观看| 成人av网站免费| 91大神福利视频| 天天色综合成人网| 97成人在线观看| 亚洲欧美日韩另类| 三级网站视频在在线播放| 国产91色在线| 大奶一区二区三区| 黄频视频在线观看| 久久久久国产精品一区二区| 佐佐木明希电影| 中文字幕在线免费不卡| 波多野结衣在线电影| 精品成人私密视频| 国产在线观看a| 国产精品嫩草影院一区二区| 欧洲亚洲一区二区三区| 米仓穗香在线观看| 久久精品国产99国产| 天天躁日日躁aaaa视频| 亚洲不卡av一区二区三区| 国产毛片久久久久| 国产一区二区三区毛片| 欲香欲色天天天综合和网| 不卡视频一区二区| 婷婷综合在线| 五月婷婷丁香综合网| 久久色视频免费观看| 日韩免费黄色片| 日韩一级大片在线观看| 老司机在线永久免费观看| 国产精品va在线| 亚洲精品国模| 91猫先生在线| 91色在线porny| 国产成人精品一区二三区| 亚洲精品在线观| av日韩国产| 国产精品一区二区三区精品| 亚洲视频福利| 国产精品一区二区无码对白| 亚洲一区二区中文在线| 亚洲成熟女性毛茸茸| 欧美第一黄色网| 中文字幕久久精品一区二区| 国产精品久久久久7777| 成人夜色视频网站在线观看| 麻豆一区二区三区精品视频| 精品免费国产一区二区三区四区| 欧美xxxx少妇| 国产91视觉| 国产日韩1区| 亚洲一级中文字幕| 91久久精品一区二区三区| 国产女人在线视频| 国产精品美女av| 天天射—综合中文网| 97超碰免费在线观看| 亚洲一卡二卡三卡四卡五卡| 日本高清视频免费看| 97视频色精品| 国产不卡一二三区| www.精品在线| 亚洲免费av网站| 高潮一区二区三区乱码| 欧美亚州一区二区三区| 成人情趣视频网站| 欧美一级免费在线| 亚洲高清在线视频| 黄色软件在线观看| 成人免费视频网址| 激情久久久久久| 手机av免费看| 欧美猛男gaygay网站| 欧美hdxxx| 日本黑人久久| 国产在线看一区| 黄色大片网站在线观看| 中文字幕亚洲欧美日韩在线不卡| 久久久久久久久久久久电影| 日本十八禁视频无遮挡| 国产精品私人影院| 不卡视频在线播放| 国产精品99久久久久久久久久久久| 亚洲久久久久| 极品人妻一区二区三区| 7799精品视频| 人成在线免费网站| 中文字幕中文字幕99| 91在线码无精品| 91中文字幕在线视频| 91av视频在线| 综合激情在线| 国产99在线 | 亚洲| 精品日韩在线观看| 成人18视频在线观看| 又大又硬又爽免费视频| 中文字幕中文字幕在线一区| 天堂av资源在线| 成人国产精品色哟哟| 男女av一区三区二区色多| 538精品在线观看| 国产午夜精品一区理论片飘花| 99亚洲乱人伦aⅴ精品| 91制片厂毛片| 日韩欧美精品免费在线|