自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

掌握BERT:自然語言處理 (NLP) 從初級到高級的綜合指南

發(fā)布于 2024-11-11 17:10
瀏覽
0收藏

1. 什么是BERT?

在不斷發(fā)展的自然語言處理 (NLP) 領(lǐng)域,一項(xiàng)名為 BERT 的突破性創(chuàng)新已經(jīng)出現(xiàn),改變了游戲規(guī)則。BERT 代表 Bidirectional Encoder Representations from Transformers,不僅僅是機(jī)器學(xué)習(xí)術(shù)語海洋中的另一個(gè)首字母縮略詞。它代表了機(jī)器理解語言方式的轉(zhuǎn)變,使它們能夠理解使人類交流豐富而有意義的錯(cuò)綜復(fù)雜的細(xì)微差別和上下文依賴關(guān)系。

2. 為什么BERT很重要?

想象一句話:“她拉小提琴的時(shí)候很漂亮。傳統(tǒng)的語言模型會(huì)從左到右處理這個(gè)句子,有可能忽略了小提琴(“violin”)本身會(huì)影響整個(gè)句子的解釋這一關(guān)鍵事實(shí)。然而BERT的機(jī)制能夠理解關(guān)鍵信息,單詞的上下文關(guān)系在派生意義方面起著關(guān)鍵作用。它抓住了雙向性的本質(zhì),使其能夠考慮圍繞每個(gè)單詞的完整上下文,從而徹底改變了語言理解的準(zhǔn)確性和深度。

3. BERT是如何工作的?

BERT的核心是由一個(gè)強(qiáng)大的神經(jīng)網(wǎng)絡(luò)架構(gòu)(稱為 Transformers)提供支持的。這種架構(gòu)采用了一種稱為自我注意的機(jī)制,允許 BERT 根據(jù)其上下文(包括前后)來權(quán)衡每個(gè)單詞的重要性。這種上下文感知使BERT能夠生成上下文的單詞嵌入,這些單詞嵌入是考慮單詞在句子中的含義的表示。這類似于BERT閱讀和重新閱讀句子以深入了解每個(gè)單詞的作用。

考慮這句話:“The 'lead' singer will 'lead' the band.”傳統(tǒng)模型可能會(huì)為“l(fā)ead”這個(gè)詞的歧義而苦苦掙扎。然而,BERT 毫不費(fèi)力地區(qū)分第一個(gè) “l(fā)ead” 是名詞,而第二個(gè) “l(fā)ead” 是動(dòng)詞,展示了它在消除語言結(jié)構(gòu)歧義方面的實(shí)力。

4. BERT預(yù)處理邏輯

掌握BERT:自然語言處理 (NLP) 從初級到高級的綜合指南-AI.x社區(qū)

Tokenization:將文本分成有意義的塊

想象一下,您正在教 BERT 閱讀一本書。你不會(huì)一次交出整本書;你會(huì)把它分成句子和段落。同樣,BERT 需要將文本分解為更小的單元,稱為標(biāo)記。但這里有一個(gè)轉(zhuǎn)折點(diǎn):BERT 使用 WordPiece Token。它將單詞拆分成更小的部分,例如將 “running” 轉(zhuǎn)換為 “run” 和 “ning”。這有助于處理棘手的單詞,并確保 BERT 不會(huì)在不熟悉的單詞中迷失方向。

