Kiến trúc mạng học sâu: từ nền tảng đến LLM·Chương 1 — Nền tảng để hiểu kiến trúc học sâu

Chế độ xem

Từ AI đến Deep Learning: một bản đồ đủ dùng trước khi học kiến trúc

Deep Learning có rất nhiều tên gọi dễ khiến người mới cảm thấy đây là một danh sách dài cần học thuộc: neural network, CNN, RNN, Transformer, LLM, diffusion, fine-tuning, RAG… Thực tế, phần lớn các khái niệm này có thể đặt vào một bản đồ khá gọn.

Bài viết này chỉ làm một việc: tạo khung chung để những bài sau có chỗ để gắn vào. Chưa cần biết đạo hàm, chưa cần biết code và cũng chưa cần thuộc công thức của từng kiến trúc.

Nếu chỉ giữ lại một câu, có thể dùng câu sau:

Một mô hình học máy là một hàm có tham số. Huấn luyện là quá trình dùng dữ liệu để điều chỉnh các tham số đó nhằm làm dự đoán phù hợp hơn với mục tiêu.

AI, Machine Learning và Deep Learning không phải ba tên của cùng một thứ

Artificial Intelligence (AI) là phạm vi rộng nhất. Mục tiêu chung là xây dựng hệ thống có thể thực hiện những nhiệm vụ như nhận dạng, dự đoán, lập kế hoạch, tìm kiếm, xử lý ngôn ngữ hoặc ra quyết định.

AI không đồng nghĩa với Machine Learning. Một chương trình chơi cờ dựa trên tìm kiếm, một hệ chuyên gia dựa trên luật hay một thuật toán lập kế hoạch vẫn có thể được xem là AI dù không học từ dữ liệu.

Machine Learning (ML) là một hướng trong AI. Thay vì viết bằng tay toàn bộ quy tắc để biến input thành output, ta xây dựng một mô hình có tham số và dùng dữ liệu để tìm các giá trị tham số phù hợp.

Deep Learning (DL) là một nhóm phương pháp Machine Learning sử dụng mạng neural nhiều tầng. Từ “deep” nhấn mạnh việc phép biến đổi được tổ chức qua nhiều tầng xử lý, không phải việc mô hình “suy nghĩ sâu” theo nghĩa con người.

Khác biệt quan trọng: viết quy tắc và học từ dữ liệu

Giả sử cần lọc email spam.

Một cách truyền thống là viết luật:

  • có quá nhiều liên kết lạ thì tăng mức nghi ngờ;
  • tiêu đề chứa một số cụm từ nhất định thì tăng mức nghi ngờ;
  • địa chỉ người gửi nằm trong danh sách tin cậy thì giảm mức nghi ngờ.

Cách này có thể hoạt động, nhưng càng nhiều trường hợp thì bộ luật càng khó duy trì.

Với Machine Learning, ta có thể thu thập nhiều email đã được gắn nhãn spam hoặc không spam, sau đó để thuật toán tìm một mô hình phân biệt hai nhóm.

Điểm cần chú ý là mô hình không nhất thiết học ra đúng những quy tắc mà lập trình viên đã nghĩ trước. Nó tìm các tham số giúp giảm sai lệch theo mục tiêu huấn luyện.

Một mẫu dữ liệu gồm những gì?

Ta dùng một ví dụ xuyên suốt cho chủ đề 1 (nền tảng): dự đoán một sinh viên có nguy cơ trượt môn hay không.

Mỗi sinh viên có thể được mô tả bằng một số thông tin:

  • tỷ lệ đi học;
  • tỷ lệ nộp bài;
  • điểm giữa kỳ.

Một mẫu có thể viết thành vector:

x=[0.75,  0.60,  5.5]\mathbf{x}=[0.75,\;0.60,\;5.5]

Nhãn thật có thể là:

y=1y=1

với quy ước 1 = có nguy cơ, 0 = không có nguy cơ.

Một vài thuật ngữ thường gặp:

Thuật ngữCó thể hiểu ngắn gọn là
Sample / exampleMột mẫu dữ liệu
FeatureThông tin đầu vào dùng để dự đoán
Label / targetĐáp án mà mô hình cần học để dự đoán
DatasetTập hợp nhiều mẫu
PredictionĐầu ra do mô hình tạo ra

