Решение проблемы гетерогенной инфраструктуры
Федеративное обучение (FL) часто упирается в операционные сложности: участники используют разные среды — от рабочих станций до облачных кластеров. NVIDIA FLARE решает это через двухуровневую архитектуру, разделяющую постоянные сервисы координации (parent processes) и динамически запускаемых рабочих процессов (job workers). Родительские процессы остаются в памяти, не занимая GPU, в то время как воркеры запрашивают ресурсы (GPU, CPU, память) только на время выполнения задачи.
Ключевые обновления версий
Поддержка различных сред выполнения внедрена поэтапно. Версия 2.8 добавила Docker и Kubernetes, а FLARE 2.9 расширила экосистему поддержкой Slurm, что критично для университетов и исследовательских центров с общими GPU-кластерами.
| Среда выполнения | Типичное окружение | Динамическая единица | Управление ресурсами |
|---|---|---|---|
| Docker | Рабочая станция, edge-устройство | Job container | Docker host |
| Kubernetes | Облако или on-prem кластер | Job pod | Kubernetes scheduler |
| Slurm | HPC, общие GPU-кластеры | Batch allocation | Slurm scheduler |
Детали интеграции с системами планирования
Каждая среда сохраняет локальный контроль над политиками безопасности и выделения ресурсов:
- Docker: Родительский образ содержит только FLARE, а образ задачи — код модели. Это позволяет исследователям обновлять зависимости независимо от инфраструктуры.
- Kubernetes: Использует Helm-чарты для развертывания. Поддерживает Namespaces, RBAC, Persistent Volumes и выбор нод (например, H100 для одних исследований и A100 для других).
- Slurm: Воркеры запускаются как пакетные задания. Поддерживаются Pyxis/Enroot и Apptainer. Slurm остается единственным авторитетом в вопросах квот, QoS, cgroups и доступа к устройствам.
Изоляция исследований (Studies)
Для обеспечения безопасности в рамках одной федерации введена концепция Studies. Это логические границы многопользовательской среды, которые изолируют данные, секреты и задачи разных команд. Операции внутри одного исследования не видны другим, что позволяет безопасно использовать общую вычислительную инфраструктуру несколькими организациями.
Источник: NVIDIA dev blog ↗