Skip to content

UnitTests for ATC

UnitTests for ATC #212

Workflow file for this run

name: UnitTests for ATC
on:
schedule:
- cron: '0 8 * * 0'
jobs:
run:
if: (false == contains(github.event.pull_request.title, 'WIP') && github.repository == 'alibaba/FederatedScope')
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
matrix:
os: [ubuntu-latest]
python-version: ['3.9']
torch-version: ['1.10.1']
torchvision-version: ['0.11.2']
torchaudio-version: ['0.10.1']
env:
OS: ${{ matrix.os }}
PYTHON: '3.9'
steps:
- uses: actions/checkout@master
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@master
with:
python-version: ${{ matrix.python-version }}
- name: Install PyTorch ${{ matrix.torch-version }}+cpu
run: |
pip install numpy typing-extensions dataclasses
pip install torch==${{ matrix.torch-version}}+cpu torchvision==${{matrix.torchvision-version}}+cpu torchaudio==${{matrix.torchaudio-version}}+cpu -f https://download.pytorch.org/whl/torch_stable.html
- name: Install FS
run: |
pip install -e .[test]
- name: Install NLTK
run: |
pip install nltk
- name: Install Transformers
run: |
pip install transformers==4.21.0
- name: Install ROUGE
run: |
git clone https://github.com/bheinzerling/pyrouge
cd pyrouge
pip install -e .
git clone https://github.com/andersjo/pyrouge.git rouge
pyrouge_set_rouge_path $(realpath rouge/tools/ROUGE-1.5.5/)
sudo apt-get install libxml-parser-perl --fix-missing
cd rouge/tools/ROUGE-1.5.5/data
rm WordNet-2.0.exc.db
./WordNet-2.0-Exceptions/buildExeptionDB.pl ./WordNet-2.0-Exceptions ./smart_common_words.txt ./WordNet-2.0.exc.db
python -m pyrouge.test
- name: Download METEOR packages
run: |
wget -c http://www.cs.cmu.edu/~alavie/METEOR/download/meteor-1.5.tar.gz
tar -zxvf meteor-1.5.tar.gz
mkdir federatedscope/nlp/metric/meteor/data/
mv meteor-1.5/data/paraphrase-en.gz federatedscope/nlp/metric/meteor/data/
mv meteor-1.5/meteor-1.5.jar federatedscope/nlp/metric/meteor/
- name: Test ATC
run: |
python federatedscope/main.py \
--cfg federatedscope/nlp/hetero_tasks/baseline/config_isolated.yaml \
--client_cfg federatedscope/nlp/hetero_tasks/baseline/config_client_isolated.yaml \
outdir exp/isolated/ \
use_gpu False \
data.is_debug True \
data.root test_data/ \
[ $? -eq 1 ] && exit 1
python federatedscope/main.py \
--cfg federatedscope/nlp/hetero_tasks/baseline/config_fedavg.yaml \
--client_cfg federatedscope/nlp/hetero_tasks/baseline/config_client_fedavg.yaml \
outdir exp/fedavg/ \
use_gpu False \
data.is_debug True \
data.root test_data/ \
[ $? -eq 1 ] && exit 1
python federatedscope/main.py \
--cfg federatedscope/nlp/hetero_tasks/baseline/config_pretrain.yaml \
outdir exp/atc/pretrain/ \
use_gpu False \
data.is_debug True \
data.root test_data/ \
[ $? -eq 1 ] && exit 1
python federatedscope/main.py \
--cfg federatedscope/nlp/hetero_tasks/baseline/config_atc.yaml \
--client_cfg federatedscope/nlp/hetero_tasks/baseline/config_client_atc.yaml \
outdir exp/atc/train/ \
use_gpu False \
data.is_debug True \
data.root test_data/ \
[ $? -eq 1 ] && exit 1 || echo "Passed"