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

從零實現大模型-GPT2任務微調 原創

發布于 2024-7-2 11:26
瀏覽
0收藏

??從零實現大模型-BERT預訓練??

??從零實現大模型-BERT微調??

我們在BERT微調那篇文章中提到,許多NLP任務(如情感分析和問答)都依賴于上下文理解能力。而像BERT這種雙向模型具有較強的上下文理解能力,因此非常適合用于任務微調,即針對某個具體任務進行微調。

??從零實現大模型-GPT2預訓練??

??從零實現大模型-GPT2指令微調??

??從零實現大模型-GPT2 RLHF??

而像GPT這種自回歸模型,在預訓練完成后會進行一個指令微調過程,用于跟隨人類指令,然后通過指令去完成不同的任務(翻譯,總結)。

那GPT能否像BERT那樣,直接微調用于完成某個具體任務呢?雖然BERT更適合,但GPT確實也可以。

今天我們就基于之前的GPT2預訓練模型,使用一個垃圾郵件數據集,來微調一個郵件分類模型。

1.垃圾郵件識別

傳統ML方法

當然,也可以通過傳統的機器學習方法實現垃圾郵件分類,例如,貝葉斯分類,或者基于統計學,事先設定一些敏感詞匯,如果郵件中出現了這些敏感詞匯,就認為是垃圾郵件。

Embedding

但傳統機器學習方法依賴人類經驗,既然我們正在寫大模型的文章,就得入鄉隨俗。

我們通過Embedding實現文本分類,具體來說就是計算郵件內容的Embedding,然后計算“spam”和“none spam”的Embedding,最后通過計算余弦相似度來判斷郵件類型。

從零實現大模型-GPT2任務微調-AI.x社區

指令微調模型

其實,還有比計算Embedding更簡單的方法,如果大模型已經經過預訓練、指令微調以及RLHF過程,那么就可以直接利用這種指令跟隨能力來實現垃圾郵件分類。

例如,我們構造下面的prompt輸入給chatGPT。

"Is the following text 'spam'? Answer with 'yes' or 'no':"
    " 'You are a winner you have been specially"
    " selected to receive $1000 cash or a $2000 award.'"

以下是GPT4-o給出的答案,不僅準確識別出了垃圾郵件,還遵循了人類指令輸出了“yes”。

從零實現大模型-GPT2任務微調-AI.x社區

如果只使用預訓練模型,沒有經過指令微調,前面我們也測試過,模型雖然有輸出,但輸出只是簡單的拷貝輸入。

輸入:
Is the following text 'spam'? Answer with 'yes' or 'no': 'You are a winner you have been specially selected to receive $1000 cash or a $2000 award.'
輸出:
The following text 'spam'? Answer with 'yes' or 'no': 'You are a winner

2.任務微調

本文完整代碼如下,建議結合代碼閱讀文本。

https://github.com/AIDajiangtang/LLM-from-scratch/blob/main/GPT2_fine-tune_spam_classifier_from_scratch.ipynb

在通過Embedding實現文本分類時,Embedding是通過調用openAI的API得到的,其實,這個Embedding也可以看作是GPT模型輸出隱狀態的一部分。

除了用Embedding計算余弦相似度來實現文分類外,還可以基于隱狀態實現一個分類模型,也就是在模型的輸出端加一個分類頭。

從零實現大模型-GPT2任務微調-AI.x社區

準備數據

訓練數據來自公開的垃圾郵件數據集,包括文本和標簽兩列,標簽列中spam代表是垃圾郵件。

從零實現大模型-GPT2任務微調-AI.x社區

因為數據集中垃圾郵件數量少于正常郵件,所以要平衡正負樣本數量。

# Examine class distributions
print(df["Label"].value_counts())

Label
ham     4825
spam     747
Name: count, dtype: int64


def create_balanced_dataset(df):
    num_spam = df[df["Label"] == "spam"].shape[0]
    ham_subset = df[df["Label"] == "ham"].sample(num_spam, random_state=123)
    balanced_df = pd.concat([ham_subset, df[df["Label"] == "spam"]])
    return balanced_df


