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

使用GaLore在本地GPU進行高效的LLM調優

人工智能
訓練大型語言模型(llm),即使是那些“只有”70億個參數的模型,也是一項計算密集型的任務。這種水平的訓練需要的資源超出了大多數個人愛好者的能力范圍。為了彌補這一差距,出現了低秩適應(LoRA)等參數高效方法,可以在消費級gpu上對大量模型進行微調。

訓練大型語言模型(llm),即使是那些“只有”70億個參數的模型,也是一項計算密集型的任務。這種水平的訓練需要的資源超出了大多數個人愛好者的能力范圍。為了彌補這一差距,出現了低秩適應(LoRA)等參數高效方法,可以在消費級gpu上對大量模型進行微調。

GaLore是一種新的方法,它不是通過直接減少參數的數量,而是通過優化這些參數的訓練方式來降低VRAM需求,也就是說GaLore是一種新的模型訓練策略,可讓模型使用全部參數進行學習,并且比LoRA更省內存。

GaLore將這些梯度投影到低秩空間上,顯著減少了計算負荷,同時保留了訓練所需的基本信息。與傳統的優化器在反向傳播后同時更新所有層的方法不同,GaLore在反向傳播期間實現逐層更新。這種方法進一步減少了整個訓練過程中的內存占用。

就像LoRA一樣,GaLore可以讓我們在具有24 GB VRAM的消費級GPU上微調7B模型。結果模型的性能與全參數微調相當,并且似乎優于LoRA。

優于目前Hugging Face還沒有官方代碼,我們就來手動使用論文的代碼進行訓練,并與LoRA進行對比

安裝依賴

首先就要安裝GaLore

pip install galore-torch

然后我們還要一下這些庫,并且請注意版本

datasets==2.18.0
 transformers==4.39.1
 trl==0.8.1
 accelerate==0.28.0
 torch==2.2.1

調度器和優化器的類

Galore分層優化器是通過模型權重掛鉤激活的。由于我們使用Hugging Face Trainer,還需要自己實現一個優化器和調度器的抽象類。這些類的結構不執行任何操作。

from typing import Optional
 import torch
 
 # Approach taken from Hugging Face transformers https://github.com/huggingface/transformers/blob/main/src/transformers/optimization.py
 class LayerWiseDummyOptimizer(torch.optim.Optimizer):
    def __init__(self, optimizer_dict=None, *args, **kwargs):
        dummy_tensor = torch.randn(1, 1)
        self.optimizer_dict = optimizer_dict
        super().__init__([dummy_tensor], {"lr": 1e-03})
 
    def zero_grad(self, set_to_none: bool = True) -> None: 
      pass
 
    def step(self, closure=None) -> Optional[float]: 
      pass
 
 class LayerWiseDummyScheduler(torch.optim.lr_scheduler.LRScheduler):
    def __init__(self, *args, **kwargs):
        optimizer = LayerWiseDummyOptimizer()
        last_epoch = -1
        verbose = False
        super().__init__(optimizer, last_epoch, verbose)
 
    def get_lr(self): 
      return [group["lr"] for group in self.optimizer.param_groups]
 
    def _get_closed_form_lr(self): 
      return self.base_lrs

加載GaLore優化器

GaLore優化器的目標是特定的參數,主要是那些在線性層中以attn或mlp命名的參數。通過系統地將函數與這些目標參數掛鉤,GaLore 8位優化器就會開始工作。

from transformers import get_constant_schedule
 from functools import partial
 import torch.nn
 import bitsandbytes as bnb
 
 from galore_torch import GaLoreAdamW8bit
         
 def load_galore_optimizer(model, lr, galore_config):    
    # function to hook optimizer and scheduler to a given parameter 
    def optimizer_hook(p, optimizer, scheduler):
        if p.grad is not None: 
            optimizer.step()
            optimizer.zero_grad()
            scheduler.step()
 
    # Parameters to optimize with Galore
    galore_params = [
        (module.weight, module_name) for module_name, module in model.named_modules() 
        if isinstance(module, nn.Linear) and any(target_key in module_name for target_key in galore_config["target_modules_list"])
    ] 
    id_galore_params = {id(p) for p, _ in galore_params}
     
    # Hook Galore optim to all target params, Adam8bit to all others
    for p in model.parameters():
        if p.requires_grad:
            if id(p) in id_galore_params:
                optimizer = GaLoreAdamW8bit([dict(params=[p], **galore_config)], lr=lr)
            else:
                optimizer = bnb.optim.Adam8bit([p], lr = lr)
            scheduler = get_constant_schedule(optimizer)
             
            p.register_post_accumulate_grad_hook(partial(optimizer_hook, optimizer=optimizer, scheduler=scheduler))
             
    # return dummies, stepping is done with hooks 
    return LayerWiseDummyOptimizer(), LayerWiseDummyScheduler()

