กลไกการพิสูจน์ระดับเคอร์เนลสำหรับโมเดลการเรียนรู้ของเครื่อง

avatar
星球君的朋友们
3วันก่อน
ประมาณ 5898คำ,ใช้เวลาอ่านบทความฉบับเต็มประมาณ 8นาที
zkCuda จะยังคงมุ่งหน้าสู่กรอบการทำงานพิสูจน์ทั่วไปที่มีประสิทธิภาพ ปรับขนาดได้สูง และปรับเปลี่ยนได้สูง

ผู้เขียนต้นฉบับ: Zhiyong Fang

“กินช้างยังไง ครั้งละคำ”

ในช่วงไม่กี่ปีที่ผ่านมา โมเดลการเรียนรู้ของเครื่องจักรได้พัฒนาก้าวหน้าอย่างก้าวกระโดดด้วยอัตราที่น่าทึ่ง เมื่อความสามารถของโมเดลเพิ่มขึ้น ความซับซ้อนของโมเดลก็เพิ่มขึ้นพร้อมๆ กันด้วย โมเดลขั้นสูงในปัจจุบันมักมีพารามิเตอร์เป็นล้านหรือพันล้านตัว เพื่อรับมือกับความท้าทายในระดับนี้ จึงได้เกิดระบบพิสูจน์ความรู้เป็นศูนย์ขึ้น ซึ่งมุ่งมั่นที่จะสร้างสมดุลแบบไดนามิกระหว่างเวลาพิสูจน์ เวลายืนยัน และขนาดการพิสูจน์อยู่เสมอ

ตารางที่ 1: การเติบโตแบบเอ็กซ์โพเนนเชียลในขนาดพารามิเตอร์ของโมเดล

กลไกการพิสูจน์ระดับเคอร์เนลสำหรับโมเดลการเรียนรู้ของเครื่อง

แม้ว่างานปัจจุบันส่วนใหญ่ในสาขาการพิสูจน์ความรู้เป็นศูนย์จะเน้นที่การปรับปรุงระบบการพิสูจน์เอง แต่มิติสำคัญที่มักถูกมองข้ามไป นั่นก็คือ วิธีแบ่งโมเดลขนาดใหญ่ให้เป็นโมดูลย่อยที่เล็กกว่าและจัดการได้ง่ายกว่าสำหรับการพิสูจน์ คุณอาจถามว่า เหตุใดสิ่งนี้จึงสำคัญมาก?

เรามาอธิบายกันอย่างละเอียด:

จำนวนพารามิเตอร์ในโมเดลการเรียนรู้ของเครื่องจักรสมัยใหม่มักมีจำนวนเป็นพันล้านตัว ซึ่งใช้ทรัพยากรหน่วยความจำจำนวนมากอยู่แล้วแม้จะไม่มีการประมวลผลการเข้ารหัสใดๆ ก็ตาม ในบริบทของการพิสูจน์ความรู้เป็นศูนย์ (ZKP) ความท้าทายนี้จะยิ่งทวีความรุนแรงมากขึ้น

พารามิเตอร์จุดลอยตัวแต่ละตัวจะต้องถูกแปลงเป็นองค์ประกอบในฟิลด์พีชคณิต และกระบวนการแปลงนี้จะเพิ่มการใช้หน่วยความจำประมาณ 5 ถึง 10 เท่า นอกจากนี้ เพื่อจำลองการดำเนินการจุดลอยตัวในฟิลด์พีชคณิตได้อย่างแม่นยำ จะต้องมีการเพิ่มค่าใช้จ่ายการดำเนินการเพิ่มเติม ซึ่งโดยปกติแล้วจะอยู่ที่ประมาณ 5 เท่า

โดยทั่วไป ความต้องการหน่วยความจำโดยรวมของแบบจำลองอาจเพิ่มขึ้นเป็น 25 ถึง 50 เท่าของขนาดเดิม ตัวอย่างเช่น แบบจำลองที่มีพารามิเตอร์จุดลอยตัว 32 บิต 1 พันล้านตัวอาจต้องใช้หน่วยความจำ 100 ถึง 200 GB เพื่อจัดเก็บพารามิเตอร์ที่แปลงแล้วเท่านั้น เมื่อพิจารณาถึงค่าใช้จ่ายด้านการคำนวณระดับกลางและระบบพิสูจน์เองแล้ว การใช้หน่วยความจำโดยรวมจะเกินระดับ TB ได้อย่างง่ายดาย

ระบบพิสูจน์กระแสหลักในปัจจุบัน เช่น Groth 16 และ Plonk มักจะถือว่าข้อมูลที่เกี่ยวข้องทั้งหมดสามารถโหลดลงในหน่วยความจำได้ในเวลาเดียวกันในการใช้งานที่ไม่ได้รับการปรับให้เหมาะสม แม้ว่าสมมติฐานนี้จะเป็นไปได้ในทางเทคนิค แต่ก็ท้าทายอย่างยิ่งภายใต้เงื่อนไขฮาร์ดแวร์จริง และจำกัดทรัพยากรคอมพิวเตอร์พิสูจน์ที่มีอยู่อย่างมาก

