Cơ chế chứng minh cấp nhân của mô hình học máy

robot
Đang tạo bản tóm tắt

Tác giả gốc: Zhiyong Fang

"Làm thế nào để ăn một con voi? Ăn từng miếng một."

Trong những năm gần đây, các mô hình học máy đã phát triển nhảy vọt với tốc độ đáng kinh ngạc. Khi khả năng của các mô hình tăng lên, độ phức tạp của chúng cũng tăng lên — các mô hình tiên tiến ngày nay thường chứa hàng triệu hoặc thậm chí hàng tỷ tham số. Để giải quyết những thách thức về quy mô này, một loạt các hệ thống chứng minh không kiến thức đã xuất hiện nhằm cố gắng cân bằng linh hoạt thời gian chứng minh, thời gian xác minh và kích thước chứng minh.

Bảng 1: Sự gia tăng theo cấp số nhân của quy mô tham số mô hình

​Cơ chế chứng minh cấp lõi của mô hình học máy

Mặc dù hầu hết công việc hiện tại trong lĩnh vực chứng minh không biết đã tập trung vào việc tối ưu hóa hệ thống chứng minh chính nó, nhưng một chiều kích quan trọng thường bị bỏ qua - đó là cách hợp lý chia mô hình quy mô lớn thành các mô-đun con nhỏ hơn và dễ xử lý hơn để chứng minh. Bạn có thể hỏi, tại sao điều này lại quan trọng như vậy?

Dưới đây chúng ta sẽ giải thích chi tiết:

Các mô hình học máy hiện đại thường có hàng tỷ tham số, cực kỳ tốn bộ nhớ, ngay cả khi không có bất kỳ xử lý mật mã nào liên quan. Trong trường hợp bằng chứng không kiến thức (ZKP), thách thức này được khuếch đại hơn nữa.

Mỗi tham số số thực đều phải được chuyển đổi thành các phần tử trong miền đại số (Arithmetic Field), và quá trình chuyển đổi này sẽ dẫn đến sự gia tăng chiếm dụng bộ nhớ khoảng 5 đến 10 lần. Hơn nữa, để mô phỏng chính xác các phép toán số thực trong miền đại số, còn cần phải thêm chi phí thao tác, thường cũng khoảng 5 lần.

Xét tổng thể, nhu cầu bộ nhớ của mô hình có thể tăng lên 25 đến 50 lần so với quy mô ban đầu. Ví dụ, một mô hình có 1 tỷ tham số kiểu số thực 32 bit chỉ riêng việc lưu trữ các tham số đã được chuyển đổi có thể cần từ 100 đến 200 GB bộ nhớ. Nếu tính đến các giá trị tính toán trung gian và chi phí của hệ thống chứng minh, tổng bộ nhớ sử dụng dễ dàng vượt qua mức TB.

Các hệ thống chứng minh chính hiện nay, như Groth 16 và Plonk, thường giả định rằng tất cả dữ liệu liên quan có thể được tải vào bộ nhớ cùng một lúc trong các triển khai chưa tối ưu. Giả định này mặc dù về mặt kỹ thuật là khả thi, nhưng dưới các điều kiện phần cứng thực tế thì lại rất thách thức, hạn chế lớn nguồn tài nguyên tính toán chứng minh có sẵn.

Giải pháp của Polyhedra: zkCuda

zkCuda là gì?

Như chúng tôi đã đề cập trong "Tài liệu kỹ thuật zkCUDA": zkCUDA do Polyhedra phát triển là một môi trường tính toán không kiến thức dành cho việc phát triển mạch hiệu suất cao, được thiết kế đặc biệt để nâng cao hiệu quả sinh chứng. Trong khi không làm giảm khả năng biểu đạt của mạch, zkCUDA có thể tận dụng tối đa khả năng song song của bộ chứng và phần cứng, đạt được việc sinh chứng ZK nhanh chóng.

Ngôn ngữ zkCUDA có cú pháp và ngữ nghĩa tương tự cao với CUDA, rất thân thiện với các nhà phát triển có kinh nghiệm với CUDA, và nó được triển khai bằng Rust ở tầng dưới, đảm bảo cả về độ an toàn và hiệu suất.

Nhờ vào zkCUDA, các nhà phát triển có thể:

  • Xây dựng mạch ZK hiệu suất cao nhanh chóng;
  • Lập lịch hiệu quả và sử dụng tài nguyên phần cứng phân tán, chẳng hạn như GPU hoặc môi trường cụm hỗ trợ MPI, để thực hiện tính toán song song quy mô lớn.

Tại sao chọn zkCUDA?

zkCuda là một khung tính toán không kiến thức hiệu suất cao lấy cảm hứng từ điện toán GPU, chia các mô hình máy học siêu quy mô thành các đơn vị tính toán (nhân) nhỏ hơn, dễ quản lý hơn và cho phép kiểm soát hiệu quả thông qua ngôn ngữ giao diện người dùng giống CUDA. Thiết kế này mang lại những lợi ích chính sau:

1. Hệ thống chứng minh lựa chọn khớp chính xác

