国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

解讀大模型的微調

原創 精選
開發 架構
微調預訓練LLM的所有層仍然是適應新目標任務的黃金準則。但是,諸如基于特征的方法、上下文學習和參數高效微調技術等方法,可以在最小化計算成本和資源的同時,有效地將LLM應用到新任務中。

在快速發展的人工智能領域中,有效地利用大型語言模型(LLM)變得越來越重要。然而,有許多不同的方式可以使用大型語言模型,這可能會讓我們感到困惑。實際上,可以使用預訓練的大型語言模型進行新任務的上下文學習并進行微調。

那么,什么是上下文學習?又如何對大模型進行微調呢?

1. 上下文學習與索引

自從GPT-2和GPT-3出現以來,可以發現在預訓練的通用文本語料庫上的生成式大型語言模型(LLM)具備了上下文學習的能力,這意味著如果我們想要執行LLM沒有明確訓練的特定或新任務,不需要進一步訓練或微調預訓練的LLM。同時,我們可以通過輸入提示直接提供一些目標任務的示例。

In Context Learning(ICL)的關鍵思想是從類比中學習。下圖給出了一個描述語言模型如何使用 ICL 進行決策的例子。首先,ICL 需要一些示例來形成一個演示上下文。這些示例通常是用自然語言模板編寫的。然后 ICL 將查詢的問題(即需要預測標簽的 input)和一個上下文演示(一些相關的 cases)連接在一起,形成帶有提示的輸入,并將其輸入到語言模型中進行預測。

圖片

如果無法直接訪問模型,例如通過 API 使用模型,上下文學習非常有用。與上下文學習相關的是“硬提示微調”的概念,可以通過修改輸入來期望改善輸出。將直接修改輸入的單詞或標記的微調稱為“硬”提示微調,另一種微調方式稱為“軟”提示微調或通常稱為“提示微調”。這種提示微調方法提供了一種更為節省資源的參數微調替代方案。然而,由于它不會更新模型參數以適應特定任務的微小差異,因此可能會限制其適應能力。此外,由于通常需要手動比較不同提示的質量,提示微調可能需要耗費大量人力。

另一種利用純粹的上下文學習方法的方法是索引。在LLM的范圍內,索引可以被視為一個上下文學習的解決方法,它使得LLM可以轉換為信息檢索系統,用于從外部資源和網站中提取數據。在此過程中,索引模塊將文檔或網站分解為較小的段落,并將它們轉換為可以存儲在向量數據庫中的向量。然后,當用戶提交查詢時,索引模塊計算嵌入式查詢與數據庫中每個向量之間的向量相似度。最終,索引模塊獲取前k個最相似的嵌入式向量以生成響應。索引的示意圖如下:

圖片

2. 基于三種特征的微調方法

上下文學習是一種有價值且用戶友好的方法,適用于直接訪問大型語言模型受限的情況,例如通過API或用戶界面與LLM進行交互。然而,如果可以訪問LLM,則使用來自目標領域的數據對其進行適應和微調通常會導致更好的結果。那么,我們如何將模型適應到目標任務?下圖概述了三種常規的基于特征的微調方法。

圖片

除了微調編碼器風格的LLM之外,相同的方法也適用于GPT般的解碼器風格LLM。此外,還可以微調解碼器風格的LLM生成多句話的答案,而不僅僅是分類文本。

2.1 基于特征的方法

在基于特征的方法中,需要加載預訓練的LLM,并將其應用于目標數據集。在這里,需要特別關注生成訓練集的輸出嵌入,這些嵌入可以用作訓練分類模型的輸入特征。雖然這種方法在以嵌入為重點的模型(如BERT)中特別常見,但也可以從生成式GPT-style模型中提取嵌入。

分類模型可以是邏輯回歸模型、隨機森林或XGBoost ,也可以任何我們想要的模型。一般地,在這里線性分類器如邏輯回歸表現最佳。

圖片

從概念上講,可以用以下代碼說明基于特征的方法:

model = AutoModel.from_pretrained("distilbert-base-uncased")

# ...
# tokenize dataset
# ...

# generate embeddings
@torch.inference_mode()
def get_output_embeddings(batch):
    output = model(
        batch["input_ids"],
        attention_mask=batch["attention_mask"]
    ).last_hidden_state[:, 0]
return {"features": output}

dataset_features = dataset_tokenized.map(
  get_output_embeddings, batched=True, batch_size=10)

X_train = np.array(imdb_features["train"]["features"])
y_train = np.array(imdb_features["train"]["label"])

X_val = np.array(imdb_features["validation"]["features"])
y_val = np.array(imdb_features["validation"]["label"])