HF Trainer

準備好優化器后,我們開始使用Trainer進行訓練。下面是一個簡單的例子,使用TRL的SFTTrainer (Trainer的子類)在Open Assistant數據集上微調llama2-7b,并在RTX 3090/4090等24 GB VRAM GPU上運行。

from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, set_seed, get_constant_schedule
 from trl import SFTTrainer, setup_chat_format, DataCollatorForCompletionOnlyLM
 from datasets import load_dataset
 import torch, torch.nn as nn, uuid, wandb
 
 lr = 1e-5
 
 # GaLore optimizer hyperparameters
 galore_config = dict(
    target_modules_list = ["attn", "mlp"], 
    rank = 1024, 
    update_proj_gap = 200, 
    scale = 2, 
    proj_type="std"
 )
 
 modelpath = "meta-llama/Llama-2-7b"
 model = AutoModelForCausalLM.from_pretrained(
    modelpath,    
    torch_dtype=torch.bfloat16,
    attn_implementation = "flash_attention_2",  
    device_map = "auto",
    use_cache = False,
 )
 tokenizer = AutoTokenizer.from_pretrained(modelpath, use_fast = False)
 
 # Setup for ChatML
 model, tokenizer = setup_chat_format(model, tokenizer)
 if tokenizer.pad_token in [None, tokenizer.eos_token]: 
    tokenizer.pad_token = tokenizer.unk_token
 
 # subset of the Open Assistant 2 dataset, 4000 of the top ranking conversations
 dataset = load_dataset("g-ronimo/oasst2_top4k_en")
 
 training_arguments = TrainingArguments(
    output_dir = f"out_{run_id}",
    evaluation_strategy = "steps",
    label_names = ["labels"],
    per_device_train_batch_size = 16,
    gradient_accumulation_steps = 1,
    save_steps = 250,
    eval_steps = 250,
    logging_steps = 1, 
    learning_rate = lr,
    num_train_epochs = 3,
    lr_scheduler_type = "constant",
    gradient_checkpointing = True,
    group_by_length = False,
 )
 
 optimizers = load_galore_optimizer(model, lr, galore_config)
 
 trainer = SFTTrainer(
    model = model,
    tokenizer = tokenizer,
    train_dataset = dataset["train"],
    eval_dataset = dataset['test'],
    data_collator = DataCollatorForCompletionOnlyLM(
        instruction_template = "<|im_start|>user", 
        response_template = "<|im_start|>assistant", 
        tokenizer = tokenizer, 
        mlm = False),
    max_seq_length = 256,
    dataset_kwargs = dict(add_special_tokens = False),
    optimizers = optimizers,
    args = training_arguments,
 )
 
 trainer.train()

GaLore優化器帶有一些需要設置的超參數如下:

target_modules_list:指定GaLore針對的層

rank:投影矩陣的秩。與LoRA類似,秩越高,微調就越接近全參數微調。GaLore的作者建議7B使用1024

update_proj_gap:更新投影的步驟數。這是一個昂貴的步驟,對于7B來說大約需要15分鐘。定義更新投影的間隔,建議范圍在50到1000步之間。

scale:類似于LoRA的alpha的比例因子,用于調整更新強度。在嘗試了幾個值之后,我發現scale=2最接近于經典的全參數微調。

微調效果對比

給定超參數的訓練損失與全參數調優的軌跡非常相似,表明GaLore分層方法確實是等效的。

用GaLore訓練的模型得分與全參數微調非常相似。

GaLore可以節省大約15 GB的VRAM,但由于定期投影更新,它需要更長的訓練時間。

上圖為2個3090的內存占用對比

訓練事件對比,微調:~58分鐘。GaLore:約130分鐘

最后我們再看看GaLore和LoRA的對比

上圖為LoRA微調所有線性層,rank64,alpha 16的損失圖

從數值上可以看到GaLore是一種近似全參數訓練的新方法,性能與微調相當,比LoRA要好得多。

總結

GaLore可以節省VRAM,允許在消費級GPU上訓練7B模型,但是速度較慢,比微調和LoRA的時間要長差不多兩倍的時間。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2023-11-30 15:56:54

大型語言模型人工智能

2023-11-30 18:03:55

IDEA工具

2023-06-06 15:42:13

