TROISINH
FoundationsTraining at Scale

Transfer Learning — Đừng học từ đầu, hãy kế thừa

Tại sao training GPT-4 tốn 100 triệu USD nhưng bạn có thể xây chatbot y tế chỉ với 10.000 USD? Bí mật nằm ở Transfer Learning — nghệ thuật kế thừa trí tuệ thay vì tự tạo lại từ con số không.

Training GPT-4 reportedly cost Microsoft và OpenAI hơn 100 triệu USD. Llama 3 405B tiêu tốn hàng triệu GPU hours. Vậy tại sao một startup với ngân sách hạn chế vẫn có thể xây dựng chatbot y tế hay hệ thống phân loại văn bản pháp lý với chất lượng tương đương? Câu trả lời không nằm ở phần cứng rẻ hơn, mà ở Transfer Learning — nghệ thuật đứng trên vai người khổng lồ thay vì tự mọc xương từ bụi đất.

Vấn đề

Toán học của việc train từ đầu (training from scratch) là tàn nhẫn. Một model 70B tham số như Llama 3 cần khoảng 1.7 triệu GPU-hours cho pre-training — tương đương gần 10 triệu USD chỉ cho thuê cloud compute. Với hầu hết các bài toán thực tế — phân loại tài liệu pháp lý, phát hiện lỗi trên dây chuyền sản xuất, hay fine-tune bộ phân tích sentiment tiếng Việt — bạn không có hàng triệu examples. Có thể bạn chỉ có 10.000 mẫu được gán nhãn, hoặc 1.000, hoặc 50.

Train một model từ random initialization trên dữ liệu nhỏ như vậy giống như dùng búa tạ để điêu khắc tượng cẩm thạch: bạn sẽ overfit ngay lập tức, ghi nhớ training set thay vì học các pattern tổng quát, trong khi đốt cháy ngân sách đủ xây cả sản phẩm. Vấn đề cốt lõi là neural networks là những cỗ máy đói dữ liệu — chúng cần thấy kết cấu thống kê của thế giới (ngữ pháp, cạnh, màu sắc, vật lý) trước khi có thể chuyên môn hóa. Thu thập kiến thức rộng như vậy từ đầu cho mỗi task mới là không khả thi về mặt kinh tế và môi trường.

Ý tưởng cốt lõi

Transfer Learning là nhận ra rằng trí tuệ có tính module và phân cấp, không phải khối đồng nhất. Khi bạn nhìn một con mèo, bạn không học lại lông, mắt, râu là gì. Vỏ não thị giác của bạn đã hình thành những khái niệm đó từ thời thơ ấu; giờ bạn chỉ đơn giản kết hợp chúng để nhận ra giống mèo Ba Tư cụ thể này.

Các mạng sâu hiện đại học theo cách tương tự — nếu ta cho phép. Trong quá trình pre-training trên dữ liệu quy mô internet (hàng nghìn tỷ token hoặc hàng triệu ảnh), các lớp đầu của network khám phá ra các primitive phổ quát: đường nét, đường cong, texture, quy tắc cú pháp, liên kết từ. Các lớp sâu hơn lắp ráp chúng thành khái niệm: "mèo," "chó," "điều khoản pháp lý," "triệu chứng y khoa."

Insight ở đây: Bạn không cần học lại vũ trụ cho mỗi task mới.

Lấy một model đã biết thế giới trông như thế nào (ResNet train trên ImageNet, BERT trên Wikipedia, Llama trên nghìn tỷ token). Đóng băng "vỏ não thị giác" hoặc "trực giác ngôn ngữ" — những lớp đầu đó — và chỉ train lại các lớp quyết định cuối cùng trên task cụ thể của bạn. Giống như việc thuê một tiến sĩ về startup: họ đã dành 20 năm học cách suy nghĩ; bạn chỉ dạy họ logic kinh doanh của bạn trong ba tuần.