โซลูชันของรูปหลายเหลี่ยม: zkCuda

zkCuda คืออะไร?

ตามที่เราได้ระบุไว้ใน เอกสารทางเทคนิคของ zkCUDA :
zkCUDA ของ Polyhedra เป็นสภาพแวดล้อมการคำนวณแบบไร้ความรู้สำหรับการพัฒนาวงจรประสิทธิภาพสูง ออกแบบมาเพื่อปรับปรุงประสิทธิภาพในการสร้างหลักฐาน zkCUDA สามารถใช้ความสามารถของตัวพิสูจน์และฮาร์ดแวร์คู่ขนานพื้นฐานได้อย่างเต็มที่เพื่อสร้างหลักฐาน ZK ได้อย่างรวดเร็ว โดยไม่ต้องเสียสละการแสดงออกของวงจร

ภาษา zkCUDA มีความคล้ายคลึงกับภาษา CUDA มากทั้งในด้านไวยากรณ์และความหมาย และเป็นมิตรต่อนักพัฒนาที่มีประสบการณ์ด้าน CUDA อยู่แล้ว การใช้งานพื้นฐานอยู่ใน Rust ซึ่งรับประกันทั้งความปลอดภัยและประสิทธิภาพ

ด้วย zkCUDA นักพัฒนาสามารถ:

  • สร้างวงจร ZK ประสิทธิภาพสูงได้อย่างรวดเร็ว

  • กำหนดเวลาและใช้ทรัพยากรฮาร์ดแวร์แบบกระจายอย่างมีประสิทธิภาพ เช่น GPU หรือสภาพแวดล้อมคลัสเตอร์ที่รองรับ MPI เพื่อให้บรรลุการประมวลผลแบบขนานขนาดใหญ่

ทำไมต้อง zkCUDA?

zkCuda คือกรอบงานการคำนวณแบบไร้ความรู้ประสิทธิภาพสูงที่ได้รับแรงบันดาลใจจากการคำนวณด้วย GPU กรอบงานนี้สามารถแบ่งโมเดลการเรียนรู้ของเครื่องขนาดใหญ่ออกเป็นหน่วยการคำนวณ (เคอร์เนล) ที่เล็กกว่าและจัดการได้ง่ายกว่า และสามารถควบคุมได้อย่างมีประสิทธิภาพผ่านภาษาฟรอนต์เอนด์ที่คล้ายกับ CUDA การออกแบบนี้ให้ข้อได้เปรียบหลักดังต่อไปนี้:

1. การเลือกระบบพิสูจน์สำหรับการจับคู่ที่แน่นอน

zkCUDA รองรับการวิเคราะห์แบบละเอียดของเคอร์เนลคอมพิวเตอร์แต่ละตัวและจับคู่กับระบบพิสูจน์ความรู้เป็นศูนย์ที่เหมาะสมที่สุด ตัวอย่างเช่น:

  • สำหรับงานประมวลผลแบบขนานสูง อาจใช้โปรโตคอลเช่น GKR ที่เหมาะสำหรับการจัดการการประมวลผลแบบขนานที่มีโครงสร้างได้

  • สำหรับงานขนาดเล็กหรือมีโครงสร้างไม่สม่ำเสมอ จะเหมาะสมกว่าที่จะใช้ระบบพิสูจน์ เช่น Groth 16 ที่มีค่าใช้จ่ายเบื้องต้นต่ำในสถานการณ์การประมวลผลแบบกะทัดรัด

ด้วยการปรับแต่งการเลือกแบ็กเอนด์ zkCUDA สามารถเพิ่มข้อได้เปรียบด้านประสิทธิภาพของโปรโตคอล ZK ต่างๆ ให้สูงสุดได้

2. การกำหนดตารางทรัพยากรที่ชาญฉลาดและการเพิ่มประสิทธิภาพแบบคู่ขนาน

เคอร์เนลพิสูจน์ที่แตกต่างกันจะมีความต้องการทรัพยากรที่แตกต่างกันอย่างมากสำหรับ CPU หน่วยความจำ และ I/O zkCUDA สามารถประเมินการใช้ทรัพยากรของแต่ละงานได้อย่างแม่นยำและกำหนดเวลาอย่างชาญฉลาดเพื่อเพิ่มปริมาณงานโดยรวมให้สูงสุด

ที่สำคัญกว่านั้น zkCUDA รองรับการกระจายงานระหว่างแพลตฟอร์มคอมพิวเตอร์ที่ไม่เป็นเนื้อเดียวกัน รวมถึง CPU, GPU และ FPGA เพื่อให้บรรลุการใช้ทรัพยากรฮาร์ดแวร์อย่างเหมาะสมที่สุดและปรับปรุงประสิทธิภาพระดับระบบอย่างมีนัยสำคัญ

zkCuda เหมาะกับโปรโตคอล GKR

