BERT
Bidirectional understanding এর master।
Transformer দারুণ, কিন্তু একটা সমস্যা — train করতে massive labeled data দরকার। ২০১৮ — Google BERT publish করল একটা genius idea নিয়ে: massive unlabeled text এ pretrain করো 'মাস্কড word predict' task এ, তারপর small labeled data দিয়ে fine-tune করো। Result? প্রায় সব NLP benchmark এ state-of-the-art।
BERT (Bidirectional Encoder Representations from Transformers) একটি encoder-only transformer যা দুটো task এ pretrain করা হয়েছে: (1) Masked Language Modeling — random 15% token mask করে predict, (2) Next Sentence Prediction — দুটো sentence consecutive কিনা। 'Bidirectional' কারণ মাস্কড word predict এ left + right দুই context ই দেখে।
GPT (decoder) শুধু left-to-right পড়ে — 'The cat sat on the ___' এ পরের word predict। BERT bidirectional — 'The cat ___ on the mat' এর mask দুই দিক থেকে context দেখে fill করে। এই bidirectional context BERT কে সব classification, NER, QA task এ powerful বানায়। Fine-tuning এ pretrained model এর উপর small head লাগিয়ে দিলেই হয়।
from transformers import AutoTokenizer, AutoModel
import torch
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased")
sentences = [
"NLP is transforming the world of AI.",
"I love learning about transformers.",
]
inputs = tokenizer(sentences, padding=True, truncation=True, return_tensors="pt")
print("Input ids shape:", inputs["input_ids"].shape)
with torch.no_grad():
outputs = model(**inputs)
last_hidden = outputs.last_hidden_state
cls_embeddings = last_hidden[:, 0, :]
print("Last hidden:", last_hidden.shape)
print("CLS embedding (sentence rep):", cls_embeddings.shape)AutoTokenizer text কে BERT এর WordPiece token এ ভাঙে, padding/truncation handle করে। AutoModel pretrained BERT load করে। outputs.last_hidden_state প্রতিটা token এর contextual embedding (batch, seq_len, 768)। [CLS] token (index 0) এর vector পুরো sentence এর representation — classification এ ব্যবহার হয়।
একটা small labeled dataset (যেমন 500টা review positive/negative) নিয়ে bert-base-uncased কে HuggingFace Trainer দিয়ে fine-tune করুন। Test set এ accuracy এবং confusion matrix report করুন।