Bỏ qua

AI Phi tập trung (Decentralised AI)

Khi dữ liệu ngày càng nhiều và quyền riêng tư ngày càng được coi trọng, việc tập trung toàn bộ dữ liệu về một trung tâm để huấn luyện AI trở nên bất khả thi về mặt pháp lý và kỹ thuật. File này bao quát các phương pháp huấn luyện và suy luận AI phân tán — từ học liên kết đến các giao thức đồng thuận phi tập trung.

Xuyên suốt các chương trước, ta đã quen với mô hình tập trung: thu thập dữ liệu, tập trung vào một cụm lưu trữ, huấn luyện trên một cụm GPU lớn, triển khai mô hình từ một endpoint API duy nhất. Mô hình này hoạt động tốt khi dữ liệu có thể tập trung hợp pháp và khối lượng tính toán đòi hỏi tài nguyên tập trung. Nhưng ngày càng nhiều, dữ liệu nằm rải rác — trên điện thoại của hàng tỷ người dùng, trong các bệnh viện không thể chia sẻ hồ sơ bệnh nhân, trong các ngân hàng bị ràng buộc bởi quy định bảo mật. Đồng thời, sự phụ thuộc vào một số ít nhà cung cấp đám mây tập trung đặt ra câu hỏi về khả năng chống kiểm duyệt, quyền riêng tư và khả năng phục hồi.

AI phi tập trung (decentralised AI) giải quyết những vấn đề này bằng cách phân phối quy trình huấn luyện và suy luận trên nhiều nút, không có điểm kiểm soát trung tâm.

Học Liên kết (Federated Learning)

Học liên kết (FL) là nền tảng của AI phi tập trung. Ý tưởng rất đơn giản: thay vì mang dữ liệu đến mô hình, hãy mang mô hình đến dữ liệu.

Giao thức cơ bản (FedAvg, McMahan et al., 2017):

  1. Một máy chủ trung tâm (hoặc một nút điều phối) khởi tạo một mô hình toàn cầu với các trọng số \(\\mathbf{w}_t\).
  2. Mô hình được gửi đến một tập con các client (ví dụ: điện thoại người dùng, máy chủ bệnh viện).
  3. Mỗi client thực hiện một số epoch huấn luyện trên dữ liệu cục bộ của nó, bắt đầu từ \(\\mathbf{w}_t\), thu được các trọng số cập nhật cục bộ \(\\mathbf{w}_t^{(k)}\).
  4. Các client gửi lại các bản cập nhật (gradient hoặc delta trọng số) — không phải dữ liệu thô — lên máy chủ.
  5. Máy chủ tính trung bình các bản cập nhật: \(\\mathbf{w}_{t+1} = \\frac{1}{K} \\sum_{k=1}^K \\mathbf{w}_t^{(k)}\) (trung bình có trọng số nếu các client có kích thước dữ liệu khác nhau).
  6. Lặp lại.

Lưu ý rằng trung bình các trọng số, không phải gradient. FedAvg giả định rằng các client có dữ liệu phân bố tương tự nhau — giả định này thường bị vi phạm trong thực tế.

Thách thức: Dữ liệu không IID

Trong học liên kết thực tế, dữ liệu giữa các client hầu như không bao giờ là IID (độc lập và cùng phân bố). Một người dùng chụp ảnh chó liên tục; một người khác chỉ chụp ảnh mèo. Một bệnh viện có nhiều bệnh nhân tim mạch; bệnh viện kia chuyên về ung thư.

Điều này gây ra sự trôi dạt client (client drift): mỗi client hội tụ về một hướng khác nhau trên bề mặt mất mát. FedAvg thuần túy trên dữ liệu không IID dẫn đến hội tụ chậm hoặc mô hình toàn cầu kém chất lượng.

Các giải pháp: - FedProx (Li et al., 2020): thêm một số hạng chính quy hóa \(\\frac{\\mu}{2} \\|\\mathbf{w}^{(k)} - \\mathbf{w}_t\\|^2\) vào hàm mất mát cục bộ, "neo" bản cập nhật gần trọng số toàn cầu. Tham số \(\\mu\) kiểm soát mức độ trung thành với mô hình gốc. - SCAFFOLD (Karimireddy et al., 2020): ước lượng variance giữa các client và hiệu chỉnh bản cập nhật cục bộ bằng các control variate, khắc phục client drift triệt để hơn FedProx. - Cá nhân hóa (Personalized FL): thay vì một mô hình toàn cầu, mỗi client có một mô hình riêng được tinh chỉnh từ nền tảng chung. Các kỹ thuật bao gồm Multi-Task Learning phân tán, học meta cho FL (Per-FedAvg, Fallah et al., 2020), và phân tách mô hình thành phần dùng chung + phần riêng (FedPer).

