Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh bùng nổ của cuộc Cách mạng Công nghiệp 4.0, Trí tuệ nhân tạo (AI) và Dữ liệu lớn (Big Data) ngày càng đóng vai trò trọng yếu trong nhiều lĩnh vực thực tiễn như y tế, giao thông, giáo dục và thương mại điện tử. Theo phương thức truyền thống, các mô hình học máy yêu cầu toàn bộ dữ liệu từ các thiết bị phân tán phải được thu thập và xử lý tập trung tại một máy chủ duy nhất (thường đặt trên nền tảng điện toán đám mây). Cách tiếp cận tập trung này tiềm ẩn nguy cơ lớn về an ninh mạng, dễ dẫn đến việc rò rỉ dữ liệu cá nhân và thông tin nhạy cảm khi hệ thống bị tấn công.

Để giải quyết vấn đề bảo mật dữ liệu, lĩnh vực trí tuệ nhân tạo đang chuyển dịch mạnh mẽ sang mô hình phi tập trung (decentralized approach). Một trong những giải pháp nổi bật là học cộng tác hay học tập liên kết (Federated Learning). Phương pháp này cho phép các thiết bị tại biên (edge devices) như điện thoại di động, máy tính cá nhân tự đào tạo mô hình cục bộ bằng dữ liệu riêng tư tại chỗ mà không cần chia sẻ dữ liệu gốc về máy chủ trung tâm. Nhằm trực quan hóa và phổ biến kỹ thuật này, đề tài "Xây dựng ứng dụng web hỗ trợ triển khai học cộng tác" (tên tiếng Anh: Build an Web Application for Deploying Federated Learning Framework) được thực hiện bởi nhóm sinh viên Nguyễn Phú Hiếu và Vũ Anh Kiệt, dưới sự hướng dẫn của TS. Nguyễn Tấn Cẩm tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh.

Mục tiêu và nhiệm vụ nghiên cứu được xác định cụ thể trong văn bản:

  1. Nghiên cứu tổng quan về phương pháp học tập liên kết (Federated Learning) thông qua các tài liệu học thuật đã công bố.
  2. Tìm hiểu các công nghệ và thư viện hỗ trợ xây dựng hệ thống học liên kết và ứng dụng web.
  3. Thiết kế kiến trúc và xây dựng một website hoàn chỉnh cho phép điều phối quá trình học cộng tác giữa người quản trị và các người dùng.
  4. Cài đặt giao diện, xây dựng hệ thống API, tích hợp cơ chế huấn luyện mô hình cục bộ và tổng hợp mô hình toàn cầu.
  5. Kiểm thử, sửa lỗi và hoàn thiện sản phẩm demo để mô tả trực quan cơ chế hoạt động của học cộng tác.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Kỹ thuật học tập liên kết (Federated Learning), thuật toán tổng hợp trọng số Federated Averaging, mô hình học máy MobileNet và giải pháp kiến trúc ứng dụng web tương tác hai phía (Client - Server).
  • Phạm vi không gian: Đồ án được triển khai thử nghiệm trên môi trường web cục bộ và hệ điều hành Windows 10 tại Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. Hồ Chí Minh.
  • Phạm vi thời gian: Đề cương và toàn bộ quy trình nghiên cứu, triển khai được thực hiện từ ngày 25/03/2023 đến ngày 17/06/2023.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình sử dụng

  • Học tập liên kết (Federated Learning): Cơ chế đào tạo mô hình học máy phân tán mà không đòi hỏi tập trung dữ liệu thô. Máy chủ toàn cầu (Global Server) gửi mô hình cơ sở đến các nút người dùng (Client). Mỗi nút tự huấn luyện trên dữ liệu cục bộ, sau đó gửi các tham số cập nhật (trọng số) trở lại máy chủ để tổng hợp.
  • Thuật toán tổng hợp Federated Averaging (FedAvg): Phương pháp toán học dùng để gộp các bản cập nhật cục bộ thành một mô hình toàn cầu duy nhất thông qua hai bước: (1) Xác định tỉ lệ để chia trọng lượng của từng mô hình cục bộ dựa trên đóng góp; (2) Tính toán tổng trọng lượng theo tỉ lệ đó để cập nhật mô hình mới.
  • Mô hình học sâu MobileNet: Kiến trúc mạng nơ-ron tích chập chuyên dụng cho các thiết bị di động và phần cứng giới hạn tài nguyên, được huấn luyện trước trên tập dữ liệu chuẩn ImageNet, mang lại hiệu suất tính toán thấp nhưng vẫn đảm bảo độ chính xác cao.

