最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

NLP | 一文搞懂如何微調(diào)抱臉(Hugging Face)模型

2023-11-16 14:14 作者:Momodel平臺(tái)  | 我要投稿

介紹

微調(diào)自然語(yǔ)言處理 (NLP) 模型需要更改模型的超參數(shù)和架構(gòu),并且通常會(huì)調(diào)整數(shù)據(jù)集以提高模型在給定任務(wù)上的性能。您可以通過(guò)調(diào)整學(xué)習(xí)率、模型中的層數(shù)、嵌入的大小以及各種其他參數(shù)來(lái)實(shí)現(xiàn)這一點(diǎn)。微調(diào)是一個(gè)耗時(shí)的過(guò)程,需要牢牢掌握模型和工作。本文將介紹如何微調(diào)抱臉模型。


學(xué)習(xí)目標(biāo)

● 了解 T5 模型的結(jié)構(gòu),包括變形金剛和自注意力。

● 了解如何優(yōu)化超參數(shù)以獲得更好的模型性能。

● 主文本數(shù)據(jù)準(zhǔn)備,包括標(biāo)記化和格式化。

● 知道如何使預(yù)訓(xùn)練模型適應(yīng)特定任務(wù)。

● 了解如何清理、拆分和創(chuàng)建用于訓(xùn)練的數(shù)據(jù)集。

● 獲得使用損失和準(zhǔn)確性等指標(biāo)進(jìn)行模型訓(xùn)練和評(píng)估的經(jīng)驗(yàn)。

● 探索微調(diào)模型在生成響應(yīng)或答案方面的實(shí)際應(yīng)用。


關(guān)于 Hugging Face Models

Hugging Face 是一家為自然語(yǔ)言處理 (NLP) 模型訓(xùn)練和部署提供平臺(tái)的公司。該平臺(tái)擁有適用于各種 NLP 任務(wù)的模型庫(kù),包括語(yǔ)言翻譯、文本生成和問(wèn)答。這些模型在廣泛的數(shù)據(jù)集上接受訓(xùn)練,旨在在廣泛的自然語(yǔ)言處理 (NLP) 活動(dòng)中表現(xiàn)出色。

Hugging Face 平臺(tái)還包括用于在特定數(shù)據(jù)集上微調(diào)預(yù)訓(xùn)練模型的工具,這有助于使算法適應(yīng)特定領(lǐng)域或語(yǔ)言。該平臺(tái)還具有用于訪問(wèn)和利用應(yīng)用程序中預(yù)訓(xùn)練模型的 API,以及用于構(gòu)建定制模型并將其交付到云端的工具。

將 Hugging Face 庫(kù)用于自然語(yǔ)言處理 (NLP) 任務(wù)具有多種優(yōu)勢(shì):

1. 多種型號(hào)可供選擇:?Hugging Face 庫(kù)提供了大量預(yù)訓(xùn)練的 NLP 模型,包括針對(duì)語(yǔ)言翻譯、問(wèn)答和文本分類等任務(wù)進(jìn)行訓(xùn)練的模型。這使得選擇滿足您確切要求的型號(hào)變得簡(jiǎn)單。

2. 跨平臺(tái)兼容性:Hugging Face 庫(kù)與 TensorFlow、PyTorch 和 Keras 等標(biāo)準(zhǔn)深度學(xué)習(xí)系統(tǒng)兼容,可以輕松集成到您現(xiàn)有的工作流程中。

3. 簡(jiǎn)單的微調(diào):?Hugging Face 庫(kù)包含用于微調(diào)數(shù)據(jù)集上預(yù)訓(xùn)練模型的工具,與從頭開始訓(xùn)練模型相比,可以節(jié)省時(shí)間和精力。

4. 活躍的社區(qū):?Hugging Face 圖書館擁有龐大而活躍的用戶社區(qū),這意味著您可以獲得幫助和支持,并為圖書館的發(fā)展做出貢獻(xiàn)。

5. 有據(jù)可查:Hugging Face 庫(kù)包含大量文檔,可以輕松上手并學(xué)習(xí)如何有效地使用它。


導(dǎo)入必要的庫(kù)

