Module 1: Foundation LLM
- Bài 1: LLM là gì? Phân biệt với ML / DL truyền thống
- Bài 2: Tokenization — vì sao LLM chia chữ thành token
- Bài 3: BPE (Byte-Pair Encoding) — thuật toán token hóa của GPT
- Bài 4: SentencePiece và WordPiece — của Google / BERT
- Bài 5: Vocabulary và token ID
- Bài 6: Text Embedding — biến token thành vector
- Bài 7: Context window — giới hạn input của LLM
Module 2: Transformer
- Bài 8: Trước Transformer — vì sao RNN không đủ
- Bài 9: Attention mechanism — ý tưởng cốt lõi
- Bài 10: Self-Attention — token "nhìn" các token khác
- Bài 11: Multi-Head Attention — nhiều góc nhìn song song
- Bài 12: Positional Encoding — đưa thông tin thứ tự vào model
- Bài 13: Kiến trúc Transformer block — Attention + FFN + Residual
- Bài 14: Encoder-only (BERT) vs Decoder-only (GPT) vs Encoder-Decoder (T5)
Module 3: Hugging Face
- Bài 15: Hugging Face Hub — kho model open source
- Bài 16: Transformers library — load và chạy model trong 5 dòng code
- Bài 17: Pipeline API — giải quyết task NLP nhanh
- Bài 18: AutoModel và AutoTokenizer — pattern chuẩn
- Bài 19: Chạy SLM (Small Language Model) trên máy cá nhân — Llama-3.2-1B, Phi-3-mini
- Bài 20: Datasets library — load dataset chuẩn
Module 4: Prompt Engineering
- Bài 21: 3 vai trò trong prompt: System / User / Assistant
- Bài 22: Context — cung cấp background cho LLM
- Bài 23: Task description — yêu cầu cụ thể
- Bài 24: Output format — ép LLM trả về đúng cấu trúc
- Bài 25: Zero-shot prompting
- Bài 26: Few-shot prompting — học từ ví dụ
- Bài 27: Chain-of-Thought (CoT) — ép suy luận từng bước
- Bài 28: Self-consistency và Tree-of-Thoughts (intro)
- Bài 29: Structured Output: JSON mode, Pydantic schema
- Bài 30: Sampling: Temperature, Top-K, Top-P — điều khiển độ sáng tạo
Module 5: OpenAI API & Apps
- Bài 31: OpenAI API — gọi GPT từ Python
- Bài 32: Anthropic Claude API — alternative với context dài
- Bài 33: Streaming response — hiển thị token theo thời gian thực
- Bài 34: Chi phí token và cách tối ưu
Module 6: RAG
- Bài 35: RAG là gì? Vì sao cần nó
- Bài 36: Embedding model — chọn model phù hợp (sentence-transformers, BGE, OpenAI)
- Bài 37: Vector Database basic — ChromaDB cho prototype
- Bài 38: Chunking strategy — chia tài liệu sao cho hiệu quả
- Bài 39: Similarity search và top-k retrieval
- Bài 40: Re-ranking để cải thiện độ chính xác
- Bài 41: Xây dựng QA system trên PDF cá nhân
Module 7: Function Calling
- Bài 42: Function Calling là gì? Vì sao LLM cần gọi function
- Bài 43: Định nghĩa tool schema (JSON Schema)
- Bài 44: Workflow: LLM chọn tool → app thực thi → trả kết quả về
- Bài 45: Parallel tool calls và sequential tool calls
- Bài 46: Tool error handling — khi function fail
Module 8: Fine-tuning
- Bài 47: Khi nào nên fine-tune, khi nào dùng RAG / prompt engineering
- Bài 48: Full fine-tuning vs Parameter-Efficient Fine-tuning (PEFT)
- Bài 49: LoRA (Low-Rank Adaptation) — fine-tune chỉ vài % tham số
- Bài 50: QLoRA — fine-tune trên GPU consumer (4-bit quantization)
- Bài 51: Chuẩn bị dataset cho fine-tune (instruction tuning format)
- Bài 52: Fine-tune SLM với Hugging Face trl library
- Bài 53: RLHF / DPO intuition — alignment với feedback con người
Module 9: LLM Evaluation
- Bài 54: Vì sao đánh giá LLM khó hơn ML truyền thống
- Bài 55: Reference-based metrics: BLEU, ROUGE, BERTScore
- Bài 56: LLM-as-Judge — dùng LLM mạnh để chấm LLM yếu
- Bài 57: Hallucination — phát hiện và đo lường
- Bài 58: RAG evaluation: Faithfulness, Answer Relevancy, Context Precision
- Bài 59: Benchmark phổ biến: MMLU, HellaSwag, HumanEval (overview)
