Tổng kết: Tầng quyết định — và cả khoá AI Core
Khép module cuối và cả khoá: từ bản đồ AI đến cỗ máy LLM, transformer, RAG và tầng quyết định của engineer — kèm self-assessment theo learning outcomes.
TL;DR: Module 6 bóc sáu quyết định của engineer khi ra mắt một AI feature: viết prompt bám cơ chế, biết khi nào fine-tune xứng đáng, hiểu agent và cái giá của nó, đo chất lượng bằng golden set, tính cost/latency từ token, và chẩn đoán rủi ro privacy/injection. Đây cũng là bài khép cả khoá AI Core — sáu module đi từ "AI là gì" tới "tự ra quyết định kiến trúc". Đây là 1 trang để bookmark.
Đã đi qua những gì
Bạn bắt đầu từ bài 01 với ba nguyên tắc prompt bám thẳng cơ chế model — cấu trúc rõ cho attention chỗ bám, ví dụ đúng dạng để model bắt chước pattern, tách bước suy luận để tận dụng tính autoregressive — thay vì sưu tầm mẹo câu chữ rồi hết hiệu lực ở phiên bản model sau. Bài 02 trả lời câu hỏi tự nhiên tiếp theo: fine-tune dịch chuyển trọng số nên dạy được hành vi lặp lại, nhưng không phải cách nạp sự kiện mới đáng tin — cái giá là data nhãn sạch, catastrophic forgetting và một vòng đời vận hành lặp lại. Bài 03 bóc phép màu "agent" thành ba mảnh — LLM, danh sách tool bằng text, một vòng lặp ở tầng hệ thống — sức mạnh vượt một lần gọi đổi lấy chi phí tăng theo cấp bậc và xác suất lỗi nhân dồn.
Bài 04 chuyển trọng tâm sang đo lường: demo chạy được không phải bằng chứng, golden set với case thường gặp, case biên và case phải từ chối mới là phép đo lặp lại được. Bài 05 tính cost và latency trực tiếp từ số token vào/ra bằng hai công thức, cùng bốn đòn bẩy tham chiếu khi cần giảm. Bài 06 chẩn đoán hai lớp rủi ro riêng — prompt là dữ liệu gửi đi chịu retention của bên thứ ba, và prompt injection là hệ quả kiến trúc không có bản vá triệt để, chỉ có guardrail giảm thiểu. Bài 07 ráp cả sáu bài lại: một scenario chatbot ngân hàng thật, buộc bạn tự viết ra kiến trúc, golden set, cost/latency, privacy/injection và fallback trước khi xem lời giải — đúng bài kiểm tra bạn hiểu quyết định hay chỉ nhớ khái niệm rời rạc.

