Mộc Viên's Blog Mộc Viên's Blog
Kaggle là gì làm sao triển khai code và huấn luyện trên máy chủ của Kaggle

Kaggle là gì làm sao triển khai code và huấn luyện trên máy chủ của Kaggle

Ngày đăng:

Kaggle là gì làm sao triển khai code và huấn luyện trên máy chủ của Kaggle

Kaggle là gì?

Kaggle là một nền tảng dành cho khoa học dữ liệu và học máy, nơi các nhà nghiên cứu và kỹ sư có thể:

  • Tìm kiếm dữ liệu: Kaggle cung cấp nhiều tập dữ liệu miễn phí.
  • Chạy mã trực tiếp trên cloud: Sử dụng Kaggle Notebooks (tương tự Jupyter Notebook).
  • Huấn luyện mô hình trên GPU/TPU miễn phí: Hỗ trợ PyTorch, TensorFlow, scikit-learn, v.v.
  • Tham gia cuộc thi AI: Nhiều công ty tổ chức thi trên Kaggle để tìm giải pháp tốt nhất.

Cách triển khai code và huấn luyện trên Kaggle

1. Đăng ký và truy cập Kaggle

  1. Đăng ký tài khoản tại https://www.kaggle.com/.
  2. Vào "Code" → "New Notebook" để mở một notebook mới.

2. Cài đặt môi trường và sử dụng GPU

  • Kaggle hỗ trợ Python và đã cài đặt sẵn các thư viện phổ biến.
  • Có thể sử dụng GPU (NVIDIA Tesla P100) hoặc TPU để tăng tốc huấn luyện.

🔹 Cách bật GPU/TPU:

  1. Click vào "Settings" (hình bánh răng trên notebook).
  2. Trong "Accelerator", chọn:
    • GPU nếu dùng PyTorch/TensorFlow.
    • TPU nếu chỉ dùng TensorFlow.

3. Tải dữ liệu trên Kaggle

  • Nếu sử dụng dataset trên Kaggle, vào phần "Datasets" và bấm "Add Dataset".
  • Nếu tải bằng code, sử dụng API của Kaggle:
!mkdir ~/.kaggle
!echo '{"username":"YOUR_USERNAME","key":"YOUR_API_KEY"}' > ~/.kaggle/kaggle.json
!chmod 600 ~/.kaggle/kaggle.json

# Tải dataset
!kaggle datasets download -d dataset-name
  • Hoặc tải thủ công từ giao diện Kaggle.

4. Viết code và huấn luyện mô hình

Ví dụ huấn luyện mô hình trên PyTorch:

import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms

# Kiểm tra GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")

# Load dữ liệu MNIST
transform = transforms.Compose([transforms.ToTensor()])
train_dataset = datasets.MNIST(root="./data", train=True, transform=transform, download=True)
train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)

# Mô hình đơn giản
class SimpleNN(nn.Module):
    def __init__(self):
        super(SimpleNN, self).__init__()
        self.fc1 = nn.Linear(28*28, 128)
        self.relu = nn.ReLU()
        self.fc2 = nn.Linear(128, 10)

    def forward(self, x):
        x = x.view(-1, 28*28)
        x = self.fc1(x)
        x = self.relu(x)
        x = self.fc2(x)
        return x

# Khởi tạo mô hình
model = SimpleNN().to(device)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

# Huấn luyện mô hình
epochs = 3
for epoch in range(epochs):
    for images, labels in train_loader:
        images, labels = images.to(device), labels.to(device)

        optimizer.zero_grad()
        outputs = model(images)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

    print(f"Epoch [{epoch+1}/{epochs}], Loss: {loss.item():.4f}")

# Lưu mô hình
torch.save(model.state_dict(), "model.pth")
  • Dùng GPU: Code tự động chạy trên GPU nếu khả dụng (device="cuda").
  • Lưu mô hình: Sau khi huấn luyện, có thể tải xuống model.pth.

5. Xuất file kết quả hoặc tải mô hình

Sau khi huấn luyện xong, có thể tải mô hình hoặc dữ liệu về máy:

import shutil
shutil.move("model.pth", "/kaggle/working/model.pth")

Sau đó, vào "File Explorer" trên Kaggle Notebook để tải về.


6. Chạy script Python thay vì Notebook (tuỳ chọn)

Nếu muốn chạy code Python dưới dạng script thay vì Notebook:

!python train.py

Điều này hữu ích khi chạy các job lớn hoặc dùng Kaggle CLI để quản lý code.


Tổng kết

✔️ Kaggle cung cấp GPU/TPU miễn phí để huấn luyện mô hình AI.
✔️ Có thể chạy code trực tiếp trên Notebook hoặc sử dụng API của Kaggle.
✔️ Hỗ trợ nhiều thư viện phổ biến như PyTorch, TensorFlow.
✔️ Dễ dàng tải dữ liệu, lưu và xuất mô hình.


Gần đây