zkCUDA hỗ trợ phân tích chi tiết cho từng kernel tính toán và ghép nối với hệ thống chứng minh không kiến thức phù hợp nhất. Ví dụ:

  • Đối với các tác vụ tính toán song song cao, bạn có thể chọn một giao thức như GKR tốt trong việc xử lý song song có cấu trúc;
  • Đối với các nhiệm vụ có quy mô nhỏ hoặc cấu trúc không đều, thì việc sử dụng các hệ thống chứng minh như Groth 16, có chi phí thấp trong các tình huống tính toán chặt chẽ, sẽ phù hợp hơn.

Bằng cách tùy chỉnh phần phụ trợ, zkCUDA có thể tối đa hóa các lợi thế về hiệu suất của các giao thức ZK khác nhau.

2. Tối ưu hóa phân bổ tài nguyên thông minh hơn và tối ưu hóa song song

Các yêu cầu tài nguyên CPU, bộ nhớ và I/O của các kernel chứng minh khác nhau một cách đáng kể. zkCUDA có thể đánh giá chính xác mức tiêu thụ tài nguyên của từng nhiệm vụ và lập lịch thông minh, tối đa hóa khả năng thông lượng tổng thể.

Quan trọng hơn, zkCUDA hỗ trợ phân phối nhiệm vụ giữa các nền tảng tính toán khác nhau - bao gồm CPU, GPU và FPGA - từ đó tối ưu hóa việc sử dụng tài nguyên phần cứng và nâng cao hiệu suất hệ thống.

zkCuda và sự phù hợp tự nhiên với giao thức GKR

Mặc dù zkCuda được thiết kế như một khung tính toán đa năng tương thích với nhiều hệ thống chứng minh không kiến thức, nhưng nó có sự phù hợp tự nhiên cao về kiến trúc với giao thức GKR (Goldwasser-Kalai-Rothblum).

Mô hình học máy của cơ chế chứng minh cấp nhân

Trong thiết kế kiến trúc, zkCUDA kết nối các hạt nhân tính toán con lại với nhau thông qua việc giới thiệu cơ chế cam kết đa thức, đảm bảo tất cả các hạt nhân tính toán con hoạt động dựa trên dữ liệu chia sẻ nhất quán. Cơ chế này rất quan trọng để duy trì tính toàn vẹn của hệ thống, nhưng cũng mang lại chi phí tính toán đáng kể.

Ngược lại, giao thức GKR cung cấp một con đường thay thế hiệu quả hơn. Không giống như các hệ thống không kiến thức truyền thống, yêu cầu mỗi lõi chứng minh đầy đủ các ràng buộc bên trong của nó, GKR cho phép xác minh tính đúng tính toán được truy xuất trở lại từ đầu ra hạt nhân đến đầu vào. Cơ chế này cho phép tính chính xác được chuyển qua các hạt nhân, thay vì được xác minh đầy đủ trong mỗi mô-đun. Ý tưởng cốt lõi tương tự như lan truyền ngược gradient trong học máy, trong đó các tuyên bố về tính đúng đắn được theo dõi và truyền tải thông qua đồ thị tính toán.

Mặc dù việc hợp nhất loại "chứng minh độ dốc" này trong nhiều đường dẫn mang lại một số phức tạp, nhưng chính cơ chế này đã tạo nên nền tảng hợp tác sâu sắc giữa zkCUDA và GKR. Bằng cách đồng bộ hóa các đặc tính cấu trúc trong quy trình đào tạo máy học, zkCUDA hy vọng sẽ đạt được tích hợp hệ thống chặt chẽ hơn và tạo ra chứng minh không kiến thức hiệu quả hơn trong các trường hợp mô hình lớn.

Kết quả ban đầu và hướng đi tương lai

Chúng tôi đã hoàn thành phát triển ban đầu của khung zkCuda và đã thử nghiệm thành công trong nhiều tình huống khác nhau, bao gồm các hàm băm mật mã như Keccak và SHA-256, cũng như các mô hình học máy quy mô nhỏ.

Hướng tới tương lai, chúng tôi hy vọng sẽ tiếp tục giới thiệu một loạt các kỹ thuật kỹ thuật đã trưởng thành trong đào tạo học máy hiện đại, chẳng hạn như lập lịch tối ưu bộ nhớ (memory-efficient scheduling) và tối ưu hóa cấp đồ thị (graph-level optimization). Chúng tôi tin rằng việc tích hợp những chiến lược này vào quy trình tạo ra bằng chứng không kiến thức sẽ nâng cao đáng kể giới hạn hiệu suất của hệ thống và tính linh hoạt thích ứng.

Đây chỉ là một điểm khởi đầu và zkCuda sẽ tiếp tục hướng tới một khung chứng minh phổ quát hiệu quả, có khả năng mở rộng cao và có khả năng thích ứng cao.

Liên kết gốc

Xem bản gốc
Nội dung chỉ mang tính chất tham khảo, không phải là lời chào mời hay đề nghị. Không cung cấp tư vấn về đầu tư, thuế hoặc pháp lý. Xem Tuyên bố miễn trừ trách nhiệm để biết thêm thông tin về rủi ro.
  • Phần thưởng
  • Bình luận
  • Chia sẻ
Bình luận
0/400
Không có bình luận
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)