X_test = np.array(imdb_features["test"]["features"])
y_test = np.array(imdb_features["test"]["label"])

# train classifier
from sklearn.linear_model import LogisticRegression

clf = LogisticRegression()
clf.fit(X_train, y_train)

print("Training accuracy", clf.score(X_train, y_train))
print("Validation accuracy", clf.score(X_val, y_val))
print("test accuracy", clf.score(X_test, y_test))

2.2 基于輸出層更新的微調

與上述基于特征的方法相關的一種流行方法是微調輸出層。與基于特征的方法類似,保持預訓練LLM的參數不變,只訓練新添加的輸出層,類似于在嵌入特征上訓練邏輯回歸分類器或小型多層感知器。在代碼中,將如下所示:

model = AutoModelForSequenceClassification.from_pretrained(
    "distilbert-base-uncased",
     num_labels=2
)

# freeze all layers
for param in model.parameters():
    param.requires_grad = False

# then unfreeze the two last layers (output layers)
for param in model.pre_classifier.parameters():
    param.requires_grad = True

for param in model.classifier.parameters():
    param.requires_grad = True

# finetune model
lightning_model = CustomLightningModule(model)

trainer = L.Trainer(
    max_epochs=3,
    ...
)

trainer.fit(
  model=lightning_model,
  train_dataloaders=train_loader,
  val_dataloaders=val_loader)

# evaluate model
trainer.test(lightning_model, dataloaders=test_loader)

理論上,這種方法應該具有與基于特征的方法同樣的良好建模性能和速度。然而,由于基于特征的方法使預計算和存儲嵌入特征更加容易,因此在特定的實際情況下,記憶特征的方法可能更加方便。

2.3 面向所有層更新的微調

盡管原始的BERT論文聲稱,僅微調輸出層可以實現與微調所有層相當的建模性能,但后者涉及更多參數,因此成本更高。例如,BERT基本模型約有1.1億個參數。然而,BERT基本模型用于二元分類的最后一層僅包含1,500個參數。此外,BERT基本模型的最后兩層占據60,000個參數,僅占總模型大小的約0.6%。]

由于目標任務和目標領域與模型預訓練的數據集相似程度的不同,幾乎總是通過微調所有層來獲得更優秀的模型性能。因此,當優化模型性能時,使用預訓練LLM的黃金標準是更新所有層。從概念上講,這種方法與輸出層更新非常相似。唯一的區別是不凍結預訓練LLM的參數,而是對其進行微調。

model = AutoModelForSequenceClassification.from_pretrained(
    "distilbert-base-uncased",
     num_labels=2
)

# don't freeze layers
# for param in model.parameters():
#    param.requires_grad = False

# finetune model
lightning_model = LightningModel(model)

trainer = L.Trainer(
    max_epochs=3,
    ...
)

trainer.fit(
  model=lightning_model,
  train_dataloaders=train_loader,
  val_dataloaders=val_loader)

# evaluate model
trainer.test(lightning_model, dataloaders=test_loader)

多層微調通常會導致更好的性能,但代價也會增加,各種方法的計算和模型性能如下圖所示。

圖片

上面的情景突出了微調的三種極端情況:基于特征,僅訓練最后一層或幾層,或者訓練所有層。當然,根據模型和數據集的不同,在各種選項之間探索也可能是值得的。

3. 參數高效微調

參數高效微調允許我們在最小化計算和資源占用的同時重復使用預訓練模型。總的來說,參數高效微調至少有以下5個優點:

  • 減少計算成本(需要更少的GPU和GPU時間);
  • 更快的訓練時間(更快地完成訓練);
  • 更低的硬件要求(可以使用更小的GPU和更少的存儲器);
  • 更好的模型性能(減少過擬合);
  • 更少的存儲空間(大部分權重可以在不同任務之間共享)。

如前所述,微調更多的層通常會導致更好的結果。如果想要微調更大的模型,例如重新生成的LLM,這些模型只能勉強適合GPU內存,該怎么辦呢?人們開發了幾種技術,只需訓練少量參數便可通過微調提升LLM的性能。這些方法通常被稱為參數高效微調技術(PEFT)。

在huggingface提供的PEFT工具中,可以很方便地實現將普通的HF模型變成用于支持輕量級微調的模型,使用非常便捷,目前支持4種策略,分別是:

  • LoRA
  • Prefix Tuning
  • P-Tuning
  • Prompt Tuning

下圖總結了一些最廣泛使用的PEFT技術。

圖片

那么這些技術是如何工作的呢?簡而言之,它們都涉及引入少量的額外參數,而不是對所有層都進行修改。從某種意義上講,輸出層微調也可以被視為一種參數高效的微調技術。然而,像前綴微調、適配器和低秩適應等技術,它們“修改”多個層,以極低的成本實現更好的預測性能。

