CHƯƠNG 1: GIỚI THIỆU Giới thiệu về tình hình nghiên cứu thực tế, mục tiêu của đề tài cũng như bố cục của đồ án. − CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Mô tả về các thiết bị, công cụ hỗ trợ, phương pháp nghiên cứu và thiết kế của đề tài. − CHƯƠNG 3: THIẾT KẾ VÀ TRIỂN KHAI Mô tả kiến trúc tổng quan, quy trình triển khai và các thuật toán được sử dụng trong hệ thống. − CHƯƠNG 4: KIỂM TRA KẾT QUẢ VÀ ĐÁNH GIÁ Trình bày kết quả của quá trình thiết kế và đưa ra nhận xét dựa trên yêu cầu thiết kế.
− CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Đưa ra những nhận xét về kết quả đạt được dựa trên mục tiêu của đồ án từ đó đưa ra hướng phát triển để giải quyết các vấn đề, hướng mở rộng quy mô đồ án. 5 CHƯƠNG 2: CƠ SỞ LÍ THUYẾT 2.1 HỌC TẬP LIÊN KẾT – FEDERATED LEARNING Học tập liên kết chỉ đơn giản là đảo ngược cách tiếp cận của học máy cổ điển. Nó cho phép học máy trên dữ liệu phân tán bằng cách di chuyển quá trình huấn luyện đến dữ liệu, thay vì chuyển dữ liệu đến quá trình huấn luyện. • Học (máy) tập trung: di chuyển dữ liệu vào tính toán.
• Học (máy) liên kết: di chuyển tính toán vào dữ liệu.1 Học tập liên kết trong hệ thống edge computing [23] Bằng cách này, nó cho phép sử dụng máy học (và các phương pháp tiếp cận khoa học dữ liệu khác) trong những lĩnh vực mà trước đây không thể thực hiện được. Giờ đây chúng ta có thể đào tạo các mô hình AI y tế bằng cách kết hợp dữ liệu từ nhiều bệnh viện khác nhau. Chúng ta có thể xây dựng các ứng dụng mới nâng cao quyền riêng tư (chẳng hạn như nhắn tin an toàn) có AI tích hợp tốt hơn so với các lựa chọn thay thế không nâng cao quyền riêng tư. Khi triển khai học tập liên kết, người ta phát hiện ra ngày càng nhiều lĩnh vực có thể được đổi mới vì giờ đây chúng có quyền truy cập vào lượng lớn dữ liệu mà trước đây không thể truy cập được.1 Quá trình học tập liên kết • Quá trình thứ nhất: Khởi tạo mô hình toàn cục Đầu tiên khởi tạo mô hình trên máy chủ.
Điều này hoàn toàn giống với phương pháp học tập trung cổ điển: khởi tạo các tham số mô hình một cách ngẫu nhiên hoặc từ một điểm kiểm tra đã lưu trước đó.2 Khởi tạo mô hình toàn cục [34] • Quá trình thứ hai: Gửi mô hình tới một số client/thiết bị biên được kết nối (nút Client) Tiếp theo, gửi các tham số của mô hình toàn cục đến các nút Client được kết nối (các thiết bị biên như điện thoại thông minh hoặc máy chủ đặt tại các tổ chức). Điều này nhằm đảm bảo rằng mỗi nút tham gia bắt đầu quá trình huấn luyện cục bộ của chúng bằng cách sử dụng cùng các tham số mô hình với nhau. Thông thường chỉ sử dụng một vài nút được kết nối thay vì tất cả các nút. Lý do cho điều này là trong thực tế tất cả các nút Client sẽ không hoàn toàn tham gia vào quá trình huấn luyện do một số lý do liên quan đến kết nối mạng hoặc là quyết định ở phía Client chẳng hạn như tạm ngưng quá trình khi chưa thu thập đủ dữ liệu huấn luyện, không đủ tài nguyên,… 7 Hình 2.3 Gửi mô hình toàn cục [34] • Quá trình thứ ba: Huấn luyện mô hình cục bộ trên dữ liệu của từng Client/thiết bị biên (nút Client) Bây giờ tất cả các nút Client (đã chọn) đều có phiên bản mới nhất của các tham số mô hình toàn cục, chúng sẽ bắt đầu quá trình đào tạo cục bộ.
Họ sử dụng tập dữ liệu cục bộ của riêng mình để đào tạo mô hình cục bộ của riêng họ. Họ không huấn luyện mô hình cho đến khi hội tụ hoàn toàn mà chỉ huấn luyện trong một thời gian ngắn. Điều này có thể chỉ là một vài epoch trên dữ liệu cục bộ hoặc thậm chí chỉ là một vài steps (mini-batchs).4 Đào tạo về dữ liệu cục bộ [34] 8 • Quá trình thứ tư: Gửi lại bản cập nhật mô hình cho máy chủ Sau khi đào tạo cục bộ, mỗi nút máy khách có một phiên bản hơi khác của các tham số mô hình mà chúng nhận được ban đầu. Các tham số đều khác nhau vì mỗi nút máy khách có các mẫu khác nhau trong tập dữ liệu cục bộ của nó.
Sau đó, các nút máy khách sẽ gửi các bản cập nhật mô hình đó trở lại máy chủ. Bản cập nhật mô hình mà họ gửi có thể là tham số mô hình đầy đủ hoặc chỉ là độ dốc được tích lũy trong quá trình đào tạo cục bộ.5 Gửi thông tin cập nhật về mô hình [34] • Quá trình thứ năm: Tổng hợp các cập nhật mô hình thành mô hình toàn cục mới Máy chủ nhận được cập nhật mô hình từ các nút Client đã chọn. Nếu nó chọn 100 nút Client thì hiện tại nó có 100 phiên bản hơi khác nhau của mô hình toàn cục ban đầu, mỗi phiên bản được huấn luyện trên dữ liệu cục bộ của mỗi client. Để có được một mô hình duy nhất, chúng tôi phải kết hợp tất cả các bản cập nhật mô hình mà chúng tôi nhận được từ các nút máy khách.
Quá trình này được gọi là tổng hợp và có nhiều cách khác nhau để thực hiện việc đó. Cách cơ bản nhất để thực hiện điều đó được gọi là tính trung bình liên kết - Federated Averaging (McMahan et al., 2016) thường được viết tắt là FedAvg. FedAvg lấy 100 bản cập nhật mô hình và tính trung bình chúng. Nói chính xác hơn, cần trung bình có trọng số của các bản cập nhật mô hình, được tính theo số lượng mẫu mà mỗi Client sử dụng để đào tạo.
Trọng số rất quan trọng để đảm bảo rằng mỗi mẫu dữ liệu có cùng “tác động” đến mô hình toàn cục thu được. Nếu một Client có 10 mẫu và Client khác 9 có 100 mẫu nếu không tính trung bình có trọng số mỗi mẫu trong số 10 mẫu sẽ ảnh hưởng đến mô hình toàn cục gấp 10 lần so với mỗi mẫu trong số 100 mẫu.6 Cập nhật mô hình tổng hợp [34] • Quá trình lặp lại: Lặp lại các quá trình trên cho đến khi mô hình hội tụ Từ quá trình thứ hai đến quá trình thứ năm được gọi là một vòng học tập liên kết. Các tham số mô hình toàn cục được gửi đến các nút Client tham gia (quá trình thứ hai), các nút Client huấn luyện dữ liệu cục bộ của chúng (quá trình thứ ba), chúng gửi các mô hình đã cập nhật của mình đến máy chủ (quá trình thứ tư) và sau đó máy chủ tổng hợp các bản cập nhật mô hình để có phiên bản mới của mô hình toàn cục (quá trình thứ năm). Trong một vòng duy nhất, mỗi nút Client tham gia vào vòng lặp đó chỉ huấn luyện trong một thời gian ngắn.
Điều này có nghĩa là sau quá trình tổng hợp (quá trình thứ năm), chúng ta có một mô hình đã được huấn luyện trên tất cả dữ liệu của tất cả các nút Client tham gia nhưng chỉ trong một thời gian ngắn. Sau đó, cần phải lặp đi lặp lại quá trình huấn luyện này để cuối cùng đạt được một mô hình được huấn luyện đầy đủ, hoạt động tốt trên dữ liệu của tất cả các nút Client.2 Đánh giá liên kết Tương tự như quá trình huấn luyện, quá trình này cho phép mô hình được đánh giá trên dữ liệu được phân tán mà không cần chuyển dữ liệu đến một điểm trung tâm. Điều này được gọi là đánh giá liên kết - Federated evaluation. Trên thực tế, đánh giá liên kết là một phần không thể thiếu của hầu hết các hệ thống học liên kết.
Nó cung cấp các chỉ số và thông tin quan trọng về hiệu suất của mô hình trên dữ liệu phân tán, giúp cải thiện và tối ưu hóa quá trình huấn luyện và triển khai mô hình. Quá trình đánh giá liên kết cũng giúp xác định hiệu suất của mô hình trên các dữ liệu đa dạng từ nhiều nguồn khác nhau, đảm bảo tính đa dạng và biểu diễn đúng đắn của mô hình trên một loạt các điều kiện và ngữ cảnh khác nhau.2 THƯ VIỆN FLOWER Flower là một thư viện mã nguồn mở dành cho học liên kết, cung cấp các công cụ và giao diện lập trình dễ sử dụng để triển khai các ứng dụng học liên kết. Thư viện Flower được thiết kế để hỗ trợ nhiều loại thiết bị và môi trường, từ các thiết bị di động đến các hệ thống phân tán lớn. Với nhiều ưu điểm vượt trội so với các công cụ khác.
Dưới đây là những lý do chính khiến Flower trở thành lựa chọn lý tưởng cho học liên kết: 2.1 Một framework thống nhất quá trình học liên kết, phân tích và đánh giá Flower cung cấp một giải pháp thống nhất cho học liên kết, giúp tích hợp một cách liền mạch các công cụ phân tích và đánh giá. Cách tiếp cận toàn diện này cho phép quản lý và tối ưu hóa hiệu quả toàn bộ vòng đời của học liên kết, từ giai đoạn huấn luyện mô hình ban đầu đến giai đoạn đánh giá cuối cùng.2 Khả năng mở rộng Một trong những điểm mạnh quan trọng của Flower là khả năng mở rộng. Flower được xây dựng để hỗ trợ các hệ thống thực tế với số lượng lớn khách hàng. Các nhà nghiên cứu đã sử dụng Flower để thực hiện các công việc với hàng chục triệu khách hàng.
Trên thực tế có rất nhiều tổ chức lớn trên thế giới sử dụng FLOWER cho mục đích nghiên cứu và học tập.7 chỉ ra rằng đã có rất nhiều tổ chức lớn trên thế giới sử dụng FLOWER.7 Một trong những tổ chức lớn trên thế giới sử dụng FLOWER 2.3 Không phụ thuộc vào framework học máy Flower tương thích với hầu hết các khung học máy hiện có và đang phát triển. Dù bạn yêu thích Keras, PyTorch, hay sử dụng Raw NumPy, Flower đều hỗ trợ tốt và tương thích tốt.4 Hỗ trợ đa dạng thiết bị Flower cho phép nghiên cứu trên tất cả các loại máy chủ và thiết bị, bao gồm cả di động. Các nền tảng như AWS, GCP, Azure, Android, iOS, Raspberry Pi, và Nvidia Jetson đều tương thích với Flower. Trong một nghiên cứu gần đây, các nhà nghiên cứu đã khám phá khả năng huấn luyện học liên kết trên các thiết bị di động và thiết bị nhúng bằng cách sử dụng thư viện Flower.
Nghiên cứu cũng nhấn mạnh tầm quan trọng của việc hỗ trợ huấn luyện trên nhiều thiết bị và cách Flower có thể được sử dụng để đánh giá và tối ưu hóa các thuật toán học liên kết [38].