That's it. Transfer Learning không phải là thuật toán phức tạp — nó là sự chuyển dịch triết lý từ "xây dựng" sang "điều chỉnh." Model "pre-trained" là hàng hóa; "fine-tuning" là sản phẩm.

Tại sao nó hoạt động

Phép màu xảy ra trong loss landscape. Training từ đầu đưa bạn vào một sa mạc ngẫu nhiên — mọi hướng đều giống nhau, và gradient descent phải lang thang hàng ngày để tìm thung lũng nào đó. Một model pre-trained thả bạn xuống bờ một thung lũng màu mỡ, đã được hiệu chỉnh theo cấu trúc thống kê của thực tại.

Về mặt toán học, các lớp đầu học các đặc trưng tần số thấp, tổng quát (như các hàm Fourier cơ bản cho ảnh hoặc thống kê n-gram cho văn bản). Những thứ này có tính transferability cao — cạnh là cạnh dù bạn đang chẩn đoán X-quang hay phân loại ảnh Instagram. Các lớp sau học các kết hợp tần số cao, phụ thuộc vào task.

Khi ta fine-tune với learning rate nhỏ, ta đang nói: "Tin tưởng nền tảng, điều chỉnh phần diễn giải." Các gradients chủ yếu chảy qua các lớp cuối, đẩy ranh giới quyết định để phân tách các class cụ thể của bạn trong khi giữ các bộ trích xuất đặc trưng ổn định.

# Pseudo-code: Transfer Learning trong PyTorch
# Load một giant đã biết thế giới
base_model = load_pretrained_resnet50()  

# Freeze "vỏ não thị giác" - 45 lớp đầu
for param in base_model.layers[:45]:
    param.requires_grad = False

# Thay "bộ não" cho task cụ thể
base_model.classifier = nn.Linear(2048, num_your_classes)

# Chỉ train head mới + cập nhật nhẹ vài lớp cuối
optimizer = Adam(
    filter(lambda p: p.requires_grad, base_model.parameters()), 
    lr=1e-4
)

Ý nghĩa thực tế

Transfer Learning đã sụp đổ cấu trúc chi phí của AI deployment. Nó biến training từ một quy trình công nghiệp tốn vốn (dành riêng cho Google và OpenAI) thành chi phí vận hành mà bất kỳ startup nào cũng chi trả được.

Chỉ sốTraining From ScratchTransfer Learning
Chi phí Compute1M1M–100M+100100–10K
Dữ liệu cần thiếtHàng triệu examplesHàng trăm đến hàng nghìn
Thời gian triển khaiTuần/thángGiờ/ngày
Carbon FootprintHàng tấn CO₂Hàng kg CO₂
Rủi ro thất bạiCao (training instability)Thấp (hội tụ nhanh)

Ai đang dùng: Thực tế là tất cả những người xây AI thực tiễn. Các bệnh viện fine-tune Llama-3 trên hồ sơ bệnh nhân cho bot chẩn đoán. Ngân hàng điều chỉnh BERT cho phát hiện gian lận. Nhà sản xuất ô tô transfer weights từ ImageNet để nhận biết biển báo giao thông. Ngay cả OpenAI cũng dùng transfer learning nội bộ — các chế độ chuyên biệt của GPT-4 có thể chia sẻ backbone cơ sở với các head đặc thù cho từng task.

Limitations: Transfer Learning giả định sự liên quan giữa các task. Nếu bạn cố transfer model train trên tranh Phục Hưng để phân loại ảnh vệ tinh, bạn gặp "negative transfer" — model bị thiên lệch về nét cọ và bảng màu không tồn tại trên quỹ đạo. Còn có "catastrophic forgetting": nếu fine-tune quá mạnh, model ghi đè kiến thức chung bằng task hẹp của bạn, trở nên vô dụng cho mọi thứ khác. Cuối cùng, bạn thừa hưởng bias từ pre-training — nếu base model học pattern độc hại từ text internet, chatbot y tế fine-tuned của bạn có thể đột nhiên hallucinate lời khuyên nguy hiểm.

Đào sâu hơn

On this page