Bảo mật và Quyền riêng tư

Học liên kết giảm thiểu rủi ro tiết lộ dữ liệu, nhưng không loại bỏ hoàn toàn. Các bản cập nhật gradient vẫn có thể rò rỉ thông tin: các cuộc tấn công như gradient inversion (Zhu et al., 2019) có thể tái tạo một phần dữ liệu huấn luyện từ các gradient được chia sẻ. Ba lớp bảo vệ thường được dùng:

  1. Mã hóa đồng cấu (Homomorphic Encryption, HE): cho phép thực hiện tính toán trên dữ liệu đã mã hóa mà không cần giải mã. Máy chủ có thể tính trung bình các gradient đã mã hóa mà không bao giờ nhìn thấy chúng ở dạng rõ. Chi phí: HE rất chậm và tiêu tốn nhiều tài nguyên — một bước nhân ma trận trên dữ liệu đã mã hóa chậm hơn \(10^3\)\(10^6\) lần so với bản rõ.

  2. Tính toán đa bên an toàn (Secure Multi-Party Computation, SMPC): các client chia sẻ bản cập nhật dưới dạng các mảnh (secret shares), và máy chủ tái tạo kết quả trung bình mà không có bên nào nhìn thấy toàn bộ dữ liệu. SMPC có overhead thấp hơn HE nhưng vẫn yêu cầu nhiều vòng giao tiếp.

  3. Nhiễu bảo vệ riêng tư (Differential Privacy, DP-FedAvg): mỗi client thêm nhiễu Gaussian hoặc Laplace vào các gradient trước khi gửi đi. Tham số \(\\epsilon\) (ngân sách riêng tư) kiểm soát sự đánh đổi giữa quyền riêng tư và chất lượng mô hình. Với \(\\epsilon\) nhỏ (riêng tư cao), chất lượng mô hình giảm đáng kể.

Trong thực tế, các hệ thống thường kết hợp cả ba: SMPC để tổng hợp an toàn, DP để bảo vệ chống lại gradient inversion, và HE cho các tác vụ nhạy cảm nhất.

Blockchain và AI

Blockchain mở rộng mô hình FL bằng cách thay thế máy chủ trung tâm bằng một sổ cái phân tán không tin cậy:

  • Bằng chứng công việc có ích (Proof-of-Useful-Work, PoUW): thay vì đào băm vô nghĩa, các thợ đào thực hiện các tác vụ ML có giá trị (ví dụ: huấn luyện một batch, suy luận cho một client) để nhận phần thưởng. Các dự án như PrimeIntellect và Gensyn theo hướng này.
  • Token hóa dữ liệu huấn luyện: người đóng góp dữ liệu được thưởng token dựa trên chất lượng đóng góp, được đánh giá thông qua các giao thức đánh giá phi tập trung.
  • DAO quản lý mô hình: các quyết định về kiến trúc mô hình, lịch huấn luyện, và phân bổ phần thưởng được bỏ phiếu bởi các token holder. DAO (Decentralized Autonomous Organization) đảm bảo không một thực thể đơn lẻ kiểm soát mô hình.
  • Bằng chứng kiến thức không (Zero-Knowledge Proofs, ZKP): chứng minh rằng một client đã thực hiện huấn luyện đúng giao thức mà không tiết lộ dữ liệu hoặc gradient. Các zk-SNARKs cho ML còn ở giai đoạn đầu nhưng hứa hẹn xác thực tính toán phi tập trung.

Hạn chế của tích hợp blockchain: chi phí giao dịch (gas fees cho mỗi bước đồng thuận), độ trễ xác nhận khối (seconds đến minutes), và khối lượng dữ liệu on-chain (gradient có thể lớn hơn dung lượng block). Hầu hết các hệ thống thực tế dùng blockchain chỉ cho metadata và thanh toán, còn gradient được trao đổi qua các kênh off-chain (ví dụ: IPFS + giao thức gossip).

Huấn luyện Phân tán Ngang hàng