Không phải mọi bài toán đều có label. Tuy nhiên, chủ đề 1 tập trung vào supervised learning - tức dữ liệu huấn luyện có đáp án để mô hình so sánh.

Model có thể được nhìn như một hàm

Viết gọn:

y^=f(x;θ)\hat{y}=f(\mathbf{x};\theta)

Trong đó:

  • x\mathbf{x}: input;
  • ff: mô hình;
  • θ\theta: toàn bộ tham số của mô hình;
  • y^\hat{y}: dự đoán.

Có thể hình dung model như một hộp nhận dữ liệu và tạo đầu ra:

Nhưng “hộp” này không cố định. Trong giai đoạn training, các tham số bên trong được thay đổi.

Parameter và hyperparameter là hai thứ khác nhau

Parameter là giá trị mô hình học từ dữ liệu. Với neural network, hai loại quen thuộc là weight và bias.

Hyperparameter là lựa chọn điều khiển cấu hình hoặc quá trình huấn luyện, ví dụ:

  • learning rate;
  • batch size;
  • số tầng;
  • số neuron;
  • số epoch tối đa.

Có thể dùng thuật toán để tự động tìm hyperparameter, nhưng về mặt khái niệm nó vẫn khác parameter bên trong mô hình.

Một cách nhớ:

Parameter nằm trong model và được cập nhật khi model học. Hyperparameter mô tả cách ta xây hoặc huấn luyện model.

Architecture, model và weights cũng không đồng nghĩa

Đây là ba từ thường bị dùng lẫn.

Architecture mô tả cấu trúc tính toán: có những tầng nào, kết nối ra sao, dữ liệu được xử lý theo kiểu gì.

Ví dụ: “MLP gồm hai hidden layer, lần lượt 64 và 32 neuron” là mô tả kiến trúc.

Model thường chỉ hệ thống cụ thể mà ta đang sử dụng. Trong thực tế, từ này đôi khi được dùng rộng và không hoàn toàn nhất quán.

Weights / parameters là các con số cụ thể mà mô hình đã học.

Hai model có thể có cùng architecture nhưng sau khi train bằng dữ liệu hoặc seed khác nhau lại có weights khác nhau.

Neural network là gì ở mức tối thiểu?

Một neural network có thể xem là một chuỗi phép biến đổi có tham số.

Mỗi layer nhận biểu diễn từ layer trước, thực hiện một phép biến đổi rồi gửi kết quả cho layer tiếp theo.

Trong series này, không cần dựa vào so sánh sinh học với não người để hiểu neural network. Cách nhìn kỹ thuật và an toàn hơn là:

Neural network là một hàm lớn được ghép từ nhiều phép toán nhỏ có tham số.

Bài MLP tiếp theo sẽ mở hộp này và xem weight, bias, neuron, activation và hidden layer thực sự làm gì.

Training và inference là hai giai đoạn khác nhau

Training

Trong training, mô hình tạo dự đoán, so sánh với đáp án, rồi điều chỉnh parameter.

Inference

Sau khi đã train xong, ta thường chỉ cần đưa dữ liệu mới qua model để lấy đầu ra.

Ở inference thông thường, không có bước dùng nhãn thật để backpropagation rồi cập nhật weights.

Sự phân biệt này rất quan trọng khi đọc tài liệu về LLM sau này: pretraining, fine-tuning là quá trình học; còn lúc gửi prompt cho model và nhận câu trả lời chủ yếu là inference.

Vậy “model học” nghĩa là gì?

Giả sử model dự đoán một sinh viên có 20% nguy cơ trượt, trong khi nhãn thật là “có nguy cơ” (tức là 1).

Ta cần một cách định lượng mức sai. Đại lượng đó gọi là loss.

Sau đó cần biết thay đổi parameter theo hướng nào để loss có xu hướng giảm. Neural network hiện đại thường dùng gradient và backpropagation để làm việc này.

Khung chung:

Ví dụ cụ thể: weight thay đổi như thế nào?

Trước khi train (weight ngẫu nhiên):

