Skip to content

Commit

Permalink
Update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions committed Nov 5, 2024
1 parent a624aa7 commit 1e7fba5
Show file tree
Hide file tree
Showing 2 changed files with 222 additions and 63 deletions.
283 changes: 221 additions & 62 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
<div data-md-component="skip">


<a href="#home" class="md-skip">
<a href="#about-nebula" class="md-skip">
Skip to content
</a>

Expand Down Expand Up @@ -377,8 +377,6 @@
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">





<label class="md-nav__link md-nav__link--active" for="__toc">

Expand Down Expand Up @@ -407,8 +405,6 @@






<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Expand Down Expand Up @@ -450,6 +446,51 @@
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#get-started" class="md-nav__link">
<span class="md-ellipsis">
🎯 Get Started
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#contributing" class="md-nav__link">
<span class="md-ellipsis">
🤝 Contributing
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#citation" class="md-nav__link">
<span class="md-ellipsis">
📚 Citation
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#license" class="md-nav__link">
<span class="md-ellipsis">
📝 License
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#acknowledgements" class="md-nav__link">
<span class="md-ellipsis">
🙏 Acknowledgements
</span>
</a>

</li>

</ul>
Expand Down Expand Up @@ -4745,8 +4786,6 @@






<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Expand Down Expand Up @@ -4788,6 +4827,51 @@
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#get-started" class="md-nav__link">
<span class="md-ellipsis">
🎯 Get Started
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#contributing" class="md-nav__link">
<span class="md-ellipsis">
🤝 Contributing
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#citation" class="md-nav__link">
<span class="md-ellipsis">
📚 Citation
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#license" class="md-nav__link">
<span class="md-ellipsis">
📝 License
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#acknowledgements" class="md-nav__link">
<span class="md-ellipsis">
🙏 Acknowledgements
</span>
</a>

</li>

</ul>
Expand All @@ -4808,74 +4892,149 @@



<h1 id="home">Home<a class="headerlink" href="#home" title="Permanent link">&para;</a></h1>
<h1 align="center">
NEBULA
</h1>
<h2 align="center">
A Platform for Decentralized Federated Learning
</h2>
<p><br></p>
<p align="center">
<a href="https://github.com/CyberDataLab/nebula">
<img src="https://raw.githubusercontent.com/CyberDataLab/nebula/5b44d54eec9186f7c9f6351f26cd92b33bd37fdf/docs/_prebuilt/static/nebula-logo.jpg" alt="nebula">
</a>
<h1 align="center">NEBULA: A Platform for Decentralized Federated Learning</h1>

<p align="center">
<a href="https://federeratedlearning.inf.um.es">federatedlearning.inf.um.es</a>
</p>
</p>

<p><img alt="NEBULA logo" src="static/nebula-logo.jpg" /></p>
<h2 id="about-nebula">🌌 About NEBULA<a class="headerlink" href="#about-nebula" title="Permanent link">&para;</a></h2>
<p><strong>NEBULA</strong> is a cutting-edge platform designed to facilitate the
training of federated models within both centralized and decentralized
architectures. It streamlines the development, deployment, and
management of federated applications across physical and virtualized
devices.</p>
<p><a href="https://nebula.enriquetomasmb.com"><img alt="Documentation" src="https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat" /></a>
<img alt="Github Last Commit" src="https://img.shields.io/github/last-commit/CyberDataLab/nebula" />
<a href="https://github.com/CyberDataLab/nebula/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues/CyberDataLab/nebula" /></a></p>
<p><strong>NEBULA</strong> (previously known as Fedstellar<sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup>) is a cutting-edge platform designed to facilitate the training of federated models within both centralized and decentralized architectures. It streamlines the development, deployment, and management of federated applications across physical and virtualized devices.</p>
<p><strong>NEBULA</strong> is developed by <strong><a href="https://enriquetomasmb.com">Enrique Tomás Martínez Beltrán</a></strong> in collaboration with the <a href="https://www.um.es/en">University of Murcia</a>, <a href="https://www.armasuisse.ch/en">armasuisse</a>, and the <a href="https://www.uzh.ch/">University of Zurich</a>.</p>
<p align="center">
<a href="https://um.es">
<img src="https://raw.githubusercontent.com/CyberDataLab/nebula/5b44d54eec9186f7c9f6351f26cd92b33bd37fdf/docs/_prebuilt/static/umu.jpg" alt="University of Murcia" width="200" height="60">
</a>
<a href="https://www.armasuisse.ch/en">
<img src="https://raw.githubusercontent.com/CyberDataLab/nebula/5b44d54eec9186f7c9f6351f26cd92b33bd37fdf/docs/_prebuilt/static/armasuisse.jpg" alt="armasuisse" width="200" height="60">
</a>
<a href="https://www.uzh.ch/">
<img src="https://raw.githubusercontent.com/CyberDataLab/nebula/5b44d54eec9186f7c9f6351f26cd92b33bd37fdf/docs/_prebuilt/static/uzh.jpg" alt="University of Zurich" width="200" height="60">
</a>
</p>

