คำถามที่พบบ่อย

TensorFlow Federated สามารถใช้ในการตั้งค่าการใช้งานจริง เช่น บนโทรศัพท์มือถือได้หรือไม่

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

เราคาดว่าเมื่อเวลาผ่านไป ระบบนิเวศโอเพ่นซอร์สรอบ TFF จะมีการพัฒนาเพื่อรวมรันไทม์ที่กำหนดเป้าหมายแพลตฟอร์มการปรับใช้งานทางกายภาพ

ฉันจะใช้ TFF เพื่อทดลองกับชุดข้อมูลขนาดใหญ่ได้อย่างไร

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

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

ฉันจะแน่ใจได้อย่างไรว่าการสุ่มใน TFF ตรงกับความคาดหวังของฉัน

เนื่องจาก TFF ได้รวมการประมวลผลแบบรวมเข้ากับแกนหลัก ผู้เขียน TFF จึงไม่ควรควบคุมตำแหน่งและวิธีป้อน Session TensorFlow หรือ run เรียกใช้ภายในเซสชันเหล่านั้น ความหมายของการสุ่มอาจขึ้นอยู่กับการเข้าและออกของ TensorFlow Session หากมีการตั้งค่าเมล็ด เราขอแนะนำให้ใช้ความรุนแรงแบบ TensorFlow 2 โดยใช้ตัวอย่าง tf.random.experimental.Generator ตั้งแต่ TF 1.14 สิ่งนี้ใช้ tf.Variable เพื่อจัดการสถานะภายใน

เพื่อช่วยจัดการความคาดหวัง TFF อนุญาตให้ TensorFlow ที่ซีเรียลไลซ์มีการตั้งค่าเมล็ดระดับ op แต่ไม่ใช่เมล็ดระดับกราฟ นี่เป็นเพราะว่าซีแมนทิกส์ของเมล็ดระดับ op ควรชัดเจนกว่าในการตั้งค่า TFF: ลำดับที่กำหนดจะถูกสร้างขึ้นเมื่อมีการเรียกใช้ฟังก์ชันแต่ละครั้งที่ห่อเป็น tf_computation และเฉพาะภายในการเรียกใช้นี้เท่านั้นที่จะมีการรับประกันใด ๆ ที่ทำโดยตัวสร้างตัวเลขสุ่มเทียม . โปรดสังเกตว่านี่ไม่เหมือนกับความหมายของการเรียก tf.function ในโหมดกระตือรือร้น TFF เข้าและออกจาก tf.Session ที่ไม่ซ้ำกันอย่างมีประสิทธิภาพทุกครั้งที่เรียกใช้ tf_computation ในขณะที่การเรียกใช้ฟังก์ชันซ้ำๆ ในโหมดกระตือรือร้นจะคล้ายคลึงกับการเรียก sess.run บนเอาท์พุตเทนเซอร์ซ้ำๆ ภายในเซสชันเดียวกัน

ฉันจะมีส่วนร่วมได้อย่างไร?

ดู README แนวทาง การสนับสนุน และ ความร่วมมือ

ความสัมพันธ์ระหว่าง FedJAX และ TensorFlow Federated คืออะไร?

TensorFlow Federated (TFF) เป็นเฟรมเวิร์กเต็มรูปแบบสำหรับการเรียนรู้และการวิเคราะห์แบบรวมศูนย์ที่ออกแบบมาเพื่ออำนวยความสะดวกในการเขียนอัลกอริธึมและฟีเจอร์ต่างๆ และเพื่อเปิดใช้งานโค้ดการย้ายข้ามสถานการณ์การจำลองและการปรับใช้ที่แตกต่างกัน TFF มอบรันไทม์ที่ปรับขนาดได้และรองรับอัลกอริธึมความเป็นส่วนตัว การบีบอัด และการเพิ่มประสิทธิภาพมากมายผ่าน API มาตรฐาน TFF ยังสนับสนุน การวิจัย FL หลายประเภท โดยมีคอลเลกชันตัวอย่างจากเอกสารที่ตีพิมพ์ของ Google ที่ปรากฏใน repo การวิจัยของ Google

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