Sinh viên A: x = [0.75, 0.60, 5.5], nhãn thật y = 1
Model dự đoán: 0.20  ← rất sai
Loss cao → gradient tính được → optimizer điều chỉnh weight

Sau 100 lần cập nhật, một weight cụ thể có thể thay đổi như:

w₁: 0.05  →  0.28  →  0.30  →  ...  →  0.35
     ↑ ban đầu ngẫu nhiên        ↑ sau training ổn định hơn

Model không “nhìn dữ liệu rồi bỗng nhiên hiểu” - nó chỉ điều chỉnh các tham số bên trong theo một hướng nhất định, rất nhiều lần, cho đến khi dự đoán ngày càng gần với nhãn thật hơn. Ví dụ sinh viên này chỉ có vài weight; mạng thực tế có thể có hàng triệu parameter.

Kết quả sau khi train:

Sinh viên A: model dự đoán 0.82  ← gần y=1 hơn nhiều
Sinh viên B (không nguy cơ): model dự đoán 0.11 ← gần y=0

Bài 03 sẽ đi sâu vào vòng lặp này. Ở đây chỉ cần nhớ: model không tự nhiên “nhìn dữ liệu rồi hiểu”; nó thay đổi các con số bên trong theo một mục tiêu tối ưu cụ thể.

Loss và metric không phải một thứ

Hai khái niệm này sẽ được tách thành bài riêng ở phần đánh giá, nhưng nên phân biệt ngay từ đầu.

Loss là đại lượng được dùng trực tiếp trong tối ưu. Ta muốn quá trình huấn luyện giảm nó.

Metric là đại lượng dùng để đánh giá kết quả theo mục tiêu quan tâm, ví dụ:

  • accuracy;
  • precision;
  • recall;
  • F1.

Một model có thể có loss thấp hơn nhưng một metric cụ thể chưa chắc tăng tương ứng ở mọi bước. Loss và metric có liên hệ nhưng không đồng nhất.

Vì sao Deep Learning có nhiều kiến trúc?

Một cách phân loại dễ gây nhầm là đặt MLP, CNN, Transformer, Autoencoder, GAN và Diffusion thành những “loại mạng” ngang hàng tuyệt đối.

Thực tế, các tên này không hoàn toàn cùng một tiêu chí.

Nhóm 1: kiến trúc khai thác cấu trúc dữ liệu

Dữ liệu / quan hệ nổi bậtÝ tưởng kiến trúc thường gặp
Vector cố địnhMLP / feedforward network
Không gian cục bộ như ảnhCNN
Chuỗi có thứ tựRNN
Quan hệ giữa nhiều phần tửAttention / Transformer
Node và edgeGNN

Nhóm 2: cách đặt mục tiêu học hoặc sinh dữ liệu

Mục tiêu / cơ chếVí dụ
Tái tạo inputAutoencoder
Học phân phối latent có cấu trúcVAE
Generator cạnh tranh với DiscriminatorGAN
Học đảo ngược quá trình thêm nhiễuDiffusion
Dự đoán phần tử tiếp theoAutoregressive model, GPT

Một model hiện đại có thể kết hợp nhiều nhóm ý tưởng. Stable Diffusion chẳng hạn không chỉ có “diffusion” mà còn dùng neural network để dự đoán nhiễu và các thành phần attention ở nhiều phiên bản kiến trúc.

Vì vậy, series này không học kiến trúc như một bộ sưu tập tên. Mỗi kiến trúc sẽ xuất hiện khi có một vấn đề rõ ràng cần giải quyết.

Mạch của toàn series

Series gồm bảy chủ đề:

  1. Nền tảng để hiểu mạng học sâu
  2. Kiến trúc theo cấu trúc dữ liệu
  3. Học biểu diễn và sinh dữ liệu
  4. Dùng model có sẵn và fine-tuning
  5. Từ Transformer đến LLM và AI Agent
  6. RAG, GraphRAG và hệ thống AI Agent
  7. Dữ liệu khó, debug và hệ thống nhiều bước

Thứ tự bài viết ở chủ đề 2 đi CNN rồi RNN rồi Attention/Transformer rồi GNN cho dễ đọc. Về inductive bias, chúng là các lựa chọn song song từ cách biểu diễn dữ liệu: RNN không phụ thuộc CNN, GNN không phụ thuộc Transformer.

