¶
Link tài liệu
- D2L - Deep Learning (tiếng Anh) → tài liệu về các kiến thức học sâu (ML)
- D2L - Deep Learning (tiếng Việt) → tài liệu về các kiến thức học sâu (ML) tiếng Việt
- Machine Learning cơ bản → thuật toán Machine Learning
- Kaggle - Football Player Detection → link tải datasets
- AI Primers → tài liệu trí tuệ nhân tạo và học sâu
Công cụ ML no-code/low-code
| Mục đích | Dùng gì tốt nhất? |
|---|---|
| :books: Học lý thuyết ML cơ bản | Weka hoặc Orange |
| :test_tube: Học ML kết hợp demo hiện đại | Orange hoặc KNIME |
| :brain: Giáo viên cần trực quan, kéo-thả | Orange, RapidMiner |
| :office_worker: Người đi làm, công ty thực tế | KNIME, RapidMiner |
Tổng Hợp Thuật Ngữ Machine Learning Cơ Bản
Tổng hợp các thuật ngữ và thành phần cốt lõi trong lĩnh vực Machine Learning, được sắp xếp theo luồng làm việc từ dữ liệu, huấn luyện cho đến đánh giá mô hình.
| Nhóm | Thuật ngữ | Giải thích |
|---|---|---|
| Dữ Liệu & Thành Phần | Input Data | Dữ liệu thô đưa vào để huấn luyện mô hình (ảnh, văn bản, số liệu, v.v.). |
| Feature | Đặc trưng đầu vào (input). Là các đặc trưng được rút ra từ input để giúp mô hình hiểu và học tốt hơn. | |
| Label | Nhãn đầu ra (output). Là kết quả đúng tương ứng với input, dùng để mô hình học (trong supervised learning). | |
| Training Data | Dữ liệu dùng để huấn luyện mô hình. | |
| Testing Data | Dữ liệu dùng để kiểm tra, đánh giá mô hình sau khi đã huấn luyện xong. | |
| Augmented Data | Dữ liệu được biến đổi từ input gốc để làm phong phú thêm bộ dữ liệu, giúp mô hình học đa dạng hơn. | |
| Metadata | Thông tin phụ trợ (ID, thời gian, vị trí...) không được dùng trực tiếp trong quá trình học của mô hình. | |
| Huấn Luyện & Cấu Hình | Hyperparameters | Các thông số được cấu hình từ trước khi quá trình huấn luyện bắt đầu (ví dụ: learning rate, batch size...). |
| Loss Function | Hàm tính toán mức độ sai sót giữa dự đoán của mô hình và Label (kết quả thật), giúp mô hình biết cách tự cải thiện. |
|
| Overfitting | Tình trạng mô hình "học vẹt", học quá kỹ trên Training Data nhưng hoạt động kém trên dữ liệu mới (Testing Data). |
|
| Underfitting | Tình trạng mô hình học chưa đủ, hoạt động kém trên cả Training Data và Testing Data. |
|
| Đánh Giá Hiệu Năng | Accuracy | Tỷ lệ dự đoán đúng trên tổng số tất cả các dự đoán. |
| Precision | Tỷ lệ dự đoán "đúng" trong số những trường hợp được mô hình dự đoán là "đúng". (Đo lường độ chính xác). | |
| Recall | Tỷ lệ các trường hợp "đúng" thực tế đã được mô hình tìm thấy (bắt được). (Đo lường độ bao phủ). | |
| F1-score | Trung bình hài hòa (harmonic mean) của Precision và Recall, hữu ích khi cần cân bằng cả hai chỉ số. |
|
| Kỹ Thuật Nâng Cao | Mask | Kỹ thuật giúp mô hình biết cần chú ý hoặc bỏ qua phần nào trong dữ liệu đầu vào (thường dùng trong NLP/Transformer). |
Các kỹ thuật hậu xử lý (post-processing) khi không thể hoặc không muốn retrain model
- Chỉnh ngưỡng phân loại (Classification): Điều chỉnh threshold để cân bằng precision, recall hoặc F1.
- Đầu ra hồi quy bị lệch nhẹ (Regression): Thêm hoặc trừ một bias correction để hiệu chỉnh kết quả.
- NLP – sửa câu trả lời: Áp dụng rule-based và post-processing để làm sạch hoặc điều chỉnh output ngôn ngữ.
- Model thiếu tự tin (uncalibrated probabilities): Sử dụng probability calibration (Platt scaling, isotonic regression, temperature scaling).
- Không thể retrain model: Áp dụng post-processing hoặc rule-based adjustments để cải thiện đầu ra.
Model Serialization & Deployment Formats
Các định dạng lưu trữ và triển khai mô hình Machine Learning / Deep Learning
| Định dạng | Framework / Môi trường | Giải thích / Trường hợp sinh ra | Tại sao dùng | Khi nào dùng |
|---|---|---|---|---|
.h5 |
TensorFlow / Keras | Lưu cả kiến trúc model + weights + optimizer state. | Dễ dàng load toàn bộ model, portable trong TF/Keras. | Fine-tune hoặc inference trên TensorFlow, khi muốn lưu trọn vẹn model. |
.pb |
TensorFlow | Protocol Buffer, lưu graph + weights. | Dùng để deploy model TensorFlow, đặc biệt cho production. | Deploy server, export model TensorFlow. |
.tflite |
TensorFlow Lite | Chuyển đổi .pb hoặc .h5 để chạy trên mobile / edge devices. |
Nhẹ, tối ưu cho CPU/microcontroller. | Inference trên điện thoại, IoT. |
.pt / .pth |
PyTorch | Lưu state_dict hoặc full model. | Dễ load lại và tiếp tục training, phổ biến trong PyTorch. | Fine-tuning, inference PyTorch, nghiên cứu. |
.bin |
HuggingFace / PyTorch | Lưu weights của transformer / LLM. | Nhiều transformer dùng chuẩn này để load weights nhanh. | Khi tải transformer model từ HuggingFace. |
.safetensors |
HuggingFace / PyTorch | Thay .bin, safe, nhanh, không thực thi code. |
Tránh lỗ hổng bảo mật khi load model. | Khi deploy hoặc chia sẻ model, muốn tránh rủi ro. |
.pkl |
Python pickle | Lưu Python object, có thể là model hoặc data. | Dễ dàng serialize Python object. | Chỉ dùng local, không nên load từ nguồn lạ. |
.ggml / .gguf |
LLM offline (llama.cpp, GPTQ) | Optimized for CPU, small footprint, 4-bit / 8-bit quantization. | Chạy LLM offline, tiết kiệm RAM/VRAM. | Chạy RAG, chatbot offline trên PC/Mac. |
.onnx |
Framework-neutral | Chuẩn trung gian, chuyển model giữa TensorFlow / PyTorch / C++ / edge. | Portability giữa framework. | Khi deploy cross-platform, hoặc dùng inference engine như ONNX Runtime. |
.ckpt |
TensorFlow / PyTorch / Diffusion | Checkpoint lưu weights hoặc toàn bộ model state. | Lưu progress training, dễ resume. | Resume training, chia sẻ model state. |
Model Lifecycle & Serialization in Machine Learning / Deep Learning
Chu kỳ lưu trữ – chuyển đổi – triển khai mô hình
| Phase | Framework / Use-case | File / Format điển hình | Mục đích / Lý do sinh ra file | Trường hợp sử dụng ví dụ |
|---|---|---|---|---|
| Training | TensorFlow, PyTorch, HuggingFace LLM | .ckpt (TensorFlow), .pt / .bin (PyTorch), .pkl |
Lưu toàn bộ weights + optimizer state + metadata training | Khi tiếp tục training, checkpoint giữa các epoch |
| Checkpoint / Saved Model | TensorFlow, PyTorch | .h5 (Keras), .pt (PyTorch), .safetensors |
Lưu weights model đã training xong, loại bỏ optimizer info | Chia sẻ model, restart training, chuẩn bị export |
| Export Phase | TensorFlow, PyTorch, ONNX, LLM | .onnx, .tflite, .pb, .gguf, .safetensors |
Chuẩn hóa để chạy inference offline hoặc trên môi trường khác, có thể quantize | Deploy trên server, mobile, hoặc local CPU/GPU |
| Inference / Deployment | TensorFlow Serving, PyTorch, LLM | .onnx, .tflite, .gguf, .safetensors, .h5 |
Load model đã export, thực hiện forward pass để dự đoán | Chatbot, RAG, Recommendation, API phục vụ người dùng |
| Optional Quantized | LLMs, HuggingFace | .gguf, .pt (8-bit, 4-bit) |
Giảm dung lượng, tăng tốc inference | Macbook, CPU-limited device, local RAG system |
Machine Learning Engineering / MLOps – Model Lifecycle & Serialization
flowchart TD
A[Training Phase] --> B[Save checkpoint / state_dict]
B -->|Files: .h5, .pt, .pth, .ckpt, .pkl| C[Export Phase]
C --> D[Convert / Export]
D -->|Files: .pb, .onnx, .tflite, .ggml/.gguf, .safetensors| E[Inference / Deployment Phase]
E -->|Load model for prediction: .h5, .pt, .onnx, .tflite, .gguf, .safetensors| F[Use in Application]
-
Training (Huấn luyện)
- Mục tiêu: Tạo ra weights của model dựa trên dữ liệu.
- File thường sinh ra:
.h5→ TensorFlow/Keras.pt/.pth→ PyTorch.ckpt→ checkpoint (TensorFlow, Diffusion).pkl→ lưu Python object (state_dict, config)
- Khi nào dùng: Trong quá trình train, để tiếp tục train (resume), lưu intermediate model.
-
Export (Xuất model)
- Mục tiêu: Chuẩn hóa model để deploy hoặc chia sẻ.
- File thường sinh ra:
.pb→ TensorFlow graph cho production..onnx→ Framework-neutral, port sang nhiều môi trường (PyTorch → C++ / TensorRT / Edge)..tflite→ Mobile / Edge devices..safetensors→ weights transformer, an toàn, không thực thi code..ggml/.gguf→ LLM offline, CPU-friendly, 4/8-bit quantized.
- Khi nào dùng: Khi muốn chạy inference ngoài môi trường training, hoặc chia sẻ model offline.
-
Inference / Deployment (Sử dụng model)
- Mục tiêu: Dùng model đã huấn luyện để dự đoán / RAG / chatbot / recommendation.
- File thường load:
.h5/.pt/.pth→ load trực tiếp vào TF hoặc PyTorch..onnx→ load vào ONNX Runtime hoặc C++ engine..tflite→ load trên mobile..gguf→ load offline trên CPU / PC, dùng llama.cpp, GPTQ..safetensors→ load transformer LLM an toàn.
- Khi nào dùng: Khi triển khai ứng dụng, inference real-time hoặc batch.
Model Quantization trong Machine Learning / LLMs
- Machine Learning Optimization
- Kỹ thuật giảm số bit dùng để biểu diễn weights/activations của mô hình (từ 16-bit → 8-bit → 4-bit → 2-bit).
- LLM Inference Optimization
- Giúp chạy các mô hình ngôn ngữ lớn (LLMs) trên máy tính cá nhân, edge device hoặc GPU yếu bằng cách giảm dung lượng & RAM/VRAM cần thiết.
- Trade-off
- Giữa kích thước model (GB) ↔ chất lượng đầu ra (accuracy, fluency).
- Ví dụ: Q4_K_M thường là “điểm ngọt” cân bằng chất lượng và hiệu năng.
- Ứng dụng
- Chạy chatbot, RAG, inference LLM offline.
- Triển khai trên laptop, MacBook, CPU-only hoặc GPU VRAM thấp.
| Tên | Bit | Phương pháp | Kích thước (~GB) | Chất lượng | Ghi chú |
|---|---|---|---|---|---|
| Q2_K | 2-bit | K-quant | ~2.5 GB | Thấp nhất | Rất nhỏ, chất lượng thấp |
| Q3_K_S | 3-bit | K-quant (Small) | ~3.5 GB | Thấp | Nhỏ gọn, dùng khi RAM hạn chế |
| Q4_0 | 4-bit | Legacy quantization | ~4.0 GB | Trung bình | Phiên bản cũ, ít dùng hơn Q4_K |
| Q4_K_S | 4-bit | K-quant (Small) | ~4.0 GB | Trung bình | Cân bằng size & chất lượng, nhỏ gọn hơn Q4_K_M |
| Q4_K_M | 4-bit | K-quant (Medium) | ~4.3 GB | Trung bình – tốt nhất | Khuyến nghị: cân bằng chất lượng & hiệu năng |
| Q5_K_M | 5-bit | K-quant (Medium) | ~5.2 GB | Cao | Chất lượng gần 8-bit, kích thước vừa phải |
| Q8_0 | 8-bit | Legacy quantization | ~7.2 GB | Gần như FP16 | Rất sát bản gốc, cần nhiều RAM hơn |
| F16 | 16-bit | Full precision (FP16) | ~14 GB | Chuẩn gốc, cao nhất | Kích thước lớn, ít nén, dùng để training |