Trong FL thuần túy, máy chủ trung tâm vẫn là điểm tập trung. Huấn luyện ngang hàng (peer-to-peer) loại bỏ máy chủ hoàn toàn:

  • Gossip Averaging: mỗi nút duy trì một bản sao mô hình cục bộ. Ở mỗi vòng, một nút chọn ngẫu nhiên một nút khác, trao đổi và trung bình trọng số: \(\\mathbf{w}_i \\leftarrow \\frac{\\mathbf{w}_i + \\mathbf{w}_j}{2}\). Sau nhiều vòng, tất cả các nút hội tụ về cùng một mô hình (dưới các điều kiện nhất định). Thách thức: rất chậm khi mạng lớn, và có thể không hội tụ nếu cấu trúc đồ thị gossip không cân bằng.
  • All-Reduce phi tập trung: thay vì Ring AllReduce (chương 6) cần một trình điều phối, các giao thức như BlueFog dùng vòng lặp gossip hoặc spanning tree để tổng hợp gradient.
  • Khắc phục độ trễ và tỷ lệ drop: trong mạng P2P không đáng tin cậy, các nút có thể chậm hoặc ngắt kết nối. Kỹ thuật asynchronous FL cho phép các nút nhanh tiếp tục huấn luyện mà không chờ nút chậm, làm tăng thông lượng nhưng gây ra độ trễ gradient (gradient staleness) — gradient cũ pha loãng chất lượng hội tụ.

Suy luận Phi tập trung

Huấn luyện là một chuyện; suy luận (inference) là chuyện khác. Suy luận phi tập trung đặt câu hỏi: làm thế nào để hàng tỷ thiết bị có thể truy cập suy luận AI mà không phụ thuộc vào các API tập trung?

  • Mạng phân phối mô hình (Model Distribution Network): các nút lưu trữ bản sao mô hình đã lượng tử hóa và phục vụ suy luận cho các client gần nhất. Tương tự CDN nhưng cho mô hình thay vì nội dung tĩnh. Bottleneck là băng thông: một mô hình 70B tham số ở INT4 nặng ~35 GB, khó phân phối qua mạng P2P.
  • Suy luận chia sẻ (Split Inference): mô hình được chia làm hai (hoặc nhiều) phần ở một lớp trung gian. Client tính toán các lớp đầu và gửi embedding (nhỏ hơn nhiều so với dữ liệu thô) lên một nút mạnh hơn để tính phần còn lại. Điều này giảm tải tính toán cho client và giảm lộ diện dữ liệu (server chỉ thấy embedding, không thấy input thô).
  • Lượng tử hóa triệt để: mô hình INT4/INT2 cho phép suy luận trên CPU, MCU, và thậm chí cả thiết bị IoT, nhưng chất lượng giảm đáng kể.

Giao thức Đồng thuận cho ML

Khi huấn luyện phân tán trên các nút không tin cậy, một số nút có thể gửi gradient độc hại (tấn công đầu độc — poisoning) nhằm phá hoại mô hình. Các giải pháp Byzantine-robust:

  • Krum (Blanchard et al., 2017): chọn một gradient trong số các gradient gửi đến sao cho tổng khoảng cách Euclidean đến \(n-f-2\) gradient gần nhất là nhỏ nhất, trong đó \(f\) là số nút Byzantine tối đa. Krum loại bỏ các outlier.
  • Trimmed Mean: loại bỏ \(\\alpha\)% giá trị lớn nhất và nhỏ nhất cho mỗi chiều gradient, sau đó tính trung bình phần còn lại. Đơn giản nhưng hiệu quả khi tỷ lệ Byzantine không quá cao.
  • Bulyan (Mhamdi et al., 2018): kết hợp Krum (chọn ứng viên) và Trimmed Mean (tổng hợp), đảm bảo hội tụ ngay cả khi \(f > n/3\).
  • Centered Clipping (Karimireddy et al., 2021): giới hạn norm của mỗi gradient ở một ngưỡng, ngăn chặn các gradient có magnitude bất thường.

Những giao thức này giúp huấn luyện vẫn hội tụ ngay cả khi một phần nhỏ các nút bị kiểm soát bởi kẻ tấn công.

Các Framework Phổ biến

  • Flower (flwr.dev): framework FL đa năng, hỗ trợ PyTorch, TensorFlow, JAX. Kiến trúc module hóa cho phép tùy chỉnh giao thức tổng hợp, chiến lược chọn client, và bảo mật.
  • PySyft (OpenMined): tập trung vào quyền riêng tư — tích hợp HE, SMPC, DP. Dùng cho các ứng dụng y tế và tài chính.
  • OpenFL (Intel): framework FL cho Intel SGX enclave, bảo vệ tính toán bằng TEE (Trusted Execution Environment).
  • FATE (WeBank): framework FL cấp doanh nghiệp, hỗ trợ nhiều giao thức bảo mật và các thuật toán ML truyền thống bên cạnh deep learning.
  • TensorFlow Federated: tích hợp sâu với TensorFlow, phù hợp cho prototype và nghiên cứu.
  • Gensyn / PrimeIntellect: nền tảng huấn luyện AI phi tập trung dùng blockchain, cho phép thuê tài nguyên GPU từ mạng lưới ngang hàng.

