آیا می توان از TensorFlow Federated در تنظیمات تولید، به عنوان مثال، در تلفن های همراه استفاده کرد؟
در حال حاضر خیر. اگرچه ما TFF را با در نظر گرفتن استقرار در دستگاه های واقعی طراحی کردیم، در این مرحله در حال حاضر هیچ ابزاری برای این منظور ارائه نمی کنیم. نسخه فعلی برای کاربردهای آزمایشی، مانند بیان الگوریتمهای فدرال جدید، یا آزمایش یادگیری فدرال با مجموعه دادههای خود، با استفاده از زمان اجرا شبیهسازی ارائه شده، در نظر گرفته شده است.
ما پیشبینی میکنیم که با گذشت زمان، اکوسیستم منبع باز در اطراف TFF تکامل یابد و شامل زمانهایی باشد که پلتفرمهای استقرار فیزیکی را هدف قرار میدهند.
چگونه از TFF برای آزمایش با مجموعه داده های بزرگ استفاده کنم؟
زمان اجرای پیشفرض موجود در نسخه اولیه TFF فقط برای آزمایشهای کوچکی در نظر گرفته شده است، مانند آزمایشهایی که در آموزشهای ما توضیح داده شده است که در آن همه دادههای شما (در میان همه مشتریان شبیهسازیشده) به طور همزمان در حافظه یک ماشین قرار میگیرند، و کل آزمایش به صورت محلی اجرا میشود. داخل دفترچه کولب
نقشه راه آینده کوتاه مدت ما شامل یک زمان اجرا با عملکرد بالا برای آزمایش هایی با مجموعه داده های بسیار بزرگ و تعداد زیادی مشتری است.
چگونه می توانم مطمئن شوم که تصادفی بودن در TFF با انتظارات من مطابقت دارد؟
از آنجایی که TFF محاسبات را در هسته خود تجمیع کرده است، نویسنده TFF نباید کنترل مکان و نحوه ورود TensorFlow Session
ها را به عهده بگیرد، یا run
در آن جلسات فراخوانی شود. معنای تصادفی بودن می تواند به ورود و خروج TensorFlow Session
بستگی داشته باشد اگر دانه ها تنظیم شوند. توصیه میکنیم از Radomness به سبک TensorFlow 2 استفاده کنید، برای مثال از tf.random.experimental.Generator
از TF 1.14 استفاده کنید. این از یک tf.Variable
برای مدیریت وضعیت داخلی خود استفاده می کند.
برای کمک به مدیریت انتظارات، TFF به TensorFlow که سریالسازی میکند اجازه میدهد تا دانههای سطح op را داشته باشد، اما نه دانههای سطح نمودار. این به این دلیل است که معنای دانههای سطح عملیاتی باید در تنظیمات TFF واضحتر باشد: با هر فراخوانی تابعی که بهعنوان tf_computation
پیچیده میشود، یک دنباله قطعی ایجاد میشود، و تنها در این فراخوانی، تضمینهایی که توسط مولد اعداد شبه تصادفی ایجاد میشود، وجود دارد. . توجه داشته باشید که این کاملاً مشابه معنای فراخوانی یک tf.function
در حالت مشتاق نیست. TFF هر بار که tf_computation
فراخوانی می شود، به طور موثر وارد یک tf.Session
منحصر به فرد می شود و از آن خارج می شود، در حالی که فراخوانی مکرر یک تابع در حالت مشتاق مشابه فراخوانی مکرر sess.run
روی تانسور خروجی در همان جلسه است.
چگونه می توانم مشارکت کنم؟
README ، دستورالعملهای مشارکتی و همکاریها را ببینید.
رابطه بین FedJAX و TensorFlow Federated چیست؟
TensorFlow Federated (TFF) یک چارچوب تمام عیار برای یادگیری و تجزیه و تحلیل فدرال است که برای تسهیل ترکیب الگوریتمها و ویژگیهای مختلف و فعال کردن کدهای انتقال در سناریوهای مختلف شبیهسازی و استقرار طراحی شده است. TFF یک زمان اجرا مقیاس پذیر ارائه می دهد و از بسیاری از الگوریتم های حریم خصوصی، فشرده سازی و بهینه سازی از طریق API های استاندارد خود پشتیبانی می کند. TFF همچنین از بسیاری از انواع تحقیقات FL پشتیبانی می کند، با مجموعه ای از نمونه هایی از مقالات منتشر شده Google که در مخزن google-research ظاهر می شوند.
در مقابل، FedJAX یک کتابخانه شبیهسازی مبتنی بر پایتون و JAX است که بر سهولت استفاده و نمونهسازی سریع الگوریتمهای یادگیری فدرال برای اهداف تحقیقاتی تمرکز دارد. TensorFlow Federated و FedJAX به عنوان پروژه های جداگانه، بدون انتظار قابلیت حمل کد توسعه یافته اند.