<h2 id="key-components">🚀 Key Components<a class="headerlink" href="#key-components" title="Permanent link">&para;</a></h2>
<p>NEBULA boasts a <strong>modular architecture</strong> that consists of three core
elements:</p>
<p>NEBULA boasts a <strong>modular architecture</strong> that consists of three core elements:</p>
<ul>
<li><strong>Frontend</strong>: A user-friendly interface for setting up experiments
and monitoring progress.</li>
<li><strong>Controller</strong>: An orchestrator that ensures efficient operation
management.</li>
<li><strong>Core</strong>: The fundamental component deployed on each device to
handle federated learning processes.</li>
<li><strong>Frontend</strong>: A user-friendly interface for setting up experiments and monitoring progress.</li>
<li><strong>Controller</strong>: An orchestrator that ensures efficient operation management.</li>
<li><strong>Core</strong>: The fundamental component deployed on each device to handle federated learning processes.</li>
</ul>
<h2 id="main-features">🌟 Main Features<a class="headerlink" href="#main-features" title="Permanent link">&para;</a></h2>
<ul>
<li><strong>Decentralized</strong>: Train models without a central server, leveraging
decentralized federated learning.</li>
<li><strong>Privacy-preserving</strong>: Maintain data privacy by training on-device
and only sharing model updates.</li>
<li><strong>Topology-agnostic</strong>: Support for various network topologies
including star, ring, and mesh.</li>
<li><strong>Model-agnostic</strong>: Compatible with a wide range of machine learning
algorithms, from deep learning to traditional methods.</li>
<li><strong>Network communication</strong>: Secure and efficient device communication
with features like compression, network failure tolerance, and
condition simulation.</li>
<li><strong>Real-time monitoring</strong>: Provides live performance metrics and
visualizations during the learning process.</li>
<li><strong>Decentralized</strong>: Train models without a central server, leveraging decentralized federated learning.</li>
<li><strong>Privacy-preserving</strong>: Maintain data privacy by training on-device and only sharing model updates.</li>
<li><strong>Topology-agnostic</strong>: Support for various network topologies including star, ring, and mesh.</li>
<li><strong>Model-agnostic</strong>: Compatible with a wide range of machine learning algorithms, from deep learning to traditional methods.</li>
<li><strong>Network communication</strong>: Secure and efficient device communication with features like compression, network failure tolerance, and condition simulation.</li>
<li><strong>Trustworthiness</strong>: Ensure the integrity of the learning process by verifying the reliability of the federation.</li>
<li><strong>Blockchain integration</strong>: Support for blockchain technologies to enhance security and transparency.</li>
<li><strong>Security</strong>: Implement security mechanisms to protect the learning process from adversarial attacks.</li>
<li><strong>Real-time monitoring</strong>: Provides live performance metrics and visualizations during the learning process.</li>
</ul>
<h2 id="scenario-applications">🌍 Scenario Applications<a class="headerlink" href="#scenario-applications" title="Permanent link">&para;</a></h2>
<ul>
<li><strong>Healthcare</strong>: Train models on medical devices such as wearables,
smartphones, and sensors.</li>
<li><strong>Industry 4.0</strong>: Implement on industrial devices like robots,
drones, and constrained devices.</li>
<li><strong>Mobile services</strong>: Optimize for mobile devices including
smartphones, tablets, and laptops.</li>
<li><strong>Military</strong>: Apply to military equipment such as drones, robots,
and sensors.</li>
<li><strong>Vehicular scenarios</strong>: Utilize in vehicles including cars, trucks,
and drones.</li>
<li>🏥 <strong>Healthcare</strong>: Train models on medical devices such as wearables, smartphones, and sensors.</li>
<li>🏭 <strong>Industry 4.0</strong>: Implement on industrial devices like robots, drones, and constrained devices.</li>
<li>📱 <strong>Mobile services</strong>: Optimize for mobile devices including smartphones, tablets, and laptops.</li>
<li>🛡️ <strong>Military</strong>: Apply to military equipment such as drones, robots, and sensors.</li>
<li>🚗 <strong>Vehicular scenarios</strong>: Utilize in vehicles including cars, trucks, and drones.</li>
</ul>
<p>NEBULA is developed by <a href="https://www.enriquetomasmb.com/">Enrique Tomás Martínez
Beltrán</a> in collaboration with the
<a href="https://www.um.es/en">University of Murcia</a>,
<a href="https://www.armasuisse.ch/en">Armasuisse</a>, and the <a href="https://www.uzh.ch/">University of
Zurich (UZH)</a>.</p>
<p>For any questions, please contact Enrique Tomás Martínez Beltrán
(<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#101;&#110;&#114;&#105;&#113;&#117;&#101;&#116;&#111;&#109;&#97;&#115;&#64;&#117;&#109;&#46;&#101;&#115;">&#101;&#110;&#114;&#105;&#113;&#117;&#101;&#116;&#111;&#109;&#97;&#115;&#64;&#117;&#109;&#46;&#101;&#115;</a>).</p>
<p align="center">
<img src="static/umu.jpg" alt="University of Murcia logo" style="width:200px; display:inline-block; margin-right: 10px;">
<img src="static/armasuisse.jpg" alt="Armasuisse logo" style="width:200px; display:inline-block; margin-right: 10px;">
<img src="static/uzh.jpg" alt="University of Zurich logo" style="width:200px; display:inline-block;">
<img src="https://raw.githubusercontent.com/CyberDataLab/nebula/5b44d54eec9186f7c9f6351f26cd92b33bd37fdf/docs/_prebuilt/static/nebula-mockup.png" alt="NEBULA Mockup">
</p>

<h2 id="get-started">🎯 Get Started<a class="headerlink" href="#get-started" title="Permanent link">&para;</a></h2>
<p>To start using NEBULA, follow our detailed <a href="https://nebula.enriquetomasmb.com/installation/">Installation Guide</a> and <a href="https://nebula.enriquetomasmb.com/usage/">User Manual</a>. For any queries or contributions, check out our <a href="https://nebula.enriquetomasmb.com/contributing/">Contribution Guide</a>.</p>
<h2 id="contributing">🤝 Contributing<a class="headerlink" href="#contributing" title="Permanent link">&para;</a></h2>
<p>We welcome contributions from the community to enhance NEBULA. If you are interested in contributing, please follow the next steps:</p>
<ol>
<li>Fork the repository</li>
<li>Create a new branch with your feature or bug fix (<code>git checkout -b feature/your-feature</code>).</li>
<li>Commit your changes (<code>git commit -am 'Add new feature'</code>).</li>
<li>Push to the branch (<code>git push origin feature/your-feature</code>).</li>
<li>Create a new Pull Request.</li>
</ol>
<h2 id="citation">📚 Citation<a class="headerlink" href="#citation" title="Permanent link">&para;</a></h2>
<p>If you use NEBULA (or Fedstellar) in a scientific publication, we would appreciate using the following citations:</p>
<div class="highlight"><pre><span></span><code>@article{MartinezBeltran:DFL:2023,
title = {{Decentralized Federated Learning: Fundamentals, State of the Art, Frameworks, Trends, and Challenges}},
author = {Mart{\&#39;i}nez Beltr{\&#39;a}n, Enrique Tom{\&#39;a}s and Quiles P{\&#39;e}rez, Mario and S{\&#39;a}nchez S{\&#39;a}nchez, Pedro Miguel and L{\&#39;o}pez Bernal, Sergio and Bovet, G{\&#39;e}r{\^o}me and Gil P{\&#39;e}rez, Manuel and Mart{\&#39;i}nez P{\&#39;e}rez, Gregorio and Huertas Celdr{\&#39;a}n, Alberto},
year = 2023,
volume = {25},
number = {4},
pages = {2983-3013},
journal = {IEEE Communications Surveys &amp; Tutorials},
doi = {10.1109/COMST.2023.3315746},
preprint = {https://arxiv.org/abs/2211.08413}
}
</code></pre></div>
<div class="highlight"><pre><span></span><code>@article{MartinezBeltran:fedstellar:2024,
title = {{Fedstellar: A Platform for Decentralized Federated Learning}},
author = {Mart{\&#39;i}nez Beltr{\&#39;a}n, Enrique Tom{\&#39;a}s and Perales G{\&#39;o}mez, {\&#39;A}ngel Luis and Feng, Chao and S{\&#39;a}nchez S{\&#39;a}nchez, Pedro Miguel and L{\&#39;o}pez Bernal, Sergio and Bovet, G{\&#39;e}r{\^o}me and Gil P{\&#39;e}rez, Manuel and Mart{\&#39;i}nez P{\&#39;e}rez, Gregorio and Huertas Celdr{\&#39;a}n, Alberto},
year = 2024,
volume = {242},
issn = {0957-4174},
pages = {122861},
journal = {Expert Systems with Applications},
doi = {10.1016/j.eswa.2023.122861},
preprint = {https://arxiv.org/abs/2306.09750}
}
</code></pre></div>
<div class="highlight"><pre><span></span><code>@inproceedings{MartinezBeltran:fedstellar_demo:2023,
title = {{Fedstellar: A Platform for Training Models in a Privacy-preserving and Decentralized Fashion}},
author = {Mart{\&#39;i}nez Beltr{\&#39;a}n, Enrique Tom{\&#39;a}s and S{\&#39;a}nchez S{\&#39;a}nchez, Pedro Miguel and L{\&#39;o}pez Bernal, Sergio and Bovet, G{\&#39;e}r{\^o}me and Gil P{\&#39;e}rez, Manuel and Mart{\&#39;i}nez P{\&#39;e}rez, Gregorio and Huertas Celdr{\&#39;a}n, Alberto},
year = 2023,
month = aug,
booktitle = {Proceedings of the Thirty-Second International Joint Conference on Artificial Intelligence, {IJCAI-23}},
publisher = {International Joint Conferences on Artificial Intelligence Organization},
pages = {7154--7157},
doi = {10.24963/ijcai.2023/838},
note = {Demo Track},
editor = {Edith Elkind}
}
</code></pre></div>
<div class="highlight"><pre><span></span><code>@article{MartinezBeltran:DFL_mitigating_threats:2023,
title = {{Mitigating Communications Threats in Decentralized Federated Learning through Moving Target Defense}},
author = {Mart{\&#39;i}nez Beltr{\&#39;a}n, Enrique Tom{\&#39;a}s and S{\&#39;a}nchez S{\&#39;a}nchez, Pedro Miguel and L{\&#39;o}pez Bernal, Sergio and Bovet, G{\&#39;e}r{\^o}me and Gil P{\&#39;e}rez, Manuel and Mart{\&#39;i}nez P{\&#39;e}rez, Gregorio and Huertas Celdr{\&#39;a}n, Alberto},
year = 2024,
journal = {Wireless Networks},
doi = {10.1007/s11276-024-03667-8}
preprint = {https://arxiv.org/abs/2307.11730}
}
</code></pre></div>
<h2 id="license">📝 License<a class="headerlink" href="#license" title="Permanent link">&para;</a></h2>
<p>Distributed under the GNU GPLv3 License. See <code>LICENSE</code> for more information.</p>
<h2 id="acknowledgements">🙏 Acknowledgements<a class="headerlink" href="#acknowledgements" title="Permanent link">&para;</a></h2>
<p>We would like to thank the following projects for their contributions which have helped shape NEBULA:</p>
<ul>
<li><a href="https://github.com/Lightning-AI/pytorch-lightning">PyTorch Lightning</a> for the training loop and model management</li>
<li><a href="https://github.com/tensorflow/tensorboard">Tensorboard</a> and <a href="https://github.com/aimhubio/aim">Aim</a> for the visualization tools and monitoring capabilities</li>
<li>Different datasets (<a href="https://github.com/CyberDataLab/nebula/tree/main/nebula/core/datasets">nebula/core/datasets</a>) and models (<a href="https://github.com/CyberDataLab/nebula/tree/main/nebula/core/models">nebula/core/models</a>) for testing and validation purposes</li>
<li><a href="https://github.com/tiangolo/fastapi">FastAPI</a> for the RESTful API</li>
<li><a href="https://github.com/ethereum/web3.py">Web3</a> for the blockchain integration</li>
<li><a href="https://github.com/CyberDataLab/fedstellar">Fedstellar</a> platform and <a href="https://github.com/pguijas/p2pfl/">p2pfl</a> library</li>
<li><a href="https://github.com/Trusted-AI/adversarial-robustness-toolbox">Adversarial Robustness Toolbox (ART)</a> for the implementation of adversarial attacks</li>
<li><a href="https://github.com/d3/d3-force">D3.js</a> for the network visualizations</li>
</ul>
<div class="footnote">
<hr />
<ol>
<li id="fn:1">
<p>Fedstellar was our first version of the platform. We have redesigned the previous functionalities and added new capabilities based on our research. The platform is now called NEBULA and is available as an open-source project.&#160;<a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">&#8617;</a></p>
</li>
</ol>
</div>




Expand All @@ -4895,7 +5054,7 @@ <h2 id="scenario-applications">🌍 Scenario Applications<a class="headerlink" h
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">November 4, 2024</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">November 5, 2024</span>
</span>


Expand Down
2 changes: 1 addition & 1 deletion search/search_index.json

Large diffs are not rendered by default.

0 comments on commit 1e7fba5

Please sign in to comment.