4.RHLF

在人類反饋增強學習中,預訓練模型使用監督學習和強化學習相結合進行微調。這種方法是由原始的ChatGPT模型推廣而來,而該模型又基于InstructGPT。RLHF通過讓人類對不同的模型輸出進行排名或評分來收集人類反饋,從而提供獎勵信號。然后,可以使用收集的獎勵標簽來訓練獎勵模型,進而指導LLM對人類偏好的適應。

獎勵模型本身是通過監督學習進行學習的,通常使用預訓練的LLM作為基本模型。接下來,獎勵模型用于更新預訓練的LLM,以適應人類的偏好。訓練使用了一種稱為近端策略優化的強化學習方法。InstructGPT論文中概述了RLHF的過程。

圖片

為什么要使用獎勵模型而不是直接訓練預先訓練好的模型并使用人類反饋?主要原因是將人類納入學習過程會造成瓶頸,我們無法實時獲取反饋。

5.小結

微調預訓練LLM的所有層仍然是適應新目標任務的黃金準則。但是,諸如基于特征的方法、上下文學習和參數高效微調技術等方法,可以在最小化計算成本和資源的同時,有效地將LLM應用到新任務中。此外,帶有人類反饋的強化學習(RLHF)作為有監督微調的替代方法,也可以提高模型性能。

【參考資料】 

  • A Survey on In-context Learning,https://arxiv.org/pdf/2301.00234.pdf
  • LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS,https://arxiv.org/pdf/2106.09685.pdf
  • Prefix-Tuning: Optimizing Continuous Prompts for Generation, https://aclanthology.org/2021.acl-long.353
  • P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks,https://arxiv.org/pdf/2110.07602.pdf
  • The Power of Scale for Parameter-Efficient Prompt Tuning,https://arxiv.org/pdf/2104.08691.pdf
  • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding,https://arxiv.org/abs/1810.04805
  • https://github.com/huggingface/peft
  • https://github.com/rasbt
責任編輯:武曉燕 來源: 喔家ArchiSelf
相關推薦

2025-06-23 07:54:40

2025-04-10 07:59:51

2024-09-09 07:46:16

2023-10-06 20:30:33

大模型LLMtoken

2024-02-05 14:12:37

大模型RAG架構

2024-05-07 08:00:00

自然語言處理機器學習

2024-04-15 12:50:00

大型語言模型ReFT

2025-02-28 10:25:09

2024-12-30 00:01:00

多模態大模型Python

2025-01-14 10:56:14

2024-05-06 07:58:23

MoE模型系統

2023-04-10 09:59:48

昇思

2025-05-13 05:11:00

推理模型微調

2024-09-26 10:42:20

2025-06-26 09:06:59

2024-01-18 15:38:17

語言模型大型語言模型

2023-10-20 17:53:05

2024-07-08 09:49:54

2025-10-23 09:28:39

大模型RAG微調

2023-09-01 21:12:13

GPT3.5模型微調
點贊
收藏

51CTO技術棧公眾號

