AI cho kỹ sư nhúng
Chuyên mục này là một giáo trình AI viết riêng cho người đã làm firmware — không phải bản dịch của một khoá data science, cũng không phải hướng dẫn dùng ChatGPT.
Học AI gì ở đây
Mục tiêu duy nhất: hiểu một mô hình ngôn ngữ (LLM) tới mức đọc được từng dòng của nó, rồi tự tay chạy được nó trên phần cứng có 512KB SRAM.
Cụ thể là học đủ ba tầng, theo đúng thứ tự một kỹ sư nhúng cần:
| Tầng | Nội dung | Vì sao cần |
|---|---|---|
| Toán nền | vector, ma trận, gradient, backpropagation | không có tầng này thì mọi tầng trên chỉ là gọi thư viện |
| Kiến trúc | embedding, attention, transformer, KV cache, sampling | để biết thời gian chạy đi đâu, chứ không chỉ biết gọi model.generate() |
| Triển khai | quantization, memory hierarchy, roofline, TensorRT / ONNX / TIDL | phần mà kỹ sư nhúng có lợi thế hơn hẳn dân ML thuần |
Điểm khác biệt so với phần lớn tài liệu AI tiếng Việt: mọi khái niệm đều được neo vào code chạy được và số đo thật, không dừng ở công thức. Nói RMSNorm thì chỉ ra đúng dòng trong model.py; nói "ma trận nhân tốn bao lâu" thì có lệnh để bạn tự đo trên chính CPU của mình; nói "model 28.9M vừa 16MB flash" thì có file model.bin để bạn hexdump.
Học AI gì thì KHÔNG có ở đây
Nói rõ ngay từ đầu để bạn khỏi mất thời gian:
- Không dạy prompt engineering hay cách dùng API của các mô hình thương mại.
- Không dạy data science, pandas, thống kê, hay quy trình phân tích dữ liệu.
- Không dạy train mô hình nền tảng quy mô lớn — chuyện đó cần hàng nghìn GPU.
- Không dạy computer vision như một chuyên ngành riêng (chỉ chạm khi nói VLA cho robot ở chương cuối).
Đổi lại, thứ bạn nhận được là năng lực hiếm: đứng giữa hai thế giới AI và embedded mà dịch qua lại được — nhìn một tensor PyTorch và biết nó nằm ở byte offset nào trong flash, nhìn một vòng for trong C và biết nó đang tính lớp nào của mạng.
Bãi thực hành
Toàn bộ giáo trình bám vào một repo mã nguồn mở: PLE TinyLM — một mô hình ngôn ngữ 28,9 triệu tham số chạy trên ESP32-S3, con chip giá khoảng 8 đô, tốc độ ~9,5 token/giây, không cần mạng, không gửi gì lên server.
Điều làm repo này thành bãi tập tốt là cùng một file model.bin chạy trên ba kiến trúc khác hẳn nhau:
src/model.py (PyTorch) ──export──> model.bin ──┬──> ESP32-S3 (Xtensa LX7, C thuần, không OS)
├──> CPU (x86-64 / ARM / Apple Silicon)
└──> Jetson (CUDA)
Cùng một thuật toán, ba nút thắt hiệu năng khác nhau. So sánh đó chính là bài học — và nó chỉ hiện ra khi bạn tự đo, không ai kể lại thay được.
Yêu cầu đầu vào
Bạn cần biết C và quen với tư duy nhúng (con trỏ, bộ nhớ, fixed-point, DMA). Không cần biết Python nâng cao, không cần biết gì về AI, và không cần GPU — 8 trên 10 chương chạy được trên laptop, kể cả MacBook Apple Silicon (dùng MPS) hay một máy x86-64 chỉ có CPU.
Lộ trình
| # | Bài | Trạng thái |
|---|---|---|
| 1 | Vector — dữ liệu trong AI | đã đăng |
| 2 | Weight — kiến thức của mô hình | đang viết |
| 3 | Matrix Multiplication — phép toán ăn 90% thời gian | đang viết |
| 4 | Gradient — mô hình học bằng cách nào | đang viết |
| 5 | Backpropagation | đang viết |
| 6 | Transformer thật — ráp 5 viên gạch đầu tiên | đang viết |
| 7 | KV Cache và Token Sampling | đang viết |
| 8 | Quantization — từ Q15 bạn đã biết tới int4 | đang viết |
| 9 | Runtime: TensorRT, ONNX Runtime, TIDL | đang viết |
| 10 | VLA — mô hình ngôn ngữ cho robot | đang viết |
Bản đầy đủ của giáo trình (kể cả các chương chưa đăng ở đây) nằm trong docs/ của repo.