原文:“ChatGPT is fascinating”。
WordPiece Token: [“chat”, “##G”, “##PT”, “is”, “fascinating”, “.”]

Input Formatting:為 BERT 提供上下文

BERT 能理解上下文。我們以 BERT 可以理解的方式處理tokens。我們在句子之間添加特殊標(biāo)記,如 [CLS](代表分類),[SEP](代表分離)。我們還分配了segment embeddings來告訴 BERT 哪些token屬于哪個(gè)句子。

原文: “ChatGPT is fascinating.” 
Formatted Tokens: [“[CLS]”, “Chat”, “##G”, “##PT”, “is”, “fascinating”, “.”, “[SEP]”]

Masked Language Model (MLM) 目標(biāo):BERT 上下文理解

BERT 的秘訣在于它能夠理解雙向上下文。在訓(xùn)練過程中,一些單詞在句子中被掩蓋(替換為 [MASK]),BERT 學(xué)會(huì)從上下文中預(yù)測這些單詞。這有助于 BERT 掌握單詞在之前和之后如何相互關(guān)聯(lián)。

原文:  “The cat is on the mat.” 
Masked Sentence: “The [MASK] is on the mat.”

使用 Hugging Face Transformer 進(jìn)行分詞

from transformers import BertTokenizer  
  
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')  
text = "BERT preprocessing is essential."  
tokens = tokenizer.tokenize(text)  
  
print(tokens)

5. 針對特定任務(wù)微調(diào) BERT

掌握BERT:自然語言處理 (NLP) 從初級到高級的綜合指南-AI.x社區(qū)

BERT 有不同的風(fēng)格,如 BERT-base、BERT-large 等。這些變體具有不同的模型大小和復(fù)雜性。選擇取決于任務(wù)要求和您擁有的資源。較大的模型可能性能更好,但它們也需要更多的計(jì)算能力。我們微調(diào) BERT 的任務(wù)稱為 “下游任務(wù)”。包括情緒分析、命名實(shí)體識別等。微調(diào)涉及使用特定于任務(wù)的數(shù)據(jù)更新 BERT 的權(quán)重。有助于 BERT 專注于這些任務(wù),且好處就是不需要從頭開始。

例如簡單使用 BERT 進(jìn)行文本分類

from transformers import BertForSequenceClassification, BertTokenizer  
import torch  
  
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')  
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')  
  
text = "This movie was amazing!"  
inputs = tokenizer(text, return_tensors='pt')  
outputs = model(**inputs)  
predictions = torch.argmax(outputs.logits, dim=1)  
print(predictions)

6. BERT的注意力機(jī)制

掌握BERT:自然語言處理 (NLP) 從初級到高級的綜合指南-AI.x社區(qū)

Self-Attention: BERT對關(guān)鍵信息的把控

想象一下,怎么快速閱讀一本書并高亮最重要的那些單詞。對于 BERT,這種處理方式叫做自注意力機(jī)制,它會(huì)查看句子中的每個(gè)單詞,并根據(jù)它們的重要性決定應(yīng)該對其他單詞給予多少關(guān)注。這樣,BERT 可以專注于相關(guān)單詞,即使它們在句子中相距很遠(yuǎn)。

Multi-Head Attention: 多個(gè)注意力協(xié)同

BERT 不僅僅依賴于一個(gè)觀點(diǎn),它使用多個(gè)“頭”的注意力。將這些 heads 想象成不同的專家,專注于句子的各個(gè)方面。這種多頭方法幫助 BERT 捕捉單詞之間的不同關(guān)系,使其理解更豐富、更準(zhǔn)確。

可視化注意力權(quán)重

import torch  
from transformers import BertModel, BertTokenizer  
  
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')  
model = BertModel.from_pretrained('bert-base-uncased')  
  
text = "BERT's attention mechanism is fascinating."  
inputs = tokenizer(text, return_tensors='pt', padding=True, truncatinotallow=True)  
outputs = model(**inputs, output_attentinotallow=True)  
  
attention_weights = outputs.attentions  
print(attention_weights)

7. BERT的訓(xùn)練過程

掌握BERT:自然語言處理 (NLP) 從初級到高級的綜合指南-AI.x社區(qū)

BERT從預(yù)訓(xùn)練開始,從大量的文本數(shù)據(jù)中學(xué)習(xí)。想象一下,向 BERT 展示數(shù)百萬個(gè)句子,并讓它預(yù)測缺失的單詞。這個(gè)練習(xí)有助于 BERT 建立對語言模式和關(guān)系的堅(jiān)實(shí)理解。在預(yù)訓(xùn)練期間,BERT 會(huì)得到一些單詞被掩蓋(隱藏)的句子。然后,它嘗試根據(jù)周圍的上下文預(yù)測這些掩碼詞。這就像填空游戲,通過猜出缺失的單詞,BERT 了解單詞如何相互關(guān)聯(lián),從而獲得其上下文的Embedding關(guān)系。BERT不僅能理解單詞;它抓住了句子的生成方向。在 NSP 目標(biāo)中,BERT經(jīng)過訓(xùn)練來預(yù)測文本對中的一個(gè)句子是否緊跟下一個(gè)句子。這有助于BERT理解句子之間的邏輯聯(lián)系,使其成為理解段落和較長文本的大師。

8. BERT Embeddings

掌握BERT:自然語言處理 (NLP) 從初級到高級的綜合指南-AI.x社區(qū)

BERT 的強(qiáng)大之處在于它能夠以一種在特定上下文中捕獲其含義的方式表示單詞。

Word Embeddings vs. Contextual Word Embeddings

Word Embeddings比較常見,但BERT通過上下文理解更進(jìn)一步生成Contextual Word Embeddings。BERT不是每個(gè)單詞只有一個(gè)含義,而是根據(jù)句子中的上下文為同一單詞創(chuàng)建不同的embedding。這樣,每個(gè)單詞的表示都更加微妙,并受到周圍內(nèi)容的影響。

WordPiece Tokenization:更好處理復(fù)雜詞匯

BERT 的詞匯就像一個(gè)由稱為子詞的小塊組成的拼圖。它使用 WordPiece分詞將單詞分解為這些子詞。這對于處理長而復(fù)雜的單詞以及處理以前從未見過的單詞特別有用。

Positional Encodings: 引導(dǎo)句子結(jié)構(gòu)

由于 BERT 以雙向方式讀取單詞,因此它需要知道每個(gè)單詞在句子中的位置。位置編碼被添加到Embedding中,以使 BERT 具有這種空間感知能力。這樣,BERT 不僅知道單詞的含義,還知道它們在句子中的位置。

使用 Hugging Face Transformer 提取單詞嵌入

from transformers import BertTokenizer, BertModel  
import torch  
  
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')  
model = BertModel.from_pretrained('bert-base-uncased')  
  
text = "BERT embeddings are fascinating."  
inputs = tokenizer(text, return_tensors='pt', padding=True, truncatinotallow=True, add_special_tokens=True)  
outputs = model(**inputs)  
  
word_embeddings = outputs.last_hidden_state  
print(word_embeddings)


??https://medium.com/@shaikhrayyan123/a-comprehensive-guide-to-understanding-bert-from-beginners-to-advanced-2379699e2b51??

掌握BERT:自然語言處理 (NLP) 從初級到高級的綜合指南-AI.x社區(qū)

本文轉(zhuǎn)載自?? 沐白AI筆記??,作者: 楊沐白


標(biāo)簽
已于2024-11-11 17:50:09修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