balanced_df = create_balanced_dataset(df)
print(balanced_df["Label"].value_counts())

Label
ham     747
spam    747
Name: count, dtype: int64


接下來劃分訓練集,驗證機和測試集。

接下來是tokenization,padding或者截斷到最大長度。

最后構造Dataloader。

加載預訓練模型

加載gpt2預訓練模型。

CHOOSE_MODEL = "gpt2-small (124M)"
INPUT_PROMPT = "Every effort moves"
BASE_CONFIG = {
    "vocab_size": 50257,     # Vocabulary size
    "context_length": 1024,  # Context length
    "drop_rate": 0.0,        # Dropout rate
    "qkv_bias": True         # Query-key-value bias
}
model_configs = {
    "gpt2-small (124M)": {"emb_dim": 768, "n_layers": 12, "n_heads": 12},
    "gpt2-medium (355M)": {"emb_dim": 1024, "n_layers": 24, "n_heads": 16},
    "gpt2-large (774M)": {"emb_dim": 1280, "n_layers": 36, "n_heads": 20},
    "gpt2-xl (1558M)": {"emb_dim": 1600, "n_layers": 48, "n_heads": 25},
}
BASE_CONFIG.update(model_configs[CHOOSE_MODEL])


assert train_dataset.max_length <= BASE_CONFIG["context_length"], (
    f"Dataset length {train_dataset.max_length} exceeds model's context "
    f"length {BASE_CONFIG['context_length']}. Reinitialize data sets with "
    f"`max_length={BASE_CONFIG['context_length']}`"
)


from gpt_download import download_and_load_gpt2


model_size = CHOOSE_MODEL.split(" ")[-1].lstrip("(").rstrip(")")
settings, params = download_and_load_gpt2(model_size=model_size, models_dir="gpt2")


model = GPTModel(BASE_CONFIG)
load_weights_into_gpt(model, params)
model.eval()

再微調過程中,可以凍結大部分預訓練模型參數。

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

添加分類頭

在預訓練模型的輸出端加一個二分類分類頭。

# Add a classification head
torch.manual_seed(123)
num_classes = 2
model.out_head = torch.nn.Linear(
    in_features=BASE_CONFIG["emb_dim"], # 768
    out_features=num_classes,           # 2 (spam or not spam)
)


構造損失函數

因為是二分類,所以構造一個交叉熵損失函數。

def calculate_loss_batch(input_batch, target_batch, model, device):
  input_batch, target_batch = input_batch.to(device), target_batch.to(device)
  logits = model(input_batch)[:, -1, :] # Grab logits of last output token only!
  loss = torch.nn.functional.cross_entropy(logits, target_batch)
  return loss


然后開始訓練,訓練過程與指令微調過程基本一致。

import time


start_time = time.time()
torch.manual_seed(123)


# Create optimizer
optimizer = torch.optim.AdamW(model.parameters(), lr=5e-5, weight_decay=0.1)


# Set training epochs
num_epochs = 5


# Train the model
train_losses, val_losses, train_accs, val_accs, examples_seen = train_classifier(
    model=model,
    train_loader=train_loader,
    val_loader=val_loader,
    optimizer=optimizer,
    device=device,
    num_epochs=num_epochs,
    eval_freq=50,
    eval_iter=5,
    tokenizer=tokenizer,
)


end_time = time.time()
execution_time_minutes = (end_time - start_time) / 60
print(f"Training completed in {execution_time_minutes:.2f} minutes.")


本文轉載自公眾號人工智能大講堂 

原文鏈接:??https://mp.weixin.qq.com/s/n1h9JeCxV3Kq_yj0-_RS5A??



