精品欧美一区二区三区在线观看 _久久久久国色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??



?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
標簽
收藏
回復
舉報
回復
相關推薦
亚洲激情一区二区| 欧美成年人在线观看| 777久久久精品一区二区三区 | 污污内射在线观看一区二区少妇| 牛牛精品在线| 久久综合久久综合九色| 国产精品亚洲产品| 日韩午夜精品电影| 日韩欧美视频网站| 日本天堂在线观看| 不卡区在线中文字幕| 亚洲视频一区二区在线| 日韩午夜小视频| wwwjizzjizzcom| 日本在线丨区| 国产麻豆精品久久一二三| 久久久久久久久久久av| 韩国三级hd中文字幕| 国产剧情一区二区在线观看| 图片区小说区区亚洲影院| 亚洲一区美女| 青青免费在线视频| 国产不卡视频一区| 国产综合久久久久| 在线免费观看av网址| 激情久久久久久| 正在播放亚洲1区| 精品国产av色一区二区深夜久久| 亚洲狼人综合| 欧美在线999| 欧美 日本 亚洲| 18视频在线观看| 国产精品色眯眯| 久久久水蜜桃| 欧美一级在线免费观看| 狠狠久久亚洲欧美| 国产精品第一视频| 日韩欧美成人一区二区三区 | 成人av影院在线| 成人在线视频网| 在线观看污污网站| 夜夜精品视频| 久久久久这里只有精品| 五月天激情丁香| 日韩一级毛片| 色综合亚洲精品激情狠狠| 亚洲做受高潮无遮挡| 黄色免费大全亚洲| 精品国产sm最大网站| 天天色天天干天天色| 91tv亚洲精品香蕉国产一区| 欧美日韩在线第一页| 国产精品999视频| missav|免费高清av在线看| 一区二区三区在线视频免费观看| 在线观看日本一区| 九义人在线观看完整免费版电视剧| 国产亚洲精品资源在线26u| 欧美精品欧美精品| 九色在线视频蝌蚪| 久久九九99视频| 日本10禁啪啪无遮挡免费一区二区| 欧美视频综合| 国产亚洲成av人在线观看导航| 欧美日韩高清免费| 国产色在线 com| 国产亚洲精品资源在线26u| 日本精品一区二区三区不卡无字幕| 飘雪影视在线观看免费观看| 久久先锋影音av鲁色资源网| 欧美日韩一区在线观看视频| 欧美精品久久久久久久久久丰满| 26uuu国产日韩综合| 欧美日韩亚洲一区二区三区在线观看 | 性xxxxfjsxxxxx欧美| 樱花草国产18久久久久| 欧美这里只有精品| 狼人综合视频| 色婷婷av一区| 色婷婷一区二区三区av免费看| av一区在线播放| 欧美日本一区二区三区四区| www.桃色.com| 国产精品毛片视频| 亚洲人成网站在线播| 久久久国产一级片| 亚洲精品国产首次亮相| 久久久久久久色| 黄色av网站免费观看| 久久99久国产精品黄毛片色诱| 成人免费淫片视频软件| 黄色av免费观看| 久久尤物电影视频在线观看| 一区二区三区四区免费视频| 欧美人体视频xxxxx| 日韩欧美一区视频| 99九九精品视频| 欧美国产不卡| 日韩中文字幕免费| 日韩男人的天堂| 蜜臀91精品一区二区三区| 147欧美人体大胆444| 亚洲 精品 综合 精品 自拍| 国产精品理论片| 性一交一乱一伧国产女士spa| 黑人巨大亚洲一区二区久 | xxx国产在线观看| 视频一区在线| 亚洲性av在线| 国产性70yerg老太| 日韩电影在线一区二区| 91久久精品www人人做人人爽| 青青青草原在线| 亚洲欧美另类久久久精品 | 捆绑调教一区二区三区| 国产精品久久久久久久久婷婷| 韩国福利在线| 亚洲成人免费av| 奇米影视四色在线| 西瓜成人精品人成网站| 美女av一区二区三区| 青娱乐在线免费视频| 成人久久久精品乱码一区二区三区| 图片区小说区区亚洲五月| 17videosex性欧美| 日韩西西人体444www| 山东少妇露脸刺激对白在线| 亚洲三级国产| 91精品国产综合久久久久久丝袜 | 91成品人影院| 久久亚洲欧美国产精品乐播| 国产精品日韩三级| 中文字幕日本一区| 最近更新的2019中文字幕| 欧美精品韩国精品| av成人动漫在线观看| 国产高清不卡无码视频| 91麻豆精品一二三区在线| 亚洲欧洲高清在线| 国产a∨精品一区二区三区仙踪林| 国产精品456露脸| 一道本在线观看视频| 国产精品成人国产| 最近2019免费中文字幕视频三 | 麻豆系列在线观看| 欧美日韩精品电影| 欧美极品jizzhd欧美18| 久久久天天操| 欧美亚州在线观看| 外国成人直播| 一区二区三区视频免费在线观看| av资源免费观看| 99久久久国产精品| 欧美久久久久久久久久久久久| 国产乱人伦精品一区| 欧美激情日韩图片| 亚洲精品国产av| 亚洲一区二区在线免费看| 蜜桃视频无码区在线观看| 欧美在线视屏| 99视频国产精品免费观看| 欧美性受ⅹ╳╳╳黑人a性爽| 日韩一区二区三区免费观看| 久久久久亚洲av片无码下载蜜桃| 国产成人自拍高清视频在线免费播放| 欧美少妇一区二区三区| 99精品在免费线中文字幕网站一区| 欧美精品在线视频观看| 亚洲国产剧情在线观看| 午夜天堂影视香蕉久久| 亚洲天堂网一区二区| 久久久一二三| 亚洲欧美在线网| av在线国产精品| 欧美激情视频在线观看| 人妻少妇一区二区三区| 欧美色另类天堂2015| 四季av中文字幕| 狠狠色丁香婷综合久久| 成品人视频ww入口| 中文有码一区| 国产一区视频在线| 麻豆av在线免费观看| 日韩精品中文字幕久久臀| 国产主播第一页| 综合色中文字幕| www.日本高清| 免费观看日韩电影| 无码 制服 丝袜 国产 另类| 蜜桃视频欧美| 亚洲一区亚洲二区| 在线观看涩涩| 久久精品最新地址| 少妇精品高潮欲妇又嫩中文字幕| 色久综合一二码| 婷婷在线精品视频| 久久久国产午夜精品| 波多野结衣免费观看| 中文国产一区| 中文字幕免费在线不卡| 国产欧美自拍一区| 国产精品久久久久久久久久久久久| 99热国产在线中文| 亚洲片av在线| 午夜精品久久久久久久第一页按摩| 欧美日韩亚洲激情| 永久免费看黄网站| 国产三级一区二区三区| 催眠调教后宫乱淫校园| 麻豆成人av在线| 国产欧美高清在线| 国产精品va| 亚洲一区三区在线观看| 图片婷婷一区| 国产精品swag| 超碰国产精品一区二页| 国产精品ⅴa在线观看h| 国产天堂在线播放视频| 日韩在线资源网| 你懂的免费在线观看| 精品欧美乱码久久久久久1区2区| 亚洲天堂777| 色综合久久综合网| 日韩视频免费观看高清| 亚洲女人的天堂| 国产精品久久久久久久av| 成人av电影在线| 亚洲性图第一页| 精品一区二区影视| 我要看一级黄色大片| 久久久久国产精品一区三寸| 久久av综合网| 综合激情一区| 宅男av一区二区三区| japanese国产精品| 欧美色欧美亚洲另类七区| 激情av综合| 国产精品区一区二区三含羞草| 91精品亚洲一区在线观看| 国产脚交av在线一区二区| 色戒汤唯在线| 91精品国产沙发| а√天堂中文在线资源8| 久久人91精品久久久久久不卡| 国产美女av在线| 久久视频精品在线| 成人片在线看| 久久综合伊人77777尤物| 米奇精品一区二区三区| 精品久久久91| 99福利在线| 欧美黄色小视频| 青草av在线| 国内精品小视频在线观看| 日本色护士高潮视频在线观看 | 神马影院一区二区三区| 久久99精品久久久久久园产越南| 欧美高清视频一区二区三区在线观看 | 欧美四级电影在线观看| 波多野结衣激情视频| 在线精品视频一区二区三四| 一区二区三区麻豆| 欧美日韩国产系列| 国产视频在线观看免费| 日韩一区二区三区精品视频| 免费观看国产精品| 亚洲国产欧美一区二区三区久久| 无套内谢的新婚少妇国语播放| 亚洲精品不卡在线| 国产高清美女一级毛片久久| 在线日韩日本国产亚洲| 快射av在线播放一区| 久久伊人色综合| sis001亚洲原创区| 国产99久久精品一区二区| 成人免费毛片嘿嘿连载视频…| 国产色视频一区| 91精品国产自产精品男人的天堂| 国产私拍一区| 精品国产乱码久久久| 一区二区在线观看网站| 午夜久久tv| 国产免费毛卡片| 青青草国产成人av片免费| www.51色.com| 91视频观看视频| 中文字幕在线观看二区| 亚洲一级二级三级在线免费观看| 亚洲高清毛片一区二区| 欧美人妇做爰xxxⅹ性高电影| 国内精品偷拍视频| 亚洲欧美中文字幕| 日本天码aⅴ片在线电影网站| 日本一区二区在线免费播放| 国产精选久久| 欧美尤物一区| 国产综合色产| 狠狠躁狠狠躁视频专区| 岛国精品在线观看| 日韩精品电影一区二区三区| 香蕉加勒比综合久久| 中文字幕在线播放日韩| 亚洲成人久久久| 在线视频婷婷| 91精品国产九九九久久久亚洲| 成人在线免费av| 精品国产乱码久久久久久郑州公司 | 亚洲综合网在线| 色婷婷综合久久久中文字幕| 精品国产99久久久久久宅男i| 亚洲男人第一av网站| 伊人手机在线| 国产免费一区二区三区在线能观看| 丁香综合av| 无码人妻精品一区二区蜜桃百度| 天堂影院一区二区| 手机免费看av片| 亚洲精品视频一区| 国产亚洲久一区二区| 亚洲精品97久久| 日本欧美电影在线观看| 国产精品无码专区在线观看| 亚洲国产欧美日韩在线观看第一区 | 91超碰caoporn97人人| 国产精品日本一区二区不卡视频| 欧美一区2区三区4区公司二百| 亚洲国产电影| 天堂网成人在线| 亚洲欧洲另类国产综合| 蜜臀99久久精品久久久久小说| 亚洲精品99999| 91超碰在线免费| 97人人模人人爽人人少妇| 久久婷婷蜜乳一本欲蜜臀| 熟妇人妻无乱码中文字幕真矢织江| 波多野结衣在线aⅴ中文字幕不卡| 黄色片在线观看网站| 欧美剧情片在线观看| 超碰国产在线| 国产精品香蕉国产| 精品国产一区二区三区香蕉沈先生 | 亚洲一区二区三区视频播放| 色综合天天爱| 一区二区xxx| 国产精品久久久久一区二区三区共| 成年人av网站| 亚洲人成网站免费播放| 日韩不卡免费高清视频| 六月婷婷久久| 久久大逼视频| 国产呦小j女精品视频| 欧美日韩国产综合新一区| 三区在线观看| 热99精品里视频精品| 蜜桃一区二区三区| 亚洲欧美国产日韩综合| 国产精品久线在线观看| 亚洲天堂狠狠干| 欧美成人午夜免费视在线看片| 看亚洲a级一级毛片| 白白操在线视频| 成人久久久精品乱码一区二区三区 | 婷婷激情小说网| 中文字幕综合网| 亚洲第一页视频| 97精品国产91久久久久久| 色88888久久久久久影院| 青青在线视频免费| 国产精品丝袜久久久久久app| 国产免费的av| 孩xxxx性bbbb欧美| 免费成人av| 8x8x成人免费视频| 亚洲最新在线观看| 人成在线免费视频| 国产欧美一区二区三区久久| 欧美激情 亚洲a∨综合| 国产十八熟妇av成人一区| 色综合天天综合在线视频| 在线观看麻豆| 鬼打鬼之黄金道士1992林正英| 国产视频久久| 日韩欧美在线视频播放| 日韩精品一区二区三区在线观看| 女海盗2成人h版中文字幕| 五月天丁香综合久久国产| 国产精品一区二区在线观看网站 | 欧美制服丝袜第一页| 精品孕妇一区二区三区| 国产视频在线观看一区| 美洲天堂一区二卡三卡四卡视频| 青青草免费av| 亚洲欧美成人一区二区在线电影| 亚洲狼人综合| 日本在线观看a| 有码一区二区三区| 超碰国产在线| 狠狠色噜噜狠狠色综合久 | 日韩欧美中文第一页| 男人的天堂在线视频免费观看|