導(dǎo)入必要的庫(kù)類似于為特定的編程和數(shù)據(jù)分析活動(dòng)構(gòu)建工具包。這些庫(kù)通常是預(yù)先編寫的代碼集合,它們提供了廣泛的功能和工具,有助于加快開發(fā)速度。開發(fā)人員和數(shù)據(jù)科學(xué)家可以通過(guò)導(dǎo)入適當(dāng)?shù)膸?kù)來(lái)訪問(wèn)新功能、提高生產(chǎn)力并使用現(xiàn)有解決方案。

導(dǎo)入數(shù)據(jù)集

導(dǎo)入數(shù)據(jù)集是數(shù)據(jù)驅(qū)動(dòng)項(xiàng)目中至關(guān)重要的第一步。

問(wèn)題陳述

“創(chuàng)建一個(gè)能夠根據(jù)上下文和問(wèn)題生成響應(yīng)的模型?!?/p>

例如

Context = “例如,對(duì)類似病例的聚類組可以找到

相似的患者或用于

銀行領(lǐng)域的客戶細(xì)分。關(guān)聯(lián)技術(shù)用于查找經(jīng)常同時(shí)發(fā)生的物料或事件

,例如,特定客戶通常一起購(gòu)買的雜貨物料。異常檢測(cè)用于發(fā)現(xiàn)異常和異常

情況;例如,信用卡欺詐

檢測(cè)。

問(wèn)題 =“異常檢測(cè)的示例是什么?

答案 = ????????????????????????????????

初始化參數(shù)

●?輸入長(zhǎng)度:?在訓(xùn)練過(guò)程中,我們將輸入到模型中的單個(gè)示例中的輸入標(biāo)記(例如單詞或字符)的數(shù)量稱為輸入長(zhǎng)度。如果要訓(xùn)練語(yǔ)言模型來(lái)預(yù)測(cè)句子中的下一個(gè)單詞,則輸入長(zhǎng)度將是短語(yǔ)中的單詞數(shù)。

●?輸出長(zhǎng)度:?在訓(xùn)練期間,模型應(yīng)在單個(gè)樣本中生成特定數(shù)量的輸出標(biāo)記,例如單詞或字符。輸出長(zhǎng)度對(duì)應(yīng)于模型在句子中預(yù)測(cè)的單詞數(shù)。

●?訓(xùn)練批量大小:在訓(xùn)練期間,模型一次處理多個(gè)樣本。如果將訓(xùn)練批次大小設(shè)置為 32,則模型會(huì)在更新其模型權(quán)重之前同時(shí)處理 32 個(gè)實(shí)例,例如 32 個(gè)短語(yǔ)。

●?驗(yàn)證批量大小:?與訓(xùn)練批處理大小類似,此參數(shù)指示模型在驗(yàn)證階段處理的實(shí)例數(shù)。換句話說(shuō),它表示模型在保留數(shù)據(jù)集上進(jìn)行測(cè)試時(shí)處理的數(shù)據(jù)量。

●?時(shí)代:一個(gè) epoch 是整個(gè)訓(xùn)練數(shù)據(jù)集的單次行程。因此,如果訓(xùn)練數(shù)據(jù)集包含 1000 個(gè)實(shí)例,并且訓(xùn)練批次大小為 32,則一個(gè) epoch 將需要 32 個(gè)訓(xùn)練步驟。如果模型訓(xùn)練了 10 個(gè) epoch,它將處理 10000 個(gè)實(shí)例(10 * 1000 = 10000 個(gè))。


T5 Transformer

T5 模型基于 Transformer 架構(gòu),這是一種旨在有效處理順序輸入數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。它包括一個(gè)編碼器和一個(gè)解碼器,其中包括一系列相互連接的“層”。

編碼器和解碼器層包括各種“注意力”機(jī)制和“前饋”網(wǎng)絡(luò)。注意力機(jī)制使模型能夠在其他時(shí)間關(guān)注輸入序列的不同部分。同時(shí),前饋網(wǎng)絡(luò)使用一組權(quán)重和偏差來(lái)改變輸入數(shù)據(jù)。

T5 模型還采用了“自注意力”,它允許輸入序列中的每個(gè)元素注意其他每個(gè)元素。這允許模型識(shí)別輸入數(shù)據(jù)中單詞和短語(yǔ)之間的聯(lián)系,這對(duì)于許多 NLP 應(yīng)用程序至關(guān)重要。

