- Colab là notebook Jupyter chạy trên máy ảo của Google, mở bằng trình duyệt, miễn phí có giới hạn, có thể dùng GPU khi còn tài nguyên.
- Theo trang hỏi đáp, giới hạn sử dụng thay đổi theo thời gian và không được công bố; phiên miễn phí chạy tối đa 12 giờ và bị ngắt khi để không.
- Thư viện cài thêm và tệp trên máy ảo không được giữ; notebook nên có ô cài đặt ở đầu, dữ liệu và tiến độ nên lưu ra Google Drive.
- Với việc dài, lưu tiến độ định kỳ và viết code chạy tiếp được từ chỗ dừng.
Bài này dựa trên trang hỏi đáp của Google Colab, notebook hướng dẫn đọc ghi dữ liệu ngoài, và trang các gói dịch vụ, đọc ngày 11/11/2026. Colab thay đổi chính sách theo thời gian, nên trước khi lên kế hoạch cho việc lớn, đọc lại trang hỏi đáp.
Colab cho bạn gì
Trang hỏi đáp mô tả Colab là dịch vụ notebook Jupyter được lưu trữ sẵn, không cần cài đặt, cho dùng miễn phí tài nguyên tính toán gồm cả GPU và TPU, đặc biệt hợp với học máy, khoa học dữ liệu và giáo dục. Notebook được lưu trong Google Drive hoặc mở từ GitHub, chia sẻ được như tài liệu Google Docs.
Với người học AI, lợi ích lớn nhất là không phải lo cấu hình máy. Máy cá nhân yếu, không có GPU, hoặc cài thư viện bị lỗi, vẫn chạy được ví dụ huấn luyện mạng nơ-ron nhỏ. Nhiều khóa học và kho mã nguồn mở có sẵn nút mở notebook trên Colab. Bài Python cho AI có các thư viện bạn sẽ dùng nhiều nhất trong notebook.
Giới hạn của bản miễn phí
Trang hỏi đáp nói rõ: để cung cấp GPU mạnh với giá thấp, Colab phải điều chỉnh giới hạn và phần cứng theo thời gian thực. Giới hạn sử dụng thay đổi và không được công bố; thời gian chờ khi để không, thời gian sống tối đa của máy ảo, loại GPU có sẵn cũng vậy. Colab ưu tiên người đang thật sự lập trình trong notebook.
Hai con số cụ thể có trong trang: notebook miễn phí chạy tối đa 12 giờ tùy tình trạng tài nguyên và mức sử dụng; gói Pro+ cho chạy liên tục tới 24 giờ nếu còn đủ đơn vị tính toán. Máy ảo để không sẽ bị ngắt và xóa sau một thời gian, nhưng trang không ghi thời gian chính xác.
Hệ quả thực tế: bạn không thể dựa vào việc hôm nay có GPU loại nào, hay chạy liên tục được bao lâu. Đừng lên kế hoạch huấn luyện một mạch nhiều giờ trên bản miễn phí mà không có cách chạy tiếp.
Tệp nào còn, tệp nào mất
Trang hỏi đáp nhắc rằng tệp riêng và thư viện bạn cài trên máy ảo không đi kèm notebook khi chia sẻ, và khuyên đặt các ô cài đặt, nạp dữ liệu ngay trong notebook. Khi máy ảo bị xóa, mọi thứ trên đó cũng mất. Vì vậy hãy coi máy ảo là chỗ làm việc tạm.
Ba thói quen giúp đỡ mất công. Đặt ô đầu tiên của notebook là ô cài thư viện, ghi rõ phiên bản. Để dữ liệu ở chỗ bền: Google Drive, kho GitHub, hoặc tải về bằng một lệnh ở đầu notebook. Lưu kết quả quan trọng (mô hình đã huấn luyện, bảng số đo) ra Drive ngay khi có. Notebook hướng dẫn của Colab về dữ liệu ngoài chỉ cách gắn Google Drive vào máy ảo để đọc ghi như thư mục thường.
Lưu tiến độ để chạy tiếp
Ý tưởng đơn giản: cứ sau vài vòng huấn luyện, ghi trạng thái (đang ở vòng mấy, trọng số mô hình, lịch sử số đo) ra một tệp trong Drive. Khi bắt đầu, chương trình đọc tệp đó; nếu có thì chạy tiếp từ vòng đã lưu, nếu không thì bắt đầu từ đầu.
Đoạn Python dưới đây minh họa bằng một vòng huấn luyện giả lập, không cần GPU. Hàm xem_moi_truong cho biết đang chạy trên Colab hay không, có công cụ GPU của NVIDIA không, ổ đĩa còn trống bao nhiêu. Hàm luu ghi trạng thái ra tệp tạm rồi mới đổi tên thành tệp chính, để nếu bị ngắt giữa lúc ghi thì tệp cũ vẫn nguyên vẹn. Hàm huan_luyen lưu tiến độ mỗi hai vòng và có tham số giả lập bị ngắt.
"""Chạy việc dài trên Colab mà không sợ mất: xem môi trường, lưu tiến độ định kỳ, chạy tiếp từ chỗ dừng.
Trên Colab, máy ảo có thể bị ngắt (giới hạn thời gian, để không quá lâu) và tệp trên máy ảo mất theo.
Nên lưu tiến độ vào Google Drive. Trên Colab, gắn Drive bằng:
from google.colab import drive; drive.mount('/content/drive')
rồi dùng thư mục '/content/drive/MyDrive/du_an'. Code dưới đây chạy được cả trên máy thường (dùng thư mục bất kỳ).
"""
import json
import os
import shutil
import sys
import tempfile
def xem_moi_truong():
tren_colab = "google.colab" in sys.modules
gpu = shutil.which("nvidia-smi") is not None
trong = shutil.disk_usage(tempfile.gettempdir()).free / 2**30
return {"tren_colab": tren_colab, "co_nvidia_smi": gpu, "o_dia_trong_gb": round(trong, 1)}
def luu(thu_muc, trang_thai):
os.makedirs(thu_muc, exist_ok=True)
tam = os.path.join(thu_muc, "tien_do.tmp")
with open(tam, "w", encoding="utf-8") as f:
json.dump(trang_thai, f)
os.replace(tam, os.path.join(thu_muc, "tien_do.json")) # ghi xong mới thay, không để tệp dở
def doc(thu_muc):
duong = os.path.join(thu_muc, "tien_do.json")
if not os.path.exists(duong):
return {"vong": 0, "lich_su_loss": []}
with open(duong, encoding="utf-8") as f:
return json.load(f)
def huan_luyen(thu_muc, so_vong=10, luu_moi=2, dung_o=None):
"""Giả lập huấn luyện: mỗi vòng loss giảm một chút. dung_o: giả lập máy bị ngắt sau vòng đó."""
tt = doc(thu_muc)
bat_dau = tt["vong"]
for v in range(bat_dau + 1, so_vong + 1):
tt["lich_su_loss"].append(round(1.0 / v, 3))
tt["vong"] = v
if v % luu_moi == 0 or v == so_vong:
luu(thu_muc, tt)
if dung_o == v:
return bat_dau, v, "bị ngắt"
return bat_dau, so_vong, "xong"
def chay_thu():
with tempfile.TemporaryDirectory() as td:
a = huan_luyen(td, dung_o=5)
b = huan_luyen(td)
cuoi = doc(td)
dong = [f"Lần chạy 1: bắt đầu sau vòng {a[0]}, tới vòng {a[1]} thì {a[2]}",
f"Lần chạy 2: đọc tiến độ, bắt đầu sau vòng {b[0]}, chạy tới vòng {b[1]}: {b[2]}",
f"Tiến độ cuối: {cuoi['vong']} vòng, {len(cuoi['lich_su_loss'])} giá trị loss, loss cuối {cuoi['lich_su_loss'][-1]}"]
print("\n".join(dong))
return dong
if __name__ == "__main__":
print(xem_moi_truong())
chay_thu()
Kết quả chạy thử: lần chạy đầu bị ngắt sau vòng 5; tiến độ đã lưu ở vòng 4, nên vòng 5 mất. Lần chạy thứ hai đọc tiến độ, bắt đầu sau vòng 4 và chạy hết 10 vòng. Tiến độ cuối có đủ 10 giá trị số đo. Cái giá của việc bị ngắt chỉ là một vòng, không phải cả buổi. Với mô hình thật trong PyTorch, phần trạng thái lưu thêm trọng số mô hình và trạng thái bộ tối ưu, nhưng cách làm y hệt.
Lưu thường xuyên hơn thì mất ít hơn khi bị ngắt, nhưng tốn thời gian ghi. Với mô hình nhỏ, lưu mỗi vòng là hợp lý; với mô hình lớn, lưu theo số phút thay vì số vòng.
Một notebook gọn gàng
Notebook dễ trở nên lộn xộn: các ô chạy không theo thứ tự, biến bị ghi đè, kết quả trên màn hình không còn khớp với code. Khi máy ảo bị ngắt và bạn chạy lại từ đầu, mọi thứ vỡ. Vài quy tắc giúp notebook luôn chạy lại được từ trên xuống dưới.
Chia notebook thành phần rõ ràng: cài đặt, nạp dữ liệu, định nghĩa hàm, huấn luyện, đánh giá. Mỗi phần có một tiêu đề ngắn. Trước khi chia sẻ hay nộp, dùng lệnh khởi động lại máy ảo và chạy tất cả, xem có ô nào lỗi không. Đưa các con số cấu hình như tốc độ học, số vòng, kích thước lô vào một ô ở đầu, đừng rải khắp nơi. Khi code của một phần đã ổn, chuyển nó thành tệp Python trong kho GitHub và để notebook chỉ gọi hàm; notebook vừa ngắn vừa dễ đọc, còn code chính được quản lý phiên bản đàng hoàng.
Dùng tài nguyên có trách nhiệm
Trang hỏi đáp khuyên: nếu không cần GPU, chọn máy ảo thường, vì chọn GPU mà không dùng vẫn chiếm tài nguyên. Trang cũng liệt kê các việc không được làm, như đào tiền mã hóa, chia sẻ tệp ngang hàng, dùng nhiều tài khoản để vượt giới hạn, tạo deepfake, bẻ mật khẩu. Vi phạm có thể bị hạn chế sử dụng.
Khi xong việc, ngắt kết nối máy ảo thay vì để tab mở. Bạn trả lại tài nguyên cho người khác, và bản thân cũng ít bị giới hạn hơn lần sau.
Khi nào cần hơn bản miễn phí
Theo trang hỏi đáp, các gói trả phí của Colab cho nhiều tài nguyên hơn, thời gian chạy dài hơn và GPU mạnh hơn, tính theo đơn vị tính toán; hết đơn vị thì quay về chính sách miễn phí. Muốn tài nguyên bảo đảm, không bị Colab giới hạn, trang gợi ý các dịch vụ đám mây trả phí hoặc kết nối Colab với máy của chính bạn.
Trước khi trả tiền, cân nhắc: phần lớn bài tập học AI chạy được trong vài chục phút trên GPU miễn phí, hoặc trên CPU nếu dùng dữ liệu nhỏ hơn. Mô hình ngôn ngữ nhỏ có thể chạy trên máy cá nhân, xem bài chạy AI trên máy cá nhân.
- Huấn luyện nhiều giờ trên bản miễn phí mà không lưu tiến độ.
- Lưu kết quả trên máy ảo rồi đóng tab.
- Chọn máy có GPU cho việc chỉ đọc dữ liệu, vẽ biểu đồ.
- Dán khóa API thẳng vào ô code của notebook rồi chia sẻ notebook.
- Mở notebook lạ từ mạng và chạy hết các ô mà không đọc.
Câu hỏi thường gặp
Colab có GPU nào?
Theo trang hỏi đáp, loại GPU thay đổi theo thời gian và không được công bố. Chạy lệnh xem GPU trong notebook để biết phiên hiện tại có gì.
Notebook Colab có giống Jupyter trên máy không?
Gần giống. Colab dựa trên Jupyter, thêm khả năng lưu vào Drive, chia sẻ và chạy trên máy ảo của Google.
Có dùng Colab cho đồ án được không?
Được cho phần thử nghiệm. Giữ mã nguồn chính trong kho GitHub và dữ liệu ở chỗ bền, để không phụ thuộc vào một phiên máy ảo.
Chạy notebook từ GitHub thế nào?
Colab mở được notebook từ GitHub. Với dự án đầy đủ hơn, xem bài chạy dự án AI từ GitHub.
Học tiếp
- Các thư viện dùng nhiều trong notebook: Python cho AI.
- Chạy mô hình trên máy của bạn: chạy AI trên máy cá nhân.
- Tải và chạy một dự án mã nguồn mở: chạy dự án AI từ GitHub.
Nếu bạn muốn học Python và AI bài bản cùng giảng viên, tham khảo khóa học AI của Big-O Coding.
Khóa AI – Introduction to Machine Learning: nền tảng Máy học từ thuật toán cơ bản đến Neural Networks và LLM, học bằng Python. Học thử buổi 1 miễn phí.


