Start with a capstone project using Amazon product data from HuggingFace datasets.
from datasets import load_dataset
dataset = load_dataset("amazon_polarity", split="train[:1000]")
print(dataset[0])
from sklearn.feature_extraction.text import TfidfVectorizer
from xgboost import XGBClassifier
vectorizer = TfidfVectorizer(max_features=5000)
X_train = vectorizer.fit_transform(train_texts)
model = XGBClassifier()
model.fit(X_train, train_labels)
import torch
import torch.nn as nn
class SentimentClassifier(nn.Module):
def __init__(self, vocab_size, embed_dim):
super().__init__()
self.embedding = nn.Embedding(vocab_size, embed_dim)
self.fc = nn.Linear(embed_dim, 2)
def forward(self, x):
x = self.embedding(x).mean(dim=1)
return self.fc(x)
Supervised Fine-Tuning (SFT) adapts a pre-trained model to your specific task. Use LoRA for efficient fine-tuning.
from transformers import AutoModelForCausalLM, TrainingArguments
from trl import SFTTrainer
model = AutoModelForCausalLM.from_pretrained("microsoft/Phi-3-mini-4k-instruct")
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
args=TrainingArguments(output_dir="./phi3-finetuned", per_device_train_batch_size=4)
)
trainer.train()