Ứng dụng Thực tế

  • Y tế: các bệnh viện huấn luyện mô hình chẩn đoán ảnh y tế mà không chia sẻ ảnh bệnh nhân — dự án FL của NVIDIA (FLARE) hợp tác với King's College London cho kết quả tương đương mô hình tập trung.
  • Tài chính: phát hiện gian lận liên ngân hàng — mỗi ngân hàng huấn luyện trên dữ liệu giao dịch riêng, chỉ chia sẻ gradient. Dự đoán tín dụng xuyên biên giới mà không vi phạm quy định dữ liệu.
  • IoT biên: thiết bị thông minh học hành vi người dùng (bàn phím dự đoán, camera an ninh) mà không gửi dữ liệu thô lên đám mây. Google Gboard dùng FL để cải thiện mô hình dự đoán từ mà không gửi chuỗi gõ phím.
  • Xe tự hành: chia sẻ kinh nghiệm lái xe giữa các xe — mỗi xe học từ môi trường cục bộ và đóng góp vào mô hình toàn cầu, cải thiện khả năng xử lý các tình huống hiếm.

Hạn chế và Thách thức

  • Chi phí giao tiếp: mỗi vòng FL gửi đi toàn bộ trọng số mô hình. Một mô hình 1B tham số ở FP32 = 4 GB mỗi vòng. Với 1.000 client, tổng lưu lượng lên đến 4 TB mỗi vòng. Kỹ thuật nén gradient (gradient compression, Top-K sparsification, quantization) và giao tiếp không đồng bộ là cần thiết.
  • Độ trễ: client chậm (stragglers) gây ra hiệu ứng "làng chậm" — vòng huấn luyện phải chờ tất cả hoặc loại bỏ client chậm, làm mất thông tin.
  • Khó debug: khi một client gửi gradient xấu, rất khó xác định nguyên nhân — do dữ liệu xấu, lỗi code, hay tấn công.
  • Tấn công đầu độc (Poisoning): Byzantine attack, data poisoning, model poisoning. Các giao thức robust có thể giảm thiểu nhưng không loại bỏ hoàn toàn.
  • Thiếu tiêu chuẩn: mỗi framework có định dạng gradient, giao thức, và API riêng. Liên vận hành giữa các hệ thống FL khác nhau còn là vấn đề mở.
  • Cân bằng quyền riêng tư-chất lượng: DP bảo vệ riêng tư nhưng làm giảm chất lượng mô hình. Không có giải pháp nào đạt được cả hai cùng lúc ở mức tối ưu.

Tóm tắt các khái niệm chính

  • FedAvg: thuật toán nền tảng của FL — trung bình trọng số client.
  • Không IID: dữ liệu không đồng nhất giữa các client — nguyên nhân chính gây client drift.
  • FedProx, SCAFFOLD: cải thiện FedAvg cho dữ liệu không IID.
  • HE, SMPC, DP: ba lớp bảo vệ quyền riêng tư với các đánh đổi khác nhau.
  • Blockchain PoUW: phần thưởng cho tính toán AI có ích thay vì đào băm.
  • Gossip Averaging: FL không máy chủ, các nút trao đổi trọng số ngang hàng.
  • Byzantine-robust: Krum, Trimmed Mean, Bulyan — chống tấn công đầu độc.
  • Ứng dụng: y tế, tài chính, IoT, xe tự hành, chính phủ.
  • Hạn chế: chi phí giao tiếp, độ trễ, debug, bảo mật, thiếu tiêu chuẩn.

Further Reading

  • McMahan et al., 2017: Communication-Efficient Learning of Deep Networks from Decentralized Data (FedAvg)
  • Li et al., 2020: Federated Optimization in Heterogeneous Networks (FedProx)
  • Karimireddy et al., 2020: SCAFFOLD: Stochastic Controlled Averaging for Federated Learning
  • Blanchard et al., 2017: Machine Learning with Adversaries: Byzantine Tolerant Gradient Descent (Krum)
  • OpenMined / PySyft documentation
  • Flower (flwr.dev) — framework FL mã nguồn mở
  • Gensyn — nền tảng tính toán AI phi tập trung