Phương pháp nghiên cứu thực tế

  • Phương pháp phân tích - tổng hợp tài liệu: Thu thập và tổng thuật các công trình nghiên cứu khoa học quốc tế về học liên kết (như công trình khảo sát của Zhang, nghiên cứu của IEEE Signal Processing Magazine, nền tảng Flower framework và các giao thức tổng hợp an toàn).
  • Phương pháp phân tích và thiết kế hệ thống: Sử dụng phương pháp hướng đối tượng để xây dựng biểu đồ Use Case, xác định Actor, thiết kế lược đồ quan hệ cơ sở dữ liệu và xây dựng luồng tương tác chức năng chi tiết.
  • Phương pháp thực nghiệm kỹ thuật phần mềm: Lập trình Back-end bằng Python/Flask, Front-end bằng Bootstrap/HTML5/CSS3, xây dựng cơ sở dữ liệu SQLite và tích hợp quy trình huấn luyện học máy trực tiếp trên hệ thống web.

Nguồn dữ liệu

  • Dữ liệu phục vụ đào tạo mô hình cục bộ do từng người dùng tự chuẩn bị và lưu trữ trên máy cá nhân, được tổ chức theo cấu trúc thư mục phân loại hình ảnh (như thư mục not_object).
  • Dữ liệu hệ thống gồm thông tin tài khoản người dùng, vai trò phân quyền và các tệp tin lưu trữ trọng số mô hình dạng nhị phân (.h5 hoặc checkpoint mô hình).

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình ứng dụng web hỗ trợ quá trình huấn luyện AI phân tán, gồm hai tác nhân chính: Người quản trị (Admin) và Người dùng (User).

Công nghệ và môi trường sử dụng

Thành phần Công nghệ / Nền tảng Vai trò trong hệ thống
Front-end HTML5, CSS3, Bootstrap 3 Thiết kế giao diện trực quan, bảng điều khiển và các biểu mẫu tương tác
Back-end Python, Flask Framework Xử lý logic nghiệp vụ, điều phối HTTP requests, quản lý API và tích hợp mô hình AI
Cơ sở dữ liệu SQLite, SQLAlchemy, Flask-Migrate Lưu trữ thông tin tài khoản, quản lý phiên làm việc và hỗ trợ migration dữ liệu
Bảo mật pbkdf2:sha256:600000 Thuật toán băm tự động mật khẩu người dùng nhằm chống rò rỉ thông tin
Nền tảng & HĐH Website / Windows 10 Môi trường cài đặt, kiểm thử và chạy thực nghiệm hệ thống

Thiết kế cơ sở dữ liệu

Hệ thống sử dụng cơ sở dữ liệu quan hệ với cấu trúc bảng thông tin tài khoản và phân quyền người dùng:

Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa / Chức năng
id INT Primary Key Mã định danh duy nhất của người dùng
username STRING 64 ký tự Tên đăng nhập của người dùng
email STRING 120 ký tự Địa chỉ thư điện tử của tài khoản
about_me STRING 140 ký tự Thông tin mô tả, giới thiệu bản thân
last_seen DATETIME Không Thời điểm đăng nhập/truy cập gần nhất
password_hash STRING 128 ký tự Chuỗi mật khẩu đã được băm an toàn
user_role ENUM USER / ADMIN Xác định quyền hạn: Người dùng hoặc Quản trị viên

Danh sách chức năng và tương tác hệ thống