Optuna開源

2025-05-09 01:00:00

大語言模型LLMGPU內存

2023-12-19 16:12:40

GPT-4AI聊天機器人人工智能

2023-11-14 10:06:46

數據庫性能

2010-05-19 17:44:09

2011-03-10 14:40:54

LAMPMysql

2025-03-05 03:00:00

DeepSeek大模型調優

2012-01-10 14:35:08

JavaJVM

2013-09-24 13:06:56

AngularJS性能優化

2023-10-13 12:28:38

2017-07-21 08:55:13

TomcatJVM容器

2011-04-07 16:15:31

MySQL服務器調優

2024-05-21 09:08:57

JVM調優面試

2024-08-13 08:23:43

LLamaSharpLLM推理庫

2021-03-04 08:39:21

SparkRDD調優

2011-05-20 14:23:01

Oracle調優

2024-06-14 15:38:53

點贊
收藏

51CTO技術棧公眾號

视频二区在线| 黄色工厂在线观看| 免费国产在线观看| 精品成人久久| 7777精品久久久大香线蕉| 欧美日韩电影一区二区| 国产福利拍拍拍| 99久久免费精品国产72精品九九| 亚洲欧洲av在线| 国产精品高清在线观看| 538国产视频| 岛国av在线网站| 成人av在线资源网站| 欧美成人免费网| 韩国一区二区在线播放| 日韩av中文| 奇米色一区二区| 亚洲天堂av电影| 激情婷婷综合网| 福利视频在线播放| 美女任你摸久久| 一区国产精品视频| 中文字幕第36页| av在线电影观看| 奇米一区二区三区| 日韩一区二区欧美| 国产精品嫩草影视| 日韩激情美女| 99久久国产免费看| 97视频色精品| 爱爱免费小视频| 3d性欧美动漫精品xxxx软件| 亚洲国产激情av| 成人免费网站在线| 久久久91视频| 麻豆成人入口| 日本韩国欧美一区| 超碰成人在线免费观看| 国产女人18毛片水真多| 亚洲性感美女99在线| 亚洲国产一区二区三区四区| 国产白丝袜美女久久久久| 欧美日韩在线精品一区二区三区激情综| 久久国产精品久久w女人spa| 在线看日韩欧美| 国产探花在线观看视频| 丁香花在线电影小说观看| 91一区二区三区在线观看| 国产精品久久久av久久久| 国产人与禽zoz0性伦| 日本综合精品一区| 欧美日韩国产中文精品字幕自在自线 | 婷婷在线播放| av中文一区二区三区| 人人爽久久涩噜噜噜网站| 天天摸日日摸狠狠添| 麻豆久久一区| 欧美日韩国产精品专区| 一区二区精品视频| 五月婷婷综合久久| 久久精品国产亚洲aⅴ| 欧美大片在线免费观看| 成人片黄网站色大片免费毛片| 久久亚洲精品中文字幕| 一区二区三区国产豹纹内裤在线| 精品视频第一区| 亚洲视频久久久| 国产精品激情| 色吧影院999| 国产性生活毛片| 国产精品原创视频| 黑人巨大精品欧美一区二区三区 | 亚洲精品成人无限看| 精品乱码亚洲一区二区不卡| 精品久久久久久中文字幕2017| 怡红院av在线| 亚洲欧美影音先锋| 欧美一区二区影视| 刘亦菲毛片一区二区三区| 久久精品国产免费| 日本91av在线播放| 一区二区三区免费高清视频| 国产韩日影视精品| 亚洲午夜精品久久久久久久久久久久| 国内精品免费视频| 国产精品色婷婷在线观看| 日本丶国产丶欧美色综合| 欧美一级欧美一级| 91cn在线观看| 亚洲欧洲无码一区二区三区| 日本一区视频在线| 欧美日韩国产综合视频| 99精品在线免费| 成人欧美一区二区三区视频xxx | www成人啪啪18软件| 国产精品香蕉| 日韩欧美区一区二| 一级淫片在线观看| 国产成人免费精品| 在线亚洲欧美专区二区| 亚洲不卡中文字幕无码| 成人女同在线观看| 一二三四社区欧美黄| 91视频成人免费| www在线免费观看视频| 国产欧美精品一区aⅴ影院| 好吊色欧美一区二区三区| 亚洲va久久久噜噜噜无码久久| 黄一区二区三区| 国产综合视频在线观看| 亚洲午夜激情视频| 美腿丝袜亚洲色图| 国产日韩在线播放| 一本色道久久综合亚洲| 麻豆国产欧美一区二区三区| 国产精品网址在线| 在线观看免费黄色小视频| 免费在线观看精品| 成人免费大片黄在线播放| 91九色蝌蚪91por成人| 国内精品国产成人| 不卡日韩av| 污污网站在线免费观看| 久久综合国产精品| 亚洲一区二区三区加勒比| 91在线高清| 亚洲免费在线播放| 国产传媒久久久| 操人在线观看| 在线免费观看视频一区| www.亚洲高清| 欧美国产中文高清| 亚洲电影成人av99爱色| 欧美熟妇一区二区| 97在线精品| 欧美激情一级欧美精品| 日韩免费视频一区二区视频在线观看| 丝袜美腿亚洲综合| 成人免费高清完整版在线观看| 成 人 黄 色 片 在线播放| 成人av在线播放网址| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 欧美日韩视频专区在线播放| 亚洲va在线va天堂va偷拍| 日韩高清二区| 亚洲欧美www| 免费在线观看a级片| 亚洲网站视频| 国产精品久久视频| 亚洲国产剧情在线观看| 久久精品人人做人人爽97| 超碰免费在线公开| 都市激情久久综合| 欧美日韩国产一区二区三区地区| 91丨porny丨九色| 综合干狼人综合首页| 久久手机精品视频| 免费污污视频在线观看| 国产精品综合av一区二区国产馆| 久久精品日产第一区二区三区乱码 | 欧美视频在线观看视频| 日韩制服一区| 亚洲第一精品夜夜躁人人爽| av永久免费观看| 亚洲精品1234| 91人人爽人人爽人人精88v| 四虎在线视频| 亚洲一区免费观看| 岛国毛片在线播放| 一道本一区二区三区| 久久99精品视频一区97| 中文字幕+乱码+中文| 99久久99久久久精品齐齐| 公共露出暴露狂另类av| 福利一区二区| 亚洲乱码av中文一区二区| 免费人成视频在线| 精品一区二区三区免费观看| 日本精品一区二区三区视频| 黄色在线看片| 欧美一区二区三区的| 69xxx免费| 美女网站久久| 精品国产免费人成电影在线观...| 国产原创在线观看| 欧美丝袜第三区| 国产中年熟女高潮大集合| 激情视频一区二区三区| 2014亚洲精品| gogogogo高清视频在线| 欧美精品高清视频| 亚洲色图 激情小说| 三级一区在线视频先锋| 蜜桃成人在线| 日本在线啊啊| 日韩成人久久久| 日本一区二区三区四区五区| 国产精品自在欧美一区| 91国在线高清视频| 亚洲国产91视频| 色阁综合伊人av| 中文字幕777| 中文字幕av资源一区| 成人一区二区三| 国产免费播放一区二区| 国产成人精品在线播放| 国产福利第一视频在线播放| 在线欧美日韩精品| 亚洲国产天堂av| 久久一二三四| 日韩av电影免费播放| 欧美日韩亚洲国产| 日韩中文字幕网站| 国产精品毛片一区视频播| 国产精品国产三级国产有无不卡| 中文字幕免费高清在线| 婷婷伊人综合| 91精品婷婷国产综合久久蝌蚪| 在线午夜影院| 亚洲国产美女久久久久| 国产成人免费看| 日本一区二区三级电影在线观看| 亚洲成人福利在线观看| 色88久久久久高潮综合影院| 国产成人精品综合久久久| 国产精品一二三区视频| 欧美日韩欧美一区二区| 国产三级精品三级观看| 国内精品写真在线观看| 国产欧美日韩小视频| 西野翔中文久久精品字幕| 秋霞午夜一区二区| av在线中文| 精品日韩欧美一区二区| 国产成人在线视频观看| 国产精品久久久久一区二区三区| 亚洲一区二区图片| 夜久久久久久| 在线无限看免费粉色视频| 亚洲国产aⅴ精品一区二区| 国产91|九色| 日本免费在线观看| 亚洲第一视频在线观看| www.久久久久久久| 亚洲天堂精品在线观看| 日韩av无码一区二区三区不卡| 爽好多水快深点欧美视频| 夜夜爽99久久国产综合精品女不卡| 视频在线观看免费影院欧美meiju| 久久全球大尺度高清视频| 国产www.大片在线| 日韩一区二区三区精品视频| 亚洲GV成人无码久久精品| 亚洲丝袜美腿综合| 中文字幕国产综合| 国产成a人亚洲精品| 999在线免费视频| 亚洲午夜久久久久久尤物| 午夜精品一区二区三区在线观看 | 国产精品久久国产精品| 巨胸喷奶水www久久久免费动漫| 欧美极品少妇与黑人| 国产在线自天天| 亚洲精品一区二区三区影院| 波多野结衣一二区| 午夜一区二区三区视频| 日本精品在线免费观看| 久久女同精品一区二区| 91精产国品一二三| 精品一区二区三区免费视频| av免费中文字幕| 在线精品在线| 波多野结衣与黑人| 99久久精品费精品国产风间由美| 欧美精品123| 欧美自拍视频| 国产91一区二区三区| 99综合久久| 国产精品视频免费在线观看| 亚洲免费福利| 午夜精品久久17c| 日本一本在线免费福利| 久久人体大胆视频| 日本www在线| 在线观看久久av| 福利在线播放| 国产一区二区三区在线看| 天堂在线资源库| 亚洲白拍色综合图区| 精品久久久中文字幕人妻| 欧美精品一级二级三级| 在线不卡免费视频| 欧美亚洲一区二区在线观看| 久久青青草原亚洲av无码麻豆| 亚瑟在线精品视频| 精品无码久久久久久久| 亚洲无线码一区二区三区| 欧美国产日韩综合| 一区二区高清免费观看影视大全| 欧美一级特黄高清视频| 中文字幕亚洲综合久久菠萝蜜| 肉色超薄丝袜脚交69xx图片| 中文字幕精品一区二区精品绿巨人 | 91视频最新入口| 夜夜精品视频| av免费中文字幕| 日本中文字幕一区二区有限公司| 久久综合久久色| 欧美a级理论片| 国产喷水theporn| 国产一区二区伦理| 在线观看你懂的视频| 国产成人免费视频网站| xxxx黄色片| 国产亚洲va综合人人澡精品| 久久久久久久毛片| 国产精品久久久久久妇女6080| 羞羞在线观看视频| 一区二区高清免费观看影视大全| 久久高清免费视频| 欧美午夜www高清视频| 色老头一区二区| 7777精品伊人久久久大香线蕉完整版| 精品国产伦一区二区三区| 亚洲国产婷婷香蕉久久久久久| 内衣办公室在线| 久久精品视频播放| 黄色小说在线播放| 国产成人一区二区| 日韩精品视频在线观看视频| 亚洲第一偷拍| 国产日韩av网站| 日韩精品一二三| 樱花草www在线| av在线播放不卡| 亚洲综合第一区| 一区二区三区免费| 中文字字幕在线中文| 7777精品伊人久久久大香线蕉的| 性欧美一区二区三区| 亚洲精品小视频在线观看| 中文字幕在线观看日本| 久久久久久综合网天天| 天天免费亚洲黑人免费| 91亚洲精华国产精华| 欧美一性一交| 99热一区二区三区| 亚洲欧美视频一区二区三区| 久久久久久综合网| 久久免费精品国产久精品久久久久| 在线视频这里只有精品| 亚洲高清免费观看| 中文字幕在线一| 亚洲精品久久久久久久久久久| 日本在线观看www| 69视频在线播放| 蜜桃精品一区二区三区| 麻豆精品蜜桃一区二区三区| 欧美xxx在线观看| 欧美亚洲日本在线观看| 不卡视频一二三| 日韩精品123区| 欧美午夜免费电影| 欧美色视频免费| 久久99精品久久久久久噜噜 | 成人动漫在线免费观看| 欧美精品福利视频| 日韩高清在线观看一区二区| 日韩欧美一区二区在线观看| 亚洲精品1区| 久久久久国产免费| 亚洲欧美影音先锋| 国产在线一级片| 亚洲精品在线看| 国内激情视频在线观看| 亚洲影院高清在线| 欧美oldwomenvideos| 日日碰狠狠躁久久躁婷婷| eeuss影院一区二区三区| 免费在线一区二区三区| 7777精品伊人久久久大香线蕉完整版 | 综合国产精品久久久| 久久久久久自在自线| 91丨porny丨对白| 亚洲精品国产无天堂网2021| 亚洲一卡二卡在线| 亚洲视频欧美视频| 国产精品极品美女在线观看| 精品九九九九| 亚洲作爱视频| 国产老熟女伦老熟妇露脸| 一区二区三区四区不卡视频| 国产又粗又大又爽视频| 中文字幕精品www乱入免费视频| 色8久久影院午夜场| 免费看污久久久| 三级成人在线视频| 亚洲国产日韩一区无码精品久久久| 色婷婷av一区二区三区软件| 欧美理论在线观看|