แม้ว่า zkCuda ได้รับการออกแบบมาให้เป็นกรอบงานการคำนวณทั่วไปที่เข้ากันได้กับระบบพิสูจน์ความรู้เป็นศูนย์หลากหลาย แต่ก็มีความเข้ากันได้ทางสถาปัตยกรรมในระดับสูงกับโปรโตคอล GKR (Goldwasser-Kalai-Rothblum)

กลไกการพิสูจน์ระดับเคอร์เนลสำหรับโมเดลการเรียนรู้ของเครื่อง

ในแง่ของการออกแบบสถาปัตยกรรม zkCUDA แนะนำกลไกการยืนยันพหุนามเพื่อเชื่อมต่อเคอร์เนลย่อยการประมวลผลต่างๆ เพื่อให้แน่ใจว่าการประมวลผลย่อยทั้งหมดทำงานโดยอาศัยข้อมูลที่ใช้ร่วมกันอย่างสอดคล้องกัน กลไกนี้มีความสำคัญต่อการรักษาความสมบูรณ์ของระบบ แต่ยังก่อให้เกิดต้นทุนการประมวลผลจำนวนมากอีกด้วย

ในทางกลับกัน โปรโตคอล GKR มอบทางเลือกที่มีประสิทธิภาพมากกว่า ซึ่งแตกต่างจากระบบ zero-knowledge แบบดั้งเดิมที่ต้องใช้เคอร์เนลแต่ละตัวในการพิสูจน์ข้อจำกัดภายในทั้งหมด GKR ช่วยให้สามารถติดตามการตรวจสอบความถูกต้องของการคำนวณได้แบบย้อนกลับจากเอาต์พุตของเคอร์เนลไปยังอินพุต กลไกนี้ช่วยให้สามารถถ่ายโอนความถูกต้องข้ามเคอร์เนลแทนที่จะขยายการตรวจสอบในแต่ละโมดูลอย่างสมบูรณ์ แนวคิดหลักของโปรโตคอลนี้คล้ายกับการแพร่กระจายย้อนกลับแบบไล่ระดับในการเรียนรู้ของเครื่อง โดยติดตามและส่งการอ้างความถูกต้องผ่านกราฟการคำนวณ

แม้ว่าการรวม การไล่ระดับการพิสูจน์ ดังกล่าวในเส้นทางต่างๆ จะมีความซับซ้อนบ้าง แต่กลไกนี้เองที่เป็นพื้นฐานสำหรับการทำงานร่วมกันอย่างลึกซึ้งระหว่าง zkCUDA และ GKR การจัดแนวลักษณะโครงสร้างของกระบวนการฝึกอบรมการเรียนรู้ของเครื่องจักร คาดว่า zkCUDA จะบรรลุการบูรณาการระบบที่แน่นแฟ้นยิ่งขึ้นและการสร้างการพิสูจน์ความรู้เป็นศูนย์ที่มีประสิทธิภาพมากขึ้นในสถานการณ์จำลองขนาดใหญ่

ผลเบื้องต้นและทิศทางในอนาคต

เราได้เสร็จสิ้นการพัฒนาขั้นต้นของกรอบงาน zkCuda และได้ทดสอบสำเร็จแล้วในสถานการณ์ต่างๆ มากมาย รวมถึงฟังก์ชันแฮชการเข้ารหัสเช่น Keccak และ SHA-256 ตลอดจนโมเดลการเรียนรู้ของเครื่องขนาดเล็ก

เมื่อมองไปข้างหน้า เราหวังว่าจะสามารถนำเสนอเทคโนโลยีทางวิศวกรรมที่ครบถ้วนสมบูรณ์เพิ่มเติมในหลักสูตรการเรียนรู้ของเครื่องจักรสมัยใหม่ เช่น การจัดตารางเวลาที่มีประสิทธิภาพในการใช้หน่วยความจำและการเพิ่มประสิทธิภาพในระดับกราฟ เราเชื่อว่าการบูรณาการกลยุทธ์เหล่านี้เข้ากับกระบวนการสร้างหลักฐานความรู้เป็นศูนย์จะช่วยปรับปรุงขอบเขตประสิทธิภาพและความยืดหยุ่นในการปรับตัวของระบบได้อย่างมาก

นี่เป็นเพียงจุดเริ่มต้น zkCuda จะเดินหน้าไปสู่กรอบการทำงานพิสูจน์สากลที่มีประสิทธิภาพ ปรับขนาดได้สูง และปรับเปลี่ยนได้สูง

ลิงค์ต้นฉบับ

บทความนี้มาจากการส่งบทความและไม่ได้แสดงถึงจุดยืนของโอไดลี่ หากพิมพ์ซ้ำโปรดระบุแหล่งที่มา

ODAILY เตือนขอให้ผู้อ่านส่วนใหญ่สร้างแนวคิดสกุลเงินที่ถูกต้องและแนวคิดการลงทุนมอง blockchain อย่างมีเหตุผลและปรับปรุงการรับรู้ความเสี่ยงอย่างจริงจัง สำหรับเบาะแสการกระทำความผิดที่พบสามารถแจ้งเบาะแสไปยังหน่วยงานที่เกี่ยวข้องในเชิงรุก

การอ่านแนะนำ
ตัวเลือกของบรรณาธิการ