Hệ thống xác định 10 Use Case chính phân định theo vai trò:

  • Chức năng phía Người dùng: Đăng ký tài khoản; Đăng nhập; Xem thông tin cá nhân; Chỉnh sửa thông tin; Tải xuống mô hình toàn cầu từ server; Huấn luyện mô hình cục bộ với dữ liệu cá nhân; Tải lên mô hình cục bộ; Gửi mô hình đến máy chủ người quản trị.
  • Chức năng phía Người quản trị: Đăng nhập quyền Admin; Quản lý người dùng (Xem danh sách, Thêm mới, Sửa thông tin, Xóa tài khoản); Tải lên mô hình khởi tạo; Lưu trữ và quản lý kho mô hình; Yêu cầu lấy mô hình cục bộ từ người dùng; Thực hiện tổng hợp mô hình (Federated Averaging); Phân phối mô hình toàn cầu mới về phía người dùng; Tải xuống mô hình đã tổng hợp.

Nội dung chính theo từng chương

Chương 1: Tổng quan đề tài

Chương 1 trình bày lý do lựa chọn đề tài xuất phát từ nhu cầu bảo vệ quyền riêng tư dữ liệu trong thời đại bùng nổ AI và Big Data. Tác giả nêu bật sự khác biệt giữa phương thức học máy tập trung truyền thống và phương pháp học cộng tác phi tập trung. Mục tiêu đề tài là tạo ra một website hỗ trợ đầy đủ chức năng để người dùng tiếp cận quy trình học cộng tác trực quan. Đồng thời, chương này giới thiệu tổng quan các công nghệ được lựa chọn gồm: Flask (framework Python nhẹ, linh hoạt, dễ tích hợp với các thư viện AI), Bootstrap 3 (tối ưu hóa thiết kế giao diện front-end) và SQLite kết hợp SQLAlchemy (hệ quản trị cơ sở dữ liệu nhỏ gọn, không cần cấu hình phức tạp).

Chương 2: Phân tích và thiết kế

Chương 2 tập trung vào việc mô hình hóa yêu cầu hệ thống. Tác giả liệt kê chi tiết các danh sách chức năng, danh sách 4 biểu mẫu chính (Đăng nhập, Đăng ký, Thông tin cá nhân, Giới thiệu bản thân) và sơ đồ Use Case tổng quan cho 2 Actor (Người dùng và Người quản trị). Các kịch bản tương tác được mô tả kèm lưu đồ cho từng thao tác: Đăng ký tài khoản, Xem/sửa thông tin, Tải lên/tải xuống mô hình, Yêu cầu gửi mô hình và Quản lý người dùng. Phần cuối chương trình bày chi tiết sơ đồ thiết kế cơ sở dữ liệu với hai cấu trúc thực thể là bảng USER và bảng phân quyền USERROLE.

Chương 3: Xây dựng ứng dụng

Chương 3 minh họa kết quả triển khai giao diện thực tế của hệ thống (FLWeb). Phía người dùng bao gồm các màn hình: Trang chủ (cung cấp các nút tải về, tải lên và gửi mô hình), Trang Đăng nhập/Đăng ký (có kiểm tra tính hợp lệ của dữ liệu đầu vào và ghi nhớ phiên đăng nhập), Trang thông tin cá nhân và chỉnh sửa mô tả bản thân. Phía quản trị viên bao gồm: Màn hình đăng nhập bảo vệ bằng quyền Admin, Trang chủ quản trị điều phối luồng huấn luyện, Trang quản lý danh sách người dùng (hiển thị chi tiết ID, Username, Email, About Me, Last Seen, Password Hash đã mã hóa), Giao diện thêm/sửa/xóa người dùng có hộp thoại xác nhận cảnh báo, Giao diện tải lên mô hình mới và Kho lưu trữ mô hình hệ thống.

Chương 4: Mô hình học cộng tác xây dựng trên website

Chương 4 mô tả toàn diện quy trình vận hành của một vòng lặp (round) học cộng tác trên hệ thống thông qua 10 bước phối hợp giữa Người quản trị và Người dùng.