69av在线视频| 亚洲国产国产亚洲一二三| 国产精品麻豆久久久| 裸体xxxx视频在线| 国产精品一区二区三区乱码| 精品亚洲欧美日韩| 久久久夜夜夜| 日本a级片免费观看| 五月激情久久| 久久久久国产精品一区二区| 女女百合国产免费网站| 国产精品入口麻豆九色| 秋霞a级毛片在线看| 欧美大片在线观看一区| 亚洲欧美日本伦理| 亚洲久久久久久久久久久| 成年网站在线免费观看| 不卡视频在线观看| 伊人青青综合网| 日韩精品免费在线| 日韩肉感妇bbwbbwbbw| 成人亚洲一区二区一| 国产精品免费一区| 女人天堂av在线播放| 久久亚洲免费视频| 制服诱惑一区| 伊人久久高清| 黑人巨大精品欧美一区二区一视频| 神马影院一区二区三区| 日本三级在线播放完整版| 狠狠色综合播放一区二区| 国产精品美女久久| 久久伊人国产| 国产精品扒开腿做爽爽爽的视频| 日精品一区二区三区| 色资源网站在线观看| 日韩国产一区三区| 中文在线免费一区三区| 日本免费久久高清视频| 影音先锋久久| 青青青在线播放| 在线亚洲人成电影网站色www| 成人在线免费av| 国产91网红主播在线观看| 亚洲三级观看| 免费看一级大黄情大片| 成人黄色网址在线观看| 午夜激情福利在线| 91黄视频在线观看| 黄色片免费在线| 日韩精品中文字幕一区| 国产精品一区二区x88av| 国产精品视频网站在线观看| 人妖欧美一区二区| 国产精品久久久久久福利一牛影视 | 伊人色综合久久天天人手人婷| 日韩毛片在线| 国产日韩亚洲欧美在线| 在线精品国产成人综合| 91国产精品视频在线观看| 成人免费在线视频| 国产精品久久久久久久免费软件| 国产偷倩在线播放| 欧美 日韩精品| 91九色蝌蚪嫩草| 亚洲国产婷婷香蕉久久久久久| 国产成人在线网站| 99久久99九九99九九九| 成人黄色免费电影| 国内视频一区| 69精品人人人人| 亚洲理论在线| 在线香蕉视频| 欧美一级高清免费| 中文字幕不卡一区| 日韩在线电影| 97在线国产视频| 亚洲欧洲中文天堂| 国产一区二区三区四区五区入口| 99thz桃花论族在线播放| 91在线免费看网站| 天天综合色天天综合| 亚洲三级av| 亚洲欧美日韩国产yyy| 欧美日韩小视频| 亚洲精品成人精品456| 激情文学综合插| 一本一道波多野毛片中文在线| 国产亚洲精品美女久久久久| 欧美成人milf| 黄动漫在线看| 国产精品区一区二区三在线播放| 亚洲激情五月婷婷| 欧美韩国日本| 粉嫩虎白女毛片人体| 粉嫩av免费一区二区三区| va天堂va亚洲va影视| 黄色影院在线播放| 在线观看免费播放网址成人| 99免费精品在线观看| 欧美高潮视频| 自拍偷拍第1页| 日韩 欧美 视频| 男女爱爱视频网站| 日韩中文字幕一区二区| 欧洲精品毛片网站| 不卡av在线播放| 日韩av一卡二卡| 精品国产91乱码一区二区三区| 一区二区三区四区乱视频| 91在线精品秘密一区二区| 亚洲精品1234| 久草免费在线视频| 在线黄色.com| 美女xx视频| 亚洲欧洲一区二区福利| 97在线免费观看| 亚洲国产成人精品一区二区| 午夜av一区二区| 国产成人久久精品77777最新版本| 亚洲bt欧美bt精品777| 在线观看福利电影| 99riav在线| 4444在线观看| 色综合久久88色综合天天看泰| 91福利精品第一导航| 亚洲第一黄色网| 欧美在线高清视频| 国产精品一区二区免费不卡| 激情综合网五月| 第四色中文综合网| 老司机aⅴ在线精品导航| 欧美日韩亚洲一区| 日本欧美大码aⅴ在线播放| 黄色工厂这里只有精品| 国产一区日韩一区| 欧美日韩精品一区二区视频| 日本美女久久| 青青草av网站| 日韩视频第二页| 羞羞免费视频网站| 天天爱天天操天天干| 久草热久草热线频97精品| 尤物99国产成人精品视频| 偷窥国产亚洲免费视频| 国产又粗又猛又爽又黄91精品| 欧美另类69xxxxx| 久久xxx视频| 在线播放免费| 宅男一区二区三区| 日本一区二区视频| 久久久久久久免费| 午夜啪啪免费视频| 91在线看网站| 久久黄色av网站| 亚洲激情视频在线观看| 日韩一区二区三区视频在线| 9色porny自拍视频一区二区| 欧美日韩日本国产亚洲在线| 成人av黄色| 成人性视频欧美一区二区三区| 久久99精品久久久久久秒播放器| 777精品视频| 欧美自拍视频在线| 欧美激情在线视频二区| 国产91在线播放九色快色| 欧美一区二区三区视频免费| av毛片久久久久**hd| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲欧洲一区二区| 国产精品久久久久影院日本 | 欧美色国产精品| 激情综合网av| 你懂的视频一区二区| 美女精品在线| 欧美成人直播| 成人香蕉社区| 未满十八勿进黄网站一区不卡| 精精国产xxxx视频在线播放| 色操视频在线| 91社区在线观看播放| 欧美日韩不卡在线视频| 妞干网这里只有精品| 久久99精品久久久久久三级| 国产精品91视频| 91社区国产高清| 国产久一一精品| 欧美国产一区二区在线| 神马影院午夜我不卡影院| 无码人妻精品一区二区蜜桃网站| www.夜夜爽| 精品一区二区三区中文字幕在线| 久久久久久久久久久久久久久久久久久久| 美女久久一区| 中文一区一区三区免费在线观看| 97品白浆高清久久久久久| xxxxxhd亚洲人hd| 国产亚洲人成网站| 久久久久久久久中文字幕| 能看的毛片网站|