?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
標簽
收藏
回復
舉報
回復
相關推薦
亚洲老头同性xxxxx| 一区二区三区久久| 成人国产精品久久久| 欧美日韩在线视频免费播放| 91精品导航| 欧美丝袜丝交足nylons172| 在线观看三级视频欧美| 婷婷精品国产一区二区三区日韩| 国产日韩精品suv| 在线视频观看日韩| 欧美精品xxxxbbbb| 2019日韩中文字幕mv| 999视频在线| 亚洲影视一区| 亚洲午夜性刺激影院| 三级黄色片免费观看| 美女扒开腿让男人桶爽久久软| 国产视频一区二区三区在线观看 | 欧洲一区二区三区| 久久婷婷久久一区二区三区| 91精品久久久久久久久不口人| 日本亚洲欧美在线| 99久久这里只有精品| 日韩电视剧免费观看网站| 免费一区二区三区在线观看| 国产欧洲在线| 一区二区三区中文在线观看| 国产成人a亚洲精品| 777777国产7777777| 免费av一区| 精品日韩在线观看| 天天看片天天操| 搜成人激情视频| 亚洲高清三级视频| 久久久成人精品一区二区三区 | 欧美国产成人精品一区二区三区| 91精品啪在线观看国产18| 亚洲日本中文字幕| 熟妇高潮精品一区二区三区| 国产精品欧美一区二区三区不卡| 欧美在线短视频| aaa毛片在线观看| 91福利在线尤物| 一区二区三区在线不卡| 在线观看日韩羞羞视频| 成年女人的天堂在线| 99久久国产免费看| 精品一区二区三区日本| 韩国av免费在线观看| 国产成人精品www牛牛影视| 久久躁狠狠躁夜夜爽| 波多野结衣一二三四区| 亚洲精品tv| 亚洲欧美日韩在线不卡| 天堂一区二区三区| 国产精品秘入口| 久久精品夜色噜噜亚洲aⅴ| 久久伊人一区二区| 视频福利在线| 91视频在线观看免费| 精品免费视频123区| 日本免费一区视频| 老牛嫩草一区二区三区日本| 欧美一二三视频| 日韩精品在线免费视频| 香蕉久久夜色精品| 国产成人拍精品视频午夜网站| 成人a v视频| 免费精品视频在线| 成人免费视频网址| www视频在线| 成人黄色小视频在线观看| 国产一区免费| 欧美套图亚洲一区| 国产精品麻豆久久久| 操bbb操bbb| www.综合网.com| 久久日韩精品一区二区五区| 日本成人黄色免费看| xxxx国产精品| fc2成人免费人成在线观看播放| 九九九九精品| 三级网站在线播放| 日本中文字幕不卡| 欧美激情视频网址| www亚洲色图| 99精品视频在线观看播放| 久久99久久99精品中文字幕| 日本系列第一页| 日本aⅴ精品一区二区三区| 91美女片黄在线观看游戏| 亚洲精品无码久久久| 久久综合国产精品| 中国成人亚色综合网站| av中文字幕电影在线看| 欧美中文一区二区三区| 中文字幕第10页| 亚洲美女15p| 久久天天躁狠狠躁夜夜av| 国产欧美日韩另类| 欧美视频在线观看| 茄子视频成人在线| 国产伦一区二区| 久久综合中文字幕| 免费看黄色a级片| 日韩一区二区三区免费| 精品奇米国产一区二区三区| 天天躁日日躁aaaa视频| 好吊日精品视频| 国产精品免费电影| 熟妇人妻中文av无码| **性色生活片久久毛片| 精品久久久久久久免费人妻| 这里视频有精品| 国产亚洲精品激情久久| 日本亚洲色大成网站www久久| 裸体在线国模精品偷拍| 欧美国产一二三区| 催眠调教后宫乱淫校园| 国产三区视频在线观看| 欧美日韩国产中字| 两性午夜免费视频| 欧美综合在线视频观看 | 成年人黄视频在线观看| 色系网站成人免费| 插我舔内射18免费视频| 综合久久99| 国产日韩欧美另类| 色鬼7777久久| 亚洲超碰97人人做人人爱| 亚洲一区二区中文字幕在线观看| 精品美女久久| 日本一区二区在线播放| 手机在线不卡av| 亚洲一区av在线| 初高中福利视频网站| 三级电影一区| 国产精品国产三级国产专播精品人 | 正在播放亚洲一区| 精品女人久久久| 免费观看久久久4p| 亚洲国产精品视频一区| 欧美日韩国产网站| 亚洲va天堂va国产va久| 黑人性生活视频| 在线中文字幕亚洲| 91色视频在线导航| 国产cdts系列另类在线观看| 在线不卡a资源高清| av片在线免费看| 久久国产视频网| 亚洲美女搞黄| 亚洲免费一区| 亚洲国产天堂网精品网站| 日本少妇色视频| 国产精品人人爽人人做我的可爱| 99视频国产精品免费观看| 亚洲七七久久综合桃花剧情介绍| 91精品国产综合久久久久| 欧美大片xxxx| 福利一区福利二区| www插插插无码视频网站| 美女一区二区在线观看| 欧美性受xxx| 国产女人在线视频| 欧美日本免费一区二区三区| 一级黄色录像视频| 不卡在线观看av| www一区二区www免费| 国产精品羞羞答答在线观看| 国产精品激情av电影在线观看| 巨大荫蒂视频欧美大片| 欧美成人激情免费网| 欧美亚韩一区二区三区| 久久精品在线免费观看| 午夜精品久久久内射近拍高清| 欧美一级精品| 99re在线观看| 五月天av在线| 在线电影中文日韩| 成 人 黄 色 片 在线播放| 精品免费在线视频| 在线免费看视频| 国产成人av一区二区| aa在线免费观看| 成人在线亚洲| 国产伦精品一区二区三区视频黑人 | 欧美美女一区| 3d蒂法精品啪啪一区二区免费| 9999在线视频| 色悠悠久久88| 欧美少妇bbw| 欧美日韩的一区二区| 国产午夜精品无码一区二区| 中文字幕成人网| 岛国av免费观看| 奇米888四色在线精品| 国产一区二区三区乱码| 欧美日韩在线二区| 国产欧美韩日| 日韩毛片网站| 青青久久av北条麻妃海外网| av黄色在线| 亚洲欧美日本精品| 亚洲精品一区二区三区不卡| 欧美系列一区二区| 欧美福利视频一区二区| 最新日韩av在线| 欧美特级黄色录像| 成人亚洲一区二区一| 亚洲污视频在线观看| 亚洲免费毛片| 99热最新在线| 只有精品亚洲| 国产精品激情av电影在线观看| 黄视频在线免费看| 久久久精品久久| 国产乱淫av片免费| 亚洲免费视频成人| 日韩一级av毛片| 白白色 亚洲乱淫| 亚洲精品mv在线观看| 日韩一区精品视频| 成人毛片视频网站| 狠狠噜噜久久| 大地资源网在线观看免费官网| 日韩av自拍| 欧美一级二级三级| 亚洲免费专区| 麻豆久久久av免费| 久久精品国产亚洲blacked| 97人人模人人爽人人喊38tv| 香蕉久久一区| 国产区精品视频| 国产香蕉久久| 久久久精品一区二区| yourporn在线观看中文站| 亚洲欧美激情精品一区二区| 天堂在线免费av| 亚洲激情视频网站| 国 产 黄 色 大 片| 日韩女优av电影| 精品人妻伦一区二区三区久久| 在线电影欧美成精品| 国产又黄又大又粗的视频| 欧美日韩在线电影| 亚洲天堂999| 亚洲午夜免费电影| 国产一级中文字幕| 亚洲午夜成aⅴ人片| 国产亚洲色婷婷久久99精品| 亚洲一区二区在线免费观看视频| 欧美日韩亚洲国产另类| 亚洲国产日韩在线一区模特| 国产精品99无码一区二区| 亚洲国产精品综合小说图片区| 久草视频精品在线| 天天色天天爱天天射综合| av资源在线免费观看| 国产精品传媒入口麻豆| 神马午夜精品91| 有码一区二区三区| 日韩欧美三级在线观看| 精品动漫一区二区| 久久久国产免费| 欧美理论电影在线| www.五月天激情| 日韩av最新在线| av大片在线看| 欧美日韩国产成人在线观看| 老牛影视精品| 国产精品久久网| 日韩区欧美区| 裸模一区二区三区免费| 成人av动漫在线观看| 欧美性受xxxx黑人猛交88| 激情久久一区| 欧美日韩视频免费在线观看| 91成人精品视频| 黄色大片在线免费看| 日韩制服丝袜先锋影音| 亚洲一区二区偷拍| av一区二区不卡| 自拍偷拍你懂的| 一区二区三区在线观看视频 | 亚洲激情不卡| 亚洲 中文字幕 日韩 无码| 国产自产2019最新不卡| 亚洲一区二区三区四区av| 欧美国产成人在线| 国产午夜精品一区二区理论影院| 欧美性猛片aaaaaaa做受| 午夜精品久久久久久久99老熟妇 | 亚洲特级毛片| 日本成人黄色网| 国产成人激情av| 精品一区二区6| 精品国产精品三级精品av网址| 这里只有精品6| 亚洲精品国产精品国自产在线 | 制服丝袜中文字幕第一页| 成人午夜又粗又硬又大| 老司机福利在线观看| 亚洲6080在线| 国产三级漂亮女教师| 亚洲摸下面视频| 美女网站视频在线| 国产日韩精品一区二区| 少妇久久久久| 又大又硬又爽免费视频| 精品一区二区三区在线观看| 最新中文字幕视频| 夜夜精品视频一区二区 | 色综合视频二区偷拍在线| 黄色在线一区| 国产精品探花在线播放| 国产日韩精品一区二区浪潮av| 亚欧洲精品在线视频| 91精品久久久久久久91蜜桃| 大片免费播放在线视频| 欧洲精品在线视频| 露出调教综合另类| 日韩黄色短视频| 国产成人一区二区精品非洲| 青青青手机在线视频| 欧美三级电影网站| 蜜桃视频在线播放| 69国产精品成人在线播放| 成人av影音| 800av在线免费观看| 欧美黄在线观看| 自拍偷拍一区二区三区四区| 久久九九影视网| 潘金莲一级淫片aaaaaa播放| 日韩成人av网| 日本在线影院| 黑人中文字幕一区二区三区| 激情成人亚洲| 少妇献身老头系列| 亚洲一区电影777| 免费激情视频网站| 国模视频一区二区| 大奶在线精品| 久久久亚洲精品无码| av不卡免费在线观看| 97免费在线观看视频| 日韩av影视综合网| 日韩大片免费观看| 欧美日韩在线一区二区三区| 免费一区视频| 精品无码国产污污污免费网站| 在线免费av一区| 91在线直播| 91免费精品视频| 欧美在线亚洲综合一区| 中文在线字幕观看| 亚洲成av人片一区二区三区| 天堂中文在线观看视频| 欧美一级淫片播放口| 国内亚洲精品| www.日本一区| 一区二区在线免费| 人妻va精品va欧美va| 奇米四色中文综合久久| 欧美精品一区二区三区精品| 欧美特级aaa| 亚洲美女区一区| 人妻一区二区三区| 日本91av在线播放| 欧美成人精品一区二区三区在线看| 一级黄色在线播放| 亚洲第一av色| 粉嫩一区二区三区国产精品| 国产综合福利在线| 激情成人综合| 69xxx免费| 日韩欧美国产小视频| 日本不良网站在线观看| 午夜精品电影在线观看| 国产精品1024| 中文字幕一区二区人妻电影| 中文字幕欧美国内| 超碰97久久国产精品牛牛| aⅴ在线免费观看| ...xxx性欧美| 四虎影视在线播放| 成人乱色短篇合集| 国产视频一区在线观看一区免费| 熟女少妇内射日韩亚洲| 日韩视频免费观看高清在线视频| 深夜成人在线| 亚洲美女自拍偷拍| 91女人视频在线观看| 国产精品久久久久久69| 66m—66摸成人免费视频| 先锋资源久久| 真实乱视频国产免费观看| 日韩一区二区三| 秋霞国产精品| 欧美久久久久久久久久久久久久|