除了編碼器和解碼器之外,T5 模型還包含一個(gè)“語(yǔ)言模型頭”,它根據(jù)前一個(gè)單詞預(yù)測(cè)序列中的下一個(gè)單詞。這對(duì)于翻譯和文本制作工作至關(guān)重要,在這些工作中,模型必須提供有凝聚力和自然的輸出。

除了編碼器和解碼器之外,T5 模型還包含一個(gè)“語(yǔ)言模型頭”,它根據(jù)前一個(gè)單詞預(yù)測(cè)序列中的下一個(gè)單詞。這對(duì)于翻譯和文本制作工作至關(guān)重要,在這些工作中,模型必須提供有凝聚力和自然的輸出。

T5 模型代表了一個(gè)大型而復(fù)雜的神經(jīng)網(wǎng)絡(luò),旨在高效、準(zhǔn)確地處理順序輸入。它在各種文本數(shù)據(jù)集上進(jìn)行了廣泛的訓(xùn)練,可以熟練地執(zhí)行廣泛的自然語(yǔ)言處理任務(wù)。

T5Tokenizer

T5Tokenizer 用于將文本轉(zhuǎn)換為標(biāo)記列表,每個(gè)標(biāo)記代表一個(gè)單詞或標(biāo)點(diǎn)符號(hào)。分詞器還會(huì)在輸入文本中插入唯一標(biāo)記,以表示文本的開始和結(jié)束,并區(qū)分各種短語(yǔ)。

T5Tokenizer 結(jié)合了字符級(jí)和單詞級(jí)分詞化,以及與 SentencePiece 分詞器相當(dāng)?shù)淖幼旨?jí)分詞化策略。它根據(jù)訓(xùn)練數(shù)據(jù)中每個(gè)字符或字符序列的頻率對(duì)輸入文本進(jìn)行子字處理。這有助于分詞器處理未出現(xiàn)在訓(xùn)練數(shù)據(jù)中但出現(xiàn)在測(cè)試數(shù)據(jù)中的詞匯外 (OOV) 術(shù)語(yǔ)。

T5Tokenizer 還會(huì)在文本中插入唯一標(biāo)記,以表示句子的開頭和結(jié)尾并劃分它們。例如,它添加標(biāo)記 s > 和 / s > 表示短語(yǔ)的開頭和結(jié)尾,而填充 > 表示填充。

數(shù)據(jù)集準(zhǔn)備

在處理 PyTorch 時(shí),通常使用數(shù)據(jù)集類準(zhǔn)備數(shù)據(jù)以用于模型。數(shù)據(jù)集類負(fù)責(zé)從光盤加載數(shù)據(jù)并執(zhí)行所需的準(zhǔn)備過(guò)程,例如標(biāo)記化和數(shù)值化。該類還應(yīng)實(shí)現(xiàn) getitem 函數(shù),該函數(shù)用于按索引從數(shù)據(jù)集中獲取單個(gè)項(xiàng)目。 init 方法使用文本列表、標(biāo)簽列表和分詞器填充數(shù)據(jù)集。len 函數(shù)返回?cái)?shù)據(jù)集中的樣本數(shù)。get item 函數(shù)按索引從數(shù)據(jù)集中返回單個(gè)項(xiàng)目。它接受索引 idx 并輸出標(biāo)記化的輸入和標(biāo)簽。 通常還包括各種預(yù)處理步驟,例如填充和截?cái)鄻?biāo)記化輸入。您也可以將標(biāo)簽轉(zhuǎn)換為張量。


數(shù)據(jù)加載器

DataLoader 類以并行和批處理方式加載數(shù)據(jù),從而可以處理大型數(shù)據(jù)集,否則這些數(shù)據(jù)集將過(guò)于龐大而無(wú)法存儲(chǔ)在內(nèi)存中。將 DataLoader 類與包含要加載的數(shù)據(jù)的數(shù)據(jù)集類組合在一起。

Dataloader 負(fù)責(zé)遍歷數(shù)據(jù)集,并在訓(xùn)練 transformer 模型時(shí)將一批數(shù)據(jù)返回給模型進(jìn)行訓(xùn)練或評(píng)估。DataLoader 類提供了各種參數(shù)來(lái)控制數(shù)據(jù)的加載和預(yù)處理,包括批處理大小、工作線程計(jì)數(shù)以及是否在每個(gè)紀(jì)元之前對(duì)數(shù)據(jù)進(jìn)行隨機(jī)排序。