🗺️ Cheat sheet
| Concept | Khi nào cần nhớ | Pitfall |
|---|---|---|
| Ba nguyên tắc prompt (cấu trúc, few-shot, chain-of-thought) | Viết prompt cần bền qua nhiều phiên bản model | Sưu tầm "mẹo câu thần chú" thay vì bám cơ chế model |
| Fine-tune vs RAG | Model cần học hành vi lặp lại hay cần nạp sự kiện mới | Coi fine-tune là cách nạp "cơ sở dữ liệu nội bộ" vào model |
| Agent (LLM + tool + vòng lặp) | Số bước xử lý không biết trước, phụ thuộc kết quả bước trước | Dùng agent cho bài toán một-phát-ăn-ngay, không cần vòng lặp |
| Golden set & LLM-as-judge | Cần biết feature tốt lên hay tệ đi sau mỗi lần đổi prompt/model | Tin vài case demo chọn thuận tay là đủ bằng chứng để ship |
| Cost/latency từ token vào/ra | Ước lượng hoá đơn và độ trễ trước khi viết code | Đếm từ tiếng Việt rồi suy ra số token |
| Prompt injection (direct/indirect) | Prompt hoặc RAG có dữ liệu từ nguồn không đáng tin cậy | Tin "system prompt viết chặt" là chặn được injection |
| Checklist ship 5 mục | Trước khi đưa bất kỳ AI feature nào lên production | Ship khi thiếu một trong năm mục, không chỉ thiếu code |
📖 Glossary module
| Thuật ngữ | Định nghĩa 1 câu |
|---|---|
| Delimiter | Nhãn/thẻ phân tách rõ vùng chỉ dẫn với vùng dữ liệu trong prompt, giúp attention gán trọng số khác nhau cho từng vùng |
| Few-shot | Đưa vài ví dụ input–output đúng định dạng vào context để model bắt chước pattern, không cần cập nhật trọng số |
| Chain-of-thought | Yêu cầu model trình bày bước suy luận trung gian trước kết luận, tận dụng tính autoregressive để tự sửa sai giữa chừng |
| Fine-tune | Train tiếp một base model trên dữ liệu riêng, dịch chuyển trọng số để dạy hành vi lặp lại |
| Catastrophic forgetting | Model sa sút ở khả năng không nằm trong tập fine-tune, do trọng số bị kéo mạnh về tối ưu cho tập hẹp vừa train |
| Staleness | Khoảng cách giữa thứ model "biết" (bản chụp trọng số tại thời điểm train) và thứ đang đúng ở hiện tại |
| Agent | Kiến trúc ghép một LLM, danh sách tool mô tả bằng text, và một vòng lặp hệ thống đọc-quyết định-thực thi-lặp lại |
| maxRounds | Giới hạn số vòng lặp tối đa của agent, bắt buộc vì model không có tín hiệu nội tại để tự biết khi nào nên dừng |
| Golden set | Bộ case đánh giá cố định, chọn có chủ đích từ traffic thật/case biên/case phải từ chối, dùng để đo lặp lại được |
| Negative rejection | Tình huống đáp án đúng là "không đủ thông tin"/từ chối, dùng để bắt lỗi model bịa khi lẽ ra phải im lặng |
| Rubric | Danh sách tiêu chí cụ thể để chấm output tự do (không có một đáp án đúng duy nhất) một cách nhất quán |
| LLM-as-judge | Dùng một model khác để chấm điểm output thay người — rẻ và nhanh hơn, nhưng có thể bịa điểm hoặc thiên vị nên cần spot-check tay |
| TTFT (time-to-first-token) | Khoảng chờ từ lúc gửi request tới lúc token đầu tiên xuất hiện trong câu trả lời |
| Prefill | Bước model xử lý toàn bộ token vào trong một lượt tính toán song song |
| Decode | Vòng lặp sinh token ra tuần tự, mỗi token cần biết token trước đó vừa sinh ra là gì |
| Prompt caching | Lưu phần cố định của prompt (system prompt, tài liệu tĩnh) để lần gọi sau chỉ tính phí phần mới |
| PII | Thông tin định danh cá nhân (số tài khoản, số điện thoại, tên...) — không được vào prompt khi chưa masking |
| Prompt injection | Chèn chỉ dẫn giả vào dữ liệu model sẽ đọc, khiến model làm theo lệnh giả thay vì chỉ dẫn hệ thống thật (LLM01:2025) |
| Indirect injection | Prompt injection qua dữ liệu retrieve về hoặc tài liệu cần xử lý, không qua ô nhập liệu trực tiếp của người dùng |
| Least privilege | Nguyên tắc giới hạn quyền tool/API của agent đúng theo nhu cầu tác vụ, không cấp quyền rộng "phòng khi cần" |
⚠️ Pitfall tổng hợp
1. Sưu tầm "mẹo câu thần chú" (hứa tip, đóng vai chuyên gia) thay vì bám cơ chế:
Hiệu ứng đó ăn theo quirk huấn luyện của một model cụ thể, mất tác dụng hoặc đảo chiều ở phiên bản sau. Ba nguyên tắc bám cơ chế (cấu trúc, few-shot, chain-of-thought) thì còn đúng qua nhiều thế hệ model.
2. Yêu cầu model suy luận từng bước nhưng không giới hạn định dạng output cuối:
Model lan man, đôi khi quên hẳn kết luận. Luôn kèm cấu trúc output ngay sau yêu cầu suy luận.
3. Coi fine-tune là cách nạp "cơ sở dữ liệu nội bộ" vào model:
Fine-tune dạy hành vi, không nạp sự kiện đáng tin — nạp sự kiện mới là việc của RAG.
4. Dùng chung một đợt dữ liệu vừa để fine-tune vừa để đánh giá:
Đúng bẫy rò rỉ dữ liệu — điểm đánh giá chỉ phản ánh học thuộc đặc thù đợt dữ liệu đó, không phải khả năng tổng quát.
5. Coi "agent thông minh hơn" nên dùng cho mọi tính năng AI:
Agent đánh đổi chi phí/độ trễ lấy khả năng xử lý số bước không biết trước. Bài toán một-phát-ăn-ngay dùng agent chỉ cộng thêm chi phí và điểm hỏng.
6. Tin vài case demo chọn thuận tay là đủ bằng chứng để ship:
Case demo không đại diện cho traffic thật, không lặp lại được, không so sánh được giữa hai phiên bản. Golden set mới là bằng chứng sống được qua thời gian.
7. Chỉnh prompt liên tục cho tới khi golden set báo điểm gần tuyệt đối:
Đó là "train" trên chính bộ đo — điểm cao không còn chứng minh gì về case chưa nghĩ tới. Thêm case mới định kỳ từ log thật thay vì tối ưu khít một bộ case cố định.
8. Tưởng streaming giảm cost hoặc giảm tổng thời gian sinh:
Streaming chỉ đổi cách hiển thị — tổng token, tổng thời gian, tổng tiền đều không đổi. Nó cứu trải nghiệm cảm nhận, không cứu con số thật.
9. Nghĩ "system prompt viết chặt" là chặn được prompt injection:
System prompt vẫn chỉ là token trong cùng một chuỗi, không có đặc quyền kiến trúc nào khiến model tuân theo tuyệt đối — không đủ chống indirect injection qua dữ liệu retrieve về.
✅ Self-assessment
Bạn đã đạt module này nếu trả lời được:
- Bạn có viết được một prompt cấu trúc rõ — vai trò, ví dụ đúng dạng, tách bước suy luận — bám vào cơ chế model thay vì chỉ áp mẹo câu chữ không?
- Nếu chưa: đọc lại bài 01 mục 2.
- Bạn có justify được khi nào fine-tune xứng đáng chi phí, vì sao nó không nạp nổi một sự kiện mới một cách đáng tin, và cái giá catastrophic forgetting + staleness là gì không?
- Nếu chưa: đọc lại bài 02 mục 2–4.
- Bạn có giải thích được agent là gì — LLM cộng tool cộng vòng lặp — và vì sao nó tốn chi phí/rủi ro lỗi cộng dồn hơn một lần gọi model không?
- Nếu chưa: đọc lại bài 03 mục 2 và 4.
- Bạn có tự dựng được một bộ eval tối thiểu bằng golden set — case thường gặp, case biên, case phải từ chối — thay vì chỉ tin vào demo không?
- Nếu chưa: đọc lại bài 04 mục 3–5.
- Bạn có ước lượng được cost và latency của một AI feature từ số token vào/ra, và biết đòn bẩy nào giảm được biến nào không?
- Nếu chưa: đọc lại bài 05 mục 2 và 5.
- Bạn có chẩn đoán được rủi ro privacy và prompt injection của một thiết kế AI feature cụ thể bằng khung OWASP LLM Top 10 không?
- Nếu chưa: đọc lại bài 06 mục 2–3 và 6.
- Bạn có tự thiết kế được một checklist ship tối thiểu — kiến trúc, eval, cost, privacy, fallback — cho một AI feature thật, không chỉ liệt kê từng khái niệm rời rạc không?
- Nếu chưa: đọc lại bài 07 phần Lời giải.
🎓 Cả khoá AI Core: nhìn lại sáu module

