Federated Learning
Học liên kết huấn luyện một model trên nhiều thiết bị hoặc tổ chức, nơi dữ liệu thô được giữ tại chỗ và chỉ các bản cập nhật model được chia sẻ với server.
Học liên kết là phương pháp huấn luyện một model học máy trên nhiều thiết bị hoặc tổ chức, trong khi dữ liệu huấn luyện vẫn được lưu tại nơi thu thập. Máy chủ điều phối gửi model hiện tại đến các bên tham gia; mỗi bên huấn luyện model trên dữ liệu của mình, và chỉ các bản cập nhật model sau đó mới được gửi lại để kết hợp thành một model dùng chung tốt hơn. Các nhà nghiên cứu Google đặt tên cho phương pháp này trong bài báo năm 2016 Học hiệu quả về giao tiếp các mạng sâu từ dữ liệu phi tập trung, giới thiệu thuật toán Federated Averaging (FedAvg) để huấn luyện trên dữ liệu vẫn lưu trên thiết bị di động của người dùng. Đưa model đến nơi có dữ liệu giúp điện thoại, bệnh viện và ngân hàng học từ thông tin không thể tập hợp vào một data lake do các quy định về quyền riêng tư, quy định như GDPR của EU hoặc quy mô dữ liệu quá lớn.
Cách học liên kết hoạt động#
Quá trình huấn luyện diễn ra theo từng vòng. Máy chủ chọn một nhóm client khả dụng và gửi cho họ trọng số model toàn cục. Mỗi client chạy một vài epoch gradient descent trên dữ liệu cục bộ rồi trả về trọng số đã cập nhật. Sau đó, FedAvg lấy trung bình các trọng số nhận được, phân bổ tỷ trọng cho mỗi client theo số mẫu huấn luyện của client đó; kết quả trở thành model toàn cục cho vòng tiếp theo. Trong các thử nghiệm FedAvg, thực hiện nhiều bước cục bộ giữa các lần liên lạc đã giảm số vòng giao tiếp từ 10 đến 100 lần so với stochastic gradient descent đồng bộ. Đoạn mã này mô phỏng FedAvg cho một model tuyến tính trên ba client có lượng dữ liệu khác nhau:
import torch
torch.manual_seed(0)
true_w = torch.tensor([2.0, -3.0])
# Three clients with private datasets of different sizes; raw data never leaves a client
clients = []
for n in (50, 200, 500):
X = torch.randn(n, 2)
clients.append((X, X @ true_w + 0.1 * torch.randn(n)))
global_w = torch.zeros(2)
for r in range(1, 6):
weighted = []
for X, y in clients:
w = global_w.clone()
for _ in range(5): # local gradient descent steps on the client's own data
w -= 0.1 * 2 * X.T @ (X @ w - y) / len(y)
weighted.append(len(y) * w)
# FedAvg: average the client weights, weighted by each client's number of samples
global_w = sum(weighted) / sum(len(y) for _, y in clients)
print(f"round {r}: global weights {[round(v, 3) for v in global_w.tolist()]}")Đoạn mã in ra trọng số toàn cục [1.354, -2.023] sau vòng 1, [1.935, -2.898] sau vòng 3 và [1.995, -2.99] sau vòng 5; các trọng số hội tụ về giá trị thực [2, -3] dù máy chủ chỉ nhận trọng số của từng client.
Học liên kết xuyên thiết bị và xuyên tổ chức#
Học liên kết có hai thiết lập với những ràng buộc khác nhau. Huấn luyện xuyên thiết bị bao phủ hàng triệu điện thoại hoặc cảm biến, mỗi thiết bị chỉ giữ một lượng nhỏ dữ liệu và thường ngoại tuyến hoặc dùng pin; vì vậy, mỗi vòng chỉ sử dụng một phần nhỏ thiết bị và phải xử lý được tình trạng ngắt kết nối. Bàn phím Gboard của Google huấn luyện các model dự đoán từ tiếp theo theo cách này. Huấn luyện xuyên tổ chức kết nối một số ít tổ chức, chẳng hạn bệnh viện hoặc ngân hàng, mỗi tổ chức lưu tập dữ liệu lớn trên máy chủ đáng tin cậy. Trong nghiên cứu phân đoạn khối u liên kết, 71 tổ chức chăm sóc sức khỏe trên sáu châu lục đã huấn luyện model phân đoạn glioblastoma trên 25,256 ảnh MRI của 6,314 bệnh nhân mà không chia sẻ ảnh; model liên kết xác định ranh giới khối u có thể phẫu thuật tốt hơn 33% so với model được huấn luyện trên dữ liệu công khai. Thiết lập phù hợp tùy thuộc vào vị trí lưu dữ liệu:
Cùng quy trình này cũng áp dụng cho model thị giác: mỗi bệnh viện, nhà máy hoặc cửa hàng có thể tải trọng số YOLO26 toàn cục hiện tại, fine-tune trên ảnh của riêng mình bằng chế độ train YOLO tiêu chuẩn của Ultralytics, rồi chỉ gửi lại trọng số đã cập nhật để máy chủ lấy trung bình. Các framework mã nguồn mở như Flower và NVIDIA FLARE xử lý việc chọn client, giao tiếp và tổng hợp cho cả hai thiết lập.
Quyền riêng tư và bảo mật#
Giữ dữ liệu cục bộ tự nó không giúp quá trình huấn luyện trở nên riêng tư, vì các bản cập nhật model chứa thông tin về dữ liệu đã tạo ra chúng. Các cuộc tấn công đảo ngược gradient như Rò rỉ dữ liệu sâu từ gradient đã tái tạo ảnh và nhãn huấn luyện từ gradient được chia sẻ, còn tấn công suy luận thành viên kiểm tra xem một bản ghi cụ thể có được sử dụng hay không. Hệ thống production bổ sung hai biện pháp phòng vệ. Tổng hợp an toàn mã hóa các bản cập nhật để máy chủ chỉ biết tổng của chúng; quyền riêng tư vi sai giới hạn từng bản cập nhật và thêm nhiễu đã hiệu chỉnh để không thể khôi phục đóng góp của bất kỳ người dùng riêng lẻ nào; Google cho biết tất cả model ngôn ngữ mạng nơ-ron dự đoán từ tiếp theo của Gboard, được huấn luyện bằng học liên kết, hiện có các bảo đảm về quyền riêng tư vi sai. Máy chủ cũng phải bảo vệ trước các client gửi bản cập nhật bị đầu độc, bằng cách dùng quy tắc tổng hợp bền vững như trung vị theo từng tọa độ để giới hạn ảnh hưởng của bất kỳ client nào. Dữ liệu client khác biệt đáng kể giữa các bên tham gia, chẳng hạn máy quét của bệnh viện này khác bệnh viện kia, khiến model cục bộ lệch xa nhau và làm chậm quá trình hội tụ.
Học liên kết và các thuật ngữ liên quan#
- Huấn luyện phân tán: Chia tập dữ liệu lưu tập trung giữa nhiều GPU trong một trung tâm dữ liệu để huấn luyện nhanh hơn. Học liên kết không thể di chuyển dữ liệu; các bên tham gia cũng chậm hơn, kém tin cậy hơn và lưu dữ liệu có phân phối khác nhau.
- Học phân tách: Chia chính mạng giữa client và máy chủ, đồng thời trao đổi các activation trung gian; còn trong học liên kết, mỗi client có toàn bộ model và trao đổi trọng số.
- Quyền riêng tư dữ liệu: Mục tiêu rộng hơn là bảo vệ thông tin cá nhân. Học liên kết là một kỹ thuật phục vụ mục tiêu này và thường được kết hợp với quyền riêng tư vi sai và tổng hợp an toàn.
- AI biên: Chạy model trên thiết bị. Học liên kết xuyên thiết bị mở rộng phương pháp này bằng cách huấn luyện trên chính các thiết bị đó.