Các model sinh dữ liệu như Autoencoder/VAE, GAN và Diffusion được tách thành chủ đề 3 để tránh lẫn tiêu chí phân loại.

Một model tốt chưa chắc tạo thành hệ thống AI tốt

Khi học deep learning, người mới thường tập trung hoàn toàn vào model. Trong hệ thống thực tế, model chỉ là một phần.

Ví dụ pipeline đơn giản:

Với LLM, pipeline có thể thêm retriever, vector database, reranker, knowledge graph, tools, validator và nhiều model khác nhau.

Đó là lý do cuối series sẽ đi tới RAG, GraphRAG và pipeline nhiều bước thay vì dừng lại ở Transformer.

Một số hiểu nhầm nên bỏ sớm

“Deep Learning luôn tốt hơn Machine Learning truyền thống”

Không đúng. Với dữ liệu bảng nhỏ hoặc vừa, mô hình cây như gradient boosting có thể rất mạnh và rẻ hơn. Model cần được chọn theo dữ liệu, chi phí và mục tiêu, không theo độ “hiện đại” của tên gọi.

“Model nhiều parameter hơn chắc chắn tốt hơn”

Không đúng. Capacity lớn có thể giúp biểu diễn nhiều quan hệ hơn, nhưng cũng làm tăng chi phí, yêu cầu dữ liệu và nguy cơ overfitting trong nhiều bối cảnh.

“Accuracy cao nghĩa là model tốt”

Không đủ. Với dữ liệu mất cân bằng, accuracy có thể rất cao dù model bỏ qua hoàn toàn lớp hiếm.

“Training loss càng gần 0 càng tốt”

Không phải mục tiêu cuối cùng. Mục tiêu là hoạt động tốt trên dữ liệu mới, không phải chỉ nhớ training set.

“LLM là một loại AI hoàn toàn tách khỏi neural network”

Không. Phần lớn LLM hiện đại được xây trên Transformer, mà Transformer vẫn là neural network và vẫn được train bằng tối ưu parameter.

Phần toán tối thiểu cần nhận ra

Trong các bài sau sẽ xuất hiện các ký hiệu:

y^=f(x;θ)\hat{y}=f(\mathbf{x};\theta) L=L(y^,y)L=\mathcal{L}(\hat{y},y)

Chỉ cần đọc được như sau:

  1. model ff nhận input x\mathbf{x} với parameters θ\theta;
  2. model tạo prediction y^\hat{y};
  3. loss function L\mathcal{L} so sánh prediction với target yy;
  4. training tìm cách thay đổi θ\theta để loss nhỏ hơn.

Toàn bộ chủ đề 1 về cơ bản là mở rộng bốn dòng ý tưởng này.

Nếu chỉ nhớ 8 ý

  • AI rộng hơn Machine Learning; Machine Learning rộng hơn Deep Learning.
  • Machine Learning dùng dữ liệu để tìm parameter thay vì bắt lập trình viên viết mọi quy tắc.
  • Neural network là chuỗi phép biến đổi có parameter.
  • Architecture mô tả cấu trúc; weights là các giá trị model đã học.
  • Training cập nhật parameter; inference chủ yếu dùng parameter đã có để dự đoán.
  • Loss phục vụ tối ưu; metric phục vụ đánh giá.
  • Nhiều kiến trúc tồn tại vì dữ liệu và mục tiêu học có cấu trúc khác nhau.
  • Model chỉ là một thành phần trong hệ thống AI thực tế.

Câu hỏi tự kiểm tra

  1. Một hệ thống dùng luật viết tay có nhất thiết là Machine Learning không?
  2. Parameter khác hyperparameter ở đâu?
  3. Hai model cùng architecture có thể cho kết quả khác nhau không? Vì sao?
  4. Training và inference khác nhau ở bước nào quan trọng nhất?
  5. Vì sao không nên xem CNN, GAN và Diffusion là ba nhánh ngang hàng tuyệt đối theo cùng một tiêu chí?
  6. Loss và metric khác nhau ở mục đích nào?
  7. Tại sao một model có accuracy 99% vẫn có thể vô dụng?

Tài liệu tham khảo và đọc thêm