Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deepspeed #42

Closed
wants to merge 96 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
60911a6
Fix Flake8 C419 for Ubuntu CI (#800)
akantak Apr 20, 2023
02b8368
Update README.md
psfoley May 12, 2023
01623e3
Fix warnings and issues in docs (#825)
akantak May 17, 2023
4c898e5
Add Logo (#827)
psfoley May 17, 2023
a45e04c
Change OpenFL documentation font to improve accessibility (#809)
wangleflex May 19, 2023
c1da50b
Update unit tests to improve code coverage (#821)
fangxiaoran May 19, 2023
f5fec8e
Add PyTorch linear regression example (#808)
danhe1 May 19, 2023
66c265d
This prints out the hash of the CSR to disk for both the aggregator a…
bjklemme-intel May 19, 2023
164db10
Improve workspace requirements import (#810)
danhe1 May 22, 2023
f694091
Issue 506 Added Example using FedProx (#818)
bjklemme-intel May 23, 2023
d31e475
[Bug: 768] FX CLI: Separate create, cert gen commands (#807)
bjklemme-intel May 23, 2023
660cc02
Add new tutorial example to OpenFL interactive API (#812)
bjklemme-intel May 24, 2023
1d61733
build(deps): bump tensorflow in /openfl-workspace/tf_cnn_histology (#…
dependabot[bot] Jun 13, 2023
29e3978
build(deps): bump tensorflow (#777)
dependabot[bot] Jun 13, 2023
029a575
Running a federation with GaNDLF Documentation (#794)
psfoley Jun 29, 2023
ac724dc
Fixed GaNDLF rst issues. Add sphinxcontrib-mermaid (#841)
psfoley Jun 29, 2023
2aad2c6
Fix GaNDLF documentation links (#842)
psfoley Jun 29, 2023
58ed332
Fix incorrectly formatted link in docs (#839)
fstrr Jun 29, 2023
309bb86
build(deps): bump onnx in /openfl-workspace/gandlf_seg_test (#840)
dependabot[bot] Jul 12, 2023
6c65815
Accessibility updates (#861)
fstrr Jul 14, 2023
e9ade2b
fixing FedAvg in workflow interface tutorials to be compatible with l…
kta-intel Jul 14, 2023
23ac047
build(deps): bump tensorflow from 2.8.4 to 2.11.1 in /openfl-workspac…
dependabot[bot] Jul 14, 2023
ae7cf38
build(deps): bump tensorflow from 2.8.4 to 2.11.1 in /openfl-workspac…
dependabot[bot] Jul 14, 2023
0eed29c
build(deps): bump tensorflow from 2.8.4 to 2.11.1 in /openfl-workspac…
dependabot[bot] Jul 14, 2023
03379d3
build(deps): bump tensorflow from 2.9.3 to 2.11.1 in /openfl-tutorial…
dependabot[bot] Jul 14, 2023
2bad0bc
build(deps): bump tensorflow-cpu from 2.8.4 to 2.11.1 in /openfl-work…
dependabot[bot] Jul 14, 2023
149a53f
Accessibility color contrast fixes (#864)
fstrr Jul 14, 2023
03af869
Testflow for verifying stdout redirection to Metaflow datastore (#758)
KeertiX Jul 14, 2023
b45798e
Tweak link color so it’s not so aggressive (#865)
fstrr Jul 14, 2023
334e936
build(deps): bump tensorflow from 2.8.4 to 2.11.1 in /tests/github/in…
dependabot[bot] Jul 25, 2023
9565614
build(deps): bump tensorflow from 2.8.4 to 2.11.1 in /openfl-workspac…
dependabot[bot] Jul 27, 2023
ed501eb
pinned tensorboardX (#870)
porteratzo Aug 4, 2023
3f7a770
Update Tensorflow, gRPC, Protobuf dependencies (#868)
psfoley Aug 25, 2023
8cacbc1
Add FL plan description to documentation (#872)
mansishr Aug 29, 2023
3bd32d1
Resolve Coverity Issues (#874)
psfoley Sep 14, 2023
62b5b0c
Migrate to Ubuntu 22.04 LTS release (supported through 2027) (#875)
psfoley Sep 21, 2023
11db127
Update EdenPipeline in the documentation (#877)
amitport Sep 28, 2023
97325b5
WIP: CI Scans (#873)
psfoley Sep 29, 2023
c87c7a5
Update ROADMAP.md (#878)
psfoley Oct 3, 2023
67ad7ad
llm tutorial
porteratzo Oct 5, 2023
600bfc9
small fix
porteratzo Oct 5, 2023
3cacb71
fixes
porteratzo Oct 17, 2023
00cb2dc
build(deps): bump pillow in /openfl-tutorials/experimental/Global_DP …
dependabot[bot] Oct 17, 2023
b5a9749
build(deps): bump pillow (#884)
dependabot[bot] Oct 17, 2023
8fd8bb0
build(deps): bump pillow (#883)
dependabot[bot] Oct 17, 2023
db5e2fa
build(deps): bump pillow (#882)
dependabot[bot] Oct 17, 2023
48a6f60
build(deps): bump pillow (#881)
dependabot[bot] Oct 17, 2023
ef08f3c
build(deps): bump pillow (#880)
dependabot[bot] Oct 17, 2023
173e8b8
build(deps): bump pillow in /openfl-workspace/torch_cnn_histology/src…
dependabot[bot] Oct 17, 2023
60f1d1a
Update trivy.yml (#887)
psfoley Oct 19, 2023
1af2123
Update trivy.yml (#888)
psfoley Oct 19, 2023
3847e51
Removed unused packages from Docker image (#890)
ashahba Oct 20, 2023
c445d45
Add note that directs to Open Flash Library project (#891)
psfoley Oct 23, 2023
bb35ad1
Add 2 examples to show how to use experimental interface to support G…
andreazanetti Oct 24, 2023
00a7d92
changes
porteratzo Oct 26, 2023
7f51d62
f
porteratzo Oct 26, 2023
3c13023
f
porteratzo Oct 26, 2023
eb1e2ed
r
porteratzo Oct 26, 2023
636adb0
c
porteratzo Oct 26, 2023
6c0ae79
f
porteratzo Oct 26, 2023
4cc88df
f
porteratzo Oct 26, 2023
bd52231
f
porteratzo Oct 26, 2023
fade608
f
porteratzo Oct 26, 2023
5bc4ed5
f
porteratzo Oct 26, 2023
533059c
f
porteratzo Oct 30, 2023
6856c52
f
porteratzo Oct 30, 2023
43f0ed2
f
porteratzo Oct 30, 2023
a5d6c04
f
porteratzo Oct 30, 2023
3b69cf9
f
porteratzo Oct 30, 2023
563f6ac
f
porteratzo Oct 30, 2023
7ab3311
f
porteratzo Oct 30, 2023
8e4f407
f
porteratzo Oct 30, 2023
ea919a9
d
porteratzo Oct 30, 2023
67f8d5d
f
porteratzo Oct 30, 2023
ec97691
f
porteratzo Oct 30, 2023
d609797
d
porteratzo Oct 30, 2023
25c42f4
f
porteratzo Oct 30, 2023
d6fb0ee
g
porteratzo Oct 30, 2023
7ac2f4f
f
porteratzo Oct 30, 2023
181daad
f
porteratzo Oct 30, 2023
79b8dbc
401 tutorial experimental (#862)
GabrieleRoncolato Nov 7, 2023
d4108fb
Gaudi2 validation (#892)
orionsBeltWest Nov 9, 2023
f07e173
f
porteratzo Nov 11, 2023
70f26d7
Merge branch 'develop' of https://github.com/securefederatedai/openfl…
porteratzo Nov 11, 2023
33b913f
g
porteratzo Nov 14, 2023
5d3b2b6
tests
porteratzo Nov 23, 2023
2c3871f
f
porteratzo Nov 23, 2023
f7b7f4f
f
porteratzo Nov 23, 2023
67aa2cc
f
porteratzo Nov 23, 2023
5130ef9
f
porteratzo Nov 24, 2023
9ceaf16
f
porteratzo Nov 24, 2023
76ed2df
f
porteratzo Nov 29, 2023
d4c882a
f
porteratzo Nov 29, 2023
8767f24
f
porteratzo Nov 29, 2023
2632b28
f
porteratzo Nov 29, 2023
0ca51f9
f
porteratzo Nov 29, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/workflows/fets-challenge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,27 +24,27 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install torch==1.13.1+cpu torchvision==0.14.1+cpu torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cpu
pip install .
- name: Setup FeTS Challenge Prerequisites
uses: actions/checkout@master
with:
repository: CBICA/GaNDLF
ref: 0.0.14
repository: MLCommons/GaNDLF
ref: master
fetch-depth: 1
path: fets_challenge
- name: FeTS Challenge Task Runner Test
run: |
cd fets_challenge
pwd
pip install torch==1.8.2+cpu torchvision==0.9.2+cpu torchaudio===0.8.2 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
pip install onnx==1.12.0
pip install -e .
pip uninstall onnx -y
# Download data and Split CSVs into training and validation
python -c "from testing.test_full import test_generic_download_data, test_generic_constructTrainingCSV; test_generic_download_data(); test_generic_constructTrainingCSV()"
head -n 1 testing/data/train_3d_rad_segmentation.csv > /home/runner/work/openfl/openfl/seg_test_val.csv
tail -n +9 testing/data/train_3d_rad_segmentation.csv >> /home/runner/work/openfl/openfl/seg_test_val.csv
head -n 8 testing/data/train_3d_rad_segmentation.csv > /home/runner/work/openfl/openfl/seg_test_train.csv
head -n 1 testing/data/train_3d_rad_segmentation.csv > /home/runner/work/openfl/openfl/valid.csv
tail -n +9 testing/data/train_3d_rad_segmentation.csv >> /home/runner/work/openfl/openfl/valid.csv
head -n 8 testing/data/train_3d_rad_segmentation.csv > /home/runner/work/openfl/openfl/train.csv
cd /home/runner/work/openfl/openfl
ls
python -m tests.github.test_fets_challenge --template fets_challenge_seg_test --fed_workspace aggregator --col1 col1 --col2 col2 --rounds-to-train 1
python -m tests.github.test_gandlf --template gandlf_seg_test --fed_workspace aggregator --col1 one --col2 two --rounds-to-train 1

2 changes: 1 addition & 1 deletion .github/workflows/interactive-tensorflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ jobs:
- name: Interactive API - tensorflow_mnist
run: |
python setup.py build_grpc
pip install tensorflow==2.8
pip install tensorflow==2.13
python -m tests.github.interactive_api_director.experiments.tensorflow_mnist.run
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: TaskRunner (Python 3.9)
name: Security Scans

on:
pull_request:
Expand All @@ -13,21 +13,18 @@ permissions:
jobs:
build:

strategy:
matrix:
os: ['ubuntu-latest', 'windows-latest']
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
- name: Set up Python 3.8
uses: actions/setup-python@v3
with:
python-version: "3.9"
python-version: "3.8"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install .
- name: Test TaskRunner API
- name: Hadolint Dockerfile Scan
run: |
python -m tests.github.test_hello_federation --template keras_cnn_mnist --fed_workspace aggregator --col1 col1 --col2 col2 --rounds-to-train 3
docker run -v ${PWD}/openfl-docker:/openfl-docker --rm -i hadolint/hadolint hadolint -t error /openfl-docker/Dockerfile.base
17 changes: 11 additions & 6 deletions .github/workflows/taskrunner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,24 @@ permissions:

jobs:
build:

strategy:
matrix:
os: ['ubuntu-latest', 'windows-latest']
python-version: ['3.8','3.9','3.10','3.11']
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v3
- name: Set up Python 3.8
uses: actions/setup-python@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.8"
- name: Install dependencies
python-version: ${{ matrix.python-version }}
- name: Install dependencies ubuntu
if: matrix.os == 'ubuntu-latest'
run: |
python -m pip install --upgrade pip
pip install .
- name: Install dependencies windows
if: matrix.os == 'windows-latest'
run: |
python -m pip install --upgrade pip
pip install .
Expand Down
33 changes: 0 additions & 33 deletions .github/workflows/taskrunner_python_3.10.yml

This file was deleted.

32 changes: 32 additions & 0 deletions .github/workflows/trivy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Trivy
on:
push:
branches: [ develop ]
pull_request:
jobs:
build:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Build
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Build an image from Dockerfile
run: |
docker build -t docker.io/securefederatedai/openfl:${{ github.sha }} -f openfl-docker/Dockerfile.base .

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
image-ref: 'docker.io/securefederatedai/openfl:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'

- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: 'trivy-results.sarif'
16 changes: 12 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Open Federated Learning (OpenFL) - An Open-Source Framework For Federated Learning
<div align="center">
<img src="https://github.com/securefederatedai/artwork/blob/main/PNG/OpenFL%20Logo%20-%20color.png?raw=true">
</div>

[![PyPI - Python Version](https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9%20%7C%203.10-blue)](https://pypi.org/project/openfl/)
[![Ubuntu CI status](https://github.com/intel/openfl/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/intel/openfl/actions/workflows/ubuntu.yml)
Expand All @@ -10,10 +12,16 @@
[<img src="https://img.shields.io/badge/[email protected]?logo=slack">](https://join.slack.com/t/openfl/shared_invite/zt-ovzbohvn-T5fApk05~YS_iZhjJ5yaTw)
[![License](https://img.shields.io/badge/License-Apache%202.0-brightgreen.svg)](https://opensource.org/licenses/Apache-2.0)
[![Citation](https://img.shields.io/badge/cite-citation-brightgreen)](https://arxiv.org/abs/2105.06413)
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/intel/openfl/blob/develop/openfl-tutorials/interactive_api/numpy_linear_regression/workspace/SingleNotebook.ipynb)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6599/badge)](https://bestpractices.coreinfrastructure.org/projects/6599)
<a href="https://scan.coverity.com/projects/securefederatedai-openfl">
<img alt="Coverity Scan Build Status"
src="https://scan.coverity.com/projects/29040/badge.svg"/>
</a>
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/intel/openfl/blob/develop/openfl-tutorials/interactive_api/numpy_linear_regression/workspace/SingleNotebook.ipynb)

Open Federated Learning (OpenFL) is a Python 3 framework for Federated Learning. OpenFL is designed to be a _flexible_, _extensible_ and _easily learnable_ tool for data scientists. OpenFL is hosted by The Linux Foundation, aims to be community-driven, and welcomes contributions back to the project.

OpenFL is a Python 3 framework for Federated Learning. OpenFL is designed to be a _flexible_, _extensible_ and _easily learnable_ tool for data scientists. OpenFL is hosted by The Linux Foundation, aims to be community-driven, and welcomes contributions back to the project.
Looking for the Open Flash Library project also referred to as OpenFL? Find it [here](https://github.com/openfl/openfl)!

## Installation

Expand Down Expand Up @@ -45,7 +53,7 @@ Check out the [online documentation](https://openfl.readthedocs.io/en/latest/ind

## Requirements

- Ubuntu Linux 16.04 or 18.04.
- Ubuntu Linux 18.04+
- Python 3.7+ (recommended to use with [Virtualenv](https://virtualenv.pypa.io/en/latest/)).

OpenFL supports training with TensorFlow 2+ or PyTorch 1.3+ which should be installed separately. User can extend the list of supported Deep Learning frameworks if needed.
Expand Down
24 changes: 11 additions & 13 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,13 @@ In the process of thinking about federated workflows, and the properties that ar
7. Don't reinvent unless absolutely necessary

### 1.2 Security, Privacy, and Governance
OpenFL is designed for security and privacy, and later this year we will be releasing some exciting extensions that build on running [OpenFL experiments within SGX enclaves](https://github.com/intel/openfl/blob/develop/openfl-gramine/MANUAL.md).
OpenFL is designed for security and privacy, and soon we will be releasing some exciting extensions that build on running [OpenFL experiments within SGX enclaves](https://github.com/intel/openfl/blob/develop/openfl-gramine/MANUAL.md).

### 1.4 Decoupling interface from infrastructure
### 1.3 Decoupling interface from infrastructure
The task runner interface is coupled with the the single experiment aggregator / collaborator infrastructure, and the interactive API is tied to the director / envoy infrastructure.
The interactive API was originally designed to be a high-level API for OpenFL, but for the cases when more control is required by users, access to lower level interfaces is necessary.

### 1.3 Consolidating interfaces
### 1.4 Consolidating interfaces
Today we support three interfaces: TaskRunner, native Python API, and interactive API. These are all distinct APIs, and are not particularly interoperable.
By the time we reach OpenFL 2.0, our intention is to deprecate the original native [Python API](https://openfl.readthedocs.io/en/latest/source/workflow/running_the_federation.notebook.html) used for simulations,
bring consistency to the remaining interfaces with a high level, middle level, and low level API that are **fully interoperable**. This will result in being able to use the interface you're most comfortable with for a simulation,
Expand All @@ -58,20 +58,18 @@ This causes community fragmentation and distracts from some of the bigger proble

## Upcoming OpenFL releases

### OpenFL 1.6 (Q2 2023)
### OpenFL 1.6 (Q4 2023)
1. Use the OpenFL Workflow Interface on distributed infrastructure with the [FederatedRuntime](https://openfl.readthedocs.io/en/latest/workflow_interface.html#runtimes-future-plans)
2. New use cases enabled by custom workflows
2. LLM Support
3. New use cases enabled by custom workflows
* Standard ML Models (i.e. Tree-based algorithms)
3. Federated evaluation documentation and examples
4. Well defined aggregator / collaborator interfaces intended for building higher level projects on top of OpenFL
5. Significantly improved documentation
6. New OpenFL Security Repo that extends OpenFL to provide governance, and end-to-end security for federated learning experiments
4. Federated evaluation documentation and examples
6. Significantly improved documentation

### OpenFL 2.0 (2023)
### OpenFL 2.0 (2024)
1. Interface Cohesion
* High level interface: Interactive API
* Mid level interface: Workflow API
* Low level interface: Redesigned TaskRunner API
* Low level interface: Workflow API
2. Decoupling interfaces from infrastructure
3. Updates to OpenFL Security
3. Well defined interfaces intended for building higher level projects on top of OpenFL

Loading
Loading