模型構(gòu)建

在 PyTorch 中創(chuàng)建轉(zhuǎn)換器模型時(shí),通常首先創(chuàng)建一個(gè)派生自 torch 的新類 -- nn.Module。此類描述模型的體系結(jié)構(gòu),包括層和轉(zhuǎn)發(fā)函數(shù)。類的 init 函數(shù)定義模型的體系結(jié)構(gòu),通常通過(guò)實(shí)例化模型的不同級(jí)別并將它們分配為類屬性。

正向方法負(fù)責(zé)在模型中向前傳遞數(shù)據(jù)。此方法接受輸入數(shù)據(jù)并應(yīng)用模型的層來(lái)創(chuàng)建輸出。forward 方法應(yīng)實(shí)現(xiàn)模型的邏輯,例如通過(guò)一系列層傳遞輸入并返回結(jié)果。

該類的 init 函數(shù)創(chuàng)建一個(gè)嵌入層、一個(gè)轉(zhuǎn)換器層和一個(gè)全連接層,并將它們指定為類屬性。forward 方法接受傳入的數(shù)據(jù) x,通過(guò)給定的階段對(duì)其進(jìn)行處理,并返回結(jié)果。訓(xùn)練 transformer 模型時(shí),訓(xùn)練過(guò)程通常包括兩個(gè)階段:訓(xùn)練和驗(yàn)證。

training_step 方法指定了執(zhí)行單個(gè)訓(xùn)練步驟的基本原理,通常包括:

● 前向傳遞模型

● 計(jì)算損失

● 計(jì)算梯度

● 更新模型的參數(shù)

val_step 方法與 training_step 方法一樣,用于評(píng)估驗(yàn)證集上的模型。它通常包括:

● 前向傳遞模型

● 計(jì)算評(píng)估指標(biāo)

模型訓(xùn)練

在訓(xùn)練轉(zhuǎn)換器模型時(shí),通常會(huì)批量迭代數(shù)據(jù)集,通過(guò)模型發(fā)送輸入,并根據(jù)計(jì)算出的梯度和一組優(yōu)化標(biāo)準(zhǔn)更改模型的參數(shù)。

模型預(yù)測(cè)

要使用新輸入對(duì) T5 等微調(diào)的 NLP 模型進(jìn)行預(yù)測(cè),您可以按照以下步驟操作:

預(yù)處理新輸入:對(duì)新輸入文本進(jìn)行標(biāo)記化和預(yù)處理,以匹配應(yīng)用于訓(xùn)練數(shù)據(jù)的預(yù)處理。確保它采用模型預(yù)期的正確格式。

使用微調(diào)模型進(jìn)行推理: 加載您之前從檢查點(diǎn)訓(xùn)練或加載的微調(diào) T5 模型。

生成預(yù)測(cè): 將預(yù)處理的新輸入傳遞給模型進(jìn)行預(yù)測(cè)。對(duì)于 T5,可以使用 generate 方法生成響應(yīng)。

預(yù)測(cè)

讓我們使用帶有新輸入的微調(diào) T5 模型生成預(yù)測(cè):

*context = “對(duì)相似病例的分組進(jìn)行聚類,例如,\可以找到相似的患者,或用于 *

*banking 字段中的客戶細(xì)分。使用關(guān)聯(lián)技術(shù)查找*

經(jīng)常同時(shí)發(fā)生的項(xiàng)目或事件,例如,通常由特定客戶一起購(gòu)買的

雜貨項(xiàng)目。使用異常檢測(cè)來(lái)發(fā)現(xiàn)異常

和異常情況,例如信用卡欺詐檢測(cè)。

que = “異常檢測(cè)的例子是什么?”

print(generate_question(上下文, que))

結(jié)論

在本文中,我們開始了對(duì)自然語(yǔ)言處理 (NLP) 模型(特別是 T5 模型)進(jìn)行微調(diào)的旅程,以完成問(wèn)答任務(wù)。在整個(gè)過(guò)程中,我們深入研究了NLP模型開發(fā)和部署的各個(gè)方面。

關(guān)鍵要點(diǎn):

● 探索了支撐其功能的編碼器-解碼器結(jié)構(gòu)和自注意力機(jī)制。

● 超參數(shù)調(diào)優(yōu)的藝術(shù)是優(yōu)化模型性能的一項(xiàng)基本技能。

