Continual Learning — Cập nhật kiến thức mà không quên cái cũ
Giải thích nguyên lý continual learning: cách AI học thêm kiến thức mới mà không quên kỹ năng cũ, giải quyết bài toán catastrophic forgetting qua replay, regularization và architectural methods.
Khi một kỹ sư machine learning muốn dạy LLM thêm kiến thức mới — ví dụ cập nhật luật thuế mới nhất hay phong cách viết văn của một tác giả — cách làm truyền thống là fine-tuning. Nhưng đây chính là cách nhanh nhất để biến một model đa năng thành "chuyên gia một mùa": nó thuần thục task mới, đồng thời quên sạch 90% những gì đã biết về task cũ. Continual Learning (CL) là lĩnh vực nghiên cứu cách khiến neural networks học liên tục như con người — thêm kiến thức mới mà không xóa bộ nhớ cũ — và đang trở thành yếu tố sống còn cho những hệ thống như Tesla Autopilot hay robot học kỹ năng online.
Vấn đề
Vấn đề cốt lõi được gọi là catastrophic forgetting (quên nghiêm trọng). Neural networks sử dụng global distributed representations — mọi weight trong mạng tham gia vào mọi task. Khi bạn fine-tune model trên task B (ví dụ: dịch thuật Pháp-Việt), gradient descent chạy qua toàn bộ loss landscape và "san phẳng" các thung lũng đã được tạo ra khi học task A (dịch Anh-Việt). Kết quả: performance trên task A có thể giảm 40-90% trên các benchmark như Permuted MNIST, dù task B chỉ liên quan lỏng lẻo.
Cách tiếp cận cũ là "train from scratch" trên cả A và B cùng lúc (joint training). Nhưng điều này không khả thi với LLM: bạn không thể giữ toàn bộ dữ liệu Internet trong bộ nhớ và retrain 175B parameters mỗi khi có tin tức mới. Cần một cơ chế cho phép incremental learning — học từ stream dữ liệu non-stationary mà không cần nhìn lại toàn bộ quá khứ.
Ý tưởng cốt lõi
Hãy tưởng tượng knowledge của neural network như các thung lũng được đục vào một dãy núi nhiều chiều (loss landscape). Task A tạo ra Thung Lũng A — một cấu hình weights ổn định. Khi học Task B, nếu bạn chạy bulldozer ngẫu nhiên khắp dãy núi, Thung Lũng A sẽ bị lấp. Continual learning là nghệ thuật giữ nguyên thung lũng cũ trong khi đào thung lũng mới.
Có ba triết lý để làm điều này, từ đơn giản đến phức tạp:
1. The Diarist (Experience Replay) — Bạn giữ một cuốn nhật ký ảnh (replay buffer) chứa 5-20% mẫu dữ liệu cũ. Trong khi học Task B, bạn xen kẽ các mẫu cũ này vào batch. SGD có tính chất associative — khi thấy lại dữ liệu cũ, nó "khai quật" lại thung lũng cũ mà không cần đào sâu vào kiến trúc. Bạn không cần bảo vệ weights, chỉ cần định kỳ "refresh" chúng bằng cách nhắc nhở.
2. The Conservationist (Regularization) — Không phải weights nào cũng quan trọng như nhau. Elastic Weight Consolidation (EWC) dùng Fisher Information để đo độ nhạy của output đối với từng weight. Nó tìm ra 5-10% "trụ cột" đang giữ đỡ Thung Lũng A, rồi thêm penalty vào hàm loss khi các weights này bị thay đổi. Như quấn băng dính bảo vệ các cột trụ — bạn vẫn có thể xây thêm nhà, nhưng không được phá những cột chịu lực.
3. The Urban Planner (Architectural) — Thay vì san bằng để xây mới, bạn đóng băng toàn bộ city block cũ (freeze weights) và xây thêm đường hầm phụ (side-tunnels). Progressive Networks thêm cột mới cho mỗi task. Adapters và LoRA đưa cách tiếp cận này vào thực tế hiện đại: chỉ cập nhật các ma trận low-rank nhỏ, giữ nguyên pre-trained weights. Không có sự chia sẻ weights = zero interference.
Aha moment cuối cùng: Reinforcement Learning (RL) là "anh hùng vô tình" của continual learning. Policy gradients chỉ cập nhật trên các trajectory cụ thể — sparse updates — nghĩa là chúng chỉ sửa những vùng landscape mà agent thực sự đi qua, để yên phần còn lại. Đây là lý do Tesla có thể cập nhật Autopilot liên tục từ dữ liệu lái xe mới mà không phá hỏng khả năng nhận biết làn đường cũ.
Chỉ vậy thôi — hoặc lưu lại quá khứ, hoặc bảo vệ trụ cột, hoặc cô lập kiến thức mới.
Tại sao nó hoạt động
Về mặt toán học, catastrophic forgetting xảy ra vì gradient của task B (∇L_B) không trực giao với không gian null của task A. EWC giải quyết điều này bằng cách thêm một regularization term:
L_total(θ) = L_B(θ) + λ/2 * Σ_i F_i (θ_i - θ_A*)^2
Trong đó F_i là Fisher Information — đo lường độ nhạy của likelihood đối với thay đổi của weight thứ i. Weights có F_i lớn được "khóa chặt", weights có F_i nhỏ (không quan trọng cho A) được tự do thay đổi để học B.
Replay hoạt động vì SGD là một quá trình tích lũy. Khi interleave dữ liệu cũ và mới, gradient thực tế là trung bình có trọng số:
∇L_effective = (1-α)∇L_B + α∇L_A
Với α là tỷ lệ replay (thường 0.05-0.2). Điều này đảm bảo Thung Lũng A không bị lấp đầy hoàn toàn.
Architectural methods (như Progressive Networks) dựa trên tính chất: nếu ∇L_B chỉ chảy qua các layers mới (adapters), thì ∂L_B/∂θ_A = 0 — không có gradient nào đụng chạm đến weights cũ, do đó không thể có forgetting.
Ý nghĩa thực tế
| Phương pháp | Memory Cost | Compute Cost | Hiệu quả chống quên | Hạn chế |
|---|---|---|---|---|
| Experience Replay | Cao (lưu 5-20% data cũ) | Thấp | Tốt nếu buffer đủ lớn | Không scale khi số task → ∞ |
| EWC/Regularization | Thấp (chỉ lưu F_i và θ*) | Thấp | Trung bình | Interference giữa các task tương tự |
| Progressive Networks | Rất cao (thêm params mỗi task) | Cao | Hoàn hảo (zero forgetting) | Parameter count tăng tuyến tính |
| LoRA Adapters | Thấp (chỉ train A,B matrices) | Thấp | Tốt nếu base model đủ mạnh | Không thể học capability hoàn toàn mới |
Benchmarks: TRACE benchmark đo lường Backward Transfer (BWT) — độ giảm performance trên task cũ (âm = forgetting), và Forward Transfer (FWT) — cải thiện trên task mới nhờ học task cũ (dương = học tốt hơn). Các phương pháp CL hiện đại đạt BWT gần 0 (không quên) và FWT +5-15% (học nhanh hơn nhờ kiến thức trước).
Ai đang dùng:
- Tesla Autopilot: Online adaptation với local road anomalies qua continual learning + RL.
- Robotics: Robot học skill mới trong nhà máy mà không quên cách cầm nắm cơ bản.
- LLM Providers: Rumored sử dụng cho RLHF continual updates — cập nhật preference mới mà không làm mất alignment cũ.
- Hệ thống RAG nội bộ: Kết hợp retrieval với continual fine-tuning để cá nhân hóa mà không retrain toàn bộ model.
Giới hạn cần biết:
- Task similarity paradox: Các task quá giống nhau (ví dụ: Pháp → Tây Ban Nha) thực ra khó hơn task khác biệt (Pháp → Code), vì chúng can thiệp vào cùng một vùng weights.
- Plasticity loss: Sau ~20 task, network trở nên "cứng" — dù thêm adapter cũng khó học thức mới.
- Storage unbounded: Replay buffer cần tăng kích thước vô hạn nếu số task tăng mãi.
Đào sâu hơn
Paper gốc:
- "A Comprehensive Survey of Continual Learning" (2023) — arXiv:2302.00487 — taxonomy đầy đủ về replay, regularization và architectural methods.
- "TRACE: A Comprehensive Benchmark for Continual Learning in LLMs" (2023) — arXiv:2310.06762 — 8 datasets đo BWT/FWT cho large language models.
Cùng cụm (new-architectures):
- Mamba & SSMs — Selective scan thay attention, linear scaling — cũng giải quyết vấn đề memory nhưng theo hướng kiến trúc thay vì learning algorithm.
- Hybrid Attention-SSM (Jamba, Zamba) — Kết hợp SSM + attention khi cần precision, liên quan đến việc cân bằng giữa nhớ dài hạn và cập nhật mới.
- Linear Attention — Đổi kernel function để xử lý long context, liên quan đến việc lưu trữ thông tin hiệu quả hơn cho continual learning.
Đọc tiếp:
- Sequence Modeling — Cơ sở về cách models xử lý chuỗi thời gian, prerequisite cho việc hiểu continual learning trên chuỗi task.
- RAG và Retrieval — So sánh giữa lưu kiến thức ngoài (external memory) và continual learning (internal memory).
- Long Context — Kỹ thuật xử lý context dài, liên quan đến việc lưu trữ lịch sử trong continual learning.
Diffusion LM — Noise-and-denoise cho text, generate song song
Hiểu bản chất Diffusion Language Models: tại sao denoise liên tục trong không gian embedding lại cho phép generate text song song thay vì từng token, mở khóa khả năng edit và kiểm soát cao hơn autoregressive.
Ring Attention — K/V truyền vòng giữa GPU, context triệu token
Distributed sequence parallelism biến GPU thành vòng tròn xử lý, mở khóa context triệu token bằng cách xoay K/V thay vì all-to-all communication.