Thứ tự bước Tên quá trình Nội dung chi tiết thao tác
Bước 1 Đăng nhập Admin Người quản trị đăng nhập vào hệ thống quản lý
Bước 2 Tải lên mô hình Người quản trị tải mô hình cơ sở hoặc kịch bản huấn luyện lên máy chủ
Bước 3 Lưu trữ mô hình Mô hình được lưu tại kho lưu trữ của website và sẵn sàng phân phối
Bước 4 Đăng nhập Client Người dùng thực hiện đăng nhập vào hệ thống
Bước 5 Tải mô hình xuống Người dùng tải mô hình từ website về máy tính cục bộ
Bước 6 Huấn luyện mô hình Người dùng sử dụng tập dữ liệu cá nhân tại chỗ để huấn luyện cục bộ
Bước 7 Tải lên mô hình Người dùng tải tệp mô hình đã huấn luyện lên hệ thống web
Bước 8 Gửi về quản trị Các mô hình cục bộ được chuyển về khu vực tiếp nhận của quản trị viên
Bước 9 Tổng hợp mô hình Quản trị viên kích hoạt thuật toán FedAvg để tổng hợp các trọng số
Bước 10 Cập nhật toàn cầu Mô hình toàn cầu mới được lưu trữ và phân phối ngược lại cho người dùng

Bên cạnh đó, chương này giải thích việc tích hợp kiến trúc mạng MobileNet và tổ chức cấu trúc bộ dữ liệu hình ảnh dạng thư mục, cùng biểu đồ ghi nhận quá trình huấn luyện bên máy người dùng (theo dõi các chỉ số train_loss, val_loss, train_acc, val_acc).


Kết quả và đóng góp

Kết quả chính

  • Xây dựng thành công ứng dụng web hoàn chỉnh (FLWeb) trên nền tảng Flask và SQLite, đáp ứng đầy đủ các chức năng quản lý người dùng, phân quyền Actor, quản lý tệp mô hình và điều phối luồng học liên kết.
  • Triển khai thành công quy trình 1 vòng huấn luyện học cộng tác 10 bước khép kín: từ khâu phân phối mô hình khởi tạo, huấn luyện cục bộ trên thiết bị client với mô hình MobileNet, thu thập trọng số và tổng hợp thành công mô hình toàn cầu mới thông qua thuật toán Federated Averaging (FedAvg).
  • Bảo đảm an toàn thông tin người dùng nhờ thuật toán băm mật khẩu pbkdf2:sha256:600000 và bảo vệ quyền riêng tư dữ liệu huấn luyện (dữ liệu thô của người dùng không bị truyền tải lên server).

Giải pháp và kiến nghị

  • Kiến nghị tiếp tục chuẩn hóa định dạng tệp mô hình khi người dùng tải lên để ngăn chặn các tệp tin độc hại hoặc sai cấu trúc làm gián đoạn quá trình tổng hợp trọng số.
  • Đề xuất áp dụng cơ chế xác thực vai trò chặt chẽ hơn để phân loại người dùng phù hợp với từng kịch bản huấn luyện dựa trên trường thông tin about_me.

Đóng góp tự nêu

  • Đưa ra một giải pháp công nghệ trực quan, giúp người dùng và sinh viên dễ dàng tiếp cận và hiểu rõ bản chất hoạt động của phương pháp học tập liên kết (Federated Learning).
  • Hiện thực hóa thành công việc kết hợp giữa framework web truyền thống (Flask) và các kỹ thuật AI phân tán hiện đại trên môi trường ứng dụng thực tế.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Hệ thống mới chỉ thử nghiệm mô hình học sâu MobileNet với các tập dữ liệu hình ảnh cơ bản, chưa mở rộng sang nhiều dạng dữ liệu hoặc cấu trúc mạng nơ-ron phức tạp khác.
  • Quá trình thực nghiệm được triển khai chủ yếu trên môi trường cục bộ và hệ thống mạng thử nghiệm với số lượng người dùng đồng thời còn hạn chế.
  • Kịch bản tổng hợp mô hình vẫn cần sự kích hoạt chủ động từ phía người quản trị, chưa hoàn toàn tự động hóa theo lịch trình định kỳ hoặc theo ngưỡng số lượng client gửi về.

