Sách bài tập Lớp AIO
(Kèm bài giải; version 2025)
²Nhóm tác giả
Dương Trường Bình
Trần Hoàng Duy
Nguyễn Thái (PhD)
Nguyễn Thế Hào
Hồ Quang Hiển
Nguyễn Thọ Anh Khoa
Nguyễn Anh Khôi
Vũ Yến Linh
Trần Minh Nam
Nguyễn Đăng Nhã
Trần Đại Nhân
Vũ Hoàng Nguyên
Hữu Phước
Nguyễn Quốc Thái (MSc)
Dương Đình Thắng
Nguyễn Phúc Thịnh
Dương Nguyễn Thuận
Nguyễn Thị Ngọc Trúc
Nguyễn Đình Vinh (PhD)
Đinh Quang Vinh (PhD)
²Nhóm Research và OpsTeam
Phạm Minh Châu
T Hữu Anh Dương
Nguyễn Thanh Huy (MSc)
Nguyễn Tiến Huy
Tấn Anh Huy
Xin Quý Hùng
Nguyễn Ngọc Kim Như
Nguyễn Hồng Phúc (PhD)
Nguyễn Thành Tâm (MSc)
Đoàn Đức Tuấn
Mục lục
I Module 1: Toán bản và lập trình Python 25
1 Python bản và các hàm activation 26
1.1 Giithiu ............................. 26
1.2 Câuhitlun.......................... 29
1.3 Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . 40
1.4 Phlc .............................. 49
2 Cấu trúc dữ liệu và bài toán word suggestion 50
2.1 Giithiu ............................. 50
2.2 Câuhitlun.......................... 53
2.2.1 Getting Max Over Kernel . . . . . . . . . . . . . . . . 53
2.2.2 Character Counting . . . . . . . . . . . . . . . . . . . . 53
2.2.3 Word Counting . . . . . . . . . . . . . . . . . . . . . . 54
2.2.4 Levenshtein Distance . . . . . . . . . . . . . . . . . . . 56
2.3 Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . 61
3 Lập trình hướng đối tượng và cài đặt class trong PyTorch 74
3.1 Câuhitlun.......................... 74
3.1.1 y dựng class tính Sigmoid . . . . . . . . . . . . . . . 74
3.1.2 XâudngWard...................... 75
3.1.3 y dựng class Stack . . . . . . . . . . . . . . . . . . . 78
3.1.4 y dựng class Queue . . . . . . . . . . . . . . . . . . 80
3.2 Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . 82
4 Project 1: Triển khai hệ thống đơn giản với Streamlit 93
4.1 Giithiu ............................. 93
4.1.1 Lợi ích của Streamlit . . . . . . . . . . . . . . . . . . . 94
4.1.2 Một số hàm thông dụng trong Streamlit . . . . . . . . 94
1
AI VIET NAM (AIO2025) aivietnam.edu.vn
4.2 Thực hành Streamlit bản . . . . . . . . . . . . . . . . . . . 96
4.2.1 Giới thiệu ứng dụng . . . . . . . . . . . . . . . . . . . 96
4.2.2 Pipeline tổng quan . . . . . . . . . . . . . . . . . . . . 96
4.2.3 Cài đặt môi trường và các thư viện cần thiết . . . . . . 96
4.2.4 Cài đặt thư viện cần thiết . . . . . . . . . . . . . . . . 97
4.2.5 Thiết Kế Kiến Trúc Ứng Dụng . . . . . . . . . . . . . 97
4.3 y dựng ứng dụng tính hàm toán học giai thừa . . . . . . . . 107
4.3.1 Phân tích, thiết kế ứng dụng . . . . . . . . . . . . . . . 107
4.3.2 y dựng ứng dụng . . . . . . . . . . . . . . . . . . . . 108
4.3.3 y dựng tính năng phân quyền và xác thực người dùng111
4.4 Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . 116
5 Project 2: Xây dựng Chatbot nhân nhanh chóng với RAG120
5.1 Giithiu .............................120
5.2 y dựng chương trình . . . . . . . . . . . . . . . . . . . . . . 122
5.2.1 Chương trình RAG . . . . . . . . . . . . . . . . . . . . 122
5.3 Xâydnggiaodin........................131
5.3.1 Cài đặt môi trường conda . . . . . . . . . . . . . . . . 131
5.3.2 Cài đặt thư viện cần thiết . . . . . . . . . . . . . . . . 132
5.3.3 Khởi tạo Session State . . . . . . . . . . . . . . . . . . 133
5.3.4 Định nghĩa các hàm hỗ trợ . . . . . . . . . . . . . . . . 134
5.3.5 y dựng giao diện người dùng . . . . . . . . . . . . . 137
5.3.6 Chạy ứng dụng và demo từng bước . . . . . . . . . . . 139
5.3.7 y dựng khung chat . . . . . . . . . . . . . . . . . . . 143
5.4 Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . 144
II Module 2: Toán nâng cao và lập trình nâng cao150
6 Numpy và đại số tuyến tính 151
6.1 Giithiu .............................151
2
AI VIET NAM (AIO2025) aivietnam.edu.vn
6.2 Câuhitlun..........................152
6.2.1 Các phép toán trên vector và ma trận . . . . . . . . . . 152
6.2.2 Cosine Similarity . . . . . . . . . . . . . . . . . . . . . 154
6.2.3 Background subtraction (tách nền) . . . . . . . . . . . 155
6.3 Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . 158
6.3.1 Numpy...........................158
6.3.2 Xlýnh .........................163
6.3.3 Phân tích dữ liệu dạng bảng . . . . . . . . . . . . . . . 167
7 Xác suất và bài toán phân loại dùng Bayes 172
7.1 Giithiu .............................172
7.2 Câuhitlun..........................174
7.2.1 Hàm tạo training dataset . . . . . . . . . . . . . . . . . 175
7.2.2 Hàm tính prior probabilities . . . . . . . . . . . . . . . 175
7.2.3 Hàm tính conditional probabilities . . . . . . . . . . . 176
7.2.4 Hàm lấy feature index . . . . . . . . . . . . . . . . . . 177
7.2.5 Hàm huấn luyện hình Naive Bayes . . . . . . . . . 178
7.2.6 Hàm dự đoán cho một test sample . . . . . . . . . . . 179
7.3 Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . 181
7.3.1 Binary Classification - Play Tennis . . . . . . . . . . . 181
7.3.2 Multi-label Classification - Traffic Data . . . . . . . . . 184
7.3.3 Iris Classification . . . . . . . . . . . . . . . . . . . . . 187
8 Thống kê và các phép đo similarity 189
8.1 Môt ...............................189
8.2 Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . 190
8.2.1 Basic Probability . . . . . . . . . . . . . . . . . . . . . 190
8.2.2 Tabular Data Analysis . . . . . . . . . . . . . . . . . . 194
8.2.3 Text Retrieval . . . . . . . . . . . . . . . . . . . . . . . 198
8.2.4 Plagiarism Checker . . . . . . . . . . . . . . . . . . . . 200
8.3 Phlc ..............................205
3