● 通過(guò)對(duì)學(xué)習(xí)率、批量大小和模型大小進(jìn)行試驗(yàn),我們可以有效地對(duì)模型進(jìn)行微調(diào)。

● 精通標(biāo)記化、填充以及將原始文本數(shù)據(jù)轉(zhuǎn)換為適合模型輸入的格式。

● 深入研究微調(diào),包括加載預(yù)先訓(xùn)練的權(quán)重、修改模型層以及使其適應(yīng)特定任務(wù)。

● 學(xué)習(xí)了如何清理和構(gòu)建數(shù)據(jù),將其拆分為訓(xùn)練集和驗(yàn)證集。

● 演示了它如何根據(jù)輸入上下文和問(wèn)題生成響應(yīng)或答案,展示了其在現(xiàn)實(shí)世界中的效用。


常見問(wèn)題解答

問(wèn)題1. 什么是自然語(yǔ)言處理 (NLP) 中的微調(diào)?

答:NLP 中的微調(diào)涉及修改預(yù)訓(xùn)練模型的超參數(shù)和架構(gòu),以優(yōu)化其針對(duì)特定任務(wù)或數(shù)據(jù)集的性能。

問(wèn)題2. T5 等 NLP 模型中使用的 Transformer 架構(gòu)是什么?

答:Transformer 架構(gòu)是一種神經(jīng)網(wǎng)絡(luò)架構(gòu)。它擅長(zhǎng)處理順序數(shù)據(jù),是 T5 等模型的基礎(chǔ)。它使用自注意力機(jī)制來(lái)理解上下文。

問(wèn)題3. T5 等模型中的編碼器-解碼器結(jié)構(gòu)的目的是什么?

答:在 NLP 中的序列到序列任務(wù)中,我們使用編碼器-解碼器結(jié)構(gòu)。編碼器處理輸入數(shù)據(jù),解碼器生成輸出數(shù)據(jù)。

問(wèn)題4. 是否有可能在實(shí)際應(yīng)用中利用 T5 等微調(diào)的 NLP 模型?

答:是的,您可以將微調(diào)模型應(yīng)用于各種實(shí)際的 NLP 任務(wù),包括文本生成、翻譯和問(wèn)答。

問(wèn)題5. 如何開始微調(diào) T5 等 NLP 模型?

答: 首先,您可以探索 Hugging Face 等庫(kù)。這些庫(kù)提供預(yù)先訓(xùn)練的模型和工具,用于微調(diào)數(shù)據(jù)集。學(xué)習(xí) NLP 基礎(chǔ)知識(shí)和深度學(xué)習(xí)概念也至關(guān)重要。


原文地址:https://www.analyticsvidhya.com/blog/2023/10/hugging-face-fine-tuning-tutorial/



非常感謝大家的閱讀,小Mo在這里祝你在末來(lái)的 Python 學(xué)習(xí)職業(yè)生涯中一切順利!

后續(xù)小Mo會(huì)不定期更新書籍、視頻等學(xué)習(xí)資源,以上這些書籍資料也可通過(guò)關(guān)注微信公眾號(hào)免費(fèi)獲取哦!

歡迎關(guān)注我們的微信公眾號(hào):MomodelAl

同時(shí),歡迎使用「Mo AI編程」微信小程序

以及登錄官網(wǎng),了解更多信息:Mo 人工智能教育實(shí)訓(xùn)平臺(tái)

Mo,發(fā)現(xiàn)意外,創(chuàng)造可能

注:部分資源來(lái)源于互聯(lián)網(wǎng),若有侵權(quán),請(qǐng)直接聯(lián)系作者刪除。


NLP | 一文搞懂如何微調(diào)抱臉(Hugging Face)模型的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
高陵县| 伊宁市| 双桥区| 乌兰察布市| 靖州| 遂川县| 大足县| 盐津县| 屏边| 拜城县| 咸阳市| 城固县| 龙陵县| 东丰县| 神农架林区| 贵州省| 丽水市| 门源| 峡江县| 香港| 清河县| 合作市| 宾川县| 神农架林区| 涡阳县| 临夏市| 张家口市| 遵义市| 叶城县| 绥化市| 含山县| 抚宁县| 南皮县| 西华县| 清涧县| 青阳县| 阳曲县| 吉林省| 乌拉特后旗| 梓潼县| 视频|