
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 Hà (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
Lê 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
Lê 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 cơ bản và lập trình Python 25
1 Python cơ bản và các hàm activation 26
1.1 Giớithiệu ............................. 26
1.2 Câuhỏitựluận.......................... 29
1.3 Câu hỏi trắc nghiệm . . . . . . . . . . . . . . . . . . . . . . . 40
1.4 Phụlục .............................. 49
2 Cấu trúc dữ liệu và bài toán word suggestion 50
2.1 Giớithiệu ............................. 50
2.2 Câuhỏitựluận.......................... 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âuhỏitựluận.......................... 74
3.1.1 Xây dựng class tính Sigmoid . . . . . . . . . . . . . . . 74
3.1.2 XâudựngWard...................... 75
3.1.3 Xây dựng class Stack . . . . . . . . . . . . . . . . . . . 78
3.1.4 Xâ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 Giớithiệu ............................. 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 cơ 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 Xâ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 Xây dựng ứng dụng . . . . . . . . . . . . . . . . . . . . 108
4.3.3 Xâ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 cá nhân nhanh chóng với RAG120
5.1 Giớithiệu .............................120
5.2 Xây dựng chương trình . . . . . . . . . . . . . . . . . . . . . . 122
5.2.1 Chương trình RAG . . . . . . . . . . . . . . . . . . . . 122
5.3 Xâydựnggiaodiện........................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 Xâ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 Xâ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 Giớithiệu .............................151
2

AI VIET NAM (AIO2025) aivietnam.edu.vn
6.2 Câuhỏitựluận..........................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 Xửlýả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 Giớithiệu .............................172
7.2 Câuhỏitựluận..........................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 mô 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 Phụlục ..............................205
3