Khoá AI Core đi đúng một đường: từ định vị AI trên bản đồ lớn (module 1), qua cơ chế học của mạng neural (module 2), tới cách một LLM sinh văn bản token-by-token và vì sao nó bịa (module 3), kiến trúc transformer đứng sau khả năng đó (module 4), rồi cách nối model với dữ liệu riêng qua embedding và RAG (module 5). Module 6 là điểm đến: mọi cơ chế đó hội tụ thành sáu quyết định một engineer thực sự phải ra khi ship một AI feature.
Thông điệp chốt của cả khoá: giá trị không nằm ở việc thuộc tên một framework hay một API cụ thể — cả hai đổi liên tục theo từng quý. Giá trị nằm ở việc hiểu cỗ máy bên dưới: token sinh ra thế nào, vì sao nó bịa, embedding đo "gần nghĩa" ra sao, và cái giá thật của mỗi quyết định kiến trúc. Hiểu tới mức đó, bạn tự đọc được tài liệu của framework mới ra tuần sau mà không cần đợi ai giải thích lại từ đầu — đó là khác biệt giữa việc "biết dùng một SDK" và việc "hiểu vì sao SDK đó được thiết kế như vậy".
🚀 Bước tiếp theo
- Áp checklist ship (bài 07) vào một feature AI thật ở công ty bạn — không cần chờ dự án lớn, ngay cả một tính năng nhỏ (tóm tắt, trích xuất, chatbot nội bộ) cũng đủ để kiểm cả năm mục: kiến trúc, eval, cost, privacy, fallback.
- Muốn tự code Spring AI (RAG, tool calling, ChatClient) thay vì chỉ ra quyết định kiến trúc: khoá Spring Deploy, Architecture & AI có module Spring AI riêng — hiện đang sắp ra mắt trên nền tảng, nội dung module 6 này là đúng nền tư duy cần trước khi bước vào phần code cụ thể.
- Không có "module 7" nào tiếp theo trong AI Core — khoá dừng lại ở đúng điểm một engineer cần: đủ hiểu cơ chế để tự ra quyết định, tự đọc tài liệu mới, và tự chất vấn một AI feature trước khi ship.
📚 Tài liệu mở rộng
- Paper — prompt: Brown et al. — Language Models are Few-Shot Learners (arXiv:2005.14165); Wei et al. — Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (arXiv:2201.11903)
- Paper — fine-tune vs RAG: Ovadia et al. — Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs (arXiv:2312.05934), EMNLP 2024
- Paper — agent: Yao et al. — ReAct: Synergizing Reasoning and Acting in Language Models (arXiv:2210.03629); Anthropic — Building Effective AI Agents
- Paper — eval: Zheng, Chiang, Sheng et al. — Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (arXiv:2306.05685)
- Paper — prompt injection: Greshake et al. — Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection (arXiv:2302.12173)
- Khung tham chiếu: OWASP Top 10 for LLM Applications 2025
- Docs chính chủ: Anthropic — Prompt caching; Anthropic — Streaming Messages
Bài này đáng gửi cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
Bài này có giúp bạn hiểu bản chất không?
Hỏi đáp về bài này
Chưa có câu hỏi
Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).
Đặt câu hỏi đầu tiên