Hướng nghiên cứu tiếp

  • Mở rộng hỗ trợ nhiều loại mô hình học máy và học sâu khác nhau (xử lý ngôn ngữ tự nhiên, chuỗi thời gian).
  • Nâng cấp thuật toán tổng hợp để xử lý các vấn đề dữ liệu không đồng nhất (Non-IID data) giữa các người dùng.
  • Tích hợp thêm các cơ chế bảo mật nâng cao như tổng hợp an toàn (Secure Aggregation) và quyền riêng tư vi sai (Differential Privacy) để ngăn chặn tấn công suy luận dữ liệu từ trọng số mô hình.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho sinh viên và học viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Khoa học Dữ liệu đang nghiên cứu về Trí tuệ nhân tạo phân tán. Cụ thể, các nội dung có giá trị ứng dụng cao gồm:

  • Thiết kế luồng dữ liệu 10 bước mô tả sự phối hợp giữa máy chủ và các nút biên trong bài toán Federated Learning.
  • Cách tổ chức ứng dụng web bằng Flask kết hợp cơ sở dữ liệu SQLite và ORM SQLAlchemy cho các bài toán tương tác với mô hình học máy.
  • Kỹ thuật tích hợp và huấn luyện mô hình MobileNet cục bộ cùng phương thức tổng hợp trọng số Federated Averaging.

Câu hỏi thường gặp

1. Hệ thống sử dụng thuật toán nào để tổng hợp các mô hình cục bộ từ người dùng?
Hệ thống sử dụng thuật toán Federated Averaging (FedAvg). Quá trình này được thực hiện qua hai bước: chia tỉ lệ trọng lượng mô hình cục bộ của từng người dùng và tính tổng trọng lượng theo tỉ lệ đó để hình thành mô hình toàn cầu (Global Model).

2. Mô hình học sâu nào được lựa chọn để thực nghiệm trên hệ thống và lý do là gì?
Mô hình MobileNet được lựa chọn. Tác giả chọn MobileNet vì đây là kiến trúc mạng nơ-ron được tối ưu hóa cho các thiết bị di động và môi trường biên, có khối lượng tính toán thấp, dung lượng nhẹ nhưng vẫn duy trì độ chính xác cao trên bộ dữ liệu ImageNet.

3. Cơ chế bảo mật thông tin tài khoản người dùng được triển khai như thế nào?
Hệ thống sử dụng cơ sở dữ liệu SQLite kết hợp SQLAlchemy, tự động băm mật khẩu người dùng trước khi lưu trữ bằng chuỗi băm chuẩn pbkdf2:sha256:600000, đảm bảo mật khẩu gốc không bị lộ trong bảng dữ liệu USER.

4. Dữ liệu huấn luyện của người dùng có bị gửi về máy chủ trung tâm không?
Không. Theo nguyên lý của học cộng tác được triển khai trong khóa luận, toàn bộ dữ liệu huấn luyện được giữ nguyên tại máy cục bộ của người dùng. Người dùng chỉ tải tệp tham số/trọng số mô hình sau khi huấn luyện lên máy chủ để phục vụ việc tổng hợp.

5. Hệ thống phân chia những vai trò người dùng nào?
Hệ thống phân chia thành 2 vai trò chính được định nghĩa trong trường user_role: vai trò USER (người dùng thông thường, thực hiện tải mô hình về huấn luyện cục bộ và gửi kết quả lên) và vai trò ADMIN (người quản trị, có quyền quản lý người dùng, tải mô hình gốc, kích hoạt tổng hợp trọng số và phân phối mô hình toàn cầu).


Kết luận

Khóa luận "Xây dựng ứng dụng web hỗ trợ triển khai học cộng tác" của sinh viên Nguyễn Phú Hiếu và Vũ Anh Kiệt đã hoàn thành mục tiêu xây dựng một nền tảng web trực quan trên nền tảng Flask và SQLite để minh họa và thực thi phương pháp học tập liên kết. Đề tài đã triển khai thành công chu trình 10 bước hoạt động giữa quản trị viên và người dùng, tích hợp mô hình MobileNet và giải thuật tổng hợp Federated Averaging giúp bảo vệ quyền riêng tư dữ liệu tại nguồn. Đây là công trình có cấu trúc rõ ràng, tính thực tiễn cao, đóng vai trò là tài liệu tham khảo giá trị cho các nghiên cứu ứng dụng AI phân tán trong kỹ thuật phần mềm.