@xdev-asia/xdev-knowledge-mcp 1.0.58 → 1.0.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/content/blog/ai/nvidia-dli-generative-ai-chung-chi-va-lo-trinh-hoc.md +894 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/01-deep-learning-foundations/lessons/01-bai-1-pytorch-neural-network-fundamentals.md +790 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/01-deep-learning-foundations/lessons/02-bai-2-transformer-architecture-attention.md +984 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/02-diffusion-models/lessons/01-bai-3-unet-architecture-denoising.md +1111 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/02-diffusion-models/lessons/02-bai-4-ddpm-forward-reverse-diffusion.md +1007 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/02-diffusion-models/lessons/03-bai-5-clip-text-to-image-pipeline.md +1037 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/03-llm-applications-rag/lessons/01-bai-6-llm-inference-pipeline-design.md +929 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/03-llm-applications-rag/lessons/02-bai-7-rag-retrieval-augmented-generation.md +1099 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/03-llm-applications-rag/lessons/03-bai-8-rag-agent-build-evaluate.md +1249 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/04-agentic-ai-customization/lessons/01-bai-9-agentic-ai-multi-agent-systems.md +1357 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/chapters/04-agentic-ai-customization/lessons/02-bai-10-llm-evaluation-lora-fine-tuning.md +1867 -0
- package/content/series/luyen-thi/luyen-thi-nvidia-dli-generative-ai/index.md +237 -0
- package/data/quizzes/nvidia-dli-generative-ai.json +350 -0
- package/data/quizzes.json +14 -0
- package/package.json +1 -1
|
@@ -0,0 +1,894 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 05e72d3d-f5d2-4304-8fe1-c29fe5ac8ec6
|
|
3
|
+
title: 'NVIDIA DLI Generative AI: Toàn bộ chứng chỉ, khóa học, bài thi và lộ trình chuẩn bị chi tiết'
|
|
4
|
+
slug: nvidia-dli-generative-ai-chung-chi-va-lo-trinh-hoc
|
|
5
|
+
excerpt: Hướng dẫn chi tiết toàn bộ hệ sinh thái NVIDIA DLI về Generative AI và LLM --- từ khóa Diffusion Models, RAG Agents, Agentic AI đến Transformer NLP. Phân tích nội dung bài thi, độ khó assessment, câu hỏi mẫu, mẹo thi, và lộ trình học từ beginner đến professional.
|
|
6
|
+
featured_image: /images/blog/nvidia-dli-genai-featured.png
|
|
7
|
+
type: blog
|
|
8
|
+
reading_time: 30
|
|
9
|
+
view_count: 0
|
|
10
|
+
meta: null
|
|
11
|
+
published_at: '2026-04-13T14:00:00.000000Z'
|
|
12
|
+
created_at: '2026-04-13T14:00:00.000000Z'
|
|
13
|
+
author: {id: 019c9616-d2b4-713f-9b2c-40e2e92a05cf, name: Duy Tran, avatar: avatars/7e8eb5c6-4cac-455b-a701-4060f085d501.jpeg}
|
|
14
|
+
category: {id: 019c9616-cat1-7001-a001-000000000001, name: AI, slug: ai}
|
|
15
|
+
tags: [{name: AI, slug: ai}, {name: LLM, slug: llm}, {name: Deep Learning, slug: deep-learning}, {name: NVIDIA, slug: nvidia}, {name: Certification, slug: certification}]
|
|
16
|
+
comments: []
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
Nếu bạn đang tìm một **chứng chỉ AI thực chiến** thay vì chỉ lý thuyết suông, NVIDIA Deep Learning Institute (DLI) là lựa chọn hàng đầu. Khác với AWS hay Azure tập trung vào cloud platform riêng, NVIDIA DLI dạy bạn **hands-on coding trực tiếp** trên GPU --- từ build U-Net diffusion model từ đầu, đến deploy RAG agent production-grade.
|
|
20
|
+
|
|
21
|
+
Bài viết này sẽ đi sâu vào **toàn bộ hệ thống khóa học và chứng chỉ Generative AI** của NVIDIA DLI: nội dung từng khóa, format bài thi, độ khó assessment, câu hỏi mẫu, và lộ trình chuẩn bị chi tiết.
|
|
22
|
+
|
|
23
|
+
* * *
|
|
24
|
+
|
|
25
|
+
## 1. Tổng quan hệ thống NVIDIA DLI
|
|
26
|
+
|
|
27
|
+
NVIDIA DLI **không phải là một certification exam truyền thống** như AWS hay Azure. Thay vào đó, NVIDIA có **2 loại credential** riêng biệt:
|
|
28
|
+
|
|
29
|
+
### DLI Course Certificates (Completion-based)
|
|
30
|
+
|
|
31
|
+
- Hoàn thành khóa học self-paced hoặc instructor-led
|
|
32
|
+
- Phải **pass bài assessment cuối khóa** (hands-on coding, không phải MCQ)
|
|
33
|
+
- Nhận certificate qua email, verify trên NVIDIA
|
|
34
|
+
- Giá: **$30 --- $90/khóa** (self-paced) hoặc workshop fee (instructor-led)
|
|
35
|
+
- **Không có thời gian hết hạn**
|
|
36
|
+
|
|
37
|
+
### NVIDIA Professional Certifications (Exam-based)
|
|
38
|
+
|
|
39
|
+
- Thi proctored exam qua Pearson VUE
|
|
40
|
+
- Dạng multiple-choice + scenario-based
|
|
41
|
+
- Giá: **$125 (Associate)** hoặc **$400 (Professional)**
|
|
42
|
+
- Thời gian: **1--2 giờ**
|
|
43
|
+
- Hiệu lực: **2 năm**, sau đó phải thi lại
|
|
44
|
+
- Hiện có các chứng chỉ: **NCA-AIIO** (Associate), **NCP-AII**, **NCP-AIO**, **NCP-AIN** (Professional)
|
|
45
|
+
|
|
46
|
+
> **Lưu ý quan trọng:** Tính đến tháng 4/2026, NVIDIA **chưa có Professional Certification riêng cho Generative AI/LLM**. Các chứng chỉ professional hiện tại tập trung vào **AI Infrastructure, Operations, và Networking**. Tuy nhiên, DLI Course Certificates cho GenAI/LLM được industry công nhận rộng rãi và có assessment **khó hơn đáng kể** so với MCQ thông thường.
|
|
47
|
+
|
|
48
|
+
* * *
|
|
49
|
+
|
|
50
|
+
## 2. Generative AI with Diffusion Models --- Khoá khó nhất
|
|
51
|
+
|
|
52
|
+
<table>
|
|
53
|
+
<tr><td><strong>Mã khóa</strong></td><td>DLI+S-FX-14+V1</td></tr>
|
|
54
|
+
<tr><td><strong>Thời lượng</strong></td><td>8 giờ</td></tr>
|
|
55
|
+
<tr><td><strong>Giá</strong></td><td>$90</td></tr>
|
|
56
|
+
<tr><td><strong>Level</strong></td><td>Technical - Intermediate</td></tr>
|
|
57
|
+
<tr><td><strong>Ngôn ngữ</strong></td><td>English</td></tr>
|
|
58
|
+
<tr><td><strong>Framework</strong></td><td>PyTorch, CLIP</td></tr>
|
|
59
|
+
<tr><td><strong>Certificate</strong></td><td>Có (sau khi pass assessment)</td></tr>
|
|
60
|
+
</table>
|
|
61
|
+
|
|
62
|
+
### Nội dung chi tiết từng module
|
|
63
|
+
|
|
64
|
+
**Module 1: From U-Net to Diffusion**
|
|
65
|
+
- Build kiến trúc **U-Net từ đầu** bằng PyTorch
|
|
66
|
+
- Train model remove noise từ image
|
|
67
|
+
- Hiểu encoder-decoder architecture với skip connections
|
|
68
|
+
- Hands-on: Viết forward pass, loss function, training loop
|
|
69
|
+
|
|
70
|
+
**Module 2: Diffusion Models**
|
|
71
|
+
- Implement **forward diffusion function** --- thêm noise dần vào image
|
|
72
|
+
- Update U-Net architecture để accommodate **timestep embedding**
|
|
73
|
+
- Implement **reverse diffusion function** --- denoise image từ pure noise
|
|
74
|
+
- Toán học: Markov chain, variance schedule ($\beta_t$), reparameterization trick
|
|
75
|
+
|
|
76
|
+
**Module 3: Optimizations**
|
|
77
|
+
- Implement **Group Normalization** thay Batch Norm (stable hơn cho small batches)
|
|
78
|
+
- Implement **GELU activation** (Gaussian Error Linear Unit)
|
|
79
|
+
- Implement **Rearrange Pooling** cho spatial downsampling
|
|
80
|
+
- Implement **Sinusoidal Position Embeddings** cho timestep encoding:
|
|
81
|
+
|
|
82
|
+
$$PE(t, 2i) = \sin\left(\frac{t}{10000^{2i/d}}\right)$$
|
|
83
|
+
$$PE(t, 2i+1) = \cos\left(\frac{t}{10000^{2i/d}}\right)$$
|
|
84
|
+
|
|
85
|
+
**Module 4: Classifier-Free Diffusion Guidance**
|
|
86
|
+
- Thêm **categorical embeddings** vào U-Net
|
|
87
|
+
- Train model với **Bernoulli mask** --- random drop condition
|
|
88
|
+
- Implement **CFG scale** ($w$) cho inference:
|
|
89
|
+
|
|
90
|
+
$$\hat{\epsilon}_\theta(x_t, c) = \epsilon_\theta(x_t, \varnothing) + w \cdot (\epsilon_\theta(x_t, c) - \epsilon_\theta(x_t, \varnothing))$$
|
|
91
|
+
|
|
92
|
+
- Hiểu trade-off giữa diversity vs. fidelity
|
|
93
|
+
|
|
94
|
+
**Module 5: CLIP (Contrastive Language-Image Pretraining)**
|
|
95
|
+
- Sử dụng **CLIP Encodings** để map text → embedding space
|
|
96
|
+
- Kết hợp CLIP với U-Net để tạo **text-to-image pipeline**
|
|
97
|
+
- Implement cross-attention giữa text embeddings và image features
|
|
98
|
+
- Hands-on: Generate images từ English text prompts
|
|
99
|
+
|
|
100
|
+
### Assessment (Bài thi)
|
|
101
|
+
|
|
102
|
+
**Format:** Coding assessment trực tiếp trong Jupyter Notebook trên GPU cloud
|
|
103
|
+
|
|
104
|
+
**Yêu cầu:**
|
|
105
|
+
1. **Modify U-Net architecture** để support một condition mới (không phải copy-paste từ lab)
|
|
106
|
+
2. **Implement custom diffusion pipeline** kết hợp nhiều kỹ thuật đã học
|
|
107
|
+
3. **Debug model** khi output không đúng --- tìm lỗi trong noise schedule hoặc architecture
|
|
108
|
+
4. Code phải **chạy được** và output phải **đạt quality threshold**
|
|
109
|
+
|
|
110
|
+
**Điểm đậu:** Assessment được auto-grade, code phải compile + output phải match expected behavior
|
|
111
|
+
|
|
112
|
+
**Độ khó: 🔴🔴🔴🔴🔴 (5/5)**
|
|
113
|
+
|
|
114
|
+
Đây là khóa **khó nhất** trong toàn bộ GenAI track vì:
|
|
115
|
+
- Không có multiple-choice --- phải **viết code từ đầu**
|
|
116
|
+
- Đòi hỏi hiểu sâu **toán học diffusion**: variance schedule, ELBO, score matching
|
|
117
|
+
- Phải biết **PyTorch nhuần nhuyễn**: custom modules, autograd, tensor operations
|
|
118
|
+
- Thời gian hạn chế --- không thể Google từng dòng code
|
|
119
|
+
|
|
120
|
+
### Câu hỏi mẫu và dạng bài
|
|
121
|
+
|
|
122
|
+
> **Dạng 1: Implement Component**
|
|
123
|
+
> Cho skeleton code, implement `SinusoidalPositionEmbeddings` class với input là timestep tensor, output là embedding tensor kích thước `(batch_size, dim)`.
|
|
124
|
+
|
|
125
|
+
> **Dạng 2: Debug**
|
|
126
|
+
> Model diffusion sau training cho ra pure noise. Tìm lỗi trong function `reverse_diffusion()` dưới đây. (Gợi ý: kiểm tra variance schedule)
|
|
127
|
+
|
|
128
|
+
> **Dạng 3: Extend Architecture**
|
|
129
|
+
> Thêm classifier-free guidance vào model đã train. Implement function `guided_sampling(model, prompt, cfg_scale)` sao cho:
|
|
130
|
+
> - Khi `cfg_scale=0`: output giống unconditional model
|
|
131
|
+
> - Khi `cfg_scale=7.5`: output match prompt
|
|
132
|
+
|
|
133
|
+
> **Dạng 4: Integration**
|
|
134
|
+
> Kết hợp CLIP encoder với diffusion model. Viết full pipeline từ text input → generated image, bao gồm:
|
|
135
|
+
> - Text encoding qua CLIP
|
|
136
|
+
> - Cross-attention injection vào U-Net
|
|
137
|
+
> - Reverse diffusion loop với DDPM scheduler
|
|
138
|
+
|
|
139
|
+
### Mẹo thi
|
|
140
|
+
|
|
141
|
+
1. **Làm lab kỹ, đừng chỉ chạy cell** --- hiểu từng dòng code, đặc biệt tensor shapes
|
|
142
|
+
2. **Nhớ công thức toán**: $q(x_t | x_{t-1})$, $p_\theta(x_{t-1} | x_t)$, noise scheduling
|
|
143
|
+
3. **Practice PyTorch cơ bản**: `nn.Module`, `forward()`, `torch.randn()`, einops
|
|
144
|
+
4. **Đừng hoảng nếu model output noise** --- debug systematic: check shapes → check loss → check scheduling
|
|
145
|
+
5. **Thời gian**: Dành 60% thời gian cho lab, 40% cho assessment
|
|
146
|
+
|
|
147
|
+
* * *
|
|
148
|
+
|
|
149
|
+
## 3. Building RAG Agents with LLMs --- Khóa phổ biến nhất
|
|
150
|
+
|
|
151
|
+
<table>
|
|
152
|
+
<tr><td><strong>Mã khóa</strong></td><td>DLI+S-FX-15+V1</td></tr>
|
|
153
|
+
<tr><td><strong>Thời lượng</strong></td><td>8 giờ</td></tr>
|
|
154
|
+
<tr><td><strong>Giá</strong></td><td>$90</td></tr>
|
|
155
|
+
<tr><td><strong>Level</strong></td><td>Technical - Intermediate</td></tr>
|
|
156
|
+
<tr><td><strong>Framework</strong></td><td>LangChain, Gradio, LangServe</td></tr>
|
|
157
|
+
<tr><td><strong>Certificate</strong></td><td>Có</td></tr>
|
|
158
|
+
</table>
|
|
159
|
+
|
|
160
|
+
### Nội dung chi tiết từng module
|
|
161
|
+
|
|
162
|
+
**Module 1: LLM Inference Interfaces & Microservices**
|
|
163
|
+
- Setup environment kết nối với NVIDIA NIM (Inference Microservices)
|
|
164
|
+
- Query LLM qua API: prompt formatting, token management
|
|
165
|
+
- Hiểu inference parameters: temperature, top_p, max_tokens, stop sequences
|
|
166
|
+
|
|
167
|
+
**Module 2: Pipeline Design with LangChain, Gradio, LangServe**
|
|
168
|
+
- Build LLM pipeline với **LangChain Expression Language (LCEL)**
|
|
169
|
+
- Tạo UI prototype nhanh với **Gradio**
|
|
170
|
+
- Deploy pipeline production qua **LangServe** (FastAPI-based)
|
|
171
|
+
- Chain multiple components: prompt template → LLM → output parser
|
|
172
|
+
|
|
173
|
+
**Module 3: Dialog Management with Running States**
|
|
174
|
+
- Implement **conversation memory** --- giữ context qua nhiều turns
|
|
175
|
+
- Build **state machine** cho dialog flow
|
|
176
|
+
- Extract structured information từ free-text conversation
|
|
177
|
+
- Coerce LLM output vào **Pydantic models** (structured output)
|
|
178
|
+
|
|
179
|
+
**Module 4: Working with Documents**
|
|
180
|
+
- Load, split, parse documents (PDF, markdown, code files)
|
|
181
|
+
- Implement **chunking strategies**: recursive character, semantic, sentence
|
|
182
|
+
- Metadata extraction và document preprocessing
|
|
183
|
+
|
|
184
|
+
**Module 5: Embeddings for Semantic Similarity & Guardrailing**
|
|
185
|
+
- Sử dụng embedding models cho **semantic search**
|
|
186
|
+
- Implement **cosine similarity** cho retrieval ranking
|
|
187
|
+
- Build **guardrails** bằng embedding distance --- detect off-topic queries
|
|
188
|
+
- Hands-on: Input/output guardrailing system
|
|
189
|
+
|
|
190
|
+
**Module 6: Vector Stores for RAG Agents**
|
|
191
|
+
- Setup vector database (FAISS/Milvus)
|
|
192
|
+
- Implement full **RAG pipeline**: query → retrieve → augment → generate
|
|
193
|
+
- Evaluate RAG quality: relevance, faithfulness, answer correctness
|
|
194
|
+
- Build agent có khả năng answer questions về research papers
|
|
195
|
+
|
|
196
|
+
### Assessment
|
|
197
|
+
|
|
198
|
+
**Format:** Coding-based, build và deploy RAG agent hoàn chỉnh
|
|
199
|
+
|
|
200
|
+
**Yêu cầu:**
|
|
201
|
+
1. Implement RAG pipeline có thể answer questions từ **dataset chưa thấy**
|
|
202
|
+
2. Agent phải handle **multi-turn conversation** --- nhớ context
|
|
203
|
+
3. Implement **guardrailing** --- reject off-topic queries
|
|
204
|
+
4. Code phải chạy end-to-end, agent response phải **relevant và accurate**
|
|
205
|
+
|
|
206
|
+
**Độ khó: 🔴🔴🔴🔴⚪ (4/5)**
|
|
207
|
+
|
|
208
|
+
**Dễ hơn Diffusion Models** vì:
|
|
209
|
+
- Nhiều abstraction layer (LangChain, Gradio) --- ít low-level coding
|
|
210
|
+
- Không đòi hỏi toán nặng
|
|
211
|
+
- Nhưng vẫn khó vì phải **integrate nhiều components** thành system hoàn chỉnh
|
|
212
|
+
|
|
213
|
+
### Câu hỏi mẫu
|
|
214
|
+
|
|
215
|
+
> **Dạng 1: Pipeline Construction**
|
|
216
|
+
> Cho dataset PDF papers, build RAG pipeline sao cho:
|
|
217
|
+
> - Chunk size = 512, overlap = 128
|
|
218
|
+
> - Embedding model: `NV-Embed-QA`
|
|
219
|
+
> - Top-k retrieval: 5
|
|
220
|
+
> - Output: answer + source citations
|
|
221
|
+
|
|
222
|
+
> **Dạng 2: Guardrailing**
|
|
223
|
+
> Implement input guardrail sao cho queries không liên quan đến dataset bị reject với message "I can only answer questions about AI research papers."
|
|
224
|
+
|
|
225
|
+
> **Dạng 3: State Management**
|
|
226
|
+
> Modify agent để support follow-up questions. User hỏi "What is attention?" → agent trả lời. User hỏi tiếp "Who invented it?" → agent phải hiểu "it" = attention mechanism.
|
|
227
|
+
|
|
228
|
+
### Mẹo thi
|
|
229
|
+
|
|
230
|
+
1. **Đọc kỹ LangChain docs** trước --- đặc biệt LCEL syntax
|
|
231
|
+
2. **Hiểu embedding dimensions** --- mismatch dimension là lỗi phổ biến nhất
|
|
232
|
+
3. **Test pipeline từng bước**: retrieval trước, rồi mới ghép generation
|
|
233
|
+
4. **Chunk size matters** --- quá nhỏ mất context, quá lớn noise nhiều
|
|
234
|
+
|
|
235
|
+
* * *
|
|
236
|
+
|
|
237
|
+
## 4. Building Agentic AI Applications with LLMs --- Khoá nâng cao nhất
|
|
238
|
+
|
|
239
|
+
<table>
|
|
240
|
+
<tr><td><strong>Mã khóa</strong></td><td>DLI+C-FX-25+V1</td></tr>
|
|
241
|
+
<tr><td><strong>Thời lượng</strong></td><td>8 giờ</td></tr>
|
|
242
|
+
<tr><td><strong>Giá</strong></td><td>Instructor-Led (liên hệ NVIDIA)</td></tr>
|
|
243
|
+
<tr><td><strong>Level</strong></td><td>Technical - Intermediate</td></tr>
|
|
244
|
+
<tr><td><strong>Framework</strong></td><td>LangGraph, NVIDIA NIM, LangChain</td></tr>
|
|
245
|
+
<tr><td><strong>Certificate</strong></td><td>Có</td></tr>
|
|
246
|
+
</table>
|
|
247
|
+
|
|
248
|
+
### Nội dung chi tiết
|
|
249
|
+
|
|
250
|
+
**Section 1: Fundamentals of Agent Abstraction and LLMs**
|
|
251
|
+
- LLM capabilities vs. pitfalls (hallucination, context limits, reasoning failures)
|
|
252
|
+
- Agents as **task decomposition abstraction**
|
|
253
|
+
- Minimal agent demo: free-text LLM → structured action → execution
|
|
254
|
+
|
|
255
|
+
**Section 2: Structured Output & Basic Fulfillment**
|
|
256
|
+
- Bottleneck LLM output vào **JSON/task-based schema**
|
|
257
|
+
- Domain alignment & stable schema enforcement
|
|
258
|
+
- Introduction to **cognitive architectures** (ReAct, Plan-and-Execute, LATS)
|
|
259
|
+
|
|
260
|
+
**Section 3: Retrieval Mechanisms & Environmental Tooling**
|
|
261
|
+
- Formalize **environment access strategies** cho agents
|
|
262
|
+
- Build tool interfaces cho DB, APIs, external repos
|
|
263
|
+
- Vector-based RAG cho semantic document retrieval
|
|
264
|
+
- **Knowledge graphs** cho structured domain knowledge
|
|
265
|
+
|
|
266
|
+
**Section 4: Multi-Agent Systems & Frameworks**
|
|
267
|
+
- Task decomposition among **specialized agents**
|
|
268
|
+
- Communication buffers và process distribution schemes
|
|
269
|
+
- LangGraph: state machines cho complex agent workflows
|
|
270
|
+
- Differentiate frameworks: LangGraph vs CrewAI vs AutoGen
|
|
271
|
+
|
|
272
|
+
**Section 5: Final Assessment**
|
|
273
|
+
- Deploy agent system schedules multiple retrieval operations
|
|
274
|
+
- Gather research từ multiple sources → synthesize → return to user
|
|
275
|
+
- **Optional module**: Real-time agents --- multimodal, robotics, audio systems, world models
|
|
276
|
+
|
|
277
|
+
### Assessment
|
|
278
|
+
|
|
279
|
+
**Độ khó: 🔴🔴🔴🔴🔴 (5/5)**
|
|
280
|
+
|
|
281
|
+
Phải deploy **multi-agent system hoàn chỉnh** có khả năng:
|
|
282
|
+
- Nhận query phức tạp từ user
|
|
283
|
+
- Phân tách thành sub-tasks
|
|
284
|
+
- Route đến specialized agents
|
|
285
|
+
- Aggregate results
|
|
286
|
+
- Return coherent response
|
|
287
|
+
|
|
288
|
+
Đây là assessment **system-level** --- không chỉ viết 1 function mà phải **architect toàn bộ pipeline**.
|
|
289
|
+
|
|
290
|
+
* * *
|
|
291
|
+
|
|
292
|
+
## 5. Evaluation and Light Customization of LLMs --- Khóa mới nhất
|
|
293
|
+
|
|
294
|
+
<table>
|
|
295
|
+
<tr><td><strong>Mã khóa</strong></td><td>DLI+S-FX-34+V1</td></tr>
|
|
296
|
+
<tr><td><strong>Thời lượng</strong></td><td>3 giờ</td></tr>
|
|
297
|
+
<tr><td><strong>Giá</strong></td><td>$90</td></tr>
|
|
298
|
+
<tr><td><strong>Level</strong></td><td>Intermediate</td></tr>
|
|
299
|
+
<tr><td><strong>Framework</strong></td><td>NVIDIA NeMo, NIM, MLflow, Docker</td></tr>
|
|
300
|
+
<tr><td><strong>Certificate</strong></td><td>Có</td></tr>
|
|
301
|
+
</table>
|
|
302
|
+
|
|
303
|
+
### Nội dung chi tiết
|
|
304
|
+
|
|
305
|
+
**Part 1: Fundamentals of LLM Evaluation**
|
|
306
|
+
- Query deployed NVIDIA NIM
|
|
307
|
+
- Evaluation techniques: eyeballing → systematic benchmark
|
|
308
|
+
- **GSM8K benchmark** --- đánh giá math reasoning
|
|
309
|
+
- **LLM-as-a-Judge** --- dùng LLM mạnh đánh giá LLM yếu
|
|
310
|
+
- **ELO ranking system** --- human evaluation methodology
|
|
311
|
+
|
|
312
|
+
**Part 2: Systematic Evaluation with NeMo**
|
|
313
|
+
- **NeMo Evaluator** microservice cho robust evaluation workflow
|
|
314
|
+
- Custom dataset preparation cho **legal domain QA**
|
|
315
|
+
- So sánh **zero-shot vs. few-shot (ICL)**
|
|
316
|
+
- Metrics: **BLEU, F1-score, similarity scores**
|
|
317
|
+
- Multi-faceted LLM-as-a-judge: correctness, conciseness, readability
|
|
318
|
+
- **MLflow** experiment tracking
|
|
319
|
+
|
|
320
|
+
**Part 3: Light Customization with LoRA**
|
|
321
|
+
- **Parameter-Efficient Fine-Tuning (PEFT)** principles
|
|
322
|
+
- **Low-Rank Adaptation (LoRA)** --- fine-tune chỉ fraction of parameters:
|
|
323
|
+
|
|
324
|
+
$$W' = W + \Delta W = W + BA$$
|
|
325
|
+
|
|
326
|
+
Với $B \in \mathbb{R}^{d \times r}$, $A \in \mathbb{R}^{r \times k}$, và rank $r \ll \min(d, k)$
|
|
327
|
+
|
|
328
|
+
- **NeMo Customizer** microservice để launch LoRA fine-tuning
|
|
329
|
+
- Monitor training: loss curves, convergence analysis
|
|
330
|
+
- **Final assessment**: So sánh fine-tuned model vs. base model qua evaluation metrics
|
|
331
|
+
|
|
332
|
+
### Assessment
|
|
333
|
+
|
|
334
|
+
**Độ khó: 🔴🔴🔴⚪⚪ (3/5)**
|
|
335
|
+
|
|
336
|
+
- Khóa ngắn nhất (3h) nhưng assessment vẫn hands-on
|
|
337
|
+
- Phải chạy evaluation pipeline và fine-tuning job thực tế
|
|
338
|
+
- So sánh quantitative: base model vs. ICL vs. LoRA fine-tuned
|
|
339
|
+
- Đòi hỏi hiểu metric interpretation --- không chỉ chạy code mà phải **phân tích kết quả**
|
|
340
|
+
|
|
341
|
+
* * *
|
|
342
|
+
|
|
343
|
+
## 6. Các khóa bổ trợ trong GenAI Track
|
|
344
|
+
|
|
345
|
+
### Introduction to Transformer-Based NLP (S-FX-08)
|
|
346
|
+
- **6 giờ | $30 | Beginner**
|
|
347
|
+
- Nền tảng cho tất cả khóa LLM
|
|
348
|
+
- NLP tasks: text classification, NER, author attribution, QA
|
|
349
|
+
- **Khuyến nghị**: học trước khi bắt đầu bất kỳ khóa nào khác
|
|
350
|
+
|
|
351
|
+
### Generative AI Explained (S-FX-07)
|
|
352
|
+
- **2 giờ | Free | Beginner**
|
|
353
|
+
- Khóa no-code, overview concepts
|
|
354
|
+
- Tốt cho managers, non-technical roles
|
|
355
|
+
- **Không có assessment** --- chỉ completion
|
|
356
|
+
|
|
357
|
+
### Prompt Engineering with LLaMA-2 (S-FX-12)
|
|
358
|
+
- **3 giờ | $30 | Beginner**
|
|
359
|
+
- ⚠️ **Đã expired** (Dec 2025) --- có thể NVIDIA sẽ update version mới
|
|
360
|
+
- Prompt iteration, system messages, few-shot learning, chatbot behavior
|
|
361
|
+
|
|
362
|
+
### Building AI Agents with Multimodal Models (C-FX-17)
|
|
363
|
+
- **8 giờ | Instructor-Led**
|
|
364
|
+
- Focus multimodal agents --- kết hợp vision + language
|
|
365
|
+
- Khóa mới nhất trong catalog 2026
|
|
366
|
+
|
|
367
|
+
* * *
|
|
368
|
+
|
|
369
|
+
## 7. Bảng so sánh tổng quan tất cả khoá GenAI
|
|
370
|
+
|
|
371
|
+
| Khóa | Mã | Giờ | Giá | Độ khó Assessment | Prerequisites |
|
|
372
|
+
|------|-----|-----|-----|-------------------|---------------|
|
|
373
|
+
| **Generative AI Explained** | S-FX-07 | 2h | Free | Không có | Không |
|
|
374
|
+
| **Intro to Transformer NLP** | S-FX-08 | 6h | $30 | ⭐⭐ | Deep learning cơ bản |
|
|
375
|
+
| **Generative AI with Diffusion Models** | S-FX-14 | 8h | $90 | ⭐⭐⭐⭐⭐ | PyTorch + Deep Learning |
|
|
376
|
+
| **Building RAG Agents** | S-FX-15 | 8h | $90 | ⭐⭐⭐⭐ | Python OOP + DL basics |
|
|
377
|
+
| **Eval & Customization of LLMs** | S-FX-34 | 3h | $90 | ⭐⭐⭐ | Python + LLM basics |
|
|
378
|
+
| **Agentic AI Applications** | C-FX-25 | 8h | Workshop | ⭐⭐⭐⭐⭐ | DL + Python Intermediate |
|
|
379
|
+
| **AI Agents with Multimodal** | C-FX-17 | 8h | Workshop | ⭐⭐⭐⭐ | DL + Vision |
|
|
380
|
+
|
|
381
|
+
* * *
|
|
382
|
+
|
|
383
|
+
## 8. So sánh NVIDIA DLI với các certification khác
|
|
384
|
+
|
|
385
|
+
| Tiêu chí | NVIDIA DLI GenAI | AWS AI Practitioner | Azure AI-102 | Databricks GenAI |
|
|
386
|
+
|-----------|------------------|---------------------|-------------|-----------------|
|
|
387
|
+
| **Format thi** | Coding hands-on | 85 MCQ | 50 MCQ + case study | 45 MCQ |
|
|
388
|
+
| **Code thực tế** | ✅ Viết code trên GPU | ❌ | ❌ | ❌ Nhưng có scenario |
|
|
389
|
+
| **Thời gian thi** | 1-2h (assessment) | 120 phút | 100 phút | 120 phút |
|
|
390
|
+
| **Giá** | $30-$90 (course) | $150 | $165 | $200 |
|
|
391
|
+
| **GPU access** | ✅ Cloud GPU miễn phí | ❌ | ❌ | ❌ |
|
|
392
|
+
| **Depth** | 🔴 Rất sâu (code-level) | 🟡 Shallow (concepts) | 🟠 Medium (Azure services) | 🟠 Medium (RAG/eval) |
|
|
393
|
+
| **Vendor lock-in** | Thấp (PyTorch, chuẩn mở) | Cao (AWS only) | Cao (Azure only) | Trung bình (Databricks) |
|
|
394
|
+
| **Industry recognition** | ⭐⭐⭐⭐ (kỹ thuật) | ⭐⭐⭐⭐⭐ (phổ biến) | ⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
395
|
+
| **Phù hợp cho** | ML Engineer, AI Researcher | SA, PM, Developer mọi level | Azure Developer | Data Engineer, ML Ops |
|
|
396
|
+
|
|
397
|
+
**Nhận xét:**
|
|
398
|
+
- **NVIDIA DLI** là chứng chỉ **kỹ thuật sâu nhất** --- bạn thực sự code deep learning models
|
|
399
|
+
- **AWS AI Practitioner** phổ biến nhất nhưng shallow --- chỉ concepts và AWS services
|
|
400
|
+
- **Databricks GenAI** nằm ở giữa --- có depth về RAG/eval nhưng vẫn MCQ
|
|
401
|
+
- Nếu bạn là **ML Engineer**: NVIDIA DLI → Databricks → AWS
|
|
402
|
+
- Nếu bạn là **Cloud Architect**: AWS → Azure → Databricks
|
|
403
|
+
|
|
404
|
+
* * *
|
|
405
|
+
|
|
406
|
+
## 9. Lộ trình chuẩn bị chi tiết
|
|
407
|
+
|
|
408
|
+
### Phase 1: Foundation (2 tuần)
|
|
409
|
+
|
|
410
|
+
**Mục tiêu:** Nắm vững deep learning fundamentals và PyTorch
|
|
411
|
+
|
|
412
|
+
<table>
|
|
413
|
+
<tr><th>Tuần</th><th>Hoạt động</th><th>Tài nguyên</th></tr>
|
|
414
|
+
<tr><td>1</td><td>Deep Learning basics: neural networks, backprop, CNN, RNN</td><td>DLI: Getting Started with Deep Learning (free)</td></tr>
|
|
415
|
+
<tr><td>1</td><td>PyTorch fundamentals: tensors, autograd, nn.Module</td><td>PyTorch Official Tutorials</td></tr>
|
|
416
|
+
<tr><td>2</td><td>Transformer architecture: attention mechanism, multi-head attention</td><td>DLI: Intro to Transformer NLP (S-FX-08, $30)</td></tr>
|
|
417
|
+
<tr><td>2</td><td>Hands-on: Fine-tune BERT cho text classification</td><td>HuggingFace Tutorials</td></tr>
|
|
418
|
+
</table>
|
|
419
|
+
|
|
420
|
+
### Phase 2: Generative AI Core (3 tuần)
|
|
421
|
+
|
|
422
|
+
**Mục tiêu:** Master diffusion models và LLM fundamentals
|
|
423
|
+
|
|
424
|
+
<table>
|
|
425
|
+
<tr><th>Tuần</th><th>Hoạt động</th><th>Tài nguyên</th></tr>
|
|
426
|
+
<tr><td>3</td><td>Diffusion theory: forward/reverse process, DDPM paper</td><td>Paper: "Denoising Diffusion Probabilistic Models" (Ho et al.)</td></tr>
|
|
427
|
+
<tr><td>3-4</td><td><strong>Khoá chính: Generative AI with Diffusion Models (S-FX-14, $90)</strong></td><td>NVIDIA DLI, 8 giờ</td></tr>
|
|
428
|
+
<tr><td>4</td><td>Ôn tập: U-Net code, noise scheduling, CLIP integration</td><td>Review lab notebooks</td></tr>
|
|
429
|
+
<tr><td>5</td><td>Bonus: Stable Diffusion internals, Latent Diffusion</td><td>Paper: "High-Resolution Image Synthesis with LDM"</td></tr>
|
|
430
|
+
</table>
|
|
431
|
+
|
|
432
|
+
### Phase 3: LLM Applications (3 tuần)
|
|
433
|
+
|
|
434
|
+
**Mục tiêu:** Build production-ready LLM systems
|
|
435
|
+
|
|
436
|
+
<table>
|
|
437
|
+
<tr><th>Tuần</th><th>Hoạt động</th><th>Tài nguyên</th></tr>
|
|
438
|
+
<tr><td>6</td><td>LangChain fundamentals, LCEL, prompt templates</td><td>LangChain docs + tutorials</td></tr>
|
|
439
|
+
<tr><td>6-7</td><td><strong>Khoá chính: Building RAG Agents (S-FX-15, $90)</strong></td><td>NVIDIA DLI, 8 giờ</td></tr>
|
|
440
|
+
<tr><td>7</td><td>Vector databases deep-dive: FAISS, Milvus, pgvector</td><td>Official docs</td></tr>
|
|
441
|
+
<tr><td>8</td><td><strong>Khoá chính: Eval & Customization of LLMs (S-FX-34, $90)</strong></td><td>NVIDIA DLI, 3 giờ</td></tr>
|
|
442
|
+
<tr><td>8</td><td>LoRA fine-tuning practice: custom dataset</td><td>HuggingFace PEFT library</td></tr>
|
|
443
|
+
</table>
|
|
444
|
+
|
|
445
|
+
### Phase 4: Advanced & Agent (2 tuần)
|
|
446
|
+
|
|
447
|
+
**Mục tiêu:** Agent architecture và multi-agent systems
|
|
448
|
+
|
|
449
|
+
<table>
|
|
450
|
+
<tr><th>Tuần</th><th>Hoạt động</th><th>Tài nguyên</th></tr>
|
|
451
|
+
<tr><td>9</td><td>LangGraph deep-dive: state machines, conditional edges</td><td>LangGraph tutorials</td></tr>
|
|
452
|
+
<tr><td>9</td><td>Multi-agent patterns: specialization, delegation, aggregation</td><td>Research papers + blog posts</td></tr>
|
|
453
|
+
<tr><td>10</td><td><strong>Khoá chính: Agentic AI Applications (C-FX-25)</strong></td><td>NVIDIA DLI Instructor-Led, 8 giờ</td></tr>
|
|
454
|
+
</table>
|
|
455
|
+
|
|
456
|
+
### Tổng chi phí ước tính
|
|
457
|
+
|
|
458
|
+
| Hạng mục | Chi phí |
|
|
459
|
+
|------------|---------|
|
|
460
|
+
| Generative AI Explained (free) | $0 |
|
|
461
|
+
| Intro to Transformer NLP | $30 |
|
|
462
|
+
| Generative AI with Diffusion Models | $90 |
|
|
463
|
+
| Building RAG Agents | $90 |
|
|
464
|
+
| Eval & Customization of LLMs | $90 |
|
|
465
|
+
| Agentic AI Applications (workshop) | ~$500-1,000 |
|
|
466
|
+
| **Tổng (self-paced only)** | **$300** |
|
|
467
|
+
| **Tổng (bao gồm workshop)** | **$800-1,300** |
|
|
468
|
+
|
|
469
|
+
> **Tip tiết kiệm:** Đăng ký webinar NVIDIA Certification (April 30, 2026) để nhận **discount code 50%**.
|
|
470
|
+
|
|
471
|
+
* * *
|
|
472
|
+
|
|
473
|
+
## 10. 20 câu hỏi mẫu assessment (Mock Exam)
|
|
474
|
+
|
|
475
|
+
Dưới đây là các câu hỏi mô phỏng sát format assessment thực tế của NVIDIA DLI:
|
|
476
|
+
|
|
477
|
+
### Diffusion Models (S-FX-14)
|
|
478
|
+
|
|
479
|
+
**Q1.** Cho code skeleton dưới đây, implement `forward_diffusion()`:
|
|
480
|
+
|
|
481
|
+
```python
|
|
482
|
+
def forward_diffusion(x_0, t, noise_schedule):
|
|
483
|
+
"""
|
|
484
|
+
Args:
|
|
485
|
+
x_0: clean image tensor (B, C, H, W)
|
|
486
|
+
t: timestep tensor (B,)
|
|
487
|
+
noise_schedule: dict with 'alpha_bar' tensor (T,)
|
|
488
|
+
Returns:
|
|
489
|
+
x_t: noisy image at timestep t
|
|
490
|
+
noise: the noise added
|
|
491
|
+
"""
|
|
492
|
+
# YOUR CODE HERE
|
|
493
|
+
pass
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
<details>
|
|
497
|
+
<summary><strong>Đáp án</strong></summary>
|
|
498
|
+
|
|
499
|
+
```python
|
|
500
|
+
def forward_diffusion(x_0, t, noise_schedule):
|
|
501
|
+
alpha_bar_t = noise_schedule['alpha_bar'][t] # (B,)
|
|
502
|
+
alpha_bar_t = alpha_bar_t[:, None, None, None] # (B, 1, 1, 1)
|
|
503
|
+
noise = torch.randn_like(x_0)
|
|
504
|
+
x_t = torch.sqrt(alpha_bar_t) * x_0 + torch.sqrt(1 - alpha_bar_t) * noise
|
|
505
|
+
return x_t, noise
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
**Giải thích:** Forward diffusion thêm noise theo công thức:
|
|
509
|
+
$$q(x_t | x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t} x_0, (1 - \bar{\alpha}_t) \mathbf{I})$$
|
|
510
|
+
|
|
511
|
+
</details>
|
|
512
|
+
|
|
513
|
+
---
|
|
514
|
+
|
|
515
|
+
**Q2.** Sinusoidal position embedding cho timestep có dạng gì? Implement class `TimestepEmbedding(nn.Module)` với output dimension = 128.
|
|
516
|
+
|
|
517
|
+
<details>
|
|
518
|
+
<summary><strong>Đáp án</strong></summary>
|
|
519
|
+
|
|
520
|
+
```python
|
|
521
|
+
class TimestepEmbedding(nn.Module):
|
|
522
|
+
def __init__(self, dim=128):
|
|
523
|
+
super().__init__()
|
|
524
|
+
self.dim = dim
|
|
525
|
+
|
|
526
|
+
def forward(self, t):
|
|
527
|
+
half_dim = self.dim // 2
|
|
528
|
+
emb = math.log(10000) / (half_dim - 1)
|
|
529
|
+
emb = torch.exp(torch.arange(half_dim, device=t.device) * -emb)
|
|
530
|
+
emb = t[:, None] * emb[None, :]
|
|
531
|
+
emb = torch.cat([torch.sin(emb), torch.cos(emb)], dim=-1)
|
|
532
|
+
return emb # (B, dim)
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
</details>
|
|
536
|
+
|
|
537
|
+
---
|
|
538
|
+
|
|
539
|
+
**Q3.** Classifier-Free Guidance scale $w = 7.5$. Unconditional prediction = $\epsilon_u$, conditional prediction = $\epsilon_c$. Viết code tính guided prediction.
|
|
540
|
+
|
|
541
|
+
<details>
|
|
542
|
+
<summary><strong>Đáp án</strong></summary>
|
|
543
|
+
|
|
544
|
+
```python
|
|
545
|
+
guided_pred = epsilon_u + 7.5 * (epsilon_c - epsilon_u)
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
</details>
|
|
549
|
+
|
|
550
|
+
---
|
|
551
|
+
|
|
552
|
+
**Q4.** Group Normalization khác Batch Normalization ở điểm nào? Tại sao diffusion models ưu tiên Group Norm?
|
|
553
|
+
|
|
554
|
+
<details>
|
|
555
|
+
<summary><strong>Đáp án</strong></summary>
|
|
556
|
+
|
|
557
|
+
- **BatchNorm** normalize theo batch dimension → phụ thuộc batch size, unstable khi batch nhỏ
|
|
558
|
+
- **GroupNorm** normalize theo groups of channels trong mỗi sample → **independent of batch size**
|
|
559
|
+
- Diffusion models thường train với **small batch size** (vì image lớn, GPU memory hạn chế) → GroupNorm stable hơn
|
|
560
|
+
|
|
561
|
+
</details>
|
|
562
|
+
|
|
563
|
+
---
|
|
564
|
+
|
|
565
|
+
**Q5.** Debug: Model cho ra ảnh toàn đen sau khi reverse diffusion. Code dưới đây có lỗi gì?
|
|
566
|
+
|
|
567
|
+
```python
|
|
568
|
+
for t in range(T, 0, -1):
|
|
569
|
+
pred_noise = model(x_t, t)
|
|
570
|
+
alpha_t = noise_schedule['alpha'][t]
|
|
571
|
+
alpha_bar_t = noise_schedule['alpha_bar'][t]
|
|
572
|
+
x_t = (x_t - pred_noise) / torch.sqrt(alpha_t) # BUG
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
<details>
|
|
576
|
+
<summary><strong>Đáp án</strong></summary>
|
|
577
|
+
|
|
578
|
+
Lỗi: Formula reverse diffusion sai. Đúng phải là:
|
|
579
|
+
|
|
580
|
+
```python
|
|
581
|
+
x_t = (1 / torch.sqrt(alpha_t)) * (
|
|
582
|
+
x_t - (1 - alpha_t) / torch.sqrt(1 - alpha_bar_t) * pred_noise
|
|
583
|
+
)
|
|
584
|
+
if t > 1:
|
|
585
|
+
x_t += torch.sqrt(noise_schedule['beta'][t]) * torch.randn_like(x_t)
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
Thiếu (1) coefficient đúng trước noise, (2) posterior variance term cho t > 1.
|
|
589
|
+
|
|
590
|
+
</details>
|
|
591
|
+
|
|
592
|
+
---
|
|
593
|
+
|
|
594
|
+
### RAG Agents (S-FX-15)
|
|
595
|
+
|
|
596
|
+
**Q6.** Implement semantic similarity search với cosine similarity. Cho `query_embedding` (1, 768) và `doc_embeddings` (N, 768), return top-5 indices.
|
|
597
|
+
|
|
598
|
+
<details>
|
|
599
|
+
<summary><strong>Đáp án</strong></summary>
|
|
600
|
+
|
|
601
|
+
```python
|
|
602
|
+
import torch.nn.functional as F
|
|
603
|
+
|
|
604
|
+
similarities = F.cosine_similarity(
|
|
605
|
+
query_embedding, doc_embeddings, dim=1
|
|
606
|
+
)
|
|
607
|
+
top_5_indices = similarities.argsort(descending=True)[:5]
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
</details>
|
|
611
|
+
|
|
612
|
+
---
|
|
613
|
+
|
|
614
|
+
**Q7.** Chunking strategy: Document dài 10,000 tokens. Chunk size = 512, overlap = 128. Tính số chunks.
|
|
615
|
+
|
|
616
|
+
<details>
|
|
617
|
+
<summary><strong>Đáp án</strong></summary>
|
|
618
|
+
|
|
619
|
+
$$\text{chunks} = \lceil \frac{10000 - 512}{512 - 128} \rceil + 1 = \lceil \frac{9488}{384} \rceil + 1 = 25 + 1 = 26$$
|
|
620
|
+
|
|
621
|
+
</details>
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
625
|
+
**Q8.** Viết LangChain LCEL pipeline: prompt template → LLM → output parser, cho task summarization.
|
|
626
|
+
|
|
627
|
+
<details>
|
|
628
|
+
<summary><strong>Đáp án</strong></summary>
|
|
629
|
+
|
|
630
|
+
```python
|
|
631
|
+
from langchain_core.prompts import ChatPromptTemplate
|
|
632
|
+
from langchain_core.output_parsers import StrOutputParser
|
|
633
|
+
|
|
634
|
+
prompt = ChatPromptTemplate.from_template(
|
|
635
|
+
"Summarize the following text in 3 bullet points:\n{text}"
|
|
636
|
+
)
|
|
637
|
+
chain = prompt | llm | StrOutputParser()
|
|
638
|
+
result = chain.invoke({"text": document_text})
|
|
639
|
+
```
|
|
640
|
+
|
|
641
|
+
</details>
|
|
642
|
+
|
|
643
|
+
---
|
|
644
|
+
|
|
645
|
+
**Q9.** Implement input guardrail: reject queries có cosine similarity < 0.3 so với topic embeddings.
|
|
646
|
+
|
|
647
|
+
<details>
|
|
648
|
+
<summary><strong>Đáp án</strong></summary>
|
|
649
|
+
|
|
650
|
+
```python
|
|
651
|
+
def guardrail_check(query_emb, topic_embs, threshold=0.3):
|
|
652
|
+
max_sim = F.cosine_similarity(
|
|
653
|
+
query_emb.unsqueeze(0), topic_embs, dim=1
|
|
654
|
+
).max().item()
|
|
655
|
+
if max_sim < threshold:
|
|
656
|
+
return False, "Sorry, this question is outside my scope."
|
|
657
|
+
return True, None
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
</details>
|
|
661
|
+
|
|
662
|
+
---
|
|
663
|
+
|
|
664
|
+
**Q10.** RAG evaluation: Precision@5 = 0.6, Recall@5 = 0.3. Giải thích ý nghĩa và đề xuất cải thiện.
|
|
665
|
+
|
|
666
|
+
<details>
|
|
667
|
+
<summary><strong>Đáp án</strong></summary>
|
|
668
|
+
|
|
669
|
+
- **Precision@5 = 0.6**: 3/5 documents retrieved là relevant → retrieval khá tốt
|
|
670
|
+
- **Recall@5 = 0.3**: Chỉ tìm được 30% total relevant docs → **recall thấp**
|
|
671
|
+
- **Cải thiện**:
|
|
672
|
+
1. Tăng top-k lên 10-20 (trade precision cho recall)
|
|
673
|
+
2. Cải thiện chunking --- chunk nhỏ hơn để match chính xác hơn
|
|
674
|
+
3. Hybrid search: BM25 + semantic retrieval
|
|
675
|
+
4. Re-ranking layer sau initial retrieval
|
|
676
|
+
|
|
677
|
+
</details>
|
|
678
|
+
|
|
679
|
+
---
|
|
680
|
+
|
|
681
|
+
### LLM Evaluation & Customization (S-FX-34)
|
|
682
|
+
|
|
683
|
+
**Q11.** LoRA rank r = 16, model dimension d = 4096, k = 4096. Tính % parameters được fine-tune so với full fine-tuning.
|
|
684
|
+
|
|
685
|
+
<details>
|
|
686
|
+
<summary><strong>Đáp án</strong></summary>
|
|
687
|
+
|
|
688
|
+
$$\text{Full FT params} = d \times k = 4096 \times 4096 = 16,777,216$$
|
|
689
|
+
$$\text{LoRA params} = d \times r + r \times k = 4096 \times 16 + 16 \times 4096 = 131,072$$
|
|
690
|
+
$$\text{Ratio} = \frac{131,072}{16,777,216} = 0.78\%$$
|
|
691
|
+
|
|
692
|
+
LoRA chỉ fine-tune **<1% parameters** nhưng đạt performance gần full fine-tuning.
|
|
693
|
+
|
|
694
|
+
</details>
|
|
695
|
+
|
|
696
|
+
---
|
|
697
|
+
|
|
698
|
+
**Q12.** BLEU score = 0.15, F1 = 0.72. Model đang có vấn đề gì?
|
|
699
|
+
|
|
700
|
+
<details>
|
|
701
|
+
<summary><strong>Đáp án</strong></summary>
|
|
702
|
+
|
|
703
|
+
- **BLEU thấp (0.15)**: Model generate text **khác wording** so với reference --- không nhất thiết là sai
|
|
704
|
+
- **F1 cao (0.72)**: Nội dung (key information) phần lớn đúng
|
|
705
|
+
- **Chẩn đoán**: Model paraphrase tốt nhưng không match exact phrasing → BLEU là poor metric cho QA tasks
|
|
706
|
+
- **Hành động**: Dùng **semantic similarity** hoặc **LLM-as-a-judge** thay BLEU cho evaluation chính xác hơn
|
|
707
|
+
|
|
708
|
+
</details>
|
|
709
|
+
|
|
710
|
+
---
|
|
711
|
+
|
|
712
|
+
**Q13.** So sánh zero-shot, few-shot (ICL), và LoRA fine-tuning cho task legal QA:
|
|
713
|
+
|
|
714
|
+
<details>
|
|
715
|
+
<summary><strong>Đáp án</strong></summary>
|
|
716
|
+
|
|
717
|
+
| Approach | Accuracy | Latency | Cost | Khi nào dùng |
|
|
718
|
+
|----------|----------|---------|------|-------------|
|
|
719
|
+
| **Zero-shot** | Thấp nhất | Nhanh nhất | $0 | Quick prototype, generic tasks |
|
|
720
|
+
| **Few-shot (ICL)** | Trung bình | Chậm hơn (context dài) | Token cost tăng | Khi có <50 examples, cần deploy nhanh |
|
|
721
|
+
| **LoRA fine-tuning** | Cao nhất | Nhanh (adapter nhỏ) | Training cost | Khi có >1000 examples, cần max accuracy |
|
|
722
|
+
|
|
723
|
+
</details>
|
|
724
|
+
|
|
725
|
+
---
|
|
726
|
+
|
|
727
|
+
### Agentic AI (C-FX-25)
|
|
728
|
+
|
|
729
|
+
**Q14.** Implement structured output: LLM phải return JSON với schema `{"action": str, "params": dict, "confidence": float}`.
|
|
730
|
+
|
|
731
|
+
<details>
|
|
732
|
+
<summary><strong>Đáp án</strong></summary>
|
|
733
|
+
|
|
734
|
+
```python
|
|
735
|
+
from pydantic import BaseModel, Field
|
|
736
|
+
|
|
737
|
+
class AgentAction(BaseModel):
|
|
738
|
+
action: str = Field(description="Action to execute")
|
|
739
|
+
params: dict = Field(description="Action parameters")
|
|
740
|
+
confidence: float = Field(ge=0, le=1, description="Confidence score")
|
|
741
|
+
|
|
742
|
+
structured_llm = llm.with_structured_output(AgentAction)
|
|
743
|
+
result = structured_llm.invoke("Search for papers about attention mechanism")
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
</details>
|
|
747
|
+
|
|
748
|
+
---
|
|
749
|
+
|
|
750
|
+
**Q15.** LangGraph: Implement conditional edge --- route đến `search_agent` nếu query cần research, route đến `answer_agent` nếu đã đủ context.
|
|
751
|
+
|
|
752
|
+
<details>
|
|
753
|
+
<summary><strong>Đáp án</strong></summary>
|
|
754
|
+
|
|
755
|
+
```python
|
|
756
|
+
from langgraph.graph import StateGraph, END
|
|
757
|
+
|
|
758
|
+
def router(state):
|
|
759
|
+
if state["needs_research"]:
|
|
760
|
+
return "search_agent"
|
|
761
|
+
return "answer_agent"
|
|
762
|
+
|
|
763
|
+
graph = StateGraph(AgentState)
|
|
764
|
+
graph.add_node("classifier", classify_query)
|
|
765
|
+
graph.add_node("search_agent", do_research)
|
|
766
|
+
graph.add_node("answer_agent", generate_answer)
|
|
767
|
+
|
|
768
|
+
graph.add_conditional_edges("classifier", router, {
|
|
769
|
+
"search_agent": "search_agent",
|
|
770
|
+
"answer_agent": "answer_agent"
|
|
771
|
+
})
|
|
772
|
+
graph.add_edge("search_agent", "answer_agent")
|
|
773
|
+
graph.add_edge("answer_agent", END)
|
|
774
|
+
```
|
|
775
|
+
|
|
776
|
+
</details>
|
|
777
|
+
|
|
778
|
+
---
|
|
779
|
+
|
|
780
|
+
### Câu hỏi tổng hợp (Cross-course)
|
|
781
|
+
|
|
782
|
+
**Q16.** Bạn cần build hệ thống generate product images từ description text. Liệt kê pipeline components và framework cho từng phần.
|
|
783
|
+
|
|
784
|
+
<details>
|
|
785
|
+
<summary><strong>Đáp án</strong></summary>
|
|
786
|
+
|
|
787
|
+
1. **Text Processing**: LangChain prompt template → extract key features
|
|
788
|
+
2. **Text Encoding**: CLIP Text Encoder → text embeddings (768-dim)
|
|
789
|
+
3. **Diffusion Generation**: U-Net conditioned on CLIP embeddings → reverse diffusion → image
|
|
790
|
+
4. **Post-processing**: PIL/OpenCV resize, quality enhancement
|
|
791
|
+
5. **Serving**: NVIDIA NIM hoặc TorchServe cho inference API
|
|
792
|
+
|
|
793
|
+
Pipeline: User input → LLM extract features → CLIP encode → Diffusion model → Generated image
|
|
794
|
+
|
|
795
|
+
</details>
|
|
796
|
+
|
|
797
|
+
---
|
|
798
|
+
|
|
799
|
+
**Q17.** Tại sao DDPM (Denoising Diffusion Probabilistic Model) cần 1000 steps cho inference nhưng Latent Diffusion chỉ cần 50?
|
|
800
|
+
|
|
801
|
+
<details>
|
|
802
|
+
<summary><strong>Đáp án</strong></summary>
|
|
803
|
+
|
|
804
|
+
- **DDPM**: Diffusion trong **pixel space** (256×256×3 = 196,608 dimensions) → cần nhiều steps để denoise
|
|
805
|
+
- **LDM**: Diffusion trong **latent space** (32×32×4 = 4,096 dimensions) → compressed 48x → ít steps hơn
|
|
806
|
+
- Thêm vào đó, LDM dùng **DDIM scheduler** (deterministic) thay DDPM (stochastic) → skip steps
|
|
807
|
+
|
|
808
|
+
</details>
|
|
809
|
+
|
|
810
|
+
---
|
|
811
|
+
|
|
812
|
+
**Q18.** QLoRA vs LoRA: Giải thích sự khác biệt và khi nào chọn QLoRA.
|
|
813
|
+
|
|
814
|
+
<details>
|
|
815
|
+
<summary><strong>Đáp án</strong></summary>
|
|
816
|
+
|
|
817
|
+
| | LoRA | QLoRA |
|
|
818
|
+
|---|----|----|
|
|
819
|
+
| Base model | FP16/BF16 | **4-bit quantized** (NF4) |
|
|
820
|
+
| Adapters | FP16 | FP16 (computed in BF16) |
|
|
821
|
+
| VRAM cho 7B model | ~14GB | **~6GB** |
|
|
822
|
+
| Performance | Baseline | ~99% of LoRA |
|
|
823
|
+
|
|
824
|
+
**Chọn QLoRA khi:** GPU VRAM hạn chế (ví dụ: single RTX 3090/4090), model lớn (>13B params).
|
|
825
|
+
|
|
826
|
+
</details>
|
|
827
|
+
|
|
828
|
+
---
|
|
829
|
+
|
|
830
|
+
**Q19.** Explain the "lost in the middle" problem trong RAG. Đề xuất 2 solutions.
|
|
831
|
+
|
|
832
|
+
<details>
|
|
833
|
+
<summary><strong>Đáp án</strong></summary>
|
|
834
|
+
|
|
835
|
+
**Problem:** LLMs tend to focus on **đầu và cuối** context window, bỏ qua thông tin ở **giữa** → retrieved documents đặt ở middle bị ignore.
|
|
836
|
+
|
|
837
|
+
**Solutions:**
|
|
838
|
+
1. **Reorder retrieved docs**: Đặt most relevant docs ở đầu VÀ cuối, less relevant ở giữa
|
|
839
|
+
2. **Summarize-then-answer**: Summarize mỗi retrieved doc thành 1-2 câu, ghép summaries thay vì full text → shorter context, ít bị lost
|
|
840
|
+
|
|
841
|
+
</details>
|
|
842
|
+
|
|
843
|
+
---
|
|
844
|
+
|
|
845
|
+
**Q20.** System design: Build RAG agent cho legal firm. 50,000 documents, 100 concurrent users, response < 3 seconds. Sketch architecture.
|
|
846
|
+
|
|
847
|
+
<details>
|
|
848
|
+
<summary><strong>Đáp án</strong></summary>
|
|
849
|
+
|
|
850
|
+
```
|
|
851
|
+
Users → Load Balancer → API Gateway
|
|
852
|
+
→ Input Guardrail (topic filter)
|
|
853
|
+
→ Query Router
|
|
854
|
+
→ Vector DB (Milvus, 50K docs, GPU-accelerated)
|
|
855
|
+
→ BM25 Index (Elasticsearch, keyword search)
|
|
856
|
+
→ Reciprocal Rank Fusion (merge results)
|
|
857
|
+
→ Re-ranker (cross-encoder, top-20 → top-5)
|
|
858
|
+
→ LLM (NVIDIA NIM, 8x H100, batched inference)
|
|
859
|
+
→ Output Guardrail (PII filter, citation check)
|
|
860
|
+
→ Response with sources
|
|
861
|
+
```
|
|
862
|
+
|
|
863
|
+
**Key decisions:**
|
|
864
|
+
- Milvus cho vector search (GPU-accelerated, <100ms at 50K scale)
|
|
865
|
+
- Hybrid search (semantic + keyword) cho legal domain accuracy
|
|
866
|
+
- Re-ranker để improve precision
|
|
867
|
+
- NVIDIA NIM cho optimized LLM inference (<2s)
|
|
868
|
+
- Output guardrails cho PII detection (legal compliance)
|
|
869
|
+
|
|
870
|
+
</details>
|
|
871
|
+
|
|
872
|
+
* * *
|
|
873
|
+
|
|
874
|
+
## 11. Kết luận
|
|
875
|
+
|
|
876
|
+
NVIDIA DLI Generative AI track là **lựa chọn tốt nhất cho kỹ sư muốn hands-on thực sự** với generative models. Không MCQ, không lý thuyết suông --- bạn phải viết code, debug models, và build systems.
|
|
877
|
+
|
|
878
|
+
**Nếu chỉ chọn 1 khóa:** Bắt đầu với **Building RAG Agents (S-FX-15)** --- ứng dụng thực tế nhất, industry demand cao nhất.
|
|
879
|
+
|
|
880
|
+
**Nếu muốn differentiate:** Thêm **Generative AI with Diffusion Models (S-FX-14)** --- khóa khó nhất, ít người có, chứng minh deep technical competency.
|
|
881
|
+
|
|
882
|
+
**Nếu muốn full stack GenAI engineer:** Hoàn thành cả 4 khóa self-paced + 1 instructor-led workshop.
|
|
883
|
+
|
|
884
|
+
### Tài nguyên bổ sung
|
|
885
|
+
|
|
886
|
+
- [NVIDIA DLI Course Catalog](https://www.nvidia.com/en-us/training/self-paced-courses/)
|
|
887
|
+
- [NVIDIA Certification Portal](https://www.nvidia.com/en-us/learn/certification/)
|
|
888
|
+
- [DLI Learning Paths PDF](https://nvdam.widen.net/s/brxsxxtskb/dli-learning-journey-2009000-r5-web)
|
|
889
|
+
- [NVIDIA Technical Blog: GenAI posts](https://developer.nvidia.com/blog/)
|
|
890
|
+
- Paper: [Denoising Diffusion Probabilistic Models](https://arxiv.org/abs/2006.11239) (Ho et al., 2020)
|
|
891
|
+
- Paper: [LoRA: Low-Rank Adaptation of LLMs](https://arxiv.org/abs/2106.09685) (Hu et al., 2021)
|
|
892
|
+
- Paper: [Attention Is All You Need](https://arxiv.org/abs/1706.03762) (Vaswani et al., 2017)
|
|
893
|
+
|
|
894
|
+
> **Webinar sắp tới:** NVIDIA Certification 2026 --- April 30, 2026 --- đăng ký để nhận 50% discount code cho certification exams. [Register](https://www.nvidia.com/en-us/events/whats-new-with-nvidia-certification-2026/)
|