diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 4a9b23366..994fd8761 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.6.1 +current_version = 0.7.0 commit = False tag = False allow_dirty = False diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index bca771635..8aac99a66 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,7 @@ ### Description @@ -17,4 +17,4 @@ This PR closes #XXX - [ ] Wrote Unit tests (if necessary) - [ ] Updated Documentation (if necessary) - [ ] Updated Changelog -- [ ] If notebooks were added/changed, added boilerplate cells are tagged with `"nbsphinx":"hidden"` +- [ ] If notebooks were added/changed, added boilerplate cells are tagged with `"tags": ["hide"]` or `"tags": ["hide-input"]` diff --git a/.github/actions/deploy-docs/action.yml b/.github/actions/deploy-docs/action.yml new file mode 100644 index 000000000..ff2c48756 --- /dev/null +++ b/.github/actions/deploy-docs/action.yml @@ -0,0 +1,43 @@ +name: Deploy Docs +description: Deploy documentation from develop or master branch +inputs: + version: + description: Version number to use + required: true + alias: + description: Alias to use (latest or stable) + required: true + title: + description: Alternative title to use + required: false + default: '' + email: + description: Email to use for git config + required: true + username: + description: Username to use for git config + required: true + set-default: + description: Set alias as the default version + required: false + default: 'false' +runs: + using: "composite" + steps: + - run: | + # https://github.com/jimporter/mike#deploying-via-ci + git fetch origin gh-pages --depth=1 + git config --local user.email ${{ inputs.email }} + git config --local user.name ${{ inputs.username }} + shell: bash + - run: | + if [ -z "${{ inputs.title }}" ] + then + mike deploy ${{ inputs.version }} ${{ inputs.alias }} --push --update-aliases + else + mike deploy ${{ inputs.version }} ${{ inputs.alias }} --title=${{ inputs.title }} --push --update-aliases + fi + shell: bash + - if: ${{ inputs.set-default == 'true' }} + run: mike set-default ${{ inputs.alias }} + shell: bash diff --git a/.github/actions/python/action.yml b/.github/actions/python/action.yml new file mode 100644 index 000000000..ee9d66e3e --- /dev/null +++ b/.github/actions/python/action.yml @@ -0,0 +1,20 @@ +name: Setup Python +description: Setup Python on GitHub Actions and install dev and docs requirements. +inputs: + python_version: + description: Python version to use + required: true +runs: + using: "composite" + steps: + - name: Set up Python ${{ inputs.python_version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ inputs.python_version }} + cache: 'pip' + cache-dependency-path: | + requirements-dev.txt + requirements-docs.txt + - name: Install Dev & Docs Requirements + run: pip install -r requirements-dev.txt -r requirements-docs.txt + shell: bash diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 2ea899fa3..751298462 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,17 +1,17 @@ name: Publish Python Package to PyPI on: - push: - tags: - - "v*" + release: + types: + - published workflow_dispatch: inputs: reason: description: Why did you trigger the pipeline? required: False default: Check if it runs again due to external changes - tag: - description: Tag for which a package should be published + tag_name: + description: The name of the tag for which a package should be published type: string required: false @@ -27,22 +27,24 @@ jobs: - uses: actions/checkout@v3 with: fetch-depth: 0 - - name: Fail if manually triggered workflow does not have 'tag' input - if: github.event_name == 'workflow_dispatch' && inputs.tag == '' + - name: Fail if manually triggered workflow does not have 'tag_name' input + if: github.event_name == 'workflow_dispatch' && inputs.tag_name == '' run: | - echo "Input 'tag' should not be empty" + echo "Input 'tag_name' should not be empty" exit -1 - name: Extract branch name from input id: get_branch_name_input if: github.event_name == 'workflow_dispatch' run: | - export BRANCH_NAME=$(git log -1 --format='%D' ${{ inputs.tag }} | sed -e 's/.*origin\/\(.*\).*/\1/') + export BRANCH_NAME=$(git log -1 --format='%D' ${{ inputs.tag_name }} | sed -e 's/.*origin\/\(.*\).*/\1/') + echo "$BRANCH_NAME" echo "branch_name=${BRANCH_NAME}" >> $GITHUB_OUTPUT - name: Extract branch name from tag id: get_branch_name_tag - if: github.ref_type == 'tag' + if: github.release.tag_name != '' run: | - export BRANCH_NAME=$(git log -1 --format='%D' $GITHUB_REF | sed -e 's/.*origin\/\(.*\).*/\1/') + export BRANCH_NAME=$(git log -1 --format='%D' ${{ github.release.tag_name }} | sed -e 's/.*origin\/\(.*\).*/\1/') + echo "$BRANCH_NAME" echo "branch_name=${BRANCH_NAME}" >> $GITHUB_OUTPUT shell: bash - name: Fail if tag is not on 'master' branch @@ -52,19 +54,33 @@ jobs: echo "Should be on Master branch instead" exit -1 - name: Fail if running locally - if: ${{ !github.event.act }} # skip during local actions testing + if: ${{ env.ACT }} # skip during local actions testing run: | echo "Running action locally. Failing" exit -1 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 + - name: Setup Python 3.8 + uses: ./.github/actions/python with: - python-version: 3.8 - cache: 'pip' - - name: Install Dev Requirements - run: pip install -r requirements-dev.txt + python_version: 3.8 + - name: Get Current Version + run: | + export CURRENT_VERSION=$(python setup.py --version --quiet | awk -F. '{print $1"."$2"."$3}') + # Make the version available as env variable for next steps + echo CURRENT_VERSION=$CURRENT_VERSION >> $GITHUB_ENV + shell: bash + - name: Deploy Docs + uses: ./.github/actions/deploy-docs + with: + version: ${{ env.CURRENT_VERSION }} + alias: latest + title: Latest + email: ${{ env.GITHUB_BOT_EMAIL }} + username: ${{ env.GITHUB_BOT_USERNAME }} + set-default: 'true' - name: Build and publish to PyPI env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: tox -e publish-release-package + run: | + python setup.py sdist bdist_wheel + twine upload --verbose --non-interactive dist/* diff --git a/.github/workflows/run-tests-workflow.yaml b/.github/workflows/run-tests-workflow.yaml index 6d92cd92a..b4a8fc0ca 100644 --- a/.github/workflows/run-tests-workflow.yaml +++ b/.github/workflows/run-tests-workflow.yaml @@ -22,13 +22,10 @@ jobs: - uses: actions/checkout@v3 with: fetch-depth: 0 - - name: Set up Python ${{ inputs.python_version }} - uses: actions/setup-python@v4 + - name: Setup Python ${{ inputs.python_version }} + uses: ./.github/actions/python with: - python-version: ${{ inputs.python_version }} - cache: 'pip' - - name: Install Dev Requirements - run: pip install -r requirements-dev.txt + python_version: ${{ inputs.python_version }} - name: Cache Tox Directory for Tests uses: actions/cache@v3 with: diff --git a/.github/workflows/tox.yaml b/.github/workflows/tox.yaml index 26e83fa80..f76c044b2 100644 --- a/.github/workflows/tox.yaml +++ b/.github/workflows/tox.yaml @@ -16,31 +16,32 @@ env: GITHUB_BOT_USERNAME: github-actions[bot] GITHUB_BOT_EMAIL: 41898282+github-actions[bot]@users.noreply.github.com PY_COLORS: 1 + MYPY_FORCE_COLOR: 1 + PANDOC_VERSION: '3.1.6.2' jobs: - lint: + code-quality: name: Lint code and check type hints runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 + - name: Setup Python 3.8 + uses: ./.github/actions/python with: - python-version: 3.8 - cache: 'pip' - - name: Install Dev Requirements - run: pip install -r requirements-dev.txt - - name: Cache Tox Directory for Linting - uses: actions/cache@v3 + python_version: 3.8 + - uses: actions/cache@v3 with: - key: tox-${{ github.ref }}-${{ runner.os }}-${{ hashFiles('tox.ini') }} - path: .tox + path: ~/.cache/pre-commit + key: pre-commit-${{ env.pythonLocation }}-${{ hashFiles('.pre-commit-config.yaml') }} - name: Lint Code - run: tox -e linting + run: | + pre-commit run --all --show-diff-on-failure + python build_scripts/run_pylint.py | (pylint-json2html -f jsonextended -o pylint.html) + shell: bash - name: Check Type Hints - run: tox -e type-checking + run: mypy src/ docs: name: Build Docs runs-on: ubuntu-latest @@ -48,28 +49,16 @@ jobs: - uses: actions/checkout@v3 with: fetch-depth: 0 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 + - name: Setup Python 3.8 + uses: ./.github/actions/python with: - python-version: 3.8 - cache: 'pip' - - name: Install Dev Requirements - run: pip install -r requirements-dev.txt + python_version: 3.8 - name: Install Pandoc - run: sudo apt-get install --no-install-recommends --yes pandoc - - name: Cache Tox Directory for Docs - uses: actions/cache@v3 + uses: r-lib/actions/setup-pandoc@v2 with: - key: tox-${{ github.ref }}-${{ runner.os }}-${{ hashFiles('tox.ini') }} - path: .tox + pandoc-version: ${{ env.PANDOC_VERSION }} - name: Build Docs - run: tox -e docs - - name: Save built docs - uses: actions/upload-artifact@v3 - with: - name: docs - path: ./docs/_build - retention-days: 1 + run: mkdocs build base-tests: strategy: matrix: @@ -79,7 +68,7 @@ jobs: with: tests_to_run: base python_version: ${{ matrix.python_version }} - needs: [lint] + needs: [code-quality] torch-tests: strategy: matrix: @@ -89,7 +78,7 @@ jobs: with: tests_to_run: torch python_version: ${{ matrix.python_version }} - needs: [lint] + needs: [code-quality] notebook-tests: strategy: matrix: @@ -99,50 +88,41 @@ jobs: with: tests_to_run: notebooks python_version: ${{ matrix.python_version }} - needs: [lint] + needs: [code-quality] push-docs-and-release-testpypi: name: Push Docs and maybe release Package to TestPyPI runs-on: ubuntu-latest needs: [docs, base-tests, torch-tests, notebook-tests] + if: ${{ github.ref == 'refs/heads/develop' }} concurrency: - group: push-docs-and-release-testpypi + group: publish steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: 3.8 - cache: 'pip' - - name: Install Dev Requirements - run: pip install -r requirements-dev.txt - - name: Cache Tox Directory - uses: actions/cache@v3 + - name: Setup Python 3.8 + uses: ./.github/actions/python with: - key: tox-${{ github.ref }}-${{ runner.os }}-${{ hashFiles('tox.ini') }} - path: .tox - - name: Download built docs - uses: actions/download-artifact@v3 + python_version: 3.8 + - name: Install Pandoc + uses: r-lib/actions/setup-pandoc@v2 with: - name: docs - path: ./docs/_build + pandoc-version: ${{ env.PANDOC_VERSION }} - name: Deploy Docs - uses: peaceiris/actions-gh-pages@v3 - if: ${{ github.ref == 'refs/heads/develop' }} + uses: ./.github/actions/deploy-docs with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docs/_build/html - user_name: ${{ env.GITHUB_BOT_USERNAME }} - user_email: ${{ env.GITHUB_BOT_EMAIL }} + version: devel + alias: develop + title: Development + email: ${{ env.GITHUB_BOT_EMAIL }} + username: ${{ env.GITHUB_BOT_USERNAME }} - name: Build and publish to TestPyPI - if: ${{ github.ref == 'refs/heads/develop' }} env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.TEST_PYPI_PASSWORD }} run: | set -x - export CURRENT_VERSION=$(python setup.py --version) export BUILD_NUMBER=$GITHUB_RUN_NUMBER - tox -e bump-dev-version - tox -e publish-test-package + bump2version --no-tag --no-commit --verbose --serialize '\{major\}.\{minor\}.\{patch\}.\{release\}\{$BUILD_NUMBER\}' boguspart + python setup.py sdist bdist_wheel + twine upload -r testpypi --verbose --non-interactive dist/* diff --git a/.gitignore b/.gitignore index 1ee9bb1d2..7445020d2 100644 --- a/.gitignore +++ b/.gitignore @@ -139,3 +139,6 @@ pylint.html # Saved data runs/ data/models/ + +# Docs +docs_build diff --git a/CHANGELOG.md b/CHANGELOG.md index a6bf217e1..bc82e515b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,95 +1,154 @@ # Changelog -## 0.6.1 - 🏗 Bug fixes and small improvement +## 0.7.0 - 📚🆕 Documentation and IF overhaul, new methods and bug fixes 💥🐞 + +This is our first β release! We have worked hard to deliver improvements across +the board, with a focus on documentation and usability. We have also reworked +the internals of the `influence` module, improved parallelism and handling of +randomness. + +### Added + +- Implemented solving the Hessian equation via spectral low-rank approximation + [PR #365](https://github.com/aai-institute/pyDVL/pull/365) +- Enabled parallel computation for Leave-One-Out values + [PR #406](https://github.com/aai-institute/pyDVL/pull/406) +- Added more abbreviations to documentation + [PR #415](https://github.com/aai-institute/pyDVL/pull/415) +- Added seed to functions from `pydvl.utils.numeric`, `pydvl.value.shapley` and + `pydvl.value.semivalues`. Introduced new type `Seed` and conversion function + `ensure_seed_sequence`. + [PR #396](https://github.com/aai-institute/pyDVL/pull/396) + +### Changed + +- Replaced sphinx with mkdocs for documentation. Major overhaul of documentation + [PR #352](https://github.com/aai-institute/pyDVL/pull/352) +- Made ray an optional dependency, relying on joblib as default parallel backend + [PR #408](https://github.com/aai-institute/pyDVL/pull/408) +- Decoupled `ray.init` from `ParallelConfig` + [PR #373](https://github.com/aai-institute/pyDVL/pull/383) +- **Breaking Changes** + - Signature change: return information about Hessian inversion from + `compute_influence_factors` + [PR #375](https://github.com/aai-institute/pyDVL/pull/376) + - Major changes to IF interface and functionality. Foundation for a framework + abstraction for IF computation. + [PR #278](https://github.com/aai-institute/pyDVL/pull/278) + [PR #394](https://github.com/aai-institute/pyDVL/pull/394) + - Renamed `semivalues` to `compute_generic_semivalues` + [PR #413](https://github.com/aai-institute/pyDVL/pull/413) + - New `joblib` backend as default instead of ray. Simplify MapReduceJob. + [PR #355](https://github.com/aai-institute/pyDVL/pull/355) + - Bump torch dependency for influence package to 2.0 + [PR #365](https://github.com/aai-institute/pyDVL/pull/365) + +### Fixed + +- Fixes to parallel computation of generic semi-values: properly handle all + samplers and stopping criteria, irrespective of parallel backend. + [PR #372](https://github.com/aai-institute/pyDVL/pull/372) +- Optimises memory usage in IF calculation + [PR #375](https://github.com/aai-institute/pyDVL/pull/376) +- Fix adding valuation results with overlapping indices and different lengths + [PR #370](https://github.com/aai-institute/pyDVL/pull/370) +- Fixed bugs in conjugate gradient and `linear_solve` + [PR #358](https://github.com/aai-institute/pyDVL/pull/358) +- Fix installation of dev requirements for Python3.10 + [PR #382](https://github.com/aai-institute/pyDVL/pull/382) +- Improvements to IF documentation + [PR #371](https://github.com/aai-institute/pyDVL/pull/371) + +## 0.6.1 - 🏗 Bug fixes and small improvements - Fix parsing keyword arguments of `compute_semivalues` dispatch function - [PR #333](https://github.com/appliedAI-Initiative/pyDVL/pull/333) + [PR #333](https://github.com/aai-institute/pyDVL/pull/333) - Create new `RayExecutor` class based on the concurrent.futures API, use the new class to fix an issue with Truncated Monte Carlo Shapley (TMCS) starting too many processes and dying, plus other small changes - [PR #329](https://github.com/appliedAI-Initiative/pyDVL/pull/329) + [PR #329](https://github.com/aai-institute/pyDVL/pull/329) - Fix creation of GroupedDataset objects using the `from_arrays` and `from_sklearn` class methods - [PR #324](https://github.com/appliedAI-Initiative/pyDVL/pull/334) + [PR #324](https://github.com/aai-institute/pyDVL/pull/334) - Fix release job not triggering on CI when a new tag is pushed - [PR #331](https://github.com/appliedAI-Initiative/pyDVL/pull/331) + [PR #331](https://github.com/aai-institute/pyDVL/pull/331) - Added alias `ApproShapley` from Castro et al. 2009 for permutation Shapley - [PR #332](https://github.com/appliedAI-Initiative/pyDVL/pull/332) + [PR #332](https://github.com/aai-institute/pyDVL/pull/332) ## 0.6.0 - 🆕 New algorithms, cleanup and bug fixes 🏗 - Fixes in `ValuationResult`: bugs around data names, semantics of `empty()`, new method `zeros()` and normalised random values - [PR #327](https://github.com/appliedAI-Initiative/pyDVL/pull/327) + [PR #327](https://github.com/aai-institute/pyDVL/pull/327) - **New method**: Implements generalised semi-values for data valuation, including Data Banzhaf and Beta Shapley, with configurable sampling strategies - [PR #319](https://github.com/appliedAI-Initiative/pyDVL/pull/319) + [PR #319](https://github.com/aai-institute/pyDVL/pull/319) - Adds kwargs parameter to `from_array` and `from_sklearn` Dataset and GroupedDataset class methods - [PR #316](https://github.com/appliedAI-Initiative/pyDVL/pull/316) + [PR #316](https://github.com/aai-institute/pyDVL/pull/316) - PEP-561 conformance: added `py.typed` - [PR #307](https://github.com/appliedAI-Initiative/pyDVL/pull/307) + [PR #307](https://github.com/aai-institute/pyDVL/pull/307) - Removed default non-negativity constraint on least core subsidy and added instead a `non_negative_subsidy` boolean flag. Renamed `options` to `solver_options` and pass it as dict. Change default least-core solver to SCS with 10000 max_iters. - [PR #304](https://github.com/appliedAI-Initiative/pyDVL/pull/304) + [PR #304](https://github.com/aai-institute/pyDVL/pull/304) - Cleanup: removed unnecessary decorator `@unpackable` - [PR #233](https://github.com/appliedAI-Initiative/pyDVL/pull/233) + [PR #233](https://github.com/aai-institute/pyDVL/pull/233) - Stopping criteria: fixed problem with `StandardError` and enable proper composition of index convergence statuses. Fixed a bug with `n_jobs` in `truncated_montecarlo_shapley`. - [PR #300](https://github.com/appliedAI-Initiative/pyDVL/pull/300) and - [PR #305](https://github.com/appliedAI-Initiative/pyDVL/pull/305) + [PR #300](https://github.com/aai-institute/pyDVL/pull/300) and + [PR #305](https://github.com/aai-institute/pyDVL/pull/305) - Shuffling code around to allow for simpler user imports, some cleanup and documentation fixes. - [PR #284](https://github.com/appliedAI-Initiative/pyDVL/pull/284) + [PR #284](https://github.com/aai-institute/pyDVL/pull/284) - **Bug fix**: Warn instead of raising an error when `n_iterations` is less than the size of the dataset in Monte Carlo Least Core - [PR #281](https://github.com/appliedAI-Initiative/pyDVL/pull/281) + [PR #281](https://github.com/aai-institute/pyDVL/pull/281) ## 0.5.0 - 💥 Fixes, nicer interfaces and... more breaking changes 😒 - Fixed parallel and antithetic Owen sampling for Shapley values. Simplified and extended tests. - [PR #267](https://github.com/appliedAI-Initiative/pyDVL/pull/267) + [PR #267](https://github.com/aai-institute/pyDVL/pull/267) - Added `Scorer` class for a cleaner interface. Fixed minor bugs around Group-Testing Shapley, added more tests and switched to cvxpy for the solver. - [PR #264](https://github.com/appliedAI-Initiative/pyDVL/pull/264) + [PR #264](https://github.com/aai-institute/pyDVL/pull/264) - Generalised stopping criteria for valuation algorithms. Improved classes `ValuationResult` and `Status` with more operations. Some minor issues fixed. - [PR #252](https://github.com/appliedAI-Initiative/pyDVL/pull/250) + [PR #252](https://github.com/aai-institute/pyDVL/pull/250) - Fixed a bug whereby `compute_shapley_values` would only spawn one process when using `n_jobs=-1` and Monte Carlo methods. - [PR #270](https://github.com/appliedAI-Initiative/pyDVL/pull/270) + [PR #270](https://github.com/aai-institute/pyDVL/pull/270) - Bugfix in `RayParallelBackend`: wrong semantics for `kwargs`. - [PR #268](https://github.com/appliedAI-Initiative/pyDVL/pull/268) + [PR #268](https://github.com/aai-institute/pyDVL/pull/268) - Splitting of problem preparation and solution in Least-Core computation. Umbrella function for LC methods. - [PR #257](https://github.com/appliedAI-Initiative/pyDVL/pull/257) + [PR #257](https://github.com/aai-institute/pyDVL/pull/257) - Operations on `ValuationResult` and `Status` and some cleanup - [PR #248](https://github.com/appliedAI-Initiative/pyDVL/pull/248) + [PR #248](https://github.com/aai-institute/pyDVL/pull/248) - **Bug fix and minor improvements**: Fixes bug in TMCS with remote Ray cluster, raises an error for dummy sequential parallel backend with TMCS, clones model inside `Utility` before fitting by default, with flag `clone_before_fit` to disable it, catches all warnings in `Utility` when `show_warnings` is `False`. Adds Miner and Gloves toy games utilities - [PR #247](https://github.com/appliedAI-Initiative/pyDVL/pull/247) + [PR #247](https://github.com/aai-institute/pyDVL/pull/247) ## 0.4.0 - 🏭💥 New algorithms and more breaking changes - GH action to mark issues as stale - [PR #201](https://github.com/appliedAI-Initiative/pyDVL/pull/201) + [PR #201](https://github.com/aai-institute/pyDVL/pull/201) - Disabled caching of Utility values as well as repeated evaluations by default - [PR #211](https://github.com/appliedAI-Initiative/pyDVL/pull/211) + [PR #211](https://github.com/aai-institute/pyDVL/pull/211) - Test and officially support Python version 3.9 and 3.10 - [PR #208](https://github.com/appliedAI-Initiative/pyDVL/pull/208) + [PR #208](https://github.com/aai-institute/pyDVL/pull/208) - **Breaking change:** Introduces a class ValuationResult to gather and inspect results from all valuation algorithms - [PR #214](https://github.com/appliedAI-Initiative/pyDVL/pull/214) + [PR #214](https://github.com/aai-institute/pyDVL/pull/214) - Fixes bug in Influence calculation with multidimensional input and adds new example notebook - [PR #195](https://github.com/appliedAI-Initiative/pyDVL/pull/195) + [PR #195](https://github.com/aai-institute/pyDVL/pull/195) - **Breaking change**: Passes the input to `MapReduceJob` at initialization, removes `chunkify_inputs` argument from `MapReduceJob`, removes `n_runs` argument from `MapReduceJob`, calls the parallel backend's `put()` method for @@ -97,38 +156,38 @@ attribute to `n_local_workers`, fixes a bug in `MapReduceJob`'s chunkification when `n_runs` >= `n_jobs`, and defines a sequential parallel backend to run all jobs in the current thread - [PR #232](https://github.com/appliedAI-Initiative/pyDVL/pull/232) + [PR #232](https://github.com/aai-institute/pyDVL/pull/232) - **New method**: Implements exact and monte carlo Least Core for data valuation, adds `from_arrays()` class method to the `Dataset` and `GroupedDataset` classes, adds `extra_values` argument to `ValuationResult`, adds `compute_removal_score()` and `compute_random_removal_score()` helper functions - [PR #237](https://github.com/appliedAI-Initiative/pyDVL/pull/237) + [PR #237](https://github.com/aai-institute/pyDVL/pull/237) - **New method**: Group Testing Shapley for valuation, from _Jia et al. 2019_ - [PR #240](https://github.com/appliedAI-Initiative/pyDVL/pull/240) + [PR #240](https://github.com/aai-institute/pyDVL/pull/240) - Fixes bug in ray initialization in `RayParallelBackend` class - [PR #239](https://github.com/appliedAI-Initiative/pyDVL/pull/239) + [PR #239](https://github.com/aai-institute/pyDVL/pull/239) - Implements "Egalitarian Least Core", adds [cvxpy](https://www.cvxpy.org/) as a dependency and uses it instead of scipy as optimizer - [PR #243](https://github.com/appliedAI-Initiative/pyDVL/pull/243) + [PR #243](https://github.com/aai-institute/pyDVL/pull/243) ## 0.3.0 - 💥 Breaking changes - Simplified and fixed powerset sampling and testing - [PR #181](https://github.com/appliedAI-Initiative/pyDVL/pull/181) + [PR #181](https://github.com/aai-institute/pyDVL/pull/181) - Simplified and fixed publishing to PyPI from CI - [PR #183](https://github.com/appliedAI-Initiative/pyDVL/pull/183) + [PR #183](https://github.com/aai-institute/pyDVL/pull/183) - Fixed bug in release script and updated contributing docs. - [PR #184](https://github.com/appliedAI-Initiative/pyDVL/pull/184) + [PR #184](https://github.com/aai-institute/pyDVL/pull/184) - Added Pull Request template - [PR #185](https://github.com/appliedAI-Initiative/pyDVL/pull/185) + [PR #185](https://github.com/aai-institute/pyDVL/pull/185) - Modified Pull Request template to automatically link PR to issue - [PR ##186](https://github.com/appliedAI-Initiative/pyDVL/pull/186) + [PR ##186](https://github.com/aai-institute/pyDVL/pull/186) - First implementation of Owen Sampling, squashed scores, better testing - [PR #194](https://github.com/appliedAI-Initiative/pyDVL/pull/194) + [PR #194](https://github.com/aai-institute/pyDVL/pull/194) - Improved documentation on caching, Shapley, caveats of values, bibtex - [PR #194](https://github.com/appliedAI-Initiative/pyDVL/pull/194) + [PR #194](https://github.com/aai-institute/pyDVL/pull/194) - **Breaking change:** Rearranging of modules to accommodate for new methods - [PR #194](https://github.com/appliedAI-Initiative/pyDVL/pull/194) + [PR #194](https://github.com/aai-institute/pyDVL/pull/194) ## 0.2.0 - 📚 Better docs @@ -137,7 +196,7 @@ Mostly API documentation and notebooks, plus some bugfixes. ### Added -In [PR #161](https://github.com/appliedAI-Initiative/pyDVL/pull/161): +In [PR #161](https://github.com/aai-institute/pyDVL/pull/161): - Support for $$ math in sphinx docs. - Usage of sphinx extension for external links (introducing new directives like `:gh:`, `:issue:` and `:tfl:` to construct standardised links to external @@ -149,7 +208,7 @@ In [PR #161](https://github.com/appliedAI-Initiative/pyDVL/pull/161): ### Changed -In [PR #161](https://github.com/appliedAI-Initiative/pyDVL/pull/161): +In [PR #161](https://github.com/aai-institute/pyDVL/pull/161): - Improved main docs and Shapley notebooks. Added or fixed many docstrings, readme and documentation for contributors. Typos, grammar and style in code, documentation and notebooks. @@ -158,9 +217,9 @@ In [PR #161](https://github.com/appliedAI-Initiative/pyDVL/pull/161): ### Fixed - Bug in random matrix generation - [PR #161](https://github.com/appliedAI-Initiative/pyDVL/pull/161). + [PR #161](https://github.com/aai-institute/pyDVL/pull/161). - Bugs in MapReduceJob's `_chunkify` and `_backpressure` methods - [PR #176](https://github.com/appliedAI-Initiative/pyDVL/pull/176). + [PR #176](https://github.com/aai-institute/pyDVL/pull/176). ## 0.1.0 - 🎉 first release diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 000000000..8ce54eb5f --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,31 @@ +# This CITATION.cff file was generated with cffinit. +# Visit https://bit.ly/cffinit to generate yours today! + +cff-version: 1.2.0 +title: pyDVL +message: >- + If you use this software, please cite it using the + metadata from this file. +type: software +authors: + - given-names: TransferLab team + email: info+pydvl@appliedai.de + affiliation: appliedAI Institute gGmbH +repository-code: 'https://github.com/aai-institute/pyDVL' +abstract: >- + pyDVL is a library of stable implementations of algorithms + for data valuation and influence function computation +keywords: + - machine learning + - data-centric AI + - data valuation + - influence function + - Shapley value + - data quality + - Least core + - Semi-values + - Banzhaf index +license: LGPL-3.0 +commit: 0e929ae121820b0014bf245da1b21032186768cb +version: v0.6.1 +date-released: '2023-04-13' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6bd181636..b7d4bf23a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,7 +11,7 @@ improvements to the currently implemented methods and other ideas. Please open a ticket with yours. If you are interested in setting up a similar project, consider the template -[pymetrius](https://github.com/appliedAI-Initiative/pymetrius). +[pymetrius](https://github.com/aai-institute/pymetrius). ## Local development @@ -62,7 +62,7 @@ sudo apt-get update -yq && apt-get install -yq pandoc ``` Remember to mark all autogenerated directories as excluded in your IDE. In -particular `docs/_build` and `.tox` should be marked as excluded to avoid +particular `docs_build` and `.tox` should be marked as excluded to avoid slowdowns when searching or refactoring code. If you use remote execution, don't forget to exclude data paths from deployment @@ -120,7 +120,7 @@ python setup.py sdist bdist_wheel ## Notebooks We use notebooks both as documentation (copied over to `docs/examples`) and as -integration tests. All notebooks in the `notebooks` directory are be executed +integration tests. All notebooks in the `notebooks` directory are executed during the test run. Because run times are typically too long for large datasets, you must check for the `CI` environment variable to work with smaller ones. For example, you can select a subset of the data: @@ -131,13 +131,15 @@ if os.environ.get('CI'): training_data = training_data[:10] ``` -This switching should happen in a function, not in the notebook: we want to -avoid as much clutter and boilerplate as possible in the notebooks themselves. +This switching should happen in a separate notebook cell tagged with +`hide` to hide the cell's input and output when rendering it as part of +the documents. We want to avoid as much clutter and boilerplate +as possible in the notebooks themselves. Because we want documentation to include the full dataset, we commit notebooks with their outputs running with full datasets to the repo. The notebooks are then added by CI to the section -[Examples](https://appliedAI-Initiative.github.io/pyDVL/examples.html) of the +[Examples](https://aai-institute.github.io/pyDVL/examples.html) of the documentation. ### Hiding cells in notebooks @@ -147,79 +149,87 @@ all examples of boilerplate code irrelevant to a reader interested in pyDVL's functionality. For this reason we choose to isolate this code into separate cells which are then hidden in the documentation. -In order to do this, cells are marked with metadata understood by the sphinx -plugin `nbpshinx`, namely adding the following to the relevant cells: +In order to do this, cells are marked with tags understood by the mkdocs +plugin [`mkdocs-jupyter`](https://github.com/danielfrg/mkdocs-jupyter#readme), +namely adding the following to the relevant cells: ```yaml -metadata: { - "nbphinx": "hidden" -} +"tags": [ + "hide" +] +``` + +To hide the cell's input and output. + +Or: + +```yaml +"tags": [ + "hide-input" +] ``` +To only hide the input + It is important to leave a warning at the top of the document to avoid confusion. Examples for hidden imports and plots are available in the notebooks, e.g. in -[Shapley for data valuation](https://appliedai-initiative.github.io/pyDVL/examples/shapley_basic_spotify.ipynb). +[Shapley for data valuation](https://aai-institute.github.io/pyDVL/examples/shapley_basic_spotify.ipynb). ## Documentation API documentation and examples from notebooks are built with -[sphinx](https://www.sphinx-doc.org/) by tox. Doctests are run during this step. -In order to construct the API documentation, tox calls a helper script that -builds `.rst` files from docstrings and templates. It can be invoked manually -with: - -```bash -python build_scripts/update_docs.py -``` +[mkdocs](https://www.mkdocs.org/), with versioning handled by +[mike](https://github.com/jimporter/mike). -See the documentation inside the script for more details. Notebooks are an -integral part of the documentation as well, please read +Notebooks are an integral part of the documentation as well, please read [the section on notebooks](#notebooks) above. -It is important to note that sphinx does not listen to changes in the source -directory. If you want live updating of the auto-generated documentation (i.e. -any rst files which are not manually created), you can use a file watcher. -This is not part of the development setup of pyDVL (yet! PRs welcome), but -modern IDEs provide functionality for this. - -Use the **docs** tox environment to build the documentation the same way it is +Use the following command to build the documentation the same way it is done in CI: ```bash -tox -e docs +mkdocs build ``` -Locally, you can use the **docs-dev** tox environment to continuously rebuild -documentation on changes to the `docs` folder: +Locally, you can use this command instead to continuously rebuild documentation +on changes to the `docs` and `src` folder: ```bash -tox -e docs-dev +mkdocs serve ``` -**Again:** this only rebuilds on changes to `.rst` files and notebooks inside -`docs`. +This will rebuild the documentation on changes to `.md` files inside `docs`, +notebooks and python files. + + +### Adding new pages + +Navigation is configured in `mkdocs.yaml` using the nav section. We use the +plugin [mkdoc-literate-nav](https://oprypin.github.io/mkdocs-literate-nav/) +which allows fine-grained control of the navigation structure. However, most +pages are explicitly listed and manually arranged in the `nav` section of the +configuration. + ### Using bibliography -Bibliographic citations are managed with the plugin -[sphinx-bibtex](https://sphinxcontrib-bibtex.readthedocs.io/en/latest/index.html). +Bibliographic citations are managed with the plugins +[mkdocs-bibtex]() and [...][]. To enter a citation first add the entry to `docs/pydvl.bib`. For team contributor this should be an export of the Zotero folder `software/pydvl` in the [TransferLab Zotero library](https://www.zotero.org/groups/2703043/transferlab/library). All other contributors just add the bibtex data, and a maintainer will add it to the group library upon merging. -To add a citation inside a module or function's docstring, use the sphinx role -`:footcite:t:`. A references section is automatically added at the bottom of -each module's auto-generated documentation. +To add a citation inside a module or function's docstring, use the notation +`[@citekey]`. A references section is automatically added at the bottom of each +module's auto-generated documentation. ### Writing mathematics -In sphinx one can write mathematics with the directives `:math:` (inline) or -`.. math::` (block). Additionally, we use the extension -[sphinx-math-dollar](https://github.com/sympy/sphinx-math-dollar) to allow for -the more common `$` (inline) and `$$` (block) delimiters in RST files. +Use LaTeX delimiters `$` and `$$` for inline and displayed mathematics +respectively. **Warning: backslashes must be escaped in docstrings!** (although there are exceptions). For simplicity, declare the string as "raw" with the prefix `r`: @@ -240,6 +250,16 @@ def f(x: float) -> float: return 1/(x*x) ``` +### Abbreviations + +We keep the abbreviations used in the documentation inside the +[docs_include/abbreviations.md](docs_includes%2Fabbreviations.md) file. + +The syntax for abbreviations is: + +```markdown +*[ABBR]: Abbreviation +``` ## CI @@ -249,7 +269,7 @@ We use workflows to: * Publish documentation. * Publish packages to testpypi / pypi. * Mark issues as stale after 30 days. We do this only for issues with the label - [`awaiting-reply`](https://github.com/appliedAI-Initiative/pyDVL/labels/awaiting-reply) + [`awaiting-reply`](https://github.com/aai-institute/pyDVL/labels/awaiting-reply) which indicates that we have answered a question / feature request / PR and are waiting for the OP to reply / update his work. @@ -397,8 +417,11 @@ If running in interactive mode (without `-y|--yes`), the script will output a summary of pending changes and ask for confirmation before executing the actions. -Once this is done, a package will be automatically created and published from CI -to PyPI. +Once this is done, a tag will be created on the repository. You should then +create a GitHub +[release](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release) +for that tag. That will a trigger a CI pipeline that will automatically create a +package and publish it from CI to PyPI. ### Manual release process @@ -441,8 +464,11 @@ create a new release manually by following these steps: ``` 7. Delete the release branch if necessary: `git branch -d release/${RELEASE_VERSION}` -8. Pour yourself a cup of coffee, you earned it! :coffee: :sparkles: -9. A package will be automatically created and published from CI to PyPI. +8. Create a Github + [release](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release) + for the created tag. +9. Pour yourself a cup of coffee, you earned it! :coffee: :sparkles: +10. A package will be automatically created and published from CI to PyPI. ### CI and requirements for publishing @@ -466,10 +492,10 @@ a GitHub release. #### Publish to TestPyPI We use [bump2version](https://pypi.org/project/bump2version/) to bump -the build part of the version number and publish a package to TestPyPI from CI. - -To do that, we use 2 different tox environments: +the build part of the version number without commiting or tagging the change +and then publish a package to TestPyPI from CI using Twine. The version +has the github run number appended. -- **bump-dev-version**: Uses bump2version to bump the dev version, - without committing the new version or creating a corresponding git tag. -- **publish-test-package**: Builds and publishes a package to TestPyPI +For more details refer to the +[.github/workflows/publish.yaml](.github/workflows/publish.yaml) and +[.github/workflows/tox.yaml](.github/workflows/tox.yaml) files. diff --git a/README.md b/README.md index 2201e8c9e..bceef3f65 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- pyDVL Logo + pyDVL Logo

@@ -7,8 +7,8 @@

- - Build Status + + Build Status
@@ -22,7 +22,7 @@

- Docs + Docs

@@ -74,6 +74,9 @@ model. We implement methods from the following papers: Influence Functions](http://proceedings.mlr.press/v70/koh17a.html). In Proceedings of the 34th International Conference on Machine Learning, 70:1885–94. Sydney, Australia: PMLR, 2017. +- Naman Agarwal, Brian Bullins, and Elad Hazan, [Second-Order Stochastic Optimization + for Machine Learning in Linear Time](https://www.jmlr.org/papers/v18/16-491.html), + Journal of Machine Learning Research 18 (2017): 1-40. # Installation @@ -91,11 +94,59 @@ pip install pyDVL --index-url https://test.pypi.org/simple/ ``` For more instructions and information refer to [Installing pyDVL -](https://appliedAI-Initiative.github.io/pyDVL/20-install.html) in the +](https://aai-institute.github.io/pyDVL/20-install.html) in the documentation. # Usage +### Influence Functions + +For influence computation, follow these steps: + +1. Wrap your model and loss in a `TorchTwiceDifferential` object +2. Compute influence factors by providing training data and inversion method + +Using the conjugate gradient algorithm, this would look like: +```python +import torch +from torch import nn +from torch.utils.data import DataLoader, TensorDataset + +from pydvl.influence import TorchTwiceDifferentiable, compute_influences, InversionMethod + +nn_architecture = nn.Sequential( + nn.Conv2d(in_channels=5, out_channels=3, kernel_size=3), + nn.Flatten(), + nn.Linear(27, 3), +) +loss = nn.MSELoss() +model = TorchTwiceDifferentiable(nn_architecture, loss) + +input_dim = (5, 5, 5) +output_dim = 3 + +train_data_loader = DataLoader( + TensorDataset(torch.rand((10, *input_dim)), torch.rand((10, output_dim))), + batch_size=2, +) +test_data_loader = DataLoader( + TensorDataset(torch.rand((5, *input_dim)), torch.rand((5, output_dim))), + batch_size=1, +) + +influences = compute_influences( + model, + training_data=train_data_loader, + test_data=test_data_loader, + progress=True, + inversion_method=InversionMethod.Cg, + hessian_regularization=1e-1, + maxiter=200, +) +``` + + +### Shapley Values The steps required to compute values for your samples are: 1. Create a `Dataset` object with your train and test splits. @@ -125,9 +176,9 @@ values = compute_shapley_values( ``` For more instructions and information refer to [Getting -Started](https://appliedAI-Initiative.github.io/pyDVL/10-getting-started.html) in +Started](https://aai-institute.github.io/pyDVL/10-getting-started.html) in the documentation. We provide several -[examples](https://appliedAI-Initiative.github.io/pyDVL/examples/index.html) +[examples](https://aai-institute.github.io/pyDVL/examples/index.html) with details on the algorithms and their applications. ## Caching @@ -142,8 +193,8 @@ You can run it either locally or, using docker container run --rm -p 11211:11211 --name pydvl-cache -d memcached:latest ``` -You can read more in the [caching module's -documentation](https://appliedAI-Initiative.github.io/pyDVL/pydvl/utils/caching.html). +You can read more in the +[documentation](https://aai-institute.github.io/pyDVL/getting-started/first-steps/#caching). # Contributing diff --git a/build_scripts/copy_changelog.py b/build_scripts/copy_changelog.py new file mode 100644 index 000000000..2f570295e --- /dev/null +++ b/build_scripts/copy_changelog.py @@ -0,0 +1,39 @@ +import logging +import os +import shutil +from pathlib import Path + +import mkdocs.plugins + +logger = logging.getLogger(__name__) + +root_dir = Path(__file__).parent.parent +docs_dir = root_dir / "docs" +changelog_file = root_dir / "CHANGELOG.md" +target_filepath = docs_dir / changelog_file.name + + +@mkdocs.plugins.event_priority(100) +def on_pre_build(config): + logger.info("Temporarily copying changelog to docs directory") + try: + if os.path.getmtime(changelog_file) <= os.path.getmtime(target_filepath): + logger.info( + f"Changelog '{os.fspath(changelog_file)}' hasn't been updated, skipping." + ) + return + except FileNotFoundError: + pass + logger.info( + f"Creating symbolic link for '{os.fspath(changelog_file)}' " + f"at '{os.fspath(target_filepath)}'" + ) + target_filepath.symlink_to(changelog_file) + + logger.info("Finished copying changelog to docs directory") + + +@mkdocs.plugins.event_priority(-100) +def on_shutdown(): + logger.info("Removing temporary changelog in docs directory") + target_filepath.unlink() diff --git a/build_scripts/copy_notebooks.py b/build_scripts/copy_notebooks.py new file mode 100644 index 000000000..0d0edbfd3 --- /dev/null +++ b/build_scripts/copy_notebooks.py @@ -0,0 +1,45 @@ +import logging +import os +import shutil +from pathlib import Path + +import mkdocs.plugins + +logger = logging.getLogger(__name__) + +root_dir = Path(__file__).parent.parent +docs_examples_dir = root_dir / "docs" / "examples" +notebooks_dir = root_dir / "notebooks" + + +@mkdocs.plugins.event_priority(100) +def on_pre_build(config): + logger.info("Temporarily copying notebooks to examples directory") + docs_examples_dir.mkdir(parents=True, exist_ok=True) + notebook_filepaths = list(notebooks_dir.glob("*.ipynb")) + + for notebook in notebook_filepaths: + target_filepath = docs_examples_dir / notebook.name + + try: + if os.path.getmtime(notebook) <= os.path.getmtime(target_filepath): + logger.info( + f"Notebook '{os.fspath(notebook)}' hasn't been updated, skipping." + ) + continue + except FileNotFoundError: + pass + logger.info( + f"Creating symbolic link for '{os.fspath(notebook)}' " + f"at '{os.fspath(target_filepath)}'" + ) + target_filepath.symlink_to(notebook) + + logger.info("Finished copying notebooks to examples directory") + + +@mkdocs.plugins.event_priority(-100) +def on_shutdown(): + logger.info("Removing temporary examples directory") + for notebook_file in docs_examples_dir.glob("*.ipynb"): + notebook_file.unlink() diff --git a/build_scripts/generate_api_docs.py b/build_scripts/generate_api_docs.py new file mode 100644 index 000000000..99751aaa8 --- /dev/null +++ b/build_scripts/generate_api_docs.py @@ -0,0 +1,30 @@ +"""Generate the code reference pages.""" +from pathlib import Path + +import mkdocs_gen_files + +nav = mkdocs_gen_files.Nav() +root = Path("src") # / Path("pydvl") +for path in sorted(root.rglob("*.py")): + module_path = path.relative_to(root).with_suffix("") + doc_path = path.relative_to(root).with_suffix(".md") + full_doc_path = Path("api") / doc_path + parts = tuple(module_path.parts) + + if parts[-1] == "__init__": + parts = parts[:-1] + doc_path = doc_path.with_name("index.md") + full_doc_path = full_doc_path.with_name("index.md") + elif parts[-1] == "__main__": + continue + + nav[parts] = doc_path.as_posix() + + with mkdocs_gen_files.open(full_doc_path, "w") as fd: + identifier = ".".join(parts) + fd.write(f"::: {identifier}") + + mkdocs_gen_files.set_edit_path(full_doc_path, path) + +# with mkdocs_gen_files.open("api/SUMMARY.md", "w") as nav_file: +# nav_file.writelines(nav.build_literate_nav()) diff --git a/build_scripts/modify_binder_link.py b/build_scripts/modify_binder_link.py new file mode 100644 index 000000000..a01da10b5 --- /dev/null +++ b/build_scripts/modify_binder_link.py @@ -0,0 +1,65 @@ +""" +This mkdocs hook replaces the binder link in the rendered notebooks +with links to the actual notebooks in the repository. +This is needed because for the docs we create symlinks to the notebooks +inside the docs directory. +This is heavily inspired from: +https://github.com/greenape/mknotebooks/blob/master/mknotebooks/plugin.py#L322 +""" + +import logging +import os +import re +from pathlib import Path +from typing import TYPE_CHECKING, Literal, Optional + +from git import Repo +from mkdocs.plugins import Config, event_priority + +if TYPE_CHECKING: + from mkdocs.plugins import Files, Page + +logger = logging.getLogger("mkdocs") + +BINDER_BASE_URL = "https://mybinder.org/v2" +BINDER_LOGO_WITH_CAPTION = "[![Binder](https://mybinder.org/badge_logo.svg)]" +BINDER_LOGO_WITHOUT_CAPTION = "[![](https://mybinder.org/badge_logo.svg)]" +BINDER_LINK_PATTERN = re.compile( + re.escape(BINDER_LOGO_WITH_CAPTION) + r"\(" + re.escape(BINDER_BASE_URL) + r".*\)" +) + +branch_name: Optional[str] = None + + +@event_priority(-50) +def on_startup(command: Literal["build", "gh-deploy", "serve"], dirty: bool) -> None: + global branch_name + try: + branch_name = Repo().active_branch.name + logger.info(f"Found branch name using git: {branch_name}") + except TypeError: + branch_name = os.getenv("GITHUB_REF", "develop").split("/")[-1] + logger.info(f"Found branch name from environment variable: {branch_name}") + + +@event_priority(-50) +def on_page_markdown( + markdown: str, page: "Page", config: Config, files: "Files" +) -> Optional[str]: + if "examples" not in page.url: + return + logger.info( + f"Replacing binder link with link to notebook in repository for notebooks in {page.url}" + ) + repo_name = config["repo_name"] + root_dir = Path(config["docs_dir"]).parent + notebooks_dir = root_dir / "notebooks" + notebook_filename = Path(page.file.src_path).name + file_path = (notebooks_dir / notebook_filename).relative_to(root_dir) + url_path = f"%2Ftree%2F{file_path}" + binder_url = f"{BINDER_BASE_URL}/gh/{repo_name}/{branch_name}?urlpath={url_path}" + binder_link = f"{BINDER_LOGO_WITHOUT_CAPTION}({binder_url})" + logger.info(f"New binder url: {binder_url}") + logger.info(f"Using regex: {BINDER_LINK_PATTERN}") + markdown = re.sub(BINDER_LINK_PATTERN, binder_link, markdown) + return markdown diff --git a/build_scripts/release-version.sh b/build_scripts/release-version.sh index 2d4f671b7..e57d860a6 100755 --- a/build_scripts/release-version.sh +++ b/build_scripts/release-version.sh @@ -239,7 +239,7 @@ echo "🔨 Merging release branch into master" git checkout master git pull --ff-only "$REMOTE" master git merge --no-ff -X theirs "$RELEASE_BRANCH" -git tag -a "$RELEASE_TAG" -m"Release $RELEASE_VERSION" +git tag -a "$RELEASE_TAG" -m "Release $RELEASE_VERSION" git push --follow-tags "$REMOTE" master echo "🏷️ Bumping to next patch version" diff --git a/build_scripts/update_docs.py b/build_scripts/update_docs.py deleted file mode 100644 index 98f84f47e..000000000 --- a/build_scripts/update_docs.py +++ /dev/null @@ -1,241 +0,0 @@ -#!/usr/bin/env python3 -""" -This script walks through the python source files and creates documentation in .rst format which can -then be compiled with Sphinx. It is suitable for a standard repository layout src/ as well as for -a repo containing multiple packages src/, ..., src/. -""" -import argparse -import logging -import os -import shutil -from typing import Optional - -log = logging.getLogger(__name__) - - -def module_template(module_qualname: str): - module_name = module_qualname.split(".")[-1] - title = module_name.replace("_", r"\_") - template = f"""{title} -{"="*len(title)} - -.. automodule:: {module_qualname} - :members: - :undoc-members: - - ---- - -.. footbibliography:: - -""" - return template - - -def package_template(package_qualname: str, *, add_toctree: bool = True): - package_name = package_qualname.split(".")[-1] - title = package_name.replace("_", r"\_") - template = f"""{title} -{"="*len(title)} - -.. automodule:: {package_qualname} - :members: - :undoc-members: -""" - if add_toctree: - template += f""" -.. rubric:: Modules in this package - -.. toctree:: - :glob: - - {package_name}/* - -""" - return template - - -def index_template(package_name: str, title: Optional[str] = None) -> str: - if title is None: - title = package_name.replace("_", r"\_") - template = f"""{title} -{"="*len(title)} - -.. automodule:: {package_name} - :members: - :undoc-members: - -.. toctree:: - :glob: - - * -""" - return template - - -def write_to_file(content: str, path: str): - os.makedirs(os.path.dirname(path), exist_ok=True) - with open(path, "w") as f: - f.write(content) - os.chmod(path, 0o666) - - -def make_rst( - src_root: str = "src", - docs_root: str = "docs", - clean: bool = False, - overwrite: bool = False, - only_update: bool = True, -): - """Creates / updates documentation in form of rst files for modules and - packages. Does not delete any existing rst files if clean and overwrite are - False. This method should be executed from the project's top-level - directory. - - :param src_root: path to project's src directory that contains all packages, - usually src. Most projects will only need one top-level package, then - your layout typically should be src/. - :param docs_root: path to the project's docs directory containing the - `conf.py` and the top level `index.rst`. - :param clean: whether to completely clean the docs target directories - beforehand, removing any existing files. - :param overwrite: whether to overwrite existing rst files. This should be - used with caution as it will delete all manual changes to documentation - files. - :param only_update: set to True if rst files should only be recreated if - their modification date is earlier than that of the modules. - :return: - """ - docs_root = os.path.abspath(docs_root) - src_root = os.path.abspath(src_root) - - for top_level_package_name in os.listdir(src_root): - top_level_package_dir = os.path.join(src_root, top_level_package_name) - # skipping things in src that are not packages, like .egg files - if ( - not os.path.isdir(top_level_package_dir) - or "." in top_level_package_name - or top_level_package_name.startswith("_") - ): - continue - - log.info( - f"Generating documentation for top-level package {top_level_package_name}" - ) - top_level_package_docs_dir = os.path.join(docs_root, top_level_package_name) - if clean and os.path.isdir(top_level_package_docs_dir): - log.info(f"Deleting {top_level_package_docs_dir} since clean=True") - shutil.rmtree(top_level_package_docs_dir) - - index_rst_path = os.path.join(docs_root, top_level_package_name, "index.rst") - log.info(f"Creating {index_rst_path}") - write_to_file( - index_template(top_level_package_name, "API Reference"), index_rst_path - ) - - for root, dirnames, filenames in os.walk(top_level_package_dir): - if os.path.basename(root).startswith("_"): - log.debug(f"Skipping doc generation in {root}") - continue - - base_package_relpath = os.path.relpath(root, start=top_level_package_dir) - base_package_qualname = os.path.relpath(root, start=src_root).replace( - os.path.sep, "." - ) - - for dirname in dirnames: - if not dirname.startswith("_"): - package_qualname = f"{base_package_qualname}.{dirname}" - package_rst_path = os.path.abspath( - os.path.join( - top_level_package_docs_dir, - base_package_relpath, - f"{dirname}.rst", - ) - ) - package_path = os.path.join(root, dirname) - add_toctree = True - package_dir_content = list( - filter(lambda x: x != "__pycache__", os.listdir(package_path)) - ) - if package_dir_content == ["__init__.py"]: - add_toctree = False - - try: - dir_path = os.path.join(root, dirname) - if only_update and os.path.getmtime( - dir_path - ) <= os.path.getmtime(package_rst_path): - log.info( - f"Package {dir_path} hasn't been modified, skipping." - ) - continue - except FileNotFoundError: - pass - - log.info(f"Writing package documentation to {package_rst_path}") - write_to_file( - package_template(package_qualname, add_toctree=add_toctree), - package_rst_path, - ) - - for filename in filenames: - base_name, ext = os.path.splitext(filename) - if ext == ".py" and not filename.startswith("_"): - module_qualname = f"{base_package_qualname}.{filename[:-3]}" - module_rst_path = os.path.abspath( - os.path.join( - top_level_package_docs_dir, - base_package_relpath, - f"{base_name}.rst", - ) - ) - if os.path.exists(module_rst_path) and not overwrite: - log.debug(f"{module_rst_path} already exists, skipping it") - - try: - file_path = os.path.join(root, filename) - if only_update and os.path.getmtime( - file_path - ) <= os.path.getmtime(module_rst_path): - log.info( - f"Module {file_path} hasn't been modified, skipping." - ) - continue - except FileNotFoundError: - pass - - log.info(f"Writing module documentation to {module_rst_path}") - write_to_file(module_template(module_qualname), module_rst_path) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser( - description="A tool to create RST files for all source files in the library", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - ) - parser.add_argument( - "-s", "--source", help="Root of the sources", type=str, default="src" - ) - - parser.add_argument( - "-d", "--doc", help="Root of the documentation", type=str, default="docs" - ) - - parser.add_argument( - "-u", - "--update", - help="Whether to only update rst files if sources are newer", - action="store_true", - ) - parser.add_argument( - "-c", "--clean", help="Wipe docs before starting", action="store_true" - ) - args = parser.parse_args() - - logging.basicConfig(level=logging.INFO) - make_rst( - src_root=args.source, - docs_root=args.doc, - clean=args.clean, - only_update=args.update, - ) diff --git a/docs/.gitignore b/docs/.gitignore index 9c4a2f7cd..e9ceace7b 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1,6 +1,9 @@ -_build +# Notebooks *.ipynb # Generated Documentation from Code pydvl/* !pydvl/index.rst + +# Changelog +CHANGELOG.md diff --git a/docs/10-getting-started.rst b/docs/10-getting-started.rst deleted file mode 100644 index 16b58185d..000000000 --- a/docs/10-getting-started.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. _getting started: - -=============== -Getting started -=============== - -.. warning:: - Make sure you have read :ref:`the installation instructions - ` before using the library. In particular read about how - caching and parallelization work, since they require additional setup. - -pyDVL aims to be a repository of production-ready, reference implementations of -algorithms for data valuation and influence functions. You can read: - -* :ref:`data valuation` for key objects and usage patterns for Shapley value - computation and related methods. -* :ref:`influence` for instructions on how to compute influence functions (still - in a pre-alpha state) - -We only briefly introduce key concepts in the documentation. For a thorough -introduction and survey of the field, we refer to **the upcoming review** at the -:tfl:`TransferLab website `. - -Running the examples -==================== - -If you are somewhat familiar with the concepts of data valuation, you can start -by browsing our worked-out examples illustrating pyDVL's capabilities either: - -- :ref:`In this documentation`. -- Using `binder `_ notebooks, deployed from each - example's page. -- Locally, by starting a jupyter server at the root of the project. You will - have to install jupyter first manually since it's not a dependency of the - library. diff --git a/docs/20-install.rst b/docs/20-install.rst deleted file mode 100644 index e803487aa..000000000 --- a/docs/20-install.rst +++ /dev/null @@ -1,78 +0,0 @@ -.. _pyDVL Installation: - -================ -Installing pyDVL -================ - -To install the latest release use: - -.. code-block:: shell - - pip install pyDVL - -To use all features of influence functions use instead: - -.. code-block:: shell - - pip install pyDVL[influence] - -This includes a dependency on `PyTorch `_ and thus is left -out by default. - -In order to check the installation you can use: - -.. code-block:: shell - - python -c "import pydvl; print(pydvl.__version__)" - -You can also install the latest development version from -`TestPyPI `_: - -.. code-block:: shell - - pip install pyDVL --index-url https://test.pypi.org/simple/ - -Dependencies -============ - -pyDVL requires Python >= 3.8, `Memcached `_ for caching -and `ray `_ for parallelization. Additionally, -:mod:`Influence functions` requires PyTorch (see -:ref:`pyDVL Installation`). - -ray is used to distribute workloads both locally and across nodes. Please follow -the instructions in their documentation for installation. - -.. _caching setup: - -Setting up the cache -==================== - -memcached is an in-memory key-value store accessible over the network. pyDVL -uses it to cache certain results and speed-up the computations. You can either -install it as a package or run it inside a docker container (the simplest). For -installation instructions, refer to `Getting started -`_ in memcached's -wiki. Then you can run it with: - -.. code-block:: shell - - memcached -u user - -To run memcached inside a container in daemon mode instead, do: - -.. code-block:: shell - - docker container run -d --rm -p 11211:11211 memcached:latest - -.. warning:: - To read more about caching and how it might affect your usage, in particular - about cache reuse and its pitfalls, please the documentation for the module - :mod:`pydvl.utils.caching`. - -What's next -=========== - -- Read on :ref:`data valuation`. -- Read on :ref:`influence functions `. -- Browse the :ref:`examples`. diff --git a/docs/30-data-valuation.rst b/docs/30-data-valuation.rst deleted file mode 100644 index b2ca10224..000000000 --- a/docs/30-data-valuation.rst +++ /dev/null @@ -1,736 +0,0 @@ -.. _data valuation: - -===================== -Computing data values -===================== - -**Data valuation** is the task of assigning a number to each element of a -training set which reflects its contribution to the final performance of a -model trained on it. This value is not an intrinsic property of the element of -interest, but a function of three factors: - -1. The dataset $D$, or more generally, the distribution it was sampled - from (with this we mean that *value* would ideally be the (expected) - contribution of a data point to any random set $D$ sampled from the same - distribution). - -2. The algorithm $\mathcal{A}$ mapping the data $D$ to some estimator $f$ - in a model class $\mathcal{F}$. E.g. MSE minimization to find the parameters - of a linear model. - -3. The performance metric of interest $u$ for the problem. E.g. the $R^2$ - score or the negative MSE over a test set. - -pyDVL collects algorithms for the computation of data values in this sense, -mostly those derived from cooperative game theory. The methods can be found in -the package :mod:`~pydvl.value`, with support from modules -:mod:`pydvl.utils.dataset` and :mod:`~pydvl.utils.utility`, as detailed below. - -.. warning:: - Be sure to read the section on - :ref:`the difficulties using data values `. - -Creating a Dataset -================== - -The first item in the tuple $(D, \mathcal{A}, u)$ characterising data value is -the dataset. The class :class:`~pydvl.utils.dataset.Dataset` is a simple -convenience wrapper for the train and test splits that is used throughout pyDVL. -The test set will be used to evaluate a scoring function for the model. - -It can be used as follows: - -.. code-block:: python - - import numpy as np - from pydvl.utils import Dataset - from sklearn.model_selection import train_test_split - - X, y = np.arange(100).reshape((50, 2)), np.arange(50) - X_train, X_test, y_train, y_test = train_test_split( - X, y, test_size=0.5, random_state=16 - ) - - dataset = Dataset(X_train, X_test, y_train, y_test) - -It is also possible to construct Datasets from sklearn toy datasets for -illustrative purposes using :meth:`~pydvl.utils.dataset.Dataset.from_sklearn`. - -Grouping data -^^^^^^^^^^^^^ - -Be it because data valuation methods are computationally very expensive, or -because we are interested in the groups themselves, it can be often useful or -necessary to group samples so as to valuate them together. -:class:`~pydvl.utils.dataset.GroupedDataset` provides an alternative to -`Dataset` with the same interface which allows this. - -You can see an example in action in the -:doc:`Spotify notebook `, but here's a simple -example grouping a pre-existing `Dataset`. First we construct an array mapping -each index in the dataset to a group, then use -:meth:`~pydvl.utils.dataset.GroupedDataset.from_dataset`: - -.. code-block:: python - - # Randomly assign elements to any one of num_groups: - data_groups = np.random.randint(0, num_groups, len(dataset)) - grouped_dataset = GroupedDataset.from_dataset(dataset, data_groups) - grouped_utility = Utility(model=model, data=grouped_dataset) - -Creating a Utility -================== - -In pyDVL we have slightly overloaded the name "utility" and use it to refer to -an object that keeps track of all three items in $(D, \mathcal{A}, u)$. This -will be an instance of :class:`~pydvl.utils.utility.Utility` which, as mentioned, -is a convenient wrapper for the dataset, model and scoring function used for -valuation methods. - -Here's a minimal example: - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - import sklearn as sk - - dataset = Dataset.from_sklearn(sk.datasets.load_iris()) - model = sk.svm.SVC() - utility = Utility(model, dataset) - -The object `utility` is a callable that data valuation methods will execute -with different subsets of training data. Each call will retrain the model on a -subset and evaluate it on the test data using a scoring function. By default, -:class:`~pydvl.utils.utility.Utility` will use `model.score()`, but it is -possible to use any scoring function (greater values must be better). In -particular, the constructor accepts the same types as argument as sklearn's -`cross_validate() `_: -a string, a scorer callable or `None` for the default. - -.. code-block:: python - - utility = Utility(model, dataset, "explained_variance") - - -`Utility` will wrap the `fit()` method of the model to cache its results. This -greatly reduces computation times of Monte Carlo methods. Because of how caching -is implemented, it is important not to reuse `Utility` objects for different -datasets. You can read more about :ref:`caching setup` in the installation guide -and the documentation of the :mod:`pydvl.utils.caching` module. - -Using custom scorers -^^^^^^^^^^^^^^^^^^^^ - -The `scoring` argument of :class:`~pydvl.utils.utility.Utility` can be used to -specify a custom :class:`~pydvl.utils.utility.Scorer` object. This is a simple -wrapper for a callable that takes a model, and test data and returns a score. - -More importantly, the object provides information about the range of the score, -which is used by some methods by estimate the number of samples necessary, and -about what default value to use when the model fails to train. - -.. note:: - The most important property of a `Scorer` is its default value. Because many - models will fail to fit on small subsets of the data, it is important to - provide a sensible default value for the score. - -It is possible to skip the construction of the :class:`~pydvl.utils.utility.Scorer` -when constructing the `Utility` object. The two following calls are equivalent: - -.. code-block:: python - - utility = Utility( - model, dataset, "explained_variance", score_range=(-np.inf, 1), default_score=0.0 - ) - utility = Utility( - model, dataset, Scorer("explained_variance", range=(-np.inf, 1), default=0.0) - ) - -Learning the utility -^^^^^^^^^^^^^^^^^^^^ - -Because each evaluation of the utility entails a full retrain of the model with -a new subset of the training set, it is natural to try to learn this mapping -from subsets to scores. This is the idea behind **Data Utility Learning (DUL)** -(:footcite:t:`wang_improving_2022`) and in pyDVL it's as simple as wrapping the -`Utility` inside :class:`~pydvl.utils.utility.DataUtilityLearning`: - -.. code-block::python - - from pydvl.utils import Utility, DataUtilityLearning, Dataset - from sklearn.linear_model import LinearRegression, LogisticRegression - from sklearn.datasets import load_iris - dataset = Dataset.from_sklearn(load_iris()) - u = Utility(LogisticRegression(), dataset, enable_cache=False) - training_budget = 3 - wrapped_u = DataUtilityLearning(u, training_budget, LinearRegression()) - # First 3 calls will be computed normally - for i in range(training_budget): - _ = wrapped_u((i,)) - # Subsequent calls will be computed using the fit model for DUL - wrapped_u((1, 2, 3)) - -As you can see, all that is required is a model to learn the utility itself and -the fitting and using of the learned model happens behind the scenes. - -There is a longer example with an investigation of the results achieved by DUL -in :doc:`a dedicated notebook `. - -.. _LOO: - -Leave-One-Out values -==================== - -The Leave-One-Out method is a simple approach that assigns each sample its -*marginal utility* as value: - -$$v_u(x_i) = u(D) − u(D \setminus \{x_i\}).$$ - -For the purposes of data valuation, this is rarely useful beyond serving as a -baseline for benchmarking. One particular weakness is that it does not -necessarily correlate with an intrinsic value of a sample: since it is a -marginal utility, it is affected by the "law" of diminishing returns. Often, the -training set is large enough for a single sample not to have any significant -effect on training performance, despite any qualities it may possess. Whether -this is indicative of low value or not depends on each one's goals and -definitions, but other methods are typically preferable. - -.. code-block:: python - - from pydvl.value.loo.naive import naive_loo - utility = Utility(...) - values = naive_loo(utility) - -The return value of all valuation functions is an object of type -:class:`~pydvl.value.result.ValuationResult`. This can be iterated over, -indexed with integers, slices and Iterables, as well as converted to a -`pandas DataFrame `_. - -.. _Shapley: - -Shapley values -============== - -The Shapley method is an approach to compute data values originating in -cooperative game theory. Shapley values are a common way of assigning payoffs to -each participant in a cooperative game (i.e. one in which players can form -coalitions) in a way that ensures that certain axioms are fulfilled. - -pyDVL implements several methods for the computation and approximation of -Shapley values. They can all be accessed via the facade function -:func:`~pydvl.value.shapley.compute_shapley_values`. The supported methods are -enumerated in :class:`~pydvl.value.shapley.ShapleyMode`. - - -Combinatorial Shapley -^^^^^^^^^^^^^^^^^^^^^ - -The first algorithm is just a verbatim implementation of the definition. As such -it returns as exact a value as the utility function allows (see what this means -in :ref:`problems of data values`). - -The value $v$ of the $i$-th sample in dataset $D$ wrt. utility $u$ is computed -as a weighted sum of its marginal utility wrt. every possible coalition of -training samples within the training set: - -$$ -v_u(x_i) = \frac{1}{n} \sum_{S \subseteq D \setminus \{x_i\}} -\binom{n-1}{ | S | }^{-1} [u(S \cup \{x_i\}) − u(S)] -,$$ - -.. code-block:: python - - from pydvl.value import compute_shapley_value - - utility = Utility(...) - values = compute_shapley_values(utility, mode="combinatorial_exact") - df = values.to_dataframe(column='value') - -We can convert the return value to a -`pandas DataFrame `_ -and name the column with the results as `value`. Please refer to the -documentation in :mod:`pydvl.value.shapley` and -:class:`~pydvl.value.result.ValuationResult` for more information. - -Monte Carlo Combinatorial Shapley -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Because the number of subsets $S \subseteq D \setminus \{x_i\}$ is -$2^{ | D | - 1 }$, one typically must resort to approximations. The simplest -one is done via Monte Carlo sampling of the powerset $\mathcal{P}(D)$. In pyDVL -this simple technique is called "Monte Carlo Combinatorial". The method has very -poor converge rate and others are preferred, but if desired, usage follows the -same pattern: - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value import compute_shapley_values - - model = ... - data = Dataset(...) - utility = Utility(model, data) - values = compute_shapley_values( - utility, mode="combinatorial_montecarlo", done=MaxUpdates(1000) - ) - df = values.to_dataframe(column='cmc') - -The DataFrames returned by most Monte Carlo methods will contain approximate -standard errors as an additional column, in this case named `cmc_stderr`. - -Note the usage of the object :class:`~pydvl.value.stopping.MaxUpdates` as the -stop condition. This is an instance of a -:class:`~pydvl.value.stopping.StoppingCriterion`. Other examples are -:class:`~pydvl.value.stopping.MaxTime` and :class:`~pydvl.value.stopping.StandardError`. - - -Owen sampling -^^^^^^^^^^^^^ - -**Owen Sampling** (:footcite:t:`okhrati_multilinear_2021`) is a practical -algorithm based on the combinatorial definition. It uses a continuous extension -of the utility from $\{0,1\}^n$, where a 1 in position $i$ means that sample -$x_i$ is used to train the model, to $[0,1]^n$. The ensuing expression for -Shapley value uses integration instead of discrete weights: - -$$ -v_u(i) = \int_0^1 \mathbb{E}_{S \sim P_q(D_{\backslash \{ i \}})} -[u(S \cup {i}) - u(S)] -.$$ - -Using Owen sampling follows the same pattern as every other method for Shapley -values in pyDVL. First construct the dataset and utility, then call -:func:`~pydvl.value.shapley.compute_shapley_values`: - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value import compute_shapley_values - - model = ... - dataset = Dataset(...) - utility = Utility(data, model) - values = compute_shapley_values( - u=utility, mode="owen", n_iterations=4, max_q=200 - ) - -There are more details on Owen sampling, and its variant *Antithetic Owen -Sampling* in the documentation for the function doing the work behind the scenes: -:func:`~pydvl.value.shapley.montecarlo.owen_sampling_shapley`. - -Note that in this case we do not pass a -:class:`~pydvl.value.stopping.StoppingCriterion` to the function, but instead -the number of iterations and the maximum number of samples to use in the -integration. - -Permutation Shapley -^^^^^^^^^^^^^^^^^^^ - -An equivalent way of computing Shapley values (``ApproShapley``) appeared in -:footcite:t:`castro_polynomial_2009` and is the basis for the method most often -used in practice. It uses permutations over indices instead of subsets: - -$$ -v_u(x_i) = \frac{1}{n!} \sum_{\sigma \in \Pi(n)} -[u(\sigma_{:i} \cup \{i\}) − u(\sigma_{:i})] -,$$ - -where $\sigma_{:i}$ denotes the set of indices in permutation sigma before the -position where $i$ appears. To approximate this sum (which has $\mathcal{O}(n!)$ -terms!) one uses Monte Carlo sampling of permutations, something which has -surprisingly low sample complexity. One notable difference wrt. the -combinatorial approach above is that the approximations always fulfill the -efficiency axiom of Shapley, namely $\sum_{i=1}^n \hat{v}_i = u(D)$ (see -:footcite:t:`castro_polynomial_2009`, Proposition 3.2). - -By adding early stopping, the result is the so-called **Truncated Monte Carlo -Shapley** (:footcite:t:`ghorbani_data_2019`), which is efficient enough to be -useful in applications. - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value import compute_shapley_values - - model = ... - data = Dataset(...) - utility = Utility(model, data) - values = compute_shapley_values( - u=utility, mode="truncated_montecarlo", done=MaxUpdates(1000) - ) - - -Exact Shapley for KNN -^^^^^^^^^^^^^^^^^^^^^ - -It is possible to exploit the local structure of K-Nearest Neighbours to reduce -the amount of subsets to consider: because no sample besides the K closest -affects the score, most are irrelevant and it is possible to compute a value in -linear time. This method was introduced by :footcite:t:`jia_efficient_2019a`, -and can be used in pyDVL with: - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value import compute_shapley_values - from sklearn.neighbors import KNeighborsClassifier - - model = KNeighborsClassifier(n_neighbors=5) - data = Dataset(...) - utility = Utility(model, data) - values = compute_shapley_values(u=utility, mode="knn") - - -Group testing -^^^^^^^^^^^^^ - -An alternative approach introduced in :footcite:t:`jia_efficient_2019a` -first approximates the differences of values with a Monte Carlo sum. With - -$$\hat{\Delta}_{i j} \approx v_i - v_j,$$ - -one then solves the following linear constraint satisfaction problem (CSP) to -infer the final values: - -$$ -\begin{array}{lll} -\sum_{i = 1}^N v_i & = & U (D)\\ -| v_i - v_j - \hat{\Delta}_{i j} | & \leqslant & -\frac{\varepsilon}{2 \sqrt{N}} -\end{array} -$$ - -.. warning:: - We have reproduced this method in pyDVL for completeness and benchmarking, - but we don't advocate its use because of the speed and memory cost. Despite - our best efforts, the number of samples required in practice for convergence - can be several orders of magnitude worse than with e.g. Truncated Monte Carlo. - Additionally, the CSP can sometimes turn out to be infeasible. - -Usage follows the same pattern as every other Shapley method, but with the -addition of an ``epsilon`` parameter required for the solution of the CSP. It -should be the same value used to compute the minimum number of samples required. -This can be done with :func:`~pydvl.value.shapley.gt.num_samples_eps_delta`, but -note that the number returned will be huge! In practice, fewer samples can be -enough, but the actual number will strongly depend on the utility, in particular -its variance. - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value import compute_shapley_values - - model = ... - data = Dataset(...) - utility = Utility(model, data, score_range=(_min, _max)) - min_iterations = num_samples_eps_delta(epsilon, delta, n, utility.score_range) - values = compute_shapley_values( - u=utility, mode="group_testing", n_iterations=min_iterations, eps=eps - ) - -.. _Least Core: - -Core values -=========== - -The Shapley values define a fair way to distribute payoffs amongst all -participants when they form a grand coalition. But they do not consider -the question of stability: under which conditions do all participants -form the grand coalition? Would the participants be willing to form -the grand coalition given how the payoffs are assigned, -or would some of them prefer to form smaller coalitions? - -The Core is another approach to computing data values originating -in cooperative game theory that attempts to ensure this stability. -It is the set of feasible payoffs that cannot be improved upon -by a coalition of the participants. - -It satisfies the following 2 properties: - -- **Efficiency**: - The payoffs are distributed such that it is not possible - to make any participant better off - without making another one worse off. - $$\sum_{x_i\in D} v_u(x_i) = u(D)\,$$ - -- **Coalitional rationality**: - The sum of payoffs to the agents in any coalition S is at - least as large as the amount that these agents could earn by - forming a coalition on their own. - $$\sum_{x_i\in S} v_u(x_i) \geq u(S), \forall S \subset D\,$$ - -The second property states that the sum of payoffs to the agents -in any subcoalition $S$ is at least as large as the amount that -these agents could earn by forming a coalition on their own. - -Least Core values -^^^^^^^^^^^^^^^^^ - -Unfortunately, for many cooperative games the Core may be empty. -By relaxing the coalitional rationality property by a subsidy $e \gt 0$, -we are then able to find approximate payoffs: - -$$ -\sum_{x_i\in S} v_u(x_i) + e \geq u(S), \forall S \subset D, S \neq \emptyset \ -,$$ - -The least core value $v$ of the $i$-th sample in dataset $D$ wrt. -utility $u$ is computed by solving the following Linear Program: - -$$ -\begin{array}{lll} -\text{minimize} & e & \\ -\text{subject to} & \sum_{x_i\in D} v_u(x_i) = u(D) & \\ -& \sum_{x_i\in S} v_u(x_i) + e \geq u(S) &, \forall S \subset D, S \neq \emptyset \\ -\end{array} -$$ - -Exact Least Core ----------------- - -This first algorithm is just a verbatim implementation of the definition. -As such it returns as exact a value as the utility function allows -(see what this means in :ref:`problems of data values`). - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value import compute_least_core_values - - model = ... - dataset = Dataset(...) - utility = Utility(data, model) - values = compute_least_core_values(utility, mode="exact") - -Monte Carlo Least Core ----------------------- - -Because the number of subsets $S \subseteq D \setminus \{x_i\}$ is -$2^{ | D | - 1 }$, one typically must resort to approximations. - -The simplest approximation consists in using a fraction of all subsets for the -constraints. :footcite:t:`yan_if_2021` show that a quantity of order -$\mathcal{O}((n - \log \Delta ) / \delta^2)$ is enough to obtain a so-called -$\delta$-*approximate least core* with high probability. I.e. the following -property holds with probability $1-\Delta$ over the choice of subsets: - -$$ -\mathbb{P}_{S\sim D}\left[\sum_{x_i\in S} v_u(x_i) + e^{*} \geq u(S)\right] -\geq 1 - \delta, -$$ - -where $e^{*}$ is the optimal least core subsidy. - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value import compute_least_core_values - - model = ... - dataset = Dataset(...) - n_iterations = ... - utility = Utility(data, model) - values = compute_least_core_values( - utility, mode="montecarlo", n_iterations=n_iterations - ) - -.. note:: - - Although any number is supported, it is best to choose ``n_iterations`` to be - at least equal to the number of data points. - -Because computing the Least Core values requires the solution of a linear and a -quadratic problem *after* computing all the utility values, we offer the -possibility of splitting the latter from the former. This is useful when running -multiple experiments: use -:func:`~pydvl.value.least_core.montecarlo.mclc_prepare_problem` to prepare a -list of problems to solve, then solve them in parallel with -:func:`~pydvl.value.least_core.common.lc_solve_problems`. - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value.least_core import mclc_prepare_problem, lc_solve_problems - - model = ... - dataset = Dataset(...) - n_iterations = ... - utility = Utility(data, model) - n_experiments = 10 - problems = [mclc_prepare_problem(utility, n_iterations=n_iterations) - for _ in range(n_experiments)] - values = lc_solve_problems(problems) - - -Semi-values -=========== - -Shapley values are a particular case of a more general concept called semi-value, -which is a generalization to different weighting schemes. A **semi-value** is -any valuation function with the form: - -$$ -v\_\text{semi}(i) = \sum_{i=1}^n w(k) -\sum_{S \subset D\_{-i}^{(k)}} [U(S\_{+i})-U(S)], -$$ - -where the coefficients $w(k)$ satisfy the property: - -$$\sum_{k=1}^n w(k) = 1.$$ - -Two instances of this are **Banzhaf indices** (:footcite:t:`wang_data_2022`), -and **Beta Shapley** (:footcite:t:`kwon_beta_2022`), with better numerical and -rank stability in certain situations. - -.. note:: - - Shapley values are a particular case of semi-values and can therefore also be - computed with the methods described here. However, as of version 0.6.0, we - recommend using :func:`~pydvl.value.shapley.compute_shapley_values` instead, - in particular because it implements truncated Monte Carlo sampling for faster - computation. - - -Beta Shapley -^^^^^^^^^^^^ - -For some machine learning applications, where the utility is typically the -performance when trained on a set $S \subset D$, diminishing returns are often -observed when computing the marginal utility of adding a new data point. - -Beta Shapley is a weighting scheme that uses the Beta function to place more -weight on subsets deemed to be more informative. The weights are defined as: - -$$ -w(k) := \frac{B(k+\beta, n-k+1+\alpha)}{B(\alpha, \beta)}, -$$ - -where $B$ is the `Beta function `_, -and $\alpha$ and $\beta$ are parameters that control the weighting of the -subsets. Setting both to 1 recovers Shapley values, and setting $\alpha = 1$, and -$\beta = 16$ is reported in :footcite:t:`kwon_beta_2022` to be a good choice for -some applications. See however :ref:`banzhaf indices` for an alternative choice -of weights which is reported to work better. - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value import compute_semivalues - - model = ... - data = Dataset(...) - utility = Utility(model, data) - values = compute_semivalues( - u=utility, mode="beta_shapley", done=MaxUpdates(500), alpha=1, beta=16 - ) - -.. _banzhaf indices: - -Banzhaf indices -^^^^^^^^^^^^^^^ - -As noted below in :ref:`problems of data values`, the Shapley value can be very -sensitive to variance in the utility function. For machine learning applications, -where the utility is typically the performance when trained on a set $S \subset -D$, this variance is often largest for smaller subsets $S$. It is therefore -reasonable to try reducing the relative contribution of these subsets with -adequate weights. - -One such choice of weights is the Banzhaf index, which is defined as the -constant: - -$$w(k) := 2^{n-1},$$ - -for all set sizes $k$. The intuition for picking a constant weight is that for -any choice of weight function $w$, one can always construct a utility with -higher variance where $w$ is greater. Therefore, in a worst-case sense, the best -one can do is to pick a constant weight. - -The authors of :footcite:t:`wang_data_2022` show that Banzhaf indices are more -robust to variance in the utility function than Shapley and Beta Shapley values. - -.. code-block:: python - - from pydvl.utils import Dataset, Utility - from pydvl.value import compute_semivalues - - model = ... - data = Dataset(...) - utility = Utility(model, data) - values = compute_semivalues( u=utility, mode="banzhaf", done=MaxUpdates(500)) - - -.. _problems of data values: - -Problems of data values -======================= - -There are a number of factors that affect how useful values can be for your -project. In particular, regression can be especially tricky, but the particular -nature of every (non-trivial) ML problem can have an effect: - -* **Unbounded utility**: Choosing a scorer for a classifier is simple: accuracy - or some F-score provides a bounded number with a clear interpretation. However, - in regression problems most scores, like $R^2$, are not bounded because - regressors can be arbitrarily bad. This leads to great variability in the - utility for low sample sizes, and hence unreliable Monte Carlo approximations - to the values. Nevertheless, in practice it is only the ranking of samples - that matters, and this tends to be accurate (wrt. to the true ranking) despite - inaccurate values. - - pyDVL offers a dedicated :func:`function composition - ` for scorer functions which can be used to - squash a score. The following is defined in module :mod:`~pydvl.utils.scorer`: - - .. code-block:: python - - def sigmoid(x: float) -> float: - return float(1 / (1 + np.exp(-x))) - - squashed_r2 = compose_score("r2", sigmoid, "squashed r2") - - squashed_variance = compose_score( - "explained_variance", sigmoid, "squashed explained variance" - ) - - These squashed scores can prove useful in regression problems, but they can - also introduce issues in the low-value regime. - -* **High variance utility**: Classical applications of game theoretic value - concepts operate with deterministic utilities, but in ML we use an evaluation - of the model on a validation set as a proxy for the true risk. Even if the - utility *is* bounded, if it has high variance then values will also have high - variance, as will their Monte Carlo estimates. One workaround in pyDVL is to - configure the caching system to allow multiple evaluations of the utility for - every index set. A moving average is computed and returned once the standard - error is small, see :class:`~pydvl.utils.config.MemcachedConfig`. - - :footcite:t:`wang_data_2022` prove that by relaxing one of the Shapley axioms - and considering the general class of semi-values, of which Shapley is an - instance, one can prove that a choice of constant weights is the best one can - do in a utility-agnostic setting. So-called *Data Banzhaf* is on our to-do - list! - -* **Data set size**: Computing exact Shapley values is NP-hard, and Monte Carlo - approximations can converge slowly. Massive datasets are thus impractical, at - least with current techniques. A workaround is to group samples and investigate - their value together. In pyDVL you can do this using - :class:`~pydvl.utils.dataset.GroupedDataset`. There is a fully worked-out - :doc:`example here `. Some algorithms also - provide different sampling strategies to reduce the variance, but due to a - no-free-lunch-type theorem, no single strategy can be optimal for all - utilities. - -* **Model size**: Since every evaluation of the utility entails retraining the - whole model on a subset of the data, large models require great amounts of - computation. But also, they will effortlessly interpolate small to medium - datasets, leading to great variance in the evaluation of performance on the - dedicated validation set. One mitigation for this problem is cross-validation, - but this would incur massive computational cost. As of v.0.3.0 there are no - facilities in pyDVL for cross-validating the utility (note that this would - require cross-validating the whole value computation). - -References -========== - -.. footbibliography:: diff --git a/docs/40-influence.rst b/docs/40-influence.rst deleted file mode 100644 index d1a43017a..000000000 --- a/docs/40-influence.rst +++ /dev/null @@ -1,116 +0,0 @@ -.. _influence: - -========================== -Computing influence values -========================== - - -.. warning:: - Much of the code in the package :mod:`pydvl.influence` is experimental or - untested. Package structure and basic API are bound to change before v1.0.0 - -.. todo:: - - This section needs rewriting: - - Introduce some theory - - Explain how the methods differ - - Add example for `TwiceDifferentiable` - - Improve uninformative examples - -There are two ways to compute influences. For linear regression, the influences -can be computed analytically. For more general models or loss functions, one can -implement the :class:`TwiceDifferentiable` protocol, which provides the required -methods for computing the influences. - -pyDVL supports two ways of computing the empirical influence function, namely -up-weighting of samples and perturbation influences. The choice is done by a -parameter in the call to the main entry points, -:func:`~pydvl.influence.linear.compute_linear_influences` and -:func:`~pydvl.influence.compute_influences`. - -Influence for OLS ------------------ -.. warning:: - - This will be deprecated. It makes no sense to have a separate interface for - linear models. - -Because the Hessian of the least squares loss for a regression problem can be -computed analytically, we provide -:func:`~pydvl.influence.linear.compute_linear_influences` as a convenience -function to work with these models. - -.. code-block:: python - - >>> from pydvl.influence.linear import compute_linear_influences - >>> compute_linear_influences( - ... x_train, - ... y_train, - ... x_test, - ... y_test - ... ) - - -This method calculates the influence function for each sample in x_train for a -least squares regression problem. - - -Exact influences using the `TwiceDifferentiable` protocol ---------------------------------------------------------- - -More generally, influences can be computed for any model which implements the -:class:`TwiceDifferentiable` protocol, i.e. which is capable of calculating -second derivative matrix vector products and gradients of the loss evaluated on -training and test samples. - -.. code-block:: python - - >>> from pydvl.influence import influences - >>> compute_influences( - ... model, - ... x_train, - ... y_train, - ... x_test, - ... y_test,, - ... ) - - -Approximate matrix inversion -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Sometimes it is not possible to construct the complete Hessian in memory. In -that case one can use conjugate gradient as a space-efficient approximation to -inverting the full matrix. In pyDVL this can be done with the parameter -`inversion_method` of :func:`~pydvl.influence.compute_influences`: - - -.. code-block:: python - - >>> from pydvl.influence import compute_influences - >>> compute_influences( - ... model, - ... x_train, - ... y_train, - ... x_test, - ... y_test, - ... inversion_method="cg" - ... ) - - -Perturbation influences ------------------------ - -As mentioned, the method of empirical influence computation can be selected -in :func:`~pydvl.influence.compute_influences` with `influence_type`: - -.. code-block:: python - - >>> from pydvl.influence import compute_influences - >>> compute_influences( - ... model, - ... x_train, - ... y_train, - ... x_test, - ... y_test, - ... influence_type="perturbation" - ... ) diff --git a/docs/_ext/copy_notebooks.py b/docs/_ext/copy_notebooks.py deleted file mode 100644 index 84fe3cf2e..000000000 --- a/docs/_ext/copy_notebooks.py +++ /dev/null @@ -1,36 +0,0 @@ -import os -import shutil -from pathlib import Path - -from sphinx.application import Sphinx -from sphinx.config import Config -from sphinx.util import logging - -logger = logging.getLogger(__name__) - - -def copy_notebooks(app: Sphinx, config: Config) -> None: - logger.info("Copying notebooks to examples directory") - root_dir = Path(app.confdir).parent - notebooks_dir = root_dir / "notebooks" - docs_examples_dir = root_dir / "docs" / "examples" - notebook_filepaths = list(notebooks_dir.glob("*.ipynb")) - for notebook in notebook_filepaths: - target_filepath = docs_examples_dir / notebook.name - try: - if os.path.getmtime(notebook) <= os.path.getmtime(target_filepath): - logger.info( - f"Notebook '{os.fspath(notebook)}' hasn't been updated, skipping." - ) - continue - except FileNotFoundError: - pass - logger.info( - f"Copying '{os.fspath(notebook)}' to '{os.fspath(target_filepath)}'" - ) - shutil.copyfile(src=notebook, dst=target_filepath) - logger.info("Finished copying notebooks to examples directory") - - -def setup(app): - app.connect("config-inited", copy_notebooks) diff --git a/docs/assets/elsevier-harvard.csl b/docs/assets/elsevier-harvard.csl new file mode 100644 index 000000000..0ef7b190f --- /dev/null +++ b/docs/assets/elsevier-harvard.csl @@ -0,0 +1,239 @@ + + diff --git a/docs/assets/logo.svg b/docs/assets/logo.svg new file mode 100644 index 000000000..5869662b9 --- /dev/null +++ b/docs/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/material-code.svg b/docs/assets/material-code.svg new file mode 100644 index 000000000..cbbc31424 --- /dev/null +++ b/docs/assets/material-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/material-computer.svg b/docs/assets/material-computer.svg new file mode 100644 index 000000000..74162d034 --- /dev/null +++ b/docs/assets/material-computer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/material-description.svg b/docs/assets/material-description.svg new file mode 100644 index 000000000..904da8a7b --- /dev/null +++ b/docs/assets/material-description.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/material-toolbox.svg b/docs/assets/material-toolbox.svg new file mode 100644 index 000000000..85146d8ac --- /dev/null +++ b/docs/assets/material-toolbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/pydvl.bib b/docs/assets/pydvl.bib new file mode 100644 index 000000000..aa6a206e6 --- /dev/null +++ b/docs/assets/pydvl.bib @@ -0,0 +1,314 @@ +@article{agarwal_secondorder_2017, + title = {Second-{{Order Stochastic Optimization}} for {{Machine Learning}} in {{Linear Time}}}, + author = {Agarwal, Naman and Bullins, Brian and Hazan, Elad}, + date = {2017}, + journaltitle = {Journal of Machine Learning Research}, + shortjournal = {JMLR}, + volume = {18}, + eprint = {1602.03943}, + eprinttype = {arxiv}, + pages = {1--40}, + url = {https://www.jmlr.org/papers/v18/16-491.html}, + abstract = {First-order stochastic methods are the state-of-the-art in large-scale machine learning optimization owing to efficient per-iteration complexity. Second-order methods, while able to provide faster convergence, have been much less explored due to the high cost of computing the second-order information. In this paper we develop second-order stochastic methods for optimization problems in machine learning that match the per-iteration cost of gradient based methods, and in certain settings improve upon the overall running time over popular first-order methods. Furthermore, our algorithm has the desirable property of being implementable in time linear in the sparsity of the input data.}, + langid = {english} +} + +@article{benmerzoug_re_2023, + title = {[{{Re}}] {{If}} You like {{Shapley}}, Then You'll Love the Core}, + author = {Benmerzoug, Anes and Delgado, Miguel de Benito}, + date = {2023-07-31}, + journaltitle = {ReScience C}, + volume = {9}, + number = {2}, + pages = {\#32}, + doi = {10.5281/zenodo.8173733}, + url = {https://zenodo.org/record/8173733}, + urldate = {2023-08-27}, + abstract = {Replication} +} + +@article{castro_polynomial_2009, + title = {Polynomial Calculation of the {{Shapley}} Value Based on Sampling}, + author = {Castro, Javier and Gómez, Daniel and Tejada, Juan}, + date = {2009-05-01}, + journaltitle = {Computers \& Operations Research}, + shortjournal = {Computers \& Operations Research}, + series = {Selected Papers Presented at the {{Tenth International Symposium}} on {{Locational Decisions}} ({{ISOLDE X}})}, + volume = {36}, + number = {5}, + pages = {1726--1730}, + issn = {0305-0548}, + doi = {10.1016/j.cor.2008.04.004}, + url = {http://www.sciencedirect.com/science/article/pii/S0305054808000804}, + urldate = {2020-11-21}, + abstract = {In this paper we develop a polynomial method based on sampling theory that can be used to estimate the Shapley value (or any semivalue) for cooperative games. Besides analyzing the complexity problem, we examine some desirable statistical properties of the proposed approach and provide some computational results.}, + langid = {english} +} + +@inproceedings{ghorbani_data_2019, + title = {Data {{Shapley}}: {{Equitable Valuation}} of {{Data}} for {{Machine Learning}}}, + shorttitle = {Data {{Shapley}}}, + booktitle = {Proceedings of the 36th {{International Conference}} on {{Machine Learning}}, {{PMLR}}}, + author = {Ghorbani, Amirata and Zou, James}, + date = {2019-05-24}, + eprint = {1904.02868}, + eprinttype = {arxiv}, + pages = {2242--2251}, + publisher = {{PMLR}}, + issn = {2640-3498}, + url = {http://proceedings.mlr.press/v97/ghorbani19c.html}, + urldate = {2020-11-01}, + abstract = {As data becomes the fuel driving technological and economic growth, a fundamental challenge is how to quantify the value of data in algorithmic predictions and decisions. For example, in healthcare and consumer markets, it has been suggested that individuals should be compensated for the data that they generate, but it is not clear what is an equitable valuation for individual data. In this work, we develop a principled framework to address data valuation in the context of supervised machine learning. Given a learning algorithm trained on n data points to produce a predictor, we propose data Shapley as a metric to quantify the value of each training datum to the predictor performance. Data Shapley uniquely satisfies several natural properties of equitable data valuation. We develop Monte Carlo and gradient-based methods to efficiently estimate data Shapley values in practical settings where complex learning algorithms, including neural networks, are trained on large datasets. In addition to being equitable, extensive experiments across biomedical, image and synthetic data demonstrate that data Shapley has several other benefits: 1) it is more powerful than the popular leave-one-out or leverage score in providing insight on what data is more valuable for a given learning task; 2) low Shapley value data effectively capture outliers and corruptions; 3) high Shapley value data inform what type of new data to acquire to improve the predictor.}, + eventtitle = {International {{Conference}} on {{Machine Learning}} ({{ICML}} 2019)}, + langid = {english}, + keywords = {notion} +} + +@article{hampel_influence_1974, + title = {The {{Influence Curve}} and {{Its Role}} in {{Robust Estimation}}}, + author = {Hampel, Frank R.}, + date = {1974}, + journaltitle = {Journal of the American Statistical Association}, + shortjournal = {J. Am. Stat. Assoc.}, + volume = {69}, + number = {346}, + eprint = {2285666}, + eprinttype = {jstor}, + pages = {383--393}, + publisher = {{[American Statistical Association, Taylor \& Francis, Ltd.]}}, + issn = {0162-1459}, + doi = {10.2307/2285666}, + url = {https://www.jstor.org/stable/2285666}, + urldate = {2022-05-09}, + abstract = {This paper treats essentially the first derivative of an estimator viewed as functional and the ways in which it can be used to study local robustness properties. A theory of robust estimation "near" strict parametric models is briefly sketched and applied to some classical situations. Relations between von Mises functionals, the jackknife and U-statistics are indicated. A number of classical and new estimators are discussed, including trimmed and Winsorized means, Huber-estimators, and more generally maximum likelihood and M-estimators. Finally, a table with some numerical robustness properties is given.} +} + +@online{hataya_nystrom_2023, + title = {Nystrom {{Method}} for {{Accurate}} and {{Scalable Implicit Differentiation}}}, + author = {Hataya, Ryuichiro and Yamada, Makoto}, + date = {2023-02-19}, + eprint = {2302.09726}, + eprinttype = {arxiv}, + eprintclass = {cs}, + url = {http://arxiv.org/abs/2302.09726}, + urldate = {2023-05-01}, + abstract = {The essential difficulty of gradient-based bilevel optimization using implicit differentiation is to estimate the inverse Hessian vector product with respect to neural network parameters. This paper proposes to tackle this problem by the Nystrom method and the Woodbury matrix identity, exploiting the low-rankness of the Hessian. Compared to existing methods using iterative approximation, such as conjugate gradient and the Neumann series approximation, the proposed method avoids numerical instability and can be efficiently computed in matrix operations without iterations. As a result, the proposed method works stably in various tasks and is faster than iterative approximations. Throughout experiments including large-scale hyperparameter optimization and meta learning, we demonstrate that the Nystrom method consistently achieves comparable or even superior performance to other approaches. The source code is available from https://github.com/moskomule/hypergrad.}, + pubstate = {preprint}, + keywords = {notion} +} + +@inproceedings{jia_efficient_2019, + title = {Towards {{Efficient Data Valuation Based}} on the {{Shapley Value}}}, + booktitle = {Proceedings of the 22nd {{International Conference}} on {{Artificial Intelligence}} and {{Statistics}}}, + author = {Jia, Ruoxi and Dao, David and Wang, Boxin and Hubis, Frances Ann and Hynes, Nick and Gürel, Nezihe Merve and Li, Bo and Zhang, Ce and Song, Dawn and Spanos, Costas J.}, + date = {2019-04-11}, + pages = {1167--1176}, + publisher = {{PMLR}}, + issn = {2640-3498}, + url = {http://proceedings.mlr.press/v89/jia19a.html}, + urldate = {2021-02-12}, + abstract = {“How much is my data worth?” is an increasingly common question posed by organizations and individuals alike. An answer to this question could allow, for instance, fairly distributing profits...}, + eventtitle = {International {{Conference}} on {{Artificial Intelligence}} and {{Statistics}} ({{AISTATS}})}, + langid = {english}, + keywords = {notion} +} + +@article{jia_efficient_2019a, + title = {Efficient Task-Specific Data Valuation for Nearest Neighbor Algorithms}, + shorttitle = {{{VLDB}} 2019}, + author = {Jia, Ruoxi and Dao, David and Wang, Boxin and Hubis, Frances Ann and Gurel, Nezihe Merve and Li, Bo and Zhang, Ce and Spanos, Costas and Song, Dawn}, + date = {2019-07-01}, + journaltitle = {Proceedings of the VLDB Endowment}, + shortjournal = {Proc. VLDB Endow.}, + volume = {12}, + number = {11}, + pages = {1610--1623}, + issn = {2150-8097}, + doi = {10.14778/3342263.3342637}, + url = {https://doi.org/10.14778/3342263.3342637}, + urldate = {2021-02-12}, + abstract = {Given a data set D containing millions of data points and a data consumer who is willing to pay for \$X to train a machine learning (ML) model over D, how should we distribute this \$X to each data point to reflect its "value"? In this paper, we define the "relative value of data" via the Shapley value, as it uniquely possesses properties with appealing real-world interpretations, such as fairness, rationality and decentralizability. For general, bounded utility functions, the Shapley value is known to be challenging to compute: to get Shapley values for all N data points, it requires O(2N) model evaluations for exact computation and O(N log N) for (ϵ, δ)-approximation. In this paper, we focus on one popular family of ML models relying on K-nearest neighbors (KNN). The most surprising result is that for unweighted KNN classifiers and regressors, the Shapley value of all N data points can be computed, exactly, in O(N log N) time - an exponential improvement on computational complexity! Moreover, for (ϵ, δ)-approximation, we are able to develop an algorithm based on Locality Sensitive Hashing (LSH) with only sublinear complexity O(Nh(ϵ, K) log N) when ϵ is not too small and K is not too large. We empirically evaluate our algorithms on up to 10 million data points and even our exact algorithm is up to three orders of magnitude faster than the baseline approximation algorithm. The LSH-based approximation algorithm can accelerate the value calculation process even further. We then extend our algorithm to other scenarios such as (1) weighed KNN classifiers, (2) different data points are clustered by different data curators, and (3) there are data analysts providing computation who also requires proper valuation. Some of these extensions, although also being improved exponentially, are less practical for exact computation (e.g., O(NK) complexity for weigthed KNN). We thus propose an Monte Carlo approximation algorithm, which is O(N(log N)2/(log K)2) times more efficient than the baseline approximation algorithm.}, + langid = {english}, + keywords = {notion} +} + +@inproceedings{just_lava_2023, + title = {{{LAVA}}: {{Data Valuation}} without {{Pre-Specified Learning Algorithms}}}, + shorttitle = {{{LAVA}}}, + author = {Just, Hoang Anh and Kang, Feiyang and Wang, Tianhao and Zeng, Yi and Ko, Myeongseob and Jin, Ming and Jia, Ruoxi}, + date = {2023-02-01}, + url = {https://openreview.net/forum?id=JJuP86nBl4q}, + urldate = {2023-04-25}, + abstract = {Traditionally, data valuation is posed as a problem of equitably splitting the validation performance of a learning algorithm among the training data. As a result, the calculated data values depend on many design choices of the underlying learning algorithm. However, this dependence is undesirable for many use cases of data valuation, such as setting priorities over different data sources in a data acquisition process and informing pricing mechanisms in a data marketplace. In these scenarios, data needs to be valued before the actual analysis and the choice of the learning algorithm is still undetermined then. Another side-effect of the dependence is that to assess the value of individual points, one needs to re-run the learning algorithm with and without a point, which incurs a large computation burden. This work leapfrogs over the current limits of data valuation methods by introducing a new framework that can value training data in a way that is oblivious to the downstream learning algorithm. Our main results are as follows. \$\textbackslash textbf\{(1)\}\$ We develop a proxy for the validation performance associated with a training set based on a non-conventional \$\textbackslash textit\{class-wise\}\$ \$\textbackslash textit\{Wasserstein distance\}\$ between the training and the validation set. We show that the distance characterizes the upper bound of the validation performance for any given model under certain Lipschitz conditions. \$\textbackslash textbf\{(2)\}\$ We develop a novel method to value individual data based on the sensitivity analysis of the \$\textbackslash textit\{class-wise\}\$ Wasserstein distance. Importantly, these values can be directly obtained \$\textbackslash textit\{for free\}\$ from the output of off-the-shelf optimization solvers once the Wasserstein distance is computed. \$\textbackslash textbf\{(3) \}\$We evaluate our new data valuation framework over various use cases related to detecting low-quality data and show that, surprisingly, the learning-agnostic feature of our framework enables a \$\textbackslash textit\{significant improvement\}\$ over the state-of-the-art performance while being \$\textbackslash textit\{orders of magnitude faster.\}\$}, + eventtitle = {The {{Eleventh International Conference}} on {{Learning Representations}} ({{ICLR}} 2023)}, + langid = {english}, + keywords = {notion} +} + +@inproceedings{koh_understanding_2017, + title = {Understanding {{Black-box Predictions}} via {{Influence Functions}}}, + booktitle = {Proceedings of the 34th {{International Conference}} on {{Machine Learning}}}, + author = {Koh, Pang Wei and Liang, Percy}, + date = {2017-07-17}, + eprint = {1703.04730}, + eprinttype = {arxiv}, + pages = {1885--1894}, + publisher = {{PMLR}}, + url = {https://proceedings.mlr.press/v70/koh17a.html}, + urldate = {2022-05-09}, + abstract = {How can we explain the predictions of a black-box model? In this paper, we use influence functions — a classic technique from robust statistics — to trace a model’s prediction through the learning algorithm and back to its training data, thereby identifying training points most responsible for a given prediction. To scale up influence functions to modern machine learning settings, we develop a simple, efficient implementation that requires only oracle access to gradients and Hessian-vector products. We show that even on non-convex and non-differentiable models where the theory breaks down, approximations to influence functions can still provide valuable information. On linear models and convolutional neural networks, we demonstrate that influence functions are useful for multiple purposes: understanding model behavior, debugging models, detecting dataset errors, and even creating visually-indistinguishable training-set attacks.}, + eventtitle = {International {{Conference}} on {{Machine Learning}}}, + langid = {english}, + keywords = {notion} +} + +@inproceedings{kwon_beta_2022, + title = {Beta {{Shapley}}: A {{Unified}} and {{Noise-reduced Data Valuation Framework}} for {{Machine Learning}}}, + shorttitle = {Beta {{Shapley}}}, + booktitle = {Proceedings of the 25th {{International Conference}} on {{Artificial Intelligence}} and {{Statistics}} ({{AISTATS}}) 2022,}, + author = {Kwon, Yongchan and Zou, James}, + date = {2022-01-18}, + volume = {151}, + eprint = {2110.14049}, + eprinttype = {arxiv}, + publisher = {{PMLR}}, + location = {{Valencia, Spain}}, + url = {http://arxiv.org/abs/2110.14049}, + urldate = {2022-04-06}, + abstract = {Data Shapley has recently been proposed as a principled framework to quantify the contribution of individual datum in machine learning. It can effectively identify helpful or harmful data points for a learning algorithm. In this paper, we propose Beta Shapley, which is a substantial generalization of Data Shapley. Beta Shapley arises naturally by relaxing the efficiency axiom of the Shapley value, which is not critical for machine learning settings. Beta Shapley unifies several popular data valuation methods and includes data Shapley as a special case. Moreover, we prove that Beta Shapley has several desirable statistical properties and propose efficient algorithms to estimate it. We demonstrate that Beta Shapley outperforms state-of-the-art data valuation methods on several downstream ML tasks such as: 1) detecting mislabeled training data; 2) learning with subsamples; and 3) identifying points whose addition or removal have the largest positive or negative impact on the model.}, + eventtitle = {{{AISTATS}} 2022}, + langid = {english}, + keywords = {notion} +} + +@inproceedings{kwon_efficient_2021, + title = {Efficient {{Computation}} and {{Analysis}} of {{Distributional Shapley Values}}}, + booktitle = {Proceedings of the 24th {{International Conference}} on {{Artificial Intelligence}} and {{Statistics}}}, + author = {Kwon, Yongchan and Rivas, Manuel A. and Zou, James}, + date = {2021-03-18}, + eprint = {2007.01357}, + eprinttype = {arxiv}, + pages = {793--801}, + publisher = {{PMLR}}, + issn = {2640-3498}, + url = {http://proceedings.mlr.press/v130/kwon21a.html}, + urldate = {2021-04-23}, + abstract = {Distributional data Shapley value (DShapley) has recently been proposed as a principled framework to quantify the contribution of individual datum in machine learning. DShapley develops the founda...}, + eventtitle = {International {{Conference}} on {{Artificial Intelligence}} and {{Statistics}}}, + langid = {english} +} + +@inproceedings{okhrati_multilinear_2021, + title = {A {{Multilinear Sampling Algorithm}} to {{Estimate Shapley Values}}}, + booktitle = {2020 25th {{International Conference}} on {{Pattern Recognition}} ({{ICPR}})}, + author = {Okhrati, Ramin and Lipani, Aldo}, + date = {2021-01}, + eprint = {2010.12082}, + eprinttype = {arxiv}, + pages = {7992--7999}, + publisher = {{IEEE}}, + issn = {1051-4651}, + doi = {10.1109/ICPR48806.2021.9412511}, + url = {https://ieeexplore.ieee.org/abstract/document/9412511}, + abstract = {Shapley values are great analytical tools in game theory to measure the importance of a player in a game. Due to their axiomatic and desirable properties such as efficiency, they have become popular for feature importance analysis in data science and machine learning. However, the time complexity to compute Shapley values based on the original formula is exponential, and as the number of features increases, this becomes infeasible. Castro et al. [1] developed a sampling algorithm, to estimate Shapley values. In this work, we propose a new sampling method based on a multilinear extension technique as applied in game theory. The aim is to provide a more efficient (sampling) method for estimating Shapley values. Our method is applicable to any machine learning model, in particular for either multiclass classifications or regression problems. We apply the method to estimate Shapley values for multilayer perceptrons (MLPs) and through experimentation on two datasets, we demonstrate that our method provides more accurate estimations of the Shapley values by reducing the variance of the sampling statistics.}, + eventtitle = {2020 25th {{International Conference}} on {{Pattern Recognition}} ({{ICPR}})}, + langid = {english}, + keywords = {notion} +} + +@inproceedings{schioppa_scaling_2021, + title = {Scaling {{Up Influence Functions}}}, + author = {Schioppa, Andrea and Zablotskaia, Polina and Vilar, David and Sokolov, Artem}, + date = {2021-12-06}, + eprint = {2112.03052}, + eprinttype = {arxiv}, + eprintclass = {cs}, + publisher = {{arXiv}}, + doi = {10.48550/arXiv.2112.03052}, + url = {http://arxiv.org/abs/2112.03052}, + urldate = {2023-03-10}, + abstract = {We address efficient calculation of influence functions for tracking predictions back to the training data. We propose and analyze a new approach to speeding up the inverse Hessian calculation based on Arnoldi iteration. With this improvement, we achieve, to the best of our knowledge, the first successful implementation of influence functions that scales to full-size (language and vision) Transformer models with several hundreds of millions of parameters. We evaluate our approach on image classification and sequence-to-sequence tasks with tens to a hundred of millions of training examples. Our code will be available at https://github.com/google-research/jax-influence.}, + eventtitle = {{{AAAI-22}}}, + keywords = {notion} +} + +@inproceedings{schoch_csshapley_2022, + title = {{{CS-Shapley}}: {{Class-wise Shapley Values}} for {{Data Valuation}} in {{Classification}}}, + shorttitle = {{{CS-Shapley}}}, + booktitle = {Proc. of the Thirty-Sixth {{Conference}} on {{Neural Information Processing Systems}} ({{NeurIPS}})}, + author = {Schoch, Stephanie and Xu, Haifeng and Ji, Yangfeng}, + date = {2022-10-31}, + location = {{New Orleans, Louisiana, USA}}, + url = {https://openreview.net/forum?id=KTOcrOR5mQ9}, + urldate = {2022-11-23}, + abstract = {Data valuation, or the valuation of individual datum contributions, has seen growing interest in machine learning due to its demonstrable efficacy for tasks such as noisy label detection. In particular, due to the desirable axiomatic properties, several Shapley value approximations have been proposed. In these methods, the value function is usually defined as the predictive accuracy over the entire development set. However, this limits the ability to differentiate between training instances that are helpful or harmful to their own classes. Intuitively, instances that harm their own classes may be noisy or mislabeled and should receive a lower valuation than helpful instances. In this work, we propose CS-Shapley, a Shapley value with a new value function that discriminates between training instances’ in-class and out-of-class contributions. Our theoretical analysis shows the proposed value function is (essentially) the unique function that satisfies two desirable properties for evaluating data values in classification. Further, our experiments on two benchmark evaluation tasks (data removal and noisy label detection) and four classifiers demonstrate the effectiveness of CS-Shapley over existing methods. Lastly, we evaluate the “transferability” of data values estimated from one classifier to others, and our results suggest Shapley-based data valuation is transferable for application across different models.}, + eventtitle = {Advances in {{Neural Information Processing Systems}} ({{NeurIPS}} 2022)}, + langid = {english}, + keywords = {notion} +} + +@online{wang_data_2022, + title = {Data {{Banzhaf}}: {{A Robust Data Valuation Framework}} for {{Machine Learning}}}, + shorttitle = {Data {{Banzhaf}}}, + author = {Wang, Jiachen T. and Jia, Ruoxi}, + date = {2022-10-22}, + eprint = {2205.15466}, + eprinttype = {arxiv}, + eprintclass = {cs, stat}, + doi = {10.48550/arXiv.2205.15466}, + url = {http://arxiv.org/abs/2205.15466}, + urldate = {2022-10-28}, + abstract = {This paper studies the robustness of data valuation to noisy model performance scores. Particularly, we find that the inherent randomness of the widely used stochastic gradient descent can cause existing data value notions (e.g., the Shapley value and the Leave-one-out error) to produce inconsistent data value rankings across different runs. To address this challenge, we first pose a formal framework within which one can measure the robustness of a data value notion. We show that the Banzhaf value, a value notion originated from cooperative game theory literature, achieves the maximal robustness among all semivalues -- a class of value notions that satisfy crucial properties entailed by ML applications. We propose an algorithm to efficiently estimate the Banzhaf value based on the Maximum Sample Reuse (MSR) principle. We derive the lower bound sample complexity for Banzhaf value estimation, and we show that our MSR algorithm's sample complexity is close to the lower bound. Our evaluation demonstrates that the Banzhaf value outperforms the existing semivalue-based data value notions on several downstream ML tasks such as learning with weighted samples and noisy label detection. Overall, our study suggests that when the underlying ML algorithm is stochastic, the Banzhaf value is a promising alternative to the semivalue-based data value schemes given its computational advantage and ability to robustly differentiate data quality.}, + pubstate = {preprint}, + keywords = {notion} +} + +@inproceedings{wang_improving_2022, + title = {Improving {{Cooperative Game Theory-based Data Valuation}} via {{Data Utility Learning}}}, + author = {Wang, Tianhao and Yang, Yu and Jia, Ruoxi}, + date = {2022-04-07}, + eprint = {2107.06336v2}, + eprinttype = {arxiv}, + publisher = {{arXiv}}, + doi = {10.48550/arXiv.2107.06336}, + url = {http://arxiv.org/abs/2107.06336v2}, + urldate = {2022-05-19}, + abstract = {The Shapley value (SV) and Least core (LC) are classic methods in cooperative game theory for cost/profit sharing problems. Both methods have recently been proposed as a principled solution for data valuation tasks, i.e., quantifying the contribution of individual datum in machine learning. However, both SV and LC suffer computational challenges due to the need for retraining models on combinatorially many data subsets. In this work, we propose to boost the efficiency in computing Shapley value or Least core by learning to estimate the performance of a learning algorithm on unseen data combinations. Theoretically, we derive bounds relating the error in the predicted learning performance to the approximation error in SV and LC. Empirically, we show that the proposed method can significantly improve the accuracy of SV and LC estimation.}, + eventtitle = {International {{Conference}} on {{Learning Representations}} ({{ICLR}} 2022). {{Workshop}} on {{Socially Responsible Machine Learning}}}, + langid = {english}, + keywords = {notion} +} + +@inproceedings{wu_davinz_2022, + title = {{{DAVINZ}}: {{Data Valuation}} Using {{Deep Neural Networks}} at {{Initialization}}}, + shorttitle = {{{DAVINZ}}}, + booktitle = {Proceedings of the 39th {{International Conference}} on {{Machine Learning}}}, + author = {Wu, Zhaoxuan and Shu, Yao and Low, Bryan Kian Hsiang}, + date = {2022-06-28}, + pages = {24150--24176}, + publisher = {{PMLR}}, + url = {https://proceedings.mlr.press/v162/wu22j.html}, + urldate = {2022-10-29}, + abstract = {Recent years have witnessed a surge of interest in developing trustworthy methods to evaluate the value of data in many real-world applications (e.g., collaborative machine learning, data marketplaces). Existing data valuation methods typically valuate data using the generalization performance of converged machine learning models after their long-term model training, hence making data valuation on large complex deep neural networks (DNNs) unaffordable. To this end, we theoretically derive a domain-aware generalization bound to estimate the generalization performance of DNNs without model training. We then exploit this theoretically derived generalization bound to develop a novel training-free data valuation method named data valuation at initialization (DAVINZ) on DNNs, which consistently achieves remarkable effectiveness and efficiency in practice. Moreover, our training-free DAVINZ, surprisingly, can even theoretically and empirically enjoy the desirable properties that training-based data valuation methods usually attain, thus making it more trustworthy in practice.}, + eventtitle = {International {{Conference}} on {{Machine Learning}}}, + langid = {english}, + keywords = {notion} +} + +@inproceedings{yan_if_2021, + title = {If {{You Like Shapley Then You}}’ll {{Love}} the {{Core}}}, + booktitle = {Proceedings of the 35th {{AAAI Conference}} on {{Artificial Intelligence}}, 2021}, + author = {Yan, Tom and Procaccia, Ariel D.}, + date = {2021-05-18}, + volume = {6}, + pages = {5751--5759}, + publisher = {{Association for the Advancement of Artificial Intelligence}}, + location = {{Virtual conference}}, + doi = {10.1609/aaai.v35i6.16721}, + url = {https://ojs.aaai.org/index.php/AAAI/article/view/16721}, + urldate = {2021-04-23}, + abstract = {The prevalent approach to problems of credit assignment in machine learning — such as feature and data valuation— is to model the problem at hand as a cooperative game and apply the Shapley value. But cooperative game theory offers a rich menu of alternative solution concepts, which famously includes the core and its variants. Our goal is to challenge the machine learning community’s current consensus around the Shapley value, and make a case for the core as a viable alternative. To that end, we prove that arbitrarily good approximations to the least core — a core relaxation that is always feasible — can be computed efficiently (but prove an impossibility for a more refined solution concept, the nucleolus). We also perform experiments that corroborate these theoretical results and shed light on settings where the least core may be preferable to the Shapley value.}, + eventtitle = {{{AAAI Conference}} on {{Artificial Intelligence}}}, + langid = {english}, + keywords = {notion} +} diff --git a/docs/assets/signet.svg b/docs/assets/signet.svg new file mode 100644 index 000000000..068ac68e8 --- /dev/null +++ b/docs/assets/signet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index b9e13dd9c..000000000 --- a/docs/conf.py +++ /dev/null @@ -1,419 +0,0 @@ -# -*- coding: utf-8 -*- -# -# pyDVL documentation build configuration file -# -# This file is execfile()d with the current directory set to its containing dir. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import ast -import logging -import os -import sys -from pathlib import Path - -import pkg_resources - -logger = logging.getLogger("docs") - -ROOT_DIR = Path(__file__).resolve().parent.parent - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.fspath(ROOT_DIR / "src")) - -# For custom extensions -sys.path.append(os.path.abspath("_ext")) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [ - "sphinx.ext.napoleon", - "sphinx.ext.autodoc", - "sphinx.ext.doctest", - "sphinx.ext.linkcode", - "sphinx.ext.mathjax", - "sphinx.ext.extlinks", - "sphinx_math_dollar", - "sphinx.ext.todo", - "hoverxref.extension", # This only works on read the docs - "sphinx_design", - "sphinxcontrib.bibtex", - "nbsphinx", - # see https://github.com/spatialaudio/nbsphinx/issues/24 for an explanation why this extension is necessary - "IPython.sphinxext.ipython_console_highlighting", - # Custom extensions - "copy_notebooks", -] - -# sphinx_math_dollar -mathjax3_config = { - "tex": { - "inlineMath": [["\\(", "\\)"]], - "displayMath": [["\\[", "\\]"]], - } -} - -extlinks_detect_hardcoded_links = True -extlinks = { - "gh": ("https://github.com/appliedAI-Initiative/pyDVL/%s", "GitHub %s"), - "issue": ("https://github.com/appliedAI-Initiative/pyDVL/issues/%s", "issue %s"), - "tfl": ("https://transferlab.appliedai.de/%s", "%s"), -} - -bibtex_bibfiles = ["pydvl.bib"] -bibtex_bibliography_header = "References\n==========" -bibtex_footbibliography_header = bibtex_bibliography_header - -# NBSphinx - -# This is processed by Jinja2 and inserted before each notebook -nbsphinx_prolog = r""" -{% set docname = env.doc2path(env.docname, base=False).replace('examples', 'notebooks') %} - -.. raw:: html - -
- This page was generated from - {{ docname|e }} -
- Interactive online version: - - - Binder badge - - -
- - -""" - -# Display todos by setting to True -todo_include_todos = True - - -# adding links to source files (this works for gitlab and github like hosts and might need to be adjusted for others) -# see https://www.sphinx-doc.org/en/master/usage/extensions/linkcode.html#module-sphinx.ext.linkcode -def linkcode_resolve(domain, info): - link_prefix = "https://github.com/appliedAI-Initiative/pyDVL/blob/develop" - if domain != "py": - return None - if not info["module"]: - return None - - path, link_extension = get_path_and_link_extension(info["module"]) - object_name = info["fullname"] - if ( - "." in object_name - ): # don't add source link to methods within classes (you might want to change that) - return None - lineno = lineno_from_object_name(path, object_name) - return f"{link_prefix}/{link_extension}#L{lineno}" - - -def get_path_and_link_extension(module: str): - """ - :return: tuple of the form (path, link_extension) where - the first entry is the local path to a given module or to __init__.py of the package - and the second entry is the corresponding path from the top level directory - """ - filename = module.replace(".", "/") - docs_dir = os.path.dirname(os.path.realpath(__file__)) - source_path_prefix = os.path.join(docs_dir, f"../src/{filename}") - - if os.path.exists(source_path_prefix + ".py"): - link_extension = f"src/{filename}.py" - return source_path_prefix + ".py", link_extension - elif os.path.exists(os.path.join(source_path_prefix, "__init__.py")): - link_extension = f"src/{filename}/__init__.py" - return os.path.join(source_path_prefix, "__init__.py"), link_extension - else: - raise Exception( - f"{source_path_prefix} is neither a module nor a package with init - " - f"did you forget to add an __init__.py?" - ) - - -def lineno_from_object_name(source_file, object_name): - desired_node_name = object_name.split(".")[0] - with open(source_file, "r") as f: - source_node = ast.parse(f.read()) - desired_node = next( - ( - node - for node in source_node.body - if getattr(node, "name", "") == desired_node_name - ), - None, - ) - if desired_node is None: - logger.warning(f"Could not find object {desired_node_name} in {source_file}") - return 0 - else: - return desired_node.lineno - - -# this is useful for keeping the docs build environment small. Add heavy requirements here -# and all other requirements to docs/requirements.txt -autodoc_mock_imports = [] - -autodoc_default_options = { - "exclude-members": "log", - "member-order": "bysource", - "show-inheritance": True, -} - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# The suffix of source filenames. -source_suffix = ".rst" - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = "index" - -# General information about the project. -project = "pyDVL" - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The full version, including alpha/beta/rc tags. -version = pkg_resources.get_distribution(project).version -release = version -# The short X.Y version. -major_v, minor_v = version.split(".")[:2] -version = f"{major_v}.{minor_v}" - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ["_build"] - -# The reST default role (used for this markup: `text`) to use for all documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -add_module_names = False - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = "sphinx" - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# Add a tooltip to all :ref: roles -# This requires a backend server to retrieve the tooltip content. As of Nov 22, -# sphinx-hoverxref only supports Read the Docs as backend. -# See https://sphinx-hoverxref.readthedocs.io/en/latest/configuration.html -# for further configuration options -# hoverxref_auto_ref = True - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = "furo" - -# Furo theme options: -html_theme_options = { - "sidebar_hide_name": True, - "navigation_with_keys": True, - "announcement": "pyDVL is in an early stage of development. Expect changes to functionality and the API until version 1.0.0.", - "footer_icons": [ - { - "name": "GitHub", - "url": "https://github.com/appliedAI-Initiative/pyDVL", - "html": """ - - - - """, - "class": "", - }, - ], -} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -html_logo = os.fspath(ROOT_DIR.joinpath("logo.svg")) - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -# html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -html_show_copyright = True -copyright = "AppliedAI Institute gGmbH" - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = "pydvl_doc" - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. - # 'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -# latex_documents = [] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ( - "index", - "pydvl", - "", - ["appliedAI"], - 1, - ) -] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -# texinfo_documents = [] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' diff --git a/docs/css/extra.css b/docs/css/extra.css new file mode 100644 index 000000000..4716fee11 --- /dev/null +++ b/docs/css/extra.css @@ -0,0 +1,127 @@ +.announcement { + align-items: center; + display: flex; + overflow-x: auto; +} + +.announcement-content { + box-sizing: border-box; + min-width: 100%; + padding: .5rem; + text-align: center; + white-space: nowrap; + color: white; + font-size: larger; +} + +/* Indentation. */ +div.doc-contents:not(.first) { + padding-left: 25px; + border-left: .05rem solid var(--md-typeset-table-color); +} + +/* Mark external links as such. */ +a.autorefs-external::after { + /* https://primer.style/octicons/arrow-up-right-24 */ + background-image: url('data:image/svg+xml,'); + content: ' '; + + display: inline-block; + position: relative; + top: 0.1em; + margin-left: 0.2em; + margin-right: 0.1em; + + height: 1em; + width: 1em; + border-radius: 100%; + background-color: var(--md-typeset-a-color); +} + +a.autorefs-external:hover::after { + background-color: var(--md-accent-fg-color); +} + +/* Headers */ +.md-typeset h1 { + font-size: 2.5em; + font-weight: 500; +} + +.md-typeset h2 { + font-size: 1.7em; + font-weight: 300; +} + +/* Highlight function names in red */ +.highlight > :first-child { + color: #b30000; +} + +/* Highlight svg logos on hover */ +/* The filter was generated using this link: https://codepen.io/sosuke/pen/Pjoqqp */ +.nt-card-image:hover, +.nt-card-image:focus { + filter: invert(32%) sepia(93%) saturate(1535%) hue-rotate(220deg) brightness(102%) contrast(99%); +} +.md-header__button.md-logo { + padding: 0; +} + +.md-header__button.md-logo img, .md-header__button.md-logo svg { + height: 1.9rem; +} + +/* Prevent selection of >>>, ... and output in Python code blocks */ +.highlight .gp, .highlight .go { /* Generic.Prompt, Generic.Output */ + user-select: none; +} + +/* Nicer style of headers in generated API */ +h2 code { + font-size: large!important; + background-color: inherit!important; +} + +/* Remove cell input and output prompt */ +.jp-InputArea-prompt, .jp-OutputArea-prompt { + display: none !important; +} + +/* Alert boxes */ +.alert { + border-radius: 0.375rem; + padding: 1rem; + position: relative; + margin: auto; + text-align: center; +} + +.alert-info { + background: var(--md-typeset-ins-color); + border: 0.1rem solid var(--md-primary-fg-color); +} + +.alert-warning { + background: var(--md-warning-bg-color); + border: 0.1rem solid var(--md-primary-fg-color); + color: black; +} + + +body[data-md-color-scheme="default"] .invertible img { +} + +body[data-md-color-scheme="slate"] .invertible img { + filter: invert(100%) hue-rotate(180deg); +} + +/* Rendered dataframe from jupyter */ +table.dataframe { + display: block; + max-width: -moz-fit-content; + max-width: fit-content; + margin: 0 auto; + overflow-x: auto; + white-space: nowrap; +} diff --git a/docs/css/neoteroi.css b/docs/css/neoteroi.css new file mode 100644 index 000000000..363c9229a --- /dev/null +++ b/docs/css/neoteroi.css @@ -0,0 +1 @@ +:root{--nt-color-0: #CD853F;--nt-color-1: #B22222;--nt-color-2: #000080;--nt-color-3: #4B0082;--nt-color-4: #3CB371;--nt-color-5: #D2B48C;--nt-color-6: #FF00FF;--nt-color-7: #98FB98;--nt-color-8: #FFEBCD;--nt-color-9: #2E8B57;--nt-color-10: #6A5ACD;--nt-color-11: #48D1CC;--nt-color-12: #FFA500;--nt-color-13: #F4A460;--nt-color-14: #A52A2A;--nt-color-15: #FFE4C4;--nt-color-16: #FF4500;--nt-color-17: #AFEEEE;--nt-color-18: #FA8072;--nt-color-19: #2F4F4F;--nt-color-20: #FFDAB9;--nt-color-21: #BC8F8F;--nt-color-22: #FFC0CB;--nt-color-23: #00FA9A;--nt-color-24: #F0FFF0;--nt-color-25: #FFFACD;--nt-color-26: #F5F5F5;--nt-color-27: #FF6347;--nt-color-28: #FFFFF0;--nt-color-29: #7FFFD4;--nt-color-30: #E9967A;--nt-color-31: #7B68EE;--nt-color-32: #FFF8DC;--nt-color-33: #0000CD;--nt-color-34: #D2691E;--nt-color-35: #708090;--nt-color-36: #5F9EA0;--nt-color-37: #008080;--nt-color-38: #008000;--nt-color-39: #FFE4E1;--nt-color-40: #FFFF00;--nt-color-41: #FFFAF0;--nt-color-42: #DCDCDC;--nt-color-43: #ADFF2F;--nt-color-44: #ADD8E6;--nt-color-45: #8B008B;--nt-color-46: #7FFF00;--nt-color-47: #800000;--nt-color-48: #20B2AA;--nt-color-49: #556B2F;--nt-color-50: #778899;--nt-color-51: #E6E6FA;--nt-color-52: #FFFAFA;--nt-color-53: #FF7F50;--nt-color-54: #FF0000;--nt-color-55: #F5DEB3;--nt-color-56: #008B8B;--nt-color-57: #66CDAA;--nt-color-58: #808000;--nt-color-59: #FAF0E6;--nt-color-60: #00BFFF;--nt-color-61: #C71585;--nt-color-62: #00FFFF;--nt-color-63: #8B4513;--nt-color-64: #F0F8FF;--nt-color-65: #FAEBD7;--nt-color-66: #8B0000;--nt-color-67: #4682B4;--nt-color-68: #F0E68C;--nt-color-69: #BDB76B;--nt-color-70: #A0522D;--nt-color-71: #FAFAD2;--nt-color-72: #FFD700;--nt-color-73: #DEB887;--nt-color-74: #E0FFFF;--nt-color-75: #8A2BE2;--nt-color-76: #32CD32;--nt-color-77: #87CEFA;--nt-color-78: #00CED1;--nt-color-79: #696969;--nt-color-80: #DDA0DD;--nt-color-81: #EE82EE;--nt-color-82: #FFB6C1;--nt-color-83: #8FBC8F;--nt-color-84: #D8BFD8;--nt-color-85: #9400D3;--nt-color-86: #A9A9A9;--nt-color-87: #FFFFE0;--nt-color-88: #FFF5EE;--nt-color-89: #FFF0F5;--nt-color-90: #FFDEAD;--nt-color-91: #800080;--nt-color-92: #B0E0E6;--nt-color-93: #9932CC;--nt-color-94: #DAA520;--nt-color-95: #F0FFFF;--nt-color-96: #40E0D0;--nt-color-97: #00FF7F;--nt-color-98: #006400;--nt-color-99: #808080;--nt-color-100: #87CEEB;--nt-color-101: #0000FF;--nt-color-102: #6495ED;--nt-color-103: #FDF5E6;--nt-color-104: #B8860B;--nt-color-105: #BA55D3;--nt-color-106: #C0C0C0;--nt-color-107: #000000;--nt-color-108: #F08080;--nt-color-109: #B0C4DE;--nt-color-110: #00008B;--nt-color-111: #6B8E23;--nt-color-112: #FFE4B5;--nt-color-113: #FFA07A;--nt-color-114: #9ACD32;--nt-color-115: #FFFFFF;--nt-color-116: #F5F5DC;--nt-color-117: #90EE90;--nt-color-118: #1E90FF;--nt-color-119: #7CFC00;--nt-color-120: #FF69B4;--nt-color-121: #F8F8FF;--nt-color-122: #F5FFFA;--nt-color-123: #00FF00;--nt-color-124: #D3D3D3;--nt-color-125: #DB7093;--nt-color-126: #DA70D6;--nt-color-127: #FF1493;--nt-color-128: #228B22;--nt-color-129: #FFEFD5;--nt-color-130: #4169E1;--nt-color-131: #191970;--nt-color-132: #9370DB;--nt-color-133: #483D8B;--nt-color-134: #FF8C00;--nt-color-135: #EEE8AA;--nt-color-136: #CD5C5C;--nt-color-137: #DC143C}:root{--nt-group-0-main: #000000;--nt-group-0-dark: #FFFFFF;--nt-group-0-light: #000000;--nt-group-0-main-bg: #F44336;--nt-group-0-dark-bg: #BA000D;--nt-group-0-light-bg: #FF7961;--nt-group-1-main: #000000;--nt-group-1-dark: #FFFFFF;--nt-group-1-light: #000000;--nt-group-1-main-bg: #E91E63;--nt-group-1-dark-bg: #B0003A;--nt-group-1-light-bg: #FF6090;--nt-group-2-main: #FFFFFF;--nt-group-2-dark: #FFFFFF;--nt-group-2-light: #000000;--nt-group-2-main-bg: #9C27B0;--nt-group-2-dark-bg: #6A0080;--nt-group-2-light-bg: #D05CE3;--nt-group-3-main: #FFFFFF;--nt-group-3-dark: #FFFFFF;--nt-group-3-light: #000000;--nt-group-3-main-bg: #673AB7;--nt-group-3-dark-bg: #320B86;--nt-group-3-light-bg: #9A67EA;--nt-group-4-main: #FFFFFF;--nt-group-4-dark: #FFFFFF;--nt-group-4-light: #000000;--nt-group-4-main-bg: #3F51B5;--nt-group-4-dark-bg: #002984;--nt-group-4-light-bg: #757DE8;--nt-group-5-main: #000000;--nt-group-5-dark: #FFFFFF;--nt-group-5-light: #000000;--nt-group-5-main-bg: #2196F3;--nt-group-5-dark-bg: #0069C0;--nt-group-5-light-bg: #6EC6FF;--nt-group-6-main: #000000;--nt-group-6-dark: #FFFFFF;--nt-group-6-light: #000000;--nt-group-6-main-bg: #03A9F4;--nt-group-6-dark-bg: #007AC1;--nt-group-6-light-bg: #67DAFF;--nt-group-7-main: #000000;--nt-group-7-dark: #000000;--nt-group-7-light: #000000;--nt-group-7-main-bg: #00BCD4;--nt-group-7-dark-bg: #008BA3;--nt-group-7-light-bg: #62EFFF;--nt-group-8-main: #000000;--nt-group-8-dark: #FFFFFF;--nt-group-8-light: #000000;--nt-group-8-main-bg: #009688;--nt-group-8-dark-bg: #00675B;--nt-group-8-light-bg: #52C7B8;--nt-group-9-main: #000000;--nt-group-9-dark: #FFFFFF;--nt-group-9-light: #000000;--nt-group-9-main-bg: #4CAF50;--nt-group-9-dark-bg: #087F23;--nt-group-9-light-bg: #80E27E;--nt-group-10-main: #000000;--nt-group-10-dark: #000000;--nt-group-10-light: #000000;--nt-group-10-main-bg: #8BC34A;--nt-group-10-dark-bg: #5A9216;--nt-group-10-light-bg: #BEF67A;--nt-group-11-main: #000000;--nt-group-11-dark: #000000;--nt-group-11-light: #000000;--nt-group-11-main-bg: #CDDC39;--nt-group-11-dark-bg: #99AA00;--nt-group-11-light-bg: #FFFF6E;--nt-group-12-main: #000000;--nt-group-12-dark: #000000;--nt-group-12-light: #000000;--nt-group-12-main-bg: #FFEB3B;--nt-group-12-dark-bg: #C8B900;--nt-group-12-light-bg: #FFFF72;--nt-group-13-main: #000000;--nt-group-13-dark: #000000;--nt-group-13-light: #000000;--nt-group-13-main-bg: #FFC107;--nt-group-13-dark-bg: #C79100;--nt-group-13-light-bg: #FFF350;--nt-group-14-main: #000000;--nt-group-14-dark: #000000;--nt-group-14-light: #000000;--nt-group-14-main-bg: #FF9800;--nt-group-14-dark-bg: #C66900;--nt-group-14-light-bg: #FFC947;--nt-group-15-main: #000000;--nt-group-15-dark: #FFFFFF;--nt-group-15-light: #000000;--nt-group-15-main-bg: #FF5722;--nt-group-15-dark-bg: #C41C00;--nt-group-15-light-bg: #FF8A50;--nt-group-16-main: #FFFFFF;--nt-group-16-dark: #FFFFFF;--nt-group-16-light: #000000;--nt-group-16-main-bg: #795548;--nt-group-16-dark-bg: #4B2C20;--nt-group-16-light-bg: #A98274;--nt-group-17-main: #000000;--nt-group-17-dark: #FFFFFF;--nt-group-17-light: #000000;--nt-group-17-main-bg: #9E9E9E;--nt-group-17-dark-bg: #707070;--nt-group-17-light-bg: #CFCFCF;--nt-group-18-main: #000000;--nt-group-18-dark: #FFFFFF;--nt-group-18-light: #000000;--nt-group-18-main-bg: #607D8B;--nt-group-18-dark-bg: #34515E;--nt-group-18-light-bg: #8EACBB}.nt-pastello{--nt-group-0-main: #000000;--nt-group-0-dark: #000000;--nt-group-0-light: #000000;--nt-group-0-main-bg: #EF9A9A;--nt-group-0-dark-bg: #BA6B6C;--nt-group-0-light-bg: #FFCCCB;--nt-group-1-main: #000000;--nt-group-1-dark: #000000;--nt-group-1-light: #000000;--nt-group-1-main-bg: #F48FB1;--nt-group-1-dark-bg: #BF5F82;--nt-group-1-light-bg: #FFC1E3;--nt-group-2-main: #000000;--nt-group-2-dark: #000000;--nt-group-2-light: #000000;--nt-group-2-main-bg: #CE93D8;--nt-group-2-dark-bg: #9C64A6;--nt-group-2-light-bg: #FFC4FF;--nt-group-3-main: #000000;--nt-group-3-dark: #000000;--nt-group-3-light: #000000;--nt-group-3-main-bg: #B39DDB;--nt-group-3-dark-bg: #836FA9;--nt-group-3-light-bg: #E6CEFF;--nt-group-4-main: #000000;--nt-group-4-dark: #000000;--nt-group-4-light: #000000;--nt-group-4-main-bg: #9FA8DA;--nt-group-4-dark-bg: #6F79A8;--nt-group-4-light-bg: #D1D9FF;--nt-group-5-main: #000000;--nt-group-5-dark: #000000;--nt-group-5-light: #000000;--nt-group-5-main-bg: #90CAF9;--nt-group-5-dark-bg: #5D99C6;--nt-group-5-light-bg: #C3FDFF;--nt-group-6-main: #000000;--nt-group-6-dark: #000000;--nt-group-6-light: #000000;--nt-group-6-main-bg: #81D4FA;--nt-group-6-dark-bg: #4BA3C7;--nt-group-6-light-bg: #B6FFFF;--nt-group-7-main: #000000;--nt-group-7-dark: #000000;--nt-group-7-light: #000000;--nt-group-7-main-bg: #80DEEA;--nt-group-7-dark-bg: #4BACB8;--nt-group-7-light-bg: #B4FFFF;--nt-group-8-main: #000000;--nt-group-8-dark: #000000;--nt-group-8-light: #000000;--nt-group-8-main-bg: #80CBC4;--nt-group-8-dark-bg: #4F9A94;--nt-group-8-light-bg: #B2FEF7;--nt-group-9-main: #000000;--nt-group-9-dark: #000000;--nt-group-9-light: #000000;--nt-group-9-main-bg: #A5D6A7;--nt-group-9-dark-bg: #75A478;--nt-group-9-light-bg: #D7FFD9;--nt-group-10-main: #000000;--nt-group-10-dark: #000000;--nt-group-10-light: #000000;--nt-group-10-main-bg: #C5E1A5;--nt-group-10-dark-bg: #94AF76;--nt-group-10-light-bg: #F8FFD7;--nt-group-11-main: #000000;--nt-group-11-dark: #000000;--nt-group-11-light: #000000;--nt-group-11-main-bg: #E6EE9C;--nt-group-11-dark-bg: #B3BC6D;--nt-group-11-light-bg: #FFFFCE;--nt-group-12-main: #000000;--nt-group-12-dark: #000000;--nt-group-12-light: #000000;--nt-group-12-main-bg: #FFF59D;--nt-group-12-dark-bg: #CBC26D;--nt-group-12-light-bg: #FFFFCF;--nt-group-13-main: #000000;--nt-group-13-dark: #000000;--nt-group-13-light: #000000;--nt-group-13-main-bg: #FFE082;--nt-group-13-dark-bg: #CAAE53;--nt-group-13-light-bg: #FFFFB3;--nt-group-14-main: #000000;--nt-group-14-dark: #000000;--nt-group-14-light: #000000;--nt-group-14-main-bg: #FFCC80;--nt-group-14-dark-bg: #CA9B52;--nt-group-14-light-bg: #FFFFB0;--nt-group-15-main: #000000;--nt-group-15-dark: #000000;--nt-group-15-light: #000000;--nt-group-15-main-bg: #FFAB91;--nt-group-15-dark-bg: #C97B63;--nt-group-15-light-bg: #FFDDC1;--nt-group-16-main: #000000;--nt-group-16-dark: #000000;--nt-group-16-light: #000000;--nt-group-16-main-bg: #BCAAA4;--nt-group-16-dark-bg: #8C7B75;--nt-group-16-light-bg: #EFDCD5;--nt-group-17-main: #000000;--nt-group-17-dark: #000000;--nt-group-17-light: #000000;--nt-group-17-main-bg: #EEEEEE;--nt-group-17-dark-bg: #BCBCBC;--nt-group-17-light-bg: #FFFFFF;--nt-group-18-main: #000000;--nt-group-18-dark: #000000;--nt-group-18-light: #000000;--nt-group-18-main-bg: #B0BEC5;--nt-group-18-dark-bg: #808E95;--nt-group-18-light-bg: #E2F1F8}.nt-group-0 .nt-plan-group-summary,.nt-group-0 .nt-timeline-dot{color:var(--nt-group-0-dark);background-color:var(--nt-group-0-dark-bg)}.nt-group-0 .period{color:var(--nt-group-0-main);background-color:var(--nt-group-0-main-bg)}.nt-group-1 .nt-plan-group-summary,.nt-group-1 .nt-timeline-dot{color:var(--nt-group-1-dark);background-color:var(--nt-group-1-dark-bg)}.nt-group-1 .period{color:var(--nt-group-1-main);background-color:var(--nt-group-1-main-bg)}.nt-group-2 .nt-plan-group-summary,.nt-group-2 .nt-timeline-dot{color:var(--nt-group-2-dark);background-color:var(--nt-group-2-dark-bg)}.nt-group-2 .period{color:var(--nt-group-2-main);background-color:var(--nt-group-2-main-bg)}.nt-group-3 .nt-plan-group-summary,.nt-group-3 .nt-timeline-dot{color:var(--nt-group-3-dark);background-color:var(--nt-group-3-dark-bg)}.nt-group-3 .period{color:var(--nt-group-3-main);background-color:var(--nt-group-3-main-bg)}.nt-group-4 .nt-plan-group-summary,.nt-group-4 .nt-timeline-dot{color:var(--nt-group-4-dark);background-color:var(--nt-group-4-dark-bg)}.nt-group-4 .period{color:var(--nt-group-4-main);background-color:var(--nt-group-4-main-bg)}.nt-group-5 .nt-plan-group-summary,.nt-group-5 .nt-timeline-dot{color:var(--nt-group-5-dark);background-color:var(--nt-group-5-dark-bg)}.nt-group-5 .period{color:var(--nt-group-5-main);background-color:var(--nt-group-5-main-bg)}.nt-group-6 .nt-plan-group-summary,.nt-group-6 .nt-timeline-dot{color:var(--nt-group-6-dark);background-color:var(--nt-group-6-dark-bg)}.nt-group-6 .period{color:var(--nt-group-6-main);background-color:var(--nt-group-6-main-bg)}.nt-group-7 .nt-plan-group-summary,.nt-group-7 .nt-timeline-dot{color:var(--nt-group-7-dark);background-color:var(--nt-group-7-dark-bg)}.nt-group-7 .period{color:var(--nt-group-7-main);background-color:var(--nt-group-7-main-bg)}.nt-group-8 .nt-plan-group-summary,.nt-group-8 .nt-timeline-dot{color:var(--nt-group-8-dark);background-color:var(--nt-group-8-dark-bg)}.nt-group-8 .period{color:var(--nt-group-8-main);background-color:var(--nt-group-8-main-bg)}.nt-group-9 .nt-plan-group-summary,.nt-group-9 .nt-timeline-dot{color:var(--nt-group-9-dark);background-color:var(--nt-group-9-dark-bg)}.nt-group-9 .period{color:var(--nt-group-9-main);background-color:var(--nt-group-9-main-bg)}.nt-group-10 .nt-plan-group-summary,.nt-group-10 .nt-timeline-dot{color:var(--nt-group-10-dark);background-color:var(--nt-group-10-dark-bg)}.nt-group-10 .period{color:var(--nt-group-10-main);background-color:var(--nt-group-10-main-bg)}.nt-group-11 .nt-plan-group-summary,.nt-group-11 .nt-timeline-dot{color:var(--nt-group-11-dark);background-color:var(--nt-group-11-dark-bg)}.nt-group-11 .period{color:var(--nt-group-11-main);background-color:var(--nt-group-11-main-bg)}.nt-group-12 .nt-plan-group-summary,.nt-group-12 .nt-timeline-dot{color:var(--nt-group-12-dark);background-color:var(--nt-group-12-dark-bg)}.nt-group-12 .period{color:var(--nt-group-12-main);background-color:var(--nt-group-12-main-bg)}.nt-group-13 .nt-plan-group-summary,.nt-group-13 .nt-timeline-dot{color:var(--nt-group-13-dark);background-color:var(--nt-group-13-dark-bg)}.nt-group-13 .period{color:var(--nt-group-13-main);background-color:var(--nt-group-13-main-bg)}.nt-group-14 .nt-plan-group-summary,.nt-group-14 .nt-timeline-dot{color:var(--nt-group-14-dark);background-color:var(--nt-group-14-dark-bg)}.nt-group-14 .period{color:var(--nt-group-14-main);background-color:var(--nt-group-14-main-bg)}.nt-group-15 .nt-plan-group-summary,.nt-group-15 .nt-timeline-dot{color:var(--nt-group-15-dark);background-color:var(--nt-group-15-dark-bg)}.nt-group-15 .period{color:var(--nt-group-15-main);background-color:var(--nt-group-15-main-bg)}.nt-group-16 .nt-plan-group-summary,.nt-group-16 .nt-timeline-dot{color:var(--nt-group-16-dark);background-color:var(--nt-group-16-dark-bg)}.nt-group-16 .period{color:var(--nt-group-16-main);background-color:var(--nt-group-16-main-bg)}.nt-group-17 .nt-plan-group-summary,.nt-group-17 .nt-timeline-dot{color:var(--nt-group-17-dark);background-color:var(--nt-group-17-dark-bg)}.nt-group-17 .period{color:var(--nt-group-17-main);background-color:var(--nt-group-17-main-bg)}.nt-group-18 .nt-plan-group-summary,.nt-group-18 .nt-timeline-dot{color:var(--nt-group-18-dark);background-color:var(--nt-group-18-dark-bg)}.nt-group-18 .period{color:var(--nt-group-18-main);background-color:var(--nt-group-18-main-bg)}.nt-error{border:2px dashed darkred;padding:0 1rem;background:#faf9ba;color:darkred}.nt-timeline{margin-top:30px}.nt-timeline .nt-timeline-title{font-size:1.1rem;margin-top:0}.nt-timeline .nt-timeline-sub-title{margin-top:0}.nt-timeline .nt-timeline-content{font-size:.8rem;border-bottom:2px dashed #ccc;padding-bottom:1.2rem}.nt-timeline.horizontal .nt-timeline-items{flex-direction:row;overflow-x:scroll}.nt-timeline.horizontal .nt-timeline-items>div{min-width:400px;margin-right:50px}.nt-timeline.horizontal.reverse .nt-timeline-items{flex-direction:row-reverse}.nt-timeline.horizontal.center .nt-timeline-before{background-image:linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%);background-repeat:no-repeat;background-size:100% 2px;background-position:0 center}.nt-timeline.horizontal.center .nt-timeline-after{background-image:linear-gradient(180deg, rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%);background-repeat:no-repeat;background-size:100% 2px;background-position:0 center}.nt-timeline.horizontal.center .nt-timeline-items{background-image:radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%);background-repeat:no-repeat;background-size:100% 2px;background-position:0 center}.nt-timeline.horizontal .nt-timeline-dot{left:50%}.nt-timeline.horizontal .nt-timeline-dot:not(.bigger){top:calc(50% - 4px)}.nt-timeline.horizontal .nt-timeline-dot.bigger{top:calc(50% - 15px)}.nt-timeline.vertical .nt-timeline-items{flex-direction:column}.nt-timeline.vertical.reverse .nt-timeline-items{flex-direction:column-reverse}.nt-timeline.vertical.center .nt-timeline-before{background:linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat center/2px 100%}.nt-timeline.vertical.center .nt-timeline-after{background:linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat center/2px 100%}.nt-timeline.vertical.center .nt-timeline-items{background:radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat center/2px 100%}.nt-timeline.vertical.center .nt-timeline-dot{left:calc(50% - 10px)}.nt-timeline.vertical.center .nt-timeline-dot:not(.bigger){top:10px}.nt-timeline.vertical.center .nt-timeline-dot.bigger{left:calc(50% - 20px)}.nt-timeline.vertical.left{padding-left:100px}.nt-timeline.vertical.left .nt-timeline-item{padding-left:70px}.nt-timeline.vertical.left .nt-timeline-sub-title{left:-100px;width:100px}.nt-timeline.vertical.left .nt-timeline-before{background:linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat 30px/2px 100%}.nt-timeline.vertical.left .nt-timeline-after{background:linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat 30px/2px 100%}.nt-timeline.vertical.left .nt-timeline-items{background:radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat 30px/2px 100%}.nt-timeline.vertical.left .nt-timeline-dot{left:21px;top:8px}.nt-timeline.vertical.left .nt-timeline-dot.bigger{top:0px;left:10px}.nt-timeline.vertical.right{padding-right:100px}.nt-timeline.vertical.right .nt-timeline-sub-title{right:-100px;text-align:left;width:100px}.nt-timeline.vertical.right .nt-timeline-item{padding-right:70px}.nt-timeline.vertical.right .nt-timeline-before{background:linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat calc(100% - 30px)/2px 100%}.nt-timeline.vertical.right .nt-timeline-after{background:linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat calc(100% - 30px)/2px 100%}.nt-timeline.vertical.right .nt-timeline-items{background:radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat calc(100% - 30px)/2px 100%}.nt-timeline.vertical.right .nt-timeline-dot{right:21px;top:8px}.nt-timeline.vertical.right .nt-timeline-dot.bigger{top:10px;right:10px}.nt-timeline-items{display:flex;position:relative}.nt-timeline-items>div{min-height:100px;padding-top:2px;padding-bottom:20px}.nt-timeline-before{content:"";height:15px}.nt-timeline-after{content:"";height:60px;margin-bottom:20px}.nt-timeline-sub-title{position:absolute;width:50%;top:4px;font-size:18px;color:var(--nt-color-50)}[data-md-color-scheme=slate] .nt-timeline-sub-title{color:var(--nt-color-51)}.nt-timeline-item{position:relative}.nt-timeline.vertical.center:not(.alternate) .nt-timeline-item{padding-left:calc(50% + 40px)}.nt-timeline.vertical.center:not(.alternate) .nt-timeline-item .nt-timeline-sub-title{left:0;padding-right:40px;text-align:right}.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd){padding-left:calc(50% + 40px)}.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) .nt-timeline-sub-title{left:0;padding-right:40px;text-align:right}.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even){text-align:right;padding-right:calc(50% + 40px)}.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) .nt-timeline-sub-title{right:0;padding-left:40px;text-align:left}.nt-timeline-dot{position:relative;width:20px;height:20px;border-radius:100%;background-color:#fc5b5b;position:absolute;top:0px;z-index:2;display:flex;justify-content:center;align-items:center;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border:3px solid #fff}.nt-timeline-dot:not(.bigger) .icon{font-size:10px}.nt-timeline-dot.bigger{width:40px;height:40px;padding:3px}.nt-timeline-dot .icon{color:#fff}@supports not (-moz-appearance: none){details .nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) .nt-timeline-sub-title,details .nt-timeline.vertical.center:not(.alternate) .nt-timeline-item .nt-timeline-sub-title{left:-40px}details .nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) .nt-timeline-sub-title{right:-40px}details .nt-timeline.vertical.center .nt-timeline-dot{left:calc(50% - 12px)}details .nt-timeline-dot.bigger{font-size:1rem !important}}.nt-timeline-item:nth-child(0) .nt-timeline-dot{background-color:var(--nt-color-0)}.nt-timeline-item:nth-child(1) .nt-timeline-dot{background-color:var(--nt-color-1)}.nt-timeline-item:nth-child(2) .nt-timeline-dot{background-color:var(--nt-color-2)}.nt-timeline-item:nth-child(3) .nt-timeline-dot{background-color:var(--nt-color-3)}.nt-timeline-item:nth-child(4) .nt-timeline-dot{background-color:var(--nt-color-4)}.nt-timeline-item:nth-child(5) .nt-timeline-dot{background-color:var(--nt-color-5)}.nt-timeline-item:nth-child(6) .nt-timeline-dot{background-color:var(--nt-color-6)}.nt-timeline-item:nth-child(7) .nt-timeline-dot{background-color:var(--nt-color-7)}.nt-timeline-item:nth-child(8) .nt-timeline-dot{background-color:var(--nt-color-8)}.nt-timeline-item:nth-child(9) .nt-timeline-dot{background-color:var(--nt-color-9)}.nt-timeline-item:nth-child(10) .nt-timeline-dot{background-color:var(--nt-color-10)}.nt-timeline-item:nth-child(11) .nt-timeline-dot{background-color:var(--nt-color-11)}.nt-timeline-item:nth-child(12) .nt-timeline-dot{background-color:var(--nt-color-12)}.nt-timeline-item:nth-child(13) .nt-timeline-dot{background-color:var(--nt-color-13)}.nt-timeline-item:nth-child(14) .nt-timeline-dot{background-color:var(--nt-color-14)}.nt-timeline-item:nth-child(15) .nt-timeline-dot{background-color:var(--nt-color-15)}.nt-timeline-item:nth-child(16) .nt-timeline-dot{background-color:var(--nt-color-16)}.nt-timeline-item:nth-child(17) .nt-timeline-dot{background-color:var(--nt-color-17)}.nt-timeline-item:nth-child(18) .nt-timeline-dot{background-color:var(--nt-color-18)}.nt-timeline-item:nth-child(19) .nt-timeline-dot{background-color:var(--nt-color-19)}.nt-timeline-item:nth-child(20) .nt-timeline-dot{background-color:var(--nt-color-20)}:root{--nt-scrollbar-color: #2751b0;--nt-plan-actions-height: 24px;--nt-units-background: #ff9800;--nt-months-background: #2751b0;--nt-plan-vertical-line-color: #a3a3a3ad}.nt-pastello{--nt-scrollbar-color: #9fb8f4;--nt-units-background: #f5dc82;--nt-months-background: #5b7fd1}[data-md-color-scheme=slate]{--nt-units-background: #003773}[data-md-color-scheme=slate] .nt-pastello{--nt-units-background: #3f4997}.nt-plan-root{min-height:200px;scrollbar-width:20px;scrollbar-color:var(--nt-scrollbar-color);display:flex}.nt-plan-root ::-webkit-scrollbar{width:20px}.nt-plan-root ::-webkit-scrollbar-track{box-shadow:inset 0 0 5px gray;border-radius:10px}.nt-plan-root ::-webkit-scrollbar-thumb{background:var(--nt-scrollbar-color);border-radius:10px}.nt-plan-root .nt-plan{flex:80%}.nt-plan-root.no-groups .nt-plan-periods{padding-left:0}.nt-plan-root.no-groups .nt-plan-group-summary{display:none}.nt-plan-root .nt-timeline-dot.bigger{top:-10px}.nt-plan-root .nt-timeline-dot.bigger[title]{cursor:help}.nt-plan{white-space:nowrap;overflow-x:auto;display:flex}.nt-plan .ug-timeline-dot{left:368px;top:-8px;cursor:help}.months{display:flex}.month{flex:auto;display:inline-block;box-shadow:rgba(0,0,0,.2) 0px 3px 1px -2px,rgba(0,0,0,.14) 0px 2px 2px 0px,rgba(0,0,0,.12) 0px 1px 5px 0px inset;background-color:var(--nt-months-background);color:#fff;text-transform:uppercase;font-family:Roboto,Helvetica,Arial,sans-serif;padding:2px 5px;font-size:12px;border:1px solid #000;width:150px;border-radius:8px}.nt-plan-group-activities{flex:auto;position:relative}.nt-vline{border-left:1px dashed var(--nt-plan-vertical-line-color);height:100%;left:0;position:absolute;margin-left:-0.5px;top:0;-webkit-transition:all .5s linear !important;-moz-transition:all .5s linear !important;-ms-transition:all .5s linear !important;-o-transition:all .5s linear !important;transition:all .5s linear !important;z-index:-2}.nt-plan-activity{display:flex;margin:2px 0;background-color:rgba(187,187,187,.2509803922)}.actions{height:var(--nt-plan-actions-height)}.actions{position:relative}.period{display:inline-block;height:var(--nt-plan-actions-height);width:120px;position:absolute;left:0px;background:#1da1f2;border-radius:5px;transition:all .5s;cursor:help;-webkit-transition:width 1s ease-in-out;-moz-transition:width 1s ease-in-out;-o-transition:width 1s ease-in-out;transition:width 1s ease-in-out}.period .nt-tooltip{display:none;top:30px;position:relative;padding:1rem;text-align:center;font-size:12px}.period:hover .nt-tooltip{display:inline-block}.period-0{left:340px;visibility:visible;background-color:#456165}.period-1{left:40px;visibility:visible;background-color:green}.period-2{left:120px;visibility:visible;background-color:pink;width:80px}.period-3{left:190px;visibility:visible;background-color:darkred;width:150px}.weeks>span,.days>span{height:25px}.weeks>span{display:inline-block;margin:0;padding:0;font-weight:bold}.weeks>span .week-text{font-size:10px;position:absolute;display:inline-block;padding:3px 4px}.days{z-index:-2;position:relative}.day-text{font-size:10px;position:absolute;display:inline-block;padding:3px 4px}.period span{font-size:12px;vertical-align:top;margin-left:4px;color:#000;background:rgba(255,255,255,.6588235294);border-radius:6px;padding:0 4px}.weeks,.days{height:20px;display:flex;box-sizing:content-box}.months{display:flex}.week,.day{height:20px;position:relative;border:1;flex:auto;border:2px solid #fff;border-radius:4px;background-color:var(--nt-units-background);cursor:help}.years{display:flex}.year{text-align:center;border-right:1px solid var(--nt-plan-vertical-line-color);font-weight:bold}.year:first-child{border-left:1px solid var(--nt-plan-vertical-line-color)}.year:first-child:last-child{width:100%}.quarters{display:flex}.quarter{width:12.5%;text-align:center;border-right:1px solid var(--nt-plan-vertical-line-color);font-weight:bold}.quarter:first-child{border-left:1px solid var(--nt-plan-vertical-line-color)}.nt-plan-group{margin:20px 0;position:relative}.nt-plan-group{display:flex}.nt-plan-group-summary{background:#2751b0;width:150px;white-space:normal;padding:.1rem .5rem;border-radius:5px;color:#fff;z-index:3}.nt-plan-group-summary p{margin:0;padding:0;font-size:.6rem;color:#fff}.nt-plan-group-summary,.month,.period,.week,.day,.nt-tooltip{border:3px solid #fff;box-shadow:0 2px 3px -1px rgba(0,0,0,.2),0 3px 3px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.nt-plan-periods{padding-left:150px}.months{z-index:2;position:relative}.weeks{position:relative;top:-2px;z-index:0}.month,.quarter,.year,.week,.day,.nt-tooltip{font-family:Roboto,Helvetica,Arial,sans-serif;box-sizing:border-box}.nt-cards.nt-grid{display:grid;grid-auto-columns:1fr;gap:.5rem;max-width:100vw;overflow-x:auto;padding:1px}.nt-cards.nt-grid.cols-1{grid-template-columns:repeat(1, 1fr)}.nt-cards.nt-grid.cols-2{grid-template-columns:repeat(2, 1fr)}.nt-cards.nt-grid.cols-3{grid-template-columns:repeat(3, 1fr)}.nt-cards.nt-grid.cols-4{grid-template-columns:repeat(4, 1fr)}.nt-cards.nt-grid.cols-5{grid-template-columns:repeat(5, 1fr)}.nt-cards.nt-grid.cols-6{grid-template-columns:repeat(6, 1fr)}@media only screen and (max-width: 400px){.nt-cards.nt-grid{grid-template-columns:repeat(1, 1fr) !important}}.nt-card{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.nt-card:hover{box-shadow:0 2px 2px 0 rgba(0,0,0,.24),0 3px 1px -2px rgba(0,0,0,.3),0 1px 5px 0 rgba(0,0,0,.22)}[data-md-color-scheme=slate] .nt-card{box-shadow:0 2px 2px 0 rgba(4,40,33,.14),0 3px 1px -2px rgba(40,86,94,.47),0 1px 5px 0 rgba(139,252,255,.64)}[data-md-color-scheme=slate] .nt-card:hover{box-shadow:0 2px 2px 0 rgba(0,255,206,.14),0 3px 1px -2px rgba(33,156,177,.47),0 1px 5px 0 rgba(96,251,255,.64)}.nt-card>a{color:var(--md-default-fg-color)}.nt-card>a>div{cursor:pointer}.nt-card{padding:5px;margin-bottom:.5rem}.nt-card-title{font-size:1rem;font-weight:bold;margin:4px 0 8px 0;line-height:22px}.nt-card-content{padding:.4rem .8rem .8rem .8rem}.nt-card-text{font-size:14px;padding:0;margin:0}.nt-card .nt-card-image{text-align:center;border-radius:2px;background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:120px}.nt-card .nt-card-image.tags img{margin-top:12px}.nt-card .nt-card-image img{height:105px;margin-top:5px}.nt-card a:hover,.nt-card a:focus{color:var(--md-accent-fg-color)}.nt-card h2{margin:0}.span-table-wrapper table{border-collapse:collapse;margin-bottom:2rem;border-radius:.1rem}.span-table td,.span-table th{padding:.2rem;background-color:var(--md-default-bg-color);font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto;border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.span-table tr:first-child td{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.span-table td:first-child{border-left:.05rem solid var(--md-typeset-table-color)}.span-table td:last-child{border-right:.05rem solid var(--md-typeset-table-color)}.span-table tr:last-child{border-bottom:.05rem solid var(--md-typeset-table-color)}.span-table [colspan],.span-table [rowspan]{font-weight:bold;border:.05rem solid var(--md-typeset-table-color)}.span-table tr:not(:first-child):hover td:not([colspan]):not([rowspan]),.span-table td[colspan]:hover,.span-table td[rowspan]:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset;transition:background-color 125ms}.nt-contribs{margin-top:2rem;font-size:small;border-top:1px dotted #d3d3d3;padding-top:.5rem}.nt-contribs .nt-contributors{padding-top:.5rem;display:flex;flex-wrap:wrap}.nt-contribs .nt-contributor{background:#d3d3d3;background-size:cover;width:40px;height:40px;border-radius:100%;margin:0 6px 6px 0;cursor:help;opacity:.7}.nt-contribs .nt-contributor:hover{opacity:1}.nt-contribs .nt-initials{text-transform:uppercase;font-size:24px;text-align:center;width:40px;height:40px;display:inline-block;vertical-align:middle;position:relative;top:2px;color:inherit;font-weight:bold}.nt-contribs .nt-group-0{background-color:var(--nt-color-0)}.nt-contribs .nt-group-1{background-color:var(--nt-color-1)}.nt-contribs .nt-group-2{background-color:var(--nt-color-2)}.nt-contribs .nt-group-3{background-color:var(--nt-color-3)}.nt-contribs .nt-group-4{background-color:var(--nt-color-4)}.nt-contribs .nt-group-5{background-color:var(--nt-color-5)}.nt-contribs .nt-group-6{background-color:var(--nt-color-6)}.nt-contribs .nt-group-7{color:#000;background-color:var(--nt-color-7)}.nt-contribs .nt-group-8{color:#000;background-color:var(--nt-color-8)}.nt-contribs .nt-group-9{background-color:var(--nt-color-9)}.nt-contribs .nt-group-10{background-color:var(--nt-color-10)}.nt-contribs .nt-group-11{background-color:var(--nt-color-11)}.nt-contribs .nt-group-12{background-color:var(--nt-color-12)}.nt-contribs .nt-group-13{background-color:var(--nt-color-13)}.nt-contribs .nt-group-14{background-color:var(--nt-color-14)}.nt-contribs .nt-group-15{color:#000;background-color:var(--nt-color-15)}.nt-contribs .nt-group-16{background-color:var(--nt-color-16)}.nt-contribs .nt-group-17{color:#000;background-color:var(--nt-color-17)}.nt-contribs .nt-group-18{background-color:var(--nt-color-18)}.nt-contribs .nt-group-19{background-color:var(--nt-color-19)}.nt-contribs .nt-group-20{color:#000;background-color:var(--nt-color-20)}.nt-contribs .nt-group-21{color:#000;background-color:var(--nt-color-21)}.nt-contribs .nt-group-22{color:#000;background-color:var(--nt-color-22)}.nt-contribs .nt-group-23{color:#000;background-color:var(--nt-color-23)}.nt-contribs .nt-group-24{color:#000;background-color:var(--nt-color-24)}.nt-contribs .nt-group-25{color:#000;background-color:var(--nt-color-25)}.nt-contribs .nt-group-26{color:#000;background-color:var(--nt-color-26)}.nt-contribs .nt-group-27{background-color:var(--nt-color-27)}.nt-contribs .nt-group-28{color:#000;background-color:var(--nt-color-28)}.nt-contribs .nt-group-29{color:#000;background-color:var(--nt-color-29)}.nt-contribs .nt-group-30{background-color:var(--nt-color-30)}.nt-contribs .nt-group-31{background-color:var(--nt-color-31)}.nt-contribs .nt-group-32{color:#000;background-color:var(--nt-color-32)}.nt-contribs .nt-group-33{background-color:var(--nt-color-33)}.nt-contribs .nt-group-34{background-color:var(--nt-color-34)}.nt-contribs .nt-group-35{background-color:var(--nt-color-35)}.nt-contribs .nt-group-36{background-color:var(--nt-color-36)}.nt-contribs .nt-group-37{background-color:var(--nt-color-37)}.nt-contribs .nt-group-38{background-color:var(--nt-color-38)}.nt-contribs .nt-group-39{color:#000;background-color:var(--nt-color-39)}.nt-contribs .nt-group-40{color:#000;background-color:var(--nt-color-40)}.nt-contribs .nt-group-41{color:#000;background-color:var(--nt-color-41)}.nt-contribs .nt-group-42{color:#000;background-color:var(--nt-color-42)}.nt-contribs .nt-group-43{color:#000;background-color:var(--nt-color-43)}.nt-contribs .nt-group-44{color:#000;background-color:var(--nt-color-44)}.nt-contribs .nt-group-45{background-color:var(--nt-color-45)}.nt-contribs .nt-group-46{color:#000;background-color:var(--nt-color-46)}.nt-contribs .nt-group-47{background-color:var(--nt-color-47)}.nt-contribs .nt-group-48{background-color:var(--nt-color-48)}.nt-contribs .nt-group-49{background-color:var(--nt-color-49)} \ No newline at end of file diff --git a/docs/examples/index.rst b/docs/examples/index.rst deleted file mode 100644 index af5b87812..000000000 --- a/docs/examples/index.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. _examples: - -Examples -======== - -The following examples illustrate the usage of pyDVL features. - -.. toctree:: - :caption: Data valuation - :titlesonly: - :glob: - - shapley* - least_core* - -.. toctree:: - :caption: Influence function - :titlesonly: - :glob: - - influence* diff --git a/docs/getting-started/first-steps.md b/docs/getting-started/first-steps.md new file mode 100644 index 000000000..a86cf6307 --- /dev/null +++ b/docs/getting-started/first-steps.md @@ -0,0 +1,84 @@ +--- +title: Getting Started +alias: + name: getting-started + text: Getting Started +--- + +# Getting started + +!!! Warning + Make sure you have read [[installation]] before using the library. + In particular read about how caching and parallelization work, + since they might require additional setup. + +## Main concepts + +pyDVL aims to be a repository of production-ready, reference implementations of +algorithms for data valuation and influence functions. Even though we only +briefly introduce key concepts in the documentation, the following sections +should be enough to get you started. + +* [[data-valuation]] for key objects and usage patterns for Shapley value + computation and related methods. +* [[influence-values]] for instructions on how to compute influence functions. + + +## Running the examples + +If you are somewhat familiar with the concepts of data valuation, you can start +by browsing our worked-out examples illustrating pyDVL's capabilities either: + +- In the examples under [[data-valuation]] and [[influence-values]]. +- Using [binder](https://mybinder.org/) notebooks, deployed from each + example's page. +- Locally, by starting a jupyter server at the root of the project. You will + have to install jupyter first manually since it's not a dependency of the + library. + +# Advanced usage + +Besides the do's and don'ts of data valuation itself, which are the subject of +the examples and the documentation of each method, there are two main things to +keep in mind when using pyDVL. + +## Caching + +pyDVL uses [memcached](https://memcached.org/) to cache the computation of the +utility function and speed up some computations (see the [installation +guide](installation.md/#setting-up-the-cache)). + +Caching of the utility function is disabled by default. When it is enabled it +takes into account the data indices passed as argument and the utility function +wrapped into the [Utility][pydvl.utils.utility.Utility] object. This means that +care must be taken when reusing the same utility function with different data, +see the documentation for the [caching module][pydvl.utils.caching] for more +information. + +In general, caching won't play a major role in the computation of Shapley values +because the probability of sampling the same subset twice, and hence needing +the same utility function computation, is very low. However, it can be very +useful when comparing methods that use the same utility function, or when +running multiple experiments with the same data. + +!!! tip "When is the cache really necessary?" + Crucially, semi-value computations with the + [PermutationSampler][pydvl.value.sampler.PermutationSampler] require caching + to be enabled, or they will take twice as long as the direct implementation + in [compute_shapley_values][pydvl.value.shapley.compute_shapley_values]. + +## Parallelization + +pyDVL supports [joblib](https://joblib.readthedocs.io/en/latest/) for local +parallelization (within one machine) and [ray](https://ray.io) for distributed +parallelization (across multiple machines). + +The former works out of the box but for the latter you will need to provide a +running cluster (or run ray in local mode). + +As of v0.7.0 pyDVL does not allow requesting resources per task sent to the +cluster, so you will need to make sure that each worker has enough resources to +handle the tasks it receives. A data valuation task using game-theoretic methods +will typically make a copy of the whole model and dataset to each worker, even +if the re-training only happens on a subset of the data. This means that you +should make sure that each worker has enough memory to handle the whole dataset. diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md new file mode 100644 index 000000000..2d2164ada --- /dev/null +++ b/docs/getting-started/installation.md @@ -0,0 +1,87 @@ +--- +title: Installing pyDVL +alias: + name: installation + text: Installing pyDVL +--- + +# Installing pyDVL + +To install the latest release use: + +```shell +pip install pyDVL +``` + +To use all features of influence functions use instead: + +```shell +pip install pyDVL[influence] +``` + +This includes a dependency on [PyTorch](https://pytorch.org/) (Version 2.0 and +above) and thus is left out by default. + +In case that you have a supported version of CUDA installed (v11.2 to 11.8 as of +this writing), you can enable eigenvalue computations for low-rank approximations +with [CuPy](https://docs.cupy.dev/en/stable/index.html) on the GPU by using: + +```shell +pip install pyDVL[cupy] +``` + +If you use a different version of CUDA, please install CuPy +[manually](https://docs.cupy.dev/en/stable/install.html). + +In order to check the installation you can use: + +```shell +python -c "import pydvl; print(pydvl.__version__)" +``` + +You can also install the latest development version from +[TestPyPI](https://test.pypi.org/project/pyDVL/): + +```shell +pip install pyDVL --index-url https://test.pypi.org/simple/ +``` + +## Dependencies + +pyDVL requires Python >= 3.8, [Memcached](https://memcached.org/) for caching +and [Ray](https://ray.io) for parallelization in a cluster (locally it uses joblib). +Additionally, the [Influence functions][pydvl.influence] module requires PyTorch +(see [[installation]]). + +ray is used to distribute workloads across nodes in a cluster (it can be used +locally as well, but for this we recommend joblib instead). Please follow the +instructions in their documentation to set up the cluster. Once you have a +running cluster, you can use it by passing the address of the head node to +parallel methods via [ParallelConfig][pydvl.utils.parallel]. + +## Setting up the cache + +[memcached](https://memcached.org/) is an in-memory key-value store accessible +over the network. pyDVL uses it to cache the computation of the utility function +and speed up some computations (in particular, semi-value computations with the +[PermutationSampler][pydvl.value.sampler.PermutationSampler] but other methods +may benefit as well). + +You can either install it as a package or run it inside a docker container (the +simplest). For installation instructions, refer to the [Getting +started](https://github.com/memcached/memcached/wiki#getting-started) section in +memcached's wiki. Then you can run it with: + +```shell +memcached -u user +``` + +To run memcached inside a container in daemon mode instead, do: + +```shell +docker container run -d --rm -p 11211:11211 memcached:latest +``` + +!!! tip "Using the cache" + Continue reading about the cache in the [First Steps](first-steps.md#caching) + and the documentation for the [caching module][pydvl.utils.caching]. diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..fb6408b9e --- /dev/null +++ b/docs/index.md @@ -0,0 +1,34 @@ +--- +title: Home +--- + +# The python library for data valuation + +pyDVL collects algorithms for data valuation and influence function computation. +It runs most of them in parallel either locally or in a cluster and supports +distributed caching of results. + +If you're a first time user of pyDVL, we recommend you to go through the +[[getting-started]] and [[installation]] guides. + +::cards:: cols=2 + +- title: Installation + content: Steps to install and requirements + url: getting-started/installation.md + +- title: Data valuation + content: > + Basics of data valuation and description of the main algorithms + url: value/ + +- title: Influence Function + content: > + An introduction to the influence function and its computation with pyDVL + url: influence/ + +- title: Browse the API + content: Full documentation of the API + url: api/pydvl/ + +::/cards:: diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index 217c08e2b..000000000 --- a/docs/index.rst +++ /dev/null @@ -1,93 +0,0 @@ -.. _home: - -=================== -pyDVL Documentation -=================== - -Welcome to the pyDVL library for data valuation! - -pyDVL collects algorithms for data valuation and influence function computation. -It runs most of them in parallel either locally or in a cluster and supports -distributed caching of results. - -If you're a first time user of pyDVL, we recommend you to go through the -:ref:`Getting Started ` and -:ref:`Installation ` guides. - -.. grid:: 2 - :gutter: 4 - :padding: 4 - - .. grid-item-card:: - :class-item: sd-text-center - - :material-regular:`home_repair_service;12em` - - .. button-ref:: 20-install - :expand: - :color: primary - :outline: - :click-parent: - - To the installation guide - - .. grid-item-card:: - :class-item: sd-text-center - - :material-regular:`code;12em` - - .. button-link:: https://github.com/appliedAI-Initiative/pyDVL - :expand: - :color: primary - :outline: - :click-parent: - - To the sources - - .. grid-item-card:: - :class-item: sd-text-center - - :material-regular:`description;12em` - - .. button-ref:: pydvl - :expand: - :color: primary - :outline: - :click-parent: - - Browse the API - - .. grid-item-card:: - :class-item: sd-text-center - - :material-regular:`computer;12em` - - .. button-link:: examples - :expand: - :color: primary - :outline: - :click-parent: - - To the examples - -Contents -======== - -.. toctree:: - :glob: - - * - examples/index - -.. toctree:: - :caption: Reference - :hidden: - - pydvl/index - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/influence/index.md b/docs/influence/index.md new file mode 100644 index 000000000..c23ed0360 --- /dev/null +++ b/docs/influence/index.md @@ -0,0 +1,501 @@ +--- +title: The influence function +alias: + name: influence-values + text: Computing Influence Values +--- + +## The influence function + +!!! Warning + The code in the package [pydvl.influence][pydvl.influence] is experimental. + Package structure and basic API are bound to change before v1.0.0 + +The influence function (IF) is a method to quantify the effect (influence) that +each training point has on the parameters of a model, and by extension on any +function thereof. In particular, it allows to estimate how much each training +sample affects the error on a test point, making the IF useful for understanding +and debugging models. + +Alas, the influence function relies on some assumptions that can make their +application difficult. Yet another drawback is that they require the computation +of the inverse of the Hessian of the model wrt. its parameters, which is +intractable for large models like deep neural networks. Much of the recent +research tackles this issue using approximations, like a Neuman series +[@agarwal_secondorder_2017], with the most successful solution using a low-rank +approximation that iteratively finds increasing eigenspaces of the Hessian +[@schioppa_scaling_2021]. + +pyDVL implements several methods for the efficient computation of the IF for +machine learning. In the examples we document some of the difficulties that can +arise when using the IF. + +## Construction + +First introduced in the context of robust statistics in [@hampel_influence_1974], +the IF was popularized in the context of machine learning in +[@koh_understanding_2017]. + +Following their formulation, consider an input space $\mathcal{X}$ (e.g. images) +and an output space $\mathcal{Y}$ (e.g. labels). Let's take $z_i = (x_i, y_i)$, +for $i \in \{1,...,n\}$ to be the $i$-th training point, and $\theta$ to be the +(potentially highly) multi-dimensional parameters of a model (e.g. $\theta$ is a +big array with all of a neural network's parameters, including biases and/or +dropout rates). We will denote with $L(z, \theta)$ the loss of the model for +point $z$ when the parameters are $\theta.$ + +To train a model, we typically minimize the loss over all $z_i$, i.e. the +optimal parameters are + +$$\hat{\theta} = \arg \min_\theta \sum_{i=1}^n L(z_i, \theta).$$ + +In practice, lack of convexity means that one doesn't really obtain the +minimizer of the loss, and the training is stopped when the validation loss +stops decreasing. + +For notational convenience, let's define + +$$\hat{\theta}_{-z} = \arg \min_\theta \sum_{z_i \ne z} L(z_i, \theta), $$ + +i.e. $\hat{\theta}_{-z}$ are the model parameters that minimize the total loss +when $z$ is not in the training dataset. + +In order to compute the impact of each training point on the model, we would +need to calculate $\hat{\theta}_{-z}$ for each $z$ in the training dataset, thus +re-training the model at least ~$n$ times (more if model training is +stochastic). This is computationally very expensive, especially for big neural +networks. To circumvent this problem, we can just calculate a first order +approximation of $\hat{\theta}$. This can be done through single backpropagation +and without re-training the full model. + + +pyDVL supports two ways of computing the empirical influence function, namely +up-weighting of samples and perturbation influences. The choice is done by the +parameter `influence_type` in the main entry point +[compute_influences][pydvl.influence.general.compute_influences]. + +### Approximating the influence of a point + +Let's define + +$$\hat{\theta}_{\epsilon, z} = \arg \min_\theta \frac{1}{n}\sum_{i=1}^n L(z_i, +\theta) + \epsilon L(z, \theta), $$ + +which is the optimal $\hat{\theta}$ when we up-weight $z$ by an amount $\epsilon +\gt 0$. + +From a classical result (a simple derivation is available in Appendix A of +[@koh_understanding_2017]), we know that: + +$$\frac{d \ \hat{\theta}_{\epsilon, z}}{d \epsilon} \Big|_{\epsilon=0} = +-H_{\hat{\theta}}^{-1} \nabla_\theta L(z, \hat{\theta}), $$ + +where $H_{\hat{\theta}} = \frac{1}{n} \sum_{i=1}^n \nabla_\theta^2 L(z_i, +\hat{\theta})$ is the Hessian of $L$. These quantities are also knows as +**influence factors**. + +Importantly, notice that this expression is only valid when $\hat{\theta}$ is a +minimum of $L$, or otherwise $H_{\hat{\theta}}$ cannot be inverted! At the same +time, in machine learning full convergence is rarely achieved, so direct Hessian +inversion is not possible. Approximations need to be developed that circumvent +the problem of inverting the Hessian of the model in all those (frequent) cases +where it is not positive definite. + +The influence of training point $z$ on test point $z_{\text{test}}$ is defined +as: + +$$\mathcal{I}(z, z_{\text{test}}) = L(z_{\text{test}}, \hat{\theta}_{-z}) - +L(z_{\text{test}}, \hat{\theta}). $$ + +Notice that $\mathcal{I}$ is higher for points $z$ which positively impact the +model score, since the loss is higher when they are excluded from training. In +practice, one needs to rely on the following infinitesimal approximation: + +$$\mathcal{I}_{up}(z, z_{\text{test}}) = - \frac{d L(z_{\text{test}}, +\hat{\theta}_{\epsilon, z})}{d \epsilon} \Big|_{\epsilon=0} $$ + +Using the chain rule and the results calculated above, we get: + +$$\mathcal{I}_{up}(z, z_{\text{test}}) = - \nabla_\theta L(z_{\text{test}}, +\hat{\theta})^\top \ \frac{d \hat{\theta}_{\epsilon, z}}{d \epsilon} +\Big|_{\epsilon=0} = \nabla_\theta L(z_{\text{test}}, \hat{\theta})^\top \ +H_{\hat{\theta}}^{-1} \ \nabla_\theta L(z, \hat{\theta}) $$ + +All the resulting factors are gradients of the loss wrt. the model parameters +$\hat{\theta}$. This can be easily computed through one or more backpropagation +passes. + +### Perturbation definition of the influence score + +How would the loss of the model change if, instead of up-weighting an individual +point $z$, we were to up-weight only a single feature of that point? Given $z = +(x, y)$, we can define $z_{\delta} = (x+\delta, y)$, where $\delta$ is a vector +of zeros except for a 1 in the position of the feature we want to up-weight. In +order to approximate the effect of modifying a single feature of a single point +on the model score we can define + +$$\hat{\theta}_{\epsilon, z_{\delta} ,-z} = \arg \min_\theta +\frac{1}{n}\sum_{i=1}^n L(z_{i}, \theta) + \epsilon L(z_{\delta}, \theta) - +\epsilon L(z, \theta), $$ + +Similarly to what was done above, we up-weight point $z_{\delta}$, but then we +also remove the up-weighting for all the features that are not modified by +$\delta$. From the calculations in +[the previous section](#approximating-the-influence-of-a-point), +it is then easy to see that + +$$\frac{d \ \hat{\theta}_{\epsilon, z_{\delta} ,-z}}{d \epsilon} +\Big|_{\epsilon=0} = -H_{\hat{\theta}}^{-1} \nabla_\theta \Big( L(z_{\delta}, +\hat{\theta}) - L(z, \hat{\theta}) \Big) $$ + +and if the feature space is continuous and as $\delta \to 0$ we can write + +$$\frac{d \ \hat{\theta}_{\epsilon, z_{\delta} ,-z}}{d \epsilon} +\Big|_{\epsilon=0} = -H_{\hat{\theta}}^{-1} \ \nabla_x \nabla_\theta L(z, +\hat{\theta}) \delta + \mathcal{o}(\delta) $$ + +The influence of each feature of $z$ on the loss of the model can therefore be +estimated through the following quantity: + +$$\mathcal{I}_{pert}(z, z_{\text{test}}) = - \lim_{\delta \to 0} \ +\frac{1}{\delta} \frac{d L(z_{\text{test}}, \hat{\theta}_{\epsilon, \ +z_{\delta}, \ -z})}{d \epsilon} \Big|_{\epsilon=0} $$ + +which, using the chain rule and the results calculated above, is equal to + +$$\mathcal{I}_{pert}(z, z_{\text{test}}) = - \nabla_\theta L(z_{\text{test}}, +\hat{\theta})^\top \ \frac{d \hat{\theta}_{\epsilon, z_{\delta} ,-z}}{d +\epsilon} \Big|_{\epsilon=0} = \nabla_\theta L(z_{\text{test}}, +\hat{\theta})^\top \ H_{\hat{\theta}}^{-1} \ \nabla_x \nabla_\theta L(z, +\hat{\theta}) $$ + +The perturbation definition of the influence score is not straightforward to +understand, but it has a simple interpretation: it tells how much the loss of +the model changes when a certain feature of point z is up-weighted. A positive +perturbation influence score indicates that the feature might have a positive +effect on the accuracy of the model. + +It is worth noting that the perturbation influence score is a very rough +estimate of the impact of a point on the models loss and it is subject to large +approximation errors. It can nonetheless be used to build training-set attacks, +as done in [@koh_understanding_2017]. + +## Computation + +The main entry point of the library for influence calculation is +[compute_influences][pydvl.influence.general.compute_influences]. Given a +pre-trained pytorch model with a loss, first an instance of +[TorchTwiceDifferentiable][pydvl.influence.torch.torch_differentiable.TorchTwiceDifferentiable] +needs to be created: + +```python +from pydvl.influence import TorchTwiceDifferentiable +wrapped_model = TorchTwiceDifferentiable(model, loss, device) +``` + +The device specifies where influence calculation will be run. + +Given training and test data loaders, the influence of each training point on +each test point can be calculated via: + +```python +from pydvl.influence import compute_influences +from torch.utils.data import DataLoader +training_data_loader = DataLoader(...) +test_data_loader = DataLoader(...) +compute_influences( + wrapped_model, + training_data_loader, + test_data_loader, +) +``` + +The result is a tensor with one row per test point and one column per training +point. Thus, each entry $(i, j)$ represents the influence of training point $j$ +on test point $i$. A large positive influence indicates that training point $j$ +tends to improve the performance of the model on test point $i$, and vice versa, +a large negative influence indicates that training point $j$ tends to worsen the +performance of the model on test point $i$. + +### Perturbation influences + +The method of empirical influence computation can be selected in +[compute_influences][pydvl.influence.general.compute_influences] with the +parameter `influence_type`: + +```python +from pydvl.influence import compute_influences +compute_influences( + wrapped_model, + training_data_loader, + test_data_loader, + influence_type="perturbation", +) +``` + +The result is a tensor with at least three dimensions. The first two dimensions +are the same as in the case of `influence_type=up` case, i.e. one row per test +point and one column per training point. The remaining dimensions are the same +as the number of input features in the data. Therefore, each entry in the tensor +represents the influence of each feature of each training point on each test +point. + +### Approximate matrix inversion + +In almost every practical application it is not possible to construct, even less +invert the complete Hessian in memory. pyDVL offers several approximate +algorithms to invert it by setting the parameter `inversion_method` of +[compute_influences][pydvl.influence.general.compute_influences]. + +```python +from pydvl.influence import compute_influences +compute_influences( + wrapped_model, + training_data_loader, + test_data_loader, + inversion_method="cg" +) +``` + +Each inversion method has its own set of parameters that can be tuned to improve +the final result. These parameters can be passed directly to +[compute_influences][pydvl.influence.general.compute_influences] as keyword +arguments. For example, the following code sets the maximum number of iterations +for conjugate gradient to $100$ and the minimum relative error to $0.01$: + +```python +from pydvl.influence import compute_influences +compute_influences( + wrapped_model, + training_data_loader, + test_data_loader, + inversion_method="cg", + hessian_regularization=1e-4, + maxiter=100, + rtol=0.01 +) +``` + +### Hessian regularization + +Additionally, and as discussed in [the introduction](#the-influence-function), +in machine learning training rarely converges to a global minimum of the loss. +Despite good apparent convergence, $\hat{\theta}$ might be located in a region +with flat curvature or close to a saddle point. In particular, the Hessian might +have vanishing eigenvalues making its direct inversion impossible. Certain +methods, such as the [Arnoldi method](#arnoldi-solver) are robust against these +problems, but most are not. + +To circumvent this problem, many approximate methods can be implemented. The +simplest adds a small *hessian perturbation term*, i.e. $H_{\hat{\theta}} + +\lambda \mathbb{I}$, with $\mathbb{I}$ being the identity matrix. This standard +trick ensures that the eigenvalues of $H_{\hat{\theta}}$ are bounded away from +zero and therefore the matrix is invertible. In order for this regularization +not to corrupt the outcome too much, the parameter $\lambda$ should be as small +as possible while still allowing a reliable inversion of $H_{\hat{\theta}} + +\lambda \mathbb{I}$. + +```python +from pydvl.influence import compute_influences +compute_influences( + wrapped_model, + training_data_loader, + test_data_loader, + inversion_method="cg", + hessian_regularization=1e-4 +) +``` + +### Influence factors + +The [compute_influences][pydvl.influence.general.compute_influences] +method offers a fast way to obtain the influence scores given a model +and a dataset. Nevertheless, it is often more convenient +to inspect and save some of the intermediate results of +influence calculation for later use. + +The influence factors(refer to +[the previous section](#approximating-the-influence-of-a-point) for a definition) +are typically the most computationally demanding part of influence calculation. +They can be obtained via the +[compute_influence_factors][pydvl.influence.general.compute_influence_factors] +function, saved, and later used for influence calculation +on different subsets of the training dataset. + +```python +from pydvl.influence import compute_influence_factors +influence_factors = compute_influence_factors( + wrapped_model, + training_data_loader, + test_data_loader, + inversion_method="cg" +) +``` + +The result is an object of type +[InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult], +which holds the calculated influence factors (`influence_factors.x`) and a +dictionary with the info on the inversion process (`influence_factors.info`). + +## Methods for inverse HVP calculation + +In order to calculate influence values, pydvl implements several methods for the +calculation of the inverse Hessian vector product (iHVP). More precisely, given +a model, training data and a tensor $b$, the function +[solve_hvp][pydvl.influence.inversion.solve_hvp] +will find $x$ such that $H x = b$, with $H$ is the hessian of model. + +Many different inversion methods can be selected via the parameter +`inversion_method` of +[compute_influences][pydvl.influence.general.compute_influences]. + +The following subsections will offer more detailed explanations for each method. + +### Direct inversion + +With `inversion_method = "direct"` pyDVL will calculate the inverse Hessian +using the direct matrix inversion. This means that the Hessian will first be +explicitly created and then inverted. This method is the most accurate, but also +the most computationally demanding. It is therefore not recommended for large +datasets or models with many parameters. + +```python +import torch +from pydvl.influence.inversion import solve_hvp +b = torch.Tensor(...) +solve_hvp( + "direct", + wrapped_model, + training_data_loader, + b, +) +``` + +The result, an object of type +[InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult], +which holds two objects: `influence_factors.x` and `influence_factors.info`. +The first one is the inverse Hessian vector product, while the second one is a +dictionary with the info on the inversion process. For this method, the info +consists of the Hessian matrix itself. + +### Conjugate Gradient + +This classical procedure for solving linear systems of equations is an iterative +method that does not require the explicit inversion of the Hessian. Instead, it +only requires the calculation of Hessian-vector products, making it a good +choice for large datasets or models with many parameters. It is nevertheless +much slower to converge than the direct inversion method and not as accurate. +More info on the theory of conjugate gradient can be found on +[Wikipedia](https://en.wikipedia.org/wiki/Conjugate_gradient_method). + +In pyDVL, you can select conjugate gradient with `inversion_method = "cg"`, like +this: + +```python +from pydvl.influence.inversion import solve_hvp +solve_hvp( + "cg", + wrapped_model, + training_data_loader, + b, + x0=None, + rtol=1e-7, + atol=1e-7, + maxiter=None, +) +``` + +The additional optional parameters `x0`, `rtol`, `atol`, and `maxiter` are passed +to the [solve_batch_cg][pydvl.influence.torch.torch_differentiable.solve_batch_cg] +function, and are respecively the initial guess for the solution, the relative +tolerance, the absolute tolerance, and the maximum number of iterations. + +The resulting +[InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult] holds +the solution of the iHVP, `influence_factors.x`, and some info on the inversion +process `influence_factors.info`. More specifically, for each batch this will +contain the number of iterations, a boolean indicating if the inversion +converged, and the residual of the inversion. + +### Linear time Stochastic Second-Order Approximation (LiSSA) + +The LiSSA method is a stochastic approximation of the inverse Hessian vector +product. Compared to [conjugate gradient](#conjugate-gradient) +it is faster but less accurate and typically suffers from instability. + +In order to find the solution of the HVP, LiSSA iteratively approximates the +inverse of the Hessian matrix with the following update: + +$$H^{-1}_{j+1} b = b + (I - d) \ H - \frac{H^{-1}_j b}{s},$$ + +where $d$ and $s$ are a dampening and a scaling factor, which are essential +for the convergence of the method and they need to be chosen carefully, and I +is the identity matrix. More info on the theory of LiSSA can be found in the +original paper [@agarwal_secondorder_2017]. + +In pyDVL, you can select LiSSA with `inversion_method = "lissa"`, like this: + +```python +from pydvl.influence.inversion import solve_hvp +solve_hvp( + "lissa", + wrapped_model, + training_data_loader, + b, + maxiter=1000, + dampen=0.0, + scale=10.0, + h0=None, + rtol=1e-4, +) +``` + +with the additional optional parameters `maxiter`, `dampen`, `scale`, `h0`, and +`rtol`, which are passed to the +[solve_lissa][pydvl.influence.torch.torch_differentiable.solve_lissa] function, +being the maximum number of iterations, the dampening factor, the scaling +factor, the initial guess for the solution and the relative tolerance, +respectively. + +The resulting [InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult] +holds the solution of the iHVP, `influence_factors.x`, and, +within `influence_factors.info`, the maximum percentage error +and the mean percentage error of the approximation. + +### Arnoldi solver + +The [Arnoldi method](https://en.wikipedia.org/wiki/Arnoldi_iteration) is a +Krylov subspace method for approximating dominating eigenvalues and +eigenvectors. Under a low rank assumption on the Hessian at a minimizer (which +is typically observed for deep neural networks), this approximation captures the +essential action of the Hessian. More concretely, for $Hx=b$ the solution is +approximated by + +\[x \approx V D^{-1} V^T b\] + +where \(D\) is a diagonal matrix with the top (in absolute value) eigenvalues of +the Hessian and \(V\) contains the corresponding eigenvectors. See also +[@schioppa_scaling_2021]. + +In pyDVL, you can use Arnoldi with `inversion_method = "arnoldi"`, as follows: + +```python +from pydvl.influence.inversion import solve_hvp +solve_hvp( + "arnoldi", + wrapped_model, + training_data_loader, + b, + hessian_perturbation=0.0, + rank_estimate=10, + tol=1e-6, + eigen_computation_on_gpu=False +) +``` + +For the parameters, check +[solve_arnoldi][pydvl.influence.torch.torch_differentiable.solve_arnoldi]. The +resulting +[InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult] holds +the solution of the iHVP, `influence_factors.x`, and, within +`influence_factors.info`, the computed eigenvalues and eigenvectors. diff --git a/docs/javascripts/mathjax.js b/docs/javascripts/mathjax.js new file mode 100644 index 000000000..06dbf38bf --- /dev/null +++ b/docs/javascripts/mathjax.js @@ -0,0 +1,16 @@ +window.MathJax = { + tex: { + inlineMath: [["\\(", "\\)"]], + displayMath: [["\\[", "\\]"]], + processEscapes: true, + processEnvironments: true + }, + options: { + ignoreHtmlClass: ".*|", + processHtmlClass: "arithmatex" + } +}; + +document$.subscribe(() => { + MathJax.typesetPromise() +}) diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 000000000..e573b98e9 --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} + +{% block announce %} +
+ +
+{% endblock %} \ No newline at end of file diff --git a/docs/overrides/partials/copyright.html b/docs/overrides/partials/copyright.html new file mode 100644 index 000000000..942387ae9 --- /dev/null +++ b/docs/overrides/partials/copyright.html @@ -0,0 +1,19 @@ + diff --git a/docs/pydvl.bib b/docs/pydvl.bib deleted file mode 100644 index 69af8af14..000000000 --- a/docs/pydvl.bib +++ /dev/null @@ -1,209 +0,0 @@ -@article{castro_polynomial_2009, - title = {Polynomial Calculation of the {{Shapley}} Value Based on Sampling}, - author = {Castro, Javier and G{\'o}mez, Daniel and Tejada, Juan}, - year = {2009}, - month = may, - journal = {Computers \& Operations Research}, - series = {Selected Papers Presented at the {{Tenth International Symposium}} on {{Locational Decisions}} ({{ISOLDE X}})}, - volume = {36}, - number = {5}, - pages = {1726--1730}, - issn = {0305-0548}, - doi = {10.1016/j.cor.2008.04.004}, - url = {http://www.sciencedirect.com/science/article/pii/S0305054808000804}, - urldate = {2020-11-21}, - abstract = {In this paper we develop a polynomial method based on sampling theory that can be used to estimate the Shapley value (or any semivalue) for cooperative games. Besides analyzing the complexity problem, we examine some desirable statistical properties of the proposed approach and provide some computational results.}, - langid = {english} -} - -@inproceedings{ghorbani_data_2019, - title = {Data {{Shapley}}: {{Equitable Valuation}} of {{Data}} for {{Machine Learning}}}, - shorttitle = {Data {{Shapley}}}, - booktitle = {Proceedings of the 36th {{International Conference}} on {{Machine Learning}}, {{PMLR}}}, - author = {Ghorbani, Amirata and Zou, James}, - year = {2019}, - month = may, - eprint = {1904.02868}, - pages = {2242--2251}, - publisher = {{PMLR}}, - issn = {2640-3498}, - url = {http://proceedings.mlr.press/v97/ghorbani19c.html}, - urldate = {2020-11-01}, - abstract = {As data becomes the fuel driving technological and economic growth, a fundamental challenge is how to quantify the value of data in algorithmic predictions and decisions. For example, in healthcare and consumer markets, it has been suggested that individuals should be compensated for the data that they generate, but it is not clear what is an equitable valuation for individual data. In this work, we develop a principled framework to address data valuation in the context of supervised machine learning. Given a learning algorithm trained on n data points to produce a predictor, we propose data Shapley as a metric to quantify the value of each training datum to the predictor performance. Data Shapley uniquely satisfies several natural properties of equitable data valuation. We develop Monte Carlo and gradient-based methods to efficiently estimate data Shapley values in practical settings where complex learning algorithms, including neural networks, are trained on large datasets. In addition to being equitable, extensive experiments across biomedical, image and synthetic data demonstrate that data Shapley has several other benefits: 1) it is more powerful than the popular leave-one-out or leverage score in providing insight on what data is more valuable for a given learning task; 2) low Shapley value data effectively capture outliers and corruptions; 3) high Shapley value data inform what type of new data to acquire to improve the predictor.}, - archiveprefix = {arxiv}, - langid = {english}, - keywords = {notion} -} - -@inproceedings{jia_efficient_2019, - title = {Towards {{Efficient Data Valuation Based}} on the {{Shapley Value}}}, - booktitle = {Proceedings of the 22nd {{International Conference}} on {{Artificial Intelligence}} and {{Statistics}}}, - author = {Jia, Ruoxi and Dao, David and Wang, Boxin and Hubis, Frances Ann and Hynes, Nick and G{\"u}rel, Nezihe Merve and Li, Bo and Zhang, Ce and Song, Dawn and Spanos, Costas J.}, - year = {2019}, - month = apr, - pages = {1167--1176}, - publisher = {{PMLR}}, - issn = {2640-3498}, - url = {http://proceedings.mlr.press/v89/jia19a.html}, - urldate = {2021-02-12}, - abstract = {``How much is my data worth?'' is an increasingly common question posed by organizations and individuals alike. An answer to this question could allow, for instance, fairly distributing profits...}, - langid = {english}, - keywords = {notion} -} - -@article{jia_efficient_2019a, - title = {Efficient Task-Specific Data Valuation for Nearest Neighbor Algorithms}, - shorttitle = {{{VLDB}} 2019}, - author = {Jia, Ruoxi and Dao, David and Wang, Boxin and Hubis, Frances Ann and Gurel, Nezihe Merve and Li, Bo and Zhang, Ce and Spanos, Costas and Song, Dawn}, - year = {2019}, - month = jul, - journal = {Proceedings of the VLDB Endowment}, - volume = {12}, - number = {11}, - pages = {1610--1623}, - issn = {2150-8097}, - doi = {10.14778/3342263.3342637}, - url = {https://doi.org/10.14778/3342263.3342637}, - urldate = {2021-02-12}, - abstract = {Given a data set D containing millions of data points and a data consumer who is willing to pay for \$X to train a machine learning (ML) model over D, how should we distribute this \$X to each data point to reflect its "value"? In this paper, we define the "relative value of data" via the Shapley value, as it uniquely possesses properties with appealing real-world interpretations, such as fairness, rationality and decentralizability. For general, bounded utility functions, the Shapley value is known to be challenging to compute: to get Shapley values for all N data points, it requires O(2N) model evaluations for exact computation and O(N log N) for ({$\epsilon$}, {$\delta$})-approximation. In this paper, we focus on one popular family of ML models relying on K-nearest neighbors (KNN). The most surprising result is that for unweighted KNN classifiers and regressors, the Shapley value of all N data points can be computed, exactly, in O(N log N) time - an exponential improvement on computational complexity! Moreover, for ({$\epsilon$}, {$\delta$})-approximation, we are able to develop an algorithm based on Locality Sensitive Hashing (LSH) with only sublinear complexity O(Nh({$\epsilon$}, K) log N) when {$\epsilon$} is not too small and K is not too large. We empirically evaluate our algorithms on up to 10 million data points and even our exact algorithm is up to three orders of magnitude faster than the baseline approximation algorithm. The LSH-based approximation algorithm can accelerate the value calculation process even further. We then extend our algorithm to other scenarios such as (1) weighed KNN classifiers, (2) different data points are clustered by different data curators, and (3) there are data analysts providing computation who also requires proper valuation. Some of these extensions, although also being improved exponentially, are less practical for exact computation (e.g., O(NK) complexity for weigthed KNN). We thus propose an Monte Carlo approximation algorithm, which is O(N(log N)2/(log K)2) times more efficient than the baseline approximation algorithm.}, - langid = {english}, - keywords = {notion} -} - -@inproceedings{koh_understanding_2017, - title = {Understanding {{Black-box Predictions}} via {{Influence Functions}}}, - booktitle = {Proceedings of the 34th {{International Conference}} on {{Machine Learning}}}, - author = {Koh, Pang Wei and Liang, Percy}, - year = {2017}, - month = jul, - eprint = {1703.04730}, - pages = {1885--1894}, - publisher = {{PMLR}}, - url = {https://proceedings.mlr.press/v70/koh17a.html}, - urldate = {2022-05-09}, - abstract = {How can we explain the predictions of a black-box model? In this paper, we use influence functions \textemdash{} a classic technique from robust statistics \textemdash{} to trace a model's prediction through the learning algorithm and back to its training data, thereby identifying training points most responsible for a given prediction. To scale up influence functions to modern machine learning settings, we develop a simple, efficient implementation that requires only oracle access to gradients and Hessian-vector products. We show that even on non-convex and non-differentiable models where the theory breaks down, approximations to influence functions can still provide valuable information. On linear models and convolutional neural networks, we demonstrate that influence functions are useful for multiple purposes: understanding model behavior, debugging models, detecting dataset errors, and even creating visually-indistinguishable training-set attacks.}, - archiveprefix = {arxiv}, - langid = {english}, - keywords = {notion} -} - -@inproceedings{kwon_beta_2022, - title = {Beta {{Shapley}}: A {{Unified}} and {{Noise-reduced Data Valuation Framework}} for {{Machine Learning}}}, - shorttitle = {Beta {{Shapley}}}, - booktitle = {Proceedings of the 25th {{International Conference}} on {{Artificial Intelligence}} and {{Statistics}} ({{AISTATS}}) 2022,}, - author = {Kwon, Yongchan and Zou, James}, - year = {2022}, - month = jan, - volume = {151}, - eprint = {2110.14049}, - publisher = {{PMLR}}, - address = {{Valencia, Spain}}, - url = {http://arxiv.org/abs/2110.14049}, - urldate = {2022-04-06}, - abstract = {Data Shapley has recently been proposed as a principled framework to quantify the contribution of individual datum in machine learning. It can effectively identify helpful or harmful data points for a learning algorithm. In this paper, we propose Beta Shapley, which is a substantial generalization of Data Shapley. Beta Shapley arises naturally by relaxing the efficiency axiom of the Shapley value, which is not critical for machine learning settings. Beta Shapley unifies several popular data valuation methods and includes data Shapley as a special case. Moreover, we prove that Beta Shapley has several desirable statistical properties and propose efficient algorithms to estimate it. We demonstrate that Beta Shapley outperforms state-of-the-art data valuation methods on several downstream ML tasks such as: 1) detecting mislabeled training data; 2) learning with subsamples; and 3) identifying points whose addition or removal have the largest positive or negative impact on the model.}, - archiveprefix = {arxiv}, - langid = {english}, - keywords = {notion} -} - -@inproceedings{okhrati_multilinear_2021, - title = {A {{Multilinear Sampling Algorithm}} to {{Estimate Shapley Values}}}, - booktitle = {2020 25th {{International Conference}} on {{Pattern Recognition}} ({{ICPR}})}, - author = {Okhrati, Ramin and Lipani, Aldo}, - year = {2021}, - month = jan, - eprint = {2010.12082}, - pages = {7992--7999}, - publisher = {{IEEE}}, - issn = {1051-4651}, - doi = {10.1109/ICPR48806.2021.9412511}, - url = {https://ieeexplore.ieee.org/abstract/document/9412511}, - abstract = {Shapley values are great analytical tools in game theory to measure the importance of a player in a game. Due to their axiomatic and desirable properties such as efficiency, they have become popular for feature importance analysis in data science and machine learning. However, the time complexity to compute Shapley values based on the original formula is exponential, and as the number of features increases, this becomes infeasible. Castro et al. [1] developed a sampling algorithm, to estimate Shapley values. In this work, we propose a new sampling method based on a multilinear extension technique as applied in game theory. The aim is to provide a more efficient (sampling) method for estimating Shapley values. Our method is applicable to any machine learning model, in particular for either multiclass classifications or regression problems. We apply the method to estimate Shapley values for multilayer perceptrons (MLPs) and through experimentation on two datasets, we demonstrate that our method provides more accurate estimations of the Shapley values by reducing the variance of the sampling statistics.}, - archiveprefix = {arxiv}, - langid = {english}, - keywords = {notion} -} - -@misc{schioppa_scaling_2021, - title = {Scaling {{Up Influence Functions}}}, - author = {Schioppa, Andrea and Zablotskaia, Polina and Vilar, David and Sokolov, Artem}, - year = {2021}, - month = dec, - number = {arXiv:2112.03052}, - eprint = {arXiv:2112.03052}, - publisher = {{arXiv}}, - doi = {10.48550/arXiv.2112.03052}, - url = {http://arxiv.org/abs/2112.03052}, - urldate = {2023-03-10}, - abstract = {We address efficient calculation of influence functions for tracking predictions back to the training data. We propose and analyze a new approach to speeding up the inverse Hessian calculation based on Arnoldi iteration. With this improvement, we achieve, to the best of our knowledge, the first successful implementation of influence functions that scales to full-size (language and vision) Transformer models with several hundreds of millions of parameters. We evaluate our approach on image classification and sequence-to-sequence tasks with tens to a hundred of millions of training examples. Our code will be available at https://github.com/google-research/jax-influence.}, - archiveprefix = {arxiv}, - keywords = {notion} -} - -@inproceedings{schoch_csshapley_2022, - title = {{{CS-Shapley}}: {{Class-wise Shapley Values}} for {{Data Valuation}} in {{Classification}}}, - shorttitle = {{{CS-Shapley}}}, - booktitle = {Proc. of the Thirty-Sixth {{Conference}} on {{Neural Information Processing Systems}} ({{NeurIPS}})}, - author = {Schoch, Stephanie and Xu, Haifeng and Ji, Yangfeng}, - year = {2022}, - month = oct, - address = {{New Orleans, Louisiana, USA}}, - url = {https://openreview.net/forum?id=KTOcrOR5mQ9}, - urldate = {2022-11-23}, - abstract = {Data valuation, or the valuation of individual datum contributions, has seen growing interest in machine learning due to its demonstrable efficacy for tasks such as noisy label detection. In particular, due to the desirable axiomatic properties, several Shapley value approximations have been proposed. In these methods, the value function is usually defined as the predictive accuracy over the entire development set. However, this limits the ability to differentiate between training instances that are helpful or harmful to their own classes. Intuitively, instances that harm their own classes may be noisy or mislabeled and should receive a lower valuation than helpful instances. In this work, we propose CS-Shapley, a Shapley value with a new value function that discriminates between training instances' in-class and out-of-class contributions. Our theoretical analysis shows the proposed value function is (essentially) the unique function that satisfies two desirable properties for evaluating data values in classification. Further, our experiments on two benchmark evaluation tasks (data removal and noisy label detection) and four classifiers demonstrate the effectiveness of CS-Shapley over existing methods. Lastly, we evaluate the ``transferability'' of data values estimated from one classifier to others, and our results suggest Shapley-based data valuation is transferable for application across different models.}, - langid = {english}, - keywords = {notion} -} - -@misc{wang_data_2022, - title = {Data {{Banzhaf}}: {{A Robust Data Valuation Framework}} for {{Machine Learning}}}, - shorttitle = {Data {{Banzhaf}}}, - author = {Wang, Jiachen T. and Jia, Ruoxi}, - year = {2022}, - month = oct, - number = {arXiv:2205.15466}, - eprint = {arXiv:2205.15466}, - publisher = {{arXiv}}, - doi = {10.48550/arXiv.2205.15466}, - url = {http://arxiv.org/abs/2205.15466}, - urldate = {2022-10-28}, - abstract = {This paper studies the robustness of data valuation to noisy model performance scores. Particularly, we find that the inherent randomness of the widely used stochastic gradient descent can cause existing data value notions (e.g., the Shapley value and the Leave-one-out error) to produce inconsistent data value rankings across different runs. To address this challenge, we first pose a formal framework within which one can measure the robustness of a data value notion. We show that the Banzhaf value, a value notion originated from cooperative game theory literature, achieves the maximal robustness among all semivalues -- a class of value notions that satisfy crucial properties entailed by ML applications. We propose an algorithm to efficiently estimate the Banzhaf value based on the Maximum Sample Reuse (MSR) principle. We derive the lower bound sample complexity for Banzhaf value estimation, and we show that our MSR algorithm's sample complexity is close to the lower bound. Our evaluation demonstrates that the Banzhaf value outperforms the existing semivalue-based data value notions on several downstream ML tasks such as learning with weighted samples and noisy label detection. Overall, our study suggests that when the underlying ML algorithm is stochastic, the Banzhaf value is a promising alternative to the semivalue-based data value schemes given its computational advantage and ability to robustly differentiate data quality.}, - archiveprefix = {arxiv}, - keywords = {notion} -} - -@inproceedings{wang_improving_2022, - title = {Improving {{Cooperative Game Theory-based Data Valuation}} via {{Data Utility Learning}}}, - booktitle = {International {{Conference}} on {{Learning Representations}} ({{ICLR}} 2022). {{Workshop}} on {{Socially Responsible Machine Learning}}}, - author = {Wang, Tianhao and Yang, Yu and Jia, Ruoxi}, - year = {2022}, - month = apr, - eprint = {2107.06336v2}, - publisher = {{arXiv}}, - doi = {10.48550/arXiv.2107.06336}, - url = {http://arxiv.org/abs/2107.06336v2}, - urldate = {2022-05-19}, - abstract = {The Shapley value (SV) and Least core (LC) are classic methods in cooperative game theory for cost/profit sharing problems. Both methods have recently been proposed as a principled solution for data valuation tasks, i.e., quantifying the contribution of individual datum in machine learning. However, both SV and LC suffer computational challenges due to the need for retraining models on combinatorially many data subsets. In this work, we propose to boost the efficiency in computing Shapley value or Least core by learning to estimate the performance of a learning algorithm on unseen data combinations. Theoretically, we derive bounds relating the error in the predicted learning performance to the approximation error in SV and LC. Empirically, we show that the proposed method can significantly improve the accuracy of SV and LC estimation.}, - archiveprefix = {arxiv}, - langid = {english}, - keywords = {notion} -} - -@inproceedings{yan_if_2021, - title = {If {{You Like Shapley Then You}}'ll {{Love}} the {{Core}}}, - booktitle = {Proceedings of the 35th {{AAAI Conference}} on {{Artificial Intelligence}}, 2021}, - author = {Yan, Tom and Procaccia, Ariel D.}, - year = {2021}, - month = may, - volume = {6}, - pages = {5751--5759}, - publisher = {{Association for the Advancement of Artificial Intelligence}}, - address = {{Virtual conference}}, - doi = {10.1609/aaai.v35i6.16721}, - url = {https://ojs.aaai.org/index.php/AAAI/article/view/16721}, - urldate = {2021-04-23}, - abstract = {The prevalent approach to problems of credit assignment in machine learning \textemdash{} such as feature and data valuation\textemdash{} is to model the problem at hand as a cooperative game and apply the Shapley value. But cooperative game theory offers a rich menu of alternative solution concepts, which famously includes the core and its variants. Our goal is to challenge the machine learning community's current consensus around the Shapley value, and make a case for the core as a viable alternative. To that end, we prove that arbitrarily good approximations to the least core \textemdash{} a core relaxation that is always feasible \textemdash{} can be computed efficiently (but prove an impossibility for a more refined solution concept, the nucleolus). We also perform experiments that corroborate these theoretical results and shed light on settings where the least core may be preferable to the Shapley value.}, - copyright = {Copyright (c) 2021, Association for the Advancement of Artificial Intelligence (www.aaai.org). All rights reserved.}, - langid = {english}, - keywords = {notion} -} diff --git a/docs/pydvl/index.rst b/docs/pydvl/index.rst deleted file mode 100644 index 02a140baa..000000000 --- a/docs/pydvl/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -API Reference -============= - -.. automodule:: pydvl - :members: - :undoc-members: - -.. toctree:: - :glob: - - * diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/value/img/mclc-best-removal-10k-natural.svg b/docs/value/img/mclc-best-removal-10k-natural.svg new file mode 100644 index 000000000..360e932f9 --- /dev/null +++ b/docs/value/img/mclc-best-removal-10k-natural.svg @@ -0,0 +1 @@ +0.000.050.100.150.200.250.300.35Percentage Removal0.9700.9750.9800.9850.9900.995AccuracyTMC ShapleyGroup Testing ShapleyLeast CoreLeave One OutRandom \ No newline at end of file diff --git a/docs/value/img/mclc-worst-removal-10k-natural.svg b/docs/value/img/mclc-worst-removal-10k-natural.svg new file mode 100644 index 000000000..da04f1caa --- /dev/null +++ b/docs/value/img/mclc-worst-removal-10k-natural.svg @@ -0,0 +1 @@ +0.000.050.100.150.200.250.300.35Percentage Removal0.9900.9920.9940.9960.998AccuracyTMC ShapleyGroup Testing ShapleyLeast CoreLeave One OutRandom \ No newline at end of file diff --git a/docs/value/index.md b/docs/value/index.md new file mode 100644 index 000000000..e9253a17c --- /dev/null +++ b/docs/value/index.md @@ -0,0 +1,368 @@ +--- +title: Data valuation +alias: + name: data-valuation + text: Basics of data valuation +--- + +# Data valuation + +!!! Note + If you want to jump right into the steps to compute values, skip ahead + to [Computing data values](#computing-data-values). + +**Data valuation** is the task of assigning a number to each element of a +training set which reflects its contribution to the final performance of some +model trained on it. Some methods attempt to be model-agnostic, but in most +cases the model is an integral part of the method. In these cases, this number +not an intrinsic property of the element of interest, but typically a function +of three factors: + +1. The dataset $D$, or more generally, the distribution it was sampled + from (with this we mean that *value* would ideally be the (expected) + contribution of a data point to any random set $D$ sampled from the same + distribution). + +2. The algorithm $\mathcal{A}$ mapping the data $D$ to some estimator $f$ + in a model class $\mathcal{F}$. E.g. MSE minimization to find the parameters + of a linear model. + +3. The performance metric of interest $u$ for the problem. When value depends on + a model, it must be measured in some way which uses it. E.g. the $R^2$ score or + the negative MSE over a test set. + +pyDVL collects algorithms for the computation of data values in this sense, +mostly those derived from cooperative game theory. The methods can be found in +the package [pydvl.value][pydvl.value] , with support from modules +[pydvl.utils.dataset][pydvl.utils.dataset] +and [pydvl.utils.utility][pydvl.utils.utility], as detailed below. + +!!! Warning + Be sure to read the section on + [the difficulties using data values][problems-of-data-values]. + +There are three main families of methods for data valuation: game-theoretic, +influence-based and intrinsic. As of v0.7.0 pyDVL supports the first two. Here, +we focus on game-theoretic concepts and refer to the main documentation on the +[influence funtion][the-influence-function] for the second. + +## Game theoretical methods + +The main contenders in game-theoretic approaches are [Shapley +values](shapley.md]) [@ghorbani_data_2019], [@kwon_efficient_2021], +[@schoch_csshapley_2022], their generalization to so-called +[semi-values](semi-values.md) by [@kwon_beta_2022] and [@wang_data_2022], +and [the Core](the-core.md) [@yan_if_2021]. All of these are implemented +in pyDVL. + +In these methods, data points are considered players in a cooperative game +whose outcome is the performance of the model when trained on subsets +(*coalitions*) of the data, measured on a held-out **valuation set**. This +outcome, or **utility**, must typically be computed for *every* subset of +the training set, so that an exact computation is $\mathcal{O} (2^n)$ in the +number of samples $n$, with each iteration requiring a full re-fitting of the +model using a coalition as training set. Consequently, most methods involve +Monte Carlo approximations, and sometimes approximate utilities which are +faster to compute, e.g. proxy models [@wang_improving_2022] or constant-cost +approximations like Neural Tangent Kernels [@wu_davinz_2022]. + +The reasoning behind using game theory is that, in order to be useful, an +assignment of value, dubbed **valuation function**, is usually required to +fulfil certain requirements of consistency and "fairness". For instance, in some +applications value should not depend on the order in which data are considered, +or it should be equal for samples that contribute equally to any subset of the +data (of equal size). When considering aggregated value for (sub-)sets of data +there are additional desiderata, like having a value function that does not +increase with repeated samples. Game-theoretic methods are all rooted in axioms +that by construction ensure different desiderata, but despite their practical +usefulness, none of them are either necessary or sufficient for all +applications. For instance, SV methods try to equitably distribute all value +among all samples, failing to identify repeated ones as unnecessary, with e.g. a +zero value. + + +## Applications of data valuation + +Many applications are touted for data valuation, but the results can be +inconsistent. Values have a strong dependency on the training procedure and the +performance metric used. For instance, accuracy is a poor metric for imbalanced +sets and this has a stark effect on data values. Some models exhibit great +variance in some regimes and this again has a detrimental effect on values. + +Nevertheless, some of the most promising applications are: + +* Cleaning of corrupted data. +* Pruning unnecessary or irrelevant data. +* Repairing mislabeled data. +* Guiding data acquisition and annotation (active learning). +* Anomaly detection and model debugging and interpretation. + +Additionally, one of the motivating applications for the whole field is that of +data markets: a marketplace where data owners can sell their data to interested +parties. In this setting, data valuation can be key component to determine the +price of data. Algorithm-agnostic methods like LAVA [@just_lava_2023] are +particularly well suited for this, as they use the Wasserstein distance between +a vendor's data and the buyer's to determine the value of the former. + +However, this is a complex problem which can face practical banal problems like +the fact that data owners may not wish to disclose their data for valuation. + + +## Computing data values + +Using pyDVL to compute data values is a simple process that can be broken down +into three steps: + +1. Creating a [Dataset][pydvl.utils.dataset.Dataset] object from your data. +2. Creating a [Utility][pydvl.utils.utility.Utility] which ties your model to + the dataset and a [scoring function][pydvl.utils.utility.Scorer]. +3. Computing values with a method of your choice, e.g. via + [compute_shapley_values][pydvl.value.shapley.common.compute_shapley_values]. + +### Creating a Dataset + +The first item in the tuple $(D, \mathcal{A}, u)$ characterising data value is +the dataset. The class [Dataset][pydvl.utils.dataset.Dataset] is a simple +convenience wrapper for the train and test splits that is used throughout pyDVL. +The test set will be used to evaluate a scoring function for the model. + +It can be used as follows: + +```python +import numpy as np +from pydvl.utils import Dataset +from sklearn.model_selection import train_test_split +X, y = np.arange(100).reshape((50, 2)), np.arange(50) +X_train, X_test, y_train, y_test = train_test_split( + X, y, test_size=0.5, random_state=16 +) +dataset = Dataset(X_train, X_test, y_train, y_test) +``` + +It is also possible to construct Datasets from sklearn toy datasets for +illustrative purposes using [from_sklearn][pydvl.utils.dataset.Dataset.from_sklearn]. + +#### Grouping data + +Be it because data valuation methods are computationally very expensive, or +because we are interested in the groups themselves, it can be often useful or +necessary to group samples to valuate them together. +[GroupedDataset][pydvl.utils.dataset.GroupedDataset] provides an alternative to +[Dataset][pydvl.utils.dataset.Dataset] with the same interface which allows this. + +You can see an example in action in the +[Spotify notebook](../examples/shapley_basic_spotify), but here's a simple +example grouping a pre-existing `Dataset`. First we construct an array mapping +each index in the dataset to a group, then use +[from_dataset][pydvl.utils.dataset.GroupedDataset.from_dataset]: + +```python +import numpy as np +from pydvl.utils import GroupedDataset + +# Randomly assign elements to any one of num_groups: +data_groups = np.random.randint(0, num_groups, len(dataset)) +grouped_dataset = GroupedDataset.from_dataset(dataset, data_groups) +``` + +### Creating a Utility + +In pyDVL we have slightly overloaded the name "utility" and use it to refer to +an object that keeps track of all three items in $(D, \mathcal{A}, u)$. This +will be an instance of [Utility][pydvl.utils.utility.Utility] which, as mentioned, +is a convenient wrapper for the dataset, model and scoring function used for +valuation methods. + +Here's a minimal example: + +```python +import sklearn as sk +from pydvl.utils import Dataset, Utility + +dataset = Dataset.from_sklearn(sk.datasets.load_iris()) +model = sk.svm.SVC() +utility = Utility(model, dataset) +``` + +The object `utility` is a callable that data valuation methods will execute with +different subsets of training data. Each call will retrain the model on a subset +and evaluate it on the test data using a scoring function. By default, +[Utility][pydvl.utils.utility.Utility] will use `model.score()`, but it is +possible to use any scoring function (greater values must be better). In +particular, the constructor accepts the same types as argument as +[sklearn.model_selection.cross_validate][]: a string, a scorer callable or +[None][] for the default. + +```python +utility = Utility(model, dataset, "explained_variance") +``` + +`Utility` will wrap the `fit()` method of the model to cache its results. This +greatly reduces computation times of Monte Carlo methods. Because of how caching +is implemented, it is important not to reuse `Utility` objects for different +datasets. You can read more about [setting up the cache][setting-up-the-cache] +in the installation guide and the documentation +of the [caching][pydvl.utils.caching] module. + +#### Using custom scorers + +The `scoring` argument of [Utility][pydvl.utils.utility.Utility] can be used to +specify a custom [Scorer][pydvl.utils.utility.Scorer] object. This is a simple +wrapper for a callable that takes a model, and test data and returns a score. + +More importantly, the object provides information about the range of the score, +which is used by some methods by estimate the number of samples necessary, and +about what default value to use when the model fails to train. + +!!! Note + The most important property of a `Scorer` is its default value. Because many + models will fail to fit on small subsets of the data, it is important to + provide a sensible default value for the score. + +It is possible to skip the construction of the [Scorer][pydvl.utils.utility.Scorer] +when constructing the `Utility` object. The two following calls are equivalent: + +```python +from pydvl.utils import Utility, Scorer + +utility = Utility( + model, dataset, "explained_variance", score_range=(-np.inf, 1), default_score=0.0 +) +utility = Utility( + model, dataset, Scorer("explained_variance", range=(-np.inf, 1), default=0.0) +) +``` + +#### Learning the utility + +Because each evaluation of the utility entails a full retrain of the model with +a new subset of the training set, it is natural to try to learn this mapping +from subsets to scores. This is the idea behind **Data Utility Learning (DUL)** +[@wang_improving_2022] and in pyDVL it's as simple as wrapping the +`Utility` inside [DataUtilityLearning][pydvl.utils.utility.DataUtilityLearning]: + +```python +from pydvl.utils import Utility, DataUtilityLearning, Dataset +from sklearn.linear_model import LinearRegression, LogisticRegression +from sklearn.datasets import load_iris + +dataset = Dataset.from_sklearn(load_iris()) +u = Utility(LogisticRegression(), dataset, enable_cache=False) +training_budget = 3 +wrapped_u = DataUtilityLearning(u, training_budget, LinearRegression()) + +# First 3 calls will be computed normally +for i in range(training_budget): + _ = wrapped_u((i,)) +# Subsequent calls will be computed using the fit model for DUL +wrapped_u((1, 2, 3)) +``` + +As you can see, all that is required is a model to learn the utility itself and +the fitting and using of the learned model happens behind the scenes. + +There is a longer example with an investigation of the results achieved by DUL +in [a dedicated notebook](../examples/shapley_utility_learning). + +### Leave-One-Out values + +LOO is the simplest approach to valuation. It assigns to each sample its +*marginal utility* as value: + +$$v_u(i) = u(D) − u(D_{-i}).$$ + +For notational simplicity, we consider the valuation function as defined over +the indices of the dataset $D$, and $i \in D$ is the index of the sample, +$D_{-i}$ is the training set without the sample $x_i$, and $u$ is the utility +function. + +For the purposes of data valuation, this is rarely useful beyond serving as a +baseline for benchmarking. Although in some benchmarks it can perform +astonishingly well on occasion. One particular weakness is that it does not +necessarily correlate with an intrinsic value of a sample: since it is a +marginal utility, it is affected by diminishing returns. Often, the training set +is large enough for a single sample not to have any significant effect on +training performance, despite any qualities it may possess. Whether this is +indicative of low value or not depends on each one's goals and definitions, but +other methods are typically preferable. + +```python +from pydvl.value.loo import compute_loo + +values = compute_loo(utility, n_jobs=-1) +``` + +The return value of all valuation functions is an object of type +[ValuationResult][pydvl.value.result.ValuationResult]. This can be iterated over, +indexed with integers, slices and Iterables, as well as converted to a +[pandas.DataFrame][]. + + +## Problems of data values + +There are a number of factors that affect how useful values can be for your +project. In particular, regression can be especially tricky, but the particular +nature of every (non-trivial) ML problem can have an effect: + +* **Unbounded utility**: Choosing a scorer for a classifier is simple: accuracy + or some F-score provides a bounded number with a clear interpretation. However, + in regression problems most scores, like $R^2$, are not bounded because + regressors can be arbitrarily bad. This leads to great variability in the + utility for low sample sizes, and hence unreliable Monte Carlo approximations + to the values. Nevertheless, in practice it is only the ranking of samples + that matters, and this tends to be accurate (wrt. to the true ranking) despite + inaccurate values. + + ??? tip "Squashing scores" + pyDVL offers a dedicated [function + composition][pydvl.utils.score.compose_score] for scorer functions which + can be used to squash a score. The following is defined in module + [score][pydvl.utils.score]: + ```python + import numpy as np + from pydvl.utils import compose_score + + def sigmoid(x: float) -> float: + return float(1 / (1 + np.exp(-x))) + + squashed_r2 = compose_score("r2", sigmoid, "squashed r2") + + squashed_variance = compose_score( + "explained_variance", sigmoid, "squashed explained variance" + ) + ``` + These squashed scores can prove useful in regression problems, but they + can also introduce issues in the low-value regime. + +* **High variance utility**: Classical applications of game theoretic value + concepts operate with deterministic utilities, but in ML we use an evaluation + of the model on a validation set as a proxy for the true risk. Even if the + utility *is* bounded, if it has high variance then values will also have high + variance, as will their Monte Carlo estimates. One workaround in pyDVL is to + configure the caching system to allow multiple evaluations of the utility for + every index set. A moving average is computed and returned once the standard + error is small, see [MemcachedConfig][pydvl.utils.config.MemcachedConfig]. + [@wang_data_2022] prove that by relaxing one of the Shapley axioms + and considering the general class of semi-values, of which Shapley is an + instance, one can prove that a choice of constant weights is the best one can + do in a utility-agnostic setting. This method, dubbed *Data Banzhaf*, is + available in pyDVL as + [compute_banzhaf_semivalues][pydvl.value.semivalues.compute_banzhaf_semivalues]. + +* **Data set size**: Computing exact Shapley values is NP-hard, and Monte Carlo + approximations can converge slowly. Massive datasets are thus impractical, at + least with [game-theoretical methods][game-theoretical-methods]. A workaround + is to group samples and investigate their value together. You can do this using + [GroupedDataset][pydvl.utils.dataset.GroupedDataset]. There is a fully + worked-out [example here](../examples/shapley_basic_spotify). Some algorithms + also provide different sampling strategies to reduce the variance, but due to a + no-free-lunch-type theorem, no single strategy can be optimal for all utilities. + +* **Model size**: Since every evaluation of the utility entails retraining the + whole model on a subset of the data, large models require great amounts of + computation. But also, they will effortlessly interpolate small to medium + datasets, leading to great variance in the evaluation of performance on the + dedicated validation set. One mitigation for this problem is cross-validation, + but this would incur massive computational cost. As of v.0.7.0 there are no + facilities in pyDVL for cross-validating the utility (note that this would + require cross-validating the whole value computation). diff --git a/docs/value/notation.md b/docs/value/notation.md new file mode 100644 index 000000000..f14ce6466 --- /dev/null +++ b/docs/value/notation.md @@ -0,0 +1,24 @@ +--- +title: Notation for valuation +--- + +# Notation for valuation + +The following notation is used throughout the documentation: + +Let $D = \{x_1, \ldots, x_n\}$ be a training set of $n$ samples. + +The utility function $u:\mathcal{D} \rightarrow \mathbb{R}$ maps subsets of $D$ +to real numbers. + +The value $v$ of the $i$-th sample in dataset $D$ wrt. utility $u$ is +denoted as $v_u(x_i)$ or simply $v(i)$. + +For any $S \subseteq D$, we donote by $S_{-i}$ the set of samples in $D$ +excluding $x_i$, and $S_{+i}$ denotes the set $S$ with $x_i$ added. + +The marginal utility of adding sample $x_i$ to a subset $S$ is denoted as +$\delta(i) := u(S_{+i}) - u(S)$. + +The set $D_{-i}^{(k)}$ contains all subsets of $D$ of size $k$ that do not +include sample $x_i$. diff --git a/docs/value/semi-values.md b/docs/value/semi-values.md new file mode 100644 index 000000000..2aebe0d80 --- /dev/null +++ b/docs/value/semi-values.md @@ -0,0 +1,150 @@ +--- +title: Semi-values +--- + +# Semi-values + +SV is a particular case of a more general concept called semi-value, which is a +generalization to different weighting schemes. A **semi-value** is any valuation +function with the form: + +$$ +v_\text{semi}(i) = \sum_{i=1}^n w(k) +\sum_{S \subset D_{-i}^{(k)}} [u(S_{+i}) - u(S)], +$$ + +where the coefficients $w(k)$ satisfy the property: + +$$\sum_{k=1}^n w(k) = 1,$$ + +the set $D_{-i}^{(k)}$ contains all subsets of $D$ of size $k$ that do not +include sample $x_i$, $S_{+i}$ is the set $S$ with $x_i$ added, and $u$ is the +utility function. + +Two instances of this are **Banzhaf indices** [@wang_data_2022], +and **Beta Shapley** [@kwon_beta_2022], with better numerical and +rank stability in certain situations. + +!!! Note + Shapley values are a particular case of semi-values and can therefore also + be computed with the methods described here. However, as of version 0.7.0, + we recommend using + [compute_shapley_values][pydvl.value.shapley.compute_shapley_values] + instead, in particular because it implements truncation policies for TMCS. + + +## Beta Shapley + +For some machine learning applications, where the utility is typically the +performance when trained on a set $S \subset D$, diminishing returns are often +observed when computing the marginal utility of adding a new data point. + +Beta Shapley is a weighting scheme that uses the Beta function to place more +weight on subsets deemed to be more informative. The weights are defined as: + +$$ +w(k) := \frac{B(k+\beta, n-k+1+\alpha)}{B(\alpha, \beta)}, +$$ + +where $B$ is the [Beta function](https://en.wikipedia.org/wiki/Beta_function), +and $\alpha$ and $\beta$ are parameters that control the weighting of the +subsets. Setting both to 1 recovers Shapley values, and setting $\alpha = 1$, +and $\beta = 16$ is reported in [@kwon_beta_2022] to be a good choice for some +applications. Beta Shapley values are available in pyDVL through +[compute_beta_shapley_semivalues][pydvl.value.semivalues.compute_beta_shapley_semivalues]: + +```python +from pydvl.value import * + +utility = Utility(model, data) +values = compute_beta_shapley_semivalues( + u=utility, done=AbsoluteStandardError(threshold=1e-4), alpha=1, beta=16 +) +``` + +See however the [Banzhaf indices][banzhaf-indices] section +for an alternative choice of weights which is reported to work better. + +## Banzhaf indices + +As noted in the section [Problems of Data Values][problems-of-data-values], the +Shapley value can be very sensitive to variance in the utility function. For +machine learning applications, where the utility is typically the performance +when trained on a set $S \subset D$, this variance is often largest for smaller +subsets $S$. It is therefore reasonable to try reducing the relative +contribution of these subsets with adequate weights. + +One such choice of weights is the Banzhaf index, which is defined as the +constant: + +$$w(k) := 2^{n-1},$$ + +for all set sizes $k$. The intuition for picking a constant weight is that for +any choice of weight function $w$, one can always construct a utility with +higher variance where $w$ is greater. Therefore, in a worst-case sense, the best +one can do is to pick a constant weight. + +The authors of [@wang_data_2022] show that Banzhaf indices are more robust to +variance in the utility function than Shapley and Beta Shapley values. They are +available in pyDVL through +[compute_banzhaf_semivalues][pydvl.value.semivalues.compute_banzhaf_semivalues]: + +```python +from pydvl.value import * + +utility = Utility(model, data) +values = compute_banzhaf_semivalues( + u=utility, done=AbsoluteStandardError(threshold=1e-4), alpha=1, beta=16 +) +``` + +## General semi-values + +As explained above, both Beta Shapley and Banzhaf indices are special cases of +semi-values. In pyDVL we provide a general method for computing these with any +combination of the three ingredients that define a semi-value: + +- A utility function $u$. +- A sampling method +- A weighting scheme $w$. + +You can construct any combination of these three ingredients with +[compute_generic_semivalues][pydvl.value.semivalues.compute_generic_semivalues]. +The utility function is the same as for Shapley values, and the sampling method +can be any of the types defined in [the samplers module][pydvl.value.sampler]. +For instance, the following snippet is equivalent to the above: + +```python +from pydvl.value import * + +data = Dataset(...) +utility = Utility(model, data) +values = compute_generic_semivalues( + sampler=PermutationSampler(data.indices), + u=utility, + coefficient=beta_coefficient(alpha=1, beta=16), + done=AbsoluteStandardError(threshold=1e-4), +) +``` + +Allowing any coefficient can help when experimenting with models which are more +sensitive to changes in training set size. However, Data Banzhaf indices are +proven to be the most robust to variance in the utility function, in the sense +of rank stability, across a range of models and datasets [@wang_data_2022]. + +!!! warning "Careful with permutation sampling" + This generic implementation of semi-values allowing for any combination of + sampling and weighting schemes is very flexible and, in principle, it + recovers the original Shapley value, so that + [compute_shapley_values][pydvl.value.shapley.common.compute_shapley_values] + is no longer necessary. However, it loses the optimization in permutation + sampling that reuses the utility computation from the last iteration when + iterating over a permutation. This doubles the computation requirements (and + slightly increases variance) when using permutation sampling, unless [the + cache](getting-started/installation.md#setting-up-the-cache) is enabled. + In addition, as mentioned above, + [truncation policies][pydvl.value.shapley.truncated.TruncationPolicy] are + not supported by this generic implementation (as of v0.7.0). For these + reasons it is preferable to use + [compute_shapley_values][pydvl.value.shapley.common.compute_shapley_values] + whenever not computing other semi-values. diff --git a/docs/value/shapley.md b/docs/value/shapley.md new file mode 100644 index 000000000..77af2ae2b --- /dev/null +++ b/docs/value/shapley.md @@ -0,0 +1,221 @@ +--- +title: Shapley value +--- + +## Shapley value + +The Shapley method is an approach to compute data values originating in +cooperative game theory. Shapley values are a common way of assigning payoffs to +each participant in a cooperative game (i.e. one in which players can form +coalitions) in a way that ensures that certain axioms are fulfilled. + +pyDVL implements several methods for the computation and approximation of +Shapley values. They can all be accessed via the facade function +[compute_shapley_values][pydvl.value.shapley.compute_shapley_values]. +The supported methods are enumerated in +[ShapleyMode][pydvl.value.shapley.ShapleyMode]. + +Empirically, the most useful method is the so-called *Truncated Monte Carlo +Shapley* [@ghorbani_data_2019], which is a Monte Carlo approximation of the +[permutation Shapley value][permutation-shapley]. + + +### Combinatorial Shapley + +The first algorithm is just a verbatim implementation of the definition. As such +it returns as exact a value as the utility function allows (see what this means +in [Problems of Data Values][problems-of-data-values]). + +The value $v$ of the $i$-th sample in dataset $D$ wrt. utility $u$ is computed +as a weighted sum of its marginal utility wrt. every possible coalition of +training samples within the training set: + +$$ +v(i) = \frac{1}{n} \sum_{S \subseteq D_{-i}} +\binom{n-1}{ | S | }^{-1} [u(S_{+i}) − u(S)] +,$$ + +where $D_{-i}$ denotes the set of samples in $D$ excluding $x_i$, and $S_{+i}$ +denotes the set $S$ with $x_i$ added. + +```python +from pydvl.value import compute_shapley_values + +values = compute_shapley_values(utility, mode="combinatorial_exact") +df = values.to_dataframe(column='value') +``` + +We can convert the return value to a +[pandas.DataFrame][]. +and name the column with the results as `value`. Please refer to the +documentation in [shapley][pydvl.value.shapley] and +[ValuationResult][pydvl.value.result.ValuationResult] for more information. + +### Monte Carlo Combinatorial Shapley + +Because the number of subsets $S \subseteq D_{-i}$ is +$2^{ | D | - 1 }$, one typically must resort to approximations. The simplest +one is done via Monte Carlo sampling of the powerset $\mathcal{P}(D)$. In pyDVL +this simple technique is called "Monte Carlo Combinatorial". The method has very +poor converge rate and others are preferred, but if desired, usage follows the +same pattern: + +```python +from pydvl.value import compute_shapley_values, MaxUpdates + +values = compute_shapley_values( + utility, mode="combinatorial_montecarlo", done=MaxUpdates(1000) +) +df = values.to_dataframe(column='cmc') +``` + +The DataFrames returned by most Monte Carlo methods will contain approximate +standard errors as an additional column, in this case named `cmc_stderr`. + +Note the usage of the object [MaxUpdates][pydvl.value.stopping.MaxUpdates] as the +stop condition. This is an instance of a +[StoppingCriterion][pydvl.value.stopping.StoppingCriterion]. Other examples are +[MaxTime][pydvl.value.stopping.MaxTime] and +[AbsoluteStandardError][pydvl.value.stopping.AbsoluteStandardError]. + + +### Owen sampling + +**Owen Sampling** [@okhrati_multilinear_2021] is a practical algorithm based on +the combinatorial definition. It uses a continuous extension of the utility from +$\{0,1\}^n$, where a 1 in position $i$ means that sample $x_i$ is used to train +the model, to $[0,1]^n$. The ensuing expression for Shapley value uses +integration instead of discrete weights: + +$$ +v_u(i) = \int_0^1 \mathbb{E}_{S \sim P_q(D_{-i})} [u(S_{+i}) - u(S)]. +$$ + +Using Owen sampling follows the same pattern as every other method for Shapley +values in pyDVL. First construct the dataset and utility, then call +[compute_shapley_values][pydvl.value.shapley.compute_shapley_values]: + +```python +from pydvl.value import compute_shapley_values + +values = compute_shapley_values( + u=utility, mode="owen", n_iterations=4, max_q=200 +) +``` + +There are more details on Owen sampling, and its variant *Antithetic Owen +Sampling* in the documentation for the function doing the work behind the scenes: +[owen_sampling_shapley][pydvl.value.shapley.owen.owen_sampling_shapley]. + +Note that in this case we do not pass a +[StoppingCriterion][pydvl.value.stopping.StoppingCriterion] to the function, but +instead the number of iterations and the maximum number of samples to use in the +integration. + +### Permutation Shapley + +An equivalent way of computing Shapley values (`ApproShapley`) appeared in +[@castro_polynomial_2009] and is the basis for the method most often used in +practice. It uses permutations over indices instead of subsets: + +$$ +v_u(x_i) = \frac{1}{n!} \sum_{\sigma \in \Pi(n)} +[u(\sigma_{:i} \cup \{x_i\}) − u(\sigma_{:i})], +$$ + +where $\sigma_{:i}$ denotes the set of indices in permutation sigma before the +position where $i$ appears. To approximate this sum (which has $\mathcal{O}(n!)$ +terms!) one uses Monte Carlo sampling of permutations, something which has +surprisingly low sample complexity. One notable difference wrt. the +combinatorial approach above is that the approximations always fulfill the +efficiency axiom of Shapley, namely $\sum_{i=1}^n \hat{v}_i = u(D)$ (see +[@castro_polynomial_2009], Proposition 3.2). + +By adding two types of early stopping, the result is the so-called **Truncated +Monte Carlo Shapley** [@ghorbani_data_2019], which is efficient enough to be +useful in applications. The first is simply a convergence criterion, of which +there are [several to choose from][pydvl.value.stopping]. The second is a +criterion to truncate the iteration over single permutations. +[RelativeTruncation][pydvl.value.shapley.truncated.RelativeTruncation] chooses +to stop iterating over samples in a permutation when the marginal utility +becomes too small. + +```python +from pydvl.value import compute_shapley_values, MaxUpdates, RelativeTruncation + +values = compute_shapley_values( + u=utility, + mode="permutation_montecarlo", + done=MaxUpdates(1000), + truncation=RelativeTruncation(utility, rtol=0.01) +) +``` + +You can see this method in action in +[this example](../../examples/shapley_basic_spotify/) using the Spotify dataset. + +### Exact Shapley for KNN + +It is possible to exploit the local structure of K-Nearest Neighbours to reduce +the amount of subsets to consider: because no sample besides the K closest +affects the score, most are irrelevant and it is possible to compute a value in +linear time. This method was introduced by [@jia_efficient_2019a], and can be +used in pyDVL with: + +```python +from pydvl.utils import Dataset, Utility +from pydvl.value import compute_shapley_values +from sklearn.neighbors import KNeighborsClassifier + +model = KNeighborsClassifier(n_neighbors=5) +data = Dataset(...) +utility = Utility(model, data) +values = compute_shapley_values(u=utility, mode="knn") +``` + +### Group testing + +An alternative approach introduced in [@jia_efficient_2019a] first approximates +the differences of values with a Monte Carlo sum. With + +$$\hat{\Delta}_{i j} \approx v_i - v_j,$$ + +one then solves the following linear constraint satisfaction problem (CSP) to +infer the final values: + +$$ +\begin{array}{lll} +\sum_{i = 1}^N v_i & = & U (D)\\ +| v_i - v_j - \hat{\Delta}_{i j} | & \leqslant & +\frac{\varepsilon}{2 \sqrt{N}} +\end{array} +$$ + +!!! Warning + We have reproduced this method in pyDVL for completeness and benchmarking, + but we don't advocate its use because of the speed and memory cost. Despite + our best efforts, the number of samples required in practice for convergence + can be several orders of magnitude worse than with e.g. TMCS. Additionally, + the CSP can sometimes turn out to be infeasible. + +Usage follows the same pattern as every other Shapley method, but with the +addition of an `epsilon` parameter required for the solution of the CSP. It +should be the same value used to compute the minimum number of samples required. +This can be done with +[num_samples_eps_delta][pydvl.value.shapley.gt.num_samples_eps_delta], but +note that the number returned will be huge! In practice, fewer samples can be +enough, but the actual number will strongly depend on the utility, in particular +its variance. + +```python +from pydvl.utils import Dataset, Utility +from pydvl.value import compute_shapley_values + +model = ... +data = Dataset(...) +utility = Utility(model, data, score_range=(_min, _max)) +min_iterations = num_samples_eps_delta(epsilon, delta, n, utility.score_range) +values = compute_shapley_values( + u=utility, mode="group_testing", n_iterations=min_iterations, eps=eps +) +``` diff --git a/docs/value/the-core.md b/docs/value/the-core.md new file mode 100644 index 000000000..9c4e4bb3b --- /dev/null +++ b/docs/value/the-core.md @@ -0,0 +1,138 @@ +--- +title: The Least Core for Data Valuation +--- + +# Core values + +The Shapley values define a fair way to distribute payoffs amongst all +participants when they form a grand coalition. But they do not consider +the question of stability: under which conditions do all participants +form the grand coalition? Would the participants be willing to form +the grand coalition given how the payoffs are assigned, +or would some of them prefer to form smaller coalitions? + +The Core is another approach to computing data values originating +in cooperative game theory that attempts to ensure this stability. +It is the set of feasible payoffs that cannot be improved upon +by a coalition of the participants. + +It satisfies the following 2 properties: + +- **Efficiency**: + The payoffs are distributed such that it is not possible + to make any participant better off + without making another one worse off. + $$\sum_{i\in D} v(i) = u(D)\,$$ + +- **Coalitional rationality**: + The sum of payoffs to the agents in any coalition S is at + least as large as the amount that these agents could earn by + forming a coalition on their own. + $$\sum_{i \in S} v(i) \geq u(S), \forall S \subset D\,$$ + +The second property states that the sum of payoffs to the agents +in any subcoalition $S$ is at least as large as the amount that +these agents could earn by forming a coalition on their own. + +## Least Core values + +Unfortunately, for many cooperative games the Core may be empty. +By relaxing the coalitional rationality property by a subsidy $e \gt 0$, +we are then able to find approximate payoffs: + +$$ +\sum_{i\in S} v(i) + e \geq u(S), \forall S \subset D, S \neq \emptyset \ +,$$ + +The least core value $v$ of the $i$-th sample in dataset $D$ wrt. +utility $u$ is computed by solving the following Linear Program: + +$$ +\begin{array}{lll} +\text{minimize} & e & \\ +\text{subject to} & \sum_{i\in D} v(i) = u(D) & \\ +& \sum_{i\in S} v(i) + e \geq u(S) &, \forall S \subset D, S \neq \emptyset \\ +\end{array} +$$ + +## Exact Least Core + +This first algorithm is just a verbatim implementation of the definition. +As such it returns as exact a value as the utility function allows +(see what this means in Problems of Data Values][problems-of-data-values]). + +```python +from pydvl.value import compute_least_core_values + +values = compute_least_core_values(utility, mode="exact") +``` + +## Monte Carlo Least Core + +Because the number of subsets $S \subseteq D \setminus \{i\}$ is +$2^{ | D | - 1 }$, one typically must resort to approximations. + +The simplest approximation consists in using a fraction of all subsets for the +constraints. [@yan_if_2021] show that a quantity of order +$\mathcal{O}((n - \log \Delta ) / \delta^2)$ is enough to obtain a so-called +$\delta$-*approximate least core* with high probability. I.e. the following +property holds with probability $1-\Delta$ over the choice of subsets: + +$$ +\mathbb{P}_{S\sim D}\left[\sum_{i\in S} v(i) + e^{*} \geq u(S)\right] +\geq 1 - \delta, +$$ + +where $e^{*}$ is the optimal least core subsidy. + +```python +from pydvl.value import compute_least_core_values + +values = compute_least_core_values( + utility, mode="montecarlo", n_iterations=n_iterations +) +``` + +!!! Note + Although any number is supported, it is best to choose `n_iterations` to be + at least equal to the number of data points. + +Because computing the Least Core values requires the solution of a linear and a +quadratic problem *after* computing all the utility values, we offer the +possibility of splitting the latter from the former. This is useful when running +multiple experiments: use +[mclc_prepare_problem][pydvl.value.least_core.montecarlo.mclc_prepare_problem] to prepare a +list of problems to solve, then solve them in parallel with +[lc_solve_problems][pydvl.value.least_core.common.lc_solve_problems]. + +```python +from pydvl.value.least_core import mclc_prepare_problem, lc_solve_problems + +n_experiments = 10 +problems = [mclc_prepare_problem(utility, n_iterations=n_iterations) + for _ in range(n_experiments)] +values = lc_solve_problems(problems) +``` + +## Method comparison + +The TransferLab team reproduced the results of the original paper in a +publication for the 2022 MLRC [@benmerzoug_re_2023]. + +![Best sample removal on binary image +classification](img/mclc-best-removal-10k-natural.svg){ align=left width=50% class=invertible} + +Roughly speaking, MCLC performs better in identifying **high value** points, as +measured by best-sample removal tasks. In all other aspects, it performs worse +or similarly to TMCS at comparable sample budgets. But using an equal number of +subsets is more computationally expensive because of the need to solve large +linear and quadratic optimization problems. + + +![Worst sample removal on binary image +classification](img/mclc-worst-removal-10k-natural.svg){ align=right width=50% class=invertible} + +For these reasons we recommend some variation of SV like TMCS for outlier +detection, data cleaning and pruning, and perhaps MCLC for the selection of +interesting points to be inspected for the improvement of data collection or +model design. diff --git a/docs_includes/abbreviations.md b/docs_includes/abbreviations.md new file mode 100644 index 000000000..e0fa67a4c --- /dev/null +++ b/docs_includes/abbreviations.md @@ -0,0 +1,15 @@ +*[CSP]: Constraint Satisfaction Problem +*[GT]: Group Testing +*[LC]: Least Core +*[LOO]: Leave-One-Out +*[MCLC]: Monte Carlo Least Core +*[MCS]: Monte Carlo Shapley +*[ML]: Machine Learning +*[MLRC]: Machine Learning Reproducibility Challenge +*[MSE]: Mean Squared Error +*[SV]: Shapley Value +*[TMCS]: Truncated Monte Carlo Shapley +*[IF]: Influence Function +*[iHVP]: inverse Hessian-vector product +*[LiSSA]: Linear-time Stochastic Second-order Algorithm +*[DUL]: Data Utility Learning diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 000000000..51f24e756 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,210 @@ +site_name: "pyDVL" +site_dir: "docs_build" +site_url: "https://aai-institute.github.io/pyDVL/" +repo_name: "aai-institute/pyDVL" +repo_url: "https://github.com/aai-institute/pyDVL" +copyright: "Copyright © AppliedAI Institute gGmbH" +remote_branch: gh-pages + +watch: + - src/pydvl + - notebooks + +hooks: + - build_scripts/copy_notebooks.py + - build_scripts/copy_changelog.py + - build_scripts/modify_binder_link.py + +plugins: + - autorefs + - glightbox: + touchNavigation: true + loop: false + effect: zoom + slide_effect: slide + width: 100% + height: auto + zoomable: true + draggable: true + skip_classes: + - custom-skip-class-name + auto_caption: true + caption_position: bottom + - macros + - mike: + canonical_version: stable + - search + - section-index + - alias: + use_relative_link: true + verbose: true + - gen-files: + scripts: + - build_scripts/generate_api_docs.py + - literate-nav: + nav_file: SUMMARY.md + implicit_index: false + tab_length: 2 + - mknotebooks: + execute: false + enable_default_jupyter_cell_styling: false + tag_remove_configs: + remove_cell_tags: + - hide + remove_input_tags: + - hide-input + binder: true + binder_service_name: "gh" + binder_branch: "develop" + - mkdocstrings: + enable_inventory: true + handlers: + python: + import: + - https://docs.python.org/3/objects.inv + - https://numpy.org/doc/stable/objects.inv + - https://pandas.pydata.org/docs/objects.inv + - https://scikit-learn.org/stable/objects.inv + - https://pytorch.org/docs/stable/objects.inv + - https://pymemcache.readthedocs.io/en/latest/objects.inv + paths: [ src ] # search packages in the src folder + options: + docstring_style: google + docstring_section_style: spacy + line_length: 80 + show_bases: true + members_order: source + show_submodules: false + show_signature_annotations: false + signature_crossrefs: true + merge_init_into_class: true + docstring_options: + ignore_init_summary: true + - bibtex: + bib_file: "docs/assets/pydvl.bib" + csl_file: "docs/assets/elsevier-harvard.csl" + cite_inline: true + - git-revision-date-localized: + enable_creation_date: true + type: iso_date + fallback_to_build_date: true + +theme: + name: material + custom_dir: docs/overrides + logo: assets/signet.svg + favicon: assets/signet.svg + icon: + repo: fontawesome/brands/github + features: + - content.code.annotate + - content.code.copy + - navigation.footer +# - content.tooltips # insiders only +# - navigation.indexes + - navigation.instant + - navigation.path +# - navigation.sections +# - navigation.tabs + - navigation.top + - navigation.tracking + - search.suggest + - search.highlight + - toc.follow + palette: # Palette toggle for light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: teal + toggle: + icon: material/brightness-7 + name: Switch to dark mode + # Palette toggle for dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: teal + toggle: + icon: material/brightness-4 + name: Switch to light mode + +extra_css: + - css/extra.css + - css/neoteroi.css + +extra_javascript: + - javascripts/mathjax.js + - https://polyfill.io/v3/polyfill.min.js?features=es6 + - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js + +extra: + transferlab: + website: https://transferlab.appliedai.de + data_valuation_review: https://transferlab.appliedai.de/reviews/data-valuation + copyright_link: https://appliedai-institute.de + version: + provider: mike + default: stable + social: + - icon: fontawesome/brands/github + link: https://github.com/aai-institute/pyDVL + - icon: fontawesome/brands/python + link: https://pypi.org/project/pyDVL/ + - icon: fontawesome/brands/twitter + link: https://twitter.com/aai_transferlab + - icon: fontawesome/brands/linkedin + link: https://de.linkedin.com/company/appliedai-institute-for-europe-ggmbh + +markdown_extensions: + - abbr + - admonition + - attr_list + - footnotes + - markdown_captions + - md_in_html + - neoteroi.cards + - codehilite + - toc: + permalink: True + toc_depth: 3 + - pymdownx.tabbed: + alternate_style: true + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + - pymdownx.highlight: + anchor_linenums: true + pygments_lang_class: true + line_spans: __span + - pymdownx.arithmatex: + generic: true + - pymdownx.inlinehilite + - pymdownx.snippets: + auto_append: + - docs_includes/abbreviations.md + - pymdownx.superfences + - pymdownx.details + +nav: + - Home: index.md + - Getting Started: + - Installation: getting-started/installation.md + - First steps: getting-started/first-steps.md + - Data Valuation: + - Introduction: value/index.md + - Notation: value/notation.md + - Shapley Values: value/shapley.md + - Semi-values: value/semi-values.md + - The core: value/the-core.md + - Examples: + - Shapley values: examples/shapley_basic_spotify.ipynb + - KNN Shapley: examples/shapley_knn_flowers.ipynb + - Data utility learning: examples/shapley_utility_learning.ipynb + - Least Core: examples/least_core_basic.ipynb + - The Influence Function: + - Introduction: influence/index.md + - Examples: + - For CNNs: examples/influence_imagenet.ipynb + - For mislabeled data: examples/influence_synthetic.ipynb + - For outlier detection: examples/influence_wine.ipynb + - Code: + - Changelog: CHANGELOG.md + - API: api/pydvl/ diff --git a/notebooks/influence_imagenet.ipynb b/notebooks/influence_imagenet.ipynb index d7494436a..bbc6e827f 100644 --- a/notebooks/influence_imagenet.ipynb +++ b/notebooks/influence_imagenet.ipynb @@ -333,52 +333,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "eb973044c7634b2eb8ca3a1bc0b1a79f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Split Gradient: 0%| | 0/98 [00:00" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ - "plot_dataset(\n", + "plot_gaussian_blobs(\n", " train_data,\n", " test_data,\n", " xlabel=\"$x_0$\",\n", @@ -235,6 +248,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "dce9b1d3", "metadata": {}, @@ -243,6 +257,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "3d6bbcac", "metadata": {}, @@ -262,36 +277,53 @@ "name": "stderr", "output_type": "stream", "text": [ - "Model fitting: 100%|██████████| 50/50 [00:03<00:00, 14.92it/s]\n" + "Model fitting: 0%| | 0/50 [00:00" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ - "_, ax = plt.subplots()\n", - "ax.plot(train_loss, label=\"Train\")\n", - "ax.plot(val_loss, label=\"Val\")\n", - "ax.legend()\n", - "plt.show()" + "plot_losses(losses)" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "779b9394", "metadata": {}, @@ -342,37 +369,27 @@ "outputs": [ { "data": { + "image/png": "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T5I8+uijWbBgQSZPntz2mubm5kycODFz5sxJksyZMydDhgxpa0ySZPLkyWloaMjcuXM3uBbJCQAA1EhrSmlNffcdWTteS0tLu/P9+vVLv3791rn/5JNPTktLS1772temV69eaW1tzRe/+MVMnz49SbJgwYIkyciRI9u9buTIkW3XFixYkBEjRrS73rt372y22WZt92wIyQkAAHRD48aNS3Nzc9tx1llnrfe+//mf/8kll1ySH//4x7nzzjtz8cUX56tf/WouvvjiOlcsOQEAgJrZmAXqHTFmksybNy9NTU1t59eXmiTJxz/+8Zx88smZNm1akmTnnXfO448/nrPOOiszZszIqFGjkiQLFy7M6NGj2163cOHC7LrrrkmSUaNGZdGiRe3ed/Xq1Xn22WfbXr8hJCcAANANNTU1tTteqTl58cUX09DQvi3o1atXyuVykmTChAkZNWpUrrvuurbrLS0tmTt3biZNmpQkmTRpUpYsWZI77rij7Z7f/e53KZfLmThx4gbXLDkBAIAaaU06Yc1Jdd797nfni1/8Yrbccsu87nWvy1133ZVzzjknH/rQh5IkpVIpJ5xwQr7whS9ku+22y4QJE3LqqadmzJgxec973pMk2WGHHfLOd74zRx55ZGbNmpVVq1bl2GOPzbRp0zb4SV2J5gQAAHq0888/P6eeemo+8pGPZNGiRRkzZkyOPvronHbaaW33fOITn8iyZcty1FFHZcmSJdl7771z9dVXp7Gxse2eSy65JMcee2ze8Y53pKGhIQcffHDOO++8qmopVV6+9WMX19LSkubm5jz2wOg0DTZjDejaDh07qbNLANhkqyurckMuz9KlS9utf+ju1v5cetrcyWkc1KeuYy9/YVXOmHhtl/yeS04AAKBGOnNBfFfUdSsHAAC6FckJAADUSGulIa11TjLqPV5H6rqVAwAA3YrmBAAAKATTugAAoEYqKaVc531OKnUeryNJTgAAgEKQnAAAQI1YEF+drls5AADQrUhOAACgRsqVUsqV+q4Bqfd4HUlyAgAAFILmBAAAKATTugAAoEZa05DWOucB9R6vI3XdygEAgG5FcgIAADViQXx1JCcAAEAhaE4AAIBCMK0LAABqpJyGlOucB9R7vI7UdSsHAAC6FckJAADUSGullNY6L1Cv93gdSXICAAAUguQEAABqxKOEqyM5AQAACkFz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mlW9d6TvSJITAACgECQnAABQI5VKJ2zC2IV3YZScAAAAhaA5AQAACsG0LgAAqBH7nFRHcgIAABSC5AQAAGpEclIdyQkAAFAImhMAAKAQTOsCAIAasUN8dSQnAABAIUhOAACgRuwQXx3JCQAAUAiSEwAAqJE1yUm9HyVc1+E6lOQEAAAoBM0JAABQCKZ1AQBAjdghvjqSEwAAoBAkJwAAUCOVvx/1HrOrkpwAAACFoDkBAAAKwbQuAACoEQviqyM5AQAACkFyAgAAtWJFfFUkJwAA0MP97W9/y2GHHZZhw4alf//+2XnnnXP77be3Xa9UKjnttNMyevTo9O/fP5MnT87DDz/c7j2effbZTJ8+PU1NTRkyZEiOOOKIvPDCC1XVoTkBAIBa+fuak3oeqXLNyXPPPZe99torffr0yVVXXZX77rsvX/va1zJ06NC2e84+++ycd955mTVrVubOnZuBAwdmypQpWb58eds906dPz7333pvZs2fniiuuyE033ZSjjjqqqlpM6wIAgB7sy1/+csaNG5cLL7yw7dyECRPa/rtSqeTcc8/NKaeckgMPPDBJ8oMf/CAjR47MZZddlmnTpuX+++/P1VdfnT/84Q/ZY489kiTnn39+pk6dmq9+9asZM2bMBtUiOQEAgG6opaWl3bFixYr13verX/0qe+yxRw455JCMGDEib3jDG/Ld73637fqjjz6aBQsWZPLkyW3nmpubM3HixMyZMydJMmfOnAwZMqStMUmSyZMnp6GhIXPnzt3gmjUnAABQI5VK5xxJMm7cuDQ3N7cdZ5111nprfOSRRzJz5sxst912ueaaa/LhD384H/3oR3PxxRcnSRYsWJAkGTlyZLvXjRw5su3aggULMmLEiHbXe/func0226ztng1hWhcAAHRD8+bNS1NTU9vX/fr1W+995XI5e+yxR84888wkyRve8Ibcc889mTVrVmbMmFGXWteSnAAAQI3UezH8yzd9bGpqane8UnMyevTo7Ljjju3O7bDDDnniiSeSJKNGjUqSLFy4sN09CxcubLs2atSoLFq0qN311atX59lnn227Z0NoTgAAoAfba6+98uCDD7Y799BDD2WrrbZKsmZx/KhRo3Lddde1XW9pacncuXMzadKkJMmkSZOyZMmS3HHHHW33/O53v0u5XM7EiRM3uBbTugAAoAf72Mc+lje/+c0588wzc+ihh+a2227Ld77znXznO99JkpRKpZxwwgn5whe+kO222y4TJkzIqaeemjFjxuQ973lPkjVJyzvf+c4ceeSRmTVrVlatWpVjjz0206ZN2+AndSWaEwAAqJ2N2HekQ8aswhvf+MZceuml+dSnPpUzzjgjEyZMyLnnnpvp06e33fOJT3wiy5Yty1FHHZUlS5Zk7733ztVXX53Gxsa2ey655JIce+yxecc73pGGhoYcfPDBOe+886qqpVSprF3P3/W1tLSkubk5jz0wOk2DzVgDurZDx07q7BIANtnqyqrckMuzdOnSdouzu7u1P5eO//6paRjQ+K9f0IHKLy7PY0d8vkt+zyUnAABQIy9/tG89x+yqxAsAAEAhSE4AAKBWKn8/6j1mFyU5AQAACkFzAgAAFIJpXQAAUCMv37G9nmN2VZITAACgECQnAABQS114gXq9SU4AAIBC0JwAAACFYFoXAADUiAXx1ZGcAAAAhSA5AQCAWrFDfFUkJwAAQCFITgAAoGZKfz/qPWbXJDkBAAAKQXMCAAAUgmldAABQKxbEV0VyAgAAFMIGJSc33XTTRr35Pvvss1GvAwCAbkFyUpUNak7e9ra3pVTa8FX/lUolpVIpra2tG10YAADQs2xQc3L99dfXug4AAKCH26Dm5K1vfWut6wAAgO6nUlpz1HvMLmqTF8Q/9dRT+eMf/5hly5Z1RD0AAEAPtdHNyeWXX57Xvva1GTt2bHbbbbfMnTs3SfL000/nDW94Qy677LKOqhEAALqkSqVzjq5qo5qTX//61znooIOy+eab5/TTT0/lZd+BzTffPFtssUUuvPDCDisSAADo/jaqOTnjjDOyzz775JZbbskxxxyzzvVJkyblrrvu2uTiAACgS6t00tFFbVRzcs899+TQQw99xesjR47MokWLNrooAACg59mo5mTAgAGvugD+kUceybBhwza6KAAAoOfZqOZk3333zcUXX5zVq1evc23BggX57ne/m/3222+TiwMAgC5t7aOE6310URvVnHzxi1/Mk08+mTe+8Y359re/nVKplGuuuSannHJKdt5551QqlZx++ukdXSsAANCNbVRz8prXvCa33HJLhg0bllNPPTWVSiVf+cpXcuaZZ2bnnXfOzTffnPHjx3dwqQAA0LWUKp1zdFUbtEP8+rzuda/Ltddem+eeey5/+ctfUi6Xs/XWW2f48OEdWR8AANBDbHRzstbQoUPzxje+sSNqAQAAerCN3iF+8eLFOemkk7LjjjtmwIABGTBgQHbcccecdNJJWbhwYUfWCAAAXZN9TqqyUc3Jvffem5133jnnnHNOmpubc8ghh+SQQw5Jc3NzzjnnnOyyyy655557OrpWAACgG9uoaV3HHHNMWltbM3fu3HWmdN12222ZOnVqjjvuuFx//fUdUiQAAHRJnfFo3572KOHbbrstxx9//HrXmuy55545/vjjM3fu3E0uDgAA6Dk2KjkZMWJEGhsbX/F6Y2NjRowYsdFFAQBAt9AZa0B62pqTE044ITNnzsyCBQvWuTZ//vzMnDkzJ5xwwqbWBgAA9CAblJycc84565wbNGhQtt122/z7v/97tt122yTJww8/nMsuuyzbbrttKpUu3LIBAAB1V6psQBfR0FB9wFIqldLa2rpRRW2slpaWNDc357EHRqdp8EY/JRmgEA4dO6mzSwDYZKsrq3JDLs/SpUvT1NTU2eXUzdqfS8d97fNp6P/KyyFqofzS8sz7r1O75Pd8g5KTRx99tNZ1AAAAPdwGNSdbbbVVresAAIDux4L4qpj7BAAAFMJGPUo4Sf70pz/l/PPPz5133pmlS5emXC63u14qlfLXv/51kwsEAAB6ho1KTm644YbsueeeueKKKzJmzJg88sgj2XrrrTNmzJg8/vjjGTRoUPbZZ5+OrhUAALqWtTvE1/voojaqOTnttNOy9dZb58EHH8yFF16YJPn0pz+dW265JbfeemuefPLJHHrooR1aKAAA0L1tVHNy55135ogjjkhTU1N69eqVJG2PDZ44cWKOPvronHrqqR1XJQAAdEGlSuccXdVGNSe9e/fO4MGDkyRDhgxJnz59smjRorbrW2+9de67776OqRAAAOgRNqo52XbbbfPwww8nWbPw/bWvfW0uvfTStuu/+c1vMmrUqI6pEAAA6BE2qjmZOnVqfvKTn2T16tVJkhNPPDG//OUvs91222W77bbLr371qxx99NEdWigAAHQ5lU46uqiNepTwqaeemuOPP75tvcmMGTPSq1ev/OIXv0ivXr3ymc98JocffnhH1gkAAHRzG9Wc9OnTJ8OGDWt37rDDDsthhx3WIUUBAAA9jx3iAQCAQtig5OTtb3971W9cKpVy3XXXVf06AADoLkqp/6N9u+4WjBvYnJTL5ZRK1X3MSqULr8QBAADqboOakxtuuKHGZXSsw1+7Z3qX+nR2GQCb5Jr5d3d2CQCbrOX5coZu39lV0FVs1IJ4AABgA1RKa456j9lFWRAPAAAUguQEAABqpTM2RezCS78lJwAAQCFoTgAAgEIwrQsAAGrFtK6qbFJz8re//S033XRTFi1alIMPPjhjx45Na2trli5dmubm5vTq1auj6gQAALq5jZrWValUcuKJJ2bChAmZPn16TjzxxDz00ENJkhdeeCHjx4/P+eef36GFAgBAV1OqdM7RVW1Uc/KVr3wl3/jGN3LSSSdl9uzZ7XaDb25uzkEHHZRf/OIXHVYkAADQ/W3UtK7vfve7+cAHPpAzzzwzzzzzzDrXd9lll1x11VWbXBwAAHRp1pxUZaOSk3nz5uXNb37zK14fOHBgWlpaNrooAACg59mo5mTEiBGZN2/eK16/4447suWWW250UQAAQM+zUc3JQQcdlFmzZuWRRx5pO1cqlZIkv/3tb3PRRRflkEMO6ZgKAQCgq6p00tFFbVRz8rnPfS6jR4/Orrvumg984AMplUr58pe/nL333jv7779/dtlll3z605/u6FoBAIBubKOak+bm5vz+97/PJz7xifztb39LY2NjbrzxxixZsiSnn356br755gwYMKCjawUAgC7Fo4Srs9GbMPbv3z+nnHJKTjnllI6sBwAA6KE2KjkBAADoaBuVnHzoQx/6l/eUSqV8//vf35i3BwCA7qFSWnPUe8wuaqOak9/97ndtT+daq7W1NU899VRaW1szfPjwDBw4sEMKBAAAeoaNak4ee+yx9Z5ftWpVvv3tb+fcc8/N7NmzN6UuAADo+uwQX5UOXXPSp0+fHHvssdlvv/1y7LHHduRbAwAA3VxNFsS//vWvz0033VSLtwYAgC7Do4SrU5PmZPbs2fY5AQAAqrJRa07OOOOM9Z5fsmRJbrrpptx55505+eSTN6kwAACgZ9mo5uSzn/3ses8PHTo022yzTWbNmpUjjzxyU+oCAICuz4L4qmxUc1Iulzu6DgAAoIeres3JSy+9lBNPPDG//vWva1EPAAB0H52xGL4LJydVNyf9+/fPt7/97SxcuLAW9QAAAD3URj2ta/fdd88999zT0bUAAAA92EY1J+eee25++tOf5nvf+15Wr17d0TUBAED3UOmko4va4AXxN910U3bYYYcMHz48M2bMSENDQ44++uh89KMfzRZbbJH+/fu3u79UKuWPf/xjhxcMAAB0TxvcnOy777750Y9+lPe9730ZNmxYNt9887zmNa+pZW0AANC1eZRwVTa4OalUKqlU1nzSG264oVb1AAAAPdRG7XMCAAD8a22P963zmF1VVQviS6VSreoAAAB6uKqak8MOOyy9evXaoKN3b6EMAACw4arqICZPnpztt9++VrUAAAA9WFXNyYwZM/If//EftaoFAADowcy9AgCAWvEo4aps1A7xAAAAHU1zAgAAFMIGT+sql8u1rAMAALod+5xUR3ICAAAUggXxAABQS104yag3yQkAAFAIkhMAAKgVjxKuiuQEAAAoBM0JAABQCKZ1AQBAjXiUcHUkJwAAQCFITgAAoFYsiK+K5AQAACgEzQkAAFAIpnUBAECNWBBfHckJAABQCJITAACoFQviqyI5AQAACkFyAgAAtSI5qYrkBAAAKATNCQAAUAimdQEAQI14lHB1JCcAAEAhSE4AAKBWLIiviuQEAAAoBM0JAABQCKZ1AQBArZjWVRXJCQAAUAiaEwAAqJG1jxKu97GxvvSlL6VUKuWEE05oO7d8+fIcc8wxGTZsWAYNGpSDDz44CxcubPe6J554IgcccEAGDBiQESNG5OMf/3hWr15d9fiaEwAAIH/4wx/y7W9/O7vssku78x/72Mfy61//Oj/72c9y4403Zv78+TnooIParre2tuaAAw7IypUrc+utt+biiy/ORRddlNNOO63qGjQnAADQw73wwguZPn16vvvd72bo0KFt55cuXZrvf//7Oeecc/L2t789u+++ey688MLceuut+f3vf58k+e1vf5v77rsvP/rRj7Lrrrtm//33z+c///lccMEFWblyZVV1aE4AAKBWKp10JGlpaWl3rFix4hXLPOaYY3LAAQdk8uTJ7c7fcccdWbVqVbvzr33ta7Pllltmzpw5SZI5c+Zk5513zsiRI9vumTJlSlpaWnLvvfdW9e3SnAAAQDc0bty4NDc3tx1nnXXWeu/76U9/mjvvvHO91xcsWJC+fftmyJAh7c6PHDkyCxYsaLvn5Y3J2utrr1XDo4QBAKBGNnWB+saOmSTz5s1LU1NT2/l+/fqtc++8efNy/PHHZ/bs2WlsbKxXia9IcgIAAN1QU1NTu2N9zckdd9yRRYsWZbfddkvv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v32amprand9zzz2TJHfffXcnVAUA0L1oTmADPPXUUxk9evQ659eemz9/fr1LAgDodjQnsAFeeuml9OvXb53zjY2NbdcBANg0mhPYAP3798+KFSvWOb98+fK26wAAbBrNCWyA0aNH56mnnlrn/NpzY8aMqXdJAADdjuYENsCuu+6ahx56KC0tLe3Oz507t+06AACbRnMCG+C9731vWltb853vfKft3IoVK3LhhRdm4sSJGTduXCdWBwDQPfTu7AKgK5g4cWIOOeSQfOpTn8qiRYuy7bbb5uKLL85jjz2W73//+51dHkDVvvnNb2bJkiVtTxv89a9/nSeffDJJctxxx6W5ubkzywN6KDvEwwZavnx5Tj311PzoRz/Kc889l1122SWf//znM2XKlM4uDaBq48ePz+OPP77ea48++mjGjx9f34IAojkBAAAKwpoTAACgEDQnAABAIWhOAACAQtCcAAAAhaA5AQAACkFzAgAAFILmBAAAKATNCQAAUAiaE4ANNH78+Bx++OFtX99www0plUq54YYbOq2mf/bPNb6SUqmUz372s1W//0UXXZRSqZTbb7+9+uJewWc/+9mUSqUOez8Aui7NCdAlrP2heO3R2NiY7bffPscee2wWLlzY2eVV5corr9yoxgAAurvenV0AQDXOOOOMTJgwIcuXL88tt9ySmTNn5sorr8w999yTAQMG1LWWffbZJy+99FL69u1b1euuvPLKXHDBBRoUAPgnmhOgS9l///2zxx57JEn+8z//M8OGDcs555yTyy+/PO973/vW+5ply5Zl4MCBHV5LQ0NDGhsbO/x9AaCnMq0L6NLe/va3J0keffTRJMnhhx+eQYMG5a9//WumTp2awYMHZ/r06UmScrmcc889N6973evS2NiYkSNH5uijj85zzz3X7j0rlUq+8IUvZOzYsRkwYED23Xff3HvvveuM/UprTubOnZupU6dm6NChGThwYHbZZZd84xvfaKvvggsuSJJ209TW6ugaN9Tjjz+ej3zkI3nNa16T/v37Z9iwYTnkkEPy2GOPrff+F198MUcffXSGDRuWpqamfOADH1inxiS56qqr8pa3vCUDBw7M4MGDc8ABB2xSnQB0b5IToEv761//miQZNmxY27nVq1dnypQp2XvvvfPVr361bbrX0UcfnYsuuigf/OAH89GPfjSPPvpovvnNb+auu+7K//7v/6ZPnz5JktNOOy1f+MIXMnXq1EydOjV33nln9ttvv6xcufJf1jN79uy8613vyujRo3P88cdn1KhRuf/++3PFFVfk+OOPz9FHH5358+dn9uzZ+eEPf7jO6+tR4/r84Q9/yK233ppp06Zl7NixeeyxxzJz5sy87W1vy3333bfOlLljjz02Q4YMyWc/+9k8+OCDmTlzZh5//PG2hi1JfvjDH2bGjBmZMmVKvvzlL+fFF1/MzJkzs/fee+euu+7K+PHjN6pWALqxCkAXcOGFF1aSVK699trK4sWLK/Pmzav89Kc/rQwbNqzSv3//ypNPPlmpVCqVGTNmVJJUTj755Havv/nmmytJKpdcckm781dffXW784sWLar07du3csABB1TK5XLbfZ/+9KcrSSozZsxoO3f99ddXklSuv/76SqVSqaxevboyYcKEylZbbVV57rnn2o3z8vc65phjKuv767cWNb6SJJXTTz+97esXX3xxnXvmzJlTSVL5wQ9+0HZu7f8fdt9998rKlSvbzp999tmVJJXLL7+8UqlUKs8//3xlyJAhlSOPPLLdey5YsKDS3Nzc7vzpp5++3u8HAD2PaV1AlzJ58uQMHz4848aNy7Rp0zJo0KBceuml2WKLLdrd9+EPf7jd1z/72c/S3Nycf/u3f8vTTz/dduy+++4ZNGhQrr/++iTJtddem5UrV+a4445rN93qhBNO+Je13XXXXXn00UdzwgknZMiQIe2ubcijcutR4yvp379/23+vWrUqzzzzTLbddtsMGTIkd9555zr3H3XUUW0pTrLm+927d+9ceeWVSdYkSEuWLMn73ve+dp+lV69emThxYttnAYCXM60L6FIuuOCCbL/99undu3dGjhyZ17zmNWloaP97lt69e2fs2LHtzj388MNZunRpRowYsd73XbRoUZI1ay+SZLvttmt3ffjw4Rk6dOir1rZ2itlOO+204R+ozjW+kpdeeilnnXVWLrzwwvztb39LpVJpu7Z06dJ17v/nsQcNGpTRo0e3rVF5+OGHk/xjTdA/a2pq2qg6AejeNCdAl7Lnnnu2Pa3rlfTr12+dhqVcLmfEiBG55JJL1vua4cOHd1iNG6szazzuuONy4YUX5oQTTsikSZPS3NycUqmUadOmpVwuV/1+a1/zwx/+MKNGjVrneu/e/vkBYF3+dQB6hG222SbXXntt9tprr3ZTmP7ZVlttlWTNb/633nrrtvOLFy9e79Oo/nmMJLnnnnsyefLkV7zvlaZ41aPGV/Lzn/88M2bMyNe+9rW2c8uXL8+SJUvWe//DDz+cfffdt+3rF154IU899VSmTp3a9lmSZMSIEa/6vQCAl7PmBOgRDj300LS2tubzn//8OtdWr17d9kP45MmT06dPn5x//vntpjade+65/3KM3XbbLRMmTMi55567zg/1L3+vtXuu/PM99ajxlfTq1avdeyXJ+eefn9bW1vXe/53vfCerVq1q+3rmzJlZvXp19t9//yTJlClT0tTUlDPPPLPdfWstXrx4o2sFoPuSnAA9wlvf+tYcffTROeuss3L33Xdnv/32S58+ffLwww/nZz/7Wb7xjW/kve99b4YPH56TTjopZ511Vt71rndl6tSpueuuu3LVVVdl8803f9UxGhoaMnPmzLz73e/Orrvumg9+8IMZPXp0Hnjggdx777255pprkiS77757kuSjH/1opkyZkl69emXatGl1qfGVvOtd78oPf/jDNDc3Z8cdd8ycOXNy7bXXtntE88utXLky73jHO3LooYfmwQcfzLe+9a3svffe+T//5/8kWbOmZObMmXn/+9+f3XbbLdOmTcvw4cPzxBNP5De/+U322muvfPOb39yoWgHovjQnQI8xa9as7L777vn2t7+dT3/60+ndu3fGjx+fww47LHvttVfbfV/4whfS2NiYWbNm5frrr8/EiRPz29/+NgcccMC/HGPKlCm5/vrr87nPfS5f+9rXUi6Xs8022+TII49su+eggw7Kcccdl5/+9Kf50Y9+lEqlkmnTptWtxvX5xje+kV69euWSSy7J8uXLs9dee+Xaa6/NlClT1nv/N7/5zVxyySU57bTTsmrVqrzvfe/Leeed127K2n/8x39kzJgx+dKXvpSvfOUrWbFiRbbYYou85S1vyQc/+MGNqhOA7q1U+eccHwAAoBNYcwIAABSC5gQAACgEzQkAAFAImhMAAKAQNCcAAEAhaE4AAIBC0JwAAACFoDkBAAAKQXMCAAAUguYEAAAoBM0JAABQCJoTAACgEDQnAABAIfz/jshTKo+d8dMAAAAASUVORK5CYII=", "text/plain": [ - "" + "
" ] }, - "execution_count": 12, "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, "output_type": "display_data" } ], "source": [ + "model.eval()\n", "pred_probabilities = model(test_data[0]).detach()\n", "pred_y_test = [1 if prob > 0.5 else 0 for prob in pred_probabilities]\n", "\n", "cm = confusion_matrix(test_data[1], pred_y_test)\n", "disp = ConfusionMatrixDisplay(confusion_matrix=cm)\n", - "disp.plot()" + "disp.plot();" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "ab0b0cf8", "metadata": {}, @@ -381,6 +398,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "416eb518", "metadata": {}, @@ -398,6 +416,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "62564ecc", "metadata": {}, @@ -417,6 +436,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "0bc2b6ff", "metadata": {}, @@ -431,19 +451,22 @@ "metadata": {}, "outputs": [], "source": [ + "train_data_loader = DataLoader(list(zip(x, y.astype(float))), batch_size=batch_size)\n", + "test_data_loader = DataLoader(\n", + " list(zip(test_data[0], test_data[1].astype(float))), batch_size=batch_size\n", + ")\n", + "\n", "influence_values = compute_influences(\n", - " model=model,\n", - " loss=F.binary_cross_entropy,\n", - " x=x,\n", - " y=y.astype(float),\n", - " x_test=test_data[0],\n", - " y_test=test_data[1].astype(float),\n", + " differentiable_model=TorchTwiceDifferentiable(model, F.binary_cross_entropy),\n", + " training_data=train_data_loader,\n", + " test_data=test_data_loader,\n", " influence_type=\"up\",\n", " inversion_method=\"direct\", # use 'cg' for big models\n", ")" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "d1e98dc2", "metadata": {}, @@ -463,10 +486,11 @@ "metadata": {}, "outputs": [], "source": [ - "mean_train_influences = np.mean(influence_values, axis=0)" + "mean_train_influences = np.mean(influence_values.numpy(), axis=0)" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "f22020de", "metadata": {}, @@ -482,24 +506,12 @@ "outputs": [ { "data": { + "image/png": "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AJAL3AoKAAAAAACQzzhMUw7TtZMJuPp4hQE91gAAAAAAAIBcoMcaAAAAAABAPuOUKadc24PM1ccrDOixBgAAAAAAAOQChTUAAAAAAAAgF7gVFAAAAAAAIJ9xypSDW0HzPXqsAQAAAAAAALlAjzUAAAAAAIB8hskLCgZ6rAEAAAAAAAC5QI81AAAAAACAfMZhmnKYru1B5urjFQb0WAMAAAAAAAByocAW1saPH6/GjRvLz89PpUuXVvfu3bVnz56rPm7mzJmqXbu2vLy8FBISot9++80FaQEAAAAAAFDYFNjC2ooVK/T0009r/fr1+uOPP5SamqpOnTopISEhy8esXbtWvXr10qOPPqpt27ape/fu6t69uyIiIlyYHAAAAAAAIHtOixbkjGGaheMG2tOnT6t06dJasWKF2rRpk2mbnj17KiEhQfPnz09f16xZM9WvX1+TJk26puPExcUpICBAsbGx8vf3vyHZAQAAAABARkX1/ffl8969q4z8/FzbHyo+3qnat0QXuWt+PQpsj7V/i42NlSQVL148yzbr1q1Thw4dMqzr3Lmz1q1bl6fZrPbtt99q48aNVscAAAAAAADXyCHTkgU5UygKa06nU88++6xatmyp4ODgLNtFRUWpTJkyGdaVKVNGUVFRWT4mOTlZcXFxGZaCZM+ePRowYIBatGihl156ScnJyVZHAgAAAAAAKBQKRWHt6aefVkREhH744Ycbvu/x48crICAgfalUqdINP0ZeKlWqlO655x45HA698cYbatKkicLDw62OBQAAAAAAUOAV+MLaoEGDNH/+fC1btkwVK1bMtm3ZsmUVHR2dYV10dLTKli2b5WNGjhyp2NjY9OXo0aM3JLerFC9eXN99951mzZqlUqVKaceOHWrcuLFeffVVpaamWh0PAAAAAABkwmFasyBnCmxhzTRNDRo0SD/99JOWLl2qatWqXfUxzZs315IlSzKs++OPP9S8efMsH+Pp6Sl/f/8MS0F07733KiIiQvfcc4/S0tI0atQoNW/eXJGRkVZHAwAAAAAAKJAKbGHt6aef1rfffqvp06fLz89PUVFRioqKUmJiYnqb3r17a+TIkelfDxkyRAsXLtQ777yj3bt3a8yYMdq8ebMGDRpkxSm4XOnSpTVr1ix99913CgoK0pYtW9SgQQO99dZbcjgcVscDAAAAAAB/c1q0IGcK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EhMTNWTIELVv314HDx60Oh4AAAAAoJBj8oKCgSsGZKNy5cpatGiRPvnkE/n4+GjFihUKCQnRZ599JtM0rY4HAAAAAAAsRGENuArDMDRw4EDt2LFDrVu3VkJCgp588kl16dJFR48etToeAAAAAKAQckpymIZLFwY/yjkKa8A1qlGjhpYvX653331XXl5eWrRokYKDgzVlyhR6rwEAAAAAUARRWANywGaz6b///a+2bdumpk2bKi4uTv369VO3bt108uRJq+MBAAAAAAoJp2yWLMgZrhiQC7Vr19bq1as1fvx4eXh4aP78+QoODtb3339P7zUAAAAAAIoICmtALrm5uWnEiBHasmWLwsLCdO7cOT344IP6z3/+o9OnT1sdDwAAAAAA5DEKa8B1Cg4O1oYNGzRmzBi5ublp1qxZqlu3rn766SerowEAAAAACiiHabNkQc5wxYAbwN3dXaNHj9aGDRsUHBys06dP65577tHDDz+s8+fPWx0PAAAAAADkAQprwA3UoEEDbd68WSNHjpTNZtN3332nunXr6rfffrM6GgAAAACgAHHKsGRBzlBYA24wT09PvfHGG1q7dq1q1aqlkydPqmvXrnr00UcVGxtrdTwAAAAAAHCDUFgD8kjTpk21bds2/fe//5VhGPr6668VEhKixYsXWx0NAAAAAADcABTWgDzk7e2td999VytWrFD16tV19OhRdezYUU899ZQuXLhgdTwAAAAAQD7F5AUFA1cMcIHWrVtr+/bteuqppyRJn376qUJDQ7Vy5UqLkwEAAAAAgNyisAa4SLFixfTxxx9r8eLFqly5sg4cOKB27dpp6NChSkxMtDoeAAAAACAfcchmyYKc4YoBLnbbbbdp586deuyxx2Sapt577z2FhYVpw4YNVkcDAAAAAAA5QGENsIC/v7+++OIL/frrrypfvrz27NmjFi1aaOTIkUpOTrY6HgAAAADAYk7TsGRBzlBYAyx0xx13KCIiQg8//LCcTqfefPNNNWrUSFu3brU6GgAAAAAAuAoKa4DFgoKCNG3aNM2ZM0elS5dWRESEmjZtqjFjxig1NdXqeAAAAAAAIAsU1oB8okePHoqIiNB9992ntLQ0jR07Vk2bNtXOnTutjgYAAAAAcDGnBRMXOCkT5RhXDMhHSpUqpR9//FHff/+9ihcvrm3btqlRo0YaP3680tLSrI4H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c9k2qh9YR39Er9ahhGNyt7mrcfF6almioTztHlbHw1VcnlDA1cdEzlBYA1Do1a1bV+vWrdObb76pcePG6aefftKqVas0adIk3XvvvVbHA/Kcl81LhowMhaJ/87R5ujBR/uXv7qcxdV/SH9FLtezUCp1PiVExN1+1LtVSXcp2VJBHoNURAQDIkTJeJfVwle5WxwAKLQprAIoEd3d3vfLKK7rrrrvUp08f7dixQ/fdd5969eqljz76SMWLF7c6IpBnGhVvol3xWc9kaZNNTYs3dWGi/M3XzUfdK9yp7hXutDoKAAAowpymTU7TtSN4ufp4hQFXDECRUr9+fW3atEkvvfSS7Ha7vv/+e9WtW1fz58+3OhqQZ5oVb67iHiWynEnRw+ah9qU7WJAMAAAAKNgorAEocjw8PPTaa69p7dq1ql27tqKionTXXXepX79+io2NtToecMN52j01rNYLKu1VRpJkk112wy5JKuZWTENvHqYSniWtjAgAAIB/uTzGmquXnPr4449VtWpVeXl5qWnTptq4cWO27WfOnKnatWvLy8tLISEh+u2333J7ifIFCmsAiqwmTZpo69ateu6552QYhqZMmaLg4GAtWrTI6mjADVfKs7TG1X1dz9Z8Th3KdNStpdrriepP6a1676p6sRpWxwMAAEABNGPGDA0dOlSjR4/W1q1bFRoaqs6dO+vUqVOZtl+7dq169eqlRx99VNu2bVP37t3VvXt3RUREuDj5jWOYppn1SMa4QlxcnAICAhQbGyt/f3+r4wC4QVavXq2+fftq//79kqQnnnhCb7/9tvz8/CxOBgAAABRNRfX99+XzvntRf7n7unb21tSEFM3r9PU1X/OmTZuqcePG+uijjyRJTqdTlSpV0jPPPKMRI0Zc0b5nz55KSEjIMBRPs2bNVL9+fU2aNOnGnYgL0WMNACS1atVK27dv16BBgyRJn332mUJDQ7VixQqLkwEozGJTY/VH9BL9dGyeVp1erSRHktWRAABAPuGUYckiXSru/XNJTk6+Il9KSoq2bNmiDh3+f6xem82mDh06aN26dZme07p16zK0l6TOnTtn2b4gYFZQAPibr6+v/ve//6lHjx7q37+/Dh48qHbt2mnIkCF644035OPjY3VE4LpcTEvQ2rOrtTNmu1LNVFX3vUltSrVLH3sNruM0nZp5bLYWnlwkU6Zshk0O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Gr6+vurXr5/ee++9XO+DwhoAADfYHXfcoYiICD388MNyOp2aMGGCGjZsqC1btlgdDflYiVJ+GjyiqyRdMYaaYRiq16AKhTXAAr5uvjKz60qa3s7HBWkAADea0+lUVFRUrh9PYQ0AgDwQFBSkadOmac6cOSpdurQiIyPVtGlTjRkzRqmpqVbHQz51R/cGeuPDhxQc9v+zUpUo5ad+T92q1z94kNtAAQs0L9FITmU9AKJNhur611aAu78LUwEoEkyLliIiLi5O8+fP19tvv62wsOzvHMgOr84AAMhDPXr0UKtWrfT0009r5syZGjt2rH7++WdNnTpVISEhVsdDPtSoWQ01alZDSUmpSk1JUzE/r2uayQpA3ijjVUrtS7fWslOrZf7rHafx9/hH91fqZk04AMBV2Wy2LF9LmaapypUr65NPPsn1/imsAQCQx0qVKqUff/xRM2bM0FNPPaVt27apYcOGGjt2rIYNGyY3N34d40peXu7y8nK3OgbygVRnimJSY+Rp85S/e4DVcYqkflV7yc2wa3H0SplyypBNTjnl51ZMA2v0VS2/m6yOCKAwsqIHWSHssTZq1KgrCmuGYSgoKEg1atRQp06druv1uGFey4ABSBcXF6eAgADFxsbK35/u3gCAnImKitLjjz+uX375RZLUtGlTTZkyRbVr17Y4GYD85mJagn45MVerz6xQsvPSBChVfarrzvJ3q15gfWvDFVHnU2K0+fx2JToSVc6rjMICQ+Rm48MRIK8U1fffl8+70idjZPP2cumxnYlJOvrUmDy55ufOndMzzzyjX375RTabTffee68++OADFStWLMvHfP7555o+fbq2bt2q+Ph4nT9/XoGBgTc01/VijDUAAFyobNmymjdvnqZMmaKAgABt2LBBYWFheu+99+R0Zj2GD4Ci5WJagibsfk3LTi1OL6pJ0uGLB/XRvve0+vQKC9MVXUEegepYpq26le+ixsXDKKoBQA489NBDioyM1B9//KH58+dr5cqVevzxx7N9zMWLF9WlSxe9+OKLLkqZc/RYy6GiWjEHANx4x44d06OPPqpFixZJklq3bq3JkyerRo0aFicDYLVZR2docfTCLAfNtxt2vR36oYq5Zf0pPwAUdEX1/Xd6j7WPx1rTY+3p0Tf8mu/atUt16tTRpk2b1KhRI0nSwoULdccdd+jYsWMqX758to9fvny5br311mvqsda/f/8c5zMMQ1999VWOHycxxhoAAJapWLGiFi5cqC+++ELPPfecVq1apXr16untt9/Wk08+KZuNjuVAUZTmTNOqM8uynYnSaTq17sxqdSzbxYXJAABFRVxcXIavPT095enpmev9rVu3ToGBgelFNUnq0KGDbDabNmzYoB49euR63/+2dOnSHE/8dD0TRVFYAwDAQoZh6PHHH1enTp3Ur18/LV++XE8//bTmzJmjr7/+WpUrV7Y6IgAXS3BcUKIjMds2NtkUnRzlokQAACuY5qXF1ceUpEqVKmVYP3r0aI0ZMybX+42KilLp0qUzrHNzc1Px4sUVFXVjf58dOnTohu7vavgoHACAfKBq1apasmSJPvzwQ3l7e2vJkiUKDg7WV199JUZtAIoWT9vVewSYMuVlc+3tQQCAouPo0aOKjY1NX0aOHJlpuxEjRsgwjGyX3bt3uzi9a9FjDQCAfMJms+mZZ55Rly5d1LdvX61du1aPPfaY5syZoy+++OKqY08AKBy87N6q4x+s3XF/Znk7qFNONQxq7OJkAACXMv9eXH1MSf7+/tc0xtpzzz2nvn37ZtumevXqKlu2rE6dOpVhfVpams6dO6eyZcvmNm2+QI81AADymZo1a2rlypV6++235enpqd9++01169bVt99+S+81oIjoWu5umVm8m7LJplv86qqqb3UXpwIAIKNSpUqpdu3a2S4eHh5q3ry5YmJitGXLlvTHLl26VE6nU02bNs3znAsWLFDHjh1VokQJubm5yW63X7HkFoU1AADyIbvdrueff15bt25V48aNFRMTo0ceeUT33HOPoqOjrY4HII/V9LtZT9QYlH5bqN2wy/b3S/db/OvqyZueua6BlgEAcKVbbrlFXbp00YABA7Rx40atWbNGgwYN0gMPPJB+V8bx48dVu3Ztbdy4Mf1xUVFRCg8P1759+yRJO3fuVHh4uM6dO3fNx549e7buvPNORUdH64EHHpDT6VSvXr30wAMPyNvbW/Xq1dOoUaNyfW7cCgoAQD5Wp04drV27VhMmTNDYsWM1d+5crV69Wp988onuv/9+q+MVehfT4hWTekbedl8FeZS++gOAG6hBUCPV9Q/RpnPrdSLpuDxtngoLaqTKPlWsjgYAcAXTuLS4+ph55LvvvtOgQYN02223yWaz6d5779WHH36Yvj01NVV7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IiKSe7pzFREREREpBgzD4OGHH2bbtm20bduW+Ph4HnroIbp27UpUVJTV8URERAolFdZERERERIqR6tWr88cff/DWW2/h5eXFb7/9RmhoKHPmzNHoNRGRgsQ0rWmSIyqsiYiIiIgUMzabjSeeeIItW7bQokUL4uLi6N+/Pz169OD48eNWxxMRESk0VFgTERERESmmateuzZ9//snEiRPx8PDgp59+IjQ0lC+++EKj10RELGaY1jTJGRXWRIRjSSf5+OB3TNgxjTd3z2RV9HrSnOlWxxIREREXcHNz47nnnmPjxo00atSIs2fPcs8999C7d29Onz5tdTwREZECTYU1kWJu/tHfeHzzWH45tpTN5yJZe2Yzb/89ixFbxnEmJcbqeCIiIuIioaGhrFu3jrFjx+Lm5sZ3331H/fr1+f77762OJiJSPJkWNckRFdZEirE10Zv49NA8AJw4ATD/+U56MjmaCTvfxWk6LcsnIiIiruXu7s6LL77IunXrCA0N5fTp0/Tq1Yv77ruPs2fPWh1PRESkwFFhTaQYm3d0IQbGFY85cXI48SjbY3e7OJWIiIhYrXHjxmzYsIGRI0dis9n47LPPCA0N5ZdffrE6moiISIGiwppIMXU+LZ4DCVEZI9SuxG7Y2BwT4cJUIiIiUlB4enoyYcIEVq9eTe3atTl+/Di33norAwYMIDY21up4IiJFnjYvKBxUWBMpptJNx1X20yYGIiIixVmLFi3YvHkzTz75JIZhMGvWLMLCwvj999+tjiYiImI5FdZEiil/dz8C3f2z7OMwndTwreKiRCIiIlJQeXt78+abb7J8+XKqV69OVFQUN954I4888gjx8fFWxxMRKZqcpjVNckSFNZFiym7Y6FqufaZrrBkY+Ni9aRXc1MXJREREpKBq06YNW7du5ZFHHgHg/fffp0GDBqxYscLiZCIiItZQYU2kGLut/I2EBdS57HEbNuyGnadqD8bT7mFBMhERESmoSpQowbvvvsvixYupXLky+/fvp3379gwfPpykpCSr44mIiLiUCmsixZi7zY2RdR9lYPW7qOhdFhs2vGyetCvdgtcbjCIs8PKim4iIiAhA586d2b59OwMGDMA0Td566y0aNWrEunXrrI4mIlI0mBY1yZFCW1g7e/Ys9957L/7+/gQGBjJgwIBs13do3749hmFc0h566CEXJRYpmNxs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zEwubHvu0mb1iy583KwOICIiIpITdfxrU8e/ttUxREQu0bZtW7Zt28YzzzzD+++/z3vvvcfChQuZM2cObdq0sTqeiIjkE41YExERERERyQMlSpTgvffeY/HixVSqVIn9+/fTrl07RowYQVJSktXxREQkH6iwJiIiIiIikoc6d+7M9u3befDBBzFNkzfffJNGjRqxbt06q6OJSGHi8mmg/zTJERXWRERERERE8lhAQAAfffQRP//8M+XKlWP37t20atWKUaNGkZKSYnU8ERHJIyqsiYiIiIiI5JNbbrmFiIgI7r33XpxOJxMnTqRZs2Zs3rzZ6mgiUtA5LWqSIyqsiYiIiIiI5KOgoCA+/fRTvvvuO0qXLs327dtp3rw5L730EmlpaVbHExGRa6DCmoiIiIiIiAvccccdREZG0qtXL9LT0xk7dizXX389ERERVkcTEZFcUmFNRERERETERUqXLs0333zD559/TsmSJdm0aRNNmjTh1VdfJT093ep4IlKAGKZpSZOcUWFNRERERETEhQzD4O677yYyMpJbb72V1NRURo4cSevWrdm9e7fV8UREJAdUWBMREREREbFAuXLl+PHHH5k9ezb+/v6sW7eOhg0b8vbbb+N0agVxkWLPNK1pkiMqrImIiIiIiFjEMAweeOABIiIiuPHGG0lOTubJJ5+kQ4cO7N+/3+p4IiKSDRXWRP6xN/4Q7+39lBFbxjNy2xv8cPQ3zqfFWx1LRERERIqBSpUqsWjRIqZPn46vry8rVqwgPDyc999/H1MjSESKJ41YKxRUWBMBvolawLPbXuOPU2s5mHiUv+MP8Omh+QzdPJb98VFWxxMRERGRYsAwDIYMGcK2bdto164dCQkJPPLII3Tp0oXDhw9bHU9ERK5AhTUp9tad2cKXUT8D4OT/17IwMUlMT+KVndNIcaRaFU9EREREipnq1auzdOlS3n77bby8vPj9998JCwtj1qxZGr0mIlLAqLAmxd78Y79jYFzxmBOT2LTzrDqz0cWpRERERKQ4s9lsPP7442zdupXrr7+euLg4BgwYQPfu3Tl27JjV8UTEFTQVtFBQYU2KtXSng93n92OS+TcPGzYiYrXtuYiIiIi4Xq1atfjzzz957bXX8PDw4JdffiE0NJTPP/9co9dERAoAFdakWDO5mm3MTf3SIiIiIiKWsdvtPPPMM2zatIkmTZoQExPDvffey//+9z9OnTpldTwRyS9Oi5rkiAprUqy529yp5lMx06mgcGE6aG3/Gi5MJSIiIiJyufr167NmzRpeeukl3Nzc+P7776lfvz7fffed1dFERIotFdak2Lu1fKdMp4IaGHjbvWhXurmLU4mIiIiIXM7d3Z0xY8awfv16wsPDiY6O5n//+x/33HMPZ8+etTqeiEixo8KaFHvtSjfnppC2wIX11C6yYcPd5sZzdR7C2+5lVTwRERERkcs0bNiQ9evX8/zzz2O32/niiy+oX78+P//8s9XRRCSPGKZpSZOcUWFNij3DMBhUvQ+j6jxMg8A6BLj7UdoziFvKdeCthi8QGlDL6ogiIiIiIpfx8PDglVdeYc2aNdStW5cTJ07QvXt3+vfvT2xsrNXxRESKBTerA4gUBIZh0CQojCZBYVZHERERERHJkWbNmrFp0yZeeOEFJk+ezJw5c1iyZAkfffQRN954o9XxRCS3TPNCc/U1JUc0Yk1ERERERKSQ8/Ly4o033mDlypXUrFmTqKgounTpwsMPP0x8fLzV8UREiiwV1kRERERERIqIG264gS1btvDYY48BMH36dMLDw1m+fLnFyUQkx5ymNU1yRIU1ERERERGRIsTX15cpU6awdOlSqlSpwoEDB2jfvj1PPPEEiYmJVscTESlSVFgTEREREREpgjp06MD27dsZNGgQAO+88w4NGzZkzZo1FicTESk6VFgTEREREREpovz8/JgxYwa//vorFSpUYM+ePbRu3Zpnn32W5ORkq+OJSFYubl7g6iY5osKaiIiIiIhIEde1a1ciIiLo27cvTqeT119/nSZNmrBhwwaro4mIFGoqrImIiIiIiBQDgYGBzJ07lx9++IGQkBB27NjB9ddfz5gxY0hNTbU6nohcxorRahqxllMqrImIiIiIiBQjPXr0ICIigj59+uBwOBg3bhwtWrRg27ZtVkcTESl0VFgTEREREREpZoKDg/nyyy/56quvKFWqFFu2bKFp06aMHz+e9PR0q+OJiBQaKqyJiIiIiIgUU3feeSeRkZH06NGDtLQ0Ro8eTatWrdi5c6fV0UREmxcUCiqsiYiIiIiIFGMhISHMmzePTz75hMDAQNavX0+jRo2YPHkyDofD6ngiIgWaCmsiIiIiIiLFnGEY3HfffURERNC1a1dSUlJ46qmnaNeuHXv37rU6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", "text/plain": [ - "" + "
" ] }, - "execution_count": 16, "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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RxMRERERqcCMwjJYEpFV9S6JPXr0cOPGjfM6RomWLVvGoEGDeO2112jVqhWPPfYYxxxzjNexRERERCQBmNn4yjQ1Qqfdktz7n8Z/6rXMFksq1fsQDxXlSmBCatiwIa+++irfffcdaWlpHHvssfTt25d58+Z5HU1ERERERKooFYEVwH777cfEiRMZNmwYo0ePpkOHDtx7772EQiGvo4mIiIiIVBjqDhofKgIriGAwyKBBg5gxYwZHHHEEN910E126dOGbb77xOpqIiIiIiFQhKgIrmBYtWvD+++/z6aefEgqFOOiggzj99NNZsqTSDIQqIiIiIhJ3Dl0JjBcVgRXUkUceydSpUxkyZAjvv/8+mZmZPPbYY0QiEa+jiYiIiIh4Iuos7ksiUhFYgaWmpnLHHXcwdepU9txzT6666ip69uzJr7/+6nU0ERERERGppFQEVgLt2rVj1KhRjBgxghUrVtC7d28uuugiVq1a5XU0EREREZFyoe6g8aMisJIwM0466SRmzJjBtddey4svvkhGRgYvvvgi0WjU63giIiIiIlJJqAisZKpXr86DDz7IhAkTyMzM5Pzzz2ffffdl0qRJXkcTERERESkzDqMQX9yXRJSYr7oK6Ny5M2PGjOGll15i5syZdO/enWuuuYb169d7HU1EREREpExoYJj4UBFYifl8Ps455xyys7O58MILGT58OJmZmbzzzjs457yOJyIiIiIiFZCKwCqgTp06PP300/z66680btyYU089lUMPPZSZM2d6HU1EREREJC40MEz8qAisQnr16sXvv//OE088wdixY+ncuTO33norubm5XkcTEREREZEKQkVgFeP3+7n88svJysri5JNP5u6776Zjx4588sknXkcTEREREdkJRqHzxX1JRIn5qhNAo0aNeO211/j2229JTU3lmGOO4bjjjmP+/PleRxORUih0hXy6+D1umHQRA/44iwezbmN+zmyvY4mIiEgVoCKwitt///2ZOHEi999/P1999RXt27fnvvvuIxQKeR1NRP7FW/Of5+tln5JbmIMjyvzcWTz251CW5S/2OpqIiIgnHBDFF/clESXmq04wSUlJXH/99cyYMYPDDz+cwYMH06VLF7799luvo4lICTaE1zF+zS+E3ZZf1kSiYb5a9rFHqURERLyngWHiQ0VgAmnRogUffPABn3zyCQUFBRx44IGceeaZLF261OtoIrKZFQXLCFigWHuUKIty1aVbREREdo6KwAR01FFHMW3aNIYMGcK7775LRkYGTzzxBIWFhV5HExGgXnJDIi5SrN2Hj6apLT1IJCIi4j3nNDBMvCTmqxZSU1O54447mDp1KnvuuSdXXnklPXv25LfffvM6mkjCqxGsSbfaexC0pC3aA74gBzc6xqNUIiIiUlWoCExw7dq1Y9SoUYwYMYJly5bRu3dvLr74YlavXu11NJGEdnrLC9m/weGk+FMxjBZprbmy3U00SmnidTQRERHPRLG4L4nInHNeZyhTPXr0cOPGjfM6RqWwYcMGbr/9dh599FFq167NsGHD6N+/Pz6fvisQ8ZJzDrPE/CMlIiJlx8zGO+d6eJ2jtNp1TnWPjtwl7sc9qs20SvU+xIM+3csm1atX56GHHmLChAlkZGRw3nnn0adPHyZPnux1NJGEpgJQRERE4klFoBTTuXNnxowZw0svvUR2djbdunXj2muvZcOGDV5HExEREZGEpYFh4iUxX7Vsl8/n45xzziE7O5vzzz+fRx55hMzMTEaMGEFV70IsIiIiIlKVqQiUf1WnTh2effZZfvnlFxo2bMgpp5zCYYcdxsyZM72OJiIiIiIJxAFRfHFfElFivmrZYXvssQdjx47lscce47fffqNz584MGTKEvLw8r6OJiIiISIIodBb3JRGpCJRS8/v9XHnllWRnZ3PSSSdx11130bFjRz799FOvo4mIiIiISCmpCJQd1qhRI15//XW++eYbkpOTOfroozn++OP566+/vI4mIiIiIlWUwyjEF/clESXmq5a4OOCAA5g0aRL33XcfX375Je3bt+f+++8nFAp5HU1ERERERLZBRaDslKSkJG644QamT5/OoYceyo033kjXrl357rvvvI4mIiIiIlVM1PniviSixHzVEnctW7bkf//7Hx9//DF5eXkccMABnHnmmSxdutTraCIiIiIishkVgRJXRx99NNOnT+fWW2/l3XffJSMjgyeeeILCwkKvo4mIiIhIJeZA9wTGSWK+ailTqamp3HnnnUyZMoVevXpx5ZVX0qtXL3777Tevo4mIiIhIJeWI//QQmiJCJM523XVXvvzyS95++22WLFlC7969ueSSS1i9erXX0UREREREEpaKQClTZsYpp5xCVlYWV199Nc8//zwZGRm8/PLLRKNR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cnIy06ZN4+2332b16tV07NiRm266iS1btngdTSSqqAgUERERkbAxMy6++GIyMzPp378/L730EsnJyYwdO5bKfsNCCQEPpoiojFQEioiIiEjY1ahRgyeffJIffviBI488kquuuorOnTuzcOFCr6OJVHoqAkVERETEM23btuU///kPY8aMYcmSJbRr144777yT7du3ex1NKpxy6AVUT6CIiIiISPj5fD6uueYasrKyuPrqq3n88cdp0aIF7733noaIyv84VASGiIpAEREREakQ6taty0svvcSsWbOoX78+vXr14swzz2Tp0qVeRxOpVFQEioiIiEiF0rFjR77//ntGjx7NrFmzaN26Nffeey/Z2dleRxOvaZ7AkFARKCIiIiIVTkxMDLfeeiuZmZlccMEFjBgxgtTUVD7++GOvo4lEPBWBIiIiIlJhNWzYkDfffJPp06cTExPDWWedxQUXXMBvv/3mdTTxgCaLDw0VgSIiIiJS4Z166qnMnz+fBx98kI8//pgWLVowatQo8vPzvY4m4aQbw4SEikARERERiQjx8fEMHjyYxYsX06VLFwYNGkS7du2YOXOm19FEIoqKQBERERGJKH/729+YOHEiEydOZMeOHZx88sn06dOHdevWeR1NypMDAi70LQqpCBQRERGRiNSjRw8WL17M3XffzVtvvUVKSgovvPAChYWFXkcTqdBUBIqIiIhIxEpMTOSBBx5gwYIFHHPMMfTt2/e/U0xIZVMO1wPqmkARERERkciUkpLC559/zltvvcWqVas47rjj6Nu3L1u2bPE6mkiFoyJQRERERCoFM6N3795kZmbSr18//vnPf5KcnMy4ceNwUdrjU+moJzAkVASKiIiISKVSs2ZNRo8ezQ8//MARRxxBnz59OPnkk1m0aJHX0aSsVASGhIpAEREREamU2rZtyzfffMOYMWPIyMigbdu2DBw4kB07dngdTcRTKgJFREREpNLy+Xxcc801ZGVlcdVVV/HYY4/RokUL3n//fQ0RjTSaIiJkVASKiIiISKVXr149Xn75Zb799lvq1q3LhRdeyFlnncWyZcu8jiYSdioCRURERCRqHH/88aSnp/PUU0/xzTff0Lp1a+677z5ycnK8jiZ/yYELhL5FIRWBIiIiIhJVYmJi6N+/P5mZmfTs2ZPhw4fTunVrPvnkE6+jyV/RjWFCQkWgiIiI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hH8+f4vdd2TbAWQCt3qdPxpaSceomONjwKPA5mB7FDCv80dbK8Xx0vlUAVpJn1n6vKqY7UCPF/BY8FjtBJazezhorNf5o62xe6oHB+QEj8+f7TKdY2peN3NOl8uIiIiIiIhECw0HFRERERERiSIqAkVERERERKKIikAREREREZEooiJQREREREQkiqgIFBERERERiSIqAkVERERERKKIikAREREREZEooiJQRETKhZk9amYTijwfZWbTzSzOw1giIiJRT5PFi4hIuTCzusBy4BTgOOBmoJNzbquXuURERKKdikARESk3ZjYcOB+oye4C8Lfg8keAE4AVwNXOuXyvMoqIiEQbDQcVEZHyNBdIBQYXKQDbAI2dcycBmcCFHuYTERGJOioCRUSkXJhZKvAC8BpwdZFVJwCfBR9/ApwY5mgiIiJRTUWgiIiEnJk1Bj4CbgT6AqlmdkpwdW1gW/DxVqBOuPOJiIhEMxWBIiISUmZWA5gKPOGcm+Sc2wWMAh4IbvIHUCP4uCawOewhRUREophuDCMiImFlZm2BAc65K8zsbuAX59xbHscSERGJGuoJFBGRsHLOzQPWmdnXQCvgfW8TiYiIRBf1BIqIiIiIiEQR9QSKiIiIiIhEERWBIiIiIiIiUURFoIiIiIiISBRRESgiIiIiIhJFVASKiIiIiIhEERWBIiIiIiIiUURFoIiIiIiISBRRESgiIiIiIhJF/h9k6OnTBAoI/gAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, "output_type": "display_data" } ], @@ -513,10 +525,11 @@ " suptitle=\"Influences of input points\",\n", " legend_title=\"influence values\",\n", " # colorbar_limits=(-0.3,),\n", - ")" + ");" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "2d262071", "metadata": {}, @@ -525,6 +538,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "8989f90c", "metadata": {}, @@ -542,18 +556,19 @@ "y_corrupted = np.copy(y)\n", "y_corrupted[:10] = [1 - yi for yi in y[:10]]\n", "\n", + "train_corrupted_data_loader = DataLoader(\n", + " list(zip(x, y_corrupted.astype(float))), batch_size=batch_size\n", + ")\n", + "\n", "influence_values = compute_influences(\n", - " model=model,\n", - " loss=F.binary_cross_entropy,\n", - " x=x,\n", - " y=y_corrupted.astype(float),\n", - " x_test=test_data[0],\n", - " y_test=test_data[1].astype(float),\n", + " differentiable_model=TorchTwiceDifferentiable(model, F.binary_cross_entropy),\n", + " training_data=train_corrupted_data_loader,\n", + " test_data=test_data_loader,\n", " influence_type=\"up\",\n", " inversion_method=\"direct\",\n", ")\n", "\n", - "mean_train_influences = np.mean(influence_values, axis=0)" + "mean_train_influences = np.mean(influence_values.numpy(), axis=0)" ] }, { @@ -566,8 +581,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Average mislabelled data influence: -1.046369442947661\n", - "Average correct data influence: 0.01503900857368328\n" + "Average mislabelled data influence: -0.8225848370029777\n", + "Average correct data influence: 0.011277048916970962\n" ] } ], @@ -584,24 +599,12 @@ "outputs": [ { "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABNYAAAL/CAYAAACqBkp7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gUVd/G8e/spvcESEKvSgtdOggC0pQiqKgooNhFQX1EsQBWLNh7BSxYQAFFQKUI0muAICAo0kMLpNfdef8I5CWSTrKTcn+ua55HZs7O3DO7SXZ/e+YcwzRNExERERERERERESkUm9UBREREREREREREyiIV1kRERERERERERIpAhTUREREREREREZEiUGFNRERERERERESkCFRYExERERERERERKQIV1kRERERERERERIpAhTUREREREREREZEiUGFNRERERERERESkCFRYExERERERERERKQIV1kRERIpBXFwcDzzwAHXq1MHNzQ3DMIiMjOT333/HMAwmT55sdcQKKzo6mpEjR1KjRg3sdjuGYXDmzJk8H2MYBt27d3dJvvKuIl3L7t27YxhGoR4zffp0DMNg+vTpJRNKStSoUaMwDIN///33ovc1efJkDMPg999/v+h9iYiI66iwJiIiFZZhGIX+EJyb8ePH8/bbb9OsWTMmTJjApEmTCA8PL5Z9y8UZNWoUX3zxBd26dePJJ59k0qRJeHl5WR2r2FSU4m1RilalQUV5fkqLf//9F8MwGDVqlNVRLFOcxT4REcmfm9UBREREyoP58+dz6aWX8tNPP2Vbv2vXLosSCUBaWhq//fYbvXr14quvvirw43bu3ImPj08JJqs4KtK1/Pzzz0lKSrI6hoiIiLiQCmsiIiLF4MiRI1x++eVWx5D/iI6Oxul0Uq1atUI9rlGjRiWUqOKpSNeyVq1aVkcQERERF9OtoCIiIuc5/zaif//9lxtuuIHKlSvj5eXFZZddxvz587O1P3d7mmmaLF++POv20vzGlKpTpw516tTJcVte4+zs2rWLUaNGUbNmTTw8PAgLC+Omm25i9+7dF7Q9/3agDz/8kGbNmuHl5UVYWBh33nknsbGxOR7/0KFDPPDAA1xyySV4e3sTEhJCu3btePbZZ3NsO2bMGOrVq4enpyeVKlVi4MCBbNiw4YK28fHxPPvss0RERBAQEIC/vz/169dn2LBhbNq0Kc/rdb49e/YwYsQIqlevjoeHB9WqVWPEiBHs2bMnW7s6depQu3ZtAGbMmJH13BTkFrGcnsPzn5fZs2fTrl07fHx8CAkJ4YYbbuDw4cMX7Ofc6yM1NZUnn3ySunXr4unpSf369Xn66adJS0vL1j6/29j+ezvkqFGjuOKKKwB4+umns86xoOM0nTvPI0eOcMsttxAaGoq3tzdt2rRh5syZOT7G6XTywQcf0LZtW/z8/PD19aVt27a8//77OJ3OXI9xvsJcy3PXZPny5Vn7y+nnbNu2bdx4443UqVMHT09PqlSpQuvWrRk3bhzp6el5XoeEhAQ8PDzo3LlztvXJycl4eXlhGAZffPFFtm3vv/8+hmHw2WefZa272Odn2bJldO/eHX9/fwICArjqqqvYuXNnntlz8uuvvzJgwABCQ0Px9PSkZs2aDBo0iMWLF2drV9TnMjo6mttvv53q1atjt9uzxofLb3tet/PmNtbcud+VsbGxjBkzhurVq+Pl5UWTJk146623ME0zq+3kyZOpW7cukP1nPqf9/vLLL/Tv35/KlStn/Uw+8sgjuY6/uHjxYrp27Yqvry8hISEMHjy4yD2SN23aRN++fbOe5169erFmzZpc28+dO5ebb76ZSy+9FF9fX3x9fWnTpg1vvfXWBc+TYRjMmDEDgLp162ad//l/bzZt2sTYsWNp0aIFISEheHl5cckll/Dwww9z+vTpIp2TiEhFph5rIiIiOdi/fz/t2rWjXr163HLLLcTExPDtt99mfTg992F51KhRdO/enaeffpratWtnFURyK5pdjEWLFjFkyBDS09MZMGAADRo04NChQ/zwww/8/PPPLFu2jNatW1/wuPHjx/PLL78wYMAAevfuzbJly/j444/Zu3cvS5cuzdZ248aN9OnTh5iYGC6//HKGDBlCUlISf/75J5MnT+app57Kart582Z69+5NTEwMffr0YciQIZw8eZK5c+fSpUsX5syZQ//+/QEwTZO+ffuyevVqOnbsyO23346bmxuHDh1i2bJldO3alTZt2uR7DTZs2ECvXr2Ij49n4MCBNGnShF27dvHll18yb948Fi9eTNu2bQEYN24c//77L2+++SYtWrRg8ODBALRs2bKIz0Cm9957jx9//JGBAwfSrVs31q1bx7fffsvWrVuJjIzE09Pzgsdcf/31bNiwgWuv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gj6dIiJyjikiIlJBAeZ//xTu27fPBMyRI0fm+Jhu3bpd8Jhz++rWrdsF65ctW2YC5qRJky7Y9scff5hdu3Y1vb29TX9/f7N///7m1q1bzUmTJpmAuWzZsgses2/fPvO+++4zGzRoYHp6epr+/v5mw4YNzZtvvtmcM2dOtrYjR440AXPfvn2FyrV//37znnvuMevUqWO6u7ubISEhZrt27cznn3/+grbHjh0zH330UbNp06amt7e36evrazZo0MAcOnSo+cUXX5jp6emmaZrmwYMHzQkTJpidOnUyw8LCTA8PD7N69epm3759zQULFlyw37zs2rXLvPnmm83w8HDTzc3NDA8PN4cPH27u2rUrx+uV1/OZm5yez/yel5yOc+71kpKSYj7xxBNmnTp1TA8PD7Nu3brm5MmTzZSUlByP/8knn5hNmjQxPTw8zLCwMPPOO+80T548mevrb/369WaPHj3MgIAA0zCMXHPmdp6HDx82hw8fblapUsX09PQ0W7VqZX711Vc5PsbhcJjvvvuu2aZNG9Pb29v09vY2W7dubb7zzjumw+HI9RjnK8q1zMjIMCdMmGDWrVvXdHNzy7bfX375xRw1apTZuHFjMyAgwPTx8TEvvfRS8/777zf//ffffK/D+d566y0TMAMCAsyMjIxs2+68804TMNu1a5fjY4vy/EybNs0EzGnTpuW4z9x+t+Tl559/Nvv06WMGBwebHh4eZo0aNczBgwebS5YsydauOJ7LwmaNiooy+/XrZ/r5+Zm+vr5mt27dzN9//z3X61C7dm2zdu3a5pkzZ8x7773XrFatmunh4WE2atTIfPPNN02n03nBMfbs2WNeffXVZkhISNb1/u9+//jjD/O6664zq1atarq7u5uVK1c2W7RoYT744IPmhg0bLtjnr7/+anbu3Nn09vY2g4KCzIEDB5o7d+7M8/dsbjZu3Gj26dPH9PPzM/38/MyePXuaq1evzvXnYseOHeaAAQPMKlWqmD4+Pmbr1q3Njz/+OM/fb6+++qrZqFEj08PDwwTM2rVrZ207deqUec8995i1a9c2PT09zXr16pkTJkwwExMTs663iIgUnGGaplnCtTsRERGRCql79+4sX76c0vp2yzAMunXrdtG3EYuUlHO3LuY0DqCIiEhpUPrulRARERERERERESkDVFgTEREREREREREpAhXWREREREREREREikBjrImIiIiIiIiIiBSBeqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBG4WR2grHE6nRw5cgR/f38Mw7A6joiIiIiIiEi5ZJom8fHxVKtWDZutYvULSklJIS0tzZJje3h44OXlZcmxyyIV1grpyJEj1KxZ0+oYIiIiIiIiIhXCwYMHqVGjhtUxXCYlJYW6tf2IPu6w5Pjh4eHs27dPxbUCUmGtkPz9/YHMH+yAgACL04iIiIiIiIiUT3FxcdSsWTPrc3hFkZaWRvRxB/s31SHA37U99eLindRu8y9paWkqrBWQCmuFdO72z4CAABXWREREREREREpYRR2Gyc/fwM/ftefupGJe64tRsW5SFhERERERERERKSYqrImIiIiIiIiIiBSBbgUVERERERERESllHKYTh+n6Y0rhqMeaiIiIiIiIiIhIEajHmoiIiIiIiIhIKePExIlru6y5+njlgXqsiYiIiIiIiIiIFIF6rImIiIiIiIiIlDJOnLh6xDPXH7HsU481ERERERERERGRIlBhTUREREREREREpAh0K6iIiIiIiIiISCnjME0cpmsnE3D18coD9VgTEREREREREREpAvVYExEREREREREpZZyYOHFtDzJXH688UI81ERERERERERGRIlBhTUREREREREREpAh0K6iIiIiIiIiISCnjxMShW0FLPfVYExERERERERERKQL1WBMRERERERERKWU0eUHZoB5rIiIiIiIiIiIiRaAeayIiIiIiIiIipYzDNHGYru1B5urjlQfqsSYiIiIiIiIiIlIEZbawNmXKFNq2bYu/vz+hoaEMHjyY3bt35/u4WbNm0ahRI7y8vGjWrBkLFixwQVoRERERERERESlvymxhbfny5dx3332sXbuW3377jfT0dHr37k1iYmKuj1m9ejU33ngjo0ePZsuWLQwePJjBgwcTFRXlwuQiIiIiIiIiInlzWrRI4RimWT5uoD1x4gShoaEsX76cyy+/PMc2w4YNIzExkfnz52et69ChAy1btuSDDz4o0HHi4uIIDAwkNjaWgICAYskuIiIiIiIiItlV1M/f5857184w/P1d2x8qPt5Jo8bHKtw1vxhltsfaf8XGxgIQEhKSa5s1a9bQq1evbOv69OnDmjVrSjSb1b788kvWr19vdQwRERERERERKSAHpiWLFE65KKw5nU7GjRtH586diYiIyLVddHQ0YWFh2daFhYURHR2d62NSU1OJi4vLtpQlu3fv5o477qBTp0488cQTpKamWh1JRERERERERKRcKBeFtfvuu4+oqCi++eabYt/3lClTCAwMzFpq1qxZ7McoSVWqVGHIkCE4HA5eeOEF2rVrR2RkpNWxRERERERERETKvDJfWBszZgzz589n2bJl1KhRI8+24eHhHDt2LNu6Y8eOER4enutjJkyYQGxsbNZy8ODBYsntKiEhIXz11VfMnj2bKlWqsG3bNtq2bcuzzz5Lenq61fFEREREREREJAcO05pFCqfMFtZM02TMmDHMmTOHpUuXUrdu3Xwf07FjR5YsWZJt3W+//UbHjh1zfYynpycBAQHZlrJo6NChREVFMWTIEDIyMpg4cSIdO3Zkx44dVkcTERERERERESmTymxh7b777uPLL79k5syZ+Pv7Ex0dTXR0NMnJyVltRowYwYQJE7L+PXbsWBYtWsSrr77Krl27mDx5Mhs3bmTMmDFWnILLhYaGMnv2bL766iuCg4PZtGkTrVu35uWXX8bhcFgdT0RERERERETOclq0SOGU2cLa+++/T2xsLN27d6dq1apZy7fffpvV5sCBAxw9ejTr3506dWLmzJl89NFHtGjRgtmzZzN37tw8JzwobwzD4KabbiIqKoqrrrqKtLQ0Hn30Ubp27cpff/1ldTwRERERERERkTLDME1Td9AWQlxcHIGBgcTGxpbZ20LPMU2T6dOnM27cOOLi4vD29mbKlCncf//92GxltuYqIiIiIiIi5UB5+vxdGOfOe/OfYfj5u/azeUK8k9ZNjlW4a34xVD2pwAzD4NZbb2X79u306tWL5ORkxo0bR48ePdi3b5/V8URERKSUME0nCWl/EZu6nXRHnNVxREREREoNFdaEWrVq8euvv/Lee+/h6+vL8uXLadasGR988AHq0CgiIlJxmabJofhZrDx4JWsOD2L9ketZfqALO048QZrjtNXxRERERCynwpoAmb3X7rnnHrZt28bll19OYmIi99xzD3379uXgwYNWxxMREREL/HPmPXaenEiK40jWOpN0jibMY8ORm0h3xFqYTkREpHxzmtYsUjgqrEk29erVY9myZbzxxht4eXnx66+/EhERwfTp09V7TUREpAJJTj/EP2fezXGbiYOkjAPsj53m4lQiIiIipYsKa3IBm83G2LFjiYyMpEOHDsTFxXHrrbcycODAbLOsioiISPl1OOF7wMijhZND8d/oizcREZES4sCwZJHCUWFNctWwYUNWrlzJiy++iIeHB/Pnz6dp06bMnDlTb6JFRETKueT0Q/m2SXfG4jCTXJBGREREpHRSYU3yZLfbefTRR9m0aROtW7fm9OnTDB8+nOuuu47jx49bHU9EREQKwjRh3Tq4/34YOhRuuAGeew7y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EREpm959913q1KmDl5cX7du3Z/369Xm2nzVrFo0aNcLLy4tmzZqxYMECFyUtGSqsSalUp04dFi9ezFtvvYW3tzdLly6lWbNmfPLJJ5imaXU8ERERERERkRLlwLBkKYxvv/2Whx56iEmTJrF582ZatGhBnz59OH78eI7tV69ezY033sjo0aPZsmULgwcPZvDgwURFRRXHJbOEYapKUShxcXEEBgYSGxtLQECA1XEqhD179jBq1ChWr14NQL9+/fj444+pXr26xclERERERESkpFTUz9/nzvvHbfXx9c99NumSkBjvYGDzvwt8zdu3b0/btm155513AHA6ndSsWZP777+fxx577IL2w4YNIzExkfnz52et69ChAy1btuSDDz4ovhNxIfVYk1LvkksuYcWKFbzyyit4enqycOFCIiIi+OKLL9R7TURERERERMolh2mzZCmotLQ0Nm3aRK9evbLW2Ww2evXqxZo1a3J8zJo1a7K1B+jTp0+u7csCFdakTLDb7fzvf/9j8+bNtG3bljNnzjBixAiuueYajh07ZnU8ERERERERkXIjLi4u25KamnpBm5MnT+JwOAgLC8u2PiwsjOjo6Bz3Gx0dXaj2ZYEKa1KmNGnShNWrV/Pcc8/h7u7OvHnzaNq0KbNmzbI6moiIiIiIiEi5ULNmTQIDA7OWKVOmWB2p1FJhTcocNzc3nnjiCTZs2ECLFi04deoU119/PTfccAMnT560Op6IiIiIiIjIRXNiWLIAHDx4kNjY2KxlwoQJF+SrXLkydrv9grvIjh07Rnh4eI7nFB4eXqj2ZYEKa1JmtWjRgvXr1/PUU09ht9v59ttviYiIYN68eVZHExERERERESmzAgICsi2enp4XtPHw8KBNmzYsWbIka53T6WTJkiV07Ngxx/127NgxW3uA3377Ldf2ZYEKa1KmeXh48Mwzz7B27VqaNGnCsWPHGDx4MCNHjuTMmTNWxxMREREREREpEic2HC5enIUsEz300EN8/PHHzJgxg507d3LPPfeQmJjIrbfeCsCIESOy9XYbO3YsixYt4tVXX2XXrl1MnjyZjRs3MmbMmGK9dq6kwpqUC5dddhmbNm1i/Pjx2Gw2Pv/8cyIiIli0aJHV0URERERERETKpWHDhjF16lQmTpxIy5YtiYyMZNGiRVkTFBw4cICjR49mte/UqRMzZ87ko48+okWLFsyePZu5c+cSERFh1SlcNMM0TdPqEGVJXFwcgYGBxMbGEhAQYHUcycGaNWsYOXIke/bsAeCOO+7g1Vdfxd/f3+JkIiIiIiIiUlAV9fP3ufOetbURPv52lx47Kd7BdS12VbhrfjHUY03KnY4dOxIZGckDDzwAwMcff0yzZs1YtmyZxclERERERERECsZh2ixZpHB0xaRc8vHx4c0332TZsmXUqVOH/fv306NHD+6//34SExOtjiciIiIiIiIi5YAKa1Kude/enW3btnHXXXcB8M4779CyZUtWrVplcTIRERERERGR3DnPTibg6kUKR1dMyj1/f38++OADfvnlF2rUqMHevXvp2rUrjzzyCCkpKVbHExEREREREZEySoU1qTB69+7N9u3bGTVqFKZpMnXqVFq3bs2GDRusjiYiIiIiIiKSjcM0LFmkcFRYkwolKCiIadOm8eOPPxIeHs7OnTvp2LEjTz75JGlpaVbHExEREREREZEyRIU1qZAGDBhAVFQUN954Iw6Hg+eff562bduydetWq6OJiIiIiIiISBmhwppUWJUqVWLmzJnMmjWLypUrs23bNi677DKeffZZ0tPTrY4nIiIiIiIiFZgDmyWLFI6umFR41157LTt27OCaa64hIyODiRMn0rFjR3bs2GF1NBEREREREREpxVRYEwFCQ0P5/vvv+fLLLwkKCmLTpk20bt2aV155BYfDYXU8ERERERERqWCcps2SRQpHV0zkLMMwGD58ODt27KB///6kpaUxfvx4Lr/8cvbs2WN1PBEREREREREpZVRYE/mPatWqMX/+fD799FP8/f1ZvXo1LVq04K233sLpdFodT0RERERERERKCRXWRHJgGAa33XYbUVFR9OrVi+TkZMaOHUuPHj3Yt2+f1fFERERERESknNPkBWWDrphIHmrVqsWvv/7Ke++9h4+PD8uXL6dZs2Z8+OGHmKZpdTwRERERERERsZAKayL5MAyDe+65h23bttG1a1cSExO5++676du3LwcPHrQ6noiIiIiIiJRDTsBhGi5dNPhR4amwJlJA9evX5/fff+e1117Dy8uLX3/9lYiICKZPn67eayIiIiIiIiIVkAprIoVgs9l48MEH2bJlC+3btycuLo5bb72VgQMHcvToUavjiYiIiIiISDnhxGbJIoWjKyZSBI0aNWLlypVMmTIFDw8P5s+fT0REBF9//bV6r4mIiIiIiIhUECqsiRSRm5sbjz32GJs2baJVq1bExMRw0003cf3113PixAmr44mIiIiIiIhICVNhTeQiRUREsG7dOiZPnoybmxuzZ8+madOmzJkzx+poIiIiIiIiUkY5TJslixSOrphIMXB3d2fSpEmsW7eOiIgITpw4wZAhQ7j55ps5ffq01fFEREREREREpASosCZSjFq3bs3GjRuZMGECNpuNr776iqZNm7JgwQKro4mIiIiIiEgZ4sSwZJHCUWFNpJh5enrywgsvsHr1aho2bMjRo0e56qqrGD16NLGxsVbHExEREREREZFiosKaSAlp3749W7Zs4cEHH8QwDD777DOaNWvG4sWLrY4mIiIiIiIiIsVAhTWREuTt7c1rr73G8uXLqVevHgcPHuTKK6/k3nvvJSEhwep4IiIiIiIiUkpp8oKyQVdMxAW6du3K1q1buffeewF4//33adGiBStWrLA4mYiIiIiIiIgUlQprIi7i5+fHu+++y+LFi6lVqxb//PMP3bt356GHHiI5OdnqeCIiIiIiIlKKOLBZskjh6IqJuFjPnj3Zvn07t99+O6Zp8vrrr9OqVSvWrVtndTQRERERERERKQQV1kQsEBAQwMcff8zPP/9MtWrV2L17N506dWLChAmkpqZaHU9EREREREQs5jQNSxYpHBXWRCzUv39/oqKiuPnmm3E6nbz44otcdtllbN682epoIiIiIiIiIpIPFdZELBYcHMwXX3zBDz/8QGhoKFFRUbRv357JkyeTnp5udTwRERERERERyYUKayKlxDXXXENUVBTXXnstGRkZPP3007Rv357t27dbHU1ERERERERczGnBxAVOlYkKTVdMpBSpUqUK3333HV9//TUhISFs2bKFyy67jClTppCRkWF1PBERERERERE5jwprIqWMYRjccMMN7NixgwEDBpCWlsbjjz9Oly5d2L17t9XxRERERERExAWcps2SRQpHV0yklAoPD2fevHlMnz6dwMBA1q1bR8uWLXn99ddxOp1WxxORYmCaJk4zDdM0rY4iIiIiIiJFoMKaSClmGAYjR44kKiqK3r17k5KSwkMPPUT37t35+++/rY4nIkWUknGEPaeeYdWBVvyxP4LVB9vxT8wrpDlirI4mIiIiIiKFoMKaSBlQo0YNFi1axIcffoifnx9//PEH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N9xwAy6Xi8cff5w2bdqwfv16q6OJiIhIZaYRayUiJCSE5cuX87///Y8DBw7g6+vLwoULOXbsGBMnTmTx4sVntZiVCmsiIiJS6UVERDBr1iw++eQTIiIiWL9+PRdccAFPPPEETqfT6ngiIiIichb8/PwYP34869atIz09nczMTDZt2sSECRPw8/M7q75VWBMRERH523XXXcfmzZvp1asXubm5jB8/nvbt27N161aro4mIiEglY5jWbHJmHFYHEBERESlLoqOj+eKLL/jwww+58847+f3332nZsiWPP/449957L3a73eqIIiIiIlJEQ4YMOW0bwzCYNm1asfpXYU1ERETkPwzD4Oabb6ZTp04MGzaMuXPncv/99/PVV1/x7rvv0qBBA6sjioiIiEgR/PzzzydWAT3O5XIRFxeHy+UiKiqKgICAYvevW0FFREREClC9enXmzJnD22+/TVBQEEuWLKF58+ZMmTIFt9ttdTwREREROY09e/awe/fuk7a9e/eSkZHB5MmTCQoKYsGCBcXuX4U1ERERkUIYhsGwYcPYuHEjl112GZmZmdx111106dKFPXv2WB1PRERERIrBy8uLO+64g65du3LHHXcUux8V1kRERESKoHbt2sybN49XX30Vf39/fvnlF5o2bcpbb72FaWqmXxERESlhpkVbJdO8eXMWLVpU7ONVWBMREREpIpvNxu2338769evp0KEDaWlpjBw5kiuuuIL9+/dbHU9EREREztC8efPw9/cv9vFavEBEpAxyu7PIdSfhsAVjtwVaHUdE/qN+/fr8+uuvvPLKKzz44IP8+OOPxMbGMnnyZG655ZZTJsgVEREREWs8+uij+e4/duwYixYtYs2aNYwdO7bY/Rum7l04IykpKYSEhJCcnExwcLDVcUSkgslxxnEg+WWOpH+FSTZgEOLXmeoh9xDgHWt1PBHJx7Zt2xg4cCArV64E4Oqrr+bNN98kJibG4mQiIiLlW2X9/H38uuuPfRK7r69Hz+3KymLH0w9WqOfcZsv/Zs2wsDDq1avHsGHDGD58eLG/GNWtoCIiZUS28wCb468iMf2zv4tqACbJmb+wNb4PKVnLLc1X2ZmmSUbWUuKOjGRP/CXsTbiCpNTXcLmSrI4mFmvUqBFLlizhiSeewMvLi2+++YYmTZowe/Zsq6OJiIiIVHputzvf7ciRI6xcuZIR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xxd43E033cQHH3zAL7/8wrhx45g5cyY333xzoed66qmnCAkJObHVrFmzRK5BROTfUrLXk5y9BvNEQe2/DP469iZab0ZERMqDqKgoPv30Uz7++GPCw8NZu3YtrVu35qmnnsLpdFodT0REpMSUqcLa2LFjT1lc4L/btm3bit3/iBEj6NatG02bNqV///68//77fPnll+zcubPAY8aNG0dycvKJbd++fcU+v4hIQY5k/oqBvZAWJhnOXWS74jyWSURE5GwYhkG/fv3YtGkTV111FTk5OTz44IN06NDhrN7Ti4iIlCUOqwP825gxYxg0aFChberWrUtMTAyHDh06ab/T6SQpKYmYmJgin+/4MuA7duygXr16+bbx8fHBx8enyH2KiBSH28ylKFOFus2c0g8jZY5puknO+p0s10G8bOGE+bXDZnhbHUtEpEiqVq3K119/zfvvv89dd93FihUraNmyJU8++SR33303NluZ+q5fRKTMOL6ggKfPKWemTBXWoqKiiIqKOm27du3acezYMVavXk2rVq0A+Pnnn3G73SeKZUWxbt06IO+XvYiIlYJ8mmBS+K0xDiMIX0c1DyWquNxmDofSfyIlex2GYSfctz3hfhdjGGXzg92RjF/588jEk0YrOmyh1A27j6pB11uYTESk6AzDYODAgVx22WUMGzaMn376idGjR/Pll1/y7rvvFvglt4iISFlXNj9FnEbjxo3p3r07w4cPZ+XKlSxZsoQ77riDfv36Ua1a3ofOAwcO0KhRI1auXAnAzp07eeyxx1i9ejV79uzhm2++YcCAAVxyySU0a9bMyssRESHKvwtetnAKflm2US2on0YpnaXkrHUs2XcpWxLHcCD1Y/anfMD6QyNYcaAHmbll71b/pMzf2HToVrJdJ88f6nQf448j4zmYOsuiZCIixVOzZk3mzp3L1KlTCQgIYPHixTRr1ozXX38dt9ttdTwRkbLFtGiTM1IuC2uQt7pno0aN6Ny5Mz169KBDhw689dZbJx7Pzc1l+/btJ1b99Pb2Zv78+XTt2pVGjRoxZswY+vbty7fffmvVJYiInGAzvImtMhmb4fWfudYMwCDYpxnnhN5uVbwKITN3P+sSBpPrPgaAifPEKMFM517Wxg/A5S58pWhPMk2TnUlPUtg7nF1Jz+JyZ3k0l4jI2TIMg5EjR7Jx40Y6duxIRkYGt99+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p6VLl6p169ZasWKF1dEAeDJTv/w90ZWNCWuVRmENgMcyDB8lRL+h0IDmvzyWr34Z9nxkyE+t6sxU7eDOlmYEUHGmWVCBfQpdkASAN/L399eTTz6p5ORktW7dWj/99JP++Mc/6k9/+pPOnDljdTwAgEUorAHwaIF+UepU7yMlRL+hemF3KSb0djW7Yqyua7Re9cPutDoegEoIC2wrlTkDVZJ8FRbYxlVxAHipa665Rtu2bdPkyZPl4+Oj999/X7Gxsfrss8+sjgYAsACFNQAezzB8VCekm1rVma7Y3z2rJhH3K9C3jtWxAFRSvbC7dfn7q11UrHrhf3JVHABeLDAwUE8//bQ2b96sFi1a6NixY7rttts0YsQIZWez2jiA6mGYpiUNlUNhDQAAuIWQgKvUPHLa/x79eubaLz/O1A8bqtrBiS7PBcB7derUSdu3b9e4ceNkGIbefvttxcXFae3atVZHAwC4CIU1AADgNuqF36O2dd9XZHA3GQqQIT+FByaoVdSruipyigzDsDoiAC8TEhKiF198URs2bFCTJk2UkZGhHj16aMyYMcrNzbU6HgB3ZkoyTRc3q9+0+6GwBgAA3EpEUAfFRb+hblemq9uV3yoh5p+KCr2FohoAS3Xr1k07d+7U6NGjJUlz5sxR27ZttXHjRouTAQCcicIaAAAAAFSDWrVqac6cOVq9erUaNmyoAwcOqHv37ho/frwuXLhgdTwAgBNQWAMAAACAatSjRw/t2rVLw4cPl2maevHFF5WQkKDk5GSrowFwJy6/DPR/DZVCYQ0AAAAAqpnNZtPbb7+tf//734qJidHevXvVpUsXTZkyRfn5+VbHAwBUEwprAAAAAOAkt99+u9LT0zVo0CDZ7XY9/fTTat++vbZv3251NAA1nd2ihkqhsAYAAAAAThQZGan3339fH330kaKiorRr1y516NBB06dPV2FhodXxAABVQGENAAAAAFzgzjvv1O7du3XXXXepqKhITz75pDp16qT09HSrowEAHERhDQAAAABcJCoqSkuXLtUHH3ygK664Qqmpqbr22mv197//XUVFRVbHA1CDGKZpSUPlUFgDAAAAABcyDEMDBw7U7t27dccdd6igoECPPvqounbtqr1791odDwBQCRTWAAAAAMACMTExWrVqlebPn6/w8HAlJycrPj5eL730kux27iAOeD3TtKah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", "text/plain": [ - "" + "
" ] }, - "execution_count": 19, "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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gwfz448/Mn78eKZNm0bfvn257rrrKCgo8DqaiIiIiEgDZgTrYIlmFu1dCQcNGuSmTZvmdYxKZWZmcvnll/P888/TrVs3xo0bx6GHHup1LBERERFpAsxsunNukNc5qqvP9rHujfdTa73d9C7LGtXrUBMN5cxek9SuXTuee+45vvrqKxITEznssMMYPnw4f//9t9fRRERERESkkVOx1wDsscce/Prrr9x111189tln9OrVi//7v/+jpKTE62giIiIiIg2GunHWjIq9BiImJobLL7+cefPmceCBB3LNNdfQr18/vvjiC6+jiYiIiIg0aWZ2gJllmNnvZnZVJdvjzOyVyPYfI3OHe07FXgPTpUsX3njjDd5//31KSkrYe++9OeGEE1i2rNEMPCoiIiIiUusc3pzZMzM/8BBwINALON7MelXYbRSw1jm3LXA/cGftPvvNo2KvgTrooIOYPXs2Y8aM4Y033iA9PZ1x48ZRVlbmdTQREREREU+EnNX6Ug1DgN+dc38650qAl4HhFfYZDjwbuf06sHdkejlPqdhrwBISErjpppuYPXs2O+20ExdddBGDBw9mypQpXkcTEREREYkWqWY2rdwyusL2TsCicvcXR9ZVuo9zrgzIBlrXVeDqUrHXCPTo0YOPPvqIV199lZUrVzJ06FBGjx7N6tWrvY4mIiIiIlIv6rAb5yrn3KByy+MeP9Vao2KvkTAzjj76aObNm8dll13GU089RVpaGk899RShUMjreCIiIiIi0WoJsFW5+50j6yrdx8wCQHPA8zMzKvYamZSUFO655x5++eUX0tPTGTVqFLvtthszZszwOpqIiIiISJ1xGEF8tb5Uw1Sgh5l1N7NY4DhgUoV9JgEjI7dHAF8451ytPfnNpGKvkerbty/ffPMNTz/9NAsWLGCHHXbg0ksvJScnx+toIiIiIiJ1wosBWiLX4J0PfAzMA151zs0xs5vN7LDIbk8Crc3sd+BSYIPpGbygYq8R8/l8nHrqqWRkZHDmmWcyduxY0tPTeeWVV2gAXySIiIiIiEQF59wHzrntnHPbOOdui6wb45ybFLld5Jw72jm3rXNuiHPuT28Th6nYiwKtWrXikUceYcqUKXTo0IHjjjuO/fbbjwULFngdTURERESkVng1z15jpmIvigwZMoSffvqJ8ePHM3XqVPr27cv1119PQUGB19FERERE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LU8//TTffPMNzZo14/DDD+ewww7jr7/+8jqaiKeS4ofRrf0PbN1xJtt0yqBdy7vwVTFfYW3LynuakCtZb52jmMLiHygp/aNeMohI0+PQaJw11WCKPefcN8CajewynPBs8845NwVoYWYd6iediHhtt9124+eff+aee+7hq6++olevXtx6660UFxd7HU3EM2aG39e80ukE6lJRyWygZIP1RgwlZb/XaxYREalagyn2qqETsKjc/cWRdRsws9FmNs3Mpq1cubJewolI3YuJieGyyy5j3rx5HHrooVx//fVsv/32fPrpp15HE2lS4mO3ByqZr86VEhvoUf+BKlNaCi+/DPvuCz16wJAhcP/9kJXldTIR2Wy1P+2Cpl5ohJxzjzvnBjnnBrVp08brOCJSyzp37syrr77KRx99RCgUYr/99uO4445j6dKlXkcTaRJappyGz+IoPyKoEU9i/K7ExmztXbB18vNh//3hwQdZftgxfHPlPSw4/WLcjz/BgAHwu84+ikjT0JiKvSXAVuXud46sE5Emav/992fWrFncdNNNvP3226SnpzN27FjKyiqbNFkaCudClOS/TN6KA8nN3J2inDtwoSyvY0kNBPzt6dLuXRLjdgEC+CyFFskj6Zj6eP0EyMyE//s/OOEEOP10ePttKP97f8klhDp05No9LuS0j7O5453fueSD5ZwSN4y8cy6Aww+HUKh+sopIrdLUCzXTmIq9ScApkVE5dwKynXPLvA4lIt6Kj49nzJgxzJkzh1122YVLLrmEHXbYge+//97raFKFouyrKMq5gVDZHFzwb0ryJpC38hBcqMDraFIDcTHbsVXbV0nbaiE9OmfQtuUN9TNAzOOPQ3o6oT//JHPIbuSk9Ya774a+feHPP2HVKnj1Vd7c40R+nrmI4uIyiopKKSwsYdnyLG5Y0R4CAfjss7rPKiK1TgO01EyDKfbM7CXgByDNzBab2SgzO9vMzo7s8gHwJ/A78ARwrkdRRaQB2mabbfjggw944403WLNmDbvssgtnnHEGq1at8jqalBMqW0hpwVvgys/HVoILrqSk4A3Pckkj8d57cNtt/PDoKxyavz2nfF/MkVONc3Y5l7yRo2C//cJF3C678OY3f1NcvP5Z/lDIMWvOEoqHHwkff+zRkxARqT8Npthzzh3vnOvgnItxznV2zj3pnHvUOfdoZLtzzp3n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2dkwaBAcfnhUF3oiIrVlZvzpT38iNzeXSy+9lIcffpisrCxeeOGFkK3PKSISTVTsiVSjpGwZa7beiaPkN2315nGUlq/wOp6IiOygSZMmPPbYY8yZM4d27dpx1llnMWDAAHJzc72OJiL1yNA9e8FSsSdSja1F7+FcdTf8O7YWvhv2PCIisme9evXiq6++4vHHH+fbb7/lwAMP5IYbbqCwsNDraCJSX5yr/xbDVOyJVKv6C99V/U9ERCKT3+/nsssuIy8vj7POOos777yTzp0789Zbb3kdTUQk7FTsiVQjI3kgZv5dtpv5yUge6EEiEREJRsuWLZk0aRKffvopaWlpDB48mMGDB7Ns2TKvo4lIHWgYZ3BU7IlUIzF+XzLTr8QsicpJa+MwS6JVxlUkxu/jcToREamtI444gnnz5nHvvffy8ccf07lzZ+68805KSkq8jiYiEnIq9kRqkJnxVw5o9R6tMq6iVcZVZLWaTsv0S72OJSIiQYqPj+fqq68mNzeXQYMGccMNN9C9e3c++ugjr6OJSDBciFoMU7EnshtJ8fuRmXE5mRmXkxi/r9dxRESkDtq1a8fUqVN59913KS8vZ8CAAZx55pmsXr3a62giUksWqP8Wy1TsiYiISINy/PHHs3DhQm699VZee+01srOzGT9+POXl5V5HExGpVyr2REREpMFJSkrilltuYeHChfTr148rr7ySXr16MWvWLK+jicjuaBhnUFTsiYiISIO1//7788477/DKK6+wceNGDjvsMP7yl7+wceNGr6OJiNSZij0RERFp0MyMU089lZycHK655homTZpEVlYWEydOJBCI8Rt6RKKMll4Ijoo9ERERESAtLY177rmHefPm0alTJy666CL69+/P/PnzvY4mIvK7qNgTERER2UHXrl2ZOXMmkyZNYsmSJRx88MGMHj2abdu2eR1NpGFzgHP132KYij0RkRjjXCnlFetwrszrKCJRy8w477zzyMvL45JLLmH8+PFkZ2czZcoUXIz/cigSyTSMMzgq9kREYoRzjg1bH+DHVV34aXVflqzqwsZtj+oXU5E6aNKkCY8//jizZ8+mTZs2nHnmmRx77LHk5eV5HU1EZI9U7ImIxIjN+f9kU/5jOLcdRzEBV8DGbQ+ypWCS19FEot4hhxzC7Nmzeeyxx5g7dy7dunXjxhtvpLCw0OtoIg2Lll4I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q6++mvz8fK+jScQJQa+eevZERERERELH5/Nx4YUXkpeXxwUXXMD9999Pp06dePnllzW0U/7HoWIvSCr2RERERCQiNGvWjAkTJjBr1ixatGjBsGHDOOGEE/jxxx+9jiYSlVTsiYiIiEhE6dOnD19//TXjx49n1qxZdO3alVtuuYWioiKvo4nXtM5eUFTsiYiIiEjEiYuL44orriA3N5fTTjuN22+/nW7duvHuu+96HU0kaqjYExEREZGI1bp1a55//nk++ugj4uLiOPHEEznttNNYsWKF19HEA1pUPTgq9kREREQk4h199NHMnz+fO++8k3fffZdOnTpx7733UlZW5nU0CSdN0BIUFXsiIiIiEhUSExMZO3Ysixcv5phjjuHaa6+lR48ezJw50+toIhFJxZ6IiIiIRJV99tmHN954gzfeeIOCggKOPPJIzjvvPNatW+d1NAklBwRc/bcYpmJPRERERKLS4MGDWbx4Mddffz0vvPAC2dnZPPHEE1RUVHgdTSQiqNgTERERkaiVkpLCHXfcwffff8/BBx/MiBEj/rt0g8SaENyvp3v2REREREQiW3Z2Nh9++CEvvPACK1eu5NBDD2XEiBFs3rzZ62ginlGxJyIiIiIxwcwYPnw4ubm5jBw5kn/+859kZWUxefJkXIz34DQY6tkLioo9EREREYkpGRkZjB8/nm+++Yb99tuP8847jyOPPJKFCxd6HU3qSsVeUFTsiYiIiEhMOuigg/jiiy94+umnWbRoEQcddBDXXHMNBQUFXkcTCQsVeyIiIiISs3w+HxdeeCF5eXmcf/753HfffXTq1IlXXnlFQzujjZZeCJqKPRERERGJec2bN+epp57iyy+/pFmzZpx++umceOKJLFmyxOtoIiGjYk9EREREGoy+ffsyd+5cHnroIb744gu6du3KbbfdRnFxsdfRZI8cuED9tximYk9EREREGpS4uDhGjRpFbm4uQ4cO5dZbb6Vr16689957XkeTPdEELUFRsSciIiIiDVKbNm144YUX+OCDD/D7/ZxwwgkMGzaMlStXeh1NpF6o2BMRERGRBm3AgAF8//33jBs3jmnTppGdnc19991HWVmZ19FkR5qgJWgq9kRERESkwUtMTOSGG25g8eLF/OEPf+Caa66hR48efPbZZ15HkwhmZsPMbJGZBcys1x729ZvZPDObFq58KvZERERERKp06NCBt956izfeeIP8/HyOOOII/vznP/PLL794HU0gEu/ZWwicCsysxb6jgJy6HjAYKvZERERERHYyePBgFi9ezNixY3n++efJysriiSeeoKKiwutoDVuEFXvOuRznXN6e9jOzdsAg4Ok6HTBIKvZERERERKqRmprKnXfeyffff0+PHj0YMWIEffr0Ye7cuV5Hk/rV3Mzm7tAuDsExHgKuBcK61oOKPRERERGR3cjOzuajjz7iueeeY+XKlfTu3Zu//vWvbN682etoDUwIevUqe/Y2OOd67dAm7HhUM/vQzBZW04bUJrWZnQT84pz7JgQ/lN1SsSciIiIisgdmxllnnUVubi4jR47kySefJDs7m3//+9+4GF+rraFzzg1wznWtpr1Ry7foBww2s2XAFOBoM3s2ZIF3oGJPRERERKSWMjIyGD9+PHPnzqVDhw6ce+65HHXUUSxatMjraLHPAYFA/bdQx3ZurHOunXNuH2A48LFz7pyQHxgVeyIiIiIiQevRowdffvklEyZMYOHChRx00EFce+21FBQUeB1NwsjMhprZSqAv8LaZTa/a3sbM3vE2nYo9EREREZHfxefz8Ze//IW8vDzOO+887r33Xjp16sSrr76qoZ2hEnmzcb5W1WuX6JzLdM4NrNq+2jl3YjX7f+KcO6lOBw2Cij0RERERkTpo3rw5Tz/9NF988QVNmzbltNNOY9CgQSxdutTraLEnwoq9SKdiT0RERESkHhx22GF88803PPjgg3z22Wd06dKF2267jeLiYq+jSQOlYk9EREREpJ7ExcVx5ZVXkpeXxymnnMKtt95K165dmT59utfRYoCDQAhaDPO82DOzYWa2yMwCZtZrN/sdb2Z5ZrbEzP4WzowiIiIiIsFo06YNU6ZM4YMPPsDv93P88cczbNgwVq5c6XU0aUA8L/aAhcCpwMyadjAzP/AYcALQGTjTzDqHJ56IiIiIyO8zYMAAvv/+e8aNG8e0adPo1KkTDzzwAGVlZV5Hiz4OnAvUe4tlnhd7zrkc51zeHnbrDSxxzv3knCulcjHCWq1YLyIiIiLipcTERG644QYWL17MkUceyVVXXcXBBx/M8uXLvY4WfTSMMyieF3u11BZYscPzlVXbqmVmF5vZXDObu379+pCHExERERHZkw4dOvDWW2/x+uuv065dO1q3bu11JIlxceE4iJl9CLSq5qUbnHNv1PfxnHMTgAkAvXr1iu1yXURERESihpkxZMgQhgzRILXfJcaXSqhvYSn2nHMD6vgWq4C9dnjermqbiIiIiIiIVCMsxV49+BroaGYdqCzyhgNneRtJRERERETCxjkIxPaEKvXN83v2zGyoma0E+gJvm9n0qu1tzOwdAOdcOXA5MB3IAV5yzi3yKrOIiIiIiHjAufpvMczznj3n3GvAa9VsXw2cuMPzd4B3whhNREREREQkanle7ImIiIiIiNSG0zDOoHg+jFNERERERETqn3r2REREREQkCsT+PXb1TT17IiIiIiIiMUg9eyIiIiIiEvkcEFDPXjBU7ImIiIiISHRwmqAlGBrGKSIiIiIiEoPUsyciIiIiIhHPAU7DOIOinj0REREREZEYpJ49ERERERGJfM7pnr0gqdgTEREREZGooGGcwdEwThERERERkRiknj0REREREYkOGsYZFPXsiYiIiIiIxCBzLrbHvZrZemC5hxGaAxs8PL4ER+cruuh8RR+ds+ii8xVddL6iSyScr72dcy08zlBrZvYelT+3+rbBOXd8CN7XczFf7HnNzOY653p5nUNqR+cruuh8RR+ds+ii8xVddL6ii86XhIOGcYqIiIiIiMQgFXsiIiIiIiIxSMVe6E3wOoAERecruuh8RR+ds+ii8xVddL6ii86XhJzu2RMREREREYlB6tkTERERERGJQSr2REREREREYpCKPRERERERkRikYq+emdnlZjbXzErMbFIt9h9tZmvNbJuZPWNmiWGIKVXMrKmZvWZm281suZmdtZt9bzWzMjMr2KHtG868DVFtz5FV+oeZbaxq/zAzC3fehi6I86XrKQIE85mlzyvv1fZ8mdmfzaxip+vrqLAFFQDMLNHMJlb9W5hvZt+Z2Qm72V/XmNQ7FXv1bzUwDnhmTzua2UDgb8AxwN7AvsBtIU0nO3sMKAUygbOBJ8ysy272f9E5l7ZD+yksKRu22p6ji4FTgO7AgcDJwCVhyij/E8w1pevJe7X6zNLnVcSo9e8YwKydrq9PQhtNqhEHrACOBDKAG4GXzGyfnXfUNSahomKvnjnnXnXOvQ5srMXu5wETnXOLnHObgb8Dfw5hPNmBmaUCpwE3OecKnHOfA28Cf/I2mfwqyHN0HnC/c26lc24VcD+6nsJK11T0CeIzS59XESDI3zHEY8657c65W51zy5xzAefcNOA/QM9qdtc1JiGhYs9bXYD5OzyfD2SaWTOP8jQ0BwDlzrkfdtg2n8rzUpOTzWyTmS0ys8tCG08I7hxVdz3t7lxK/Qv2mtL1FD30eRV9epjZBjP7wcxuMrM4rwM1dGaWSeW/k4uqeVnXmISEij1vpQFbd3j+6+NGHmRpiNKAbTtt20rNP/+XgE5AC+AvwM1mdmbo4gnBnaPqrqc03bcXVsGcL11P0UWfV9FlJtAVaEllb/uZwDWeJmrgzCweeA74P+dcbjW76BqTkFCxFwQz+8TMXA3t89/xlgVA+g7Pf32cX/e0UovztfPPn6rn1f78nXOLnXOrnXMVzrkvgfHA6aH9Lhq8YM5RdddTgXPOhSib7KrW50vXU9TR51UUcc795Jz7T9XQwQXA7ej68oyZ+YB/U3k/8+U17KZrTEJCxV4QnHNHOeeshtb/d7zlIionk/hVd2Cdc05j8etBLc7XD0CcmXXc4cu6U/3wimoPAajXKLSCOUfVXU+1PZdSP+pyTel6imz6vIpuur48UjW6ZCKVk1ad5pwrq2FXXWMSEir26pmZxZlZEuAH/GaWtJtx8pOBC82ss5k1pnKWpknhSSrOue3Aq8DtZpZqZv2AIVT+9W0XZjbEzJpUTfHfG7gCeCN8iRueIM/RZGCMmbU1szbAVeh6Cqtgzpeup8gQxGeWPq8iQG3Pl5mdUHV/GGaWDdyEri+vPEHlkPWTnXNFu9lP15iEhnNOrR4bcCuVf0Hbsd1a9Vp7Krvp2++w/xhgHZX3ufwLSPT6e2hIDWgKvA5sB34GztrhtcOpHAb46/MXqJwBrQDIBa7wOn9DaDWdo2rOjwH3AJuq2j2AeZ2/obUgzpeupwhoNX1m6fMqMlttzxdwX9W52g78ROUwzniv8ze0RuUSCg4orjo/v7azdY2phauZc7qdRUREREREJNZoGKeIiIiIiEgMUrEnIiIiIiISg1TsiYiIiIiIxCAVeyIiIiIiIjFIxZ6IiIiIiEgMUrEnIiIiIiISg1TsiYiIiIiIxCAVeyIiEhJmdo+Zvb7D83vN7CMzS/AwloiISIOhRdVFRCQkzKwZ8BNwFHAo8Fegv3Nuq5e5REREGgoVeyIiEjJmditwKpBBZaG3omr7P4DDgGXABc65Mq8yioiIxCoN4xQRkVCaB3QDxu5Q6HUH2jrnDgdygdM9zCciIhKzVOyJiEhImFk34Ang/4ALdnjpMOD9qsfvAf3CHE1ERKRBULEnIiL1zszaAm8BlwIjgG5mdlTVy02AbVWPtwJNw51PRESkIVCxJyIi9crM0oF3gAecc2865wqBe4E7qnbZAqRXPc4ANoU9pIiISAOgCVpERCSszOwgYIxz7lwzux74j3PuBY9jiYiIxBz17ImISFg5574D1pnZZ0AX4BVvE4mIiMQm9eyJiIiIiIjEIPXsiYiIiIiIxCAVeyIiIiIiIjFIxZ6IiIiIiEgMUrEnIiIiIiISg1TsiYiIiIiIxCAVeyIiIiIiIjFIxZ6IiIiIiEgMUrEnIiIiIiISg/4famoRwHI+MNYAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, "output_type": "display_data" } ], @@ -616,10 +619,11 @@ " suptitle=\"Influences of input points with corrupted data\",\n", " legend_title=\"influence values\",\n", " # colorbar_limits=(-0.3,),\n", - ")" + ");" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "80f76c03", "metadata": {}, @@ -628,6 +632,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "38a7f17f", "metadata": {}, @@ -636,6 +641,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "fe10a49c", "metadata": {}, @@ -651,34 +657,49 @@ "id": "e508f38c", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Batch Test Gradients: 100%|██████████| 8/8 [00:00<00:00, 17.89it/s]\n", + "Batch Train Gradients: 100%|██████████| 1/1 [00:00<00:00, 308.47it/s]\n", + "Conjugate gradient: 100%|██████████| 2000/2000 [00:16<00:00, 118.24it/s]\n", + "Batch Split Input Gradients: 100%|██████████| 1/1 [00:00<00:00, 44.89it/s]" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "Average mislabelled data influence: -1.0463689425714193\n", - "Average correct data influence: 0.015039001098187444\n" + "Average mislabelled data influence: -0.82248804123547\n", + "Average correct data influence: 0.01127580743952819\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" ] } ], "source": [ "influence_values = compute_influences(\n", - " model=model,\n", - " loss=F.binary_cross_entropy,\n", - " x=x,\n", - " y=y_corrupted.astype(float),\n", - " x_test=test_data[0],\n", - " y_test=test_data[1].astype(float),\n", + " differentiable_model=TorchTwiceDifferentiable(model, F.binary_cross_entropy),\n", + " training_data=train_corrupted_data_loader,\n", + " test_data=test_data_loader,\n", " influence_type=\"up\",\n", " inversion_method=\"cg\",\n", - " inversion_method_kwargs={\"n_iterations\": 10, \"max_step_size\": 1},\n", + " progress=True,\n", ")\n", - "mean_train_influences = np.mean(influence_values, axis=0)\n", + "mean_train_influences = np.mean(influence_values.numpy(), axis=0)\n", "\n", "print(\"Average mislabelled data influence:\", np.mean(mean_train_influences[:10]))\n", "print(\"Average correct data influence:\", np.mean(mean_train_influences[10:]))" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "3dbb4049", "metadata": {}, @@ -694,14 +715,12 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3sAAAIfCAYAAADJ38UbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACz2ElEQVR4nOzdd3gU1dvG8e+zu+kJNXSkqJjQpAgoVuxdLNgLKoq9/+yK3dcuInbsYq/Ye0VRQKUT7PRQ0/vuef/YRUNIIIEkk2zuz3XNxe7M7Jl7N5uwz86Zc8w5h4iIiIiIiEQXn9cBREREREREpPap2BMREREREYlCKvZERERERESikIo9ERERERGRKKRiT0REREREJAqp2BMREREREYlCKvZERLaQmR1tZn+YWdDMnjGzYWbmzKyz19kaksjrMtvMSs3sqyr2udHMfq/naJ4ws26R98muXmfZlOq+pyPv/8/qK1e0MbO/zey6Gj6m0byPRKT+qdgTEYnYnA+qZuYHngJeBboAF9VFtijxCPAzsDVwZBX73APsVG+JyjGzXSMfmrvV0yEXAR2AH2vyIDMrM7NT6yRR1b4nnHVpJEN9v1YNkplNqOqLi4bMzK4zs7+9ziEidU/FnojIlukAJAMfOOeWOOeyvQ7UgPUAPnXOLXLOralsB+dcnnNuVT3n8oRzLuicW+6cK/U6y6Y450oiWUNeZ6kuM4upzjoRkWimYk9EpArrzvSZ2Wgz+8fMcsxskpm1i2w/lfDZGYBvImc6hlXSTqVd4CqeoTGzdpFjrjSzXDObbGa7V9LOvmb2jZkVmNlcMzuwQrttzexpM8s0syIzyzCz08tt39bM3jCzLDNba2afmFnfctubRR6/3MyKzWyRmd23idcqzczeN7O8yPKumW1bPjfgB56LPIdTq2hnvW6c6+6b2XAzm29m+Wb2lZn1KLfPqZHXch8zmxN5zj+aWf+K+1Q4Vud1P7PIGapvI5v+iqz/aiPP15nZRZHXMd/MlpjZRRX26WBmL0de58JI7kHltq/X/a7c/WPM7L3Iz/fPCu+RvyOv49ORfV1kfY1+Zmb2vJlNLHf/tEh7Z5RbN9HMXorc/vc9XJ3XqqrfmY3kCZjZDRbuDl0ceT0frMFruS7fwWb2nZkVAWfYf7/DF0Reu2IzS4g8fkKFDOud7Sr32EsieQrM7DUzaxXZfiMwCthj3c9i3c/KzJLN7IFyj/vFzI6scLx+ZvZ95Pn+ZmbHbOw1Kve4YyK/E0Vm9j2wfYXtZmZPRF7Lwsh76HYzi4tsPxW4BehaLveNkW0nWPh3J9vMVln4d3q76uQSkYZJxZ6IyMYNBvYEDgb2B/oS7moI8AowJHJ7OOGzfN9vzkHMLAH4EkgBDgQGAB8An5pZzwq73wPcDvQj3AXwFTNrWa6dryPbTgR6ARcABZHt7YDvgBXAboS7TGYAX5lZm0j7twIDI8+pB3AsMG8T2T8B4oE9Iksy8JGZxfJfF0CA8yO3X6nBy9MBOCfyfHYm/Bo9VWEfH3AXcC7hn8lK4P1ItupYRPj5Enl8B6ruarrODcBXhH9WdwH3mtlwCH/gBt4G0oFDIm1mEv55pm6i3TuA5wh/iH8ZmFDuA/dgIAhcHMm47nWt0c+M8Httz3L39yL8mu1Vbt2ewBeVPHZTr9XGfmeq8iRwHnAj4ffsUcCfUOPX8l7gTqAn8G65jHtFMvcDSjaRpbwhkedyAHAQ0D+SlchzehH4gf9+Fq9E8r4bOdaxQB/CXZhfNrO9I88pgfDvd1bkGKcAlwNtNxbGzAYALwGvRdq/B3ig4m6Ef79PIPw6XAycBlwT2f4K4ddocbnc634+cfz3XtqX8Hvt/cjvsYg0Rs45LVq0aNHiHMAzwGcV7q8A4sqtuxJYVu5+N8ABu5ZbNyyyrnNl98vtVwacGrl9KuEPX4EK+3wBjK3QzpHltreLrNs/cn8UUFTxWOX2vxGYUmGdAX8AF0fuvwM8U4PXbRThYjK1Qq5C4JRy6xxw0ibauhH4vcL9MqBNuXXHAiEgvtxr54C9y+3TEsgDRpXbp6zCsTpHHjcscn/XyP1u1XjODni+wroXgW8jt/eO7NOr3PY4YBkwprL3Trn7l5Z7jB/IBc6q7H1Tbl1Nf2bdyueLvPcuI/LeJlwkOGCbKt7Tlb5WVON3ppIs20baGlHF9uq8luvynVxJniwgucL6r4AJFdZdB/xd4bF5QPNy6/aLHGfbyP0JwFcV2hlG+HeweYX1TwFvR26fEWm7ZbntfSJtX7eR1+oFYHKFdedT4W9QJY+7BPitque6kce1irS9S3XfW1q0aGlYSwAREdmY+c654nL3lxIuZGrbYKA9kBU+MfCvOMJFU3m/rrvhnMs0s2C5TDsAc51zizdynB3MLK/C+gTCZ4QAHgbeiHST+xz4CPjYVX29Vu/IMf+91i6SKyOybUstdc6tLH+fcIHaFlhYbv0P5Y6/1szm1dLxq/JDhfuTCXePI3Lc1c65ueUyFZvZj9XI9Gu5xwTNbAWbfs/V6GfmnPs70mVxr8j7p0WkjTFm1ovw2ayFzrk/NnHcytT0d2Zg5N9Pqthek9fyp0oeP885V/H9Xl1z3frX4U6O/NsLqGrU2MFALLCkwu9yLPBbucfPc86tXbfROTfbzDZ1zW8vwj/f8r6ruJOZnUm4oOwGJAEBqtGby8Jdn28gfAYzlfDvGUBX/nvuItKIqNgTEdm4il2+HP99AKqudR+4/32chUfxLP/hy0e4290RlTy+YBOZ1j2+OnyEPyyeX8m2bADn3Mdm1oVwF7xhhM8mzDKzvZ1zwWoepzZV9jOAml2KUFnR01AH66js+W70uW7mz+wLwmfNgsB3zrlCM/uGcJfHqrpwbm7+mv7ObK78aq4LsWGm2no/+Aj/Lg2uZFtNupBuFjM7GngIuIpwl+4c4Gjgtk08LpFwwf0d4W6fmZFNcwgXqiLSCOmaPRGRurci8m/Hcuv6s/6HzWmEpyTIcc79XmFZWoNjTQd6WdXzoU0jfDZkcSXH+ffsmXNujXPuJefcWYSvvdqD8FmFysyJHPPf66ci1wamAbNrkH1L/Ttlg5m1INwVcd3ZoBWAv8JAIQNZ37oP4v6aHi9i53LHmwO0jpwlW5cpDtiRLX9NSirLWMOfGYSv29sD2If/zhatKwCHsfFir6av1cb8HPl3vyq218VruYL1fx9hw/cDQE8za1bu/s6Rf9f9nCv7WUwjfKY0vpLfsYXlHt8z8j4FwMx6A803kXtuuQzr7FLh/u7AL865+5xz051zvxE+w1deZbl7Am2Aa51zXznn5hHuDl1fhbqI1AEVeyIide934B/gRjNLt/Doi/fz3xkqgInAX4QHQ9jPwiMz7mhmV5vZ4TU41kuRY02y8OiU3c1sbzM7NrJ9POEPee+Y2W6R4+xqZreZ2c4AkdtHWniEzR6EB0bJY/0uk+W9SHhwj1fMbKCZ7UB4YJEl1Gwgli3hgLvMbHcLjyz6HOFr3V6MbP8pcv8OM+thZgcAYyq08Q/hMz4HWXhE00198D7EzM6PtHcB4WsJ741s+yJyzBfNbBcz6xPJFE94sI4t8Rewp5l1XFdgb8bPbF3GlsBh/FfYfUF4EJRWbLzYq+lrVSXn3O+E3/8Pm9lJZraNmQ22/0Y3rYvX8jNgHzM72sKj015FeMCiDeIRHkG2j4VHxn0ImBTJDOGfRbqZ9Taz1EgR+kWk/TfN7HAz29rMdrDwiKBnRh73IuH34wsWHpVzJ8LX9FXssl3R/cDQyM97OzM7gvC1luVlAH0tPILtNpHXseJgQ38B7c1saCR3IuGfaTFwQeRxexMe/MUhIo2Wij0RkTrmnCsjXAi0BX4h/IHxWsp1LXTOFRE+yzINeBpYALxJeKS+f2pwrIJIO7MJF1zzIsdLiGzPBIYCqyLtZxD+oN2V8IAXEB5c4mbCZwmnER4V8kBXxRyCzrlCwmdlioFvCHcdywcOcM7Vebe1iBDh0QYfI5y5PXBw5PXAhef1O57w2biZwPXAFeUbiLw2VxPu/raM8KAnG3Mz4bNiMyLHvsI591akLQccDswH3gemRjLt67Z8HsHLCF+b+TfhIhtq+DOLZFxK+H2WS/h9CeHXJgtY4JxbspHH1vS12pTTCP/sbiX8nn0L6B45Vl28ls8S/r14iPDrtRUwrpL9fiLcrfFTwtdBzgJOL7f9yUie7wn/LI6P5D2M8O/X/eVyH0x4IKR1v6cHAa0jx5gY2XcFG+Gcm054lM3jIlmuIjz4SnmPAc8T/jvyC+EzoDdW2OdtwiN6vh/JfUXktTyJ8CiccwiP0Pk/Ku8CLSKNhIX/JomIiDROFp43bIJzrt6uQ7fw/HYnO+deqK9jSv0ys2cIjz66j9dZREQ2l87siYiIiIiIRCEVeyIiIiIiIlFI3ThFRERERESikM7siYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlFIxZ6IiIiIiEgUUrEnIiIiIiIShVTsiYiIiIiIRCEVeyIiIiIiIlEo4HWAupaamuq6devmdQwRERERkQZl+vTpq5xzbbzOUV3775nkVq8J1nq702cWf+ycO6DWG24Aor7Y69atG9OmTfM6hoiIiIhIg2Jm/3idoSZWrwny08ddar1df4ffUmu90QYi6os9ERERERFp/BwQIuR1jEZFxZ6IiIiIiDQCjqBTsVcTGqBFREREREQkCunMnoiIiIiINHjhbpzO6xiNis7siYiIiIiIRCGd2RMRERERkUZBA7TUjIo9ERERERFp8ByOoFM3zppQN04REREREZEopDN7IiIiIiLSKGiAlprRmT0REREREZEopDN7IiIiIiLS4DkgqDN7NaJiT0REREREGgV146wZdeMUERERERGJQjqzJyIiIiIiDZ4DTb1QQzqzJyIiIiIiEoUaRLFnZluZ2ZdmNtfM5pjZRZXsY2Y2zsx+N7OZZjbQi6wiIiIiIuKNUB0s0axBFHtAGXCZc64XsBNwnpn1qrDPgUCPyDIaeKR+I9ZcRkYGq1at8jqGiIiIiIg0QQ2i2HPOLXPO/Ry5nQvMAzpV2G048JwLmwK0MLMO9Ry12pxznHLKKaSlpTFhwgRCoWj/3kBEREREpO44HME6WKJZgyj2yjOzbsAA4McKmzoBi8rdX8yGBeG6Nkab2TQzm7Zy5co6ybkpZsaTTz5J7969OfPMM9lll1349ddfPckiIiIiItLoOQjWwRLNGlSxZ2bJwBvAxc65nM1txzn3uHNukHNuUJs2bWovYA316dOHr7/+mmeffZY//viDHXbYgYsvvpicnM1+aiIiIiIiItXSYIo9M4shXOhNdM69WckuS4Ctyt3vHFnXoJkZp5xyChkZGZx11lmMGzeO9PR0Xn75ZZyGjhURERERqRaHBmipqQZR7JmZAU8C85xz91Wx2yTglMionDsB2c65ZfUWcgu1bNmShx9+mB9//JGOHTty/PHHs++++5KRkeF1NBERERERiUINotgDdgFOBvYys18jy0FmdraZnR3Z5wPgT+B34AngXI+ybpHBgwfz448/Mn78eKZNm0bfvn257rrrKCgo8DqaiIiIiEgDZgTrYIlmFu1dCQcNGuSmTZvmdYxKZWZmcvnll/P888/TrVs3xo0bx6GHHup1LBERERFpAsxsunNukNc5qqvP9rHujfdTa73d9C7LGtXrUBMN5cxek9SuXTuee+45vvrqKxITEznssMMYPnw4f//9t9fRRERERESkkVOx1wDsscce/Prrr9x111189tln9OrVi//7v/+jpKTE62giIiIiIg2GunHWjIq9BiImJobLL7+cefPmceCBB3LNNdfQr18/vvjiC6+jiYiIiIg0aWZ2gJllmNnvZnZVJdvjzOyVyPYfI3OHe07FXgPTpUsX3njjDd5//31KSkrYe++9OeGEE1i2rNEMPCoiIiIiUusc3pzZMzM/8BBwINALON7MelXYbRSw1jm3LXA/cGftPvvNo2KvgTrooIOYPXs2Y8aM4Y033iA9PZ1x48ZRVlbmdTQREREREU+EnNX6Ug1DgN+dc38650qAl4HhFfYZDjwbuf06sHdkejlPqdhrwBISErjpppuYPXs2O+20ExdddBGDBw9mypQpXkcTEREREYkWqWY2rdwyusL2TsCicvcXR9ZVuo9zrgzIBlrXVeDqUrHXCPTo0YOPPvqIV199lZUrVzJ06FBGjx7N6tWrvY4mIiIiIlIv6rAb5yrn3KByy+MeP9Vao2KvkTAzjj76aObNm8dll13GU089RVpaGk899RShUMjreCIiIiIi0WoJsFW5+50j6yrdx8wCQHPA8zMzKvYamZSUFO655x5++eUX0tPTGTVqFLvtthszZszwOpqIiIiISJ1xGEF8tb5Uw1Sgh5l1N7NY4DhgUoV9JgEjI7dHAF8451ytPfnNpGKvkerbty/ffPMNTz/9NAsWLGCHHXbg0ksvJScnx+toIiIiIiJ1wosBWiLX4J0PfAzMA151zs0xs5vN7LDIbk8Crc3sd+BSYIPpGbygYq8R8/l8nHrqqWRkZHDmmWcyduxY0tPTeeWVV2gAXySIiIiIiEQF59wHzrntnHPbOOdui6wb45ybFLld5Jw72jm3rXNuiHPuT28Th6nYiwKtWrXikUceYcqUKXTo0IHjjjuO/fbbjwULFngdTURERESkVng1z15jpmIvigwZMoSffvqJ8ePHM3XqVPr27cv1119PQUGB19FERERE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LU8//TTffPMNzZo14/DDD+ewww7jr7/+8jqaiKeS4ofRrf0PbN1xJtt0yqBdy7vwVTFfYW3LynuakCtZb52jmMLiHygp/aNeMohI0+PQaJw11WCKPefcN8CajewynPBs8845NwVoYWYd6iediHhtt9124+eff+aee+7hq6++olevXtx6660UFxd7HU3EM2aG39e80ukE6lJRyWygZIP1RgwlZb/XaxYREalagyn2qqETsKjc/cWRdRsws9FmNs3Mpq1cubJewolI3YuJieGyyy5j3rx5HHrooVx//fVsv/32fPrpp15HE2lS4mO3ByqZr86VEhvoUf+BKlNaCi+/DPvuCz16wJAhcP/9kJXldTIR2Wy1P+2Cpl5ohJxzjzvnBjnnBrVp08brOCJSyzp37syrr77KRx99RCgUYr/99uO4445j6dKlXkcTaRJappyGz+IoPyKoEU9i/K7ExmztXbB18vNh//3hwQdZftgxfHPlPSw4/WLcjz/BgAHwu84+ikjT0JiKvSXAVuXud46sE5Emav/992fWrFncdNNNvP3226SnpzN27FjKyiqbNFkaCudClOS/TN6KA8nN3J2inDtwoSyvY0kNBPzt6dLuXRLjdgEC+CyFFskj6Zj6eP0EyMyE//s/OOEEOP10ePttKP97f8klhDp05No9LuS0j7O5453fueSD5ZwSN4y8cy6Aww+HUKh+sopIrdLUCzXTmIq9ScApkVE5dwKynXPLvA4lIt6Kj49nzJgxzJkzh1122YVLLrmEHXbYge+//97raFKFouyrKMq5gVDZHFzwb0ryJpC38hBcqMDraFIDcTHbsVXbV0nbaiE9OmfQtuUN9TNAzOOPQ3o6oT//JHPIbuSk9Ya774a+feHPP2HVKnj1Vd7c40R+nrmI4uIyiopKKSwsYdnyLG5Y0R4CAfjss7rPKiK1TgO01EyDKfbM7CXgByDNzBab2SgzO9vMzo7s8gHwJ/A78ARwrkdRRaQB2mabbfjggw944403WLNmDbvssgtnnHEGq1at8jqalBMqW0hpwVvgys/HVoILrqSk4A3Pckkj8d57cNtt/PDoKxyavz2nfF/MkVONc3Y5l7yRo2C//cJF3C678OY3f1NcvP5Z/lDIMWvOEoqHHwkff+zRkxARqT8Npthzzh3vnOvgnItxznV2zj3pnHvUOfdoZLtzzp3n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2dkwaBAcfnhUF3oiIrVlZvzpT38iNzeXSy+9lIcffpisrCxeeOGFkK3PKSISTVTsiVSjpGwZa7beiaPkN2315nGUlq/wOp6IiOygSZMmPPbYY8yZM4d27dpx1llnMWDAAHJzc72OJiL1yNA9e8FSsSdSja1F7+FcdTf8O7YWvhv2PCIisme9evXiq6++4vHHH+fbb7/lwAMP5IYbbqCwsNDraCJSX5yr/xbDVOyJVKv6C99V/U9ERCKT3+/nsssuIy8vj7POOos777yTzp0789Zbb3kdTUQk7FTsiVQjI3kgZv5dtpv5yUge6EEiEREJRsuWLZk0aRKffvopaWlpDB48mMGDB7Ns2TKvo4lIHWgYZ3BU7IlUIzF+XzLTr8QsicpJa+MwS6JVxlUkxu/jcToREamtI444gnnz5nHvvffy8ccf07lzZ+68805KSkq8jiYiEnIq9kRqkJnxVw5o9R6tMq6iVcZVZLWaTsv0S72OJSIiQYqPj+fqq68mNzeXQYMGccMNN9C9e3c++ugjr6OJSDBciFoMU7EnshtJ8fuRmXE5mRmXkxi/r9dxRESkDtq1a8fUqVN59913KS8vZ8CAAZx55pmsXr3a62giUksWqP8Wy1TsiYiISINy/PHHs3DhQm699VZee+01srOzGT9+POXl5V5HExGpVyr2REREpMFJSkrilltuYeHChfTr148rr7ySXr16MWvWLK+jicjuaBhnUFTsiYiISIO1//7788477/DKK6+wceNGDjvsMP7yl7+wceNGr6OJiNSZij0RERFp0MyMU089lZycHK655homTZpEVlYWEydOJBCI8Rt6RKKMll4Ijoo9ERERESAtLY177rmHefPm0alTJy666CL69+/P/PnzvY4mIvK7qNgTERER2UHXrl2ZOXMmkyZNYsmSJRx88MGMHj2abdu2eR1NpGFzgHP132KYij0RkRjjXCnlFetwrszrKCJRy8w477zzyMvL45JLLmH8+PFkZ2czZcoUXIz/cigSyTSMMzgq9kREYoRzjg1bH+DHVV34aXVflqzqwsZtj+oXU5E6aNKkCY8//jizZ8+mTZs2nHnmmRx77LHk5eV5HU1EZI9U7ImIxIjN+f9kU/5jOLcdRzEBV8DGbQ+ypWCS19FEot4hhxzC7Nmzeeyxx5g7dy7dunXjxhtvpLCw0OtoIg2Lll4I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q6++mvz8fK+jScQJQa+eevZERERERELH5/Nx4YUXkpeXxwUXXMD9999Pp06dePnllzW0U/7HoWIvSCr2RERERCQiNGvWjAkTJjBr1ixatGjBsGHDOOGEE/jxxx+9jiYSlVTsiYiIiEhE6dOnD19//TXjx49n1qxZdO3alVtuuYWioiKvo4nXtM5eUFTsiYiIiEjEiYuL44orriA3N5fTTjuN22+/nW7duvHuu+96HU0kaqjYExEREZGI1bp1a55//nk++ugj4uLiOPHEEznttNNYsWKF19HEA1pUPTgq9kREREQk4h199NHMnz+fO++8k3fffZdOnTpx7733UlZW5nU0CSdN0BIUFXsiIiIiEhUSExMZO3Ysixcv5phjjuHaa6+lR48ezJw50+toIhFJxZ6IiIiIRJV99tmHN954gzfeeIOCggKOPPJIzjvvPNatW+d1NAklBwRc/bcYpmJPRERERKLS4MGDWbx4Mddffz0vvPAC2dnZPPHEE1RUVHgdTSQiqNgTERERkaiVkpLCHXfcwffff8/BBx/MiBEj/rt0g8SaENyvp3v2REREREQiW3Z2Nh9++CEvvPACK1eu5NBDD2XEiBFs3rzZ62ginlGxJyIiIiIxwcwYPnw4ubm5jBw5kn/+859kZWUxefJkXIz34DQY6tkLioo9EREREYkpGRkZjB8/nm+++Yb99tuP8847jyOPPJKFCxd6HU3qSsVeUFTsiYiIiEhMOuigg/jiiy94+umnWbRoEQcddBDXXHMNBQUFXkcTCQsVeyIiIiISs3w+HxdeeCF5eXmcf/753HfffXTq1IlXXnlFQzujjZZeCJqKPRERERGJec2bN+epp57iyy+/pFmzZpx++umceOKJLFmyxOtoIiGjYk9EREREGoy+ffsyd+5cHnroIb744gu6du3KbbfdRnFxsdfRZI8cuED9tximYk9EREREGpS4uDhGjRpFbm4uQ4cO5dZbb6Vr16689957XkeTPdEELUFRsSciIiIiDVKbNm144YUX+OCDD/D7/ZxwwgkMGzaMlStXeh1NpF6o2BMRERGRBm3AgAF8//33jBs3jmnTppGdnc19991HWVmZ19FkR5qgJWgq9kRERESkwUtMTOSGG25g8eLF/OEPf+Caa66hR48efPbZZ15HkwhmZsPMbJGZBcys1x729ZvZPDObFq58KvZERERERKp06NCBt956izfeeIP8/HyOOOII/vznP/PLL794HU0gEu/ZWwicCsysxb6jgJy6HjAYKvZERERERHYyePBgFi9ezNixY3n++efJysriiSeeoKKiwutoDVuEFXvOuRznXN6e9jOzdsAg4Ok6HTBIKvZERERERKqRmprKnXfeyffff0+PHj0YMWIEffr0Ye7cuV5Hk/rV3Mzm7tAuDsExHgKuBcK61oOKPRERERGR3cjOzuajjz7iueeeY+XKlfTu3Zu//vWvbN682etoDUwIevUqe/Y2OOd67dAm7HhUM/vQzBZW04bUJrWZnQT84pz7JgQ/lN1SsSciIiIisgdmxllnnUVubi4jR47kySefJDs7m3//+9+4GF+rraFzzg1wznWtpr1Ry7foBww2s2XAFOBoM3s2ZIF3oGJPRERERKSWMjIyGD9+PHPnzqVDhw6ce+65HHXUUSxatMjraLHPAYFA/bdQx3ZurHOunXNuH2A48LFz7pyQHxgVeyIiIiIiQevRowdffvklEyZMYOHChRx00EFce+21FBQUeB1NwsjMhprZSqAv8LaZTa/a3sbM3vE2nYo9EREREZHfxefz8Ze//IW8vDzOO+887r33Xjp16sSrr76qoZ2hEnmzcb5W1WuX6JzLdM4NrNq+2jl3YjX7f+KcO6lOBw2Cij0RERERkTpo3rw5Tz/9NF988QVNmzbltNNOY9CgQSxdutTraLEnwoq9SKdiT0RERESkHhx22GF88803PPjgg3z22Wd06dKF2267jeLiYq+jSQOlYk9EREREpJ7ExcVx5ZVXkpeXxymnnMKtt95K165dmT59utfRYoCDQAhaDPO82DOzYWa2yMwCZtZrN/sdb2Z5ZrbEzP4WzowiIiIiIsFo06YNU6ZM4YMPPsDv93P88cczbNgwVq5c6XU0aUA8L/aAhcCpwMyadjAzP/AYcALQGTjTzDqHJ56IiIiIyO8zYMAAvv/+e8aNG8e0adPo1KkTDzzwAGVlZV5Hiz4OnAvUe4tlnhd7zrkc51zeHnbrDSxxzv3knCulcjHCWq1YLyIiIiLipcTERG644QYWL17MkUceyVVXXcXBBx/M8uXLvY4WfTSMMyieF3u11BZYscPzlVXbqmVmF5vZXDObu379+pCHExERERHZkw4dOvDWW2/x+uuv065dO1q3bu11JIlxceE4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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABNYAAAL/CAYAAACqBkp7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3gUVd/G8e/spvcESEKvSgtdOggC0pQiqKgooNhFQX1EsQBWLNh7BSxYQAFFQKUI0muAICAo0kMLpNfdef8I5CWSTrKTcn+ua55HZs7O3DO7SXZ/e+YcwzRNExERERERERERESkUm9UBREREREREREREyiIV1kRERERERERERIpAhTUREREREREREZEiUGFNRERERERERESkCFRYExERERERERERKQIV1kRERERERERERIpAhTUREREREREREZEiUGFNRERERERERESkCFRYExERERERERERKQIV1kRERIpBXFwcDzzwAHXq1MHNzQ3DMIiMjOT333/HMAwmT55sdcQKKzo6mpEjR1KjRg3sdjuGYXDmzJk8H2MYBt27d3dJvvKuIl3L7t27YxhGoR4zffp0DMNg+vTpJRNKStSoUaMwDIN///33ovc1efJkDMPg999/v+h9iYiI66iwJiIiFZZhGIX+EJyb8ePH8/bbb9OsWTMmTJjApEmTCA8PL5Z9y8UZNWoUX3zxBd26dePJJ59k0qRJeHl5WR2r2FSU4m1RilalQUV5fkqLf//9F8MwGDVqlNVRLFOcxT4REcmfm9UBREREyoP58+dz6aWX8tNPP2Vbv2vXLosSCUBaWhq//fYbvXr14quvvirw43bu3ImPj08JJqs4KtK1/Pzzz0lKSrI6hoiIiLiQCmsiIiLF4MiRI1x++eVWx5D/iI6Oxul0Uq1atUI9rlGjRiWUqOKpSNeyVq1aVkcQERERF9OtoCIiIuc5/zaif//9lxtuuIHKlSvj5eXFZZddxvz587O1P3d7mmmaLF++POv20vzGlKpTpw516tTJcVte4+zs2rWLUaNGUbNmTTw8PAgLC+Omm25i9+7dF7Q9/3agDz/8kGbNmuHl5UVYWBh33nknsbGxOR7/0KFDPPDAA1xyySV4e3sTEhJCu3btePbZZ3NsO2bMGOrVq4enpyeVKlVi4MCBbNiw4YK28fHxPPvss0RERBAQEIC/vz/169dn2LBhbNq0Kc/rdb49e/YwYsQIqlevjoeHB9WqVWPEiBHs2bMnW7s6depQu3ZtAGbMmJH13BTkFrGcnsPzn5fZs2fTrl07fHx8CAkJ4YYbbuDw4cMX7Ofc6yM1NZUnn3ySunXr4unpSf369Xn66adJS0vL1j6/29j+ezvkqFGjuOKKKwB4+umns86xoOM0nTvPI0eOcMsttxAaGoq3tzdt2rRh5syZOT7G6XTywQcf0LZtW/z8/PD19aVt27a8//77OJ3OXI9xvsJcy3PXZPny5Vn7y+nnbNu2bdx4443UqVMHT09PqlSpQuvWrRk3bhzp6el5XoeEhAQ8PDzo3LlztvXJycl4eXlhGAZffPFFtm3vv/8+hmHw2WefZa272Odn2bJldO/eHX9/fwICArjqqqvYuXNnntlz8uuvvzJgwABCQ0Px9PSkZs2aDBo0iMWLF2drV9TnMjo6mttvv53q1atjt9uzxofLb3tet/PmNtbcud+VsbGxjBkzhurVq+Pl5UWTJk146623ME0zq+3kyZOpW7cukP1nPqf9/vLLL/Tv35/KlStn/Uw+8sgjuY6/uHjxYrp27Yqvry8hISEMHjy4yD2SN23aRN++fbOe5169erFmzZpc28+dO5ebb76ZSy+9FF9fX3x9fWnTpg1vvfXWBc+TYRjMmDEDgLp162ad//l/bzZt2sTYsWNp0aIFISEheHl5cckll/Dwww9z+vTpIp2TiEhFph5rIiIiOdi/fz/t2rWjXr163HLLLcTExPDtt99mfTg992F51KhRdO/enaeffpratWtnFURyK5pdjEWLFjFkyBDS09MZMGAADRo04NChQ/zwww/8/PPPLFu2jNatW1/wuPHjx/PLL78wYMAAevfuzbJly/j444/Zu3cvS5cuzdZ248aN9OnTh5iYGC6//HKGDBlCUlISf/75J5MnT+app57Kart582Z69+5NTEwMffr0YciQIZw8eZK5c+fSpUsX5syZQ//+/QEwTZO+ffuyevVqOnbsyO23346bmxuHDh1i2bJldO3alTZt2uR7DTZs2ECvXr2Ij49n4MCBNGnShF27dvHll18yb948Fi9eTNu2bQEYN24c//77L2+++SYtWrRg8ODBALRs2bKIz0Cm9957jx9//JGBAwfSrVs31q1bx7fffsvWrVuJjIzE09Pzgsdcf/31bNiwgWuvvRZ3d3fmzZvH5MmT2bhxIz/++GORxw47d04zZsygW7du2QpNBX0Nnj59mk6dOhEUFMStt97KmTNn+O677xg+fDiHDx/mkUceydb+lltuYebMmdSsWZPbb78dwzCYM2cO9957LytXrizULbcFuZZBQUFMmjSJ6dOns3//fiZNmnTBOW7bto327dtjGAYDBw6kbt26xMXFsXfvXt577z2ee+453N3dc83h5+dHu3btWLduHfHx8fj7+wOwatUqUlNTAViyZAm33HJL1mOWLFkCQM+ePXPdb2Gen/nz5zNv3jz69evH3XffzZ9//smCBQvYsGEDf/75J5UrV873egJMmjSJZ555Bj8/PwYPHkzNmjU5cuQIq1ev5ssvv6RXr15ZbYvyXMbExNChQwf8/PwYMmQINpuNsLCwAm8virS0NHr16sWZM2e44YYbSEtL4/vvv2fs2LHs3r2bd999F8gs3J05c+aCn3nI/nP/9NNPM3nyZEJCQrj66qsJDQ1l27ZtTJ06lQULFrBmzRoCAgKy2s+ePZthw4bh4eHBsGHDqFq1KitXrqRjx440b968UOeyevVqevXqRVpaGkOGDKFBgwZERkbSvXt3evTokeNjHnvsMWw2G+3bt6d69erExsaydOlSxo4dy4YNG7IVfSdNmsTcuXPZunUrY8eOJSgoCCDr/wE+/vhj5syZQ7du3ejVqxdOp5NNmzbx2muvsXDhQtatW5f1MyAiIgVgioiIVFCA+d8/hfv27ctaP3ny5GzbFi1aZAJmv379ctxXt27dLli/bNkyEzAnTZqUbX3t2rXN2rVr55hr0qRJJmAuW7Ysa11MTIwZFBRkVqpUydyxY0e29tu3bzd9fX3NVq1aZVs/cuRIEzBr1qxp7t+/P2t9enq62bVrVxMw161bl7U+NTXVrFOnjgmYX3311QW5Dh48mG0f9evXNz09Pc3ff/89W7vDhw+b1apVM8PDw82UlBTTNE1z27ZtJmAOHjz4gv06HA4zJiYmx2txPqfTaTZq1MgEzC+//DLbtm+++cYEzIYNG5oOhyNr/bnnc+TIkfnu/3w5PZ/nnhd/f39z27Zt2bbdeOONJmB+++232dZ369bNBMxLLrkk2zkmJyebHTp0MAHz888/L3Dec/s7X26vsYKeJ2Bed9112a7bP//8YwYHB5vu7u7m33//nbV+5syZJmC2atXKjI+Pz1qfkJBgtmnTJsfXTnFfy5w89NBDJmDOnTv3gm0xMTHZzi03Tz31lAmY8+fPz1r32GOPmXa73ezRo4dZo0aNrPUOh8MMCQkx69Wrl2/G/J6fadOmmYBpt9vNxYsXZ9v22GOPmYD50ksv5ZvfNE3zl19+MQGzbt265qFDhy7Yfv7PcFGfS8C85ZZbzPT09Av2n9/2vJ7Dc9dh2rRp2dbXrl3bBMzOnTtn/T4xTdM8deqUWa9ePRMwly9fnrU+v5+hpUuXmoDZsWNH8/Tp0zlmGDduXNa6+Ph4MyQkxHRzczM3bNiQrf24ceOyznnfvn05Hu98TqfTbNiwYY6v1TfeeCNrX+f/7jdN09y7d+8F+3I4HOaIESNMwFy7dm22bed+9+eW6d9//zUzMjIuWP/JJ5+YgPniiy/mey4iIvL/dCuoiIhIDmrXrs2TTz6ZbV2fPn2oVasW69evd3mezz//nDNnzvD000/TpEmTbNsiIiK444472LJlC3/++ecFj504cWK2sZ/c3Ny49dZbAbKdy08//cS///7LwIEDuemmmy7YT40aNbL+++eff+bvv//m/vvvp1u3btnaVatWjfHjxxMdHZ3Vq+ccb2/vC/Zrs9kIDg7O6/SBzJ4eu3btomPHjgwfPjzbtmHDhtGlSxd2797NypUr893XxXjggQdo1qxZtnV33HEHQK6vjaeeeirbOXp5eTFlyhSAbLcSWsFut/PSSy9hs/3/28K6devywAMPkJ6enq03zLmsL774In5+flnrfX19eemllwD45JNPCnzsolzLvOT0+goODs52brk51/Ps/NfskiVLaNOmDUOGDOHQoUP89ddfAERGRhITE5Nnb7XCuuGGGy7Y35133gkU/Fq8/fbbALz66qtUr179gu3n/wwX9bn08PBg6tSpuLnlfONLftuLasqUKdl6g4aEhGT1oJ02bVqB9/PWW28Bmb22zu/FBZk9kFu2bJmtp968efOIiYnhpptu4rLLLsvWfvLkyQQGBhb42KtXr2b37t1cfvnlDBo0KNu2MWPGUL9+/Rwfl9N6m83G2LFjgczbWgujdu3a2O32C9bfdtttBAQEFHp/IiIVnW4FFRERyUHLli1z/OBRs2bNPMfCKSnnjrl161YmT558wfZzH/h37tx5QeHtvx8GIfM8gGzj6axduxaAfv36FTjP/v37c8xzbryznTt30r9/f5o0aULLli35+uuv2b9/P4MGDaJLly5cdtlleHh45Hs8yLz1FMj1dqkePXqwcuVKtmzZUqITSRT0ep7vv8VHgC5dumC329myZUvxBiykWrVqZY1Ldb5ztzifn2/z5s3YbLYcxxDs1q1boc+nKNcyJ8OGDePNN99k8ODBXHvttfTq1YvOnTvnWqjISceOHfH29s4qrMXGxrJ582bGjx+f9ZpbsmQJl156adYt1Lm9FouiOK7F2rVrMQyDvn375tu2qM9lnTp1CA0NzXW/+W0vCjc3Nzp16nTB+nPZC/OaW7NmDe7u7syaNYtZs2ZdsD0tLY0TJ05w6tQpKlWqlPV7J6ef4cDAQFq2bJk1/l9+8tqX3W6nS5cu/P333xdsO3XqFK+88goLFizgn3/+ITExMdv2nMZ3zEt6ejoffvgh33zzDX/++SexsbHZxmor7P5ERCo6FdZERERy8N+eDOe4ubnlOKh3STt16hSQ2csiLwkJCResy+lczvUmcTgcWevODdqdU0+X3PLk9ME0pzx2u52lS5fyzDPPMHv2bB599FEA/P39GTlyJFOmTMnWayYn5yZbqFq1ao7bz63PbfDx4lLQ63m+nMaYcnNzo3Llyhw/frxY8xVWbuNfhYeHA2Sb5CI2NpaQkJAci6FFOZ+iXMuctGvXjj/++IPnn3+e2bNnZ/Wya9iwIZMmTeLGG2/Mdx8eHh506dKFxYsXc+LECVavXo3D4aBnz540btyYqlWrsmTJEu655x6WLFmCYRjFWlgrjmtx5swZgoODc+y5919FfS7PvS5yk9/2oqhcuXKOX3Tk9BrNz6lTp8jIyODpp5/Os11CQgKVKlXK2nd+PycFUZR9nTlzhrZt27Jv3z7atWvHiBEjCAkJwc3NLWs8uXPjABbUsGHDmDNnDvXq1WPQoEGEh4dn9QZ84403Cr0/EZGKToU1ERERC9hstgtmhDwnp8LQuduNtm7dWujBsgvq3Af7gvRWOJdn3rx5DBw4sED7Dw4O5vXXX+f1119n7969LF++nA8//JB33nmHM2fOXDDrYm7HjI6OznH70aNHs7UrTY4dO5btdlyAjIwMTp48mW2Q9HO3LGZkZOS4n5IoGh47dizH9eeu8/nXMzAwkJiYGNLT0y+YDCCn83Gljh07Mn/+fFJTU9m0aROLFi3i7bff5qabbqJKlSrZBu3PTY8ePfjtt99YsmQJq1evxsvLK2um0B49erBw4UJSU1P5448/aNq0abH3zLpYQUFBnDp1iuTk5HyLa0V9LvObaCOv7ee/vv97q2her+2TJ0/icDguKK7l9BrNT2BgIE6nk5iYmAK3h/x/TkpqX5988gn79u1j0qRJF/QOXrNmDW+++WaBjw+ZE9TMmTOHXr16sXDhwmzPg9Pp5OWXXy7U/kREBDTGmoiIiAWCg4M5duwY6enpF2zbuHHjBes6dOgAwB9//FFimc4dY+HChQVuW9Q8DRo0YPTo0Sxfvhw/Pz/mzZuX72NatWoFwO+//57j9mXLlgHkODOq1XK6VWzlypU4HI6s8wKyxmE7ePDgBe3j4uKybvk937liQ2F6eJ3vwIED/PvvvxesP3edz8/XqlUrnE4nK1asuKD9ihUrcDgcJXb9C3qenp6edOrUiWeeeSZrPK2CvL4g+zhrS5cupVOnTnh5eWVti4mJ4f333ycxMbHA46td7PNTGB06dMA0TRYtWpRvWyuey7xe3zn93jsnIyOD1atXX7A+p9dofte7Q4cOnD59mh07dhQo87lrkNPPcGxsLJGRkQXaT377cjgcOY4PuXfvXgCGDh16wbbcbkHN6xqc29/AgQMvKG6uX7+e5OTkvE5BRERyoMKaiIiIBdq1a0dGRsYFg25Pnz6dVatWXdD+1ltvJSgoiKeffjrHgcydTmeuBaeCGjBgAHXq1OHHH3/k66+/vmD7oUOHsv570KBB1K9fn3fffZcFCxbkuL81a9aQlJQEwL59+/jnn38uaHP69GlSU1MLdOta586dadiwIStXrmT27NnZts2ePZs//viDSy+9lC5duuS7L1d79tlns42TlZKSwoQJEwCyJpKAzFtjGzVqxKpVq7JNROFwOHjooYdy/NBbqVIlILNAVhQOh4NHH3002y3O+/bt46233sLNzY2bb745a/1tt90GwIQJE7KeW4CkpCQee+wxAEaPHl2kHPnJ6zxXr16d47U51zPIx8enQMdo3bo1gYGBzJs3jx07dmQrnp277fPcpBMFvQ30Yp+fwrj//vsBePjhh3PseXr+Oiuey3bt2gEX3tK+ZMmSHH/nnG/ChAnZblGMiYnhueeeA7L/DAUHB2MYRq7X+8EHHwQyJ8k4cuTIBdsTExOzxpuEzN91wcHBzJw584Li3+TJkwt1G2qnTp1o2LAhK1asuKDY+8477+Q4vlqdOnWAC79Q2LJlS9Zr8b/yes3ltr/jx49z3333FeAsRETkv3QrqIiIiAXuv/9+pk2bljVeU82aNYmMjGTNmjVcffXVzJ8/P1v7SpUqMXv2bK655ho6dOhAz549adq0KYZhcPDgQdasWcOpU6dISUkpciYPDw9mzZpF7969uemmm/jwww/p0KEDKSkp7Ny5kyVLlmTdouju7s4PP/xAnz59uOqqq+jUqRMtW7bEx8eHgwcPsmHDBv755x+OHj2Kj48PW7duZciQIbRt25bGjRtTrVo1Tpw4wbx580hPT88acy0vhmEwY8YMrrzySoYNG8agQYNo1KgRu3fvZu7cufj7+/P5558XaAZIV2vcuDFNmzbl2muvxd3dnXnz5vH3339z1VVXccstt2Rr+8gjjzB69Gg6d+7Mddddh5eXF8uWLSM9PZ0WLVqwdevWbO0bNmxI9erV+eabb3B3d6d27doYhsEtt9xC7dq1883WvHlz1q1bR5s2bejduzdnzpzhu+++48yZM7z88svZJgC46aabmDdvHt999x1NmzZl8ODBGIbB3Llz2bdvH8OGDbtgxtbi0rNnT2bNmsWQIUPo378/3t7e1K5dm1tuuYWXX36ZpUuX0rVrV+rWrYufnx87duxg4cKFBAcHZ82umR+73U737t2zih7nF9Zq165N/fr1+fvvv7Hb7TkOQJ+Ti31+CqN37948+eSTPPfcczRu3JjBgwdTs2ZNjh07xsqVK+nQoQPTp08HrHkub731Vl555RWmTJnC1q1badKkCX/99RcLFy7kmmuu4fvvv8/xcVWrViU1NZWIiAgGDhxIeno6s2fP5ujRo9x7773ZJivx8/Ojffv2/PHHHwwfPpxLL70Uu93OwIEDad68OT179uTFF19kwoQJXHLJJfTv35+6deuSkJDA/v37Wb58OV26dMnq9efn58dHH33EsGHD6Nq1K8OGDaNq1aqsXLmSqKgoLr/88hx7/eXEMAw+/fRTrrzySoYOHcqQIUNo0KABkZGRLFmyhL59+17Q23DEiBG88sorjBs3jmXLlnHJJZewZ88e5s+fz5AhQ/j2228vOE7Pnj155ZVXuOOOOxg6dCj+/v4EBQUxZswY2rZtS+fOnfnhhx/o1KkTXbp04dixYyxcuJCGDRtSrVq1gj6dIiJyjikiIlJBAeZ//xTu27fPBMyRI0fm+Jhu3bpd8Jhz++rWrdsF65ctW2YC5qRJky7Y9scff5hdu3Y1vb29TX9/f7N///7m1q1bzUmTJpmAuWzZsgses2/fPvO+++4zGzRoYHp6epr+/v5mw4YNzZtvvtmcM2dOtrYjR440AXPfvn2FyrV//37znnvuMevUqWO6u7ubISEhZrt27cznn3/+grbHjh0zH330UbNp06amt7e36evrazZo0MAcOnSo+cUXX5jp6emmaZrmwYMHzQkTJpidOnUyw8LCTA8PD7N69epm3759zQULFlyw37zs2rXLvPnmm83w8HDTzc3NDA8PN4cPH27u2rUrx+uV1/OZm5yez/yel5yOc+71kpKSYj7xxBNmnTp1TA8PD7Nu3brm5MmTzZSUlByP/8knn5hNmjQxPTw8zLCwMPPOO+80T548mevrb/369WaPHj3MgIAA0zCMXHPmdp6HDx82hw8fblapUsX09PQ0W7VqZX711Vc5PsbhcJjvvvuu2aZNG9Pb29v09vY2W7dubb7zzjumw+HI9RjnK8q1zMjIMCdMmGDWrVvXdHNzy7bfX375xRw1apTZuHFjMyAgwPTx8TEvvfRS8/777zf//ffffK/D+d566y0TMAMCAsyMjIxs2+68804TMNu1a5fjY4vy/EybNs0EzGnTpuW4z9x+t+Tl559/Nvv06WMGBwebHh4eZo0aNczBgwebS5YsydauOJ7LwmaNiooy+/XrZ/r5+Zm+vr5mt27dzN9//z3X61C7dm2zdu3a5pkzZ8x7773XrFatmunh4WE2atTIfPPNN02n03nBMfbs2WNeffXVZkhISNb1/u9+//jjD/O6664zq1atarq7u5uVK1c2W7RoYT744IPmhg0bLtjnr7/+anbu3Nn09vY2g4KCzIEDB5o7d+7M8/dsbjZu3Gj26dPH9PPzM/38/MyePXuaq1evzvXnYseOHeaAAQPMKlWqmD4+Pmbr1q3Njz/+OM/fb6+++qrZqFEj08PDwwTM2rVrZ207deqUec8995i1a9c2PT09zXr16pkTJkwwExMTs663iIgUnGGaplnCtTsRERGRCql79+4sX76c0vp2yzAMunXrdtG3EYuUlHO3LuY0DqCIiEhpUPrulRARERERERERESkDVFgTEREREREREREpAhXWREREREREREREikBjrImIiIiIiIiIiBSBeqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBGosCYiIiIiIiIiIlIEKqyJiIiIiIiIiIgUgQprIiIiIiIiIiIiRaDCmoiIiIiIiIiISBG4WR2grHE6nRw5cgR/f38Mw7A6joiIiIiIiEi5ZJom8fHxVKtWDZutYvULSklJIS0tzZJje3h44OXlZcmxyyIV1grpyJEj1KxZ0+oYIiIiIiIiIhXCwYMHqVGjhtUxXCYlJYW6tf2IPu6w5Pjh4eHs27dPxbUCUmGtkPz9/YHMH+yAgACL04iIiIiIiIiUT3FxcdSsWTPrc3hFkZaWRvRxB/s31SHA37U99eLindRu8y9paWkqrBWQCmuFdO72z4CAABXWREREREREREpYRR2Gyc/fwM/ftefupGJe64tRsW5SFhERERERERERKSYqrImIiIiIiIiIiBSBbgUVERERERERESllHKYTh+n6Y0rhqMeaiIiIiIiIiIhIEajHmoiIiIiIiIhIKePExIlru6y5+njlgXqsiYiIiIiIiIiIFIF6rImIiIiIiIiIlDJOnLh6xDPXH7HsU481ERERERERERGRIlBhTUREREREREREpAh0K6iIiIiIiIiISCnjME0cpmsnE3D18coD9VgTEREREREREREpAvVYExEREREREREpZZyYOHFtDzJXH688UI81ERERERERERGRIlBhTUREREREREREpAh0K6iIiIiIiIiISCnjxMShW0FLPfVYExERERERERERKQL1WBMRERERERERKWU0eUHZoB5rIiIiIiIiIiIiRaAeayIiIiIiIiIipYzDNHGYru1B5urjlQfqsSYiIiIiIiIiIlIEZbawNmXKFNq2bYu/vz+hoaEMHjyY3bt35/u4WbNm0ahRI7y8vGjWrBkLFixwQVoRERERERERESlvymxhbfny5dx3332sXbuW3377jfT0dHr37k1iYmKuj1m9ejU33ngjo0ePZsuWLQwePJjBgwcTFRXlwuQiIiIiIiIiInlzWrRI4RimWT5uoD1x4gShoaEsX76cyy+/PMc2w4YNIzExkfnz52et69ChAy1btuSDDz4o0HHi4uIIDAwkNjaWgICAYskuIiIiIiIiItlV1M/f5857184w/P1d2x8qPt5Jo8bHKtw1vxhltsfaf8XGxgIQEhKSa5s1a9bQq1evbOv69OnDmjVrSjSb1b788kvWr19vdQwRERERERERKSAHpiWLFE65KKw5nU7GjRtH586diYiIyLVddHQ0YWFh2daFhYURHR2d62NSU1OJi4vLtpQlu3fv5o477qBTp0488cQTpKamWh1JRERERERERKRcKBeFtfvuu4+oqCi++eabYt/3lClTCAwMzFpq1qxZ7McoSVWqVGHIkCE4HA5eeOEF2rVrR2RkpNWxRERERERERETKvDJfWBszZgzz589n2bJl1KhRI8+24eHhHDt2LNu6Y8eOER4enutjJkyYQGxsbNZy8ODBYsntKiEhIXz11VfMnj2bKlWqsG3bNtq2bcuzzz5Lenq61fFEREREREREJAcO05pFCqfMFtZM02TMmDHMmTOHpUuXUrdu3Xwf07FjR5YsWZJt3W+//UbHjh1zfYynpycBAQHZlrJo6NChREVFMWTIEDIyMpg4cSIdO3Zkx44dVkcTERERERERESmTymxh7b777uPLL79k5syZ+Pv7Ex0dTXR0NMnJyVltRowYwYQJE7L+PXbsWBYtWsSrr77Krl27mDx5Mhs3bmTMmDFWnILLhYaGMnv2bL766iuCg4PZtGkTrVu35uWXX8bhcFgdT0RERERERETOclq0SOGU2cLa+++/T2xsLN27d6dq1apZy7fffpvV5sCBAxw9ejTr3506dWLmzJl89NFHtGjRgtmzZzN37tw8JzwobwzD4KabbiIqKoqrrrqKtLQ0Hn30Ubp27cpff/1ldTwRERERERERkTLDME1Td9AWQlxcHIGBgcTGxpbZ20LPMU2T6dOnM27cOOLi4vD29mbKlCncf//92GxltuYqIiIiIiIi5UB5+vxdGOfOe/OfYfj5u/azeUK8k9ZNjlW4a34xVD2pwAzD4NZbb2X79u306tWL5ORkxo0bR48ePdi3b5/V8URERKSUME0nCWl/EZu6nXRHnNVxREREREoNFdaEWrVq8euvv/Lee+/h6+vL8uXLadasGR988AHq0CgiIlJxmabJofhZrDx4JWsOD2L9ketZfqALO048QZrjtNXxRERERCynwpoAmb3X7rnnHrZt28bll19OYmIi99xzD3379uXgwYNWxxMREREL/HPmPXaenEiK40jWOpN0jibMY8ORm0h3xFqYTkREpHxzmtYsUjgqrEk29erVY9myZbzxxht4eXnx66+/EhERwfTp09V7TUREpAJJTj/EP2fezXGbiYOkjAPsj53m4lQiIiIipYsKa3IBm83G2LFjiYyMpEOHDsTFxXHrrbcycODAbLOsioiISPl1OOF7wMijhZND8d/oizcREZES4sCwZJHCUWFNctWwYUNWrlzJiy++iIeHB/Pnz6dp06bMnDlTb6JFRETKueT0Q/m2SXfG4jCTXJBGREREpHRSYU3yZLfbefTRR9m0aROtW7fm9OnTDB8+nOuuu47jx49bHU9EREQKwjRh3Tq4/34YOhRuuAGeew7y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EREpm959913q1KmDl5cX7du3Z/369Xm2nzVrFo0aNcLLy4tmzZqxYMECFyUtGSqsSalUp04dFi9ezFtvvYW3tzdLly6lWbNmfPLJJ5imaXU8ERERERERkRLlwLBkKYxvv/2Whx56iEmTJrF582ZatGhBnz59OH78eI7tV69ezY033sjo0aPZsmULgwcPZvDgwURFRRXHJbOEYapKUShxcXEEBgYSGxtLQECA1XEqhD179jBq1ChWr14NQL9+/fj444+pXr26xclERERERESkpFTUz9/nzvvHbfXx9c99NumSkBjvYGDzvwt8zdu3b0/btm155513AHA6ndSsWZP777+fxx577IL2w4YNIzExkfnz52et69ChAy1btuSDDz4ovhNxIfVYk1LvkksuYcWKFbzyyit4enqycOFCIiIi+OKLL9R7TURERERERMolh2mzZCmotLQ0Nm3aRK9evbLW2Ww2evXqxZo1a3J8zJo1a7K1B+jTp0+u7csCFdakTLDb7fzvf/9j8+bNtG3bljNnzjBixAiuueYajh07ZnU8ERERERERkXIjLi4u25KamnpBm5MnT+JwOAgLC8u2PiwsjOjo6Bz3Gx0dXaj2ZYEKa1KmNGnShNWrV/Pcc8/h7u7OvHnzaNq0KbNmzbI6moiIiIiIiEi5ULNmTQIDA7OWKVOmWB2p1FJhTcocNzc3nnjiCTZs2ECLFi04deoU119/PTfccAMnT560Op6IiIiIiIjIRXNiWLIAHDx4kNjY2KxlwoQJF+SrXLkydrv9grvIjh07Rnh4eI7nFB4eXqj2ZYEKa1JmtWjRgvXr1/PUU09ht9v59ttviYiIYN68eVZHExERERERESmzAgICsi2enp4XtPHw8KBNmzYsWbIka53T6WTJkiV07Ngxx/127NgxW3uA3377Ldf2ZYEKa1KmeXh48Mwzz7B27VqaNGnCsWPHGDx4MCNHjuTMmTNWxxMREREREREpEic2HC5enIUsEz300EN8/PHHzJgxg507d3LPPfeQmJjIrbfeCsCIESOy9XYbO3YsixYt4tVXX2XXrl1MnjyZjRs3MmbMmGK9dq6kwpqUC5dddhmbNm1i/Pjx2Gw2Pv/8cyIiIli0aJHV0URERERERETKpWHDhjF16lQmTpxIy5YtiYyMZNGiRVkTFBw4cICjR49mte/UqRMzZ87ko48+okWLFsyePZu5c+cSERFh1SlcNMM0TdPqEGVJXFwcgYGBxMbGEhAQYHUcycGaNWsYOXIke/bsAeCOO+7g1Vdfxd/f3+JkIiIiIiIiUlAV9fP3ufOetbURPv52lx47Kd7BdS12VbhrfjHUY03KnY4dOxIZGckDDzwAwMcff0yzZs1YtmyZxclERERERERECsZh2ixZpHB0xaRc8vHx4c0332TZsmXUqVOH/fv306NHD+6//34SExOtjiciIiIiIiIi5YAKa1Kude/enW3btnHXXXcB8M4779CyZUtWrVplcTIRERERERGR3DnPTibg6kUKR1dMyj1/f38++OADfvnlF2rUqMHevXvp2rUrjzzyCCkpKVbHExEREREREZEySoU1qTB69+7N9u3bGTVqFKZpMnXqVFq3bs2GDRusjiYiIiIiIiKSjcM0LFmkcFRYkwolKCiIadOm8eOPPxIeHs7OnTvp2LEjTz75JGlpaVbHExEREREREZEyRIU1qZAGDBhAVFQUN954Iw6Hg+eff562bduydetWq6OJiIiIiIiISBmhwppUWJUqVWLmzJnMmjWLypUrs23bNi677DKeffZZ0tPTrY4nIiIiIiIiFZgDmyWLFI6umFR41157LTt27OCaa64hIyODiRMn0rFjR3bs2GF1NBEREREREREpxVRYEwFCQ0P5/vvv+fLLLwkKCmLTpk20bt2aV155BYfDYXU8ERERERERqWCcps2SRQpHV0zkLMMwGD58ODt27KB///6kpaUxfvx4Lr/8cvbs2WN1PBEREREREREpZVRYE/mPatWqMX/+fD799FP8/f1ZvXo1LVq04K233sLpdFodT0RERERERERKCRXWRHJgGAa33XYbUVFR9OrVi+TkZMaOHUuPHj3Yt2+f1fFERERERESknNPkBWWDrphIHmrVqsWvv/7Ke++9h4+PD8uXL6dZs2Z8+OGHmKZpdTwRERERERERsZAKayL5MAyDe+65h23bttG1a1cSExO5++676du3LwcPHrQ6noiIiIiIiJRDTsBhGi5dNPhR4amwJlJA9evX5/fff+e1117Dy8uLX3/9lYiICKZPn67eayIiIiIiIiIVkAprIoVgs9l48MEH2bJlC+3btycuLo5bb72VgQMHcvToUavjiYiIiIiISDnhxGbJIoWjKyZSBI0aNWLlypVMmTIFDw8P5s+fT0REBF9//bV6r4mIiIiIiIhUECqsiRSRm5sbjz32GJs2baJVq1bExMRw0003cf3113PixAmr44mIiIiIiIhICVNhTeQiRUREsG7dOiZPnoybmxuzZ8+madOmzJkzx+poIiIiIiIiUkY5TJslixSOrphIMXB3d2fSpEmsW7eOiIgITpw4wZAhQ7j55ps5ffq01fFEREREREREpASosCZSjFq3bs3GjRuZMGECNpuNr776iqZNm7JgwQKro4mIiIiIiEgZ4sSwZJHCUWFNpJh5enrywgsvsHr1aho2bMjRo0e56qqrGD16NLGxsVbHExEREREREZFiosKaSAlp3749W7Zs4cEHH8QwDD777DOaNWvG4sWLrY4mIiIiIiIiIsVAhTWREuTt7c1rr73G8uXLqVevHgcPHuTKK6/k3nvvJSEhwep4IiIiIiIiUkpp8oKyQVdMxAW6du3K1q1buffeewF4//33adGiBStWrLA4mYiIiIiIiIgUlQprIi7i5+fHu+++y+LFi6lVqxb//PMP3bt356GHHiI5OdnqeCIiIiIiIlKKOLBZskjh6IqJuFjPnj3Zvn07t99+O6Zp8vrrr9OqVSvWrVtndTQRERERERERKQQV1kQsEBAQwMcff8zPP/9MtWrV2L17N506dWLChAmkpqZaHU9EREREREQs5jQNSxYpHBXWRCzUv39/oqKiuPnmm3E6nbz44otcdtllbN682epoIiIiIiIiIpIPFdZELBYcHMwXX3zBDz/8QGhoKFFRUbRv357JkyeTnp5udTwRERERERERyYUKayKlxDXXXENUVBTXXnstGRkZPP3007Rv357t27dbHU1ERERERERczGnBxAVOlYkKTVdMpBSpUqUK3333HV9//TUhISFs2bKFyy67jClTppCRkWF1PBERERERERE5jwprIqWMYRjccMMN7NixgwEDBpCWlsbjjz9Oly5d2L17t9XxRERERERExAWcps2SRQpHV0yklAoPD2fevHlMnz6dwMBA1q1bR8uWLXn99ddxOp1WxxORYmCaJk4zDdM0rY4iIiIiIiJFoMKaSClmGAYjR44kKiqK3r17k5KSwkMPPUT37t35+++/rY4nIkWUknGEPaeeYdWBVvyxP4LVB9vxT8wrpDlirI4mIiIiIiKFoMKaSBlQo0YNFi1axIcffoifnx9//PEH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N9xwAy6Xi8cff5w2bdqwfv16q6OJiIhIZaYRayUiJCSE5cuX87///Y8DBw7g6+vLwoULOXbsGBMnTmTx4sVntZiVCmsiIiJS6UVERDBr1iw++eQTIiIiWL9+PRdccAFPPPEETqfT6ngiIiIichb8/PwYP34869atIz09nczMTDZt2sSECRPw8/M7q75VWBMRERH523XXXcfmzZvp1asXubm5jB8/nvbt27N161aro4mIiEglY5jWbHJmHFYHEBERESlLoqOj+eKLL/jwww+58847+f3332nZsiWPP/449957L3a73eqIIiIiIlJEQ4YMOW0bwzCYNm1asfpXYU1ERETkPwzD4Oabb6ZTp04MGzaMuXPncv/99/PVV1/x7rvv0qBBA6sjioiIiEgR/PzzzydWAT3O5XIRFxeHy+UiKiqKgICAYvevW0FFREREClC9enXmzJnD22+/TVBQEEuWLKF58+ZMmTIFt9ttdTwREREROY09e/awe/fuk7a9e/eSkZHB5MmTCQoKYsGCBcXuX4U1ERERkUIYhsGwYcPYuHEjl112GZmZmdx111106dKFPXv2WB1PRERERIrBy8uLO+64g65du3LHHXcUux8V1kRERESKoHbt2sybN49XX30Vf39/fvnlF5o2bcpbb72FaWqmXxERESlhpkVbJdO8eXMWLVpU7ONVWBMREREpIpvNxu2338769evp0KEDaWlpjBw5kiuuuIL9+/dbHU9EREREztC8efPw9/cv9vFavEBEpAxyu7PIdSfhsAVjtwVaHUdE/qN+/fr8+uuvvPLKKzz44IP8+OOPxMbGMnnyZG655ZZTJsgVEREREWs8+uij+e4/duwYixYtYs2aNYwdO7bY/Rum7l04IykpKYSEhJCcnExwcLDVcUSkgslxxnEg+WWOpH+FSTZgEOLXmeoh9xDgHWt1PBHJx7Zt2xg4cCArV64E4Oqrr+bNN98kJibG4mQiIiLlW2X9/H38uuuPfRK7r69Hz+3KymLH0w9WqOfcZsv/Zs2wsDDq1avHsGHDGD58eLG/GNWtoCIiZUS28wCb468iMf2zv4tqACbJmb+wNb4PKVnLLc1X2ZmmSUbWUuKOjGRP/CXsTbiCpNTXcLmSrI4mFmvUqBFLlizhiSeewMvLi2+++YYmTZowe/Zsq6OJiIiIVHputzvf7ciRI6xcuZIR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xxd43E033cQHH3zAL7/8wrhx45g5cyY333xzoed66qmnCAkJObHVrFmzRK5BROTfUrLXk5y9BvNEQe2/DP469iZab0ZERMqDqKgoPv30Uz7++GPCw8NZu3YtrVu35qmnnsLpdFodT0REpMSUqcLa2LFjT1lc4L/btm3bit3/iBEj6NatG02bNqV///68//77fPnll+zcubPAY8aNG0dycvKJbd++fcU+v4hIQY5k/oqBvZAWJhnOXWS74jyWSURE5GwYhkG/fv3YtGkTV111FTk5OTz44IN06NDhrN7Ti4iIlCUOqwP825gxYxg0aFChberWrUtMTAyHDh06ab/T6SQpKYmYmJgin+/4MuA7duygXr16+bbx8fHBx8enyH2KiBSH28ylKFOFus2c0g8jZY5puknO+p0s10G8bOGE+bXDZnhbHUtEpEiqVq3K119/zfvvv89dd93FihUraNmyJU8++SR33303NluZ+q5fRKTMOL6ggKfPKWemTBXWoqKiiIqKOm27du3acezYMVavXk2rVq0A+Pnnn3G73SeKZUWxbt06IO+XvYiIlYJ8mmBS+K0xDiMIX0c1DyWquNxmDofSfyIlex2GYSfctz3hfhdjGGXzg92RjF/588jEk0YrOmyh1A27j6pB11uYTESk6AzDYODAgVx22WUMGzaMn376idGjR/Pll1/y7rvvFvglt4iISFlXNj9FnEbjxo3p3r07w4cPZ+XKlSxZsoQ77riDfv36Ua1a3ofOAwcO0KhRI1auXAnAzp07eeyxx1i9ejV79uzhm2++YcCAAVxyySU0a9bMyssRESHKvwtetnAKflm2US2on0YpnaXkrHUs2XcpWxLHcCD1Y/anfMD6QyNYcaAHmbll71b/pMzf2HToVrJdJ88f6nQf448j4zmYOsuiZCIixVOzZk3mzp3L1KlTCQgIYPHixTRr1ozXX38dt9ttdTwRkbLFtGiTM1IuC2uQt7pno0aN6Ny5Mz169KBDhw689dZbJx7Pzc1l+/btJ1b99Pb2Zv78+XTt2pVGjRoxZswY+vbty7fffmvVJYiInGAzvImtMhmb4fWfudYMwCDYpxnnhN5uVbwKITN3P+sSBpPrPgaAifPEKMFM517Wxg/A5S58pWhPMk2TnUlPUtg7nF1Jz+JyZ3k0l4jI2TIMg5EjR7Jx40Y6duxIRkYGt99+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p6VLl6p169ZasWKF1dEAeDJTv/w90ZWNCWuVRmENgMcyDB8lRL+h0IDmvzyWr34Z9nxkyE+t6sxU7eDOlmYEUHGmWVCBfQpdkASAN/L399eTTz6p5ORktW7dWj/99JP++Mc/6k9/+pPOnDljdTwAgEUorAHwaIF+UepU7yMlRL+hemF3KSb0djW7Yqyua7Re9cPutDoegEoIC2wrlTkDVZJ8FRbYxlVxAHipa665Rtu2bdPkyZPl4+Oj999/X7Gxsfrss8+sjgYAsACFNQAezzB8VCekm1rVma7Y3z2rJhH3K9C3jtWxAFRSvbC7dfn7q11UrHrhf3JVHABeLDAwUE8//bQ2b96sFi1a6NixY7rttts0YsQIZWez2jiA6mGYpiUNlUNhDQAAuIWQgKvUPHLa/x79eubaLz/O1A8bqtrBiS7PBcB7derUSdu3b9e4ceNkGIbefvttxcXFae3atVZHAwC4CIU1AADgNuqF36O2dd9XZHA3GQqQIT+FByaoVdSruipyigzDsDoiAC8TEhKiF198URs2bFCTJk2UkZGhHj16aMyYMcrNzbU6HgB3ZkoyTRc3q9+0+6GwBgAA3EpEUAfFRb+hblemq9uV3yoh5p+KCr2FohoAS3Xr1k07d+7U6NGjJUlz5sxR27ZttXHjRouTAQCcicIaAAAAAFSDWrVqac6cOVq9erUaNmyoAwcOqHv37ho/frwuXLhgdTwAgBNQWAMAAACAatSjRw/t2rVLw4cPl2maevHFF5WQkKDk5GSrowFwJy6/DPR/DZVCYQ0AAAAAqpnNZtPbb7+tf//734qJidHevXvVpUsXTZkyRfn5+VbHAwBUEwprAAAAAOAkt99+u9LT0zVo0CDZ7XY9/fTTat++vbZv3251NAA1nd2ihkqhsAYAAAAAThQZGan3339fH330kaKiorRr1y516NBB06dPV2FhodXxAABVQGENAAAAAFzgzjvv1O7du3XXXXepqKhITz75pDp16qT09HSrowEAHERhDQAAAABcJCoqSkuXLtUHH3ygK664Qqmpqbr22mv197//XUVFRVbHA1CDGKZpSUPlUFgDAAAAABcyDEMDBw7U7t27dccdd6igoECPPvqounbtqr1791odDwBQCRTWAAAAAMACMTExWrVqlebPn6/w8HAlJycrPj5eL730kux27iAOeD3TtKah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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -720,6 +739,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "bfcbebd9", "metadata": {}, @@ -766,7 +786,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "dval_env", "language": "python", "name": "python3" }, @@ -780,11 +800,11 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.9.16" }, "vscode": { "interpreter": { - "hash": "4e000971326892723e7f31ded70802f690c31c3620f59a0f99e594aaee3047ef" + "hash": "b3369ace3ad477f5e763d9fa7767e0177027059e92a8b1ded9e92b707c0b1513" } } }, diff --git a/notebooks/influence_wine.ipynb b/notebooks/influence_wine.ipynb index 1ffbe67fe..3f061cefa 100644 --- a/notebooks/influence_wine.ipynb +++ b/notebooks/influence_wine.ipynb @@ -1,18 +1,20 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "id": "a75acfec", "metadata": {}, "source": [ - "# Influence functions and neural networks\n", + "# Influence functions for outlier detection\n", "\n", "This notebook shows how to calculate influences on a NN model using pyDVL for an arbitrary dataset, and how this can be used to find anomalous or corrupted data points.\n", "\n", - "It uses the wine dataset from sklearn: given a set of 13 different input parameters regarding a particular bottle, each related to some physical property (e.g. concentration of magnesium, malic acidity, alcoholic percentage, etc), the model will need to predict to which of 3 classes the wine belongs to. For more details, please refer to the [sklearn documentation](https://scikit-learn.org/stable/datasets/toy_dataset.html#wine-recognition-dataset)." + "It uses the wine dataset from sklearn: given a set of 13 different input parameters regarding a particular bottle, each related to some physical property (e.g. concentration of magnesium, malic acidity, alcoholic percentage, etc.), the model will need to predict to which of 3 classes the wine belongs to. For more details, please refer to the [sklearn documentation](https://scikit-learn.org/stable/datasets/toy_dataset.html#wine-recognition-dataset)." ] }, { + "attachments": {}, "cell_type": "markdown", "id": "68ec440b", "metadata": {}, @@ -21,6 +23,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "9eb29a26", "metadata": {}, @@ -40,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "be813151", "metadata": {}, "outputs": [], @@ -55,12 +58,13 @@ "import numpy as np\n", "import torch\n", "import torch.nn.functional as F\n", - "from notebook_support import plot_train_val_loss\n", - "from pydvl.influence.model_wrappers import TorchMLP\n", - "from pydvl.influence.general import compute_influences\n", - "from pydvl.utils.dataset import load_wine_dataset\n", + "from support.common import plot_losses\n", + "from support.torch import TorchMLP, fit_torch_model\n", + "from pydvl.influence import compute_influences, TorchTwiceDifferentiable\n", + "from support.shapley import load_wine_dataset\n", "from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay, f1_score\n", - "from torch.optim import Adam, lr_scheduler" + "from torch.optim import Adam, lr_scheduler\n", + "from torch.utils.data import DataLoader, TensorDataset" ] }, { @@ -77,6 +81,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "7487d30c", "metadata": {}, @@ -107,6 +112,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "be7ddf7c", "metadata": {}, @@ -121,15 +127,16 @@ "metadata": {}, "outputs": [], "source": [ - "train_data, val_data, test_data, feature_names = load_wine_dataset(\n", + "training_data, val_data, test_data, feature_names = load_wine_dataset(\n", " train_size=0.3, test_size=0.6\n", ")\n", "# In CI we only use a subset of the training set\n", "if is_CI:\n", - " train_data = (train_data[0][:10], train_data[1][:10])" + " train_data = (training_data[0][:10], training_data[1][:10])" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "b96a15cc", "metadata": {}, @@ -145,12 +152,36 @@ "outputs": [], "source": [ "num_corrupted_idxs = 10\n", - "train_data[1][:num_corrupted_idxs] = torch.tensor(\n", - " [(val + 1) % 3 for val in train_data[1][:num_corrupted_idxs]]\n", + "training_data[1][:num_corrupted_idxs] = torch.tensor(\n", + " [(val + 1) % 3 for val in training_data[1][:num_corrupted_idxs]]\n", ")" ] }, { + "attachments": {}, + "cell_type": "markdown", + "id": "5de58672", + "metadata": {}, + "source": [ + "and let's wrap it in a pytorch data loader" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "816f688d", + "metadata": {}, + "outputs": [], + "source": [ + "training_data_loader = DataLoader(\n", + " TensorDataset(*training_data), batch_size=32, shuffle=False\n", + ")\n", + "val_data_loader = DataLoader(TensorDataset(*val_data), batch_size=32, shuffle=False)\n", + "test_data_loader = DataLoader(TensorDataset(*test_data), batch_size=32, shuffle=False)" + ] + }, + { + "attachments": {}, "cell_type": "markdown", "id": "a018e72c", "metadata": {}, @@ -162,56 +193,47 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "00dc59af", "metadata": {}, "outputs": [ { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "9001287c81bb4cc08a9e27c420f2e260", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Model fitting: 0%| | 0/300 [00:00" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ - "plot_train_val_loss(train_loss, val_loss)" + "plot_losses(losses)" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "b3345522", "metadata": {}, @@ -252,24 +273,23 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "08f1cba4", "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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4QtfyOzZs3Pvvfe2NR4DBgzIyJEjX9c4ploBAEA3tHLlynZbS0vLa76ntbU11113XVavXp2JEye27b/mmmsybNiw7L///rnggguyZs2aTtcj8QAAgIK01uDJ5a1/XFw+duzYdvtnzJiRiy66aIvv+c1vfpOJEydm7dq1GTRoUG644Ybsu+++SZJTTjklu+66a0aPHp1f//rX+eQnP5kFCxbkP/7jPzpVl8YDAAC6oUWLFqWpqantdUNDw1bP3XvvvfPQQw9lxYoVuf766zN16tTMmzcv++67b84888y28w444ICMGjUqRx11VJ544om84Q1v6HA9Gg8AAChIudIr5So/QLD8xwcIvnKXqo7o169f9txzzyTJ+PHj88tf/jKXX355rrzyys3OnTBhQpLk8ccf71TjYY0HAADQTrlc3uqakIceeihJMmrUqE59psQDAAB6sAsuuCBTpkzJLrvskpdeeinXXntt5s6dm9tuuy1PPPFErr322hxzzDEZOnRofv3rX+e8887L4YcfnnHjxnVqHI0HAAAUpJaLyztq2bJlOfXUU7N48eI0Nzdn3Lhxue222/Kud70rixYtyh133JHLLrssq1evztixY3PCCSfk05/+dKfr0ngAAEAPdtVVV2312NixYzNv3rztMo7GAwAAClJO558kvj3GrEcWlwMAAIWTeAAAQEHK6ZVylX/WX+3xOqo+qwIAALoVjQcAAFA4U60AAKAgrZVeaa3yk8urPV5H1WdVAABAtyLxAACAgpRTSjnVvp1udcfrKIkHAABQOI0HAABQOFOtAACgIBaXb6LxoBDXXj4i3/nyqOy698v55l0L2h175JcDctXnR+fx3wzIgMGtOfzY5Tn9gsXpP7Bco2qhfvTtV86pf78kR53wYgY1t2bho/3znUtG5oH5g2tdGtQl1wx0HfXZDtGlPftM31z31eFpHNC62bEnHu6ffzhpz7S83CtnXvR03n3K8/nxNUPz+TN3q36hUIc+ftmiHH/ms/npDTtm9oU7p1xOPve9J7PfIatqXRrUJdcM9a41vWqy1SOJB9vdty4enTeNX5NyaykrXujd7ticL43KoObWXPLDxzNw8MaEY8SYdbns73fJ/XMHZ/wRL9WiZKgLex+0JkcetzzfunhUrr9ieJLkjut3zDd/uiB/8+nFOe8v96pxhVBfXDPQtdRnO0SX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xAMAACicxAMAAApSTimlVPnJ5VUer6MkHgAAQOEkHgAAUBAPENxE4gEAABRO4wEAABTOVCsAAChIuVJKqcpTn6r9pPSOkngAAACFk3gAAEBBKpUaPECwTp8gKPEAAAAKp/EAAAAKZ6oVAAAUxHM8NpF4AAAAhZN4AABAQSQem0g8AACAwmk8AACAwplqBQAABfHk8k0kHgAAQOEkHgAAUBBPLt9E4gEAAD3YzJkzc/DBB2fw4MEZPnx4jjvuuCxYsKDdOUcccURKpVK77aMf/WinxtF4AABAQTYmHqUqb52rcd68eZk2bVruvffe3H777Vm/fn2OPvrorF69ut15Z5xxRhYvXty2XXLJJZ0ax1QrAADowW699dZ2r6+++uoMHz48999/fw4//PC2/QMGDMjIkSO3eRyJBwAAdEMrV65st7W0tHTofStWrEiSDBkypN3+a665JsOGDcv++++fCy64IGvWrOlUPRIPAAAoSC2fXD527Nh2+2fMmJGLLrroz763XC7n3HPPzaGHHpr999+/bf8pp5ySXXfdNaNHj86vf/3rfPKTn8yCBQvyH//xHx2uS+MBAADd0KJFi9LU1NT2uqGh4TXfM23atDz88MO5++672+0/88wz2359wAEHZNSoUTnqqKPyxBNP5A1veEOH6tF4AABAQSp/3Ko9ZpI0NTW1azxey9lnn51bbrkl8+fPz5gxY/7suRMmTEiSPP744xoPAADgtVUqlZxzzjm54YYbMnfu3Oy+++6v+Z6HHnooSTJq1KgOj6PxAACAHmzatGm59tprc9NNN2Xw4MFZsmRJkqS5uTn9+/fPE088kWuvvTbHHHNMhg4dml//+tc577zzcvjhh2fcuHEdHkfjAQAABanl4vKOmj17dpKNDwn8U3PmzMlpp52Wfv365Y477shll12W1atXZ+zYsTnhhBPy6U9/ulPjaDwAAKAHq7zGEwfHjh2befPmve5xNB4AAFCUWq4urzMeIAgAABRO4gEAAEWpwRqPVHu8DpJ4AAAAhdN4AAAAhTPVCgAAClKpbNyqPWY9kngAAACFk3gAAEBBusIDBKtF4gEAABRO4wEAABTOVCsAAChKpVT952qYagUAAPRUEg8AACiI2+luIvEAAAAKJ/EAAICiVP64VXvMOiTxAAAACqfxAAAACmeqFQAAFMSTyzeReAAAAIWTeAAAQJHqdLF3tUk8AACAwmk8AACAwplqBQAABbG4fBOJBwAAUDiJBwAAFMWTy9tIPAAAgMJJPAAAoDClP27VHrP+SDwAAIDCaTwAAIDCmWoFAABFsbi8jcQDAAAonMQDAACKIvFo06HGY/78+dv04Ycffvg2vQ8AAOheOtR4HHHEESmVOn5brkqlklKplNbW1m0uDAAA6D461HjcddddRdcBAADdT6W0cav2mHWoQ43HO97xjqLrAAAAurHXvbh88eLFWbZsWfbcc88MHDhwe9QEAADdQqWycav2mPVom2+ne9NNN2WfffbJmDFj8uY3vzn33XdfkuS5557LX/zFX+TGG2/cXjUCAABd3DY1HjfffHOOP/74DBs2LDNmzEjlT9qqYcOGZeedd86cOXO2W5EAANAlVWq01aFtajwuvvjiHH744bn77rszbdq0zY5PnDgxDz744OsuDgAA6B62qfF4+OGH84EPfGCrx0eMGJFly5Ztc1EAAED3sk2LywcMGJDVq1dv9fiTTz6ZoUOHbnNRAADQLbidbpttSjyOPPLIfOc738mGDRs2O7ZkyZJ861vfytFHH/26iwMAALqHbUo8vvCFL+Stb31rDj744Jx44okplUq57bbb8tOf/jRXXnllKpVKZsyYsb1rBQCALqVU2bhVe8x6tE2Jx95775277747Q4cOzWc+85lUKpV85StfyRe/+MUccMAB+dnPfpbddtttO5cKAAB0Vdv8AMH99tsvd9xxR1588cU8/vjjKZfL2WOPPbLTTjttz/oAAIBu4HU/uXzHHXfMwQcfvD1qAQCA7qUWz9XoTlOtkuTZZ5/N+eefn3333TcDBgzIgAEDsu++++b888/P0qVLt2eNAABAF7dNjccjjzySAw44IJdeemmam5tz4okn5sQTT0xzc3MuvfTSjBs3Lg8//PD2rhUAALqWV26nW+2tDm3TVKtp06altbU1991332bTrH7xi1/kmGOOyTnnnJO77rpruxQJAAB0bduUePziF7/Ixz72sS2u7TjkkEPysY99LPfdd9/rLg4AALq0So22OrRNjcfw4cPT2Ni41eONjY0ZPnz4NhcFAAB0L9vUeJx77rmZPXt2lixZstmxZ555JrNnz8655577emsDAAC6iQ6t8bj00ks32zdo0KDsueee+au/+qvsueeeSZLHHnssN954Y/bcc89UKnWa8QAAQLW4nW6bDjUe559//laPXXPNNZvt+/Wvf53zzz8/55133rZXBgAAdBsdajwWLlxYdB0AAND9SDzadKjx2HXXXYuuAwAA6Ma2+cnlAAAAHbVNDxBMNq7j+NrXvpYHHnggK1asSLlcbne8VCrliSeeeN0FAgBAl1WLJ4nX6ZPLtynxmDt3bg455JDccsstGT16dJ588snsscceGT16dH7/+99n0KBBOfzww7d3rQAAQBe1TY3HhRdemD322CMLFizInDlzkiSf+tSncvfdd+fnP/95nnrqqXzgAx/YroUCAEBXU6rUZqtH29R4PPDAA/nIRz6Spqam9O7dO0nS2tqaJJkwYULOOuusfOYzn9l+VQIAAF3aNq3x6NOnTwYPHpwk2WGHHdK3b98sW7as7fgee+yR//mf/9k+FdKl9e1Xzql/vyRHnfBiBjW3ZuGj/fOdS0bmgfmDa10a1JVrLx+R73x5VHbd++V8864F7Y498ssBuerzo/P4bwZkwODWHH7s8px+weL0H1jeyqdBz9E4oDXvP3Nx9j5wVfY+cFUG79Caf/r7PXLHD3eqdWnAq2xT4rHnnnvmscceS7JxEfk+++yTG264oe34j370o4wcOXL7VEiX9vHLFuX4M5/NT2/YMbMv3DnlcvK57z2Z/Q5ZVevSoG48+0zfXPfV4Wkc0LrZsSce7p9/OGnPtLzcK2de9HTefcrz+fE1Q/P5M3erfqFQh5p23JAP/d3TGbvny3ny0QG1Lgc2V6nRVoe2KfE45phj8u1vfzszZ85Mnz59Mn369Jx++unZa6+9kiRPPPFEZs6cuV0LpevZ+6A1OfK45fnWxaNy/RXDkyR3XL9jvvnTBfmbTy/OeX+5V40rhPrwrYtH503j16TcWsqKF3q3OzbnS6MyqLk1l/zw8QwcvDHhGDFmXS77+11y/9zBGX/ES7UoGerGi8/2zSmH/EVefK5f9jpgVb560yO1LgnYim1KPD7zmc/kv//7v9vWd0ydOjXf/e53s//+++fAAw/Mt7/97Xzyk5/croXS9Rz23uVp3ZD8+PtD2/atb+mVW/91SPZ9y5rsNHpdDauD+vCbewfmZz/aIR/97NObHVv9Uq88MH9wjjr+hbamI0kmnfhi+g9szfybd6hipVCf1q/rlRef61frMoAO2KbGo2/fvhk6dGhKpU33CP7whz+cG264Iddff31OO+20bSpm/vz5OfbYYzN69OiUSqXceOON2/Q51Ic99385Tz3ZkDWr2v8Ed8FDG6PwPfZ7uRZlQd1obU1mfXpM3n3K89n9TWs3O/67R/undUMpex3Y/lrp26+SPfZ7OY8/3L9apQLQjc2cOTMHH3xwBg8enOHDh+e4447LggXt1xuuXbs206ZNy9ChQzNo0KCccMIJWbp0aafGqasnl69evToHHnhgZs2aVetS2A6GDN+QF5b23Wz/K/uGjthQ7ZKgrvzou8Oy7Kl+mfqJxVs8/sKyjbNhh4xYv9mxISPWb/H6AqC+lFKD2+l2ssZ58+Zl2rRpuffee3P77bdn/fr1Ofroo7N69eq2c84777zcfPPN+cEPfpB58+blmWeeyfHHH9+pcTq0xuOd73xn56rPxkXnd955Z6feM2XKlEyZMqXTY1Gf+jWWs37d5n/117Vs3NfQ6I489FwrX+id7/7jyJxy7pLsMHTzReVJ0rJ248+G+vbbfJVgv4ZK23EAeD1uvfXWdq+vvvrqDB8+PPfff38OP/zwrFixIldddVWuvfbatr5gzpw5edOb3pR77703b33rWzs0Tocaj3K53G5aVUdUKsUvp29paUlLS0vb65UrVxY+Jh23bm2vrX5hSuJLEz3a1ZeMyuAdWvO+v35uq+e80pxvrYHXvAPw57z6u3FDQ0MaGhpe830rVqxIkgwZMiRJcv/992f9+vWZNGlS2zn77LNPdtlll9xzzz3bt/GYO3duhz6s2mbOnJnPfvaztS6DrXhhWZ8MHbnlKSJJ8vzSbbqpGnR5Tz/ZLz/5/tB89LNP5/k/mS61rqWU1vWlLFnULwMGtWbI8I3TEbc2ZXFLU7AAqDOV0sat2mMmGTt2bLvdM2bMyEUXXfRn31oul3Puuefm0EMPzf77758kWbJkSfr165cddtih3bkjRozIkiVLOlxWl/7md8EFF2T69Oltr1euXLnZHzC188Qj/XPg21ZlwKDWdgvM9/mLNUmSJx+xMJae6bkl/VIul/KNz4zJNz6z+fGpE/bNcX/zbE49f3F696nksf/un3f85fK24+vXlfLkI/1z+LHLN38zAPzRokWL0tTU1Pa6I2nHtGnT8vDDD+fuu+/e7vV06cajo3ERtfGzW5pz4t8+m2M+/Hzbczz69ivn6JNeyKP3D8izz7j9IT3Tbnu/nBlXLdxs/9WXjMzLq3rnby9+OqN2a8nApnL+4u0v5c7/GJJTzluaAYM2Tq268/od8/Lq3nm7xgOg/tXigX5/HK+pqald4/Fazj777Nxyyy2ZP39+xowZ07Z/5MiRWbduXZYvX94u9Vi6dGmnHhrepRsP6tuCBwdm/n825/QLFqd52IY8s7Ah7/rACxkxdl0u/bhkip6reWhr3jZlxWb7b/iXnZKk3bHTPrk4571vr/z98Xtmyoefz3OL++aHVw7P+HeszMFHenggJMmx/2dJBja1ZuiIjc+HmnDUixk2cuOv//O7I7LmJV934M+pVCo555xzcsMNN2Tu3LnZfffd2x0fP358+vbtmzvvvDMnnHBCkmTBggX5wx/+kIkTJ3Z4nLq6EletWpXHH3+87fXChQvz0EMPZciQIdlll11qWBnb6pKP7ZKpTy/JUSe8mMHNrVn4aGMuPHX3PHzfoFqXBl3CXuNezpeueyJXfWFUrrxo5/Qf2JrJJz+fv/7Ulm/BCz3RCWcszogxmx5Ke9i7X8xh734xSfLTG4dpPOA1TJs2Lddee21uuummDB48uG3dRnNzc/r375/m5uZ85CMfyfTp0zNkyJA0NTXlnHPOycSJEzu8sDxJSpVq3H6qg+bOnZsjjzxys/1Tp07N1Vdf/ZrvX7lyZZqbm3NE3pc+Jfe3h4647ZmHal0CdDlT9uj4P7TQ022orMtP1/57VqxY0alpP13dK99Ld/3iF9KrsbGqY5fXrs3vP/X/dfjPfGt3r50zZ07bg8HXrl2bj3/84/nXf/3XtLS0ZPLkyfnGN77RdadaHXHEEVW5DS8AALBRR75/NzY2ZtasWa/rQd+vq/F4+umnM3/+/CxbtiwnnHBCxowZk9bW1qxYsSLNzc3p3bv3a38IAAB0U688TbzaY9ajbXqCW6VSyfTp07P77rvnQx/6UKZPn57f/va3STau09htt93yta99bbsWCgAAdF3b1Hh85StfyeWXX57zzz8/t99+e7t4prm5Occff3x++MMfbrciAQCgS6rUaKtD29R4fOtb38qpp56aL37xiznooIM2Oz5u3Li2BAQAAGCbGo9FixblbW9721aPDxw4MCtXrtzmogAAgO5lmxaXDx8+PIsWLdrq8fvvv99zNwAAoIZPLq8325R4HH/88bniiivy5JNPtu175f6///Vf/5Wrr746J5544vapEAAA6PK2qfH47Gc/m1GjRuWggw7KqaeemlKplC9/+cs57LDDMmXKlIwbNy6f+tSntnetAADQpbxyO91qb/VomxqP5ubm3HvvvfnEJz6Rp59+Oo2NjZk3b16WL1+eGTNm5Gc/+1kGDBiwvWsFAAC6qG1+gGD//v3z6U9/Op/+9Ke3Zz0AAEA39LqeXA4AAPwZldLGrdpj1qFtajz++q//+jXPKZVKueqqq7bl4wEAgG5mmxqPn/70p213sXpFa2trFi9enNbW1uy0004ZOHDgdikQAAC6LLfTbbNNjcfvfve7Le5fv359rrzyylx22WW5/fbbX09dAABAN7JNd7Xamr59++bss8/O0UcfnbPPPnt7fjQAAHQ5bqe7yXZtPF5x4IEHZv78+UV8NAAA0AUV0njcfvvtnuMBAAC02aY1HhdffPEW9y9fvjzz58/PAw88kH/4h394XYUBAECXZ3F5m21qPC666KIt7t9xxx3zhje8IVdccUXOOOOM11MXAADQjWxT41Eul7d3HQAA0P3UYrF3nSYenV7j8fLLL2f69Om5+eabi6gHAADohjrdePTv3z9XXnllli5dWkQ9AABAN7RNU63Gjx+fhx9+eHvXAgAA3YvF5W226Xa6l112Wa677rr8y7/8SzZs2LC9awIAALqZDice8+fPz5ve9KbstNNOmTp1anr16pWzzjorf/d3f5edd945/fv3b3d+qVTKf//3f2/3ggEAoMuQeLTpcONx5JFH5vvf/34++MEPZujQoRk2bFj23nvvImsDAAC6iQ43HpVKJZXKxvZp7ty5RdUDAADdRqkGt9Ot+u17O2ib1ngAAAB0Rqcaj1KpVFQdAABAN9apxuPDH/5wevfu3aGtT59tulMvAADQDXWqO5g0aVLe+MY3FlULAADQTXWq8Zg6dWpOOeWUomoBAIDuxe1021hcDgAAFE7jAQAAFM4KcAAAKIjneGzS4cajXC4XWQcAANCNSTwAAKBIdZpAVJs1HgAAQOEkHgAAUBS3020j8QAAAAqn8QAAAApnqhUAABTE7XQ3kXgAAACFk3gAAEBRLC5vI/EAAAAKp/EAAAAKZ6oVAAAUxOLyTSQeAABA4SQeAABQFIvL20g8AACAwkk8AACgKBKPNhIPAACgcBoPAACgcKZaAQBAQdxOdxOJBwAAUDiJBwAAFMXi8jYSDwAAoHAaDwAAoHCmWgEAQFFMtWoj8QAAAAon8QAAgIK4ne4mEg8AAKBwGg8AAKBwploBAEBRLC5vI/EAAAAKJ/EAAICCWFy+icQDAAB6sPnz5+fYY4/N6NGjUyqVcuONN7Y7ftppp6VUKrXb3v3ud3d6HI0HAAAUpVKjrRNWr16dAw88MLNmzdrqOe9+97uzePHitu1f//VfOzdITLUCAIAebcqUKZkyZcqfPaehoSEjR458XeNIPAAAoBtauXJlu62lpWWbP2vu3LkZPnx49t577/zt3/5tnn/++U5/hsYDAACKUsOpVmPHjk1zc3PbNnPmzG36Lbz73e/Od7/73dx555358pe/nHnz5mXKlClpbW3t1OeYagUAAN3QokWL0tTU1Pa6oaFhmz7n5JNPbvv1AQcckHHjxuUNb3hD5s6dm6OOOqrDnyPxAACAgpRqtCVJU1NTu21bG49X22OPPTJs2LA8/vjjnXqfxgMAAOiwp556Ks8//3xGjRrVqfeZagUAAD3YqlWr2qUXCxcuzEMPPZQhQ4ZkyJAh+exnP5sTTjghI0eOzBNPPJFPfOIT2XPPPTN58uROjaPxAACAomzDczW2y5id8Ktf/SpHHnlk2+vp06cnSaZOnZrZs2fn17/+db7zne9k+fLlGT16dI4++uh87nOf6/TULY0HAAD0YEcccUQqla13K7fddtt2GUfjAQAABSlVNm7VHrMeWVwOAAAUTuIBAABF6QJrPKpF4gEAABRO4wEAABTOVCsAAChSnU59qjaJBwAAUDiJBwAAFMTtdDeReAAAAIXTeAAAAIUz1QoAAIriOR5tJB4AAEDhJB4AAFAQi8s3kXgAAACFk3gAAEBRrPFoI/EAAAAKp/EAAAAKZ6oVAAAUxOLyTTQe0MNNHn1QrUuALufZ/9y11iVAl9G6piU5qdZVUA80HgAAUBSLy9tY4wEAABRO4wEAABTOVCsAACiKqVZtJB4AAEDhJB4AAFAQt9PdROIBAAAUTuIBAABFscajjcQDAAAonMYDAAAonKlWAABQkFKlklKlunOfqj1eR0k8AACAwkk8AACgKBaXt5F4AAAAhdN4AAAAhTPVCgAACuLJ5ZtIPAAAgMJJPAAAoCgWl7eReAAAAIWTeAAAQEGs8dhE4gEAABRO4wEAABTOVCsAACiKxeVtJB4AAEDhJB4AAFAQi8s3kXgAAACF03gAAACFM9UKAACKYnF5G4kHAABQOIkHAAAUqF4Xe1ebxAMAACicxAMAAIpSqWzcqj1mHZJ4AAAAhdN4AAAAhTPVCgAACuLJ5ZtIPAAAgMJJPAAAoCgeINhG4gEAABRO4wEAABTOVCsAAChIqbxxq/aY9UjiAQAAFE7iAQAARbG4vI3EAwAAKJzGAwAAKJypVgAAUBBPLt9E4gEAABRO4gEAAEWpVDZu1R6zDkk8AACgB5s/f36OPfbYjB49OqVSKTfeeGO745VKJRdeeGFGjRqV/v37Z9KkSXnsscc6PY7GAwAACvLKGo9qb52xevXqHHjggZk1a9YWj19yySX56le/miuuuCL33XdfBg4cmMmTJ2ft2rWdGsdUKwAA6MGmTJmSKVOmbPFYpVLJZZddlk9/+tN53/velyT57ne/mxEjRuTGG2/MySef3OFxJB4AANANrVy5st3W0tLS6c9YuHBhlixZkkmTJrXta25uzoQJE3LPPfd06rM0HgAAUJRKjbYkY8eOTXNzc9s2c+bMTpe/ZMmSJMmIESPa7R8xYkTbsY4y1QoAALqhRYsWpampqe11Q0NDDavReAAAQGFq+QDBpqamdo3Hthg5cmSSZOnSpRk1alTb/qVLl+aggw7q1GeZagUAAGzR7rvvnpEjR+bOO+9s27dy5crcd999mThxYqc+S+IBAAA92KpVq/L444+3vV64cGEeeuihDBkyJLvsskvOPffcfP7zn89ee+2V3XffPZ/5zGcyevToHHfccZ0aR+MBAABF6QJPLv/Vr36VI488su319OnTkyRTp07N1VdfnU984hNZvXp1zjzzzCxfvjyHHXZYbr311jQ2NnZqHI0HAAD0YEcccUQqf6ZZKZVKufjii3PxxRe/rnE0HgAAUJBaLi6vNxaXAwAAhZN4AABAUf7kgX5VHbMOSTwAAIDCaTwAAIDCmWoFAAAFsbh8E4kHAABQOIkHAAAUpVzZuFV7zDok8QAAAAqn8QAAAApnqhUAABTFczzaSDwAAIDCSTwAAKAgpdTgdrrVHa7DJB4AAEDhJB4AAFCUSmXjVu0x65DEAwAAKJzGAwAAKJypVgAAUJBSpQaLy+tzppXEAwAAKJ7EAwAAiuIBgm0kHgAAQOE0HgAAQOFMtQIAgIKUKpWUqvxcjWqP11ESDwAAoHASDwAAKEr5j1u1x6xDEg8AAKBwEg8AACiINR6bSDwAAIDCaTwAAIDCmWoFAABF8eTyNhIPAACgcBIPAAAoSqWycav2mHVI4gEAABRO4wEAABTOVCsAAChIqbJxq/aY9UjiAQAAFE7iAQAARbG4vI3Gg0L17VfOqX+/JEed8GIGNbdm4aP9851LRuaB+YNrXRrUJdcMbFmfx15O450r0/c3a9J72fqUB/fO+r37Z82Hh6V1537tTy5X0njr8vS/bUV6P70ulYZSNuzWmFV/s1Nad2+szW8AMNWKYn38skU5/sxn89MbdszsC3dOuZx87ntPZr9DVtW6NKhLrhnYsgE/fCH97nkp6w4ckFVnDM/ayTuk3yNrsuN5v0vv37e0O3fwV5dk0LeWZf0bGrPqzOFZc9KwlHfqk17LW2tUPT1ZqVybrR5JPCjM3getyZHHLc+3Lh6V668YniS54/od882fLsjffHpxzvvLvWpcIdQX1wxs3Zr3DcmGjzcmfUtt+1rePjg7nvO7DLj++bz08dFJkoa7V6bxpyuz4oLRWTdRUgj1pK4Sj5kzZ+bggw/O4MGDM3z48Bx33HFZsGBBrctiGx323uVp3ZD8+PtD2/atb+mVW/91SPZ9y5rsNHpdDauD+uOaga3b8Kb+7ZqOJGkd3S8bdumX3k9tujb63/hi1r+xcWPTUa4ka+v0R7/QA9VV4zFv3rxMmzYt9957b26//fasX78+Rx99dFavXl3r0tgGe+7/cp56siFrVvVut3/BQwOSJHvs93ItyoK65ZqBTqpU0mt5aypNG6+Z0prW9HlsbTbs2ZiB3302Qz/4WHb6wGMZcsaTabh7ZY2Lpcd6ZXF5tbc6VFdTrW699dZ2r6+++uoMHz48999/fw4//PAaVcW2GjJ8Q15Y2nez/a/sGzpiQ7VLgrrmmoHOaZi7Mr2f35A1pwxLkvRevD6lStLws5eS3snqqTulMrB3+t/8YgZ/ZXHK/Xtn/fiBNa4aeq66ajxebcWKFUmSIUOGbPF4S0tLWlo2LShbudJPM+pJv8Zy1q8rbbZ/XcvGfQ2N4m/4U64Z6LjeT7Vk0JXLsn6fxqx9Z1OSpPTHaVW9XmrNi1/ZJRv27p8kaTlkUIae8WQG/vvzWa7xoNoqf9yqPWYdqqupVn+qXC7n3HPPzaGHHpr9999/i+fMnDkzzc3NbdvYsWOrXCV/zrq1vdK33+Z/8/s1bNzXsrZu//pBTbhmoGNKL25I88VPpzKgV1Z+cuek98bmvNJv4zXSOqJvW9ORJOnfKy0HD0yfx15OWuv0Gxn0AHX7r9i0adPy8MMP57rrrtvqORdccEFWrFjRti1atKiKFfJaXljWJ0NGrN9s/yv7nl9a14EbVJ1rBl5baXVrmi96KqXVrVlx0ZiUh266LspDNv66vEPvzd5X2aFPShs2pSJA9dXlv2Jnn312brnllsyfPz9jxozZ6nkNDQ1paGioYmV0xhOP9M+Bb1uVAYNa2y2W3ecv1iRJnnyk/9beCj2SawZew7pymj73dPo8sy7LPzc2rbu0/w5QHtonrTv2Tq/nN18P1euFDan0K6XSv25/5ko3VapUUqryYu9qj9dRdXX1VSqVnH322bnhhhvy05/+NLvvvnutS+J1+NktzendJznmw8+37evbr5yjT3ohj94/IM8+0+/PvBt6HtcM/BmtlTRdsjh9F7yclZ8cnQ37bLkRbzmsKb2f25C+D266I2Zp5Yb0u29V1o0bkPTafB0VUB11lXhMmzYt1157bW666aYMHjw4S5YsSZI0Nzenf38/6etqFjw4MPP/szmnX7A4zcM25JmFDXnXB17IiLHrcunHrceBV3PNwNYN/PazafjFqrQcMjCll1rTcNeKdsdbjmxOkqx5/5A0/L+VafrSM3n5fTumMrBXGm9dntKGSlb/n2G1KJ2erha3t63TxKOuGo/Zs2cnSY444oh2++fMmZPTTjut+gXxul3ysV0y9eklOeqEFzO4uTULH23MhafunofvG1Tr0qAuuWZgy/osXJskafjF6jT8YvPnez37x8ajsmOfLP/SLhn07WfT/z9fTGlDJev36Z+Xpo9K6+6NVa0ZaK+uGo9KnXZnbLv1Lb3yL58bnX/53OhalwJdgmsGtmzFF3fp8Lnlkf2y8lM7F1gNdEIlSbXvaVCnX6nrao0HAADQPWk8AACAwtXVVCsAAOhO3E53E4kHAABQOIkHAAAUpZIa3E63usN1lMQDAAAonMYDAAAonKlWAABQFE8ubyPxAAAACifxAACAopSTlGowZh2SeAAAAIXTeAAAAIUz1QoAAAriyeWbSDwAAIDCSTwAAKAobqfbRuIBAAA92EUXXZRSqdRu22effbb7OBIPAAAoShdJPPbbb7/ccccdba/79Nn+bYLGAwAAerg+ffpk5MiRhY5hqhUAAHRDK1eubLe1tLRs9dzHHnsso0ePzh577JEPfehD+cMf/rDd69F4AABAUV6ZalXtLcnYsWPT3Nzcts2cOXOLJU6YMCFXX311br311syePTsLFy7M29/+9rz00kvb9Y/CVCsAAOiGFi1alKamprbXDQ0NWzxvypQpbb8eN25cJkyYkF133TX//u//no985CPbrR6NBwAAFKWcpFSDMZM0NTW1azw6aocddsgb3/jGPP7449u1LFOtAACANqtWrcoTTzyRUaNGbdfP1XgAAEAPdv7552fevHn53e9+l5///Of5q7/6q/Tu3Tsf/OAHt+s4ploBAEBBSpVKSlV+jkdnx3vqqafywQ9+MM8//3x22mmnHHbYYbn33nuz0047bde6NB4AANCDXXfddVUZR+MBAABF6SJPLq8GazwAAIDCSTwAAKAo5UpSqnICUZZ4AAAAPZTGAwAAKJypVgAAUBSLy9tIPAAAgMJJPAAAoDA1SDwi8QAAAHoojQcAAFA4U60AAKAoFpe3kXgAAACFk3gAAEBRypVUfbG3J5cDAAA9lcQDAACKUilv3Ko9Zh2SeAAAAIXTeAAAAIUz1QoAAIridrptJB4AAEDhJB4AAFAUt9NtI/EAAAAKp/EAAAAKZ6oVAAAUxeLyNhIPAACgcBIPAAAoSiU1SDyqO1xHSTwAAIDCSTwAAKAo1ni0kXgAAACF03gAAACFM9UKAACKUi4nKddgzPoj8QAAAAon8QAAgKJYXN5G4gEAABRO4wEAABTOVCsAACiKqVZtJB4AAEDhJB4AAFCUciVJlROIssQDAADooSQeAABQkEqlnEqlug/0q/Z4HSXxAAAACqfxAAAACmeqFQAAFKVSqf5ib7fTBQAAeiqJBwAAFKVSg9vpSjwAAICeSuMBAAAUzlQrAAAoSrmclKr8XA3P8QAAAHoqiQcAABTF4vI2Eg8AAKBwEg8AAChIpVxOpcprPCrWeAAAAD2VxgMAACicqVYAAFAUi8vbSDwAAIDCSTwAAKAo5UpSkngkEg8AAKAKNB4AAEDhTLUCAICiVCpJqvxcDVOtAACAnkriAQAABamUK6lUeXF5ReIBAAD0VBoPAACgcKZaAQBAUSrlVH9xeZXH6yCJBwAAUDiJBwAAFMTi8k0kHgAAQGbNmpXddtstjY2NmTBhQn7xi19s18/XeAAAQFEq5dpsnfRv//ZvmT59embMmJEHHnggBx54YCZPnpxly5Zttz8KjQcAAPRwl156ac4444ycfvrp2XfffXPFFVdkwIAB+fa3v73dxuhWazxemc+2IeuT+pzaBkA30LqmpdYlQJfxyvVSr+sOilaL76Ubsj5JsnLlynb7Gxoa0tDQsNn569aty/33358LLrigbV+vXr0yadKk3HPPPdutrm7VeLz00ktJkrvz4xpXAkC3dlKtC4Cu56WXXkpzc3Oty6iafv36ZeTIkbl7SW2+lw4aNChjx45tt2/GjBm56KKLNjv3ueeeS2tra0aMGNFu/4gRI/K///u/262mbtV4jB49OosWLcrgwYNTKpVqXQ5/YuXKlRk7dmwWLVqUpqamWpcDdc81A53jmqlflUolL730UkaPHl3rUqqqsbExCxcuzLp162oyfqVS2ez78JbSjmrqVo1Hr169MmbMmFqXwZ/R1NTkHwToBNcMdI5rpj71pKTjTzU2NqaxsbHWZbymYcOGpXfv3lm6dGm7/UuXLs3IkSO32zgWlwMAQA/Wr1+/jB8/PnfeeWfbvnK5nDvvvDMTJ07cbuN0q8QDAADovOnTp2fq1Kl5y1vekkMOOSSXXXZZVq9endNPP327jaHxoCoaGhoyY8aMms8thK7CNQOd45qB1+ekk07Ks88+mwsvvDBLlizJQQcdlFtvvXWzBeevR6nSU+9tBgAAVI01HgAAQOE0HgAAQOE0HgAAQOE0HgAAQOE0HhSqpaUln/zkJzN69Oj0798/EyZMyO23317rsqBurVq1KjNmzMi73/3uDBkyJKVSKVdffXWty4K69Mtf/jJnn3129ttvvwwcODC77LJLPvCBD+S3v/1trUsDtkDjQaFOO+20XHrppfnQhz6Uyy+/PL17984xxxyTu+++u9alQV167rnncvHFF+fRRx/NgQceWOtyoK59+ctfzg9/+MMcddRRufzyy3PmmWdm/vz5efOb35yHH3641uUBr+J2uhTmF7/4RSZMmJCvfOUrOf/885Mka9euzf7775/hw4fn5z//eY0rhPrT0tKSF198MSNHjsyvfvWrHHzwwZkzZ05OO+20WpcGdefnP/953vKWt6Rfv35t+x577LEccMABef/735/vf//7NawOeDWJB4W5/vrr07t375x55plt+xobG/ORj3wk99xzTxYtWlTD6qA+NTQ0ZOTIkbUuA7qEt73tbe2ajiTZa6+9st9+++XRRx+tUVXA1mg8KMyDDz6YN77xjWlqamq3/5BDDkmSPPTQQzWoCoDurFKpZOnSpRk2bFitSwFeReNBYRYvXpxRo0Zttv+Vfc8880y1SwKgm7vmmmvy9NNP56STTqp1KcCraDwozMsvv5yGhobN9jc2NrYdB4Dt5X//938zbdq0TJw4MVOnTq11OcCraDwoTP/+/dPS0rLZ/rVr17YdB4DtYcmSJXnPe96T5ubmtjWGQH3pU+sC6L5GjRqVp59+erP9ixcvTpKMHj262iUB0A2tWLEiU6ZMyfLly/Ozn/3Mvy9QpyQeFOaggw7Kb3/726xcubLd/vvuu6/tOAC8HmvXrs2xxx6b3/72t7nllluy77771rokYCs0HhTm/e9/f1pbW/PNb36zbV9LS0vmzJmTCRMmZOzYsTWsDoCurrW1NSeddFLuueee/OAHP8jEiRNrXRLwZ5hqRWEmTJiQE088MRdccEGWLVuWPffcM9/5znfyu9/9LldddVWty4O69fWvfz3Lly9vu/PbzTffnKeeeipJcs4556S5ubmW5UHd+PjHP57//M//zLHHHpsXXnhhswcGfvjDH65RZcCWeHI5hVq7dm0+85nP5Pvf/35efPHFjBs3Lp/73OcyefLkWpcGdWu33XbL73//+y0eW7hwYXbbbbfqFgR16ogjjsi8efO2etxXHKgvGg8AAKBw1ngAAACF03gAAACF03gAAACF03gAAACF03gAAACF03gAAACF03gAAACF03gAAACF03gAAACF03gAdNBuu+2W0047re313LlzUyqVMnfu3JrV9GqvrnFrSqVSLrrook5//tVXX51SqZRf/epXnS9uKy666KKUSqXt9nkA1CeNB9AlvPKF95WtsbExb3zjG3P22Wdn6dKltS6vU3784x9v05d+AOjK+tS6AIDOuPjii7P77rtn7dq1ufvuuzN79uz8+Mc/zsMPP5wBAwZUtZbDDz88L7/8cvr169ep9/34xz/OrFmzNB8A9CgaD6BLmTJlSt7ylrckSf7mb/4mQ4cOzaWXXpqbbropH/zgB7f4ntWrV2fgwIHbvZZevXqlsbFxu38uAHRHploBXdo73/nOJMnChQuTJKeddloGDRqUJ554Isccc0wGDx6cD33oQ0mScrmcyy67LPvtt18aGxszYsSInHXWWXnxxRfbfWalUsnnP//5jBkzJgMGDMiRRx6ZRx55ZLOxt7bG47777ssxxxyTHXfcMQMHDsy4ceNy+eWXt9U3a9asJGk3dewV27vGjvr973+f//t//2/23nvv9O/fP0OHDs2JJ56Y3/3ud1s8f82aNTnrrLMydOjQNDU15dRTT92sxiT5yU9+kre//e0ZOHBgBg8enPe85z2vq04Aui6JB9ClPfHEE0mSoUOHtu3bsGFDJk+enMMOOyz/+I//2DYF66yzzsrVV1+d008/PX/3d3+XhQsX5utf/3oefPDB/L//9//St2/fJMmFF16Yz3/+8znmmGNyzDHH5IEHHsjRRx+ddevWvWY9t99+e9773vdm1KhR+djHPpaRI0fm0UcfzS233JKPfexjOeuss/LMM8/k9ttvz/e+973N3l+NGrfkl7/8ZX7+85/n5JNPzpgxY/K73/0us2fPzhFHHJH/+Z//2Wwa29lnn50ddtghF110URYsWJDZs2fn97//fVszliTf+973MnXq1EyePDlf/vKXs2bNmsyePTuHHXZYHnzwwey2227bVCsAXVQFoAuYM2dOJUnljjvuqDz77LOVRYsWVa677rrK0KFDK/3796889dRTlUqlUpk6dWolSeUf/uEf2r3/Zz/7WSVJ5Zprrmm3/9Zbb223f9myZZV+/fpV3vOe91TK5XLbeZ/61KcqSSpTp05t23fXXXdVklTuuuuuSqVSqWzYsKGy++67V3bdddfKiy++2G6cP/2sadOmVbb0n98iatyaJJUZM2a0vV6zZs1m59xzzz2VJJXvfve7bfte+f9h/PjxlXXr1rXtv+SSSypJKjfddFOlUqlUXnrppcoOO+xQOeOMM9p95pIlSyrNzc3t9s+YMWOLfx4AdC+mWgFdyqRJk7LTTjtl7NixOfnkkzNo0KDccMMN2Xnnndud97d/+7ftXv/gBz9Ic3Nz3vWud+W5555r28aPH59BgwblrrvuSpLccccdWbduXc4555x2U6DOPffc16ztwQcfzMKFC3Puuedmhx12aHesI7eLrUaNW9O/f/+2X69fvz7PP/989txzz+ywww554IEHNjv/zDPPbEtfko1/3n369MmPf/zjJBuTn+XLl+eDH/xgu99L7969M2HChLbfCwA9h6lWQJcya9asvPGNb0yfPn0yYsSI7L333unVq/3PUPr06ZMxY8a02/fYY49lxYoVGT58+BY/d9myZUk2rnVIkr322qvd8Z122ik77rjjn63tlWlf+++/f8d/Q1WucWtefvnlzJw5M3PmzMnTTz+dSqXSdmzFihWbnf/qsQcNGpRRo0a1rQl57LHHkmxag/NqTU1N21QnAF2XxgPoUg455JC2u1ptTUNDw2bNSLlczvDhw3PNNdds8T077bTTdqtxW9WyxnPOOSdz5szJueeem4kTJ6a5uTmlUiknn3xyyuVypz/vlfd873vfy8iRIzc73qePf34Aehr/5Qd6hDe84Q254447cuihh7abVvRqu+66a5KNP7HfY4892vY/++yzW7xr06vHSJKHH344kyZN2up5W5t2VY0at+b666/P1KlT80//9E9t+9auXZvly5dv8fzHHnssRx55ZNvrVatWZfHixTnmmGPafi9JMnz48D/7ZwFAz2GNB9AjfOADH0hra2s+97nPbXZsw4YNbV+wJ02alL59++ZrX/tau+lGl1122WuO8eY3vzm77757Lrvsss2+sP/pZ73yTJFXn1ONGremd+/e7T4rSb72ta+ltbV1i+d/85vfzPr169tez549Oxs2bMiUKVOSJJMnT05TU1O++MUvtjvvFc8+++w21wpA1yTxAHqEd7zjHTnrrLMyc+bMPPTQQzn66KPTt2/fPPbYY/nBD36Qyy+/PO9///uz00475fzzz8/MmTPz3ve+N8ccc0wefPDB/OQnP8mwYcP+7Bi9evXK7Nmzc+yxx+aggw7K6aefnlGjRuV///d/88gjj+S2225LkowfPz5J8nd/93eZPHlyevfunZNPPrkqNW7Ne9/73nzve99Lc3Nz9t1339xzzz2544472t2m+E+tW7cuRx11VD7wgQ9kwYIF+cY3vpHDDjssf/mXf5lk4xqO2bNn5//8n/+TN7/5zTn55JOz00475Q9/+EN+9KMf5dBDD83Xv/71baoVgK5J4wH0GFdccUXGjx+fK6+8Mp/61KfSp0+f7Lbbbvnwhz+cQw89tO28z3/+82lsbMwVV1yRu+66KxMmTMh//dd/5T3vec9rjjF58uTcdddd+exnP5t/+qd/Srlczhve8IacccYZbeccf/zxOeecc3Ldddfl+9//fiqVSk4++eSq1bgll19+eXr37p1rrrkma9euzaGHHpo77rgjkydP3uL5X//613PNNdfkwgsvzPr16/PBD34wX/3qV9tNIzvllFMyevTofOlLX8pXvvKVtLS0ZOedd87b3/72nH766dtUJwBdV6ny6mwdAABgO7PGAwAAKJzGAwAAKJzGAwAAKJzGAwAAKJzGAwAAKJzGAwAAKJzGAwAAKJzGAwAAKJzGAwAAKJzGAwAAKJzGAwAAKJzGAwAAKNz/D2gCRcSGk6IFAAAAAElFTkSuQmCC", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ + "nn_model.eval()\n", "pred_y_test = np.argmax(nn_model(test_data[0]).detach(), axis=1)\n", "\n", "cm = confusion_matrix(test_data[1], pred_y_test)\n", @@ -278,6 +298,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "cca76db8", "metadata": {}, @@ -287,7 +308,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "ca48f9d5", "metadata": {}, "outputs": [ @@ -297,7 +318,7 @@ "0.9906846833902615" ] }, - "execution_count": 11, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -307,6 +328,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "5332e2b4", "metadata": {}, @@ -315,6 +337,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "45dbdd1e", "metadata": {}, @@ -327,53 +350,34 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 13, "id": "218d0983", "metadata": {}, "outputs": [ { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "4b5f7a72f877486b8007e1a0969e1b27", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Split Gradient: 0%| | 0/107 [00:00" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ "_, ax = plt.subplots()\n", - "ax.hist(mean_train_influences[num_corrupted_idxs:], log=True, label=\"normal\")\n", - "ax.hist(mean_train_influences[:num_corrupted_idxs], log=True, label=\"corrupted\")\n", + "ax.hist(mean_train_influences[num_corrupted_idxs:], label=\"normal\")\n", + "ax.hist(mean_train_influences[:num_corrupted_idxs], label=\"corrupted\", bins=5)\n", "ax.set_title(\"Influece scores distribution\")\n", "ax.set_xlabel(\"influece score\")\n", "ax.set_ylabel(\"number of points\")\n", @@ -438,6 +442,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "8dd63529", "metadata": {}, @@ -447,7 +452,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 16, "id": "8bc72789", "metadata": {}, "outputs": [ @@ -455,8 +460,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Average influence of corrupted points: -0.008919590861305823\n", - "Average influence of other points: 0.005525699381638608\n" + "Average influence of corrupted points: -0.05317057\n", + "Average influence of other points: 0.034408495\n" ] } ], @@ -472,6 +477,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "f1e747b1", "metadata": {}, @@ -480,6 +486,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "b00a6164", "metadata": {}, @@ -489,45 +496,25 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 17, "id": "462d545e", "metadata": {}, "outputs": [ { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a4f6b7fdbc6d41d1886ab969bcf4ff03", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Split Gradient: 0%| | 0/107 [00:00" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ - "mean_feature_influences = np.mean(feature_influences, axis=(0, 1))\n", + "mean_feature_influences = np.mean(feature_influences.numpy(), axis=(0, 1))\n", "\n", "_, ax = plt.subplots()\n", - "ax.plot(feature_names, mean_feature_influences)\n", + "ax.bar(feature_names, mean_feature_influences)\n", "ax.set_xlabel(\"training features\")\n", "ax.set_ylabel(\"influence values\")\n", "ax.set_title(\"Average feature influence\")\n", @@ -567,6 +552,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "656e14dd", "metadata": {}, @@ -575,6 +561,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "3bf8c4dd", "metadata": {}, @@ -584,24 +571,36 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 19, "id": "efdb4050", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Batch Test Gradients: 100%|██████████| 4/4 [00:00<00:00, 81.02it/s]\n", + "Batch Train Gradients: 100%|██████████| 2/2 [00:00<00:00, 535.33it/s]\n", + "Conjugate gradient: 100%|██████████| 107/107 [00:04<00:00, 22.66it/s]\n", + "Batch Split Input Gradients: 100%|██████████| 2/2 [00:00<00:00, 98.91it/s]\n" + ] + } + ], "source": [ "cg_train_influences = compute_influences(\n", - " nn_model,\n", - " F.cross_entropy,\n", - " *train_data,\n", - " *test_data,\n", + " TorchTwiceDifferentiable(nn_model, F.cross_entropy),\n", + " training_data=training_data_loader,\n", + " test_data=test_data_loader,\n", " influence_type=\"up\",\n", " inversion_method=\"cg\",\n", - " hessian_regularization=1,\n", + " hessian_regularization=0.1,\n", + " progress=True,\n", ")\n", - "mean_cg_train_influences = np.mean(cg_train_influences, axis=0)" + "mean_cg_train_influences = np.mean(cg_train_influences.numpy(), axis=0)" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "28f46c8c", "metadata": {}, @@ -611,7 +610,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 20, "id": "599bab0a", "metadata": {}, "outputs": [ @@ -619,7 +618,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Percentage error of cg over direct method:0.0015781619965701342 %\n" + "Percentage error of cg over direct method:1.5124550145628746e-05 %\n" ] } ], @@ -630,11 +629,12 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "9245791c", "metadata": {}, "source": [ - "This was a quick introduction to the pyDVL interface for influence functions. Despite their speed and simplicity, influence functions are known to be a very noisy estimator of data quality, as pointed out in the paper [\"Influence functions in deep learning are fragile\"](https://arxiv.org/abs/2006.14651). The size of the network, the weight decay, the inversion method used for calculating influences, the size of the test set: they all add up to the total amount of noise. Experiments may therefore give quantitative and qualitatively different results if not averaged across several realisations. Shapley values, on the contrary, have shown to be a more robust, but this comes at the cost of high computational requirements. PyDVL employs several parallelization and caching techniques to optimize such calculations." + "This was a quick introduction to the pyDVL interface for influence functions. Despite their speed and simplicity, influence functions are known to be a very noisy estimator of data quality, as pointed out in the paper [\"Influence functions in deep learning are fragile\"](https://arxiv.org/abs/2006.14651). The size of the network, the weight decay, the inversion method used for calculating influences, the size of the test set: they all add up to the total amount of noise. Experiments may therefore give quantitative and qualitatively different results if not averaged across several realisations. Shapley values, on the contrary, have shown to be a more robust, but this comes at the cost of high computational requirements. PyDVL employs several parallelization and caching techniques to optimize such calculations.\n" ] } ], @@ -654,7 +654,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.9.16" }, "vscode": { "interpreter": { diff --git a/notebooks/least_core_basic.ipynb b/notebooks/least_core_basic.ipynb index 19f99a49d..1800690bf 100644 --- a/notebooks/least_core_basic.ipynb +++ b/notebooks/least_core_basic.ipynb @@ -39,16 +39,20 @@ "We begin by importing the main libraries and setting some defaults.\n", "\n", "
\n", - "If you are reading this in the documentation, some boilerplate has been omitted for convenience.\n", + "\n", + "If you are reading this in the documentation, some boilerplate (including most plotting code) has been omitted for convenience.\n", + "\n", "
" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "f6656599", "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide" + ] }, "outputs": [], "source": [ @@ -60,7 +64,9 @@ "execution_count": 2, "id": "08ee61fd", "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide" + ] }, "outputs": [], "source": [ @@ -357,31 +363,15 @@ "errors_df = pd.DataFrame(all_errors)" ] }, - { - "cell_type": "code", - "execution_count": 13, - "id": "f2a4dd47", - "metadata": { - "nbsphinx": "hidden" - }, - "outputs": [], - "source": [ - "_ = shaded_mean_std(\n", - " errors_df,\n", - " abscissa=errors_df.columns,\n", - " num_std=1,\n", - " xlabel=\"Budget\",\n", - " ylabel=\"$l_2$ Error\",\n", - " label=\"Estimated values\",\n", - " title=\"$l_2$ approximation error of values as a function of the budget\",\n", - ")" - ] - }, { "cell_type": "code", "execution_count": 14, "id": "f3e02c36", - "metadata": {}, + "metadata": { + "tags": [ + "hide-input" + ] + }, "outputs": [ { "data": { @@ -395,6 +385,15 @@ } ], "source": [ + "_ = shaded_mean_std(\n", + " errors_df,\n", + " abscissa=errors_df.columns,\n", + " num_std=1,\n", + " xlabel=\"Budget\",\n", + " ylabel=\"$l_2$ Error\",\n", + " label=\"Estimated values\",\n", + " title=\"$l_2$ approximation error of values as a function of the budget\",\n", + ")\n", "plt.show()" ] }, @@ -408,35 +407,15 @@ "Still, the decrease may not always necessarily happen when we increase the number of iterations because of the fact that we sample the subsets with replacement in the Monte Carlo method i.e there may be repeated subsets." ] }, - { - "cell_type": "code", - "execution_count": 15, - "id": "1d0a490a", - "metadata": { - "nbsphinx": "hidden" - }, - "outputs": [], - "source": [ - "mean_std_values_df = values_df.drop(columns=\"budget\").agg([\"mean\", \"std\"])\n", - "df = pd.concat([exact_values_df, mean_std_values_df])\n", - "df = df.sort_values(\"exact_value\", ascending=False, axis=1).T\n", - "df.plot(\n", - " kind=\"bar\",\n", - " title=\"Comparison of Exact and Monte Carlo Methods\",\n", - " xlabel=\"Index\",\n", - " ylabel=\"Value\",\n", - " color=[\"dodgerblue\", \"indianred\"],\n", - " y=[\"exact_value\", \"mean\"],\n", - " yerr=[exact_values_df.loc[\"exact_value_stderr\"], mean_std_values_df.loc[\"std\"]],\n", - ")\n", - "_ = plt.legend([\"Exact\", \"Monte Carlo\"])" - ] - }, { "cell_type": "code", "execution_count": 16, "id": "48bccf93", - "metadata": {}, + "metadata": { + "tags": [ + "hide-input" + ] + }, "outputs": [ { "data": { @@ -450,6 +429,19 @@ } ], "source": [ + "mean_std_values_df = values_df.drop(columns=\"budget\").agg([\"mean\", \"std\"])\n", + "df = pd.concat([exact_values_df, mean_std_values_df])\n", + "df = df.sort_values(\"exact_value\", ascending=False, axis=1).T\n", + "df.plot(\n", + " kind=\"bar\",\n", + " title=\"Comparison of Exact and Monte Carlo Methods\",\n", + " xlabel=\"Index\",\n", + " ylabel=\"Value\",\n", + " color=[\"dodgerblue\", \"indianred\"],\n", + " y=[\"exact_value\", \"mean\"],\n", + " yerr=[exact_values_df.loc[\"exact_value_stderr\"], mean_std_values_df.loc[\"std\"]],\n", + ")\n", + "plt.legend([\"Exact\", \"Monte Carlo\"])\n", "plt.show()" ] }, @@ -547,12 +539,25 @@ }, { "cell_type": "code", - "execution_count": 20, - "id": "be2dde67", + "execution_count": 21, + "id": "1f95fb06", "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide-input" + ] }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABlkAAALGCAYAAADGEfdTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5wU9d0H8M/M9uudenBw9CIdC0iTosaCYgmiglijREmMTzQ+ETAaNGpii48FBWIvUcFKkaMpHVSQIuWOcr3X7fN7/pidvd3bvbLHHdc+79eLF7A7O/Pb3dnZu/nM9/uThBACREREREREREREREREFBK5pQdARERERERERERERETUFjFkISIiIiIiIiIiIiIiagSGLERERERERERERERERI3AkIWIiIiIiIiIiIiIiKgRGLIQERERERERERERERE1AkMWIiIiIiIiIiIiIiKiRmDIQkRERERERERERERE1AgMWYiIiIiIiIiIiIiIiBqBIQsREREREREREREREVEjMGQhIiIiopA4nU4sWrQIffv2hclkgiRJ+Pzzz1t6WI0yadIkSJLU0sM4a0ePHsU111yDzp07Q5IkxMTEtPSQqI16//33MWLECERGRkKSJCxcuLClh9ShpKSkICUlpcHLS5KESZMmNdt4WoOO8BxDtXjxYkiShI0bN7b0UIiIiAgMWYiIiDqsJ598EpIkQZIkHDlypKWHQ23Ic889h8cffxxdu3bFn/70JyxatAgDBgxo6WEFNW/ePEiShIyMjJYeSrNxu92YOXMmvv76a1xxxRVYtGgRHn744ZYeVpvU0U/mbtu2DXPmzEF5eTl+97vfYdGiRbj00ktbeljURrTmE/8ZGRmQJAnz5s1r6aG0Khs3boQkSVi8eHFLD4WIiKhN07f0AIiIiOjcE0Jg2bJlkCQJQgi88cYbePbZZ1t6WNRGfPnll4iIiMC6detgNBpbejhn5T//+Q+qqqpaehhnJT09HQcPHsSdd96J119/vaWHQ23YV199BSEE/vOf/+Ciiy5q6eEQUS0WLFiA3/72t+jRo0dLD4WIiIjAShYiIqIOae3atcjIyMDcuXPRuXNnrFy5Eg6Ho6WHRW1EVlYW4uPj23zAAgA9evRotVU4DZWVlQUA6Nq1awuPhNo67ktEbUNCQgIGDBiAsLCwlh4KERERgSELERFRh/TGG28AAO68807MmTMHBQUF+Oyzz2pd/syZM7j//vvRt29fWCwWxMXFYezYsfjb3/7W6GXrassTrMWTb6uPX3/9FTfeeCOSkpIgy7K3NcmePXvwwAMPYNiwYYiLi4PZbEbfvn3x4IMPori4uNbn9+GHH+KSSy7xPiYlJQWzZ8/G7t27AQCvvfYaJEnCkiVLgj4+JycHBoMBQ4cOrXUbvlasWIFZs2ahd+/esFgsiIqKwrhx4/DOO+8EXf7EiRO466670KdPH+9rOnToUNxzzz0oLCxs0DY///xz3HzzzejXrx/Cw8MRHh6OUaNG4cUXX4SiKA1ah/a+pKen4+TJk952c9r8AfW1HQk218CKFSsgSRJWrFiBtLQ0TJo0CZGRkYiKisJvfvMbHDp0KOi6qqqq8PTTT2P06NGIjIxEREQEBg4ciPvvvx+5ubkA1H1s5cqVAIBevXoFjBeofU4WRVHw6quvYsyYMYiIiEB4eDjGjBmD//u//wv6emn7c0FBAe666y506dIFJpMJgwcPxvLly+t5ZQPt2bMHs2bNQlJSEkwmE3r27Il7770X2dnZAdudOHEiAGDJkiXe51hf6xffz9Phw4cxc+ZMxMXFITw8HOPHj8fatWtrfez777+PyZMnIyYmBmazGQMHDsQTTzwBu91e6+uSk5ODO+64A926dYNOp8OKFSu8y+zcuRM33ngjunXrBpPJhC5dumD69On46KOPAta3Y8cOXHfddejcuTOMRiOSk5Nx9913e8MBX9p763K58Pe//907h1BycjL+/Oc/+wXL2n4IAJs2bfK+jjVfy1A/uwCwa9cuTJ8+3btfT506Fdu2bauztdLhw4cxb948JCcnw2g0olOnTrjppptCbu3Y0P1Ye/7avur7eamv1Z7v83jvvfdw/vnnIyIiwu9zVlVVhaVLl2L48OEIDw9HREQELrzwQrz//vsB6/M9juzevRuXXnopoqOjERsbi1mzZuH06dMA1OPib3/7WyQmJsJisWDy5Mn46aefgo4xOzsb9913H1JSUmA0GpGYmIhrr70We/bs8VvuqaeegiRJeOGFF4KuJysrC3q9HqNHj/a73eVy4ZVXXsEFF1yAqKgohIWFYcSIEXj55ZeDHi+EEHj55ZcxePBgmM1mdOvWDQsWLEBpaWmdr3VdsrKycMsttyApKQkWiwWjRo3Ce++9V+vya9asweWXX46EhASYTCakpqbioYceQklJScCyP//8M2bPno2UlBSYTCYkJiZi5MiRWLhwIZxOJwD1+K59R06ePNnvM9QQDocDf/vb35CamgqTyYRevXrhf//3f4MeV7Tn+/jjj2PcuHHe40HXrl1x00034eDBg37LLl68GL169QIArFy50m9s2rHI4XDg5ZdfxuWXX46ePXvCZDIhLi4OU6dOxTfffNOg5+C7Pe0zsXLlSowYMQIWiwVJSUmYP38+cnJygj7u6NGjuPXWW9GtWzfv87n11ltx9OjROrfhK5Tvonnz5mHy5MkA/L8/fNfrcDjw4osvYuTIkYiNjUVYWBhSUlJw9dVXY/369SG9LkRERO0Z24URERF1MLm5uVi9ejX69euHiy66CFFRUXjuuefw+uuv48YbbwxYfvfu3ZgxYwaKioowYcIEXHvttaiqqsLBgwexePFi/PWvf23Uso11/PhxnH/++ejXrx/mzJkDq9WKqKgoAGp49Nlnn2HixImYOnUqFEXBnj178M9//hPffPMNduzYgcjISO+6hBC47bbbsHLlSiQkJODaa69FYmIizpw5g7S0NPTv3x+jR4/GnDlz8D//8z9488038b//+7/Q6XR+Y3rrrbfgcrlw9913N+g5/O53v8PgwYMxYcIEdOnSBYWFhfj6669xyy234MiRI36BVHZ2NsaMGYOysjJcfvnlmDVrFmw2G9LT0/H2229jwYIFiI+Pr3ebDz/8MGRZxvnnn49u3bqhtLQUGzZswAMPPIBdu3bh7bffrncdM2fOREpKCp5//nkA8E6I3RSTrH/55ZdYtWoVLrvsMtxzzz04ePAgvv76a+zatQsHDx5EQkKCd9ni4mLvCdX+/ftj/vz5MBqNOH78OJYvX45rr70WnTp1wqJFi/D555/jp59+wgMPPOAdZ0PGe8stt+C9995DcnIy7rjjDkiShM8++wz33nsvtm7dinfffTfgMSUlJRg3bhyMRiOuu+462O12fPzxx5g/fz5kWcbcuXMb/FrMmjULQghcd9116NmzJ/bs2YP/+7//w6pVq7B161bvCcNFixYhIyMDK1euxMSJE73BZUPnFUlPT8eFF16IoUOH4u6770Z2djY+/PBDXHbZZXjvvfcCjgnz58/H8uXL0b17d8yaNQsxMTHYvn07/vrXv+K7777DunXroNf7/4pRVFSECy64ABEREbj22mshyzI6deoEQP3M/u53v4NOp8NVV12Fvn37Ii8vD7t378Yrr7yCG264wbuet956C3fddRdMJhOuuuoqJCcn4+jRo1i2bBm++OILbN++PWjrnJtuuglbtmzBZZddhqioKHz99df4xz/+gby8PO9Jx+HDh2PRokVYsmQJevbs6Tdvg+9rGcpnFwA2b96M6dOnw+1249prr0Vqair279+PyZMnY8qUKUHfk2+//RbXXnstnE4nrrzySvTp0wdnzpzBp59+iq+++gppaWkYOXJk/W8uGr4fa8+/sZ8XQJ2rad26dbjyyisxefJkb2BQUlKCKVOmYN++fRg5ciTmz58PRVGwZs0a3HTTTfjll1/wxBNPBKxv165dePrppzFx4kTceeed2L9/Pz799FMcOHAAq1atwvjx4zFgwADceuutOHnyJD799FNMmzYNJ06cQEREhHc96enpGD9+PLKysjBlyhTMnj0bp0+fxscff4yvvvoK//3vf3HFFVd4X69HH30U//nPf/DAAw8EjOmdd96B2+322z+092nNmjXo378/brrpJpjNZqSlpeH3v/89duzYEXB8XbhwIV588UV06dIFd911FwwGA1atWoUdO3bA4XCEXCVYXFyMiy66CDExMbjttttQUlKCjz76CHPmzEFmZiYeeughv+WXLFmCxYsXIy4uDldccQWSkpLw888/49lnn8XXX3+Nbdu2eb9Xf/75Z5x//vmQJAlXXXUVevXqhbKyMhw7dgyvvPIKnnjiCRgMBixcuBCff/45Nm3ahLlz5wYE6nURQuCGG27AqlWrkJqaigULFsDhcOCtt97C/v37gz5m8+bNeOqppzB58mTMmjULEREROHr0KD755BOsXr0a33//PYYNGwZA/QyXlJTghRdewLBhwzBz5kzveoYPHw5APU498MADuOiiizBt2jQkJiYiOzsbX3zxBS6//HK88cYbuOOOOxr+pgD417/+hbVr1+LGG2/EpZdeiq1bt2L58uXYuHEjduzYgcTERO+yu3btwtSpU1FeXo6rrroKgwYNwuHDh/HOO+9g1apVWL9+PcaMGdOg7Tb0u0h7HWp+fwDwvn/z5s3D+++/jyFDhuDWW2+FxWJBVlYWtm7dim+//RZTp04N6TUhIiJqtwQRERF1KEuXLhUAxN///nfvbaNGjRKSJImjR4/6LWu320VKSooAIN59992AdZ0+fbpRywohBAAxceLEoGOcO3euACDS09O9t6WnpwsAAoB45JFHgj4uIyNDuFyugNuXLVsmAIinnnrK7/bXXntNABBjxowRJSUlfve5XC6RlZXl/f99990nAIgvvvjCbzlFUUSvXr1EWFhYwDpqc+zYsYDb7Ha7mDJlitDr9eLMmTPe21988UUBQDz//PMBj6moqBBVVVWN3qbb7Ra33nqrACC2b9/eoPUIIUTPnj1Fz549A25PS0sTAMSiRYsa/Ljly5cLAEKn04n169f73ffwww8LAOLpp5/2u3327NkCgLjnnnuE2+32u6+8vNzvfQi2L/maOHGiqPkj8XvvvScAiBEjRojy8nLv7RUVFWLUqFFB93Ft37z99tv99sFffvlF6HQ6MXDgwKDbr6m8vFzExcUJWZbF5s2b/e576qmnBAAxbdo0v9vre92D8f08/elPf/K7b9euXUKv14uYmBhRWlrqvV17r6655pqA/W7RokVB91NtG7fccotwOp1+9/3yyy9Cr9eL2NhYceDAgYAx+h4zjhw5IgwGg0hNTfX7fAghxPr164Usy2LmzJl+t2vv7ciRI0VhYaH39oqKCpGamipkWRbZ2dkB463tuCREaJ9dt9st+vTpIwCIr7/+2u8x//d//+d9bdLS0ry3FxUViZiYGBEfHy9++eUXv8fs379fhIeHixEjRtQ6Pl+N2Y/r+7wEo733YWFhYu/evQH3a+us+Tm2Wq1ixowZQpIksW/fPu/t2v4MQLzzzjt+j5k/f74AIGJjY8UTTzzhd9/jjz8edB+cPn26ABCw/Pfffy90Op2Ii4vze3205ffv3x/wXAYNGiSMRqMoKCgIeP4LFizw++y7XC7veD///HO/7QIQqampfvul1WoVF1xwgQAQ9PhaG+21uv766/2OhydOnBCxsbHCYDCI48ePe2/fsGGDACAuvPBCUVxc7Lcu7TO+cOFC721//OMfA56DpqioyG+b2mvhu083xLvvvisAiAsuuEBYrVbv7YWFhaJ3795BP5e5ubmirKwsYF0//vijCA8PF5deeqnf7doxb+7cuUHHYLPZAn5OEUKIkpISMXjwYBEbG9vg71vtdTAYDAGfiYULFwoAYv78+d7bFEURAwYMCLrPf/DBBwKA6N+/f4Ne61C/i+r6/igpKRGSJIlRo0YF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+u3nmrlz58Jms+GVV17B119/jfPOOy9g/i69Xo/f//73yM7Oxv333x8Q5gNqFYLv/q1VQT355JN+gaXNZsMjjzzSqOfpdrvx5z//2e94mJ6ejhdffBF6vR4333yz9/Y//OEPAIA777wTWVlZAeuqrKz0O/b88MMPQZ9XsO+gxhxvAXW/B4BHH33Ubx6UoqKioHPdJCUlISwsDHv27PFrxeZ0OvHAAw+goKAg4DGxsbGQJKnWsaWkpKCoqAg///yz3+1vvvkm1qxZE9Lz0bz99tsBF3EsXrwYpaWlmD17tred6bhx49C/f39s3boVn3zyid/yn3zyCbZs2YJ+/foFnbPmbNX1nuXn52P//v0Bt1dWVqKiogJ6vT5oO0IiIqKOiO3CiIiIOoCNGzfi119/xdChQ+ucO+T222/Hk08+ieXLl2PJkiUwGo34+OOPMX36dNx000147bXXcMEFF8Bms+HQoUP47rvvvFcHh7IsAPzpT3/CmjVrcPXVV+PGG29EXFwcfvjhB6Snp2PSpEkNPpGoGTNmDMaNG4dPP/0UF110EcaPH4/c3Fx888036N+/v3fCZF933HEHtmzZgrfffht9+/bF1VdfjcTERGRlZWHDhg2YP39+QHutHj164De/+Q1Wr14NACG1CgPUeV2WL1+O66+/Htdddx26du2KAwcO4Ntvv8UNN9yADz/80G/5t99+G6+99hrGjx+P1NRUxMbG4vjx4/jiiy9gMpmwcOHCerd566234plnnsHChQuRlpaGvn374ujRo/jyyy9x7bXXBmyzsQwGAx544AH87W9/w4gRI3DNNdfA5XJh3bp16Nq1a9D3oDFefvllHDhwAK+++io2btyIGTNmwGg0Ij09HWvWrMHq1au9VyNfcskleOaZZ3DnnXdi1qxZiIyMRExMDBYsWFDr+m+66SasWrUKH330EQYPHoyZM2d6+/ynp6fjxhtvDKl6KRQRERF46623cP3112PixIm4/vrr0aNHD+zZswdr165F586d8dprrzXZ9iZMmIBly5Zhx44dGDduHLKzs/Hhhx9CURS89tprfu2k5s+fjz179uCVV15BamoqZsyYgR49eqCoqAjp6enYvHkzbrvtNrz66qsN2vagQYPwyiuv4J577sGIESNw9dVXo2/fvigsLMSuXbsQFRXlvYJ7wIABeOuttzB//nwMHjwY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iHnz5omsrKygjzt8+LC4+eabRefOnYVerxedO3cWc+bMEYcPH65zG74a8120c+dOMWXKFBEVFeV9XdLS0kRxcbFYsmSJmDx5sujataswGo2ic+fOYuLEieK9994TiqI06PUgIiLqCCQhhGjGDIeIiIio3Vm8eDGWLFmCZcuWNXu7HaLmkJGRgV69emHu3LlYsWJFSw+nQxo3bhx27NiB0tJShIeHt/RwiKiJaD8jpKWlBZ3jhYiIiNofzslCREREFILy8nK8+uqriIuLw+zZs1t6OETUilVVVQWdv2bFihX44YcfMH36dAYsRERERERtHOdkISIiImqAr776Cnv37sUXX3yB3NxcPPvssw2adJ6IOq5Tp05hxIgRmDZtGvr06QOXy4V9+/Zh69atiImJwXPPPdfSQyQiIiIiorPEkIWIiIioAT7++GOsXLkSnTp1wiOPPII//OEPLT0kImrlOnXqhDlz5mDTpk1IS0uD3W5H586dcdttt+HRRx/1m5CciIiIiIjaJs7JQkRERERERERERERE1Aick4WIiIiIiIiIiIiIiKgRGLIQERERERERERERERE1Qoefk0VRFGRlZSEyMhKSJLX0cIiIiIiIiIiIiIiIqAUJIVBeXo6uXbtCluuuVenwIUtWVhaSk5NbehhERERERERERERERNSKnD59Gt27d69zmQ4fskRGRgJQX6yoqKgWHg0REREREREREREREbWksrIyJCcne/ODunT4kEVrERYVFcWQhYiIiIiIiIiIiIiIAKBBU4xw4nsiIiIiIiIiIiIiIqJGYMhCRERERERERERERETUCAxZiIiIiIiIiIiIiIiIGoEhCxERERERERERERERUSN0+InviYiIiIiIiIiIiKjtcLvdcDqdLT0MaqMMBgN0Ol2TrY8hCxERERERERERERG1ekII5OTkoKSkpKWHQm1cTEwMOnfuDEmSznpdDFmIiIiIiIiIiIiIqNXTApakpCSEhYU1yQly6liEEKiqqkJeXh4AoEuXLme9ToYsRERERERERERERNSqud1ub8ASHx/f0sOhNsxisQAA8vLykJSUdNatwzjxPRERERERERERERG1atocLGFhYS08EmoPtP2oKeb2YchCRERERERERERERG0CW4RRU2jK/YghCxERERERERERERERUSMwZCEiIiIiIiIiIiIiImoEhixERERERERERERERORn3rx5SElJaelhtHoMWYiIiIiIiIiIiIiIWtCKFSsgSZL3j16vR7du3TBv3jxkZma29PCoDvqWHgAREREREREREREREQGPP/44evXqBZvNhu3bt2PFihXYunUrDhw4ALPZ3NLDoyAYshARERERERERERERtQKXXXYZRo8eDQC44447kJCQgKeffhqrV6/GDTfc0MKjo2DYLoyIiIiIiIiIiIiIqBW6+OKLAQDHjx8HADgcDjz22GMYNWoUoqOjER4ejosvvhhpaWl+j8vIyIAkSXj22Wfx+uuvIzU1FSaTCWPGjMGuXbsCtvP5559jyJAhMJvNGDJkCD777LOg46msrMSDDz6I5ORkmEwm9O/fH88++yyEEH7LSZKEBQsW4OOPP8agQYNgsVhw4YUXYv/+/QCA1157DX369IHZbMakSZOQkZFxti9Vi2ElCxERERERERERERFRK6SFD7GxsQCAsrIyLFu2DLNnz8add96J8vJyvPnmm5gxYwZ27tyJ4cOH+z3+vffeQ3l5Oe6++25IkoR//OMfuPbaa3HixAkYDAYAwNq1azFr1iwMGjQIS5cuRWFhIW677TZ0797db11CCFx11VVIS0vD7bffjuHDh2PNmjV46KGHkJmZiX/9619+y2/ZsgWrV6/GfffdBwBYunQprrjiCvzP//wPXnnlFdx7770oLi7GP/7xD8yfPx8bNmxohlew+TFkISIiIiIiIiIiIqI2RwjA6mrpUfiz6AFJavzjS0tLUVBQAJvNhh07dmDJkiUwmUy44oorAKhhS0ZGBoxGo/cxd955JwYMGICXXnoJb775pt/6Tp06haNHj3pDmv79++Pqq6/GmjVrvOv885//jE6dOmHr1q2Ijo4GAEycOBHTp09Hz549vetavXo1NmzYgCeeeAKPPvooAOC+++7D9ddfjxdeeAELFixAamqqd/kjR47g8OHDSElJ8Y797rvvxhNPPIFff/0VkZGRAAC3242lS5ciIyPDu2xbwpCFiIiIiIiIiIiIiNocqwsY+EpLj8LfoXuBMEPjHz916lS//6ekpOCdd97xVpXodDrodDoAgKIoKCkpgaIoGD16NPbu3RuwvhtvvNEbsADV7cdOnDgBAMjOzsaPP/6Ihx9+2BuwAMC0adMwaNAgVFZWem/7+uuvodPpcP/99/tt48EHH8Qnn3yCb775BgsWLPDefskll/iFJueffz4AYNasWd6Axff2EydOtMmQhXOyEBERERERERERERG1Av/+97+xbt06fPLJJ7j88stRUFAAk8nkt8zKlStx3nnnwWw2Iz4+HomJifjqq69QWloasL4ePXr4/V8LXIqLiwEAJ0+eBAD07ds34LH9+/f3+//JkyfRtWtXv4AEAAYOHOi3rtq2rYU4ycnJQW/XxtTWsJKFiIiIiIiIiIiIiNoci16tHGlNLGd5xn3s2LEYPXo0AGDmzJkYP348brrpJhw5cgQRERF45513MG/ePMycORMPPfQQkpKSoNPpsHTpUhw/fjxgfVrVS001J6pvDrVtuyXH1BwYshARERERERERERFRmyNJZ9eaq7XTwpPJkyfj5ZdfxsMPP4xPPvkEvXv3xqeffgrJZ/KXRYsWNWob2pwrR48eDbjvyJEjAcuuX78e5eXlftUshw8f9ltXR8N2YURERERERERERERErdCkSZMwduxYPP/887DZbN4qEN+qjx07dmDbtm2NWn+XLl0wfPhwrFy50q/d2Lp163Dw4EG/ZS+//HK43W68/PLLfrf/61//giRJuOyyyxo1hraOlSxEREREREREREREjaAIgSoXoAggwgDIPpUFRE3loYcewvXXX48VK1bgiiuuwKeffoprrrkGv/nNb5Ceno5XX30VgwYNQkVFRaPWv3TpUvzmN7/B+PHjMX/+fBQVFeGll17C4MGD/dZ55ZVXYvLkyXj00UeRkZGBYcOGYe3atVi1ahUWLlyI1NTUpnrKbQorWYiIiIiIiIiIiIgayO4WKLYLnK5QcLBYweFiBUdKFPxaoiDfKuBU2ua8EtR6XXvttUhNTcWzzz6LW2+9FX//+9/x008/4f7778eaNWvwzjvveOdxaYxLL70UH3/8MdxuNx555BF8+umnWL58ecA6ZVnG6tWrsXDhQnz55ZdYuHAhDh48iGeeeQb//Oc/z/ZptlmSaKuzyTSRsrIyREdHo7S0FFFRUS09HCIiIiIiIiIiImpFtGqVSidQ5lBQ6QIcbkAAMOnUPwBQ5QJcijrxebxJQqxJQpiBlS1NxWazIT09Hb169YLZbG7p4VAbV9/+FEpuwHZhRERERERERERERD7sbjVYqXAKlNgF7G7ALQC9rIYqYXr4TToOAFFGdZ4Mqxs4UymQaxWIMQFxJhlRRrYSI2qvGLIQERERERERERFRh+ZbrVLqqVZxutX7jDog3ADo5fpDEkmSEKZXQxi7W6DABhTaFEQYgASzjGgjYNQxbCFqTxiyEBERERERERERUYdTX7VKeJBqlVCYdBJMOsCtCFS6gONlCsI8rcRiTFLQahgiansYshAREREREREREVG75xYC1iaoVgmVTpaCtxIzAnFmthIjausYshAREREREREREVG7ZHMLVDnVapVSh4DNDShNWK0SCt9WYg63QKEdKLAriGQrMaI2jSELERERERERERERtQtuz9wqVT7VKg43IEGtVok0qJUlLc2ok2D0bSVWqsBiUFuJxbKVGFGbwpCFiIiIiIiIiIiI2iQhBOwKWk21SqhqthLL9GklFm+WEWkEdK107ESkYshCREREREREREREbYZbqC3Aqlytu1olFDVbiRXZgUKbgggDkGBRW4mZ2EqMqFViyEJEREREREREREStlhACdrcaqpQ7BcraWLVKqHxbiVW5gPQyBWa92kosxiS1q+dK1B4wZCEiIiIiIiIiIqJWRQsYKj3VKlVOwKEAkqSGKm2xWiVUOllCpKeVmE1rJVYlEG1SW4lFsZUYUavAkIWIiIiIiIiIiIhaVIOqVQwds4JDkiRY9IDF00qs2A4U2xSEs5UYUavAkIWIiIiIiIiojRNCQBGALHXME5BE1Db5VquUOBRYnYBTAdCBqlVC5W0l5pmX5kSZArMOiDdLiGUrMaIWwZCFiIiIiIiIqBUQQsAt1Ku2FQHvv2v+rQgBl1BPRLoUAZei3ieghizhegnhBgkmnXqS0iTzhBsRtQ5atUqlC6hwCpQ61P9r1SrmDlytEiqd5N9KLKtSIK9KIMqoVrdEMaAiOmcYshARERERERE1Ed+gJDAc8Q9KnArgEmpIogUlCtT7hWc54fm/BPXfGknyVK1A/VuWABnqegpsAnlWAQmAQQaMOiBCL8FikGD2BC9GBi9EdI64PNUqVS6gxK7A6lLnVpEl9fjEapWz49tKzKkIlDqAYrunlZhZRoyJrcTaghUrVuC2227Drl27MHr06JYejtfBgwfx0UcfYd68eUhJSWnw43788Uc8++yz2LRpE/Ly8hAeHo6RI0dizpw5uPXWW6HT6Zpv0C2AIQsRERERERGRDy0oCR6OwOc+NShxa3/XCEq0sKS+oESu8W+d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vH/o7e1VNBrNO4fE9ReTbzrG72i4/mIyjHcM79y5U6lUSqeddpoWLVqUe0jZAGbRokX67W9/m/cc3AcehcGc9F//9V9Gkrn33ntzbX19feaoo44yp5xySq6tvb3dbN68Oe/Yu+++20gy//3f/51re/HFF43H4zE33HBDri0ej5vy8nJzwQUX5B1/2WWXmVAoZDo6Oib7ZWEemY4xvG/fvmHn7erqMkuWLDGVlZUmkUhM5kvCPDKR8TvUvffeaySZ1tbWEbevWLHCnHDCCSadTufabrnlFmNZltm0adPEXwjmpekYvx0dHXnj1hhjksmkOe2004zf7zevvPLKxF8I5qWJjN9XXnnFLF682NTX14963R3A9RdTYTrGL9dfTJWJjN+9e/cOe77W1lZTVFRkzjjjjLx2rr+YCtMxfrn+YiqNdwxv3rzZPPHEE8Mekszb3vY288QTT5jdu3cbY7gPfDiELHPYe97zHuP1es1nPvMZ8/Wvf92ceuqpxuv1mv/7f/9vbp+zzjrLHJy1Ddxkrq6uNl/84hfN/fffbxobG019ff2wm9IPPfSQkWQuuugi881vftNcfvnlRpK58847p+U1Ym6b6jF86623mhNOOMHccsst5hvf+Ia57bbbTFNTk7Esy3z3u9+dtteJuWm847ezs9Pccccd5o477jBvfetbjSRz3XXXmTvuuMM8+OCDefv+4he/MJZlmXPOOcd84xvfMNdcc42xbdt89KMfnZbXiLlrqsfvt7/9bbNkyRJzww03mIcffth84QtfMMcdd5yRZL7whS9M2+vE3DTe8XvCCScYSeazn/2sefTRR/Mev/3tb/P25fqLqTLV45frL6bSeMdvdXW1ee9732vuuece841vfMN85jOfMeXl5SYQCJg//vGPefty/cVUmerxy/UXU228Y3gkkswnPvGJYe3cBx4dIcsc1tvba66//npTW1trHMcxJ598svn1r3+dt89o/3Pt2rXLXHTRRaa4uNhEIhFzwQUXmG3bto14nm984xtm+fLlxu/3myVLlpj777/fuK47Ja8J88tUj+Hf/va35s1vfrOpra01Pp/PlJaWmre85S3mqaeemtLXhflhvOO3tbXVSBrx0dTUNOw8TzzxhFm5cqVxHMcsWLDA3HLLLSaZTE7lS8M8MNXj9y9/+Yt5+9vfbhoaGozf7zeRSMScfvrp5vHHH5+Ol4c5brzjd7SxK8mcddZZw87D9RdTYarHL9dfTKXxjt9bb73VrF692pSVlRmv12vq6+vNpZdeav72t7+NeB6uv5gKUz1+uf5iqk3kHtrBRgtZjOE+8GgsY4yZwGpjAAAAAAAAAAAA8xKF7wEAAAAAAAAAAMaBkAUAAAAAAAAAAGAcCFkAAAAAAAAAAADGgZAFAAAAAAAAAABgHAhZAAAAAAAAAAAAxoGQBQAAAAAAAAAAYBwIWQAAAAAAAAAAAMaBkAUAAAAAAAAAAGAcCFkAAAAAAAAAAADGgZAFAAAAADCp2traZFmWHnnkkUJ3BQAAAJhShCwAAADALPbII4/IsqzcIxAIaNmyZbrqqqu0d+/eQndvwjZt2qTPf/7zamtrK3RXDuuDH/xg3n8Lx3G0bNkyfe5zn1NfX1+huwcAAABgCngL3QEAAAAAE3f77bdr0aJF6uvr0x/+8Ad97Wtf05NPPqkNGzYoFAoVunvjtmnTJt122206++yz1dzcXOjuHJbjOPrf//t/S5Ki0ah+9rOf6Y477tCOHTv02GOPFbh3AAAAACYbIQsAAAAwB5x33nlavXq1JOkjH/mIKioqdN999+lnP/uZ3vve907ouePx+KwOaqaT1+vVZZddlvv5yiuv1Kmnnqp///d/13333aeampoC9g4AAADAZGO5MAAAAGAOOueccyRJra2tubbvfve7WrVqlYLBoMrLy3XppZdq165decedffbZOu644/Tcc8/pzDPPVCgU0s033yxJ6uvr0+c//3ktW7ZMgUBAdXV1eve7360dO3bkjnddV1/+8pd17LHHKhAIqKamRldccYVee+21vPM0Nzfrggsu0B/+8AetWbNGgUBAixcv1ne+853cPo888oje8573SJLe+MY35pbh+v3vfy9J+tnPfqbzzz9f9fX1chxHS5Ys0R133KFMJjPs9/HQQw9p8eLFCgaDWrNmjZ555hmdffbZOvvss/P2SyQSuvXWW3XUUUfJcRw1Njbqs5/9rBKJxBj/C2RZlqXTTz9dxhi1tLTkbfvVr36lM844Q+FwWEVFRTr//PO1cePGvH0++MEPKhKJaOfOnbrgggsUiUTU0NCghx56SJK0fv16nXPOOQqHw2pqatL3vve9YX1oaWnRe97zHpWXlysUCun1r3+9fvnLX+a27927V16vV7fddtuwY7ds2SLLsvSVr3xFknTgwAFdf/31Ov744xWJRFRcXKzzzjtPf/3rX8f1+wEAAABmO0IWAAAAYA4aCD4qKiokSXfeeacuv/xyLV26VPfdd58+9alP6amnntKZZ56pzs7OvGM7Ojp03nnnaeXKlfryl7+sN77xjcpkMrrgggt02223adWqVfrSl76kT37yk4pGo9qwYUPu2CuuuEKf+cxndNppp+mBBx7QunXr9Nhjj2nt2rVKpVJ559m+fbsuuugivfnNb9aXvvQllZWV6YMf/GAuaDjzzDN1zTXXSJJuvvlmPfroo3r00Ud19NFHS8qGMJFIRNdee60eeOABrVq1Sp/73Od044035p3na1/7mq666iotWLBAX/ziF3XGGWfowgsv1EsvvZS3n+u6esc73qF//ud/1tvf/nY9+OCDuvDCC3X//ffrkksuGfd/i4F6MmVlZbm2Rx99VOeff74ikYjuuece/eM//qM2bdqk008/fVj9mUwmo/POO0+NjY364he/qObmZl111VV65JFH9Na3vlWrV6/WPffco6KiIl1++eV5wdrevXt16qmn6je/+Y2uvPJK3Xnnnerr69M73vEOPfHEE5KkmpoanXXWWXr88ceH9f0HP/iBPB5PLuxqaWnRT3/6U11wwQW677779JnPfEbr16/XWWedpd27d4/7dwQAAADMWgYAAADArPXtb3/bSDK/+93vzP79+82uXbvM97//fVNRUWGCwaB56aWXTFtbm/F4PObOO+/MO3b9+vXG6/XmtZ911llGknn44Yfz9v3Xf/1XI8ncd999w/rguq4xxphnnnnGSDKPPfZY3vZf//rXw9qbmpqMJPP//t//y7Xt27fPOI5jrrvuulzbD3/4QyPJPP3008POG4/Hh7VdccUVJhQKmb6+PmOMMYlEwlRUVJiTTz7ZpFKp3H6PPPKIkWTOOuusXNujjz5qbNs2zzzzTN5zPvzww0aS+eMf/zjsfEN94AMfMOFw2Ozfv9/s37/fbN++3fzzP/+zsSzLHHfccbnfU3d3tyktLTUf/ehH847fs2ePKSkpyWv/wAc+YCSZL3zhC7m21157zQSDQWNZlvn+97+fa3/xxReNJHPrrbfm2j71qU8ZSXmvqbu72yxatMg0NzebTCZjjDHm61//upFk1q9fn9enY445xpxzzjm5n/v6+nLHDGhtbTWO45jbb789r02S+fa3v33I3xkAAAAw2zGTBQAAAJgD3vSmN6mqqkqNjY269NJLFYlE9MQTT6ihoUE/+clP5LquLr74Yr366qu5R21trZYuXaqnn34677kcx9G6devy2n784x+rsrJSV1999bBzW5YlSfrhD3+okpISvfnNb847z6pVqxSJRIad55hjjtEZZ5yR+7mqqkrLly8ftqzWaILBYO777u5uvfrqqzrjjDMUj8f14osvSpL+8pe/qKOjQx/96Efl9Q6WpHzf+96XN7NkoP9HH320VqxYkdf/gaXXDu7/SGKxmKqqqlRVVaWjjjpK119/vU477TT97Gc/y/2e/uM//kOdnZ1673vfm3cej8ejU045ZcTzfOQjH8l9X1paquXLlyscDuviiy/OtS9fvlylpaV5v78nn3xSa9as0emnn55ri0Qi+tjHPqa2tjZt2rRJkvTud79bXq9XP/jBD3L7bdiwQZs2bcqbxeM4jmw7+2dkJpNRR0eHIpGIli9frueff/6wvx8AAABgrqHwPQAAADAHPPTQQ1q2bJm8Xq9qamq0fPny3M3wbdu2yRijpUuXjnisz+fL+7mhoUF+vz+vbceOHVq+fHleUHGwbdu2KRqNqrq6esTt+/bty/t54cKFw/YpKysbVr9lNBs3btQtt9yi//zP/1RXV1fetmg0Kklqb2+XJB111FF5271er5qbm4f1f/Pmzaqqqjqi/o8kEAjoF7/4hSTppZde0he/+EXt27cvLxDatm2bpMG6OQcrLi4e9pwH96mkpEQLFizIBTdD24f+/trb23XKKacMO8fAkmvt7e067rjjVFlZqXPPPVePP/647rjjDknZpcK8Xq/e/e53545zXVcPPPCAvvrVr6q1tTWv/s3A0nQAAADAfELIAgAAAMwBa9as0erVq0fc5rquLMvSr371K3k8nmHbI5FI3s9DA4GxcF1X1dXVeuyxx0bcfnBQMFJfJMkYc9hzdXZ26qyzzlJxcbFuv/12LVmyRIFAQM8//7xuuOEGua47rv4ff/zxuu+++0bc3tjYeNjn8Hg8etOb3pT7ee3atVqxYoWuuOIK/fznP8+dR8rWZamtrR32HAcHWaP9niby+xvJpZdeqnXr1umFF17QypUr9fjjj+vcc89VZWVlbp8vfOEL+sd//Ed96EMf0h133KHy8nLZtq1PfepT4/qdAwAAALMdIQsAAAAwxy1ZskTGGC1atEjLli0b93P86U9/UiqVGjbzZeg+v/vd73TaaaeNO6g52MEzNQb8/ve/V0dHh37yk5/ozDPPzLUPLfouSU1NTZKk7du3641vfGOuPZ1Oq62tTa973evy+v/Xv/5V55577qjnHau6ujp9+tOf1m233ab/+q//0utf/3otWbJEklRdXZ0XyEyFpqYmbdmyZVj7wHJqA78fSbrwwgt1xRVX5JYM27p1q2666aa84370ox/pjW98o771rW/ltXd2duaFMQAAAMB8QU0WAAAAYI5797vfLY/Ho9tuu23YLAdjjDo6Og77HH/3d3+nV199VV/5yleGbRt4zosvvliZTCa33NRQ6XRanZ2dY+57OByWpGHHDsziGPp6ksmkvvrVr+btt3r1alVUVOib3/ym0ul0rv2xxx4btizZxRdfrJdfflnf/OY3h/Wjt7dXsVhszP2XpKuvvlqhUEh33323pOzsluLiYn3hC19QKpUatv/+/fvHdZ6RvO1tb9Of//xnPfvss7m2WCymb3zjG2pubtYxxxyTay8tLdXatWv1+OOP6/vf/778fr8uvPDCvOfzeDzDxtAPf/hDvfzyy5PWZwAAAGA2YSYLAAAAMMctWbJE//RP/6SbbrpJbW1tuvDCC1VUVKTW1lY98cQT+tjHPqbrr7/+kM9x+eWX6zvf+Y6uvfZa/fnPf9YZZ5yhWCym3/3ud7ryyiv1zne+U2eddZauuOIK3XXXXXrhhRf0lre8RT6fT9u2bdMPf/hDPfDAA7rooovG1PeVK1fK4/HonnvuUTQaleM4Ouecc3TqqaeqrKxMH/jAB3TNNdfIsiw9+uijwwIAv9+vz3/+87r66qt1zjnn6OKLL1ZbW5seeeQRLVmyJG/Gyvvf/349/vjj+vjHP66nn35ap512mjKZjF588UU9/vjj+s1vfjPqkmyHUlFRoXXr1umrX/2qNm/erKOPPlpf+9rX9P73v18nnXSSLr30UlVVVWnnzp365S9/qdNOO23EMGs8brzxRv37v/+7zjvvPF1zzTUqLy/Xv/3bv6m1tVU//vGPc3V7BlxyySW67LLL9NWvflVr165VaWlp3vYLLrhAt99+u9atW6dTTz1V69ev12OPPabFixdPSn8BAACA2YaQBQAAAJgHbrzxRi1btkz333+/brvtNknZGiNvectb9I53vOOwx3s8Hj355JO688479b3vfU8//vGPVVFRodNPP13HH398br+HH35Yq1at0te//nXdfPPNuQLzl112mU477bQx97u2tlYPP/yw7rrrLn34wx9WJpPR008/rbPPPlv/5//8H1133XW65ZZbVFZWpssuu0znnnuu1q5dm/ccV111lYwx+tKXvqTrr79eJ5xwgn7+85/rmmuuUSAQyO1n27Z++tOf6v7779d3vvMdPfHEEwqFQlq8eLE++clPjnupNUm69tpr9fDDD+uee+7RI488ov/1v/6X6uvrdffdd+vee+9VIpFQQ0ODzjjjDK1bt27c5zlYTU2N/r//7//TDTfcoAcffFB9fX163etep1/84hc6//zzh+3/jne8Q8FgUN3d3brkkkuGbb/55psVi8X0ve99Tz/4wQ900kkn6Ze//KVuvPHGSeszAAAAMJtYZrxVEQEAAABglnJdV1VVVXr3u9894vJgAAAAAHAkqMkCAAAAYE7r6+sbtozYd77zHR04cEBnn312YToFAAAAYE5gJgsAAACAOe33v/+9Pv3pT+s973mPKioq9Pzzz+tb3/qWjj76aD333HPy+/2F7iIAAACAWYqaLAAAAADmtObmZjU2Nupf/uVfdODAAZWXl+vyyy/X3XffTcACAAAAYEKYyQIAAAAAAAAAADAO1GQBAAAAAAAAAAAYB0IWAAAAAAAAAACAcSBkAQAAAAAAAAAAGAdCFgAAAAAAAAAAgHEgZAEAAAAAAAAAABgHQhYAAAAAAAAAAIBxIGQBAAAAAAAAAAAYB0IWAAAAAAAAAACAcfj/AUwPPXJrutJKAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig, ax = plt.subplots()\n", "\n", @@ -570,28 +575,7 @@ " title=\"Accuracy as a function of percentage of removed best data points\",\n", " ax=ax,\n", " )\n", - "\n", - "_ = plt.legend()" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "1f95fb06", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABlkAAALGCAYAAADGEfdTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5wU9d0H8M/M9uudenBw9CIdC0iTosaCYgmiglijREmMTzQ+ETAaNGpii48FBWIvUcFKkaMpHVSQIuWOcr3X7fN7/pidvd3bvbLHHdc+79eLF7A7O/Pb3dnZu/nM9/uThBACREREREREREREREREFBK5pQdARERERERERERERETUFjFkISIiIiIiIiIiIiIiagSGLERERERERERERERERI3AkIWIiIiIiIiIiIiIiKgRGLIQERERERERERERERE1AkMWIiIiIiIiIiIiIiKiRmDIQkRERERERERERERE1AgMWYiIiIiIiIiIiIiIiBqBIQsREREREREREREREVEjMGQhIiIiopA4nU4sWrQIffv2hclkgiRJ+Pzzz1t6WI0yadIkSJLU0sM4a0ePHsU111yDzp07Q5IkxMTEtPSQqI16//33MWLECERGRkKSJCxcuLClh9ShpKSkICUlpcHLS5KESZMmNdt4WoOO8BxDtXjxYkiShI0bN7b0UIiIiAgMWYiIiDqsJ598EpIkQZIkHDlypKWHQ23Ic889h8cffxxdu3bFn/70JyxatAgDBgxo6WEFNW/ePEiShIyMjJYeSrNxu92YOXMmvv76a1xxxRVYtGgRHn744ZYeVpvU0U/mbtu2DXPmzEF5eTl+97vfYdGiRbj00ktbeljURrTmE/8ZGRmQJAnz5s1r6aG0Khs3boQkSVi8eHFLD4WIiKhN07f0AIiIiOjcE0Jg2bJlkCQJQgi88cYbePbZZ1t6WNRGfPnll4iIiMC6detgNBpbejhn5T//+Q+qqqpaehhnJT09HQcPHsSdd96J119/vaWHQ23YV199BSEE/vOf/+Ciiy5q6eEQUS0WLFiA3/72t+jRo0dLD4WIiIjAShYiIqIOae3atcjIyMDcuXPRuXNnrFy5Eg6Ho6WHRW1EVlYW4uPj23zAAgA9evRotVU4DZWVlQUA6Nq1awuPhNo67ktEbUNCQgIGDBiAsLCwlh4KERERgSELERFRh/TGG28AAO68807MmTMHBQUF+Oyzz2pd/syZM7j//vvRt29fWCwWxMXFYezYsfjb3/7W6GXrassTrMWTb6uPX3/9FTfeeCOSkpIgy7K3NcmePXvwwAMPYNiwYYiLi4PZbEbfvn3x4IMPori4uNbn9+GHH+KSSy7xPiYlJQWzZ8/G7t27AQCvvfYaJEnCkiVLgj4+JycHBoMBQ4cOrXUbvlasWIFZs2ahd+/esFgsiIqKwrhx4/DOO+8EXf7EiRO466670KdPH+9rOnToUNxzzz0oLCxs0DY///xz3HzzzejXrx/Cw8MRHh6OUaNG4cUXX4SiKA1ah/a+pKen4+TJk952c9r8AfW1HQk218CKFSsgSRJWrFiBtLQ0TJo0CZGRkYiKisJvfvMbHDp0KOi6qqqq8PTTT2P06NGIjIxEREQEBg4ciPvvvx+5ubkA1H1s5cqVAIBevXoFjBeofU4WRVHw6quvYsyYMYiIiEB4eDjGjBmD//u//wv6emn7c0FBAe666y506dIFJpMJgwcPxvLly+t5ZQPt2bMHs2bNQlJSEkwmE3r27Il7770X2dnZAdudOHEiAGDJkiXe51hf6xffz9Phw4cxc+ZMxMXFITw8HOPHj8fatWtrfez777+PyZMnIyYmBmazGQMHDsQTTzwBu91e6+uSk5ODO+64A926dYNOp8OKFSu8y+zcuRM33ngjunXrBpPJhC5dumD69On46KOPAta3Y8cOXHfddejcuTOMRiOSk5Nx9913e8MBX9p763K58Pe//907h1BycjL+/Oc/+wXL2n4IAJs2bfK+jjVfy1A/uwCwa9cuTJ8+3btfT506Fdu2bauztdLhw4cxb948JCcnw2g0olOnTrjppptCbu3Y0P1Ye/7avur7eamv1Z7v83jvvfdw/vnnIyIiwu9zVlVVhaVLl2L48OEIDw9HREQELrzwQrz//vsB6/M9juzevRuXXnopoqOjERsbi1mzZuH06dMA1OPib3/7WyQmJsJisWDy5Mn46aefgo4xOzsb9913H1JSUmA0GpGYmIhrr70We/bs8VvuqaeegiRJeOGFF4KuJysrC3q9HqNHj/a73eVy4ZVXXsEFF1yAqKgohIWFYcSIEXj55ZeDHi+EEHj55ZcxePBgmM1mdOvWDQsWLEBpaWmdr3VdsrKycMsttyApKQkWiwWjRo3Ce++9V+vya9asweWXX46EhASYTCakpqbioYceQklJScCyP//8M2bPno2UlBSYTCYkJiZi5MiRWLhwIZxOJwD1+K59R06ePNnvM9QQDocDf/vb35CamgqTyYRevXrhf//3f4MeV7Tn+/jjj2PcuHHe40HXrl1x00034eDBg37LLl68GL169QIArFy50m9s2rHI4XDg5ZdfxuWXX46ePXvCZDIhLi4OU6dOxTfffNOg5+C7Pe0zsXLlSowYMQIWiwVJSUmYP38+cnJygj7u6NGjuPXWW9GtWzfv87n11ltx9OjROrfhK5Tvonnz5mHy5MkA/L8/fNfrcDjw4osvYuTIkYiNjUVYWBhSUlJw9dVXY/369SG9LkRERO0Z24URERF1MLm5uVi9ejX69euHiy66CFFRUXjuuefw+uuv48YbbwxYfvfu3ZgxYwaKioowYcIEXHvttaiqqsLBgwexePFi/PWvf23Uso11/PhxnH/++ejXrx/mzJkDq9WKqKgoAGp49Nlnn2HixImYOnUqFEXBnj178M9//hPffPMNduzYgcjISO+6hBC47bbbsHLlSiQkJODaa69FYmIizpw5g7S0NPTv3x+jR4/GnDlz8D//8z9488038b//+7/Q6XR+Y3rrrbfgcrlw9913N+g5/O53v8PgwYMxYcIEdOnSBYWFhfj6669xyy234MiRI36BVHZ2NsaMGYOysjJcfvnlmDVrFmw2G9LT0/H2229jwYIFiI+Pr3ebDz/8MGRZxvnnn49u3bqhtLQUGzZswAMPPIBdu3bh7bffrncdM2fOREpKCp5//nkA8E6I3RSTrH/55ZdYtWoVLrvsMtxzzz04ePAgvv76a+zatQsHDx5EQkKCd9ni4mLvCdX+/ftj/vz5MBqNOH78OJYvX45rr70WnTp1wqJFi/D555/jp59+wgMPPOAdZ0PGe8stt+C9995DcnIy7rjjDkiShM8++wz33nsvtm7dinfffTfgMSUlJRg3bhyMRiOuu+462O12fPzxx5g/fz5kWcbcuXMb/FrMmjULQghcd9116NmzJ/bs2YP/+7//w6pVq7B161bvCcNFixYhIyMDK1euxMSJE73BZUPnFUlPT8eFF16IoUOH4u6770Z2djY+/PBDXHbZZXjvvfcCjgnz58/H8uXL0b17d8yaNQsxMTHYvn07/vrXv+K7777DunXroNf7/4pRVFSECy64ABEREbj22mshyzI6deoEQP3M/u53v4NOp8NVV12Fvn37Ii8vD7t378Yrr7yCG264wbuet956C3fddRdMJhOuuuoqJCcn4+jRo1i2bBm++OILbN++PWjrnJtuuglbtmzBZZddhqioKHz99df4xz/+gby8PO9Jx+HDh2PRokVYsmQJevbs6Tdvg+9rGcpnFwA2b96M6dOnw+1249prr0Vqair279+PyZMnY8qUKUHfk2+//RbXXnstnE4nrrzySvTp0wdnzpzBp59+iq+++gppaWkYOXJk/W8uGr4fa8+/sZ8XQJ2rad26dbjyyisxefJkb2BQUlKCKVOmYN++fRg5ciTmz58PRVGwZs0a3HTTTfjll1/wxBNPBKxv165dePrppzFx4kTceeed2L9/Pz799FMcOHAAq1atwvjx4zFgwADceuutOHnyJD799FNMmzYNJ06cQEREhHc96enpGD9+PLKysjBlyhTMnj0bp0+fxscff4yvvvoK//3vf3HFFVd4X69HH30U//nPf/DAAw8EjOmdd96B2+322z+092nNmjXo378/brrpJpjNZqSlpeH3v/89duzYEXB8XbhwIV588UV06dIFd911FwwGA1atWoUdO3bA4XCEXCVYXFyMiy66CDExMbjttttQUlKCjz76CHPmzEFmZiYeeughv+WXLFmCxYsXIy4uDldccQWSkpLw888/49lnn8XXX3+Nbdu2eb9Xf/75Z5x//vmQJAlXXXUVevXqhbKyMhw7dgyvvPIKnnjiCRgMBixcuBCff/45Nm3ahLlz5wYE6nURQuCGG27AqlWrkJqaigULFsDhcOCtt97C/v37gz5m8+bNeOqppzB58mTMmjULEREROHr0KD755BOsXr0a33//PYYNGwZA/QyXlJTghRdewLBhwzBz5kzveoYPHw5APU498MADuOiiizBt2jQkJiYiOzsbX3zxBS6//HK88cYbuOOOOxr+pgD417/+hbVr1+LGG2/EpZdeiq1bt2L58uXYuHEjduzYgcTERO+yu3btwtSpU1FeXo6rrroKgwYNwuHDh/HOO+9g1apVWL9+PcaMGdOg7Tb0u0h7HWp+fwDwvn/z5s3D+++/jyFDhuDWW2+FxWJBVlYWtm7dim+//RZTp04N6TUhIiJqtwQRERF1KEuXLhUAxN///nfvbaNGjRKSJImjR4/6LWu320VKSooAIN59992AdZ0+fbpRywohBAAxceLEoGOcO3euACDS09O9t6WnpwsAAoB45JFHgj4uIyNDuFyugNuXLVsmAIinnnrK7/bXXntNABBjxowRJSUlfve5XC6RlZXl/f99990nAIgvvvjCbzlFUUSvXr1EWFhYwDpqc+zYsYDb7Ha7mDJlitDr9eLMmTPe21988UUBQDz//PMBj6moqBBVVVWN3qbb7Ra33nqrACC2b9/eoPUIIUTPnj1Fz549A25PS0sTAMSiRYsa/Ljly5cLAEKn04n169f73ffwww8LAOLpp5/2u3327NkCgLjnnnuE2+32u6+8vNzvfQi2L/maOHGiqPkj8XvvvScAiBEjRojy8nLv7RUVFWLUqFFB93Ft37z99tv99sFffvlF6HQ6MXDgwKDbr6m8vFzExcUJWZbF5s2b/e576qmnBAAxbdo0v9vre92D8f08/elPf/K7b9euXUKv14uYmBhRWlrqvV17r6655pqA/W7RokVB91NtG7fccotwOp1+9/3yyy9Cr9eL2NhYceDAgYAx+h4zjhw5IgwGg0hNTfX7fAghxPr164Usy2LmzJl+t2vv7ciRI0VhYaH39oqKCpGamipkWRbZ2dkB463tuCREaJ9dt9st+vTpIwCIr7/+2u8x//d//+d9bdLS0ry3FxUViZiYGBEfHy9++eUXv8fs379fhIeHixEjRtQ6Pl+N2Y/r+7wEo733YWFhYu/evQH3a+us+Tm2Wq1ixowZQpIksW/fPu/t2v4MQLzzzjt+j5k/f74AIGJjY8UTTzzhd9/jjz8edB+cPn26ABCw/Pfffy90Op2Ii4vze3205ffv3x/wXAYNGiSMRqMoKCgIeP4LFizw++y7XC7veD///HO/7QIQqampfvul1WoVF1xwgQAQ9PhaG+21uv766/2OhydOnBCxsbHCYDCI48ePe2/fsGGDACAuvPBCUVxc7Lcu7TO+cOFC721//OMfA56DpqioyG+b2mvhu083xLvvvisAiAsuuEBYrVbv7YWFhaJ3795BP5e5ubmirKwsYF0//vijCA8PF5deeqnf7doxb+7cuUHHYLPZAn5OEUKIkpISMXjwYBEbG9vg71vtdTAYDAGfiYULFwoAYv78+d7bFEURAwYMCLrPf/DBBwKA6N+/f4Ne61C/i+r6/igpKRGSJIlRo0YF/dnK93NARETU0TFkISIi6kAURfGeXPQ9GfjSSy8JAOJ//ud//Jb/5JNPBABx1VVX1bvuUJYVovEhS6dOnYTNZmvQNjSKooioqCgxefJkv9uHDBkiAAQ9MVjTgQMHBABxxRVX+N3+7bffCgDitttuC2lMwfz3v/8VAMTKlSu9t2khy2uvvXbW6w9mz549AoBYsmRJgx/THCHLnDlzApY/ceKEACBmzZrlvS03N1fIsiy6dOkiKioq6h1rY0KWqVOnCgBizZo1AcuvX79eAAjYl7STzL6hhGbChAkCgN+J3Nq88847AoCYPXt2wH1Op9MbZJ48edJ7+9mELNHR0UFPVGqv24oVK7y3DR8+XOj1+oATs0KoJ5Tj4+PFmDFj/G4HIIxGo8jNzQ14zIIFCwQA8c9//rPe8WonJr/88sug98+cOVPodDq/56K9t+vWrQtY/rHHHgsamtYXstQm2Gd3y5YtQfcVIdQApl+/fgEnSZ9//nkBQLz88stBt6O9DjUDmGAasx+fTcjie2JeU1BQIHQ6nRg9enTQx/74448CgHjooYe8t2n78/jx4wOW37RpkwAgUlJSAk76ZmRkCABi3rx53ttOnz4tAIgePXoIh8MRsL6bb7454H3TTvgHCx+1kFHjdrtFXFyc6Ny5c0CIKIQQxcXFQpIkcf3113tvu+OOOwQA8dZbbwUsrz33UEMWnU4nTpw4EXCf9t4sXrzYe9vMmTMFgKDBphDq5zwxMdH7fy1kCbYf1ba9UEMWbV/dsGFDwH3ad0Qon8srr7xSmEwmv/e8vpClLs8995wAIDZt2tSg5bXXwTdI0ZSUlIjo6GhhNpu9P8ts3brVG3wFM378+IDt1xWyhPJdVNf3R2lpqQAgLrroIqEoSkOeOhERUYfFdmFEREQdyIYNG3D8+HHMmDED3bp1895+00034cEHH8SKFSu8rT8AYPv27QCAyy67rN51h7Ls2Rg2bBhMJlPQ+5xOJ1577TV88MEHOHjwIEpLS/364WdmZnr/XVlZiQMHDqBTp04YMWJEvdvVWgR98803OH36NJKTkwEAr7/+OgDgnnvuafBzOHXqFJ5++ml89913OHXqFKxWq9/9vuO86qqr8Je//AX33Xcf1qxZgxkzZmDcuHEYNGhQg3vdA0BhYSGeeeYZfP311zhx4gQqKytr3WZLqDnHAQDva+w7n86uXbugKAomTJiA8PDwZhnL3r17Icty0JZbEydOhE6nw759+wLu69u3r7fFji/f5+Hbxqi2bQMI2kpKr9djwoQJyMjIwL59+4K2xgrVyJEj/VroaSZNmoSVK1di3759mDt3LqqqqvDTTz8hISHB2y6uJpPJFHQOnZSUFCQlJQXcHsoxY9u2bQDU+VJ27doVcH9eXh7cbjd+/fVXjBo1yu++hu5bDRHKZ1fbR8aPHx+wHlmWcdFFF+HXX3/1u117nj/99FPQeXW05Q8dOoRBgwbVOdbG7seNNXbs2IDbdu3aBbfbXes8Qdp8HsH2m2DvW9euXQGoLZ5qtm3UvtPOnDnjvU17fhdffLH3e83XlClT8M4772Dfvn249dZbAQDXXHMNoqOj8e677+Kpp57ybkeb38m3Vdivv/6KoqIi9O3bN2jLMwCwWCx+z0/7jGtzKfkaP358wPNqiB49enhbCPqaNGkSlixZ4vc+b9u2DQaDAR9//DE+/vjjgMc4HA7k5+ejsLAQ8fHxuPHGG/HCCy9g5syZuO666zB16lSMGzcOqampIY+zNtq+GuyzUlfrw6+++gqvvvoqdu/ejYKCArhcLr/7CwoK0KVLlwaP45dffsEzzzyDzZs3Izs7Gzabze/+UL8ng73H0dHRGD58ODZt2oRDhw5h+PDhdR73tdu3bt2Kffv2YcKECfVutym+iwAgKioKV155Jb744gsMHz4cs2bNwsUXX4zzzz8fYWFh9T6eiIioI2HIQkRE1IFogYDvSSIAiIuLw5VXXon//ve/WLVqFa677joA8E6A6xvI1CaUZc9G586da73vxhtvxGeffYbevXvj6quvRufOnb2BzPPPP+83gW5jxnvvvfdi8+bNWLZsGZYsWYKcnBysXr0aw4cPD3qCMZgTJ05g7NixKC4uxsUXX4zp06cjOjoaOp3OO7eG7zh79uyJnTt3YvHixfj222/x6aefAlBPlvzpT3/C/fffX+82S0pKMGbMGKSnp2Ps2LG49dZbERcXB71e7+1TX9vkwudKsHkftLk93G6397ZzsZ+VlpYiLi4u6LwIer0eCQkJyMvLC7ivtrkrgj2PurYNoNYTg9rtwSanbgxtbpSatM+ZNp7i4mIIIZCfn++d3LqhavvMhvJeFhYWAgCeeeaZOperqKgIuK2h+1Z9Qv3saq9dba9xsNu15/nGG2/UOZZgz7Omxu7HjRXsfdaez65du4KGY5pgzyc6OjrgNu19q+s+LbgBGvd5slgsuOGGG/DGG29g7dq1uOyyy+BwOPD+++8jMTHRLxTUnt/Ro0fr/Fz4Pr+69gvtfQlVQz/H2phdLle9n+OKigrEx8dj7Nix2LJlC5588kl88skn3vll+vfvj0WLFmH27Nkhj7cmbV8NFoTVdvx44YUXsHDhQsTGxmLatGno0aMHwsLCIEmSd26hUL7Xtm/fjilTpsDlcuGSSy7BVVddhaioKMiyjB9//BGrVq0K+Xuyoe9LUx/3m+K7SPPhhx/i6aefxnvvvYdFixYBAMxmM6677jo8++yztT5HIiKijoYhCxERUQeRn5+Pzz//HAAwe/bsWk+MvP76696QRftFvSFXb4ayLABIkhRw1ammrhMJtVVv7N69G5999hmmTp2Kb775xm/ybUVR8I9//OOsxgvAO6H6m2++icceeyzkCe8B4J///CcKCwuxfPnygLDr/fff914t7WvgwIH48MMP4XK58NNPP2H9+vV46aWX8MADDyA8PBy33357ndtctmwZ0tPTsWjRooCrybdt24YXXnihweOviyzLAFDn+9rQSbRr05j3LVTR0dEoKiqC0+kMOOnncrlQUFAQ9Crhpto2AOTk5AS9Pzs722+5s5Wbmxv0dm372na0v0eMGOG96rqhavvM+r6XAwYMqHMd2vZLS0ub7bWvT6ifXW2ctb3GwW7XnudPP/2E884776zGe67342Dvs/Z8/vCHP+Cf//xnk22roRr7eZo7dy7eeOMNrFy5Epdddhm++uorFBYW4oEHHvB7LbXHXXPNNd4AvKFjys3NRe/evf3u096X7t27N2hdmoZ+jrV/K4qCoqKiBq//wgsvxJdffgm73Y49e/bg22+/xUsvvYSbbroJiYmJZz35eV37arD3zuVyYfHixejcuTP27t0bEE5oFWGheOKJJ2C1WpGWlhZQPbN06VKsWrUq5HWGenw9V8f9UFgsFixevBiLFy/G6dOnsXnzZqxYsQLvvPMOMjIysGXLlnM+JiIiotZIbukBEBER0bmxcuVKOBwOjBo1CrfffnvQP4mJiVi/fj3S09MBABdccAEA4Jtvvql3/aEsCwCxsbE4ffp0wO1utxs//vhjA59VtWPHjgFQ22v5BiwAsHPnzoC2PuHh4RgyZAhyc3Mb3DLHYDDgjjvuQGZmJr744gssW7YMERERmDNnTsjjnDVrVsB9mzZtqvOxer0eo0aNwp///Ge8//77AOANzpprm6GIjY0FgKDv67Fjx/yupm6ssWPHQpZlbN68OaDlWTBa651QrtwdMWIEFEXB5s2bA+7bvHkz3G43Ro4c2fBBh0BrXbdx48aA+1wul/eEVlNtf+/evSgvLw+4Xdu+Np6IiAgMHjwYv/zyS0gnZ+vSmONLc5/Qk2W51n0l1M+R9tpt3bo14D5FUfDDDz8E3N6Uz7Ml92ON9nltqROxvu9BsPA3LS0NQODnady4cejbty9WrVqF0tJSb4A2d+5cv+UGDBiAmJgYbN++3a+Cpi7atoLtM1u3bg3pWKU5deoUMjIyAm6v+TkG1H2suLgYv/zyS8jbMZlMuOiii/D444/jxRdfBAC/8KExx1tAfU0URQn6WQl2LCwoKEBJSQkuuuiigICloqIiaBBc39iOHTuGuLi4oO3JGvs9GexxpaWl+PHHH2E2mzFw4EAAdR/3gdr306YQynuWnJyMOXPmYM2aNejTpw+2bt3qreYiIiLq6BiyEBERdRBa+5lXXnkFy5YtC/rn7rvvhhACy5YtAwBceeWVSElJwerVq70n9X359r4PZVlAPfl26tQprF271u/2J554AidPngz5+aWkpAAIPEmRl5eH++67L+hjtFZbd999d0AAoCiK9+pRX3fddRd0Oh0WLFiA9PR03HTTTUHntAh1nGvWrPG+7r727NkTNJzQrpBtSF/02ra5b98+LF26tP5BN9CAAQMQFRWFVatW+bUhslqtDWpr1hCJiYn47W9/i+zsbPzpT3/ym3MHUE+w+b5e8fHxANSTkA01f/58AMAjjzyCqqoq7+1VVVV4+OGHAaDe6qHGmjlzJuLi4vD+++975yzRPP/880hPT8fUqVObZD4WQD3h9/jjj/vdtnv3brz77ruIjo7GNddc4739j3/8IxwOB+bPnx+02qy4uDikKpff/e530Ov1+Nvf/oaDBw8G3O97zFiwYAEMBgP+8Ic/BMxjAqjzSDTFifz4+PigISEQ+mdXm7ciLS0tIEh6/fXXgz6P2267DTExMViyZAl27twZcL+iKLWeiK2pJfdjTVJSEubMmYPdu3fjb3/7W9ATucePH/cG+02te/fumDZtGjIyMgLmEtqxYwfee+89xMbG+u3nmrlz58Jms+GVV17B119/jfPOOy9g/i69Xo/f//73yM7Oxv333x8Q5gNqFYLv/q1VQT355JN+gaXNZsMjjzzSqOfpdrvx5z//2e94mJ6ejhdffBF6vR4333yz9/Y//OEPAIA777wTWVlZAeuqrKz0O/b88MMPQZ9XsO+gxhxvAXW/B4BHH33Ubx6UoqKioHPdJCUlISwsDHv27PFrxeZ0OvHAAw+goKAg4DGxsbGQJKnWsaWkpKCoqAg///yz3+1vvvkm1qxZE9Lz0bz99tsBF3EsXrwYpaWlmD17tred6bhx49C/f39s3boVn3zyid/yn3zyCbZs2YJ+/foFnbPmbNX1nuXn52P//v0Bt1dWVqKiogJ6vT5oO0IiIqKOiO3CiIiIOoCNGzfi119/xdChQ+ucO+T222/Hk08+ieXLl2PJkiUwGo34+OOPMX36dNx000147bXXcMEFF8Bms+HQoUP47rvvvFcHh7IsAPzpT3/CmjVrcPXVV+PGG29EXFwcfvjhB6Snp2PSpEkNPpGoGTNmDMaNG4dPP/0UF110EcaPH4/c3Fx888036N+/v3fCZF933HEHtmzZgrfffht9+/bF1VdfjcTERGRlZWHDhg2YP39+QHutHj164De/+Q1Wr14NACG1CgPUeV2WL1+O66+/Htdddx26du2KAwcO4Ntvv8UNN9yADz/80G/5t99+G6+99hrGjx+P1NRUxMbG4vjx4/jiiy9gMpmwcOHCerd566234plnnsHChQuRlpaGvn374ujRo/jyyy9x7bXXBmyzsQwGAx544AH87W9/w4gRI3DNNdfA5XJh3bp16Nq1a9D3oDFefvllHDhwAK+++io2btyIGTNmwGg0Ij09HWvWrMHq1au9VyNfcskleOaZZ3DnnXdi1qxZiIyMRExMDBYsWFDr+m+66SasWrUKH330EQYPHoyZM2d6+/ynp6fjxhtvDKl6KRQRERF46623cP3112PixIm4/vrr0aNHD+zZswdr165F586d8dprrzXZ9iZMmIBly5Zhx44dGDduHLKzs/Hhhx9CURS89tprfu2k5s+fjz179uCVV15BamoqZsyYgR49eqCoqAjp6enYvHkzbrvtNrz66qsN2vagQYPwyiuv4J577sGIESNw9dVXo2/fvigsLMSuXbsQFRXlvYJ7wIABeOuttzB//nwMHjwY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iHnz5omsrKygjzt8+LC4+eabRefOnYVerxedO3cWc+bMEYcPH65zG74a8120c+dOMWXKFBEVFeV9XdLS0kRxcbFYsmSJmDx5sujataswGo2ic+fOYuLEieK9994TiqI06PUgIiLqCCQhhGjGDIeIiIio3Vm8eDGWLFmCZcuWNXu7HaLmkJGRgV69emHu3LlYsWJFSw+nQxo3bhx27NiB0tJShIeHt/RwiKiJaD8jpKWlBZ3jhYiIiNofzslCREREFILy8nK8+uqriIuLw+zZs1t6OETUilVVVQWdv2bFihX44YcfMH36dAYsRERERERtHOdkISIiImqAr776Cnv37sUXX3yB3NxcPPvssw2adJ6IOq5Tp05hxIgRmDZtGvr06QOXy4V9+/Zh69atiImJwXPPPdfSQyQiIiIiorPEkIWIiIioAT7++GOsXLkSnTp1wiOPPII//OEPLT0kImrlOnXqhDlz5mDTpk1IS0uD3W5H586dcdttt+HRRx/1m5CciIiIiIjaJs7JQkRERERERERERERE1Aick4WIiIiIiIiIiIiIiKgRGLIQERERERERERERERE1Qoefk0VRFGRlZSEyMhKSJLX0cIiIiIiIiIiIiIiIqAUJIVBeXo6uXbtCluuuVenwIUtWVhaSk5NbehhERERERERERERERNSKnD59Gt27d69zmQ4fskRGRgJQX6yoqKgWHg0REREREREREREREbWksrIyJCcne/ODunT4kEVrERYVFcWQhYiIiIiIiIiIiIiIAKBBU4xw4nsiIiIiIiIiIiIiIqJGYMhCRERERERERERERETUCAxZiIiIiIiIiIiIiIiIGoEhCxERERERERERERERUSN0+InviYiIiIiIiIiIiKjtcLvdcDqdLT0MaqMMBgN0Ol2TrY8hCxERERERERERERG1ekII5OTkoKSkpKWHQm1cTEwMOnfuDEmSznpdDFmIiIiIiIiIiIiIqNXTApakpCSEhYU1yQly6liEEKiqqkJeXh4AoEuXLme9ToYsRERERERERERERNSqud1ub8ASHx/f0sOhNsxisQAA8vLykJSUdNatwzjxPRERERERERERERG1atocLGFhYS08EmoPtP2oKeb2YchCRERERERERERERG0CW4RRU2jK/YghCxERERERERERERERUSMwZCEiIiIiIiIiIiIiImoEhixERERERERERERERORn3rx5SElJaelhtHoMWYiIiIiIiIiIiIiIWtCKFSsgSZL3j16vR7du3TBv3jxkZma29PCoDvqWHgAREREREREREREREQGPP/44evXqBZvNhu3bt2PFihXYunUrDhw4ALPZ3NLDoyAYshARERERERERERERtQKXXXYZRo8eDQC44447kJCQgKeffhqrV6/GDTfc0MKjo2DYLoyIiIiIiIiIiIiIqBW6+OKLAQDHjx8HADgcDjz22GMYNWoUoqOjER4ejosvvhhpaWl+j8vIyIAkSXj22Wfx+uuvIzU1FSaTCWPGjMGuXbsCtvP5559jyJAhMJvNGDJkCD777LOg46msrMSDDz6I5ORkmEwm9O/fH88++yyEEH7LSZKEBQsW4OOPP8agQYNgsVhw4YUXYv/+/QCA1157DX369IHZbMakSZOQkZFxti9Vi2ElCxERERERERERERFRK6SFD7GxsQCAsrIyLFu2DLNnz8add96J8vJyvPnmm5gxYwZ27tyJ4cOH+z3+vffeQ3l5Oe6++25IkoR//OMfuPbaa3HixAkYDAYAwNq1azFr1iwMGjQIS5cuRWFhIW677TZ0797db11CCFx11VVIS0vD7bffjuHDh2PNmjV46KGHkJmZiX/9619+y2/ZsgWrV6/GfffdBwBYunQprrjiCvzP//wPXnnlFdx7770oLi7GP/7xD8yfPx8bNmxohlew+TFkISIiIiIiIiIiIqI2RwjA6mrpUfiz6AFJavzjS0tLUVBQAJvNhh07dmDJkiUwmUy44oorAKhhS0ZGBoxGo/cxd955JwYMGICXXnoJb775pt/6Tp06haNHj3pDmv79++Pqq6/GmjVrvOv885//jE6dOmHr1q2Ijo4GAEycOBHTp09Hz549vetavXo1NmzYgCeeeAKPPvooAOC+++7D9ddfjxdeeAELFixAamqqd/kjR47g8OHDSElJ8Y797rvvxhNPPIFff/0VkZGRAAC3242lS5ciIyPDu2xbwpCFiIiIiIiIiIiIiNocqwsY+EpLj8LfoXuBMEPjHz916lS//6ekpOCdd97xVpXodDrodDoAgKIoKCkpgaIoGD16NPbu3RuwvhtvvNEbsADV7cdOnDgBAMjOzsaPP/6Ihx9+2BuwAMC0adMwaNAgVFZWem/7+uuvodPpcP/99/tt48EHH8Qnn3yCb775BgsWLPDefskll/iFJueffz4AYNasWd6Axff2EydOtMmQhXOyEBERERERERERERG1Av/+97+xbt06fPLJJ7j88stRUFAAk8nkt8zKlStx3nnnwWw2Iz4+HomJifjqq69QWloasL4ePXr4/V8LXIqLiwEAJ0+eBAD07ds34LH9+/f3+//JkyfRtWtXv4AEAAYOHOi3rtq2rYU4ycnJQW/XxtTWsJKFiIiIiIiIiIiIiNoci16tHGlNLGd5xn3s2LEYPXo0AGDmzJkYP348brrpJhw5cgQRERF45513MG/ePMycORMPPfQQkpKSoNPpsHTpUhw/fjxgfVrVS001J6pvDrVtuyXH1BwYshARERERERERERFRmyNJZ9eaq7XTwpPJkyfj5ZdfxsMPP4xPPvkEvXv3xqeffgrJZ/KXRYsWNWob2pwrR48eDbjvyJEjAcuuX78e5eXlftUshw8f9ltXR8N2YURERERERERERERErdCkSZMwduxYPP/887DZbN4qEN+qjx07dmDbtm2NWn+XLl0wfPhwrFy50q/d2Lp163Dw4EG/ZS+//HK43W68/PLLfrf/61//giRJuOyyyxo1hraOlSxEREREREREREREjaAIgSoXoAggwgDIPpUFRE3loYcewvXXX48VK1bgiiuuwKeffoprrrkGv/nNb5Ceno5XX30VgwYNQkVFRaPWv3TpUvzmN7/B+PHjMX/+fBQVFeGll17C4MGD/dZ55ZVXYvLkyXj00UeRkZGBYcOGYe3atVi1ahUWLlyI1NTUpnrKbQorWYiIiIiIiIiIiIgayO4WKLYLnK5QcLBYweFiBUdKFPxaoiDfKuBU2ua8EtR6XXvttUhNTcWzzz6LW2+9FX//+9/x008/4f7778eaNWvwzjvveOdxaYxLL70UH3/8MdxuNx555BF8+umnWL58ecA6ZVnG6tWrsXDhQnz55ZdYuHAhDh48iGeeeQb//Oc/z/ZptlmSaKuzyTSRsrIyREdHo7S0FFFRUS09HCIiIiIiIiIiImpFtGqVSidQ5lBQ6QIcbkAAMOnUPwBQ5QJcijrxebxJQqxJQpiBlS1NxWazIT09Hb169YLZbG7p4VAbV9/+FEpuwHZhRERERERERERERD7sbjVYqXAKlNgF7G7ALQC9rIYqYXr4TToOAFFGdZ4Mqxs4UymQaxWIMQFxJhlRRrYSI2qvGLIQERERERERERFRh+ZbrVLqqVZxutX7jDog3ADo5fpDEkmSEKZXQxi7W6DABhTaFEQYgASzjGgjYNQxbCFqTxiyEBERERERERERUYdTX7VKeJBqlVCYdBJMOsCtCFS6gONlCsI8rcRiTFLQahgiansYshAREREREREREVG75xYC1iaoVgmVTpaCtxIzAnFmthIjausYshAREREREREREVG7ZHMLVDnVapVSh4DNDShNWK0SCt9WYg63QKEdKLAriGQrMaI2jSELERERERERERERtQtuz9wqVT7VKg43IEGtVok0qJUlLc2ok2D0bSVWqsBiUFuJxbKVGFGbwpCFiIiIiIiIiIiI2iQhBOwKWk21SqhqthLL9GklFm+WEWkEdK107ESkYshCREREREREREREbYZbqC3Aqlytu1olFDVbiRXZgUKbgggDkGBRW4mZ2EqMqFViyEJEREREREREREStlhACdrcaqpQ7BcraWLVKqHxbiVW5gPQyBWa92kosxiS1q+dK1B4wZCEiIiIiIiIiIqJWRQsYKj3VKlVOwKEAkqSGKm2xWiVUOllCpKeVmE1rJVYlEG1SW4lFsZUYUavAkIWIiIiIiIiIiIhaVIOqVQwds4JDkiRY9IDF00qs2A4U2xSEs5UYUavAkIWIiIiIiIiojRNCQBGALHXME5BE1Db5VquUOBRYnYBTAdCBqlVC5W0l5pmX5kSZArMOiDdLiGUrMaIWwZCFiIiIiIiIqBUQQsAt1Ku2FQHvv2v+rQgBl1BPRLoUAZei3ieghizhegnhBgkmnXqS0iTzhBsRtQ5atUqlC6hwCpQ61P9r1SrmDlytEiqd5N9KLKtSIK9KIMqoVrdEMaAiOmcYshARERERERE1Ed+gJDAc8Q9KnArgEmpIogUlCtT7hWc54fm/BPXfGknyVK1A/VuWABnqegpsAnlWAQmAQQaMOiBCL8FikGD2BC9GBi9EdI64PNUqVS6gxK7A6lLnVpEl9fjEapWz49tKzKkIlDqAYrunlZhZRoyJrcTaghUrVuC2227Drl27MHr06JYejtfBgwfx0UcfYd68eUhJSWnw43788Uc8++yz2LRpE/Ly8hAeHo6RI0dizpw5uPXWW6HT6Zpv0C2AIQsRERERERGRDy0oCR6OwOc+NShxa3/XCEq0sKS+oESu8W+d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vH/o7e1VNBrNO4fE9ReTbzrG72i4/mIyjHcM79y5U6lUSqeddpoWLVqUe0jZAGbRokX67W9/m/cc3AcehcGc9F//9V9Gkrn33ntzbX19feaoo44yp5xySq6tvb3dbN68Oe/Yu+++20gy//3f/51re/HFF43H4zE33HBDri0ej5vy8nJzwQUX5B1/2WWXmVAoZDo6Oib7ZWEemY4xvG/fvmHn7erqMkuWLDGVlZUmkUhM5kvCPDKR8TvUvffeaySZ1tbWEbevWLHCnHDCCSadTufabrnlFmNZltm0adPEXwjmpekYvx0dHXnj1hhjksmkOe2004zf7zevvPLKxF8I5qWJjN9XXnnFLF682NTX14963R3A9RdTYTrGL9dfTJWJjN+9e/cOe77W1lZTVFRkzjjjjLx2rr+YCtMxfrn+YiqNdwxv3rzZPPHEE8Mekszb3vY288QTT5jdu3cbY7gPfDiELHPYe97zHuP1es1nPvMZ8/Wvf92ceuqpxuv1mv/7f/9vbp+zzjrLHJy1Ddxkrq6uNl/84hfN/fffbxobG019ff2wm9IPPfSQkWQuuugi881vftNcfvnlRpK58847p+U1Ym6b6jF86623mhNOOMHccsst5hvf+Ia57bbbTFNTk7Esy3z3u9+dtteJuWm847ezs9Pccccd5o477jBvfetbjSRz3XXXmTvuuMM8+OCDefv+4he/MJZlmXPOOcd84xvfMNdcc42xbdt89KMfnZbXiLlrqsfvt7/9bbNkyRJzww03mIcffth84QtfMMcdd5yRZL7whS9M2+vE3DTe8XvCCScYSeazn/2sefTRR/Mev/3tb/P25fqLqTLV45frL6bSeMdvdXW1ee9732vuuece841vfMN85jOfMeXl5SYQCJg//vGPefty/cVUmerxy/UXU228Y3gkkswnPvGJYe3cBx4dIcsc1tvba66//npTW1trHMcxJ598svn1r3+dt89o/3Pt2rXLXHTRRaa4uNhEIhFzwQUXmG3bto14nm984xtm+fLlxu/3myVLlpj777/fuK47Ja8J88tUj+Hf/va35s1vfrOpra01Pp/PlJaWmre85S3mqaeemtLXhflhvOO3tbXVSBrx0dTUNOw8TzzxhFm5cqVxHMcsWLDA3HLLLSaZTE7lS8M8MNXj9y9/+Yt5+9vfbhoaGozf7zeRSMScfvrp5vHHH5+Ol4c5brzjd7SxK8mcddZZw87D9RdTYarHL9dfTKXxjt9bb73VrF692pSVlRmv12vq6+vNpZdeav72t7+NeB6uv5gKUz1+uf5iqk3kHtrBRgtZjOE+8GgsY4yZwGpjAAAAAAAAAAAA8xKF7wEAAAAAAAAAAMaBkAUAAAAAAAAAAGAcCFkAAAAAAAAAAADGgZAFAAAAAAAAAABgHAhZAAAAAAAAAAAAxoGQBQAAAAAAAAAAYBwIWQAAAAAAAAAAAMaBkAUAAAAAAAAAAGAcCFkAAAAAAAAAAADGgZAFAAAAADCp2traZFmWHnnkkUJ3BQAAAJhShCwAAADALPbII4/IsqzcIxAIaNmyZbrqqqu0d+/eQndvwjZt2qTPf/7zamtrK3RXDuuDH/xg3n8Lx3G0bNkyfe5zn1NfX1+huwcAAABgCngL3QEAAAAAE3f77bdr0aJF6uvr0x/+8Ad97Wtf05NPPqkNGzYoFAoVunvjtmnTJt122206++yz1dzcXOjuHJbjOPrf//t/S5Ki0ah+9rOf6Y477tCOHTv02GOPFbh3AAAAACYbIQsAAAAwB5x33nlavXq1JOkjH/mIKioqdN999+lnP/uZ3vve907ouePx+KwOaqaT1+vVZZddlvv5yiuv1Kmnnqp///d/13333aeampoC9g4AAADAZGO5MAAAAGAOOueccyRJra2tubbvfve7WrVqlYLBoMrLy3XppZdq165decedffbZOu644/Tcc8/pzDPPVCgU0s033yxJ6uvr0+c//3ktW7ZMgUBAdXV1eve7360dO3bkjnddV1/+8pd17LHHKhAIqKamRldccYVee+21vPM0Nzfrggsu0B/+8AetWbNGgUBAixcv1ne+853cPo888oje8573SJLe+MY35pbh+v3vfy9J+tnPfqbzzz9f9fX1chxHS5Ys0R133KFMJjPs9/HQQw9p8eLFCgaDWrNmjZ555hmdffbZOvvss/P2SyQSuvXWW3XUUUfJcRw1Njbqs5/9rBKJxBj/C2RZlqXTTz9dxhi1tLTkbfvVr36lM844Q+FwWEVFRTr//PO1cePGvH0++MEPKhKJaOfOnbrgggsUiUTU0NCghx56SJK0fv16nXPOOQqHw2pqatL3vve9YX1oaWnRe97zHpWXlysUCun1r3+9fvnLX+a27927V16vV7fddtuwY7ds2SLLsvSVr3xFknTgwAFdf/31Ov744xWJRFRcXKzzzjtPf/3rX8f1+wEAAABmO0IWAAAAYA4aCD4qKiokSXfeeacuv/xyLV26VPfdd58+9alP6amnntKZZ56pzs7OvGM7Ojp03nnnaeXKlfryl7+sN77xjcpkMrrgggt02223adWqVfrSl76kT37yk4pGo9qwYUPu2CuuuEKf+cxndNppp+mBBx7QunXr9Nhjj2nt2rVKpVJ559m+fbsuuugivfnNb9aXvvQllZWV6YMf/GAuaDjzzDN1zTXXSJJuvvlmPfroo3r00Ud19NFHS8qGMJFIRNdee60eeOABrVq1Sp/73Od044035p3na1/7mq666iotWLBAX/ziF3XGGWfowgsv1EsvvZS3n+u6esc73qF//ud/1tvf/nY9+OCDuvDCC3X//ffrkksuGfd/i4F6MmVlZbm2Rx99VOeff74ikYjuuece/eM//qM2bdqk008/fVj9mUwmo/POO0+NjY364he/qObmZl111VV65JFH9Na3vlWrV6/WPffco6KiIl1++eV5wdrevXt16qmn6je/+Y2uvPJK3Xnnnerr69M73vEOPfHEE5KkmpoanXXWWXr88ceH9f0HP/iBPB5PLuxqaWnRT3/6U11wwQW677779JnPfEbr16/XWWedpd27d4/7dwQAAADMWgYAAADArPXtb3/bSDK/+93vzP79+82uXbvM97//fVNRUWGCwaB56aWXTFtbm/F4PObOO+/MO3b9+vXG6/XmtZ911llGknn44Yfz9v3Xf/1XI8ncd999w/rguq4xxphnnnnGSDKPPfZY3vZf//rXw9qbmpqMJPP//t//y7Xt27fPOI5jrrvuulzbD3/4QyPJPP3008POG4/Hh7VdccUVJhQKmb6+PmOMMYlEwlRUVJiTTz7ZpFKp3H6PPPKIkWTOOuusXNujjz5qbNs2zzzzTN5zPvzww0aS+eMf/zjsfEN94AMfMOFw2Ozfv9/s37/fbN++3fzzP/+zsSzLHHfccbnfU3d3tyktLTUf/ehH847fs2ePKSkpyWv/wAc+YCSZL3zhC7m21157zQSDQWNZlvn+97+fa3/xxReNJHPrrbfm2j71qU8ZSXmvqbu72yxatMg0NzebTCZjjDHm61//upFk1q9fn9enY445xpxzzjm5n/v6+nLHDGhtbTWO45jbb789r02S+fa3v33I3xkAAAAw2zGTBQAAAJgD3vSmN6mqqkqNjY269NJLFYlE9MQTT6ihoUE/+clP5LquLr74Yr366qu5R21trZYuXaqnn34677kcx9G6devy2n784x+rsrJSV1999bBzW5YlSfrhD3+okpISvfnNb847z6pVqxSJRIad55hjjtEZZ5yR+7mqqkrLly8ftqzWaILBYO777u5uvfrqqzrjjDMUj8f14osvSpL+8pe/qKOjQx/96Efl9Q6WpHzf+96XN7NkoP9HH320VqxYkdf/gaXXDu7/SGKxmKqqqlRVVaWjjjpK119/vU477TT97Gc/y/2e/uM//kOdnZ1673vfm3cej8ejU045ZcTzfOQjH8l9X1paquXLlyscDuviiy/OtS9fvlylpaV5v78nn3xSa9as0emnn55ri0Qi+tjHPqa2tjZt2rRJkvTud79bXq9XP/jBD3L7bdiwQZs2bcqbxeM4jmw7+2dkJpNRR0eHIpGIli9frueff/6wvx8AAABgrqHwPQAAADAHPPTQQ1q2bJm8Xq9qamq0fPny3M3wbdu2yRijpUuXjnisz+fL+7mhoUF+vz+vbceOHVq+fHleUHGwbdu2KRqNqrq6esTt+/bty/t54cKFw/YpKysbVr9lNBs3btQtt9yi//zP/1RXV1fetmg0Kklqb2+XJB111FF5271er5qbm4f1f/Pmzaqqqjqi/o8kEAjoF7/4hSTppZde0he/+EXt27cvLxDatm2bpMG6OQcrLi4e9pwH96mkpEQLFizIBTdD24f+/trb23XKKacMO8fAkmvt7e067rjjVFlZqXPPPVePP/647rjjDknZpcK8Xq/e/e53545zXVcPPPCAvvrVr6q1tTWv/s3A0nQAAADAfELIAgAAAMwBa9as0erVq0fc5rquLMvSr371K3k8nmHbI5FI3s9DA4GxcF1X1dXVeuyxx0bcfnBQMFJfJMkYc9hzdXZ26qyzzlJxcbFuv/12LVmyRIFAQM8//7xuuOEGua47rv4ff/zxuu+++0bc3tjYeNjn8Hg8etOb3pT7ee3atVqxYoWuuOIK/fznP8+dR8rWZamtrR32HAcHWaP9niby+xvJpZdeqnXr1umFF17QypUr9fjjj+vcc89VZWVlbp8vfOEL+sd//Ed96EMf0h133KHy8nLZtq1PfepT4/qdAwAAALMdIQsAAAAwxy1ZskTGGC1atEjLli0b93P86U9/UiqVGjbzZeg+v/vd73TaaaeNO6g52MEzNQb8/ve/V0dHh37yk5/ozDPPzLUPLfouSU1NTZKk7du3641vfGOuPZ1Oq62tTa973evy+v/Xv/5V55577qjnHau6ujp9+tOf1m233ab/+q//0utf/3otWbJEklRdXZ0XyEyFpqYmbdmyZVj7wHJqA78fSbrwwgt1xRVX5JYM27p1q2666aa84370ox/pjW98o771rW/ltXd2duaFMQAAAMB8QU0WAAAAYI5797vfLY/Ho9tuu23YLAdjjDo6Og77HH/3d3+nV199VV/5yleGbRt4zosvvliZTCa33NRQ6XRanZ2dY+57OByWpGHHDsziGPp6ksmkvvrVr+btt3r1alVUVOib3/ym0ul0rv2xxx4btizZxRdfrJdfflnf/OY3h/Wjt7dXsVhszP2XpKuvvlqhUEh33323pOzsluLiYn3hC19QKpUatv/+/fvHdZ6RvO1tb9Of//xnPfvss7m2WCymb3zjG2pubtYxxxyTay8tLdXatWv1+OOP6/vf/778fr8uvPDCvOfzeDzDxtAPf/hDvfzyy5PWZwAAAGA2YSYLAAAAMMctWbJE//RP/6SbbrpJbW1tuvDCC1VUVKTW1lY98cQT+tjHPqbrr7/+kM9x+eWX6zvf+Y6uvfZa/fnPf9YZZ5yhWCym3/3ud7ryyiv1zne+U2eddZauuOIK3XXXXXrhhRf0lre8RT6fT9u2bdMPf/hDPfDAA7rooovG1PeVK1fK4/HonnvuUTQaleM4Ouecc3TqqaeqrKxMH/jAB3TNNdfIsiw9+uijwwIAv9+vz3/+87r66qt1zjnn6OKLL1ZbW5seeeQRLVmyJG/Gyvvf/349/vjj+vjHP66nn35ap512mjKZjF588UU9/vjj+s1vfjPqkmyHUlFRoXXr1umrX/2qNm/erKOPPlpf+9rX9P73v18nnXSSLr30UlVVVWnnzp365S9/qdNOO23EMGs8brzxRv37v/+7zjvvPF1zzTUqLy/Xv/3bv6m1tVU//vGPc3V7BlxyySW67LLL9NWvflVr165VaWlp3vYLLrhAt99+u9atW6dTTz1V69ev12OPPabFixdPSn8BAACA2YaQBQAAAJgHbrzxRi1btkz333+/brvtNknZGiNvectb9I53vOOwx3s8Hj355JO688479b3vfU8//vGPVVFRodNPP13HH398br+HH35Yq1at0te//nXdfPPNuQLzl112mU477bQx97u2tlYPP/yw7rrrLn34wx9WJpPR008/rbPPPlv/5//8H1133XW65ZZbVFZWpssuu0znnnuu1q5dm/ccV111lYwx+tKXvqTrr79eJ5xwgn7+85/rmmuuUSAQyO1n27Z++tOf6v7779d3vvMdPfHEEwqFQlq8eLE++clPjnupNUm69tpr9fDDD+uee+7RI488ov/1v/6X6uvrdffdd+vee+9VIpFQQ0ODzjjjDK1bt27c5zlYTU2N/r//7//TDTfcoAcffFB9fX163etep1/84hc6//zzh+3/jne8Q8FgUN3d3brkkkuGbb/55psVi8X0ve99Tz/4wQ900kkn6Ze//KVuvPHGSeszAAAAMJtYZrxVEQEAAABglnJdV1VVVXr3u9894vJgAAAAAHAkqMkCAAAAYE7r6+sbtozYd77zHR04cEBnn312YToFAAAAYE5gJgsAAACAOe33v/+9Pv3pT+s973mPKioq9Pzzz+tb3/qWjj76aD333HPy+/2F7iIAAACAWYqaLAAAAADmtObmZjU2Nupf/uVfdODAAZWXl+vyyy/X3XffTcACAAAAYEKYyQIAAAAAAAAAADAO1GQBAAAAAAAAAAAYB0IWAAAAAAAAAACAcSBkAQAAAAAAAAAAGAdCFgAAAAAAAAAAgHEgZAEAAAAAAAAAABgHQhYAAAAAAAAAAIBxIGQBAAAAAAAAAAAYB0IWAAAAAAAAAACAcfj/AUwPPXJrutJKAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ + "plt.legend()\n", "plt.show()" ] }, @@ -661,12 +645,25 @@ }, { "cell_type": "code", - "execution_count": 23, - "id": "1c17b61a", + "execution_count": 24, + "id": "b2d69593", "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide-input" + ] }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABmIAAALGCAYAAABWAo6cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXwU5f0H8M8ce+8mmztAAkFAELSiIh5QD7yrKKIWxSreUqVqtbYeVdRqqdVarNZ6VbD1+FmtCtYDFfFWxKPW+yJAAsmSc3PsOTPP74/JTnazG0hCYJPweb9evEJmZmefvTfzme/3kYQQAkRERERERERERERERNTv5GwPgIiIiIiIiIiIiIiIaKhiEENERERERERERERERLSdMIghIiIiIiIiIiIiIiLaThjEEBERERERERERERERbScMYoiIiIiIiIiIiIiIiLYTBjFERERERERERERERETbCYMYIiIiIiIiIiIiIiKi7YRBDBERERERERERERER0XbCIIaIiIiIiIiIiIiIiGg7YRBDRERERH0Wj8excOFCjBs3Dg6HA5Ik4dlnn832sPrkkEMOgSRJ2R7GNvvuu+9w4oknorS0FJIkwe/3Z3tINEg9/vjj2GuvveDz+SBJEi677LJsD2mnUlFRgYqKimwPY9Bat24dJEnCWWedle2hDChnnXUWJEnCunXrsj0UIiKinQqDGCIiIsItt9wCSZIgSRK++eabbA+HBpE//elPuOmmmzB8+HD86le/wsKFCzFhwoRsDyujneHgk67rmDVrFl544QUcd9xxWLhwIa666qpsD2tQkiQJhxxySLaHkTXvvfceTj/9dLS2tuLnP/85Fi5ciKOPPjrbw6IhaiC/P7/++uuQJAk33HBDtocyoCxduhSSJGHp0qXZHgoREdGgoGZ7AERERJRdQgg8+OCDkCQJQgg88MADuP3227M9LBok/vOf/8Dr9eKVV16B3W7P9nC2yT/+8Q+EQqFsD2ObVFZW4ssvv8T555+P+++/P9vDoUHs+eefhxAC//jHP3DggQdmezhE1E8WLVqEq666CiNGjMj2UIiIiHYqrIghIiLayb388stYt24d5s2bh9LSUjz88MOIxWLZHhYNEps2bUJBQcGgD2EAYOTIkQO2mqenNm3aBAAYPnx4lkdCgx2fS0RD07BhwzBhwgTYbLZsD4WIiGinwiCGiIhoJ/fAAw8AAM4//3ycfvrpqK+vxzPPPNPt9tXV1bjkkkswbtw4uFwu5OfnY+rUqfjd737X52231AIoU7uS5L7v3377LebMmYPi4mLIsozXX38dAPDRRx/h0ksvxZ577on8/Hw4nU6MGzcOV1xxBZqamrq9fU888QQOO+ww6zIVFRU47bTT8OGHHwIA7rvvPkiShBtvvDHj5Wtra2Gz2bDHHnt0ex3Jli5dipNOOgm77LILXC4XcnJyMG3aNDzyyCMZt1+7di0uuOACjB071rpP99hjD8yfPx8NDQ09us5nn30WP/vZz7DrrrvC4/HA4/Fgn332wV/+8hcYhtGjfSQel8rKSqxfv95qbZeYz2BrrVwyzX2Q3OZk1apVOOSQQ+Dz+ZCTk4Njjz0WX331VcZ9hUIh3HrrrZgyZQp8Ph+8Xi922203XHLJJQgEAgDM59jDDz8MABg9enTaeIHu54gxDAP33nsv9t13X3i9Xng8Huy7777429/+lvH+Sjyf6+vrccEFF2DYsGFwOByYNGkSlixZspV7Nt1HH32Ek046CcXFxXA4HBg1ahQuuugi1NTUpF3vwQcfDAC48cYbrdu4tXY6ya+nr7/+GrNmzUJ+fj48Hg+mT5+Ol19+udvLPv744zj00EPh9/vhdDqx22674eabb0Y0Gu32fqmtrcV5552HESNGQFGUlLY2H3zwAebMmYMRI0bA4XBg2LBhOPLII/Gvf/0rbX+rV6/GySefjNLSUtjtdpSXl+PCCy+0AoRkicdW0zT8/ve/t+Y0Ki8vx29+85uU8DnxPASAN954w7ofu96XvX3tAsCaNWtw5JFHWs/rww8/HO+99x5uuOEGSJJkvX8l+/rrr3HWWWehvLwcdrsdJSUlmDt3bq/bSPb0eZy4/YnnavLrZWtto5Jvx2OPPYb99tsPXq835XUWCoWwaNEiTJ48GR6PB16vFwcccAAef/zxtP0lv498+OGHOProo5Gbm4u8vDycdNJJqKqqAmC+L5566qkoKiqCy+XCoYceik8//TTjGGtqanDxxRejoqICdrsdRUVFmD17Nj766KOU7f7whz9AkiTceeedGfezadMmqKqKKVOmpCzXNA333HMP9t9/f+Tk5MDtdmOvvfbC3XffnfH9QgiBu+++G5MmTYLT6cSIESOwYMECBIPBLd7XXQ0fPjxjhcOoUaMgSVLa5+6LL74ISZJw/fXXpyzv6f0DpL5nv/TSSzjkkEOQm5ub8j761ltvYebMmSgrK4PD4UBpaSn233//lM/Qnrw/b0lraysuv/xylJWVwel0YsKECbjjjju6/Tz79ttvcdVVV2HKlCkoKiqy3lcvuOACVFdXp2x71lln4dBDDwWQ+r6a/HoNBoO47bbbMGPGDJSVlVn32/HHH4/33nuvR7ch+fokScLatWtxxx13YMKECXA6nSgrK8Mvf/lLtLS0ZLxcTz8nkq+ju+9V69atw6mnnorCwkI4nU5MmTIF//nPf1L2ccghh+Dss88GAJx99tkp90tiv62trfjd736H3XffHTk5OfD5fBgzZgzmzJmT8flEREQ01LE1GRER0U4sEAhg+fLl2HXXXXHggQciJycHf/rTn3D//fdjzpw5adt/+OGHOOqoo9DY2IiDDjoIs2fPRigUwpdffokbbrgB1113XZ+27asffvgB++23H3bddVecfvrpCIfDyMnJAWAGTM888wwOPvhgHH744TAMAx999BHuuOMOvPjii1i9ejV8Pp+1LyEEzj77bDz88MMoLCzE7NmzUVRUhOrqaqxatQrjx4/HlClTcPrpp+PXv/41/v73v+O3v/0tFEVJGdNDDz0ETdNw4YUX9ug2/PznP8ekSZNw0EEHYdiwYWhoaMALL7yAM844A998803KwbOamhrsu+++aGlpwU9+8hOcdNJJiEQiqKysxD//+U8sWLAABQUFW73Oq666CrIsY7/99sOIESMQDAbx2muv4dJLL8WaNWvwz3/+c6v7mDVrFioqKrB48WIAsCbx7o+J4f/zn/9g2bJlOOaYYzB//nx8+eWXeOGFF7BmzRp8+eWXKCwstLZtamqyDrqOHz8e55xzDux2O3744QcsWbIEs2fPRklJCRYuXIhnn30Wn376KS699FJrnD0Z7xlnnIHHHnsM5eXlOO+88yBJEp555hlcdNFFePvtt/Hoo4+mXaa5uRnTpk2D3W7HySefjGg0iieffBLnnHMOZFnGvHnzenxfnHTSSRBC4OSTT8aoUaPw0Ucf4W9/+xuWLVuGt99+G6NHjwYALFy4EOvWrcPDDz+Mgw8+2Ao3ezrPSWVlJQ444ADsscceuPDCC1FTU4MnnngCxxxzDB577LG094RzzjkHS5YsQVlZGU466ST4/X68//77uO6667By5Uq88sorUNXUPzcaGxux//77w+v1Yvbs2ZBlGSUlJQDM1+zPf/5zKIqC448/HuPGjcPmzZvx4Ycf4p577sFPf/pTaz8PPfQQLrjgAjgcDhx//PEoLy/Hd999hwcffBDPPfcc3n//fYwcOTLtNs6dOxdvvfUWjjnmGOTk5OCFF17AH//4R2zevNkKHiZPnoyFCxfixhtvxKhRo1Im+k6+L3vz2gWAN998E0ceeSR0Xcfs2bMxZswYfPbZZzj00EMxY8aMjI/JSy+9hNmzZyMej2PmzJkYO3Ysqqur8fTTT+P555/HqlWrsPfee2/9wUXPn8eJ29/X1wtgzh31yiuvYObMmTj00EOtUKG5uRkzZszAJ598gr333hvnnHMODMPAihUrMHfuXHzxxRe4+eab0/a3Zs0a3HrrrTj44INx/vnn47PPPsPTTz+Nzz//HMuWLcP06dMxYcIEnHnmmVi/fj2efvppHHHEEVi7di28Xq+1n8rKSkyfPh2bNm3CjBkzcNppp6GqqgpPPvkknn/+efz73//GcccdZ91f1157Lf7xj3/g0ksvTRvTI488Al3XU54ficdpxYoVGD9+PObOnQun04lVq1bhF7/4BVavXp32/nrZZZfhL3/5C4YNG4YLLrgANpsNy5Ytw+rVqxGLxXpcbThjxgw8+uij+Prrr63Kvu+//x4bNmwAAKxcuTLlc3flypUAgMMOO6xP90+yp556Ci+99JL1nr1+/XoA5vP32GOPRU5ODo4//niMGDECjY2N+Oqrr3DPPfdg4cKFALBNz7doNIrDDjsMa9aswZ577onTTz8dzc3N+N3vfoc33ngj42Wefvpp3HvvvTj00ENx4IEHwm6344svvrDePz788EMr1Jo1axYApL2vArCCoq+++grXXnstDjroIBx77LHIy8vDhg0bsHz5crz44ot47rnnej2/0i9/+Uu8+eab+OlPf4oTTjgBK1aswOLFi/HWW2/h7bffhtPptLbtzefE1qxfvx5Tp07FLrvsgjPOOAONjY144okncMIJJ+DVV1+1QqmzzjoLfr8fy5YtwwknnIDJkydb+/D7/RBC4Oijj8a7776LAw44AOeddx5UVbW+U/34xz/GPvvs06v7hIiIaNATREREtNNatGiRACB+//vfW8v22WcfIUmS+O6771K2jUajoqKiQgAQjz76aNq+qqqq+rStEEIAEAcffHDGMc6bN08AEJWVldayyspKAUAAEFdffXXGy61bt05ompa2/MEHHxQAxB/+8IeU5ffdd58AIPbdd1/R3Nycsk7TNLFp0ybr94svvlgAEM8991zKdoZhiNGjRwu32522j+58//33acui0aiYMWOGUFVVVFdXW8v/8pe/CABi8eLFaZdpa2sToVCoz9ep67o488wzBQDx/vvv92g/QggxatQoMWrUqLTlq1atEgDEwoULe3y5JUuWCABCURTx6quvpqy76qqrBABx6623piw/7bTTBAAxf/58oet6yrrW1taUxyHTcynZwQcfLLp+PX7ssccEALHXXnuJ1tZWa3lbW5vYZ599Mj7HE8/Nc889N+U5+MUXXwhFUcRuu+2W8fq7am1tFfn5+UKWZfHmm2+mrPvDH/4gAIgjjjgiZfnW7vdMkl9Pv/rVr1LWrVmzRqiqKvx+vwgGg9byxGN14oknpj3vFi5cmPF5mriOM844Q8Tj8ZR1X3zxhVBVVeTl5YnPP/88bYzJ7xnffPONsNlsYsyYMSmvDyGEePXVV4Usy2LWrFkpyxOP7d577y0aGhqs5W1tbWLMmDFClmVRU1OTNt7u3peE6N1rV9d1MXbsWAFAvPDCCymX+dvf/mbdN6tWrbKWNzY2Cr/fLwoKCsQXX3yRcpnPPvtMeDwesddee3U7vmR9eR5v7fWSSeKxd7vd4uOPP05bn9hn19dxOBwWRx11lJAkSXzyySfW8sTzGYB45JFHUi5zzjnnCAAiLy9P3HzzzSnrbrrppozPwSOPPFIASNv+nXfeEYqiiPz8/JT7J7H9Z599lnZbJk6cKOx2u6ivr0+7/QsWLEh57WuaZo332WefTbleAGLMmDEpz8twOCz2339/ASDj+2smf//73wUAcffdd1vL7r33Xut9wm63i/b2dmvd5MmThcvlEtFotM/3T+J9QJIk8eKLL6aNafbs2QKA+O9//5u2rq6uLuX3vjzfhBDilltuEQDE7NmzUz4D1q5dK/Ly8gQAMW/evJTLVFdXi0gkkravFStWCFmWxfz581OWb+19tbm5Oe32CGG+bw0bNkxMmDChx7cncT8UFBSIdevWWct1Xbfuz5tuusla3pfPia19r7rhhhtStn/ppZcEAHHMMcekLE88/kuWLEm7Hf/73/8EgLT34sRtaWxs3Op9QURENNQwiCEiItpJGYZhHYBMPmB41113CQDi17/+dcr2Tz31lAAgjj/++K3uuzfbCtH3IKakpCTjwZQtMQxD5OTkiEMPPTRl+e677y4AZDx42NXnn38uAIjjjjsuZXniYMXZZ5/dqzFl8u9//1sAEA8//LC1LBHE3Hfffdu8/0w++ugjAUDceOONPb7M9ghiTj/99LTt165dKwCIk046yVoWCASELMti2LBhoq2tbatj7UsQc/jhhwsAYsWKFWnbv/rqqwJA2nMpcSA6ObhIOOiggwSAlIOZ3XnkkUcEAHHaaaelrYvH41bYuX79emv5tgQxubm5oqWlJW194n5bunSptWzy5MlCVVXR1NSUtr2maaKgoEDsu+++KcsBCLvdLgKBQNplFixYIACIO+64Y6vjveyyywQA8Z///Cfj+lmzZglFUVJuS+KxfeWVV9K2v/766zMGq1sLYrqT6bX71ltvZXyuCGEelNx1113TgpjFixenHVhPlrgfuoY0mfTlebwtQcxll12Wtq6+vl4oiiKmTJmS8bL//e9/BQBx5ZVXWssSz+fp06enbf/GG28IAKKioiItdF+3bp0AIM466yxrWVVVlQAgRo4cKWKxWNr+fvazn6U9bo8++mi3AWUiiEzQdV3k5+eL0tLStKBRCCGampqEJEnilFNOsZadd955AoB46KGH0rZP3PaeBjGJ25w8plNOOUWUlJSI5557LuXxr6+vF5IkpRyg78v9k3jPznSwXYjOIOabb77Z6vj7GsSMHTtWyLKcMRhNPB+7BjFbsscee4jRo0enLOvL+2rCL37xi7T36S1J3A/JYUvCDz/8IGRZFhUVFdayvnxObOl71ahRozKexDJy5EhRUFCQsqwnQUymcREREe2s2JqMiIhoJ/Xaa6/hhx9+wFFHHZXSV37u3Lm44oorsHTpUtx8883WZK7vv/8+AOCYY47Z6r57s+222HPPPeFwODKui8fjuO+++/B///d/+PLLLxEMBlP6xW/cuNH6f3t7Oz7//HOUlJRgr7322ur1JtoRvfjii6iqqkJ5eTkA4P777wcAzJ8/v8e3YcOGDbj11luxcuVKbNiwAeFwOGV98jiPP/54XHPNNbj44ouxYsUKHHXUUZg2bRomTpyYcW6T7jQ0NOC2227DCy+8gLVr16K9vb3b68yGrnMuALDu4+T5fdasWQPDMHDQQQfB4/Fsl7F8/PHHkGU5Y3uvgw8+GIqi4JNPPklbN27cOKtNXrLk25HcMqm76waQsW2Vqqo46KCDsG7dOnzyyScZ23D11t57753Sri/hkEMOwcMPP4xPPvkE8+bNQygUwqefforCwkKrNV1XDocj45w+FRUVKC4uTlvem/eMxJwLb7zxBtasWZO2fvPmzdB1Hd9++21a65uePrd6ojev3cRzZPr06Wn7kWUZBx54IL799tuU5Ynb+emnn2ac5yex/VdffYWJEyducax9fR731dSpU9OWrVmzBrqudztvUTweB4CMz5tMj9vw4cMBmK3UuraITHymJc/3kbh9P/7xjzNOUj5jxgw88sgj+OSTT3DmmWcCAE488UTk5ubi0UcfxR/+8AfrehLzmSS3Jfv222/R2NiIcePGZWyvBgAulyvl9iVe44m5nZJNnz497XZtyahRo7DLLrvg9ddfh2EY1hwmhx9+OA4++GCoqoqVK1fiyCOPxKpVqyCESHlv6cv9k5Dp8QaA008/HU8//TT2228/zJkzB4ceeiimTZuGsrKyHt+uLWltbcX333+P8vJyjBkzJm39IYccknE+NyEEHn30USxduhSffvopmpqaoOu6tb6n7eCSvfPOO7jzzjvx3nvvYfPmzSnzTgHm+0Fv3qczPSd22WUXlJeXY926dWhubobf7+/3z4lMryfAfJ/szXw3EydOxOTJk/H4449j/fr1OOGEEzB9+nRMmTKlT/cvERHRUMAghoiIaCeVCA2SDyQBQH5+PmbOnIl///vfWLZsGU4++WQAZm9/ABknA+6qN9tui9LS0m7XzZkzB8888wx22WUXnHDCCSgtLbVCm8WLF6dMJt6X8V500UV488038eCDD+LGG29EbW0tli9fjsmTJ3d7UKqrtWvXYurUqWhqasKPf/xjHHnkkcjNzYWiKNZcH8njHDVqFD744APccMMNeOmll/D0008DMA+Q/OpXv8Ill1yy1etsbm7Gvvvui8rKSkydOhVnnnkm8vPzoaoqmpubceedd2acaH1HyjQvQGKukeSDZTvieRYMBpGfn5/xwJGqqigsLMTmzZvT1nU3t0Gm27Gl6waAYcOGZVyfWJ64H7ZVYq6WrhKvs8R4mpqaIIRAXV1dxoOcW9Lda7Y3j2VDQwMA4Lbbbtvidm1tbWnLevrc2prevnYT911393Gm5Ynb+cADD2xxLJluZ1d9fR73VabHOXF71qxZkzFAS8h0e3Jzc9OWJR63La1LhDtA315PLpcLP/3pT/HAAw/g5ZdfxjHHHINYLIbHH38cRUVFKcFh4vZ99913W3xdJN++LT0vEo9Lbxx22GF44IEH8PHHH8Nms6Gurg6HHXYYfD4f9t13X2temEzzw2zL+013r+vZs2fjP//5D/70pz/hoYcewn333QcA2GeffbBo0SIcccQRvbp9XW3tddXduC6//HIsXrwYw4YNs05GcblcAIClS5dac9z01DPPPIOTTz4ZTqcTRxxxBMaMGQOPxwNZlvH666/jjTfe6PXn6pZu0/r16xEMBuH3+/v9c2JLn13JJ7NsjaIoeO2113DTTTfhqaeewm9+8xsAgM/nw7x587Bo0aKtnoxAREQ01DCIISIi2gnV1dXh2WefBQCcdtppOO200zJud//991tBTOKP855US/RmWwCQJAmapmVct6WDB91VgXz44Yd45plncPjhh+PFF19MmTDcMAz88Y9/3KbxArAmgf/73/+O66+/Hg899BA0TcOFF17Y433ccccdaGhowJIlS9ICsccff9w66zrZbrvthieeeAKapuHTTz/Fq6++irvuuguXXnopPB4Pzj333C1e54MPPojKykosXLgw7az09957D3feeWePx78lsiwDwBYf155O/N2dvjxuvZWbm4vGxkbE4/G0s8Q1TUN9fX3Gypf+um4AqK2tzbi+pqYmZbttFQgEMi5PXH/iehI/99prL+ts7J7q7jWb/FgmJhrvTuL6g8Hgdrvvt6a3r93EOLu7jzMtT9zOTz/9FD/60Y+2abw7+nmc6XFO3J5f/vKXuOOOO/rtunqqr6+nefPm4YEHHsDDDz+MY445Bs8//zwaGhpw6aWXptyXicudeOKJVkje0zEFAgHssssuKesSj0tvqkdmzJiBBx54AK+++qoVuiXClhkzZmDRokVobGzEypUrkZubi7333jttLH15v9lSReaxxx6LY489Fu3t7Vi9ejX+85//4G9/+xuOO+44fPLJJ1ut5tqS5Psvk0y3ZfPmzfjLX/6C3XffHe+++25aFeDjjz/e63Fcd911sNvt+PDDD7HbbrulrLvwwgvxxhtv9HqfgUAA48ePT1ve3fvxjvqc6I28vDz8+c9/xp///Gd8//33eOONN3Dffffh7rvvRnNzM/75z3/u8DERERFlk5ztARAREdGO9/DDDyMWi2GfffbBueeem/FfUVERXn31VVRWVgIA9t9/fwDAiy++uNX992ZbwPxjvaqqKm25ruv473//28Nb1en7778HYLbySg5hAOCDDz5IayHk8Xiw++67IxAI9Lg9j81mw3nnnYeNGzfiueeew4MPPgiv14vTTz+91+M86aST0tZt7cCNqqrYZ5998Jvf/MY6cJQI17bXdfZGXl4eAGR8XL///nvrLN5tMXXqVMiyjDfffDOtvVomiXYrval82GuvvWAYBt588820dW+++SZ0XU85mNmfEm3yXn/99bR1mqbhrbfeAoB+u/6PP/4Yra2tacsT158Yj9frxaRJk/DFF1+gsbGxX667L+8vidu/vciy3O1zpbevo8R99/bbb6etMwwD7777btry/ryd2XweJyRer9v7cetO8mOQKSBetWoVgPTX07Rp0zBu3DgsW7YMwWDQCtnmzZuXst2ECRPg9/vx/vvvp1TibEniujI9Z95+++1evVcBZtgiSRJWrlyJ1157DbvssgsqKioAmIGMYRj4xz/+ge+++w6HHHJISguqvt4/PeXxeDBjxgzccccduOaaaxCLxVJe7315f/b5fBg7diw2btyIH374IW19pvfOtWvXwjAMHHnkkWkhTHV1NdauXZt2ma2N7fvvv8fEiRPTQhjDMDK+5nsi03Ni7dq1qKqqQkVFhRVe7+jPiWS9eczGjh2Lc889F2+88Qa8Xi+WLVvW7+MhIiIa6BjEEBER7YQSrW7uuecePPjggxn/XXjhhRBC4MEHHwQAzJw5ExUVFVi+fHnGM0aTe/H3ZlvAPEC3YcMGvPzyyynLb7755l63CAFgHXjqemBi8+bNuPjiizNeJtHW68ILL0wLCQzDsM4qTXbBBRdAURQsWLAAlZWVmDt3bsY5Nno7zhUrVlj3e7KPPvooY4CROBvY7Xb3+To/+eQTLFq0aOuD7qEJEyYgJycHy5YtS2l5FA6He9RCrSeKiopw6qmnoqamBr/61a/S2qa0tbWl3F8FBQUAzLk9euqcc84BAFx99dUIhULW8lAohKuuugoAtlqF1FezZs1Cfn4+Hn/8cWsOlYTFixejsrIShx9+eL/MDwOYFSY33XRTyrIPP/wQjz76KHJzc3HiiSdayy+//HLEYjGcc845GavWmpqaelUt8/Of/xyqquJ3v/sdvvzyy7T1ye8ZCxYsgM1mwy9/+cu0eVUAIBaL9cvB/oKCgoxBItD71+60adMwZswYrFq1Ki1suv/++zPejrPPPht+vx833ngjPvjgg7T1hmFkPPiaSTafxwnFxcU4/fTT8eGHH+J3v/tdxoO3P/zwgxX+97eysjIcccQRWLduXdrcRqtXr8Zjjz2GvLy8lOd5wrx58xCJRHDPPffghRdewI9+9KO0+cRUVcUvfvEL1NTU4JJLLkkL/AGzOiH5+Z2oprrllltSQs1IJIKrr76617exuLgYkyZNwjvvvIM333wzpfXYgQceCKfTab3Pd51TZFvun+68+eabGUOdTJ9ZfXl/BszXiWEY+M1vfpPyGVBZWYm//OUvadsnXrtdg662tjacf/75Gce7tbFVVFTgu+++w6ZNm6xlQgjccMMNGd/PeuLOO+9M+f5jGAauvPJKGIaBs88+21q+oz8nkm3pfqmsrMwYajU1NSEajVqt4IiIiHYmbE1GRES0k3n99dfx7bffYo899tjiXCbnnnsubrnlFixZsgQ33ngj7HY7nnzySRx55JGYO3cu7rvvPuy///6IRCL46quvsHLlSusARm+2BYBf/epXWLFiBU444QTMmTMH+fn5ePfdd1FZWYlDDjmkxwcbE/bdd19MmzYNTz/9NA488EBMnz4dgUAAL774IsaPH29N8pzsvPPOw1tvvYV//vOfGDduHE444QQUFRVh06ZNeO2113DOOeektfIaOXIkjj32WCxfvhwAetWWDDDnmVmyZAlOOeUUnHzyyRg+fDg+//xzvPTSS/jpT3+KJ554ImX7f/7zn7jvvvswffp0jBkzBnl5efjhhx/w3HPPweFw4LLLLtvqdZ555pm47bbbcNlll2HVqlUYN24cvvvuO/znP//B7Nmz066zr2w2Gy699FL87ne/w1577YUTTzwRmqbhlVdewfDhwzM+Bn1x99134/PPP8e9996L119/HUcddRTsdjsqKyuxYsUKLF++3Jqg/LDDDsNtt92G888/HyeddBJ8Ph/8fj8WLFjQ7f7nzp2LZcuW4V//+hcmTZqEWbNmQZIkPPvss6isrMScOXN6VQXVG16vFw899BBOOeUUHHzwwTjllFMwcuRIfPTRR3j55ZdRWlpqzbnQHw466CA8+OCDWL16NaZNm4aamho88cQTMAwD9913X0rrqnPOOQcfffQR7rnnHowZMwZHHXUURo4cicbGRlRWVuLNN9/E2WefjXvvvbdH1z1x4kTcc889mD9/Pvbaay+ccMIJGDduHBoaGrBmzRrk5ORYZ+RPmDABDz30EM455xxMmjQJRx99NHbddVfE43Fs2LABb731FoqKivD1119v0/1x2GGH4f/+7/8wc+ZM7L333rDZbDjooINw0EEH9fq1K8syHnzwQRx99NE4/vjjcdJJJ2HMmDH43//+h1deeQXHHHMMXnzxRaulH2Ae5Hzqqadw4oknYv/998dhhx2GSZMmQZIkVFVV4b333kNDQwMikchWb0s2n8fJ7r77bnz33Xe4/vrr8c9//hPTp09HSUkJNm3ahK+++gpr1qzB448/jtGjR2+X67/33nsxbdo0XHnllXj55ZcxZcoUVFVV4cknn4Qsy1iyZEnGMP2MM87A9ddfj4ULFyIej6dVwyRcd911+PTTT3Hvvffiueeew4wZMzBixAhs3rwZ3333Hd555x3ccsstVjuuadOm4Re/+AXuuusu7L777jj55JNhs9mwbNky5OXldTvvx5Ycdthh+Pzzz63/JzgcDkybNi3j/DDbev9055JLLsHGjRsxbdo0VFRUwG6346OPPsJrr72GUaNG4dRTT00Zd2/fnwHgiiuuwLPPPot///vf2HvvvXHUUUehubkZ//rXv3DQQQdZn88JpaWlOPXUU/F///d/mDx5Mo488kgEg0G88sorcDqdmDx5clol7vjx4zFixAj83//9H2w2G0aNGgVJknDGGWdg1KhR+OUvf2m9d5100kmw2Wx455138OWXX2LmzJl47rnnenyfJUybNg2TJ0/GnDlzkJubixUrVuDTTz/FPvvsg1//+tfWdjv6cyLZAQccALfbjcWLF6OhocGak+cXv/gFPv30U8yePRv77rsvdtttNwwfPhx1dXVYtmwZ4vG4NWcMERHRTkUQERHRTmXu3LkCgLjzzju3uu0RRxwhAIinn37aWrZ+/Xrx85//XFRUVAibzSby8/PF1KlTxS233JJ2+d5su2zZMrHPPvsIh8Mh8vPzxZw5c8S6devEvHnzBABRWVlpbVtZWSkAiHnz5nU79oaGBvHzn/9cjBo1SjgcDrHLLruIq6++WrS3t4tRo0aJUaNGZbzcI488Ig466CCRk5MjHA6HqKioEHPnzhUfffRRxu2fffZZAUBMmTKl27FsyTvvvCMOPfRQ4ff7hdfrFdOmTRPPPPOMWLVqlQAgFi5caG37/vvvi/nz54sf/ehHIi8vTzidTjFmzBhx1llnic8++6zH1/nFF1+ImTNniqKiIuF2u8Xee+8tHnjggR7dr11t6b40DEMsWrRI7LLLLsJms4ny8nJx5ZVXdvsYLFmyRAAQS5Ysybg/AOLggw9OW97W1iZuvvlmscceewiXyyW8Xq/YbbfdxKWXXioCgUDKtn/605/EhAkThN1uFwBSxnDwwQeLTF+PdV0Xf/3rX8U+++wjXC6XcLlcYu+99xZ333230HW9x+MUQmR8Pm/NBx98IGbNmiUKCwut+3H+/Pli48aNadtmet5sTfLj/uWXX4rjjz9e+P1+4XK5xIEHHiheeumlbi/73HPPiWOPPVYUFRUJm80mSkpKxL777iuuvfZa8dVXX6Vsu6X7JeHdd98Vs2fPtvY3bNgwcdRRR4knn3wybdv//e9/Yt68eWLkyJHCbreLvLw8MWnSJHHBBReIlStXpmzb3WMrRPfPu0AgIE477TRRXFwsZFlOu19789pNeP/998Xhhx8uvF6v8Hq94rDDDhPvvvuuuPjiiwUA8cknn6RdprKyUlx88cVi7NixwuFwCJ/PJ8aPHy9+9rOfiWeeeWaL92ey3j6P+/JcXbhwoQAgVq1a1e020WhU3HXXXeKAAw4QOTk5wm63i/LycjFjxgzx5z//WdTX11vbbum+3Nr7VXfPt+rqajF//nwxcuRIYbPZREFBgTjhhBPEBx98sMXbdthhhwkAQlVVUVtb2+12hmGIf/zjH2LGjBkiLy9P2Gw2MXz4cDFt2jRxyy23iA0bNqRtf9ddd1nvS8OGDRMXXXSRaG5u3uL7a3eWL18uAAhJktLe/37/+98LAKKkpKTby/fm/tnae/YTTzwhTj31VDF27Fjh8XiEz+cTkyZNEtdcc43YvHlz2vZben/ekmAwKH75y1+K4cOHC4fDIcaPHy9uv/128cMPP2R8jrS3t4trrrlGjBkzRjgcDlFWViYuuugiUV9f3+17xQcffCBmzJghcnJyhCRJac/zJUuWiD333FO43W5RUFAgZs2aJf73v//16DWRLPG6++GHH8Ttt98uxo8fLxwOhxg+fLi49NJLRTAYzHi53nxO9OV7VXf3y4svvij2339/4fF4BABrv1VVVeLqq68WBx54oCgpKRF2u12MGDFCHH300eKFF17o0X1BREQ01EhCCLHdUh4iIiKiIe6GG27AjTfeiAcffHC7t/Yh2h7WrVuH0aNHY968eVi6dGm2h7NTmjZtGlavXo1gMAiPx5Pt4RBRlpx11ll4+OGHUVlZabVRIyIioqGBc8QQERER9VFrayvuvfde5Ofn47TTTsv2cIhoAAuFQhnn01m6dCneffddHHnkkQxhiIiIiIiGKM4RQ0RERNRLzz//PD7++GM899xzCAQCuP3221MmHSYi6mrDhg3Ya6+9cMQRR2Ds2LHQNA2ffPIJ3n77bfj9fvzpT3/K9hCJiIiIiGg7YRBDRERE1EtPPvkkHn74YZSUlODqq6/GL3/5y2wPiYgGuJKSEpx++ul44403sGrVKkSjUZSWluLss8/GtddeizFjxmR7iEREREREtJ1wjhgiIiIiIiIiIiIiIqLthHPEEBERERERERERERERbScMYoiIiIiIiIiIiIiIiLYTzhHTA4ZhYNOmTfD5fJAkKdvDISIiIiIiIiIiIiKiLBJCoLW1FcOHD4csb7nmhUFMD2zatAnl5eXZHgYREREREREREREREQ0gVVVVKCsr2+I2DGJ6wOfzATDv0JycnCyPhoiIiIiIiIiIiIiIsqmlpQXl5eVWfrAlDGJ6INGOLCcnh0EMEREREREREREREREBQI+mM9ly4zIiIiIiIiIiIiIiIiLqMwYxRERERERERERERERE2wmDGCIiIiIiIiIiIiIiou2EQQwREREREREREREREdF2omZ7AERERERERERERERE/UUIAV3XoWlatodCg5CqqlAUBZIk9d8++21PRERERERERERERERZIoRAc3Mz6urqoOt6todDg5iiKCguLkZubm6/BDIMYoiIiIiIiIiIiIho0KutrUVzczNycnKQk5MDVVX7taqBhj4hBDRNQ0tLC2pqahAOhzFs2LBt3i+DGCIiIiIiIiIiIiIa1HRdRzAYRFFREQoLC7M9HBrkfD4fHA4H6uvrUVxcDEVRtml/cj+Ni4iIiIiIiIiIiIgoK+LxOIQQ8Hg82R4KDREejwdCCMTj8W3eF4MYIiIiIiIiIiIiIhoS2IqM+kt/PpcYxBAREREREREREREREW0nDGKIiIiIiIiIiIiIiIi2EwYxRERERERERERERETUK2eddRYqKiqyPYxBgUEMEREREREREREREdEAtnTpUkiSZP1TVRUjRozAWWedhY0bN2Z7eLQVarYHQEREREREREREREREW3fTTTdh9OjRiEQieP/997F06VK8/fbb+Pzzz+F0OrM9POoGgxgiIiIiIiIiIiIiokHgmGOOwZQpUwAA5513HgoLC3Hrrbdi+fLl+OlPf5rl0VF32JqMiIiIiIiIiIiIiGgQ+vGPfwwA+OGHHwAAsVgM119/PfbZZx/k5ubC4/Hgxz/+MVatWpVyuXXr1kGSJNx+++24//77MWbMGDgcDuy7775Ys2ZN2vU8++yz2H333eF0OrH77rvjmWeeyTie9vZ2XHHFFSgvL4fD4cD48eNx++23QwiRsp0kSViwYAGefPJJTJw4ES6XCwcccAA+++wzAMB9992HsWPHwul04pBDDsG6deu29a7KKlbEEBERERERERERERENQomAIi8vDwDQ0tKCBx98EKeddhrOP/98tLa24u9//zuOOuoofPDBB5g8eXLK5R977DG0trbiwgsvhCRJ+OMf/4jZs2dj7dq1sNlsAICXX34ZJ510EiZOnIhFixahoaEBZ599NsrKylL2JYTA8ccfj1WrVuHcc8/F5MmTsWLFClx55ZXYuHEj/vznP6ds/9Zbb2H58uW4+OKLAQCLFi3Ccccdh1//+te45557cNFFF6GpqQl//OMfcc455+C1117bDvfgjsEghoiIiIiIiIiIiIiGJCGAsJbtUXRyqYAk9f3ywWAQ9fX1iEQiWL16NW688UY4HA4cd9xxAMxAZt26dbDb7dZlzj//fEyYMAF33XUX/v73v6fsb8OGDfjuu++sIGf8+PE44YQTsGLFCmufv/nNb1BSUoK3334bubm5AICDDz4YRx55JEaNGmXta/ny5Xjttddw880349prrwUAXHzxxTjllFNw5513YsGCBRgzZoy1/TfffIOvv/4aFRUV1tgvvPBC3Hzzzfj222/h8/kAALquY9GiRVi3bp217WDDIIaIiIiIiIiIiIiIhqSwBux2T7ZH0emriwC3re+XP/zww1N+r6iowCOPPGJVpyiKAkVRAACGYaC5uRmGYWDKlCn4+OOP0/Y3Z84cK4QBOludrV27FgBQU1OD//73v7jqqqusEAYAjjjiCEycOBHt7e3WshdeeAGKouCSSy5JuY4rrrgCTz31FF588UUsWLDAWn7YYYelBCv77bcfAOCkk06yQpjk5WvXrh20QQzniCEiIiIiIiIiIiIiGgT++te/4pVXXsFTTz2Fn/zkJ6ivr4fD4UjZ5uGHH8aPfvQjOJ1OFBQUoKioCM8//zyCwWDa/kaOHJnyeyKUaWpqAgCsX78eADBu3Li0y44fPz7l9/Xr12P48OEpIQoA7Lbbbin76u66E0FPeXl5xuWJMQ1GrIghIiIiIiIiIiIioiHJpZpVKAOFaxuPyE+dOhVTpkwBAMyaNQvTp0/H3Llz8c0338Dr9eKRRx7BWWedhVmzZuHKK69EcXExFEXBokWL8MMPP6TtL1E905UQYtsG2gPdXXc2x7S9MIghIiIiIiIiIiIioiFJkratFdhAlghYDj30UNx999246qqr8NRTT2GXXXbB008/DSlpMpqFCxf26ToSc8B89913aeu++eabtG1fffVVtLa2plTFfP311yn72hmxNRkRERERERERERER0SB0yCGHYOrUqVi8eDEikYhVTZJcPbJ69Wq89957fdr/sGHDMHnyZDz88MMprc1eeeUVfPnllynb/uQnP4Gu67j77rtTlv/5z3+GJEk45phj+jSGoYAVMURERERERERERET9yNA0GLEYjGgURiwGPRoFAMiqCslmg2yzdf5fVSF104qJqCeuvPJKnHLKKVi6dCmOO+44PP300zjxxBNx7LHHorKyEvfeey8mTpyItra2Pu1/0aJFOPbYYzF9+nScc845aGxsxF133YVJkyal7HPmzJk49NBDce2112LdunXYc8898fLLL2PZsmW47LLLMGbMmP66yYMOgxgiIiIiIiIiIiKiHjBiMStY6Rq0aOEw9LY2aKEQ9EgEQtNgxOPmT00DJAmSJEFSlM5/qgq546fidEJ2OKC4XOZPm81cn/TT+j9DHEoye/ZsjBkzBrfffju++eYb1NbW4r777sOKFSswceJEPPLII3jyySfx+uuv92n/Rx99NJ588kn89re/xdVXX40xY8ZgyZIlWLZsWco+ZVnG8uXLcf311+OJJ57AkiVLUFFRgdtuuw1XXHFF/9zYQUoSg3mGmx2kpaUFubm5CAaDyMnJyfZwiIiIiIiIiIiIqJ8IIayAxYhGoScFLEY0Cq29HfG2NuihEIxYDCIeh65p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McRbWhALBhFvbka4thZaSwu0UAjCMCDbbFDcbtj9fsilpWynRANSr0Ktjv+zPRgR0ZZt3LQJN9xyC15csQLNwSDG7LILfrlgAc464wxrm1gsht/fdhteXLECP1RWQtM07LXnnlh4zTU45KCDUvb3xFNP4Y4778R3a9dCkiSMGjUK5513Hi699FIsXboUZ599NgDg0EMPtS6zatUqHHLIIRnHd+ONN0KSJDz66KMpIUzClClTMGXKFOv39vZ2XH/99fjXv/6FzZs3o6KiAueffz6uuOKKlM8DSZJw8cUX44ADDsDvf/97fPvtt3jyyScxa9YsbNy4Eddddx2ef/55NDc3Y+zYsbjiiitwzjnn9Ok+7gsGMUREREREREQDmDAMxFtbEQ8GzWqXQACxxkZo4TBELAZIklnt4nbDXVDANks0aGytDVrKttt5LEQ0dAkhzM/LAUKy27dboBzYvBk/PvxwSJKEn19wAYoKCvDSq6/iggUL0NLaiksuuggA0NLaiiX/+AfmnHwyzp03D61tbVjyz3/i2Nmz8c5rr2Hyj34EAHj1tddwxrnn4tCDDsLvb7oJisOBr776Cu+88w4uvfRSHHTQQbjkkkvwl7/8Bddccw122203ALB+dhUKhbBy5UocdNBBGDly5FZvjxACxx9/PFatWoVzzz0XkydPxooVK3DllVdi48aN+POf/5yy/WuvvYZ//etfWLBgAQoLC1FRUYFAIID9998fkiRhwYIFKCoqwosvvohzzz0XLS0tuOyyy7bhHu85BjFEREREREREA4gWCnXO7dLQgMjmzZ0txoSA7HRCcbvhKCyE4nBke7hEREQDmojF8MXll2d7GJZJd9wBaTt9fl9/003QdR0fv/ceCvLzAQAXnHsufnbOOfjdH/6A888+Gy6XC3l+P7777DPY7XbrsufOm4c99t0X99x3H+7/618BAC++/DJycnLwn3/9CzaPBzavN+X6dtllF/z4xz/GX/7yFxxxxBHdVsEkfP/994jH49hjjz16dHuWL1+O1157DTfffDOuvfZaAMDFF1+MU045BXfeeScWLFiAMWPGWNt/8803+OyzzzBx4kRr2XnnnQdd1/HZZ5+hoKAAADB//nycdtppuOGGG3DhhRfC5XL1aDzbgs0yiYiIiIiIiLLEiMcRbWhAW2UlGj/5BJteegkbn3sOm154AXVvvongN99Aj0ah5uTAPWoUPLvsAtfw4bD7/QxhiIiIyCKEwDPLl+PYo4+GEAL1DQ3WvyMPOwzBYBCffPopAEBRFCuEMQwDjY2N0HQd++y1l7UNAOTm5qK9vR0rX3+9X8bY0tICABlbkmXywgsvQFEUXHLJJSnLr7jiCggh8OKLL6YsP/jgg1NCGCEE/v3vf2PmzJnmfVJfb/076qijEAwG8fHHH2/jreoZVsQQERERERER7QBCCGhtbVa1S6SuDtG6OuihEPRYDBIA2eWC6nbD5fdDVvknOxER0baS7HZMuuOObA/DIiVVofSnuvp6NAeDeHDpUjy4dGnGbTbX1Vn//8djj2Hx3Xfjm2+/RTwet5aPHjXK+v/8887DU888g+NPPRUjhg/HkUcdhZ/+9Kc4+uij+zTGnJwcAEBra2uPtl+/fj2GDx+eFtwkWp+tX78+Zfno0aNTfq+rq0NzczPuv/9+3H///RmvY/PmzT0ay7YacN/q/vrXv+K2225DbW0t9txzT9x1112YOnVqt9svXrwYf/vb37BhwwYUFhbi5JNPxqJFi+B0OgEAN9xwA2688caUy4wfPx5ff/31dr0dREREREREtHPTo1FzXpdgENHGRrPFWGsr9HAYQgjINhtUjwf2ggLIDgcnICciItoOJEnabq3ABhLDMAAAc+fMwRmnnZZxmz123x0A8OgTT+C8n/8cxx93HC6/5BIUFxZCURT88Y47sHbdOmv74qIifPj221ixYgVefv11rHj1VSxZsgRnnnkmHn744V6PcezYsVBVFZ999lnvb2APdG0xlrhPfvazn2HevHkZL/OjjvlwtrcBFcQ88cQTuPzyy3Hvvfdiv/32w+LFi3HUUUfhm2++QXFxcdr2jz32GK666io89NBDOPDAA/Htt9/irLPOgiRJuCMp5Zw0aRJeffVV63eVZxURERERERFRPxK63jmvS0sLIrW1iDU3Qw+FYGgaZEWB7HRC9XrhKCqCJLNTOBEREfWfosJC+Hw+6LqOww49dIvbPr1sGXapqMCTjzySciLITYsWpW1rt9tx7FFHYeYJJ0Bxu3HRRRfhvvvuw3XXXYexY8f26kQSt9uNGTNm4LXXXkNVVRXKy8u3uP2oUaPw6quvorW1NaUqJlFkMSqpeieToqIi6z45/PDDezzO7WFAffO74447cP755+Pss8/GxIkTce+998LtduOhhx7KuP27776LadOmYe7cuaioqMCRRx6J0047DR988EHKdqqqorS01PpXWFi4I24OERERERERDUFCCGjt7Qhv2oSWr7/G5rffRvXy5dj4/POoeeUVNHzwASKbN0NWVThLS+EdPRrukSPhLC6G6vEwhCEiIqJ+pygKTjz+eDyzfDk+//LLtPV19fWd23Z8FxFCWMs++PBDvN/luHpDY2PK77IsWxUk0WgUAODxeAAAzc3NPRrnwoULIYTAGWecgba2trT1H330kVVt85Of/AS6ruPuu+9O2ebPf/4zJEnCMcccs8XrUhQFJ510Ev7973/j888/T1tfl9SqbXsbMKUhsVgMH330Ea6++mprmSzLOPzww/Hee+9lvMyBBx6IRx55BB988AGmTp2KtWvX4oUXXsAZZ5yRst13332H4cOHw+l04oADDsCiRYswcuTIbscSjUatJxLQOYkQERERERER7XyMWAzxlhbEgkHEm5sRDgSgBYPQQiGzxZiqQnG7Yff7IZeWssUYERERbTdLH3kEK1auTFv+i/nzccsNN+CNt97C9MMOw7nz5mG38ePR2NSETz79FK+9/joCHXOqHHv00Xj2uedw8umn4ydHHonK9evxwEMPYbcJE9De3m7t88Jf/AJNTU04eNo0lI8ciepAAHfddRcmT55szdMyefJkKIqCW2+9FcFgEA6HAzNmzMjY4Qowj+n/9a9/xUUXXYQJEybgjDPOwLhx49Da2orXX38dy5cvx8033wwAmDlzJg499FBce+21WLduHfbcc0+8/PLLWLZsGS677DKMGTNmq/fXH/7wB6xatQr77bcfzj//fEycOBGNjY34+OOP8eqrr6KxS9i0vQyYIKa+vh66rqOkpCRleUlJSbfzucydOxf19fWYPn26eUaSpmH+/Pm45pprrG32228/LF26FOPHj0dNTQ1uvPFG/PjHP8bnn3+eNslPwqJFi9LmlSEiIiIiIqKhTxgG4q2t0DqCl0gggFhjI7RwGCIWAyQJissFxe2Gu6AAkqJke8hERES0E7nv73/PuPzMuXNRNmIE3nntNdxy66149rnncO+DD6IgPx8TJ0zA75OOd595+umoDQTw4NKleGXlSuw2fjyWPvAA/v3ss3jz7bet7eb+9Kf4+9KluH/JEjQHgygtLcWcOXNwww03QO6oqiktLcW9996LRYsW4dxzz4Wu61i1alW3QQwAXHjhhdh3333xpz/9Cf/4xz9QV1cHr9eLvffeG0uWLMHPfvYzAGahxvLly3H99dfjiSeewJIlS1BRUYHbbrsNV1xxRY/ur5KSEnzwwQe46aab8PTTT+Oee+5BQUEBJk2ahFtvvbVH++gPkkiuP8qiTZs2YcSIEXj33XdxwAEHWMt//etf44033sDq1avTLvP666/j1FNPxc0334z99tsP33//PS699FKcf/75uO666zJeT3NzM0aNGoU77rgD5557bsZtMlXElJeXIxgMIicnZxtvKREREREREQ0UWjiMeDBozu3S2IhIIACtvR16OAwIAdnptIIXZSeY6JeIiGiwissygn4/RpWXw2m3Z3s4Q4oRi0F2OmHzerM9lB0qEomgsrISo0ePhtPpTFvf0tKC3NzcHuUGA6YiprCwEIqiIBAIpCwPBAIoLS3NeJnrrrsOZ5xxBs477zwAwB577IH29nZccMEFuPbaa61ULpnf78euu+6K77//vtuxOBwOOPgFm4iIiIiIaEgx4nHEW1rMNmPNzYgEAogHg9Da2wFdBxQFqscDNScHjuJizuVCRERERP1iwAQxdrsd++yzD1auXIlZs2YBAAzDwMqVK7FgwYKMlwmFQmlhi9JRFt5doU9bWxt++OGHtHlkiIiIiIiIaOgQQkBrazODl2AQkbo6xOrrzWqXWAwSANnlgup2w+X3Q1YHzJ/HRERERDTEDKhvmpdffjnmzZuHKVOmYOrUqVi8eDHa29tx9tlnAwDOPPNMjBgxAosWLQJgTtZzxx13YK+99rJak1133XWYOXOmFcj86le/wsyZMzFq1Chs2rQJCxcuhKIoOO2007J2O4mIiIiIiKh/6dGo1WIs2tRkthhrbYUeDkMIAdlmg+J2w15QANnhgCRJ2R4yEREREe0kBlQQM2fOHNTV1eH6669HbW0tJk+ejJdeegklJSUAgA0bNqRUwPz2t7+FJEn47W9/i40bN6KoqAgzZ87ELbfcYm1TXV2N0047DQ0NDSgqKsL06dPx/vvvo6ioaIffPiIiIiIiItp2Qtc7W4wFg4jU1iIWDEJvb4ehaZBkGYrLBdXrhaOoiC3GiIiIiCirJNFdDy+y9GbSHSIiIiIiIuo/QgjooZBZ7dLSgkh9PaJ1dWaLsXAYkCQoTidUtxuK2w3ZZsv2kImIiCgL4rKMoN+PUeXlcNrt2R7OkGLEYpCdTti83mwPZYeKRCKorKzE6NGj4XQ609b3JjcYUBUxREREREREtHMzYjGr0iXe3IxwIAAtGIQWCpktxlTVbDHm90MuLWWLMSIiIkrFugPqJ/1Zw8IghoiIiIiIiLJCGAbira3QEi3GAgHEGhuhhcMwolGrxZjidsOVnw9Z5Z+wRERElJkshPndQteRXrtA1HvxeBwArPnotwW/xRIREREREdEOoYXDZouxYBCxpiZEams7W4wJAdnphOJywVFYCMXhyPZwiYiIaBBRhIASj6OlrQ1el4tVs7RNhBAIBoNwOByw9UPrWwYxRERERERE1O+MeBzxlhazzVhzMyKBAOLBIPRQCELTAEWB6vFAzcmBo7gYkixne8hEREQ0yLmjUbQFg9gEIMfrhU1RAAYy20zE45AkCfpOUJ0shEA8HkcwGERbWxtGjBjRL/sd+vccERERERERbVdCCGhtbWbwEgwiUleHWH29We0Si0ECILtcUN1u2Px+thgjIiKi7cKpaUBbG0LxOFqDQZ7o0U+EpkGy2XaqimWHw4ERI0YgJyenX/bHb79ERERERETUK3o0arYYa2lBtLERkUAAWmsr9HAYQgjINhsUtxv2ggLIDgdbgxAREdEO49Q0ODUNuiTB4HeQfhGprYV39GjkTZiQ7aHsEIqi9Es7smQMYoiIiIiIiKhbQtcRb20153UJBhGprUUsGITe3g4jHoekKFBcLqheLxxFRTzzlIiIiAYERQgoQmR7GENCPBqFDYDT6cz2UAYtBjFEREREREQEwGwxpodCVrVLpL4e0bo6s8VYJAIAUJxOKC4XnKWlkPv5TEEiIiIioqGIQQwREREREdFOyojFzHldWloQa2pCOBCA1tICrb3dbDGmqmaLMb8fstPJFmNERERERH3AIIaIiIiIiGgnIAwDWlub1WIsWleHaH09tHAYRjQKSZahuFxQ3G648vIgq/xzkYiIiIioP/CbNRERERER0RCkhcOIB4PQWloQbWxEpLa2s8WYYUDuaDHmKCyE4nBke7hEREREREMWgxgiIiIiIqJBzojHO1uMNTcjEgggHgxCD4UgNA1QFKgeD9ScHDiKiyHJcraHTERERES002AQQ0RERERENIgIIcwWYy0tiAeDiNbXI1pXB629HUYsBgCQXS6objdsfj9bjBERERERZRm/kRMREREREQ1gejSKeDCIeKLFWCAArbUVejgMYRiQ7XYobjfsBQWQHQ5IkpTtIRMRERERURIGMURERERERAOE0HXEW1sRDwYRCwYRqa1FLBiE3t4OIx6HpChQXC6oXi8cRUVsMUZERERENAgwiCEiIiIiIsoCIQT0UKiz2qWhAZHNm6G1t0OPRAAAisMBxe2Gs7QUss2W5RHTYCOEgN7ailhdHeL19YjV1cGIxWDLzYWalweb3w81Lw9qbi5DPSIiIqLtiEEMERERERHRDmDEYua8Li0tiDU1IRwIQGtpgdbebrYYs9nMFmN+P2Snky3GqNeMaBSx+nordInX1cGIRtO201tagKqqzgWyDDUnB7a8vJSARvF6+TwkIiIi6gcMYoiIiIiIiPqZMAxobW1Wi7FoXR2i9fXQwmEY0SgkWYbickFxu+HKy4Os8k8z6h1hGNCamhCrq7MqXrRgMH1DWYYtPx/2oiLYioqgOJ2IB4PQmpoQb26G1tQEEY9Da26G1twMVFZaF5VUFarfbwY0ST9ll4sBDREREVEv8Ns+ERERERHRNtLCYfPgdksLoo2NiNTWQguFoIfDgGFAcjigut1wFBZCcTiyPVwahPT29pTQJV5fD6HradspPp8ZuhQWmj/z8yEpSso2juHDrf8LIaC3t0Nrbka8qakzoGluhtA067qSyQ5HSuWMFdDY7dvnxhMRERENcgxiiIiIBilhGOznTkS0gwkhzIPTra1mtUtzMyKbNyPe3Aw9FILQNEBRoHo8UL1eOIqK+F5NvWbE44g3NKTO7RIKpW0n2WxWpYu9sNCqeOkNSZKger1QvV44y8qs5cIwzNZ5iYCm46fe2mq2QKutRay2NmVfisfTWTmTCGpycyGx4ouIiIh2cvw2RERENEgIXUesqQnRhgaEa2oQa2gAZBmSLEOy2SArCiRFgaSqkBTFbHOjKJA71lnbKorZTkRRzN87/qFjeWIbSJK5bWJ98mWT/09EtIMJw4AwDKDjpzAMszJACAhd7369YZhBSuL/XS5rxOMwdB1C08z96DqMeNz8f9IyoevQO1qMQZIgO51QPR7Y/H62GKNeE0JACwYR76h2idXVmS3ChEjdUJKg5uXBnhS6qLm52+2zWJJl2Px+2Px+uCoqOseraeZ4k1qbxZuaYIRC0Nvbobe3I7pxY+q4fT6oSe3NbHl5UHw+hpRERES00+BfCURERAOY1taGaEMDonV1CFVXI9bSAhGNQrLbobjdQOLAYyhk/jSMjD8hBATMs15TDuwkfpckCCGsIAaJsCXp90zLEwGO3DX8UVVIqmr9TAlzkgKhHoU93VyWB2+IskcIkRpkGAag61bIkRaCJH7fSkhiGAagaVYYYmiaFYAYHT+RCEOEsMZhBSyJ976k8VnvhZKE5MPVArB+t94fgZT3uy39tBcUQHY4GEhTr+mRSEroEq+vh4jH07aT3W4zdOmoeLHl50O22bIw4lSSqsJWUABbQUHKciMa7Qxmkn6KaNSsrGlpAdav77xAR9DTNaCR3W6+roiIiGjIYRBDREQ0gBjxOGKNjYg2NiJcXW1O7NzRikT1erf73AIi6cBlxmAn6eCmoeuApnUb/iRfRuoS9iSCIaDjQGimA6CJMEaWzW0SwU1im/6oBuoIglgNRINRWiXIlqpCkkKSXleFJH7vUhViXWfXMCTxPpEchgApIbAVgiS9H0gARPJrPFMQ3GWZLMuAzdb52kz+2fXyRFkgdN1sMVZfb4Uveltb2nZWuNERvNgLC6F4PFkYcd/JDgccJSVwlJRYy4QQMMLhlMoZLXn+mcZGxBsbU/Yj2WxWWzNbUkgj97LlGhEREdFAwiCGiIgoi4QQiLe0INbYiEgggPCmTYi3tMCIx6E4nVB9PrgLC3fYQUQreMgC0V34k+GnEMI8e7gv1UAZfva6GigpwGE10M5rQFSFGIYZavalKiTx3E/cHiRVhWwt1EgKROUeVI9Y4SrRECaEgN7amhK6xBsbzddnF2pubkrooublDcn3dkmSoLjdZhXv8OHWciEE9LY2M5hJmn9GCwYh4nHEN29GfPPmlH3JLldK5Yzq90P1+wdElRARERHR1jCIISIi2sH0aBSxhgZEGxrMdmNNTdBCIUiybE6UW1IC2W7P9jB3uJSDvVnQk8qexIFuI3HAPVPok3zge3tVAyVCnO1cDWT9fwBXA21TVcgW5hmxqkLicXN5N1UhXZ8fPaoK6VIFkvK7JFk/e9IeC7IMWZK6rwrpGqQQUb8xOj7PrdClrs6cN6gL2eHoDF2KimArLNwpP+eTSYl5Y3w+YORIa7nQdbONWZf2ZnprK4xwGLFwGLGampR9KV6vGcwkVc+oOTnmZxoRERHRAMEghoiIaDsThoFYczNijY0I19YiUlODeGsrhGFAcblg8/ngKC4eUAe3d0aJg9TZOHDT62ogXQfi8b5XA1k3uvtqoMSB+22qBkpsm6kaSJZ7VhWSXAnSD1UhKQFI4v5Pvo867hcA3YcaXcMNVoUQDXnCMKA1NZnzunRUvGjBYPqGsgxbfr41r4u9qAiK18vXfg9JimJVvLiSlhvxuNXSLJ7U4swIh6G3tZnt3qqqknYkmVVHicqZjlZnis/Hx4KIiIiygkEMERHRdqCFw4g1NCBSV4dwdTViwSD0cNjsAe/zwTVihHnwmggDsBqoa0urXlQDJQdG3VUDpYUeXatE+lIVkinw6C5AISLaCr293Qxd6uoQr69HvKEBQtPStlN8PqvKxV5UBFt+PisxtgPZZrMqipLpkUhqa7OOnyIpuEkmqarV0ixRRWPz+yG7XPx8ICIiou2KR4CIiIj6gdB1xJqaEG1oQLimBpFAAFpbG4QQUD0e2P1+yKWl/COfBqRsVgMREWWbEY8j3tBghS6xujoYoVDadlJHGGCFLkVFUDiBfFYpTieUYcPgGDbMWiaEgBEKpVTOJFqcCU0zg7X6eoST9iM7HCmVM1ZA43Ds+BtFREREQxKDGCIioj6Kt7Yi1tiIaF2dOddLSwtENArJbofN54O7vJwHtomIiAYQIQS0YNCa1yVWV2dWTSS3bQTM1lZ5ebAnhS5qbi5PqBgEJEmC4vFA8XjgLCuzlgvDgN7amlI5ozU1QWttNef7CQQQCwRS9iW73SmVM2peHmy5uZBY1UxERES9xG8PREREPWTE42bw0tiIcHU1ovX10DrOmFW9XjgKC6HwzEkiIqIBQ49EUkKXeH09RDyetp3sdlutr2yFhbAVFEC22bIwYtpeJFmGmpsLNTc3ZbnQNDOcS6qc0ZqaoLe3wwiFEA2FEN24MWlHEhSfz5p/xpqHJicnay1GiYiIaOBjEENERNQNIQTiLS2INTYiEgggvGkT4i0tMOJxKE4nVJ8P7sJC/tFNREQ0AAhdR7yx0Qxc6uoQq6+H3tqatp2kqrAVFMBWVGRVvCgeTxZGTAOB9XwoKEhZbsRiKZUziYDGiEaht7RAb2kB1q/vvIAsm8FMonKmI6BRPB5WUhER0YAgDAMiHofQNOufkfh/l+Vd12mtrZA0DYX775/tmzFoMYghIiJKokejiDU0INLQgHB1NWJNTdBCIfMsSq8XztJSniFLRESUZUII6K2tiNXXWxUv8cZGwDDStlVzc83QpSN4UfPyeBIFbZVst8NeXAx7cbG1TAgBIxzuDGiSfgpNg9bYCK2xMWU/ks3WWTmT1OKM8wsREVEmQtc7g5AM4UhKUJJpfdIyo8u6TN+TeiOWn99Pt3LnxCCGiIh2asIwEGtuRqyxEeHaWkRqahBvbYUwDCguF2w+HxzFxTyTkYiIKIuMWCw1dKmrgxGNpm0nOxxW6GIrKoK9oIATrlO/kSQJitsNxe2GY/hwa7kQAnpbW0rlTLypCVowCBGPI97xnE0mO52pc890VNDwhB8iooFNCAF0hCVdg46uYYjRTUCSMSjpWJ82b932IEmQVLXzn80GOfn3pOWJ/2utrfCMH7/9xzaEMYghIqKdjhYKme3G6uoQqq5GPBiEHg5Dttmger1wjRgBmZOwEhERZYUwDGhNTea8Lh3hixYMpm8oy7Dl53eGLkVFULxenjxBO5wkSVB9Pqg+H5wjR1rLha5Da2lJDWiam6G3tsKIRBCrqUGspiZlX4rXmx7Q5ORAUpQdfbOIiAatRFiSFpRkasu1haqT7tbvkLBEllNCEbmbgCRlm26Wd10HWe7196VQVRWcZWXb6cbuHHiUiYiIhjxD0xBvbka0oQHhmhpEAgFobW0QQkD1eGD3+yGXlvLADRERURbo7e0poUu8ocE8yNGF4vPBXljYWfGSn8+D0zSgSYoCW0eY4kpabsTj0ILBtAoaIxyG3tYGva0N0aqqpB1JUHNzO1ucdfxUfD5+fyWiQUsI0dmGq5sWW91WnHS3PrEfXd/hYYncXUDSsSxjxcmW1vM7zpDDIIaIiIakeGsrYo2NiHZUvcRaWiCiUUh2O2w+H9zl5fxiQ0REtIMZ8TjiDQ2I19eb4UtdHYxQKG07yWaDrbDQnNelqAi2wkIoLleGPRINPrLNBnthIeyFhSnLjUgkpXImEdCIeBxaczO05mZE1q2ztpdU1Qxoklqb2fLyILtcDGiIqF8IIXo1B0m367upOtkhZDlz660uoUmP1ncNWjjnHPUCgxgiIhoSjHjcDF4aGszgpaEB8fZ2s1WE1wtHYSEU9ognIiLaYYQQ0IJBa16XWH09tKam9DNUJQmq398ZuhQVQc3N5YFk2unITiccpaVwlJZay4QQMEIhc86Z5ubOn83NEJpmBpsNDQgn7UdyODpbmyX95HxJREOTMAyzsqSHc5BsdbL3LIQlkqJsve3WltZ3N8cJwxIaQBjEEBHRoCSEQLylxZzrJRBAeNMmxFtaYMTjUJxOqD4fPIWF/NJFRES0g+iRiBW6JCpeRDyetp3sdltVLvaiItgKCjhBOVE3JEmC4vFA8XiApN78wjCgt7amVM5ozc3QOqrAY4EAYoFAyr5ktzulckb1+2Hz+835AohouxKGkXkOku6CkEyTvXdTcQJd3yG3obu5R7Y4P0nSsm4ng1cU/t1OOwV+2hIR0aChR6OINTQg0tCAUFWV+YdnKARZUaB4PHCWlvJADhER0Q4gdB3xxkYzdOmodtFbW9O2kxQFtsLClDZjiseThRETDS2SLJttyXJzgVGjrOVC08xKtC4tzvT2dhihEKKhEKIbN6bsS8nJ6ayc6Qho1JwcHhilnY4wjMyTuW9tsvcttN5KTPYOw9ght6G7OUi21narR5PBs1KVaJswiCEiogFLGAZizc2INTQgHAggUlODeEsLhBBQXC7YfD44iov5hZCIiGg7EkJAb2vrDF3q6hBvbMx4UEnNzYWtqMic/6KoCGpeHg/mEu1AkqrCVlAAW0FBynIjFkttbdbUBK2pCUY0Cr2lBXpLC7BhQ+cFOoKelAqavDwoHg+/e1NWWZO79yAI2WrbrS6Tve/wsKQnc5D0ZH1imaLw9Uk0gDGIISKiAUULhcx2Y3V1CFVXIx4MQg+HIdtsUL1euMrKILN9AhER0XZjxGKI1dentBkzIpG07WSHwwxdOuZ1sRcUcA4KogFKttthLy6GvbjYWiaEgBGJpFTOJIIaoWnQOsKaZJLNltraLBHQOJ07+ibRACWEAJLacGUMQ7bUdmsrk72nzTO2PUhS7+Yg6W5dhqAFDEuIdlo8kkVERFllaBrizc2INjQgXFODSCAAra0NQgioHg/sfj/k0lJ+WSUiItoOhGFAa2pCrGNOl3hdHbRgMH1DWYYtP78zdCkshOLz8fOZaBCTJAmKywXF5YJj+HBreaIKLq2CJhiEiMcR73ivSCY7nWZrs0SLs46fbBs8MAkhAF3fatutrU32bnRzmR0almSag6Qvk70nzXECWebnGxH1OwYxRES0w8VbWxFrbES0o+ol1jGpqGS3w+bzwV1eDklRsj1MIiKiIUdvb08JXeINDeZBsy4UrzcldLHl53NCb6KdhCRJUH0+qD4fnOXl1nJhGNBaWlIqZ+JNTdBbW2FEIojV1CBWU5OyL8XrTa+gyc3ld/0eEEJ0tuHaQout7sKQrm23shKWyHKP225tbbL3tIoTPoeIaJDhN2kiItrujHjcDF4aGszgpaEB8fZ28488rxeOwkIobGVCRETUr4x4HPGGBsQ7gpdYXR2MUChtO8lmg61jThd7URFshYVQXK4sjJiIBjJJlmHz+2Hz++EaPdpabsTj0ILB1BZnzc0wQiHobW3Q29oQra5O2pEENSfHrJxJCmgUr3fQzSklhOjx/CNbnew9w/odQpa33Harh5O9Z1w/yB5PIqLtiUEMERH1OyEE4i0tiDU0ILJ5M8KbNiHe0gIjHofidEL1+eApLOQXcyIion4ihIAWDFrzusTq6825Hbqe8SxJUP3+ztClqMg8O50tWIioj2SbDfbCQtgLC1OWG9FoamuzjoBGxGJmcBMMIrJunbW9pChQ/f6UuWdsfj9kt3ub3qOssKSXbbd6OuH7DqEoPQ9CejvZO/8mIyLaIRjEEBFRv9CjUTN4aWhAqKrKPBsuFIKsKFA8HjhLS9kjmmiI6/HkrLoOADyTkmgb6JGIFbokKl5EPJ62nex2m63FEsFLQQE/j4loh5AdDjhKS+EoLbWWCSFghEKdlTOJoKa5GULXzSq+hgaEk/Yj2e1W5Yzq85ntunox2Xvie8f2tqWWW9223dpS663EOkXh9yEioiGAQQwREfWJMAzEmpsRa2hAOBBApKYG8ZYWCCGguFyw+XxwFBfzDFuiASYxOWtPzgIdEJOzsrc4kXlwsrExJXTRW1vTtpMUBbbCwpQ2Y4rHk4URExFlJkkSFI/HfG8aMcJaLgwDeltbWgWN1tICEYshFgggFghs+/X3NAjJ8H1ia+v5dw8REW0JgxgiIuoxLRQyq17q6xGqrkY8GIQeDkO22aB6vXCVlUHmRL5E22yoTc6aKURBR5uQrQY6hgERi0HEYjD6e4ySlHYwZWttPba0PjkEgizzgAz1iRACelubGbokKl4aGwEj/RWg5uamhC5qXh7PmiaiQUmSZXPemJwcYNQoa7nQdbPtYkdAo7e3967tVvIyReFnMxERZQ2PlhERUbcMTUO8uRnRhgaEa2oQCQSgtbVBCAHV44Hd74cybFi2h0mUFVucnLW7MGSQTs66tbNA+7ulWI9bnPWgJUmmqh4r5BHCXJahndM2S4Q8Xe6XbtuObKklSZf7GjyQNKQYsZhV5ZKoeDEikbTtZIejs71Yx1wMssORhRETEe04kqLAlp8PW35+todCRES0TRjEEBFRinhrK2INDYh2VL3EWlogolGzN7PPB3d5Odv50KCRMSzZwgH6bltzdbN+h8g0OWsvqzi6PUt0gJ45L0mSGTYoCuBwoL/fcaxqox48zluboLdr4GZVLWzvkEdRum+b0tvnAc8W3mGEYUBrakKsI3iJ19VBCwbTN5Rl2PLzO0OXoiIoPh8fGyIiIiKiQYpBDBHRTs6IxRBrakK0ocEMXhoaEG9vhyRJUL1eOAoLofCMW9qORFLlQ4/abm3tIHk2JmdVlC23s9rKvCYZKyU4Oet2IyWFPP3Nej4nPQ+3pTIq+bWQEvJsxzCwV8/R7lq3dfd62MmCBL29HbH6+s4WYw0NGR83xetNCV1s+flmizuifmDE49Da26GHw9AjEUgABABbTg5sublsK0tERES0A/AbFxHRTkYIgXhLiznXy+bNCG/ciHhrK4x4HIrTCdXng6ewkAd/KUVaWLKlOUi6axnVzWTw2FFhSW9aQm2p9RYPLtMWSLIMyW4H7PZ+33evQ8setm/rGlru8JBna6FlpuqvTOuz/Do0NA3xhgYrdInV1cEIhdK2k2y2lHldbIWFUFyuLIyYhiJhGNDDYSt4EYYBWVWheDxwlZTAUVICm8+HWGMj2tevR7i6GhDCnG8oJ4ehDBEREdF2wm9ZREQ7AT0aRbShwax6qapCvLkZWigEWVGgeDxwlpZCttmyPUzaRsIwuj/TvpsQZIttuZLnK8kwSfT2sMUghO2WaCe33UMeXd/ye0Vf27clhTrbta1fchu/7qrTtra+u/eZLicnCCHMyaPr6qyKl3hTU+f8QwmSBNXvTwld1NxcnuxA/UIIASMahRYKQQ+FYMTjZkWzywXV54N3zBg48vOtypeUCufRo5G7++6I1tUhtGkTQhs2mKEMAFtHKMNWtERERET9h0EMEdEQJAwDseZmxBoaEA4EEKmpQbylBTAMyG43bD4fHMXFPDA9yAghoDU1IVJVheimTeaZrpnmptieejMBeS9aGnECcqLskmTZDAe2Qyifca6mrVXs9KJ9m0XXYeg6EI32+22ALKe8l+mhUMb5f2SXywxcEsFLQQFPdKB+Y2ga9FAIWigEIxwGAMh2O1SPB67Ro+EoLLRCFNXr3epnquJwwF1WBndZGfQ990QkEEB40yaEqqoQ2rDBnKsoEcowPCQiIiLaJgxiiIiGCC0UMtuN1dcjVF2NeHMz9EgEss0G1euFq6yM7SYGIaHriAYCiFZVIbJhA/T29q1fKBGW9LSdT0/OEu/4ybCEiHpLkiRINtv2C3l0fYvVfVtr39Zt6zZN66xwMQyIaBR6UsgjKQpsBQVW6GIvKoLsdvM9kvqFMAzokYgZvLS3A7oOSVWhuN1wFBbCWVwMu99vVrvk5Gxz4Kc4HPCMHAnPyJHQ9twT0UAAoY0bzX/r15vP99xcqD4fQxkiIiKiPuAROSKiQcrQNMSbm812Yxs3IlpXB62tDUIIqB4P7Hl57Dk/SBmRCCIbN5qVLxs3pp51rShwDBsGZ3m52d4mUzsdthIhop2E1BE8Q1UBp7Nf9y2EADpCnq7t2WS7HWpeHg9IU7/Ro1HooRD0cBhGJALIMhSXC6rbDc+oUXDk50PtaDGmbufvd6rLBbWiAp6KCmihECKBAELV1Wa1zPr1kFQVNr8fqsfD1wARERFRDzGIISIaROKtrYg1NCDaUfUSa2mBiEYh2e2w5eTAXV7Og/CDlBYMIlJVhUhVFWKbN6fMMyC7XHCWlcFZXg778OGsbCIi2gEkSQISYXe2B0NDiqFp0MNhK3gRQpjhnssF14gRZrVLbq4Zuni9WQ07VLcb3tGj4R09GlpbG8KBAEJVVYjU1KC9rg6y3d45TlaDEREREXWLR3KIiAYwIxZDtLERscZGM3hpaEC8vd2ciNXrhaOwMHXiVRo0hGEgtnmzFb7oLS0p69W8PDjLy+EsL4etsJAHN4iIiAYhIQSMSARaKAQ9FIKhaeb3OI8HNr8fOePHw+b3m8FLTg5kuz3bQ+6W6vXC5/XCN2YM4q2tiAQCaF+/HpFAANG6OsgOB+x+PxS26CMiIiJKwyCGiGgAEUIg3tJizvWyeTPCGzci3toKoWmQHQ6oPh88hYVsAzFIGbEYops2IbJhAyIbN0IkTygty3CUlsJZXg5HeTlUrzd7AyUiIqI+MeJxc16XUAh6JAIAUJxOqB4PXGPHwllYaM7rkps7qAMLm88Hm88H39ixiAWDiAYCaN+wAZFAAJFAAIrTabYvc7uzPVQiIiKiAYFBDBFRlunRKKINDeZcL1VViDc1QQuHISsKFI8HztLSbZ6AlbJHa21FpLoa0aoqRGtrAcOw1kkOh9VyzDF8+IA+C5aIiIhSCcOAHg5Da283W4zpOmSbDYrHA1dJCRwlJVaLMZvPN2Tbx9pzc2HPzYV33DjEm5sR2bwZbevWIVpXh0hNDRS326yU4dyFREREtBNjEENEtIMJw0CsqQmxxkaEa2sRqa1FvKUFMAzIbjdsPh8cJSWD9gzJnZ0QAvH6eqvlmNbUlLJezcmBY+RIc76XoiJWNxEREQ0CQggY0Whni7F4HJIkQXG5oPp88I4ZA0denhm65ObulK1jJUmCPS8P9rw8+HbdFbHGRkQ2b0Z7RyijR6NmS7bcXChOZ7aHS0RERLRDMYghItoBtFDIbDdWX49QdTXizc3QIxHINhtUrxeusjJOwD6IGZqG2KZNVvhidLQiAQBIEuzFxdZ8L2pubvYGSkRERD1iaJrVYswIhwEAst1uthirqICjqMgMXXJyOFF9BpIkwVFQAEdBAXLGjzdDmUDArJRpaICRCGX8/p0ytCIiIqKdD4/6ERFtB4amWVUvoY0bEa2rg9bWBiEEVI8H9rw8tmcY5PRQyApeojU1gK5b6ySbDY4RI8zwZcQIyDzrk4iIaMAShgE9EjGDl/Z2QNchqSoUtxuOggI4S0pg9/vNuV1yctgytpckWYajsBCOwkLk7LYbog0NCNfWWpUyRjxufj/2+9mmlYiIiIYsBjFERP0k3tpqVr3U1SG8cSNiLS0Q0Sgkux22nBy4y8uHbG/wnYEQAlpjIyLV1Yhs2IB4Q0PKesXrtape7CUlfKyJiIgGKD0ahR4KQQ+HzSpWWYbidEL1eOAZNQr2pBZjKk+c6VeSLMNZVARnURH8EyciWl9vhjKVlYgEAhCaBtXngy03l4EXERERDSkMYoiI+siIxRBtbDSrXqqqEGtoQDwUgiRJUL1eOAoL2WphkBO6jmhtrVn1UlUFvb09Zb2tsBDOjvleVL+fbUmIiIgGGKHr1rwuejgMCAHJbofqcsE1YgScxcWw5+ZCzcmBzefj3G07kKQocJaUwFlSgtxJkxCtq7MqZcI1NRC6blYh5eayhS8RERENevw2Q0TUQ0IIxINBq8d1eNMmxFtbITQNssMB1eeDh5OvD3p6JIJodbUZvmzcCKFp1jpJUeAYPhyO8nI4y8qguN1ZHCkRERElE0LAiESs4MXQNPMEmY4J4nPGj4fN74e9Y24XtsEaOGRVhWvYMLiGDYN/990RqatDpKYG7evXI1xdDQgBNfG4MZQhIiKiQWjAfYP561//ittuuw21tbXYc889cdddd2Hq1Kndbr948WL87W9/w4YNG1BYWIiTTz4ZixYtgjOpH39v90lElKBHo4g2NCDa0IBQVRXiTU3QwmHIimK2oiotZduEQU4IAS0YtKpeYnV1gBDWetnlslqOOYYNg8Q//omIiAYEIx4353UJhaBHIgBgtRhzjR0LZ2GhVVGhuN2sXB0kZJsN7uHD4R4+HLm7745oXR1CmzYhtGGDGcpIkjVfD1vBEhER0WAxoI4mPfHEE7j88stx7733Yr/99sPixYtx1FFH4ZtvvkFxcXHa9o899hiuuuoqPPTQQzjwwAPx7bff4qyzzoIkSbjjjjv6tE8i2rkJw0CsqQmxxkaEa2sRqa1FvKUFMAzIbjdsPh8cJSX8Q36QE4aBWCCASFUVIlVV0FtbU9ar+flW+GIrKODjTbQNhGHAiMdhxGLmv3gcIh6HoWmQbTbzn91u/ZRUlZWFRJRGGAb0cBhaezv0cBjCMCCrKhSPB87iYjhLS61KFx6gHzoUhwPusjK4y8qg77mnVZUeqqpCaMMGQJbN+XxycvjZQURERAOaJETSab9Ztt9++2HffffF3XffDQAwDAPl5eX4xS9+gauuuipt+wULFuCrr77CypUrrWVXXHEFVq9ejbfffrtP+wSAaDSKaDRq/d7S0oLy8nIEg0Hk5OT02+0looFBC4UQa2hApK4OoY0bEW9uhh6NQlZVqD4fVK+XLRCGACMaRXTjRkSqqxGproaIxTpXyjIcw4aZVS9lZVC93uwNlGiQMeLxzqAlEbLEYkh8xZQkqTNssduher2w+XyQnU7ooRBiwSD0UAgiFoOuaRDxOIQQkABAllNCGtlmg2Sz8T2ZaIgTQsCIRjtbjMXjkCQJissF1eeDs7gYjvx88wB8bi7n5NsJaeEwooEAQhs3IrRxI7SWFkiKAltuLlTO9UNERNTvQlVVyJkwAYX775/toQwoLS0tyM3N7VFuMGD+io3FYvjoo49w9dVXW8tkWcbhhx+O9957L+NlDjzwQDzyyCP44IMPMHXqVKxduxYvvPACzjjjjD7vEwAWLVqEG2+8sZ9uGRENVKGNG9HyzTeI1tVBa2uDEAKqxwN7Xh4Ulyvbw6N+oLW2WlUvsdra1JZjDgccZWVwjhwJx/DhbDFHlEFKNUtyyKJpgBAQQEpIono8sPl8sPl8UNxuKE4nFIcDstMJxeWC4nBkPDhmaBqMaBR6JGL9MyIRxNvbobW2QmtthR6LQWtvhxGLAboOdOxHUtWMYQ0r2YgGD0PTrBZjRjgMAGZw6/HAVVEBR1GRVfWger18fRNUlwtqRQU8FRXQQiFEAgGEqqvNapn16yGpKmx+P1SPh6EMERERDQgDJoipr6+HrusoKSlJWV5SUoKvv/4642Xmzp2L+vp6TJ8+3ezxr2mYP38+rrnmmj7vEwCuvvpqXH755dbviYoYIhoahBBo++47NKxZAz0ahT0vD+7ycrawGAKEYSBeX2+FL1pzc8p6NTfXrHopL4e9qIh/mNNOz9A0M1jpWtViGGZFSnI1i80GtaDAqmhRnM7OgCURuPRx4mtZVc0qRI8n43ohBIxYzAxpwmEYkQj0aBRaOAyttRXx1lbooRD0tjbEOgIjYV4QkqJY1TgpYQ3f84myQhiG+VoOhaC1twO6DklVobjdcBQUwFlSArvfb7UY44kStDWq2w3v6NHwjh4Nra0Nkc2b0b5hAyI1NWivq4Nst5uVMgzxiIiIKIsGTBDTF6+//jp+//vf45577sF+++2H77//Hpdeeil+97vf4brrruvzfh0OBxwsbycakoSuo/mzz9D03/9CcbngKS3N9pBoGxnxOKKbNiFSVYVodTWMjsl6AQCSBHtJiTXfi8r2krQTSVSzpIQsHdUsQggzZFFVM5Sw26E4nXAWFcGWk9NZzZIIWzqClmyFF5IkQXE4zPZDubkZtzE0zQxoOkKaRGijtbcj3tICvb3dDG8SVTWGkdi52e4s01w1PGBHtM30aNQMSjtCVCRajHk88JSXw15QYLUYU1mRTNtI9Xrh9Xrh3WUXxFtbEQkE0L5+PSKBAKJ1dZAdDtj9fihuN9/jiYiIaIcaMEFMYWEhFEVBIBBIWR4IBFDazYHS6667DmeccQbOO+88AMAee+yB9vZ2XHDBBbj22mv7tE8iGrr0aBRNH3+M5s8/h6OwEDYelB+09PZ2q+olWlPTeUAVgGSzwVlWBkd5OZwjRkBmsE5DlNExn0pyyGLE44CuQ0gSpI6AQekIFux5eeYZ5snVLImwpaOaZTAflJJVFbLX2+0cT4k5J6z2Z+GwOQdFOIx4S4vZ/iwchtbWZgZYmgYYBgQ62p8lzXNjhTWsqiNKIXTdmtdFD4fNqjS7HarLBdeIEXAWF5vvQ7m5sHEeD9rOEq0yfWPHIhYMIhoImJUygQAigQAUp9NsX+Z2Z3uoREREtBMYMEGM3W7HPvvsg5UrV2LWrFkAAMMwsHLlSixYsCDjZUKhEOQuX96VjjM1hRB92icRDU1aWxvq16xB23ffwTlsGP/gGmSEEIg3NiKyYQOi1dWINzSkrFd8PqvqxV5SwgM7NOgJITKGLImWWxIASVHMSg67HYrDAUdhIVSfDzaPB4rLZQYtDocVtuzsrbgkSbLui+4Y8bg5P02X+Wq0tjYzrGlrM8Ob1lazukgISABEooVbl7CGVTU0lAkhYEQiVvBiaBokSYLqdsOWm4uc8eNh8/th75g8XeGJEZRF9txc2HNz4R03DvHmZrN92bp1iNTVIVJTA8XtNitlWJVFRERE28mACWIA4PLLL8e8efMwZcoUTJ06FYsXL0Z7ezvOPvtsAMCZZ56JESNGYNGiRQCAmTNn4o477sBee+1ltSa77rrrMHPmTCuQ2do+iWjoizY2omH1aoSqquAuL+/zHAa0YwlNQ7S21qp8MUKhlPW24mI4y8rgHDkSam4uD3bSoCJ0PS1kSbTLEkBnNYuqQrLbYUvMl9BRzdK1bdhgr2YZKBJhCny+jOuFYUCPRjtboHWENlp7O+Idc9UYkUhnUKNp5uVgVuxImcIaBsc0SBjxuDmvSygEPRIBhLBajLnGjoWzo9rYlpMDxePhexINSJIkwZ6XB3teHny77opYY6MVykTr6qBHo1A9Hthyc7cY3BMRERH11oAKYubMmYO6ujpcf/31qK2txeTJk/HSSy+hpKQEALBhw4aUCpjf/va3kCQJv/3tb7Fx40YUFRVh5syZuOWWW3q8TyIa2sI1NahfvRqx+nq4R42CrA6otz3qQg+HEa2uNluObdpkHcQEzNZAjuHD4Swvh6OsjGcs0oAlhIDQtLSQxXo+CwHIsnUgXnE44CgogJqTA5vHkzInSyJs4XvXwCDJsjmHxRbef4xYzJqjxuhaVdPaalbVRCLQWlrMVnJCWOGbbLenhzV87CkLhGFYcyzp4TCEYUBWVSgeD5zFxXCWlsLe0WJM9fn4PKVBSZIkOAoK4CgoQM748WYoEwigbd06RBsaYCRCGb+fFV1ERES0zSQhhMj2IAa6lpYW5ObmIhgMIodzShANGm1r16Lhgw9gRKNwDh/Os44HICEEtOZmq+olXleXsl52u62WY47SUkg80EMDQEo1S9JPoetInP+dfDBdcbth8/mg+nxQXS4oDkdn2OJysZplJyMMo7OaJhKxQhs9FEK8pQXx1lbo0ShE4vkVj5vPK0ky56rpGtawqoa2kTV/UkfwYsTjZis/lwuqzwdncTEc+fnmvC65uTwgTUOeMAxEGxoQrq1F+7p1iDU2wojHoXo8sPv9rK4nIqKdUqiqCjkTJqBw//2zPZQBpTe5AY9oEdGQIwwDwS+/ROPHH0NWVbjKyrI9JEoiDAOxQACRDRsQqa6G3tqast5WUGCFL2p+Pg9Q0w6VUs2SHLJkqFxIzM1iz8uDLScHqseT2jYsUdFis2X7ZtEAIskyVLd7i3OVWVU14XBKZU2ioiZTVQ0As9IqOaBJ/J8hNiUxNM1qMWaEwxAAFLsdqscDT0UFnEVFZujS8b7GoI92NpIsw1lUBGdREfwTJyJaX2+GMpWViAQCEJpmzsmWm8vPeCIiIuox/lVGREOKEY+j6b//RfP//gdbbi7seXnZHhIBMKJRRDZuRLSqCpHqavOgdoIsmy3HysrgLC+H4vFkb6A05AnDyBiyGJrWWc3SUXUg22xWJYvN54PqdpvhisvVGbbY7TxISf0uEfTZupurRtc7g5rkOWuSq2piMYhw2Hyed7TFk5KqalLCGlbVDFlWBVZH8AJNg6SqUNxuOAoK4CwpgT0xB1VODg8qE3UhKQqcJSVwlpQgd9IkROvqzFBm/XqEa2ogdN18/eTmMvQmIiKiLeI3BSIaMrRwGI1r1qDl66/hLC2FygP6WaW1tFgtx2KBQOcZ2wBkp9Oa68UxfDgP/FC/SbRySg5Z9FjMev4lV7PINpt5ANLng+r1doYryVUtfG7SACQpyharaoQQ5msg0fYsErGqa7S2NsRbWqCHQua/jteJEAKSEICiWK+PlLCGBxgHBSugC4VgRCJAosWYxwNPeTnsBQWd1S5bqMoionSyqsI1bBhcw4bBv/vuiNTVIVJTY4Yy1dWAEFA7Xl98zyQiIqKu+O2AiIaEWDCIhtWr0b5+PVxlZexfngXCMBCrqzOrXqqqoAWDKetVv99qOWYrKmLLMeo1YRjplSwdZ/tLQqTMoSHbbOYEux3VLIrbndo2zOmE4nCwCoCGJEmSoDgcUBwO2LrpUyx0vTOk6Th4b0QiiLe3Q2tthdZRVaO1t5tBjaZBSBIkpM6BlBzW8H19xxK6Di0RqIXDgBCQ7HaoLhdcw4fDWVJinalv8/n4fkfUj2SbDe7hw+EePhy5u++OaF0dQps2IbRhgxnKSJJVaSYpSraHS0RERAMAgxgiGvQimzej/r33ENm8Ge6RI3kG2g5kxOOIbtyISFUVotXVMKLRzpWSBHtpaed8L9202CFKMDrmZklUsSSCFiGENVl58ln6akEBVK/XDFoSE98nwhaHg5PpEm2BpChQPZ5uq0cTVTXJc9TokQi0cDi1qqatDTFN66yqAcy5apJCGius4cHIPhNCmPMCdQQvhqZBkiSobjdsubnIGT8eNr8f9txcqD4fT0gh2oEUhwPusjK4y8qg77knIoEAwps2IVRVhdCGDYAsW5VoDESJiIh2XjxaSUSDWvuGDahfvRp6Wxs8FRX842YH0NvbzZZjGzYgWlsLGIa1TrLbrbleHCNG8EA4WRLVLCK5dVgsBtExd4WA2fJDttmsM7ptHWdzW9UsDkdK2zC+3om2n+SqGuTmZtzG0LTOkCbRBi0chtbebgY17e3Qo1Fo7e0wYjHz86Kjaia5ei0R2kiqyqqaDkY8bs3rokcikGC29VQ9HrjGjoWzsNA6217xeHi/EQ0QisMBz8iR8IwcCW3PPRENBBDauNH8t349JEWBrSMw5fcYIiKinQuDGCIalIQQaP32WzSsWQMAcJWX8yDEdiKEQLyhwZrvRWtsTFmv+HxwjhwJZ1kZ7CUl/KNyJ2V0nBGfaBuW+GkFdZIEyWaD0nHQ1Z6f39k2rOu8LImDv0Q0oMmqCtnrher1ZlwvhEiZp8boCGy0cBhaa6sZ1nRU2CSCWsAMZiVFSWt/JtvtQ/IzRhiGFWAZkQgMXYesqlA8HjiLi+EsKYE9N9c6eMvKX6LBQXW5oFZUwFNRAS0UQiQQQKi62qyWWb8ekqrC5vdD9XiG5HsbERERpeK3eCIadAxNQ/Nnn6Hpv/+F6vHAUVCQ7SENOULTEK2pscIXIxzuXClJsBcVwZFoOZabyxBsiBOGAaFpKZUsRmLOiI5WRJKimPNGOBxQnE44i4pSqlkSc7JY1SxsUUQ05EmSZL3mu2PE42ZIkxTY6JGIWVUTDJrtz6JRaK2taa0KU+aqSQQ1A7yqxgqnEsFLPG7eTy4XVJ8Pzl12gSM/32xjlJvLUJpoiFDdbnhHj4Z39GhobW2IbN6M9g0bEKmpQXtdHWS73Qxbvd4B/R5GREREfccghogGFT0aReOHH6Llyy9hLyqCjfOO9Bs9FEKkuhrRqipEN22C0HVrnaSqcIwYYbYcKyvb4kE1GnyErqdVsiTaCAmYB1OTq1mseQi8Xusga3JVi2y38yACEfWI3BGmoJvPc2EY5lw14XBnZU00Ci0UQry1FVpLixnctLVlbHeYMazZgWeeG5pmtRgzwmEIAIrdDsXthqeiwgytO+aO4FnxRDsH1euF1+uFd5ddEG9tRSQQQPv69YgEAojW1UF2OGD3+6G43fw+RUREWZFyslQ0ChGLwdB1q80w9Q2DGCIaNOKtrWhYvRptP/wA14gRUFyubA9pUBNCQGtuRmTDBkSqqhCvr09Zr3g8VtWLo7SUFQyDlBDCrGZJqmRJPlgJIVIm1lYcDjgKC6H6fLB5PCktwxJtw9gWh4h2FEmWe1xVY7U/S1TVtLWZYU1bmxnetLSY1XxCdOxcgmK3p4c1NlufxioMw7zujuAFmgYoilW96ywuhj0vz5rbpa/XQ0RDR6JNq2/sWMSCQUQDAbNSJhBAJBCA4nSa7cvc7mwPlYiIhhhhGFbQkqhOF4Zhdryw2ayOFs6SEtjz8qC63XAUF2d72IMaj6QQ0aAQbWhA/fvvI7xxI9yjRvHgRR8JXUc0EEC0qgqRDRugt7enrLcVFsKZaDmWl8ez8AYBoetplSxGPG5VNFnVLKoKqaPthc3ng+rzQXW5oDgcnWGLy8VqFiIadBLhSXdVssIwzD8wk0KaRGASb21FvLUVRiTS2f5M08yQWpIgqar5vtglrJFkGXpHizE9FIIRiZjBjssF1eOBp7wc9oKCzmoXHkQloq2w5+bCnpsL77hxiAeDZqXMunWI1NUhUlMDxe02K2V4MhoREfWCEYt1hi0d1S2JzheJ+Vnt+fnWCUOq2w3F7TZ/ulys2O5HDGKIaMALbdqEhvffR6ypCZ6KClZm9JIRiSCycSMiVVWIbtxoTYYMAFAUOIYNg3PkSDjLyqDwQNGAZ2iaNcm1MAxIiWqWjjNWrC9PHo8VriTOZJGdTlazENFOR5JlqC4XsIWDl4k/UPVIBHo4bIU2iYoara3NDGs6qmpgGJAcDqguF1zDh8NZUmJWunSE3fyDlYj6SpIk2P1+2P1++HbdFbHGRnNOmXXrEK2rgx6NQvV4zHmk2C6YiIjQWZmdXOECw4AQwup8oTidcJaWwu73Q/V4zKCl4ydPdt4xeDSGiAYsIQTafvgBjR98AD0eh3vUKJ6p30NaMIhIVRUiVVWIbd5sntnbQXY6raoX+/DhPDA/CBiahngwCK21FQBgy8lB7sSJcJaUmEFLUtswvkaIiHov0Z5xi1U1Se3PjFgMqtcL1eeD4nDs4NES0c5CkiQ4CgrgKChAzvjxZigTCKBt3TpEGxpgJEIZv5/vRUREQ5wQAiIeT20lFo+nVbc4Cwth8/ut6hbV44GSqG7h8YKs4tE3IhqQhGGg+Ysv0PTRR5AdDrjLyrI9pAFNGAZimzdb4Yve0pKyXs3Ls8IXW2EhP3wHASMeRzwYRLy1FZIkwZabi9w99oB72DA4iov5xzYR0Q4kybL5hywrR4koSyRZhqOwEI7CQuTsthuiDQ2I1NaaoUxdHYx4HKrHA7vfD9luz/ZwiYioj4Sup7QSs6pbYJ48pNjtUFwuVrcMQgxiiGjAMWIxNH7yCYKffQZbXh7sfn+2hzQgGbEYops2IbJhAyIbN0JEo50rZRmO0lI4y8vhKC+H6vVmb6DUY0YshlhH5YukKLD7/cjfay84S0vhKCxk+EJEREREkGQZzqIiOIuKkDtxIqL19QjX1qK9shKRQABC06D6fLDl5vKAHBHRACSEMOd3jcWs6hajo428JElWxwtnYaF5XCwnp3PeFla3DFoMYohoQNFCITSsWYPWb76Bs7QUqseT7SENKFpbG6IdVS/R2lrAMKx1ksMBZ1mZGb4MH84z4QYJPRpFPBiE3tYGyWaD3e9Hzq67wllaCmdhIR9HIiIiIuqWpChwlpTAWVKC3EmTEK2rM0OZ9esRrqmB0HVrDiu2JCYi2rFSqls62tumVLd0zN3iGjYMdr/fqmpRPR4oLhfD9CGGn8JENGDEmptRv3o1Qhs2wFVWxrP/YZ4lEa+vt1qOaU1NKevVnBw4ysvhHDkS9qIiTg48SOiRiDnnS3s7ZJsN9rw85O62G5wlJXAUFvLLFhERERH1mqyqcA0bBtewYfDvvjsidXWI1NSYoUx1NSAE1Nxc2HJyGMoQEfUTq7olqZWYVd0iy1AcDrO6pbgY9rw82Hy+zuoWjweK08nqlp0EP3mJaECIBAKof+89ROrr4R45cqf+w8DQNMQ2bTLDl+pqGOFw50pJgr242JrvRc3Nzd5AqVf0cBixYBB6KATZ4TDDlz32gKu4GPaCgp36OU9ERERE/Uu22eAePhzu4cORu/vuiNbVIbRpE0IbNpihjCSZlTI5OZAUJdvDJSIa8NKqW6JRCCEgAZA6qltUlwv2ESNgz81ldQul4VEfIsq69nXrUL96NfRQCJ5Ro3bKqg49FEKkuhqRDRsQrakBdN1aJ9lscIwYYYYvI0ZAdjqzOFLqDS0UMtuOhcNQHA7YCwrgnTwZjuJiOPLz+UcvEREREW13isMBd1kZ3GVl0PfcE5FAAOFNmxCqqkJowwZAlmHrqJTZGf8WIyJKyFjdEouZFSuyDMXp/H/2/jy+7vOu8/5f1/fs5+joHEm2JNuSJdtxdsdZ7dgu3KUU2tI7kE6AFtomdBjWUrhp+ZVlbsqUe+buPTC0odBpC6QQZlKSttNOgZaypLQ0jrc4cRInsZM4XuNVy9kkne37vX5/XEe2HMuJLWs5kt7Px8OJfZbvuWRLZ/m+r8/nQ6hR3RJrbyecThNKJFTdIpdEQYyIzBkbBBT272foiSfA80iuXDnXS5o11lrqw8NnW47VBgbOuz7U0nK26iXa1aUT9vOEtRa/Eb4E5TJeIkGso4NUfz/xpUuJtrfrw62IiIiIzJlQLEZq5UpSK1dSX7+eyqlTjL76qvt1+DAmFCKSzRJuadH7VhFZsIJ6/WzIctHqlmSSaE8P0UzGVbWMtxNLJtXRQqZE3zUiMieCep3c008zvGePm3PS3j7XS5px1vepnDxJ+ehRKkeP4o+MnHd9ZMkS4itXupZj2ax2UcwT1lr8kRGqjfAlnEoR7+wk1ddHbOlSom1t+hArIiIiIk0nnEgQ7u8n1d9PfXSU8qlTjB475qplDh/GhMMulEml9H5WROad86pbGmFLUK9j4KLVLeNBSziVwovFdF5GppWCGBGZdX65zOATT1DYt4/YkiVE0um5XtKM8ctlKseOufDl1Vex9frZ60woRGz5cmK9vcR7egglk3O4UrkcNgioj4y4ypdqlXAq5Xpw9/YS7+wkoiBNREREROaRcDJJy6pVtKxaRb1Uonz6NCNHjlA+cYKRM2fwolEimYyrlNH7XBFpIuPVLWdbiVUq2CDAeB5eJIIXixFuaSHa23t+dcv47BZVt8gs0XeaiMyqWrHI4I4dlA4cINHTQ2iBzTux1lLP589WvVTPnAFrz17vJRJnW47Fli3D6AV/3rBBQL1UcuFLrUYklSLZ20uqt5dYZ6frqa0PpSIiIiIyz4VbWmhpaaFl9WpqxSLlU6cYOXyY8qlTVM6cwYvFiGazhJJJvf8VkVkxaXVLrQbG4IVCeLGYm8va1eWqW1paVN0iTUdnAEVk1lQGBhjYto2xkydJ9vXhRSJzvaRpYYOA6qlTlI8do3zkCH6xeN714fb2s+FLpKNDL/7ziA0C6sUi1VwOfJ9wOk2qv/9c5csCruYSEREREYmk00TSadJXXUU1n6dy6pSrlDl1ivKpU4Ticde+TNX9IjIN3rC6JR4n0tJCdOVKV6XXqGoJp1KEk0nN15WmpiBGRGbF6LFjDGzfTq1QINXfP+97DAfVKpVXX6V89CjlY8ew1eq5Kz2P2LJlruqlp4dwS8vcLVQum/V9asUi9UKBwPfdB8+1a0muWEG8s1P/niIiIiKyKEUzGaKZDC1r11LL512lzKFDlM+coXziBKFk0lXKJBJzvVQRaWI2CM5Vt4yHLfU6Fs6rbol1dxNta3PVLeOBS0sLoVhsrr8EkSlRECMiM8paS+mllxh84gms75NcuXLeVoTUi0UXvBw9SvXkyfNbjsVixHp6iK9cSWz58gVT7bNYBPU69WKRWqEAQUA4kyF99dUkli934UsqNddLFBERERFpCsYYotks0WyW9NVXUx0ePhvKVM6cwa9UCKdSRDKZBdeKWkQu3dnqlvFWYtWqO49izLnqlnT6vOqWs+3EVN0iC5CCGBGZMdb3ye3dy/BTTxFKJIh3dc31ki6LDQJqAwNnw5d6Lnfe9eFMxlW99PYSXbp03lf5LDZBvU4tn6feaCUXaW0lc/31JJYtI9bZSVg7+UREREREXpcxhlh7O7H2dlqvuYbq0BDlU6coHTpEZXCQYDyUyWa1i11kAZq0uqVWwxqDFw7jRaOuumX5cqLZ7LnqlsbsFj0vyGKiIEZEZoRfqTD85JPknnuOWHs7kUxmrpd0SYJajcrx45SPHqVy7BhBuXzuSmOIdnWdnfcSbm2du4XKlAS1GrVCgVqhgDGGSCZDZt06ko3wRW8CRURERESmxngesSVLiC1ZQut111EZHKR88qQLZc6cIajVCKdSRLNZvGh0rpcrIpchqNUIqtXzq1uCADwPLxp11S2trWer5carWlTdInKOghgRmXb1kREGd+2i+OKLxJcta/rBjf7IyNlZL5Xjx92biQYTiRDv6SHW20t8xQo8naifd4JajVo+78KXUIhoNkv7LbcQ7+4mtmSJwhcRERERkWlmPI/40qXEly4lc/31VAYGGDt5kpGDBymfOoWt1wmn00QyGbV1FmkS51W3lMsE1ep51S2hRuAS6+gg2tZGpKWF0IR2YvpsLfL6FMSIyLSqDg8zsH07o0ePkuztbdqdTkGlwsi+fZSPHKE2OHjedaGWFlf1snIl0a4utRybh/xKhVo+j18qYSIR17/6ttuId3cTX7Kkab8vRUREREQWGhMKEe/qIt7VReaGG6icOeNCmcOHGTtxAuv7RFpbXSgT1mkqkZkW1GrntRKbtLolkyHW1uZmPTXaiI0HLjpHIjI1eoUTkWkzduIEAzt2UBkYINnX17RvoscOHya/fTvB2NjZyyJLl55rOZbNYoyZwxXKVPjlspv5MjKCF4kQbWsjc911xLu6iC1Zop12IiIiIiJzzAuHSSxbRmLZMrI33kj5zBnKJ064UObYMQDCra1EWlub9vOkyHwwXt0y3krMr1TA9wEw49UtiQTxJUuIZLOqbhGZBXpVE5FpUTp4kMEdO/DLZVJ9fU25Q8IfGyO/YwflQ4cACLW2kl63jlhPDyENZp+X/LExqvk8/ugoXizmwpd160h0dhLt6NCHNxERERGRJuVFIiSXLye5fDmZG2+kcuYMo8ePM3rkiAtljHGVMq2tmi8hchGvW90SixGKxYhks7SMV7ckEqpuEZkjOkMlIlfEBgH5F15gaPduvHCYZG/vXC/pAtZaxg4cIL9zJ7ZaBWNoufFG0uvXY3Sift6pj466tmNjY4RiMaIdHbTcfDOxzk5i7e36kCYiIiIiMs+EYjGSPT0ke3rw16+nfOoUY8ePM3r0KKNHj7pQJpNxoYxOHMsiY4PgvLDFr1Swvo+xFhOJEIrFCCUSxJcuJdLWRiSVctUtiYSqW0SaiM5AisiUBbUauaefZvjpp4lkMkTb2uZ6SReol0rkH3+cyvHjAITb22nbsoVIR8ccr0wulbUWvxG+BOUyXiJBrKODVH8/8aVLiba368OYiIiIiMgCEYrFSK1cSWrlSvybb6Z86hSjx44x+uqrjB45AtZiwbWTthbG20pb6/7XOM7EZtMWwBh32cQ21Maca0s91csb/7/U27/u/V9z3ynf/mJrkKYW1GqulVi1+vrVLe3tRFpbXVXLeHVLIqHPxSJNTkGMiExJfWyMoV27KOzbR7yri3BLy1wv6TzWWkb37aOweze2XgfPI33zzbTceKPenMwD1lr8kRGqjfAlnEoR7+wk1ddHbOlSom1t+ncUEREREVngQvE4qb4+Un191EdHqZw+TVCtYq09dyNr3Z8bv85eN34Z7vOFDQJ3UrtxXRAE524zfj2u+sC+9rrx6yfethEIEQTuMcevbzzeax//7H1pBEMTruc1a57w1V38a5pw/WuPYydedvZm9mw4ZbkwqLrguvGga/yyCcHXa4/FJMebseDrMi+/WJB19rorDMomO87rBV8XVLeUy9ggwNCY3XKx6pZkknAyiReNXvTYItLcFMSIyGWrFQoMbN/OyKFDJFasIBSPz/WSzlPL5cg//jjV06cBiHZ2kt2yhXAmM8crk9djg4D6yIirfKlWCadSrmd0by/xzk4i2ax2comIiIiILFLhZJJwf/9cL+OS2dcEJJOGRZNcd16Y8trrJ7v9a2476fUTrpss2LngsS52+9f7WuYi+Hq9v4/XC75e+/Wd/w83s8GXMWerW6JtbUTb24mk06puEVkEFMSIyGUpnznDwLZtVE6dItnX11TD0G0QUNq7l+KePRAEmHCY1ttvJ3nNNTqB36RsEFAvlVz4UqsRSaVI9vaS6u0l1tnpekDr305EREREROaZ11ZQ6FPNzGqK4Gv89hOue22wYyIRVbeILFLNcwZVRJreyJEjDOzYQb1UItnf31Q7NKqDg+S2bqU+NARAbMUKMps2NV3LNGmEL8Ui1VwOfJ9wOk2qv/9c5Us6PddLFBERERERkXlEwZeINDsFMSLyhqy1FF98kcFduwBI9vY2TZWCrdcpPv00pb173e6SWIzMhg0kVq9umjUKWN+nVixSLxQIfJ9IOk167VqSK1YQ7+xUYCYiIiIiIiIiIguWghgReV1BvU7u2WcZ3rOHcCpFrKNjrpd0VuXUKXJbt+IXCgDE+/vJbNxIKJGY45UJuO+derFIrVCAICCcyZC++moSy5e78CWVmuslioiIiIiIiIiIzDgFMSJyUX6lwtDu3RSee47okiVEWlvnekkABNUqhSefZHTfPgC8RILMnXeS6Oub45VJUK9Ty+epF4sARFpbyVx/PYlly4h1dhJWSCYiIiIiIiIiIouMghgRmVStWGRw505KL79MYsWKpqkyKR87Rn7bNvyREQCSa9fSevvteLHYHK9s8QpqNWqFAvVCAYwhksmQWbeOZCN8CenfRkREREREREREFjEFMSJygcrgIAM7djB27BjJvj68SGSul4RfLlPYuZOxV14BINTSQnbzZmLLl8/xyhanoFajls9TKxYxnkc0m6XtlluId3cTW7JE4YuIiIiIiIiIiEiDghgROc/o8eMMbt9OdXiYVH8/JhSa0/VYaykfOkR+xw6CchmMIXX99aRvvrkpAqLFxK9UqOXz+KUSJhIhms2SXruWeHc38SVL8KLRuV6iiIiIiIiIiIhI01EQIyKACzxKr7zC0I4d+LUayb4+jDFzuiZ/dJT8tm2Ujx4FIJzNkt2yhejSpXO6rsXEr1So5XLUR0bwIhGibW1krruOeFcXsSVLFIaJiIiIiIiIiIi8AQUxIoINAvLPPcfQk0/iRaMke3rmdj3WMvrSSxR27cLWauB5tKxbR/qmm+a8Qmcx8Mtlqrkc/ugoXizmwpd160h0dhLt6MAL66VDRERERERERETkUulsmsgiF1SrDD31FPm9e4lks0Sz2TldT71QILdtG9UTJwCILFlCdssWIm1tc7quha4+Ourajo2NEYrFiHZ00HLzzcQ6O4m1tysAExERERERERERmSIFMSKLWH10lMFduyju30+8u5twKjVna7FBwMgLL1B88kms72NCIdK33krquuswnjdn61qorLX4jfAlKJfxEgliHR2k+vuJL11KtL1df+8iIiIiIiIiIiLTQEGMyCJVzeUY2LGD0cOHSfT0EIrF5mwtteFhclu3UhsYACDa3U1282bCra1ztqaFyFqLPzJCtRG+hJJJ4p2dpPr6iC1dSrStTeGLiIiIiIiIiIjINFMQI7IIlU+dYmDbNspnzpDs65uzmR/W9yk+8wylZ5+FIMBEIrTecQfJtWsxxszJmhYaGwTUR0Zc5Uu1SjiVIrl8OcneXuKdnUSyWf1di4iIiIiIiIiIzCAFMSKLzMihQwzs3Ik/MkKqv3/OKiCqZ86Q27qVei4HQLy3l8yddxKa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E52kEm0hsEFArVCglssBEGltJXP99SSWLSPW2Uk4kZjbBYqIiIiIiIiIiMiC0FRBzMDAAL7v0/Wa2RddXV3sa8yoeD07d+5k7969PPDAA+dd/va3v51/9+/+HatWreLAgQP8zu/8Du94xzvYtm0boVDoguN84hOf4OMf//iVfTEiV2jkyBEGd+ygViqR7O/HeDMz0slay+hLL1HYtQtbq4ExtNx0E+mbbsJM8vMx3wX1OtXBQeqlEpFMhsyNN5JcvpxYZychtSwUERERERERERGRadZUQcyVeuCBB1i3bh0bNmw47/L3vOc9Z3+/bt06brrpJtasWcN3vvMdfvAHf/CC4/z2b/82H/7wh8/+uVAo0NvbO3MLF5nAWkvxxRcZ3LULrCXZ2ztjg+DrxSK5xx+neuIEAJGODrJbthB5Tcu/hcAfG6MyMID1fWIdHbTdcgvJnh4i6fRcL01EREREREREREQWsKYKYpYsWUIoFOLUqVPnXX7q1Kk3nO8yMjLCww8/zO///u+/4eOsXr2aJUuW8PLLL08axMRiMWLaGS9zwPo+uWefZeippwgnk8SWLJmZxwkCRl54geJTT2HrdQiFaL3lFlLXXz9jlTdzwVpLvVCgMjSEF42S7OmhZc0akitW4EWjc708ERERERERERERWQSaKoiJRqPcdtttPProo9x9990ABEHAo48+yq/8yq+87n2//OUvU6lUeN/73veGj3Ps2DEGBwdZtmzZdCxbZFr4lQpDu3eTf+45YkuWEGltnZHHqQ0Pk9u6ldrAAADR7m6ymzcTnqHHmwtBvU51aIh6sUiktZXsunW09PcTW7p0QQVNIiIiIiIiIiIi0vyaKogB+PCHP8x9993H7bffzoYNG7j//vsZGRnhAx/4AAD33nsvK1as4BOf+MR593vggQe4++676ejoOO/yUqnExz/+ce655x66u7s5cOAAH/3oR7nqqqt429veNmtfl8jrqZdKDOzcSenll4kvW0Y4mZz2x7C+T+nZZyk+8wwEASYSofX220leffWMtT6bbX65TGVggKBWI7ZkCdl160itXDljoZaIiIiIiIiIiIjIG2m6IObd7343Z86c4WMf+xgnT57k5ptv5lvf+hZdXV0AHDlyBO81O9r379/PY489xj/90z9dcLxQKMQzzzzDgw8+SC6XY/ny5fzwD/8w/8//8/+o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iIiIiMgsapogJhqNctttt/Hoo49y9913AxAEAY8++ii/8iu/Mul9tmzZwhe/+EWCIMDzXBr34osvsmzZsklDGIBSqcSBAwd4//vfPyNfh8iVao8bPONxuBSQr0Imamc9jAG4sxf+osvyF7vh7/cbvvGiYccx+LVNlk29s74cERGZIYGFUyUXshwchoPDhkM5OJqHejD56082blnVBv3Zc1UufVlIXWZYn43DL9xhued6eOgZ+OaLsPu4Yfdxw+Zey8/cYlndfmVfn4iIiIiIiMhca5rWZACPPPII9913H5///OfZsGED999/P1/60pfYt28fXV1d3HvvvaxYsYJPfOITABw9epQbbriB++67jw996EO89NJL/Pt//+/51V/9Vf7jf/yPAPzGb/wGd911F319fRw/fpzf+73fY8+ePTz//PMsXXppWy0vp8RIZLoUa5bDxYCRGrTFZr8yZqKnT8IntxpeLbo1/MAqywc3WrLxOVuSiIhcJmtd+8mDjTku423FDufOtQd7rUTYNqpbYFXW/b4/C22JmVnjiSL8jz2Gf3kFAmswWN68Cu672dKTmZnHFBERERERkden1mSTm5etyQDe/e53c+bMGT72sY9x8uRJbr75Zr71rW/R1dUFwJEjR85WvgD09vbyj//4j/z6r/86N910EytWrODXfu3X+M3f/M2ztzl27Bg/9VM/xeDgIEuXLuVNb3oT27dvv+QQRmSupCOG1WmPQ8WA4QpkYxZvjsKY9d3w+R+z/PUe+Mpz8K8HDbuPwwc3Wt6ySsOVRUSazUj1XIXLxDku+crkT9gRz7IyQyNosY15LtCZmt3n+GVp+Oj3Wd69Dv56j5sj868H4buH4Ievgvevt3S1zN56RERERERERKZDU1XENCtVxMhcKtcth0sBuQpkohDy5jb12D8A/22r4eCwW8fGHsuvbbJ0puZ0WSIii1K1Dkfy46GLacxzgdMjk79WGCzLW2FV1gUt/Y22YitaIdyEG5teHoS/esqw/Zj7esKe5Z1Xw0/fZOlIzvHiREREREREFglVxEzucnIDBTGXQEGMzLWq79qUDTbCmPAchzE1Hx7ZCw89bagFhmTE8nO3Wd55Dczx0kREFiQ/cG27DuYaVS6NOS7HCq6F12SWJG1jhsu5OS4rsxBvqnroS/P8afjLpwxPnXBfayxk+bHr4N03WjJq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rCT74IMPpi3nGIyBMFj7L8dfDITD2X8zqampsX6/31522WVpyzn+YiAM1v7L8RcDIRv7b3t7u62qqrK33HJLxnNlnAM+MFqTjWJPP/20fD6fLr300uSycDisz33uc3r55Ze1ffv2/V73uOOO03HHHZdcNm/ePJ1xxhl66qmnksteeukl1dXV6fLLL0+7/he/+EW1trbqN7/5TRYfEUaTwdh/U7W3t6ujoyN7DwCj2uHsv2PGjFFRUdEB72PdunVat26dLr30Uvn93QWwl19+uay1evrppw/vQWBUG4x9OFVnZ6daW1v7vb1AqsPZf0877bRey/7P//k/kqT169cnl3EMxkAZjP03FcdfZNPh7L+ZjBs3Tvn5+Wnt9Tj+YqAMxv6biuMvsikb++8dd9wh13V13XXXZbycc8AHRhAziq1evVpz5sxRcXFx2vLjjz9ekvpsFeK6rl5//XUde+yxvS47/vjj9e6776q5uTl5H5J6rbtkyRI5jpO8HDhUg7H/JqxcuVIFBQXKy8vTggUL9MQTT2TnQWDU6u/+e6j3IfU+/k6cOFGTJ0/m+IvDMhj7cMIf//hH5efnq7CwUFVVVfr+97+ftdvG6JTt/bempkaSVF5ennYfEsdgZN9g7L8JHH+RbdnYfxsaGlRbW6u1a9fq85//vJqamnTGGWek3YfE8RfZNxj7bwLHX2Tb4e6/27Zt03e+8x3dfvvtvVqZpt6HxDng/WFGzChWXV2tysrKXssTy3bt2pXxevv27VMkEjngdefOnavq6mr5fD6NGzcubb1gMKixY8f2eR/AgQzG/itJJ510ks477zxNnz5du3bt0n333adPf/rTamxs1Be+8IVsPRyMMv3dfw/1PlJvs+f9cPzF4RiMfViSjj76aJ188smaO3eu6urqtHLlSl199dXatWuXbr/99qzcB0afbO+/t99+u3w+n84999y0+0i9zZ73wzEY/TUY+6/E8RcDIxv773ve8x5t3LhRklRYWKivf/3r+tznPpd2H6m32fN+OP6ivwZj/5U4/mJgHO7+e+2112rx4sW64IIL9nsfnAPeP4KYUay9vV2hUKjX8nA4nLy8r+tJOqjrtre3KxgMZrydcDjc530ABzIY+68k/eUvf0lb57Of/ayWLFmiG2+8URdffHGf7wQA9qe/+++h3ofU977e1NR02PeB0Wsw9mFJ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QQwAAAAAAAAAAMAAIYgBAAAAAAAAAAAYIAQxAAAAAIBBt2XLFhljtHLlyqHeFAAAAGBAEcQAAAAAI9zKlStljEl+hMNhzZkzR1dccYV279491Jt32NatW6d//dd/1ZYtW4Z6Uw7o4osvTvu/CIVCmjNnjr75zW+qo6NjqDcPAAAAwADwD/UGAAAAABgct9xyi6ZPn66Ojg79z//8j3784x/r+eef1xtvvKH8/Pyh3rx+W7dunW6++WaddtppqqqqGurNOaBQKKT/+3//rySpsbFRzz33nG699Va9++67evzxx4d46wAAAABkG0EMAAAAMEqcddZZOvbYYyVJn//85zV27Fjdddddeu655/TJT37ysG67ra0tp8OcweT3+3XhhRcmv7/88st10kkn6d///d911113afz48UO4dQAAAACyjdZkAAAAwCh1+umnS5I2b96cXPazn/1MS5YsUV5ensaMGaMLLrhA27dvT7veaaedpiOPPFKvvvqq3vve9yo/P1833nijJKmjo0P/+q//qjlz5igcDquyslIf+9jH9O677yav77qu7rnnHh1xxBEKh8MaP368LrvsMtXX16fdT1VVlc4++2z9z//8j44//niFw2HNmDFDjz76aHKdlStX6hOf+IQk6X3ve1+y5def/vQnSdJzzz2nD3/4w5o4caJCoZBmzpypW2+9VbFYrNfP47777tOMGTOUl5en448/Xn/+85912mmn6bTTTktbLxKJ6KabbtKsWbMUCoU0ZcoUffWrX1UkEjnE/wGPMUYnn3yyrLXatGlT2mW//e1vdcopp6igoEBFRUX68Ic/rDfffDNtnYsvvliFhYXatm2bzj77bBUWFmrSpEm67777JElr167V6aefroKCAk2bNk1PPPFEr23YtGmTPvGJT2jMmDHKz8/Xe97zHv3mN79JXr579275/X7dfPPNva67ceNGGWP0wx/+UJK0b98+XXfddTrqqKNUWFio4uJinXXWWXrttdf69fMBAAAAch1BDAAAADBKJcKRsWPHSpK+9a1vafny5Zo9e7buuusuXX311XrxxRf13ve+Vw0NDWnXraur01lnnaVFixbpnnvu0fve9z7FYjGdffbZuvnmm7VkyRJ973vf05e+9CU1NjbqjTfeSF73sssu01e+8hUtXbpU3//+97VixQo9/vjjWrZsmbq6utLu55133tG5556rD3zgA/re976nsrIyXXzxxckw4r3vfa+uuuoqSdKNN96oxx57TI899pjmz58vyQtqCgsLdc011+j73/++lixZom9+85v62te+lnY/P/7xj3XFFVdo8uTJuuOOO3TKKafonHPO0Y4dO9LWc11XH/nIR/Td735X//RP/6R7771X55xzju6++26df/75/f6/SMy3KSsrSy577LHH9OEPf1iFhYW6/fbb9Y1vfEPr1q3TySef3GseTiwW01lnnaUpU6bojjvuUFVVla644gqtXLlSZ555po499ljdfvvtKioq0vLly9PCt927d+ukk07S7373O11++eX61re+pY6ODn3kIx/Rs88+K0kaP368Tj31VD311FO9tv3JJ5+Uz+dLBmKbNm3Sf/zHf+jss8/WXXfdpa985Stau3atTj31VO3atavfPyMAAAAgZ1kAAAAAI9rDDz9sJdk//OEPtra21m7fvt3+/Oc/t2PHjrV5eXl2x44ddsuWLdbn89lvfetbadddu3at9fv9actPPfVUK8nef//9aes+9NBDVpK96667em2D67rWWmv//Oc/W0n28ccfT7v8hRde6LV82rRpVpL97//+7+SyPXv22FAoZK+99trksl/84hdWkn3ppZd63W9bW1uvZZdddpnNz8+3HR0d1lprI5GIHTt2rD3uuONsV1dXcr2VK1daSfbUU09NLnvssces4zj2z3/+c9pt3n///VaS/ctf/tLr/lJddNFFtqCgwNbW1tra2lr7zjvv2O9+97vWGGOPPPLI5M+pubnZlpaW2ksuuSTt+jU1NbakpCRt+UUXXWQl2W9/+9vJZfX19TYvL88aY+zPf/7z5PINGzZYSfamm25KLrv66qutpLTH1NzcbKdPn26rqqpsLBaz1lr7wAMPWEl27dq1adu0YMECe/rppye/7+joSF4nYfPmzTYUCtlbbrklbZkk+/DDD+/3ZwYAAADkOipiAAAAgFHi/e9/vyoqKjRlyhRdcMEFKiws1LPPPqtJkybpmWeekeu6Ou+887R3797kx4QJEzR79my99NJLabcVCoW0YsWKtGW//OUvVV5eriuvvLLXfRtjJEm/+MUvVFJSog984ANp97NkyRIVFhb2up8FCxbolFNOSX5fUVGhuXPn9mrh1Ze8vLzk183Nzdq7d69OOeUUtbW1acOGDZKkf/zjH6qrq9Mll1wiv797jOanP/3ptAqVxPbPnz9f8+bNS9v+RJu3ntufSWtrqyoqKlRRUaFZs2bpuuuu09KlS/Xcc88lf07/+Z//qYaGBn3yk59Mux+fz6cTTjgh4/18/vOfT35dWlqquXPnqqCgQOedd15y+dy5c1VaWpr283v++ed1/PHH6+STT04uKyws1KWXXqotW7Zo3bp1kqSPfexj8vv9evLJJ5PrvfHGG1q3bl1aNVAoFJLjeH9qxmIx1dXVqbCwUHPnztWqVasO+PMBAAAARhr/gVcBAAAAMBLcd999mjNnjvx+v8aPH6+5c+cmT5i//fbbstZq9uzZGa8bCATSvp80aZKCwWDasnfffVdz585NCzN6evvtt9XY2Khx48ZlvHzPnj1p30+dOrXXOmVlZb3myfTlzTff1Ne//nX98Y9/VFNTU9pljY2NkqStW7dKkmbNmpV2ud/vV1VVVa/tX79+vSoqKg5q+zMJh8P69a9/LUnasWOH7rjjDu3ZsyctNHr77bcldc/x6am4uLjXbfbcppKSEk2ePDkZ7qQuT/35bd26VSeccEKv+0i0d9u6dauOPPJIlZeX64wzztBTTz2lW2+9VZLXlszv9+tjH/tY8nqu6+r73/++fvSjH2nz5s1p83gSbfAAAACA0YQgBgAAABgljj/+eB177LEZL3NdV8YY/fa3v5XP5+t1eWFhYdr3qaHBoXBdV+PGjdPjjz+e8fKeYUKmbZEka+0B76uhoUGnnnqqiouLdcstt2jmzJkKh8NatWqVrr/+ermu26/tP+qoo3TXXXdlvHzKlCkHvA2fz6f3v//9ye+XLVumefPm6bLLLtOvfvWr5P1I3pyYCRMm9LqNnmFXXz+nw/n5ZXLBBRdoxYoVWrNmjRYtWqSnnnpKZ5xxhsrLy5PrfPvb39Y3vvENffazn9Wtt96qMWPGyHEcXX311f36mQMAAAC5jiAGAAAAgGbOnClrraZPn645c+b0+zZeeeUVdXV19aqgSV3nD3/4g5YuXdrvMKennhUfCX/6059UV1enZ555Ru9973uTy1MH1UvStGnTJEnvvPOO3ve+9yWXR6NRbdmyRUcffXTa9r/22ms644wz+rzfQ1VZWakvf/nLuvnmm/W3v/1N73nPezRz5kxJ0rhx49JCm4Ewbdo0bdy4sdfyROu2xM9Hks455xxddtllyfZkb731lm644Ya06z399NN63/vep5/+9KdpyxsaGtICGwAAAGC0YEYMAAAAAH3sYx+Tz+fTzTff3Ktawlqrurq6A97Gxz/+ce3du1c//OEPe12WuM3zzjtPsVgs2doqVTQaVUNDwyFve0FBgST1um6iGiT18XR2dupHP/pR2nrHHnusxo4dqwcffFDRaDS5/PHHH+/VAu28887Tzp079eCDD/bajvb2drW2th7y9kvSlVdeqfz8fH3nO9+R5FXJFBcX69vf/ra6urp6rV9bW9uv+8nkQx/6kP7+97/r5ZdfTi5rbW3VT37yE1VVVWnBggXJ5aWlpVq2bJmeeuop/fznP1cwGNQ555yTdns+n6/XPvSLX/xCO3fuzNo2AwAAALmEihgAAAAAmjlzpv7t3/5NN9xwg7Zs2aJzzjlHRUVF2rx5s5599lldeumluu666/Z7G8uXL9ejjz6qa665Rn//+991yimnqLW1VX/4wx90+eWX66Mf/ahOPfVUXXbZZbrtttu0Zs0affCDH1QgENDbb7+tX/ziF/r+97+vc88995C2fdGiRfL5fLr99tvV2NioUCik008/XSeddJLKysp00UUX6aqrrpIxRo899livkCAYDOpf//VfdeWVV+r000/Xeeedpy1btmjlypWaOXNmWuXLZz7zGT311FP653/+Z7300ktaunSpYrGYNmzYoKeeekq/+93v+mz/tj9jx47VihUr9KMf/Ujr16/X/Pnz9eMf/1if+cxndMwxx+iCCy5QRUWFtm3bpt/85jdaunRpxsCrP772ta/p3//933XWWWfpqquu0pgxY/TII49o8+bN+uUvf5mcI5Rw/vnn68ILL9SPfvQjLVu2TKWlpWmXn3322brlllu0YsUKnXTSSVq7dq0ef/xxzZgxIyvbCwAAAOQaghgAAAAAkrwT8nPmzNHdd9+tm2++WZI38+SDH/ygPvKRjxzw+j6fT88//7y+9a1v6YknntAvf/lLjR07VieffLKOOuqo5Hr333+/lixZogceeEA33nij/H6/qqqqdOGFF2rp0qWHvN0TJkzQ/fffr9tuu02f+9znFIvF9NJLL+m0007T//t//0/XXnutvv71r6usrEwXXnihzjjjDC1btiztNq644gpZa/W9731P1113nRYuXKhf/epXuuqqqxQOh5PrOY6j//iP/9Ddd9+tRx99VM8++6zy8/M1Y8YMfelLX+p3WzdJuuaaa3T//ffr9ttv18qVK/WpT31KEydO1He+8x3deeedikQimjRpkk455RStWLGi3/fT0/jx4/XXv/5V119/ve699151dHTo6KOP1q9//Wt9+MMf7rX+Rz7yEeXl5am5uVnnn39+r8tvvPFGtba26oknntCTTz6pY445Rr/5zW/0ta99LWvbDAAAAOQSY/s7pREAAAAARjDXdVVRUaGPfexjGVuRAQAAAMDBYEYMAAAAgFGvo6OjV8uyRx99VPv27dNpp502NBsFAAAAYESgIgYAAADAqPenP/1JX/7yl/WJT3xCY8eO1apVq/TTn/5U8+fP16uvvqpgMDjUmwgAAAAgRzEjBgAAAMCoV1VVpSlTpugHP/iB9u3bpzFjxmj58uX6zne+QwgDAAAA4LBQEQMAAAAAAAAAADBAmBEDAAAAAAAAAAAwQAhiAAAAAAAAAAAABghBDAAAAAAAAAAAwAAhiAEAAAAAAAAAABggBDEAAAAAAAAAAAADhCAGAAAAAAAAAABggBDEAAAAAAAAAAAADBCCGAAAAAAAAAAAgAHy/wEaEui/dD/1EAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig, ax = plt.subplots()\n", "\n", @@ -684,27 +681,7 @@ " title=\"Accuracy as a function of percentage of removed worst data points\",\n", " ax=ax,\n", " )\n", - "_ = plt.legend()" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "b2d69593", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABmIAAALGCAYAAABWAo6cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXwU5f0H8M8ce+8mmztAAkFAELSiIh5QD7yrKKIWxSreUqVqtbYeVdRqqdVarNZ6VbD1+FmtCtYDFfFWxKPW+yJAAsmSc3PsOTPP74/JTnazG0hCYJPweb9evEJmZmefvTfzme/3kYQQAkRERERERERERERERNTv5GwPgIiIiIiIiIiIiIiIaKhiEENERERERERERERERLSdMIghIiIiIiIiIiIiIiLaThjEEBERERERERERERERbScMYoiIiIiIiIiIiIiIiLYTBjFERERERERERERERETbCYMYIiIiIiIiIiIiIiKi7YRBDBERERERERERERER0XbCIIaIiIiIiIiIiIiIiGg7YRBDRERERH0Wj8excOFCjBs3Dg6HA5Ik4dlnn832sPrkkEMOgSRJ2R7GNvvuu+9w4oknorS0FJIkwe/3Z3tINEg9/vjj2GuvveDz+SBJEi677LJsD2mnUlFRgYqKimwPY9Bat24dJEnCWWedle2hDChnnXUWJEnCunXrsj0UIiKinQqDGCIiIsItt9wCSZIgSRK++eabbA+HBpE//elPuOmmmzB8+HD86le/wsKFCzFhwoRsDyujneHgk67rmDVrFl544QUcd9xxWLhwIa666qpsD2tQkiQJhxxySLaHkTXvvfceTj/9dLS2tuLnP/85Fi5ciKOPPjrbw6IhaiC/P7/++uuQJAk33HBDtocyoCxduhSSJGHp0qXZHgoREdGgoGZ7AERERJRdQgg8+OCDkCQJQgg88MADuP3227M9LBok/vOf/8Dr9eKVV16B3W7P9nC2yT/+8Q+EQqFsD2ObVFZW4ssvv8T555+P+++/P9vDoUHs+eefhxAC//jHP3DggQdmezhE1E8WLVqEq666CiNGjMj2UIiIiHYqrIghIiLayb388stYt24d5s2bh9LSUjz88MOIxWLZHhYNEps2bUJBQcGgD2EAYOTIkQO2mqenNm3aBAAYPnx4lkdCgx2fS0RD07BhwzBhwgTYbLZsD4WIiGinwiCGiIhoJ/fAAw8AAM4//3ycfvrpqK+vxzPPPNPt9tXV1bjkkkswbtw4uFwu5OfnY+rUqfjd737X52231AIoU7uS5L7v3377LebMmYPi4mLIsozXX38dAPDRRx/h0ksvxZ577on8/Hw4nU6MGzcOV1xxBZqamrq9fU888QQOO+ww6zIVFRU47bTT8OGHHwIA7rvvPkiShBtvvDHj5Wtra2Gz2bDHHnt0ex3Jli5dipNOOgm77LILXC4XcnJyMG3aNDzyyCMZt1+7di0uuOACjB071rpP99hjD8yfPx8NDQ09us5nn30WP/vZz7DrrrvC4/HA4/Fgn332wV/+8hcYhtGjfSQel8rKSqxfv95qbZeYz2BrrVwyzX2Q3OZk1apVOOSQQ+Dz+ZCTk4Njjz0WX331VcZ9hUIh3HrrrZgyZQp8Ph+8Xi922203XHLJJQgEAgDM59jDDz8MABg9enTaeIHu54gxDAP33nsv9t13X3i9Xng8Huy7777429/+lvH+Sjyf6+vrccEFF2DYsGFwOByYNGkSlixZspV7Nt1HH32Ek046CcXFxXA4HBg1ahQuuugi1NTUpF3vwQcfDAC48cYbrdu4tXY6ya+nr7/+GrNmzUJ+fj48Hg+mT5+Ol19+udvLPv744zj00EPh9/vhdDqx22674eabb0Y0Gu32fqmtrcV5552HESNGQFGUlLY2H3zwAebMmYMRI0bA4XBg2LBhOPLII/Gvf/0rbX+rV6/GySefjNLSUtjtdpSXl+PCCy+0AoRkicdW0zT8/ve/t+Y0Ki8vx29+85uU8DnxPASAN954w7ofu96XvX3tAsCaNWtw5JFHWs/rww8/HO+99x5uuOEGSJJkvX8l+/rrr3HWWWehvLwcdrsdJSUlmDt3bq/bSPb0eZy4/YnnavLrZWtto5Jvx2OPPYb99tsPXq835XUWCoWwaNEiTJ48GR6PB16vFwcccAAef/zxtP0lv498+OGHOProo5Gbm4u8vDycdNJJqKqqAmC+L5566qkoKiqCy+XCoYceik8//TTjGGtqanDxxRejoqICdrsdRUVFmD17Nj766KOU7f7whz9AkiTceeedGfezadMmqKqKKVOmpCzXNA333HMP9t9/f+Tk5MDtdmOvvfbC3XffnfH9QgiBu+++G5MmTYLT6cSIESOwYMECBIPBLd7XXQ0fPjxjhcOoUaMgSVLa5+6LL74ISZJw/fXXpyzv6f0DpL5nv/TSSzjkkEOQm5ub8j761ltvYebMmSgrK4PD4UBpaSn233//lM/Qnrw/b0lraysuv/xylJWVwel0YsKECbjjjju6/Tz79ttvcdVVV2HKlCkoKiqy3lcvuOACVFdXp2x71lln4dBDDwWQ+r6a/HoNBoO47bbbMGPGDJSVlVn32/HHH4/33nuvR7ch+fokScLatWtxxx13YMKECXA6nSgrK8Mvf/lLtLS0ZLxcTz8nkq+ju+9V69atw6mnnorCwkI4nU5MmTIF//nPf1L2ccghh+Dss88GAJx99tkp90tiv62trfjd736H3XffHTk5OfD5fBgzZgzmzJmT8flEREQ01LE1GRER0U4sEAhg+fLl2HXXXXHggQciJycHf/rTn3D//fdjzpw5adt/+OGHOOqoo9DY2IiDDjoIs2fPRigUwpdffokbbrgB1113XZ+27asffvgB++23H3bddVecfvrpCIfDyMnJAWAGTM888wwOPvhgHH744TAMAx999BHuuOMOvPjii1i9ejV8Pp+1LyEEzj77bDz88MMoLCzE7NmzUVRUhOrqaqxatQrjx4/HlClTcPrpp+PXv/41/v73v+O3v/0tFEVJGdNDDz0ETdNw4YUX9ug2/PznP8ekSZNw0EEHYdiwYWhoaMALL7yAM844A998803KwbOamhrsu+++aGlpwU9+8hOcdNJJiEQiqKysxD//+U8sWLAABQUFW73Oq666CrIsY7/99sOIESMQDAbx2muv4dJLL8WaNWvwz3/+c6v7mDVrFioqKrB48WIAsCbx7o+J4f/zn/9g2bJlOOaYYzB//nx8+eWXeOGFF7BmzRp8+eWXKCwstLZtamqyDrqOHz8e55xzDux2O3744QcsWbIEs2fPRklJCRYuXIhnn30Wn376KS699FJrnD0Z7xlnnIHHHnsM5eXlOO+88yBJEp555hlcdNFFePvtt/Hoo4+mXaa5uRnTpk2D3W7HySefjGg0iieffBLnnHMOZFnGvHnzenxfnHTSSRBC4OSTT8aoUaPw0Ucf4W9/+xuWLVuGt99+G6NHjwYALFy4EOvWrcPDDz+Mgw8+2Ao3ezrPSWVlJQ444ADsscceuPDCC1FTU4MnnngCxxxzDB577LG094RzzjkHS5YsQVlZGU466ST4/X68//77uO6667By5Uq88sorUNXUPzcaGxux//77w+v1Yvbs2ZBlGSUlJQDM1+zPf/5zKIqC448/HuPGjcPmzZvx4Ycf4p577sFPf/pTaz8PPfQQLrjgAjgcDhx//PEoLy/Hd999hwcffBDPPfcc3n//fYwcOTLtNs6dOxdvvfUWjjnmGOTk5OCFF17AH//4R2zevNkKHiZPnoyFCxfixhtvxKhRo1Im+k6+L3vz2gWAN998E0ceeSR0Xcfs2bMxZswYfPbZZzj00EMxY8aMjI/JSy+9hNmzZyMej2PmzJkYO3Ysqqur8fTTT+P555/HqlWrsPfee2/9wUXPn8eJ29/X1wtgzh31yiuvYObMmTj00EOtUKG5uRkzZszAJ598gr333hvnnHMODMPAihUrMHfuXHzxxRe4+eab0/a3Zs0a3HrrrTj44INx/vnn47PPPsPTTz+Nzz//HMuWLcP06dMxYcIEnHnmmVi/fj2efvppHHHEEVi7di28Xq+1n8rKSkyfPh2bNm3CjBkzcNppp6GqqgpPPvkknn/+efz73//GcccdZ91f1157Lf7xj3/g0ksvTRvTI488Al3XU54ficdpxYoVGD9+PObOnQun04lVq1bhF7/4BVavXp32/nrZZZfhL3/5C4YNG4YLLrgANpsNy5Ytw+rVqxGLxXpcbThjxgw8+uij+Prrr63Kvu+//x4bNmwAAKxcuTLlc3flypUAgMMOO6xP90+yp556Ci+99JL1nr1+/XoA5vP32GOPRU5ODo4//niMGDECjY2N+Oqrr3DPPfdg4cKFALBNz7doNIrDDjsMa9aswZ577onTTz8dzc3N+N3vfoc33ngj42Wefvpp3HvvvTj00ENx4IEHwm6344svvrDePz788EMr1Jo1axYApL2vArCCoq+++grXXnstDjroIBx77LHIy8vDhg0bsHz5crz44ot47rnnej2/0i9/+Uu8+eab+OlPf4oTTjgBK1aswOLFi/HWW2/h7bffhtPptLbtzefE1qxfvx5Tp07FLrvsgjPOOAONjY144okncMIJJ+DVV1+1QqmzzjoLfr8fy5YtwwknnIDJkydb+/D7/RBC4Oijj8a7776LAw44AOeddx5UVbW+U/34xz/GPvvs06v7hIiIaNATREREtNNatGiRACB+//vfW8v22WcfIUmS+O6771K2jUajoqKiQgAQjz76aNq+qqqq+rStEEIAEAcffHDGMc6bN08AEJWVldayyspKAUAAEFdffXXGy61bt05ompa2/MEHHxQAxB/+8IeU5ffdd58AIPbdd1/R3Nycsk7TNLFp0ybr94svvlgAEM8991zKdoZhiNGjRwu32522j+58//33acui0aiYMWOGUFVVVFdXW8v/8pe/CABi8eLFaZdpa2sToVCoz9ep67o488wzBQDx/vvv92g/QggxatQoMWrUqLTlq1atEgDEwoULe3y5JUuWCABCURTx6quvpqy76qqrBABx6623piw/7bTTBAAxf/58oet6yrrW1taUxyHTcynZwQcfLLp+PX7ssccEALHXXnuJ1tZWa3lbW5vYZ599Mj7HE8/Nc889N+U5+MUXXwhFUcRuu+2W8fq7am1tFfn5+UKWZfHmm2+mrPvDH/4gAIgjjjgiZfnW7vdMkl9Pv/rVr1LWrVmzRqiqKvx+vwgGg9byxGN14oknpj3vFi5cmPF5mriOM844Q8Tj8ZR1X3zxhVBVVeTl5YnPP/88bYzJ7xnffPONsNlsYsyYMSmvDyGEePXVV4Usy2LWrFkpyxOP7d577y0aGhqs5W1tbWLMmDFClmVRU1OTNt7u3peE6N1rV9d1MXbsWAFAvPDCCymX+dvf/mbdN6tWrbKWNzY2Cr/fLwoKCsQXX3yRcpnPPvtMeDwesddee3U7vmR9eR5v7fWSSeKxd7vd4uOPP05bn9hn19dxOBwWRx11lJAkSXzyySfW8sTzGYB45JFHUi5zzjnnCAAiLy9P3HzzzSnrbrrppozPwSOPPFIASNv+nXfeEYqiiPz8/JT7J7H9Z599lnZbJk6cKOx2u6ivr0+7/QsWLEh57WuaZo332WefTbleAGLMmDEpz8twOCz2339/ASDj+2smf//73wUAcffdd1vL7r33Xut9wm63i/b2dmvd5MmThcvlEtFotM/3T+J9QJIk8eKLL6aNafbs2QKA+O9//5u2rq6uLuX3vjzfhBDilltuEQDE7NmzUz4D1q5dK/Ly8gQAMW/evJTLVFdXi0gkkravFStWCFmWxfz581OWb+19tbm5Oe32CGG+bw0bNkxMmDChx7cncT8UFBSIdevWWct1Xbfuz5tuusla3pfPia19r7rhhhtStn/ppZcEAHHMMcekLE88/kuWLEm7Hf/73/8EgLT34sRtaWxs3Op9QURENNQwiCEiItpJGYZhHYBMPmB41113CQDi17/+dcr2Tz31lAAgjj/++K3uuzfbCtH3IKakpCTjwZQtMQxD5OTkiEMPPTRl+e677y4AZDx42NXnn38uAIjjjjsuZXniYMXZZ5/dqzFl8u9//1sAEA8//LC1LBHE3Hfffdu8/0w++ugjAUDceOONPb7M9ghiTj/99LTt165dKwCIk046yVoWCASELMti2LBhoq2tbatj7UsQc/jhhwsAYsWKFWnbv/rqqwJA2nMpcSA6ObhIOOiggwSAlIOZ3XnkkUcEAHHaaaelrYvH41bYuX79emv5tgQxubm5oqWlJW194n5bunSptWzy5MlCVVXR1NSUtr2maaKgoEDsu+++KcsBCLvdLgKBQNplFixYIACIO+64Y6vjveyyywQA8Z///Cfj+lmzZglFUVJuS+KxfeWVV9K2v/766zMGq1sLYrqT6bX71ltvZXyuCGEelNx1113TgpjFixenHVhPlrgfuoY0mfTlebwtQcxll12Wtq6+vl4oiiKmTJmS8bL//e9/BQBx5ZVXWssSz+fp06enbf/GG28IAKKioiItdF+3bp0AIM466yxrWVVVlQAgRo4cKWKxWNr+fvazn6U9bo8++mi3AWUiiEzQdV3k5+eL0tLStKBRCCGampqEJEnilFNOsZadd955AoB46KGH0rZP3PaeBjGJ25w8plNOOUWUlJSI5557LuXxr6+vF5IkpRyg78v9k3jPznSwXYjOIOabb77Z6vj7GsSMHTtWyLKcMRhNPB+7BjFbsscee4jRo0enLOvL+2rCL37xi7T36S1J3A/JYUvCDz/8IGRZFhUVFdayvnxObOl71ahRozKexDJy5EhRUFCQsqwnQUymcREREe2s2JqMiIhoJ/Xaa6/hhx9+wFFHHZXSV37u3Lm44oorsHTpUtx8883WZK7vv/8+AOCYY47Z6r57s+222HPPPeFwODKui8fjuO+++/B///d/+PLLLxEMBlP6xW/cuNH6f3t7Oz7//HOUlJRgr7322ur1JtoRvfjii6iqqkJ5eTkA4P777wcAzJ8/v8e3YcOGDbj11luxcuVKbNiwAeFwOGV98jiPP/54XHPNNbj44ouxYsUKHHXUUZg2bRomTpyYcW6T7jQ0NOC2227DCy+8gLVr16K9vb3b68yGrnMuALDu4+T5fdasWQPDMHDQQQfB4/Fsl7F8/PHHkGU5Y3uvgw8+GIqi4JNPPklbN27cOKtNXrLk25HcMqm76waQsW2Vqqo46KCDsG7dOnzyyScZ23D11t57753Sri/hkEMOwcMPP4xPPvkE8+bNQygUwqefforCwkKrNV1XDocj45w+FRUVKC4uTlvem/eMxJwLb7zxBtasWZO2fvPmzdB1Hd9++21a65uePrd6ojev3cRzZPr06Wn7kWUZBx54IL799tuU5Ynb+emnn2ac5yex/VdffYWJEyducax9fR731dSpU9OWrVmzBrqudztvUTweB4CMz5tMj9vw4cMBmK3UuraITHymJc/3kbh9P/7xjzNOUj5jxgw88sgj+OSTT3DmmWcCAE488UTk5ubi0UcfxR/+8AfrehLzmSS3Jfv222/R2NiIcePGZWyvBgAulyvl9iVe44m5nZJNnz497XZtyahRo7DLLrvg9ddfh2EY1hwmhx9+OA4++GCoqoqVK1fiyCOPxKpVqyCESHlv6cv9k5Dp8QaA008/HU8//TT2228/zJkzB4ceeiimTZuGsrKyHt+uLWltbcX333+P8vJyjBkzJm39IYccknE+NyEEHn30USxduhSffvopmpqaoOu6tb6n7eCSvfPOO7jzzjvx3nvvYfPmzSnzTgHm+0Fv3qczPSd22WUXlJeXY926dWhubobf7+/3z4lMryfAfJ/szXw3EydOxOTJk/H4449j/fr1OOGEEzB9+nRMmTKlT/cvERHRUMAghoiIaCeVCA2SDyQBQH5+PmbOnIl///vfWLZsGU4++WQAZm9/ABknA+6qN9tui9LS0m7XzZkzB8888wx22WUXnHDCCSgtLbVCm8WLF6dMJt6X8V500UV488038eCDD+LGG29EbW0tli9fjsmTJ3d7UKqrtWvXYurUqWhqasKPf/xjHHnkkcjNzYWiKNZcH8njHDVqFD744APccMMNeOmll/D0008DMA+Q/OpXv8Ill1yy1etsbm7Gvvvui8rKSkydOhVnnnkm8vPzoaoqmpubceedd2acaH1HyjQvQGKukeSDZTvieRYMBpGfn5/xwJGqqigsLMTmzZvT1nU3t0Gm27Gl6waAYcOGZVyfWJ64H7ZVYq6WrhKvs8R4mpqaIIRAXV1dxoOcW9Lda7Y3j2VDQwMA4Lbbbtvidm1tbWnLevrc2prevnYT911393Gm5Ynb+cADD2xxLJluZ1d9fR73VabHOXF71qxZkzFAS8h0e3Jzc9OWJR63La1LhDtA315PLpcLP/3pT/HAAw/g5ZdfxjHHHINYLIbHH38cRUVFKcFh4vZ99913W3xdJN++LT0vEo9Lbxx22GF44IEH8PHHH8Nms6Gurg6HHXYYfD4f9t13X2temEzzw2zL+013r+vZs2fjP//5D/70pz/hoYcewn333QcA2GeffbBo0SIcccQRvbp9XW3tddXduC6//HIsXrwYw4YNs05GcblcAIClS5dac9z01DPPPIOTTz4ZTqcTRxxxBMaMGQOPxwNZlvH666/jjTfe6PXn6pZu0/r16xEMBuH3+/v9c2JLn13JJ7NsjaIoeO2113DTTTfhqaeewm9+8xsAgM/nw7x587Bo0aKtnoxAREQ01DCIISIi2gnV1dXh2WefBQCcdtppOO200zJud//991tBTOKP855US/RmWwCQJAmapmVct6WDB91VgXz44Yd45plncPjhh+PFF19MmTDcMAz88Y9/3KbxArAmgf/73/+O66+/Hg899BA0TcOFF17Y433ccccdaGhowJIlS9ICsccff9w66zrZbrvthieeeAKapuHTTz/Fq6++irvuuguXXnopPB4Pzj333C1e54MPPojKykosXLgw7az09957D3feeWePx78lsiwDwBYf155O/N2dvjxuvZWbm4vGxkbE4/G0s8Q1TUN9fX3Gypf+um4AqK2tzbi+pqYmZbttFQgEMi5PXH/iehI/99prL+ts7J7q7jWb/FgmJhrvTuL6g8Hgdrvvt6a3r93EOLu7jzMtT9zOTz/9FD/60Y+2abw7+nmc6XFO3J5f/vKXuOOOO/rtunqqr6+nefPm4YEHHsDDDz+MY445Bs8//zwaGhpw6aWXptyXicudeOKJVkje0zEFAgHssssuKesSj0tvqkdmzJiBBx54AK+++qoVuiXClhkzZmDRokVobGzEypUrkZubi7333jttLH15v9lSReaxxx6LY489Fu3t7Vi9ejX+85//4G9/+xuOO+44fPLJJ1ut5tqS5Psvk0y3ZfPmzfjLX/6C3XffHe+++25aFeDjjz/e63Fcd911sNvt+PDDD7HbbrulrLvwwgvxxhtv9HqfgUAA48ePT1ve3fvxjvqc6I28vDz8+c9/xp///Gd8//33eOONN3Dffffh7rvvRnNzM/75z3/u8DERERFlk5ztARAREdGO9/DDDyMWi2GfffbBueeem/FfUVERXn31VVRWVgIA9t9/fwDAiy++uNX992ZbwPxjvaqqKm25ruv473//28Nb1en7778HYLbySg5hAOCDDz5IayHk8Xiw++67IxAI9Lg9j81mw3nnnYeNGzfiueeew4MPPgiv14vTTz+91+M86aST0tZt7cCNqqrYZ5998Jvf/MY6cJQI17bXdfZGXl4eAGR8XL///nvrLN5tMXXqVMiyjDfffDOtvVomiXYrval82GuvvWAYBt588820dW+++SZ0XU85mNmfEm3yXn/99bR1mqbhrbfeAoB+u/6PP/4Yra2tacsT158Yj9frxaRJk/DFF1+gsbGxX667L+8vidu/vciy3O1zpbevo8R99/bbb6etMwwD7777btry/ryd2XweJyRer9v7cetO8mOQKSBetWoVgPTX07Rp0zBu3DgsW7YMwWDQCtnmzZuXst2ECRPg9/vx/vvvp1TibEniujI9Z95+++1evVcBZtgiSRJWrlyJ1157DbvssgsqKioAmIGMYRj4xz/+ge+++w6HHHJISguqvt4/PeXxeDBjxgzccccduOaaaxCLxVJe7315f/b5fBg7diw2btyIH374IW19pvfOtWvXwjAMHHnkkWkhTHV1NdauXZt2ma2N7fvvv8fEiRPTQhjDMDK+5nsi03Ni7dq1qKqqQkVFhRVe7+jPiWS9eczGjh2Lc889F2+88Qa8Xi+WLVvW7+MhIiIa6BjEEBER7YQSrW7uuecePPjggxn/XXjhhRBC4MEHHwQAzJw5ExUVFVi+fHnGM0aTe/H3ZlvAPEC3YcMGvPzyyynLb7755l63CAFgHXjqemBi8+bNuPjiizNeJtHW68ILL0wLCQzDsM4qTXbBBRdAURQsWLAAlZWVmDt3bsY5Nno7zhUrVlj3e7KPPvooY4CROBvY7Xb3+To/+eQTLFq0aOuD7qEJEyYgJycHy5YtS2l5FA6He9RCrSeKiopw6qmnoqamBr/61a/S2qa0tbWl3F8FBQUAzLk9euqcc84BAFx99dUIhULW8lAohKuuugoAtlqF1FezZs1Cfn4+Hn/8cWsOlYTFixejsrIShx9+eL/MDwOYFSY33XRTyrIPP/wQjz76KHJzc3HiiSdayy+//HLEYjGcc845GavWmpqaelUt8/Of/xyqquJ3v/sdvvzyy7T1ye8ZCxYsgM1mwy9/+cu0eVUAIBaL9cvB/oKCgoxBItD71+60adMwZswYrFq1Ki1suv/++zPejrPPPht+vx833ngjPvjgg7T1hmFkPPiaSTafxwnFxcU4/fTT8eGHH+J3v/tdxoO3P/zwgxX+97eysjIcccQRWLduXdrcRqtXr8Zjjz2GvLy8lOd5wrx58xCJRHDPPffghRdewI9+9KO0+cRUVcUvfvEL1NTU4JJLLkkL/AGzOiH5+Z2oprrllltSQs1IJIKrr76617exuLgYkyZNwjvvvIM333wzpfXYgQceCKfTab3Pd51TZFvun+68+eabGUOdTJ9ZfXl/BszXiWEY+M1vfpPyGVBZWYm//OUvadsnXrtdg662tjacf/75Gce7tbFVVFTgu+++w6ZNm6xlQgjccMMNGd/PeuLOO+9M+f5jGAauvPJKGIaBs88+21q+oz8nkm3pfqmsrMwYajU1NSEajVqt4IiIiHYmbE1GRES0k3n99dfx7bffYo899tjiXCbnnnsubrnlFixZsgQ33ngj7HY7nnzySRx55JGYO3cu7rvvPuy///6IRCL46quvsHLlSusARm+2BYBf/epXWLFiBU444QTMmTMH+fn5ePfdd1FZWYlDDjmkxwcbE/bdd19MmzYNTz/9NA488EBMnz4dgUAAL774IsaPH29N8pzsvPPOw1tvvYV//vOfGDduHE444QQUFRVh06ZNeO2113DOOeektfIaOXIkjj32WCxfvhwAetWWDDDnmVmyZAlOOeUUnHzyyRg+fDg+//xzvPTSS/jpT3+KJ554ImX7f/7zn7jvvvswffp0jBkzBnl5efjhhx/w3HPPweFw4LLLLtvqdZ555pm47bbbcNlll2HVqlUYN24cvvvuO/znP//B7Nmz066zr2w2Gy699FL87ne/w1577YUTTzwRmqbhlVdewfDhwzM+Bn1x99134/PPP8e9996L119/HUcddRTsdjsqKyuxYsUKLF++3Jqg/LDDDsNtt92G888/HyeddBJ8Ph/8fj8WLFjQ7f7nzp2LZcuW4V//+hcmTZqEWbNmQZIkPPvss6isrMScOXN6VQXVG16vFw899BBOOeUUHHzwwTjllFMwcuRIfPTRR3j55ZdRWlpqzbnQHw466CA8+OCDWL16NaZNm4aamho88cQTMAwD9913X0rrqnPOOQcfffQR7rnnHowZMwZHHXUURo4cicbGRlRWVuLNN9/E2WefjXvvvbdH1z1x4kTcc889mD9/Pvbaay+ccMIJGDduHBoaGrBmzRrk5ORYZ+RPmDABDz30EM455xxMmjQJRx99NHbddVfE43Fs2LABb731FoqKivD1119v0/1x2GGH4f/+7/8wc+ZM7L333rDZbDjooINw0EEH9fq1K8syHnzwQRx99NE4/vjjcdJJJ2HMmDH43//+h1deeQXHHHMMXnzxRaulH2Ae5Hzqqadw4oknYv/998dhhx2GSZMmQZIkVFVV4b333kNDQwMikchWb0s2n8fJ7r77bnz33Xe4/vrr8c9//hPTp09HSUkJNm3ahK+++gpr1qzB448/jtGjR2+X67/33nsxbdo0XHnllXj55ZcxZcoUVFVV4cknn4Qsy1iyZEnGMP2MM87A9ddfj4ULFyIej6dVwyRcd911+PTTT3Hvvffiueeew4wZMzBixAhs3rwZ3333Hd555x3ccsstVjuuadOm4Re/+AXuuusu7L777jj55JNhs9mwbNky5OXldTvvx5Ycdthh+Pzzz63/JzgcDkybNi3j/DDbev9055JLLsHGjRsxbdo0VFRUwG6346OPPsJrr72GUaNG4dRTT00Zd2/fnwHgiiuuwLPPPot///vf2HvvvXHUUUehubkZ//rXv3DQQQdZn88JpaWlOPXUU/F///d/mDx5Mo488kgEg0G88sorcDqdmDx5clol7vjx4zFixAj83//9H2w2G0aNGgVJknDGGWdg1KhR+OUvf2m9d5100kmw2Wx455138OWXX2LmzJl47rnnenyfJUybNg2TJ0/GnDlzkJubixUrVuDTTz/FPvvsg1//+tfWdjv6cyLZAQccALfbjcWLF6OhocGak+cXv/gFPv30U8yePRv77rsvdtttNwwfPhx1dXVYtmwZ4vG4NWcMERHRTkUQERHRTmXu3LkCgLjzzju3uu0RRxwhAIinn37aWrZ+/Xrx85//XFRUVAibzSby8/PF1KlTxS233JJ2+d5su2zZMrHPPvsIh8Mh8vPzxZw5c8S6devEvHnzBABRWVlpbVtZWSkAiHnz5nU79oaGBvHzn/9cjBo1SjgcDrHLLruIq6++WrS3t4tRo0aJUaNGZbzcI488Ig466CCRk5MjHA6HqKioEHPnzhUfffRRxu2fffZZAUBMmTKl27FsyTvvvCMOPfRQ4ff7hdfrFdOmTRPPPPOMWLVqlQAgFi5caG37/vvvi/nz54sf/ehHIi8vTzidTjFmzBhx1llnic8++6zH1/nFF1+ImTNniqKiIuF2u8Xee+8tHnjggR7dr11t6b40DEMsWrRI7LLLLsJms4ny8nJx5ZVXdvsYLFmyRAAQS5Ysybg/AOLggw9OW97W1iZuvvlmscceewiXyyW8Xq/YbbfdxKWXXioCgUDKtn/605/EhAkThN1uFwBSxnDwwQeLTF+PdV0Xf/3rX8U+++wjXC6XcLlcYu+99xZ333230HW9x+MUQmR8Pm/NBx98IGbNmiUKCwut+3H+/Pli48aNadtmet5sTfLj/uWXX4rjjz9e+P1+4XK5xIEHHiheeumlbi/73HPPiWOPPVYUFRUJm80mSkpKxL777iuuvfZa8dVXX6Vsu6X7JeHdd98Vs2fPtvY3bNgwcdRRR4knn3wybdv//e9/Yt68eWLkyJHCbreLvLw8MWnSJHHBBReIlStXpmzb3WMrRPfPu0AgIE477TRRXFwsZFlOu19789pNeP/998Xhhx8uvF6v8Hq94rDDDhPvvvuuuPjiiwUA8cknn6RdprKyUlx88cVi7NixwuFwCJ/PJ8aPHy9+9rOfiWeeeWaL92ey3j6P+/JcXbhwoQAgVq1a1e020WhU3HXXXeKAAw4QOTk5wm63i/LycjFjxgzx5z//WdTX11vbbum+3Nr7VXfPt+rqajF//nwxcuRIYbPZREFBgTjhhBPEBx98sMXbdthhhwkAQlVVUVtb2+12hmGIf/zjH2LGjBkiLy9P2Gw2MXz4cDFt2jRxyy23iA0bNqRtf9ddd1nvS8OGDRMXXXSRaG5u3uL7a3eWL18uAAhJktLe/37/+98LAKKkpKTby/fm/tnae/YTTzwhTj31VDF27Fjh8XiEz+cTkyZNEtdcc43YvHlz2vZben/ekmAwKH75y1+K4cOHC4fDIcaPHy9uv/128cMPP2R8jrS3t4trrrlGjBkzRjgcDlFWViYuuugiUV9f3+17xQcffCBmzJghcnJyhCRJac/zJUuWiD333FO43W5RUFAgZs2aJf73v//16DWRLPG6++GHH8Ttt98uxo8fLxwOhxg+fLi49NJLRTAYzHi53nxO9OV7VXf3y4svvij2339/4fF4BABrv1VVVeLqq68WBx54oCgpKRF2u12MGDFCHH300eKFF17o0X1BREQ01EhCCLHdUh4iIiKiIe6GG27AjTfeiAcffHC7t/Yh2h7WrVuH0aNHY968eVi6dGm2h7NTmjZtGlavXo1gMAiPx5Pt4RBRlpx11ll4+OGHUVlZabVRIyIioqGBc8QQERER9VFrayvuvfde5Ofn47TTTsv2cIhoAAuFQhnn01m6dCneffddHHnkkQxhiIiIiIiGKM4RQ0RERNRLzz//PD7++GM899xzCAQCuP3221MmHSYi6mrDhg3Ya6+9cMQRR2Ds2LHQNA2ffPIJ3n77bfj9fvzpT3/K9hCJiIiIiGg7YRBDRERE1EtPPvkkHn74YZSUlODqq6/GL3/5y2wPiYgGuJKSEpx++ul44403sGrVKkSjUZSWluLss8/GtddeizFjxmR7iEREREREtJ1wjhgiIiIiIiIiIiIiIqLthHPEEBERERERERERERERbScMYoiIiIiIiIiIiIiIiLYTzhHTA4ZhYNOmTfD5fJAkKdvDISIiIiIiIiIiIiKiLBJCoLW1FcOHD4csb7nmhUFMD2zatAnl5eXZHgYREREREREREREREQ0gVVVVKCsr2+I2DGJ6wOfzATDv0JycnCyPhoiIiIiIiIiIiIiIsqmlpQXl5eVWfrAlDGJ6INGOLCcnh0EMEREREREREREREREBQI+mM9ly4zIiIiIiIiIiIiIiIiLqMwYxRERERERERERERERE2wmDGCIiIiIiIiIiIiIiou2EQQwREREREREREREREdF2omZ7AERERERERERERERE/UUIAV3XoWlatodCg5CqqlAUBZIk9d8++21PRERERERERERERERZIoRAc3Mz6urqoOt6todDg5iiKCguLkZubm6/BDIMYoiIiIiIiIiIiIho0KutrUVzczNycnKQk5MDVVX7taqBhj4hBDRNQ0tLC2pqahAOhzFs2LBt3i+DGCIiIiIiIiIiIiIa1HRdRzAYRFFREQoLC7M9HBrkfD4fHA4H6uvrUVxcDEVRtml/cj+Ni4iIiIiIiIiIiIgoK+LxOIQQ8Hg82R4KDREejwdCCMTj8W3eF4MYIiIiIiIiIiIiIhoS2IqM+kt/PpcYxBAREREREREREREREW0nDGKIiIiIiIiIiIiIiIi2EwYxRERERERERERERETUK2eddRYqKiqyPYxBgUEMEREREREREREREdEAtnTpUkiSZP1TVRUjRozAWWedhY0bN2Z7eLQVarYHQEREREREREREREREW3fTTTdh9OjRiEQieP/997F06VK8/fbb+Pzzz+F0OrM9POoGgxgiIiIiIiIiIiIiokHgmGOOwZQpUwAA5513HgoLC3Hrrbdi+fLl+OlPf5rl0VF32JqMiIiIiIiIiIiIiGgQ+vGPfwwA+OGHHwAAsVgM119/PfbZZx/k5ubC4/Hgxz/+MVatWpVyuXXr1kGSJNx+++24//77MWbMGDgcDuy7775Ys2ZN2vU8++yz2H333eF0OrH77rvjmWeeyTie9vZ2XHHFFSgvL4fD4cD48eNx++23QwiRsp0kSViwYAGefPJJTJw4ES6XCwcccAA+++wzAMB9992HsWPHwul04pBDDsG6deu29a7KKlbEEBERERERERERERENQomAIi8vDwDQ0tKCBx98EKeddhrOP/98tLa24u9//zuOOuoofPDBB5g8eXLK5R977DG0trbiwgsvhCRJ+OMf/4jZs2dj7dq1sNlsAICXX34ZJ510EiZOnIhFixahoaEBZ599NsrKylL2JYTA8ccfj1WrVuHcc8/F5MmTsWLFClx55ZXYuHEj/vznP6ds/9Zbb2H58uW4+OKLAQCLFi3Ccccdh1//+te45557cNFFF6GpqQl//OMfcc455+C1117bDvfgjsEghoiIiIiIiIiIiIiGJCGAsJbtUXRyqYAk9f3ywWAQ9fX1iEQiWL16NW688UY4HA4cd9xxAMxAZt26dbDb7dZlzj//fEyYMAF33XUX/v73v6fsb8OGDfjuu++sIGf8+PE44YQTsGLFCmufv/nNb1BSUoK3334bubm5AICDDz4YRx55JEaNGmXta/ny5Xjttddw880349prrwUAXHzxxTjllFNw5513YsGCBRgzZoy1/TfffIOvv/4aFRUV1tgvvPBC3Hzzzfj222/h8/kAALquY9GiRVi3bp217WDDIIaIiIiIiIiIiIiIhqSwBux2T7ZH0emriwC3re+XP/zww1N+r6iowCOPPGJVpyiKAkVRAACGYaC5uRmGYWDKlCn4+OOP0/Y3Z84cK4QBOludrV27FgBQU1OD//73v7jqqqusEAYAjjjiCEycOBHt7e3WshdeeAGKouCSSy5JuY4rrrgCTz31FF588UUsWLDAWn7YYYelBCv77bcfAOCkk06yQpjk5WvXrh20QQzniCEiIiIiIiIiIiIiGgT++te/4pVXXsFTTz2Fn/zkJ6ivr4fD4UjZ5uGHH8aPfvQjOJ1OFBQUoKioCM8//zyCwWDa/kaOHJnyeyKUaWpqAgCsX78eADBu3Li0y44fPz7l9/Xr12P48OEpIQoA7Lbbbin76u66E0FPeXl5xuWJMQ1GrIghIiIiIiIiIiIioiHJpZpVKAOFaxuPyE+dOhVTpkwBAMyaNQvTp0/H3Llz8c0338Dr9eKRRx7BWWedhVmzZuHKK69EcXExFEXBokWL8MMPP6TtL1E905UQYtsG2gPdXXc2x7S9MIghIiIiIiIiIiIioiFJkratFdhAlghYDj30UNx999246qqr8NRTT2GXXXbB008/DSlpMpqFCxf26ToSc8B89913aeu++eabtG1fffVVtLa2plTFfP311yn72hmxNRkRERERERERERER0SB0yCGHYOrUqVi8eDEikYhVTZJcPbJ69Wq89957fdr/sGHDMHnyZDz88MMprc1eeeUVfPnllynb/uQnP4Gu67j77rtTlv/5z3+GJEk45phj+jSGoYAVMURERERERERERET9yNA0GLEYjGgURiwGPRoFAMiqCslmg2yzdf5fVSF104qJqCeuvPJKnHLKKVi6dCmOO+44PP300zjxxBNx7LHHorKyEvfeey8mTpyItra2Pu1/0aJFOPbYYzF9+nScc845aGxsxF133YVJkyal7HPmzJk49NBDce2112LdunXYc8898fLLL2PZsmW47LLLMGbMmP66yYMOgxgiIiIiIiIiIiKiHjBiMStY6Rq0aOEw9LY2aKEQ9EgEQtNgxOPmT00DJAmSJEFSlM5/qgq546fidEJ2OKC4XOZPm81cn/TT+j9DHEoye/ZsjBkzBrfffju++eYb1NbW4r777sOKFSswceJEPPLII3jyySfx+uuv92n/Rx99NJ588kn89re/xdVXX40xY8ZgyZIlWLZsWco+ZVnG8uXLcf311+OJJ57AkiVLUFFRgdtuuw1XXHFF/9zYQUoSg3mGmx2kpaUFubm5CAaDyMnJyfZwiIiIiIiIiIiIqJ8IIayAxYhGoScFLEY0Cq29HfG2NuihEIxYDCIeh65p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McRbWhALBhFvbka4thZaSwu0UAjCMCDbbFDcbtj9fsilpWynRANSr0Ktjv+zPRgR0ZZt3LQJN9xyC15csQLNwSDG7LILfrlgAc464wxrm1gsht/fdhteXLECP1RWQtM07LXnnlh4zTU45KCDUvb3xFNP4Y4778R3a9dCkiSMGjUK5513Hi699FIsXboUZ599NgDg0EMPtS6zatUqHHLIIRnHd+ONN0KSJDz66KMpIUzClClTMGXKFOv39vZ2XH/99fjXv/6FzZs3o6KiAueffz6uuOKKlM8DSZJw8cUX44ADDsDvf/97fPvtt3jyyScxa9YsbNy4Eddddx2ef/55NDc3Y+zYsbjiiitwzjnn9Ok+7gsGMUREREREREQDmDAMxFtbEQ8GzWqXQACxxkZo4TBELAZIklnt4nbDXVDANks0aGytDVrKttt5LEQ0dAkhzM/LAUKy27dboBzYvBk/PvxwSJKEn19wAYoKCvDSq6/iggUL0NLaiksuuggA0NLaiiX/+AfmnHwyzp03D61tbVjyz3/i2Nmz8c5rr2Hyj34EAHj1tddwxrnn4tCDDsLvb7oJisOBr776Cu+88w4uvfRSHHTQQbjkkkvwl7/8Bddccw122203ALB+dhUKhbBy5UocdNBBGDly5FZvjxACxx9/PFatWoVzzz0XkydPxooVK3DllVdi48aN+POf/5yy/WuvvYZ//etfWLBgAQoLC1FRUYFAIID9998fkiRhwYIFKCoqwosvvohzzz0XLS0tuOyyy7bhHu85BjFEREREREREA4gWCnXO7dLQgMjmzZ0txoSA7HRCcbvhKCyE4nBke7hEREQDmojF8MXll2d7GJZJd9wBaTt9fl9/003QdR0fv/ceCvLzAQAXnHsufnbOOfjdH/6A888+Gy6XC3l+P7777DPY7XbrsufOm4c99t0X99x3H+7/618BAC++/DJycnLwn3/9CzaPBzavN+X6dtllF/z4xz/GX/7yFxxxxBHdVsEkfP/994jH49hjjz16dHuWL1+O1157DTfffDOuvfZaAMDFF1+MU045BXfeeScWLFiAMWPGWNt/8803+OyzzzBx4kRr2XnnnQdd1/HZZ5+hoKAAADB//nycdtppuOGGG3DhhRfC5XL1aDzbgs0yiYiIiIiIiLLEiMcRbWhAW2UlGj/5BJteegkbn3sOm154AXVvvongN99Aj0ah5uTAPWoUPLvsAtfw4bD7/QxhiIiIyCKEwDPLl+PYo4+GEAL1DQ3WvyMPOwzBYBCffPopAEBRFCuEMQwDjY2N0HQd++y1l7UNAOTm5qK9vR0rX3+9X8bY0tICABlbkmXywgsvQFEUXHLJJSnLr7jiCggh8OKLL6YsP/jgg1NCGCEE/v3vf2PmzJnmfVJfb/076qijEAwG8fHHH2/jreoZVsQQERERERER7QBCCGhtbVa1S6SuDtG6OuihEPRYDBIA2eWC6nbD5fdDVvknOxER0baS7HZMuuOObA/DIiVVofSnuvp6NAeDeHDpUjy4dGnGbTbX1Vn//8djj2Hx3Xfjm2+/RTwet5aPHjXK+v/8887DU888g+NPPRUjhg/HkUcdhZ/+9Kc4+uij+zTGnJwcAEBra2uPtl+/fj2GDx+eFtwkWp+tX78+Zfno0aNTfq+rq0NzczPuv/9+3H///RmvY/PmzT0ay7YacN/q/vrXv+K2225DbW0t9txzT9x1112YOnVqt9svXrwYf/vb37BhwwYUFhbi5JNPxqJFi+B0OgEAN9xwA2688caUy4wfPx5ff/31dr0dREREREREtHPTo1FzXpdgENHGRrPFWGsr9HAYQgjINhtUjwf2ggLIDgcnICciItoOJEnabq3ABhLDMAAAc+fMwRmnnZZxmz123x0A8OgTT+C8n/8cxx93HC6/5BIUFxZCURT88Y47sHbdOmv74qIifPj221ixYgVefv11rHj1VSxZsgRnnnkmHn744V6PcezYsVBVFZ999lnvb2APdG0xlrhPfvazn2HevHkZL/OjjvlwtrcBFcQ88cQTuPzyy3Hvvfdiv/32w+LFi3HUUUfhm2++QXFxcdr2jz32GK666io89NBDOPDAA/Htt9/irLPOgiRJuCMp5Zw0aRJeffVV63eVZxURERERERFRPxK63jmvS0sLIrW1iDU3Qw+FYGgaZEWB7HRC9XrhKCqCJLNTOBEREfWfosJC+Hw+6LqOww49dIvbPr1sGXapqMCTjzySciLITYsWpW1rt9tx7FFHYeYJJ0Bxu3HRRRfhvvvuw3XXXYexY8f26kQSt9uNGTNm4LXXXkNVVRXKy8u3uP2oUaPw6quvorW1NaUqJlFkMSqpeieToqIi6z45/PDDezzO7WFAffO74447cP755+Pss8/GxIkTce+998LtduOhhx7KuP27776LadOmYe7cuaioqMCRRx6J0047DR988EHKdqqqorS01PpXWFi4I24OERERERERDUFCCGjt7Qhv2oSWr7/G5rffRvXy5dj4/POoeeUVNHzwASKbN0NWVThLS+EdPRrukSPhLC6G6vEwhCEiIqJ+pygKTjz+eDyzfDk+//LLtPV19fWd23Z8FxFCWMs++PBDvN/luHpDY2PK77IsWxUk0WgUAODxeAAAzc3NPRrnwoULIYTAGWecgba2trT1H330kVVt85Of/AS6ruPuu+9O2ebPf/4zJEnCMcccs8XrUhQFJ510Ev7973/j888/T1tfl9SqbXsbMKUhsVgMH330Ea6++mprmSzLOPzww/Hee+9lvMyBBx6IRx55BB988AGmTp2KtWvX4oUXXsAZZ5yRst13332H4cOHw+l04oADDsCiRYswcuTIbscSjUatJxLQOYkQERERERER7XyMWAzxlhbEgkHEm5sRDgSgBYPQQiGzxZiqQnG7Yff7IZeWssUYERERbTdLH3kEK1auTFv+i/nzccsNN+CNt97C9MMOw7nz5mG38ePR2NSETz79FK+9/joCHXOqHHv00Xj2uedw8umn4ydHHonK9evxwEMPYbcJE9De3m7t88Jf/AJNTU04eNo0lI8ciepAAHfddRcmT55szdMyefJkKIqCW2+9FcFgEA6HAzNmzMjY4Qowj+n/9a9/xUUXXYQJEybgjDPOwLhx49Da2orXX38dy5cvx8033wwAmDlzJg499FBce+21WLduHfbcc0+8/PLLWLZsGS677DKMGTNmq/fXH/7wB6xatQr77bcfzj//fEycOBGNjY34+OOP8eqrr6KxS9i0vQyYIKa+vh66rqOkpCRleUlJSbfzucydOxf19fWYPn26eUaSpmH+/Pm45pprrG32228/LF26FOPHj0dNTQ1uvPFG/PjHP8bnn3+eNslPwqJFi9LmlSEiIiIiIqKhTxgG4q2t0DqCl0gggFhjI7RwGCIWAyQJissFxe2Gu6AAkqJke8hERES0E7nv73/PuPzMuXNRNmIE3nntNdxy66149rnncO+DD6IgPx8TJ0zA75OOd595+umoDQTw4NKleGXlSuw2fjyWPvAA/v3ss3jz7bet7eb+9Kf4+9KluH/JEjQHgygtLcWcOXNwww03QO6oqiktLcW9996LRYsW4dxzz4Wu61i1alW3QQwAXHjhhdh3333xpz/9Cf/4xz9QV1cHr9eLvffeG0uWLMHPfvYzAGahxvLly3H99dfjiSeewJIlS1BRUYHbbrsNV1xxRY/ur5KSEnzwwQe46aab8PTTT+Oee+5BQUEBJk2ahFtvvbVH++gPkkiuP8qiTZs2YcSIEXj33XdxwAEHWMt//etf44033sDq1avTLvP666/j1FNPxc0334z99tsP33//PS699FKcf/75uO666zJeT3NzM0aNGoU77rgD5557bsZtMlXElJeXIxgMIicnZxtvKREREREREQ0UWjiMeDBozu3S2IhIIACtvR16OAwIAdnptIIXZSeY6JeIiGiwissygn4/RpWXw2m3Z3s4Q4oRi0F2OmHzerM9lB0qEomgsrISo0ePhtPpTFvf0tKC3NzcHuUGA6YiprCwEIqiIBAIpCwPBAIoLS3NeJnrrrsOZ5xxBs477zwAwB577IH29nZccMEFuPbaa61ULpnf78euu+6K77//vtuxOBwOOPgFm4iIiIiIaEgx4nHEW1rMNmPNzYgEAogHg9Da2wFdBxQFqscDNScHjuJizuVCRERERP1iwAQxdrsd++yzD1auXIlZs2YBAAzDwMqVK7FgwYKMlwmFQmlhi9JRFt5doU9bWxt++OGHtHlkiIiIiIiIaOgQQkBrazODl2AQkbo6xOrrzWqXWAwSANnlgup2w+X3Q1YHzJ/HRERERDTEDKhvmpdffjnmzZuHKVOmYOrUqVi8eDHa29tx9tlnAwDOPPNMjBgxAosWLQJgTtZzxx13YK+99rJak1133XWYOXOmFcj86le/wsyZMzFq1Chs2rQJCxcuhKIoOO2007J2O4mIiIiIiKh/6dGo1WIs2tRkthhrbYUeDkMIAdlmg+J2w15QANnhgCRJ2R4yEREREe0kBlQQM2fOHNTV1eH6669HbW0tJk+ejJdeegklJSUAgA0bNqRUwPz2t7+FJEn47W9/i40bN6KoqAgzZ87ELbfcYm1TXV2N0047DQ0NDSgqKsL06dPx/vvvo6ioaIffPiIiIiIiItp2Qtc7W4wFg4jU1iIWDEJvb4ehaZBkGYrLBdXrhaOoiC3GiIiIiCirJNFdDy+y9GbSHSIiIiIiIuo/QgjooZBZ7dLSgkh9PaJ1dWaLsXAYkCQoTidUtxuK2w3ZZsv2kImIiCgL4rKMoN+PUeXlcNrt2R7OkGLEYpCdTti83mwPZYeKRCKorKzE6NGj4XQ609b3JjcYUBUxREREREREtHMzYjGr0iXe3IxwIAAtGIQWCpktxlTVbDHm90MuLWWLMSIiIkrFugPqJ/1Zw8IghoiIiIiIiLJCGAbira3QEi3GAgHEGhuhhcMwolGrxZjidsOVnw9Z5Z+wRERElJkshPndQteRXrtA1HvxeBwArPnotwW/xRIREREREdEOoYXDZouxYBCxpiZEams7W4wJAdnphOJywVFYCMXhyPZwiYiIaBBRhIASj6OlrQ1el4tVs7RNhBAIBoNwOByw9UPrWwYxRERERERE1O+MeBzxlhazzVhzMyKBAOLBIPRQCELTAEWB6vFAzcmBo7gYkixne8hEREQ0yLmjUbQFg9gEIMfrhU1RAAYy20zE45AkCfpOUJ0shEA8HkcwGERbWxtGjBjRL/sd+vccERERERERbVdCCGhtbWbwEgwiUleHWH29We0Si0ECILtcUN1u2Px+thgjIiKi7cKpaUBbG0LxOFqDQZ7o0U+EpkGy2XaqimWHw4ERI0YgJyenX/bHb79ERERERETUK3o0arYYa2lBtLERkUAAWmsr9HAYQgjINhsUtxv2ggLIDgdbgxAREdEO49Q0ODUNuiTB4HeQfhGprYV39GjkTZiQ7aHsEIqi9Es7smQMYoiIiIiIiKhbQtcRb20153UJBhGprUUsGITe3g4jHoekKFBcLqheLxxFRTzzlIiIiAYERQgoQmR7GENCPBqFDYDT6cz2UAYtBjFEREREREQEwGwxpodCVrVLpL4e0bo6s8VYJAIAUJxOKC4XnKWlkPv5TEEiIiIioqGIQQwREREREdFOyojFzHldWloQa2pCOBCA1tICrb3dbDGmqmaLMb8fstPJFmNERERERH3AIIaIiIiIiGgnIAwDWlub1WIsWleHaH09tHAYRjQKSZahuFxQ3G648vIgq/xzkYiIiIioP/CbNRERERER0RCkhcOIB4PQWloQbWxEpLa2s8WYYUDuaDHmKCyE4nBke7hEREREREMWgxgiIiIiIqJBzojHO1uMNTcjEgggHgxCD4UgNA1QFKgeD9ScHDiKiyHJcraHTERERES002AQQ0RERERENIgIIcwWYy0tiAeDiNbXI1pXB629HUYsBgCQXS6o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iIiIzDgFMSJyUX6lwtDu3RSee47okiVEWlvnekkABNUqhSefZHTfPgC8RILMnXeS6Oub45VJUK9Ty+epF4sARFpbyVx/PYlly4h1dhJWSCYiIiIiIiIiIouMghgRmVStWGRw505KL79MYsWKpqkyKR87Rn7bNvyREQCSa9fSevvteLHYHK9s8QpqNWqFAvVCAYwhksmQWbeOZCN8CenfRkREREREREREFjEFMSJygcrgIAM7djB27BjJvj68SGSul4RfLlPYuZOxV14BINTSQnbzZmLLl8/xyhanoFajls9TKxYxnkc0m6XtlluId3cTW7JE4YuIiIiIiIiIiEiDghgROc/o8eMMbt9OdXiYVH8/JhSa0/VYaykfOkR+xw6CchmMIXX99aRvvrkpAqLFxK9UqOXz+KUSJhIhms2SXruWeHc38SVL8KLRuV6iiIiIiIiIiIhI01EQIyKACzxKr7zC0I4d+LUayb4+jDFzuiZ/dJT8tm2Ujx4FIJzNkt2yhejSpXO6rsXEr1So5XLUR0bwIhGibW1krruOeFcXsSVLFIaJiIiIiIiIiIi8AQUxIoINAvLPPcfQk0/iRaMke3rmdj3WMvrSSxR27cLWauB5tKxbR/qmm+a8Qmcx8Mtlqrkc/ugoXizmwpd160h0dhLt6MAL66VDRERERERERETkUulsmsgiF1SrDD31FPm9e4lks0Sz2TldT71QILdtG9UTJwCILFlCdssWIm1tc7quha4+Ourajo2NEYrFiHZ00HLzzcQ6O4m1tysAExERERERERERmSIFMSKLWH10lMFduyju30+8u5twKjVna7FBwMgLL1B88kms72NCIdK33krquuswnjdn61qorLX4jfAlKJfxEgliHR2k+vuJL11KtL1df+8iIiIiIiIiIiLTQEGMyCJVzeUY2LGD0cOHSfT0EIrF5mwtteFhclu3UhsYACDa3U1282bCra1ztqaFyFqLPzJCtRG+hJJJ4p2dpPr6iC1dSrStTeGLiIiIiIiIiIjINFMQI7IIlU+dYmDbNspnzpDs65uzmR/W9yk+8wylZ5+FIMBEIrTecQfJtWsxxszJmhYaGwTUR0Zc5Uu1SjiVIrl8OcneXuKdnUSyWf1di4iIiIiIiIiIzCAFMSKLzMihQwzs3Ik/MkKqv3/OKiCqZ86Q27qVei4HQLy3l8yddxKa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E52kEm0hsEFArVCglssBEGltJXP99SSWLSPW2Uk4kZjbBYqIiIiIiIiIiMiC0FRBzMDAAL7v0/Wa2RddXV3sa8yoeD07d+5k7969PPDAA+dd/va3v51/9+/+HatWreLAgQP8zu/8Du94xzvYtm0boVDoguN84hOf4OMf//iVfTEiV2jkyBEGd+ygViqR7O/HeDMz0slay+hLL1HYtQtbq4ExtNx0E+mbbsJM8vMx3wX1OtXBQeqlEpFMhsyNN5JcvpxYZychtSwUERERERERERGRadZUQcyVeuCBB1i3bh0bNmw47/L3vOc9Z3+/bt06brrpJtasWcN3vvMdfvAHf/CC4/z2b/82H/7wh8/+uVAo0NvbO3MLF5nAWkvxxRcZ3LULrCXZ2ztjg+DrxSK5xx+neuIEAJGODrJbthB5Tcu/hcAfG6MyMID1fWIdHbTdcgvJnh4i6fRcL01EREREREREREQWsKYKYpYsWUIoFOLUqVPnXX7q1Kk3nO8yMjLCww8/zO///u+/4eOsXr2aJUuW8PLLL08axMRiMWLaGS9zwPo+uWefZeippwgnk8SWLJmZxwkCRl54geJTT2HrdQiFaL3lFlLXXz9jlTdzwVpLvVCgMjSEF42S7OmhZc0akitW4EWjc708ERERERERERERWQSaKoiJRqPcdtttPProo9x9990ABEHAo48+yq/8yq+87n2//OUvU6lUeN/73veGj3Ps2DEGBwdZtmzZdCxbZFr4lQpDu3eTf+45YkuWEGltnZHHqQ0Pk9u6ldrAAADR7m6ymzcTnqHHmwtBvU51aIh6sUiktZXsunW09PcTW7p0QQVNIiIiIiIiIiIi0vyaKogB+PCHP8x9993H7bffzoYNG7j//vsZGRnhAx/4AAD33nsvK1as4BOf+MR593vggQe4++676ejoOO/yUqnExz/+ce655x66u7s5cOAAH/3oR7nqqqt429veNmtfl8jrqZdKDOzcSenll4kvW0Y4mZz2x7C+T+nZZyk+8wwEASYSofX220leffWMtT6bbX65TGVggKBWI7ZkCdl160itXDljoZaIiIiIiIiIiIjIG2m6IObd7343Z86c4WMf+xgnT57k5ptv5lvf+hZdXV0AHDlyBO81O9r379/PY489xj/90z9dcLxQKMQzzzzDgw8+SC6XY/ny5fzwD/8w/8//8/+o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iIiIiMgsapogJhqNctttt/Hoo49y9913AxAEAY8++ii/8iu/Mul9tmzZwhe/+EWCIMDzXBr34osvsmzZsklDGIBSqcSBAwd4//vfPyNfh8iVao8bPONxuBSQr0Imamc9jAG4sxf+osvyF7vh7/cbvvGiYccx+LVNlk29s74cERGZIYGFUyUXshwchoPDhkM5OJqHejD56082blnVBv3Zc1UufVlIXWZYn43DL9xhued6eOgZ+OaLsPu4Yfdxw+Zey8/cYlndfmVfn4iIiIiIiMhca5rWZACPPPII9913H5///OfZsGED999/P1/60pfYt28fXV1d3HvvvaxYsYJPfOITABw9epQbbriB++67jw996EO89NJL/Pt//+/51V/9Vf7jf/yPAPzGb/wGd911F319fRw/fpzf+73fY8+ePTz//PMsXXppWy0vp8RIZLoUa5bDxYCRGrTFZr8yZqKnT8IntxpeLbo1/MAqywc3WrLxOVuSiIhcJmtd+8mDjTku423FDufOtQd7rUTYNqpbYFXW/b4/C22JmVnjiSL8jz2Gf3kFAmswWN68Cu672dKTmZnHFBERERERkden1mSTm5etyQDe/e53c+bMGT72sY9x8uRJbr75Zr71rW/R1dUFwJEjR85WvgD09vbyj//4j/z6r/86N910EytWrODXfu3X+M3f/M2ztzl27Bg/9VM/xeDgIEuXLuVNb3oT27dvv+QQRmSupCOG1WmPQ8WA4QpkYxZvjsKY9d3w+R+z/PUe+Mpz8K8HDbuPwwc3Wt6ySsOVRUSazUj1XIXLxDku+crkT9gRz7IyQyNosY15LtCZmt3n+GVp+Oj3Wd69Dv56j5sj868H4buH4Ievgvevt3S1zN56RERERERERKZDU1XENCtVxMhcKtcth0sBuQpkohDy5jb12D8A/22r4eCwW8fGHsuvbbJ0puZ0WSIii1K1Dkfy46GLacxzgdMjk79WGCzLW2FV1gUt/Y22YitaIdyEG5teHoS/esqw/Zj7esKe5Z1Xw0/fZOlIzvHiREREREREFglVxEzucnIDBTGXQEGMzLWq79qUDTbCmPAchzE1Hx7ZCw89bagFhmTE8nO3Wd55Dczx0kREFiQ/cG27DuYaVS6NOS7HCq6F12SWJG1jhsu5OS4rsxBvqnroS/P8afjLpwxPnXBfayxk+bHr4N03WjJq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rCT74IMPpi3nGIyBMFj7L8dfDITD2X8zqampsX6/31522WVpyzn+YiAM1v7L8RcDIRv7b3t7u62qqrK33HJLxnNlnAM+MFqTjWJPP/20fD6fLr300uSycDisz33uc3r55Ze1ffv2/V73uOOO03HHHZdcNm/ePJ1xxhl66qmnksteeukl1dXV6fLLL0+7/he/+EW1trbqN7/5TRYfEUaTwdh/U7W3t6ujoyN7DwCj2uHsv2PGjFFRUdEB72PdunVat26dLr30Uvn93QWwl19+uay1evrppw/vQWBUG4x9OFVnZ6daW1v7vb1AqsPZf0877bRey/7P//k/kqT169cnl3EMxkAZjP03FcdfZNPh7L+ZjBs3Tvn5+Wnt9Tj+YqAMxv6biuMvsikb++8dd9wh13V13XXXZbycc8AHRhAziq1evVpz5sxRcXFx2vLjjz9ekvpsFeK6rl5//XUde+yxvS47/vjj9e6776q5uTl5H5J6rbtkyRI5jpO8HDhUg7H/JqxcuVIFBQXKy8vTggUL9MQTT2TnQWDU6u/+e6j3IfU+/k6cOFGTJ0/m+IvDMhj7cMIf//hH5efnq7CwUFVVVfr+97+ftdvG6JTt/bempkaSVF5ennYfEsdgZN9g7L8JHH+RbdnYfxsaGlRbW6u1a9fq85//vJqamnTGGWek3YfE8RfZNxj7bwLHX2Tb4e6/27Zt03e+8x3dfvvtvVqZpt6HxDng/WFGzChWXV2tysrKXssTy3bt2pXxevv27VMkEjngdefOnavq6mr5fD6NGzcubb1gMKixY8f2eR/AgQzG/itJJ510ks477zxNnz5du3bt0n333adPf/rTamxs1Be+8IVsPRyMMv3dfw/1PlJvs+f9cPzF4RiMfViSjj76aJ188smaO3eu6urqtHLlSl199dXatWuXbr/99qzcB0afbO+/t99+u3w+n84999y0+0i9zZ73wzEY/TUY+6/E8RcDIxv773ve8x5t3LhRklRYWKivf/3r+tznPpd2H6m32fN+OP6ivwZj/5U4/mJgHO7+e+2112rx4sW64IIL9nsfnAPeP4KYUay9vV2hUKjX8nA4nLy8r+tJOqjrtre3KxgMZrydcDjc530ABzIY+68k/eUvf0lb57Of/ayWLFmiG2+8URdffHGf7wQA9qe/+++h3ofU977e1NR02PeB0Wsw9mFJ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QQwAAAAAAAAAAMAAIYgBAAAAAAAAAAAYIAQxAAAAAIBBt2XLFhljtHLlyqHeFAAAAGBAEcQAAAAAI9zKlStljEl+hMNhzZkzR1dccYV279491Jt32NatW6d//dd/1ZYtW4Z6Uw7o4osvTvu/CIVCmjNnjr75zW+qo6NjqDcPAAAAwADwD/UGAAAAABgct9xyi6ZPn66Ojg79z//8j3784x/r+eef1xtvvKH8/Pyh3rx+W7dunW6++WaddtppqqqqGurNOaBQKKT/+3//rySpsbFRzz33nG699Va9++67evzxx4d46wAAAABkG0EMAAAAMEqcddZZOvbYYyVJn//85zV27Fjdddddeu655/TJT37ysG67ra0tp8OcweT3+3XhhRcmv7/88st10kkn6d///d911113afz48UO4dQAAAACyjdZkAAAAwCh1+umnS5I2b96cXPazn/1MS5YsUV5ensaMGaMLLrhA27dvT7veaaedpiOPPFKvvvqq3vve9yo/P1833nijJKmjo0P/+q//qjlz5igcDquyslIf+9jH9O677yav77qu7rnnHh1xxBEKh8MaP368LrvsMtXX16fdT1VVlc4++2z9z//8j44//niFw2HNmDFDjz76aHKdlStX6hOf+IQk6X3ve1+y5def/vQnSdJzzz2nD3/4w5o4caJCoZBmzpypW2+9VbFYrNfP47777tOMGTOUl5en448/Xn/+85912mmn6bTTTktbLxKJ6KabbtKsWbMUCoU0ZcoUffWrX1UkEjnE/wGPMUYnn3yyrLXatGlT2mW//e1vdcopp6igoEBFRUX68Ic/rDfffDNtnYsvvliFhYXatm2bzj77bBUWFmrSpEm67777JElr167V6aefroKCAk2bNk1PPPFEr23YtGmTPvGJT2jMmDHKz8/Xe97zHv3mN79JXr579275/X7dfPPNva67ceNGGWP0wx/+UJK0b98+XXfddTrqqKNUWFio4uJinXXWWXrttdf69fMBAAAAch1BDAAAADBKJcKRsWPHSpK+9a1vafny5Zo9e7buuusuXX311XrxxRf13ve+Vw0NDWnXraur01lnnaVFixbpnnvu0fve9z7FYjGdffbZuvnmm7VkyRJ973vf05e+9CU1NjbqjTfeSF73sssu01e+8hUtXbpU3//+97VixQo9/vjjWrZsmbq6utLu55133tG5556rD3zgA/re976nsrIyXXzxxckw4r3vfa+uuuoqSdKNN96oxx57TI899pjmz58vyQtqCgsLdc011+j73/++lixZom9+85v62te+lnY/P/7xj3XFFVdo8uTJuuOOO3TKKafonHPO0Y4dO9LWc11XH/nIR/Td735X//RP/6R7771X55xzju6++26df/75/f6/SMy3KSsrSy577LHH9OEPf1iFhYW6/fbb9Y1vfEPr1q3TySef3GseTiwW01lnnaUpU6bojjvuUFVVla644gqtXLlSZ555po499ljdfvvtKioq0vLly9PCt927d+ukk07S7373O11++eX61re+pY6ODn3kIx/Rs88+K0kaP368Tj31VD311FO9tv3JJ5+Uz+dLBmKbNm3Sf/zHf+jss8/WXXfdpa985Stau3atTj31VO3atavfPyMAAAAgZ1kAAAAAI9rDDz9sJdk//OEPtra21m7fvt3+/Oc/t2PHjrV5eXl2x44ddsuWLdbn89lvfetbadddu3at9fv9actPPfVUK8nef//9aes+9NBDVpK96667em2D67rWWmv//Oc/W0n28ccfT7v8hRde6LV82rRpVpL97//+7+SyPXv22FAoZK+99trksl/84hdWkn3ppZd63W9bW1uvZZdddpnNz8+3HR0d1lprI5GIHTt2rD3uuONsV1dXcr2VK1daSfbUU09NLnvssces4zj2z3/+c9pt3n///VaS/ctf/tLr/lJddNFFtqCgwNbW1tra2lr7zjvv2O9+97vWGGOPPPLI5M+pubnZlpaW2ksuuSTt+jU1NbakpCRt+UUXXWQl2W9/+9vJZfX19TYvL88aY+zPf/7z5PINGzZYSfamm25KLrv66qutpLTH1NzcbKdPn26rqqpsLBaz1lr7wAMPWEl27dq1adu0YMECe/rppye/7+joSF4nYfPmzTYUCtlbbrklbZkk+/DDD+/3ZwYAAADkOipiAAAAgFHi/e9/vyoqKjRlyhRdcMEFKiws1LPPPqtJkybpmWeekeu6Ou+887R3797kx4QJEzR79my99NJLabcVCoW0YsWKtGW//OUvVV5eriuvvLLXfRtjJEm/+MUvVFJSog984ANp97NkyRIVFhb2up8FCxbolFNOSX5fUVGhuXPn9mrh1Ze8vLzk183Nzdq7d69OOeUUtbW1acOGDZKkf/zjH6qrq9Mll1wiv797jOanP/3ptAqVxPbPnz9f8+bNS9v+RJu3ntufSWtrqyoqKlRRUaFZs2bpuuuu09KlS/Xcc88lf07/+Z//qYaGBn3yk59Mux+fz6cTTjgh4/18/vOfT35dWlqquXPnqqCgQOedd15y+dy5c1VaWpr283v++ed1/PHH6+STT04uKyws1KWXXqotW7Zo3bp1kqSPfexj8vv9evLJJ5PrvfHGG1q3bl1aNVAoFJLjeH9qxmIx1dXVqbCwUHPnztWqVasO+PMBAAAARhr/gVcBAAAAMBLcd999mjNnjvx+v8aPH6+5c+cmT5i//fbbstZq9uzZGa8bCATSvp80aZKCwWDasnfffVdz585NCzN6evvtt9XY2Khx48ZlvHzPnj1p30+dOrXXOmVlZb3myfTlzTff1Ne//nX98Y9/VFNTU9pljY2NkqStW7dKkmbNmpV2ud/vV1VVVa/tX79+vSoqKg5q+zMJh8P69a9/LUnasWOH7rjjDu3ZsyctNHr77bcldc/x6am4uLjXbfbcppKSEk2ePDkZ7qQuT/35bd26VSeccEKv+0i0d9u6dauOPPJIlZeX64wzztBTTz2lW2+9VZLXlszv9+tjH/tY8nqu6+r73/++fvSjH2nz5s1p83gSbfAAAACA0YQgBgAAABgljj/+eB177LEZL3NdV8YY/fa3v5XP5+t1eWFhYdr3qaHBoXBdV+PGjdPjjz+e8fKeYUKmbZEka+0B76uhoUGnnnqqiouLdcstt2jmzJkKh8NatWqVrr/+ermu26/tP+qoo3TXXXdlvHzKlCkHvA2fz6f3v//9ye+XLVumefPm6bLLLtOvfvWr5P1I3pyYCRMm9LqNnmFXXz+nw/n5ZXLBBRdoxYoVWrNmjRYtWqSnnnpKZ5xxhsrLy5PrfPvb39Y3vvENffazn9Wtt96qMWPGyHEcXX311f36mQMAAAC5jiAGAAAAgGbOnClrraZPn645c+b0+zZeeeUVdXV19aqgSV3nD3/4g5YuXdrvMKennhUfCX/6059UV1enZ555Ru9973uTy1MH1UvStGnTJEnvvPOO3ve+9yWXR6NRbdmyRUcffXTa9r/22ms644wz+rzfQ1VZWakvf/nLuvnmm/W3v/1N73nPezRz5kxJ0rhx49JCm4Ewbdo0bdy4sdfyROu2xM9Hks455xxddtllyfZkb731lm644Ya06z399NN63/vep5/+9KdpyxsaGtICGwAAAGC0YEYMAAAAAH3sYx+Tz+fTzTff3Ktawlqrurq6A97Gxz/+ce3du1c//OEPe12WuM3zzjtPsVgs2doqVTQaVUNDwyFve0FBgST1um6iGiT18XR2dupHP/pR2nrHHnusxo4dqwcffFDRaDS5/PHHH+/VAu28887Tzp079eCDD/bajvb2drW2th7y9kvSlVdeqfz8fH3nO9+R5FXJFBcX69vf/ra6urp6rV9bW9uv+8nkQx/6kP7+97/r5ZdfTi5rbW3VT37yE1VVVWnBggXJ5aWlpVq2bJmeeuop/fznP1cwGNQ555yTdns+n6/XPvSLX/xCO3fuzNo2AwAAALmEihgAAAAAmjlzpv7t3/5NN9xwg7Zs2aJzzjlHRUVF2rx5s5599lldeumluu666/Z7G8uXL9ejjz6qa665Rn//+991yimnqLW1VX/4wx90+eWX66Mf/ahOPfVUXXbZZbrtttu0Zs0affCDH1QgENDbb7+tX/ziF/r+97+vc88995C2fdGiRfL5fLr99tvV2NioUCik008/XSeddJLKysp00UUX6aqrrpIxRo899livkCAYDOpf//VfdeWVV+r000/Xeeedpy1btmjlypWaOXNmWuXLZz7zGT311FP653/+Z7300ktaunSpYrGYNmzYoKeeekq/+93v+mz/tj9jx47VihUr9KMf/Ujr16/X/Pnz9eMf/1if+cxndMwxx+iCCy5QRUWFtm3bpt/85jdaunRpxsCrP772ta/p3//933XWWWfpqquu0pgxY/TII49o8+bN+uUvf5mcI5Rw/vnn68ILL9SPfvQjLVu2TKWlpWmXn3322brlllu0YsUKnXTSSVq7dq0ef/xxzZgxIyvbCwAAAOQaghgAAAAAkrwT8nPmzNHdd9+tm2++WZI38+SDH/ygPvKRjxzw+j6fT88//7y+9a1v6YknntAvf/lLjR07VieffLKOOuqo5Hr333+/lixZogceeEA33nij/H6/qqqqdOGFF2rp0qWHvN0TJkzQ/fffr9tuu02f+9znFIvF9NJLL+m0007T//t//0/XXnutvv71r6usrEwXXnihzjjjDC1btiztNq644gpZa/W9731P1113nRYuXKhf/epXuuqqqxQOh5PrOY6j//iP/9Ddd9+tRx99VM8++6zy8/M1Y8YMfelLX+p3WzdJuuaaa3T//ffr9ttv18qVK/WpT31KEydO1He+8x3deeedikQimjRpkk455RStWLGi3/fT0/jx4/XXv/5V119/ve699151dHTo6KOP1q9//Wt9+MMf7rX+Rz7yEeXl5am5uVnnn39+r8tvvPFGtba26oknntCTTz6pY445Rr/5zW/0ta99LWvbDAAAAOQSY/s7pREAAAAARjDXdVVRUaGPfexjGVuRAQAAAMDBYEYMAAAAgFGvo6OjV8uyRx99VPv27dNpp502NBsFAAAAYESgIgYAAADAqPenP/1JX/7yl/WJT3xCY8eO1apVq/TTn/5U8+fP16uvvqpgMDjUmwgAAAAgRzEjBgAAAMCoV1VVpSlTpugHP/iB9u3bpzFjxmj58uX6zne+QwgDAAAA4LBQEQMAAAAAAAAAADBAmBEDAAAAAAAAAAAwQAhiAAAAAAAAAAAABghBDAAAAAAAAAAAwAAhiAEAAAAAAAAAABggBDEAAAAAAAAAAAADhCAGAAAAAAAAAABggBDEAAAAAAAAAAAADBCCGAAAAAAAAAAAgAHy/wEaEui/dD/1EAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ + "plt.legend()\n", "plt.show()" ] }, @@ -734,7 +711,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.8.16" } }, "nbformat": 4, diff --git a/notebooks/shapley_basic_spotify.ipynb b/notebooks/shapley_basic_spotify.ipynb index ae1c73aca..4cadcc93e 100644 --- a/notebooks/shapley_basic_spotify.ipynb +++ b/notebooks/shapley_basic_spotify.ipynb @@ -21,7 +21,7 @@ "2. The model.\n", "3. The performance metric or scoring function.\n", "\n", - "Below we will describe how to instantiate each one of these objects and how to use them for data valuation. Please also see the [documentation on data valuation](../30-data-valuation.rst)." + "Below we will describe how to instantiate each one of these objects and how to use them for data valuation. Please also see the [documentation on data valuation](../../value/)." ] }, { @@ -34,7 +34,7 @@ "\n", "
\n", "\n", - "If you are reading this in the documentation, some boilerplate has been omitted for convenience.\n", + "If you are reading this in the documentation, some boilerplate (including most plotting code) has been omitted for convenience.\n", "\n", "
" ] @@ -43,7 +43,9 @@ "cell_type": "code", "execution_count": 1, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide" + ] }, "outputs": [], "source": [ @@ -54,7 +56,9 @@ "cell_type": "code", "execution_count": 2, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide" + ] }, "outputs": [], "source": [ @@ -85,7 +89,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We will be using the following functions from pyDVL. The main entry point is the function [compute_shapley_values()](../pydvl/value/shapley/common.rst#pydvl.value.shapley.common.compute_shapley_values), which provides a facade to all Shapley methods. In order to use it we need the classes [Dataset](../pydvl/utils/dataset.rst#pydvl.utils.dataset.Dataset), [Utility](../pydvl/utils/utility.rst#pydvl.utils.utility.Utility) and [Scorer](../pydvl/utils/score.rst#pydvl.utils.score.Scorer)." + "We will be using the following functions from pyDVL. The main entry point is the function [compute_shapley_values()](../../api/pydvl/value/shapley/common/#pydvl.value.shapley.common.compute_shapley_values), which provides a facade to all Shapley methods. In order to use it we need the classes [Dataset](../../api/pydvl/utils/dataset/#pydvl.utils.dataset.Dataset), [Utility](../../api/pydvl/utils/utility/#pydvl.utils.utility.Utility) and [Scorer](../../api/pydvl/utils/score/#pydvl.utils.score.Scorer)." ] }, { @@ -96,7 +100,8 @@ "source": [ "%autoreload\n", "from pydvl.reporting.plots import plot_shapley\n", - "from pydvl.utils.dataset import GroupedDataset, load_spotify_dataset\n", + "from pydvl.utils.dataset import GroupedDataset\n", + "from support.shapley import load_spotify_dataset\n", "from pydvl.value import *" ] }, @@ -106,7 +111,7 @@ "source": [ "## Loading and grouping the dataset\n", "\n", - "pyDVL provides a convenience function [load_spotify_dataset()](../pydvl/utils/dataset.rst#pydvl.utils.dataset.load_spotify_dataset) which downloads data on songs published after 2014, and splits 30% of data for testing, and 30% of the remaining data for validation. The return value is a triple of training, validation and test data as lists of the form `[X_input, Y_label]`." + "pyDVL provides a support function for this notebook, `load_spotify_dataset()`, which downloads data on songs published after 2014, and splits 30% of data for testing, and 30% of the remaining data for validation. The return value is a triple of training, validation and test data as lists of the form `[X_input, Y_label]`." ] }, { @@ -124,7 +129,9 @@ "cell_type": "code", "execution_count": 5, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide" + ] }, "outputs": [], "source": [ @@ -342,7 +349,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Input and label data are then used to instantiate a [Dataset](../pydvl/utils/dataset.rst#pydvl.utils.dataset.Dataset) object:" + "Input and label data are then used to instantiate a [Dataset](../../api/pydvl/utils/dataset/#pydvl.utils.dataset.Dataset) object:" ] }, { @@ -358,7 +365,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The calculation of exact Shapley values is computationally very expensive (exponentially so!) because it requires training the model on every possible subset of the training set. For this reason, PyDVL implements techniques to speed up the calculation, such as [Monte Carlo approximations](../pydvl/value/shapley/montecarlo.rst), [surrogate models](../pydvl/utils/utility.rst#pydvl.utils.utility.DataUtilityLearning) or [caching](../pydvl/utils/caching.rst) of intermediate results and grouping of data to calculate group Shapley values instead of single data points.\n", + "The calculation of exact Shapley values is computationally very expensive (exponentially so!) because it requires training the model on every possible subset of the training set. For this reason, PyDVL implements techniques to speed up the calculation, such as [Monte Carlo approximations](../../api/pydvl/value/shapley/montecarlo/), [surrogate models](../../api/pydvl/utils/utility/#pydvl.utils.utility.DataUtilityLearning) or [caching](../../api/pydvl/utils/caching/) of intermediate results and grouping of data to calculate group Shapley values instead of single data points.\n", "\n", "In our case, we will group songs by artist and calculate the Shapley value for the artists. Given the [pandas Series](https://pandas.pydata.org/docs/reference/api/pandas.Series.html) for 'artist', to group the dataset by it, one does the following:" ] @@ -380,11 +387,11 @@ "\n", "Now we can calculate the contribution of each group to the model performance.\n", "\n", - "As a model, we use scikit-learn's [GradientBoostingRegressor](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html), but pyDVL can work with any model from sklearn, xgboost or lightgbm. More precisely, any model that implements the protocol [pydvl.utils.types.SupervisedModel](../pydvl/utils/types.rst#pydvl.utils.types.SupervisedModel), which is just the standard sklearn interface of `fit()`,`predict()` and `score()` can be used to construct the utility.\n", + "As a model, we use scikit-learn's [GradientBoostingRegressor](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html), but pyDVL can work with any model from sklearn, xgboost or lightgbm. More precisely, any model that implements the protocol [pydvl.utils.types.SupervisedModel](../../api/pydvl/utils/types/#pydvl.utils.types.SupervisedModel), which is just the standard sklearn interface of `fit()`,`predict()` and `score()` can be used to construct the utility.\n", "\n", "The third and final component is the scoring function. It can be anything like accuracy or $R^2$, and is set with a string from the [standard sklearn scoring methods](https://scikit-learn.org/stable/modules/model_evaluation.html). Please refer to that documentation on information on how to define your own scoring function.\n", "\n", - "We group dataset, model and scoring function into an instance of [Utility](../pydvl/utils/utility.rst#pydvl.utils.utility.Utility)." + "We group dataset, model and scoring function into an instance of [Utility](../../api/pydvl/utils/utility/#pydvl.utils.utility.Utility)." ] }, { @@ -404,6 +411,7 @@ " # Stop if the standard error is below 1% of the range of the values (which is ~2),\n", " # or if the number of updates exceeds 1000\n", " done=AbsoluteStandardError(threshold=0.2, fraction=0.9) | MaxUpdates(1000),\n", + " truncation=RelativeTruncation(utility, rtol=0.01),\n", " n_jobs=-1,\n", ")\n", "values.sort(key=\"value\")\n", @@ -414,7 +422,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The function [compute_shapley_values()](../pydvl/value/shapley/common.rst#pydvl.value.shapley.common.compute_shapley_values) serves as a common access point to all Shapley methods. For several of them, we choose a `StoppingCriterion` with the argument `done=`. In this case we choose to stop when the ratio of standard error to value is below 0.3 for at least 90% of the training points, or if the number of updates of any index exceeds 200. The `mode` argument specifies the Shapley method to use. In this case, we use the [Truncated Monte Carlo approximation](../pydvl/value/shapley/truncated.rst#pydvl.value.shapley.truncated.truncated_montecarlo_shapley), which is the fastest of the Monte Carlo methods.\n", + "The function [compute_shapley_values()](../../api/pydvl/value/shapley/common/#pydvl.value.shapley.common.compute_shapley_values) serves as a common access point to all Shapley methods. For most of them, we must choose a `StoppingCriterion` with the argument `done=`. In this case we choose to stop when the ratio of standard error to value is below 0.2 for at least 90% of the training points, or if the number of updates of any index exceeds 1000. The `mode` argument specifies the Shapley method to use. In this case, we use the [Truncated Monte Carlo approximation](../../api/pydvl/value/shapley/truncated/#pydvl.value.shapley.truncated.truncated_montecarlo_shapley), which is the fastest of the Monte Carlo methods, owing both to using the permutation definition of Shapley values and the ability to truncate the iteration over a given permutation. We configure this to happen when the contribution of the remaining elements is below 1% of the total utility with the parameter `truncation=` and the policy [RelativeTruncation](../../api/pydvl/value/shapley/truncated/#pydvl.value.shapley.truncated.RelativeTruncation).\n", "\n", "Let's take a look at the returned dataframe:" ] @@ -513,26 +521,12 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide-input" + ] }, - "outputs": [], - "source": [ - "low_dvl = df.iloc[:30]\n", - "plot_shapley(\n", - " low_dvl,\n", - " level=0.05,\n", - " title=\"Artists with low values\",\n", - " xlabel=\"Artist\",\n", - " ylabel=\"Shapley value\",\n", - ");" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, "outputs": [ { "data": { @@ -548,6 +542,14 @@ } ], "source": [ + "low_dvl = df.iloc[:30]\n", + "plot_shapley(\n", + " low_dvl,\n", + " level=0.05,\n", + " title=\"Artists with low values\",\n", + " xlabel=\"Artist\",\n", + " ylabel=\"Shapley value\",\n", + ")\n", "plt.show()" ] }, @@ -637,26 +639,12 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide-input" + ] }, - "outputs": [], - "source": [ - "high_dvl = df.iloc[-30:]\n", - "ax = plot_shapley(\n", - " high_dvl,\n", - " title=\"Artists with high values\",\n", - " xlabel=\"Artist\",\n", - " ylabel=\"Shapley value\",\n", - ")\n", - "ax.get_xticklabels()[high_dvl.index.get_loc(\"Rihanna\")].set_color(\"red\");" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, "outputs": [ { "data": { @@ -672,6 +660,14 @@ } ], "source": [ + "high_dvl = df.iloc[-30:]\n", + "ax = plot_shapley(\n", + " high_dvl,\n", + " title=\"Artists with high values\",\n", + " xlabel=\"Artist\",\n", + " ylabel=\"Shapley value\",\n", + ")\n", + "ax.get_xticklabels()[high_dvl.index.get_loc(\"Rihanna\")].set_color(\"red\")\n", "plt.show()" ] }, @@ -721,26 +717,12 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide-input" + ] }, - "outputs": [], - "source": [ - "low_dvl = df.iloc[:30]\n", - "ax = plot_shapley(\n", - " low_dvl,\n", - " title=\"Artists with low data valuation scores\",\n", - " xlabel=\"Artist\",\n", - " ylabel=\"Shapley Value\",\n", - ")\n", - "ax.get_xticklabels()[low_dvl.index.get_loc(\"Rihanna\")].set_color(\"red\");" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, "outputs": [ { "data": { @@ -756,6 +738,14 @@ } ], "source": [ + "low_dvl = df.iloc[:30]\n", + "ax = plot_shapley(\n", + " low_dvl,\n", + " title=\"Artists with low data valuation scores\",\n", + " xlabel=\"Artist\",\n", + " ylabel=\"Shapley Value\",\n", + ")\n", + "ax.get_xticklabels()[low_dvl.index.get_loc(\"Rihanna\")].set_color(\"red\")\n", "plt.show()" ] }, @@ -788,7 +778,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.8.16" }, "vscode": { "interpreter": { diff --git a/notebooks/shapley_knn_flowers.ipynb b/notebooks/shapley_knn_flowers.ipynb index 3d909d3a5..d2894fb17 100644 --- a/notebooks/shapley_knn_flowers.ipynb +++ b/notebooks/shapley_knn_flowers.ipynb @@ -33,17 +33,19 @@ "\n", "
\n", "\n", - "If you are reading this in the documentation, some boilerplate has been omitted for convenience.\n", + "If you are reading this in the documentation, some boilerplate (including most plotting code) has been omitted for convenience.\n", "\n", "
" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "c3a76161", "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide" + ] }, "outputs": [], "source": [ @@ -55,9 +57,20 @@ "execution_count": 2, "id": "57174af3", "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide" + ] }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/fabio/.local/lib/python3.8/site-packages/requests/__init__.py:109: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (5.1.0)/charset_normalizer (2.0.12) doesn't match a supported version!\n", + " warnings.warn(\n" + ] + } + ], "source": [ "%autoreload\n", "%matplotlib inline\n", @@ -67,7 +80,7 @@ "import numpy as np\n", "import sklearn as sk\n", "from copy import deepcopy\n", - "from notebook_support import plot_iris\n", + "from support.common import plot_iris\n", "\n", "plt.rcParams[\"figure.figsize\"] = (20, 8)\n", "plt.rcParams[\"font.size\"] = 12\n", @@ -86,7 +99,7 @@ "id": "75abb359", "metadata": {}, "source": [ - "The main entry point is the function [compute_shapley_values()](../pydvl/value/shapley/common.rst#pydvl.value.shapley.common.compute_shapley_values), which provides a facade to all Shapley methods. In order to use it we need the classes [Dataset](../pydvl/utils/dataset.rst#pydvl.utils.dataset.Dataset), [Utility](../pydvl/utils/utility.rst#pydvl.utils.utility.Utility) and [Scorer](../pydvl/utils/score.rst#pydvl.utils.score.Scorer), all of which can be imported from `pydvl.value`:" + "The main entry point is the function [compute_shapley_values()](../../api/pydvl/value/shapley/common/#pydvl.value.shapley.common.compute_shapley_values), which provides a facade to all Shapley methods. In order to use it we need the classes [Dataset](../../api/pydvl/utils/dataset/#pydvl.utils.dataset.Dataset), [Utility](../../api/pydvl/utils/utility/#pydvl.utils.utility.Utility) and [Scorer](../../api/pydvl/utils/score/#pydvl.utils.score.Scorer), all of which can be imported from `pydvl.value`:" ] }, { @@ -106,9 +119,9 @@ "source": [ "## Building a Dataset and a Utility\n", "\n", - "We use [the sklearn iris dataset](https://scikit-learn.org/stable/auto_examples/datasets/plot_iris_dataset.html) and wrap it into a [pydvl.utils.dataset.Dataset](../pydvl/utils/dataset.rst#pydvl.utils.dataset.Dataset) calling the factory [pydvl.utils.dataset.Dataset.from_sklearn()](../pydvl/utils/dataset.rst#pydvl.utils.dataset.Dataset.from_sklearn). This automatically creates a train/test split for us which will be used to compute the utility.\n", + "We use [the sklearn iris dataset](https://scikit-learn.org/stable/auto_examples/datasets/plot_iris_dataset.html) and wrap it into a [pydvl.utils.dataset.Dataset](../../api/pydvl/utils/dataset/#pydvl.utils.dataset.Dataset) calling the factory [pydvl.utils.dataset.Dataset.from_sklearn()](../../api/pydvl/utils/dataset/#pydvl.utils.dataset.Dataset.from_sklearn). This automatically creates a train/test split for us which will be used to compute the utility.\n", "\n", - "We then create a model and instantiate a [Utility](../pydvl/utils/utility.rst#pydvl.utils.utility.Utility) using data and model. The model needs to implement the protocol [pydvl.utils.types.SupervisedModel](../pydvl/utils/types.rst#pydvl.utils.types.SupervisedModel), which is just the standard sklearn interface of `fit()`,`predict()` and `score()`. In constructing the `Utility` one can also choose a scoring function, but we pick the default which is just the model's `knn.score()`." + "We then create a model and instantiate a [Utility](../../api/pydvl/utils/utility/#pydvl.utils.utility.Utility) using data and model. The model needs to implement the protocol [pydvl.utils.types.SupervisedModel](../../api/pydvl/utils/types/#pydvl.utils.types.SupervisedModel), which is just the standard sklearn interface of `fit()`,`predict()` and `score()`. In constructing the `Utility` one can also choose a scoring function, but we pick the default which is just the model's `knn.score()`." ] }, { @@ -131,7 +144,7 @@ "source": [ "## Computing values\n", "\n", - "Calculating the Shapley values is straightforward. We just call [compute_shapley_values()](../pydvl/value/shapley/common.rst#pydvl.value.shapley.common.compute_shapley_values) with the utility object we created above. The function returns a [ValuationResult](../pydvl/value/result.rst#pydvl.value.result.ValuationResult). This object contains the values themselves, data indices and labels." + "Calculating the Shapley values is straightforward. We just call [compute_shapley_values()](../../api/pydvl/value/shapley/common/#pydvl.value.shapley.common.compute_shapley_values) with the utility object we created above. The function returns a [ValuationResult](../../api/pydvl/value/result/#pydvl.value.result.ValuationResult). This object contains the values themselves, data indices and labels." ] }, { @@ -143,7 +156,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "aa2ad3d8aa2b4c0e8bce1457d08863ff", + "model_id": "2c8b940d44a44da69b9ea62c49d69cf2", "version_major": 2, "version_minor": 0 }, @@ -177,15 +190,15 @@ "id": "467f635a", "metadata": { "tags": [ - "remove-input" + "hide-input" ] }, "outputs": [ { "data": { - "image/png": "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fvjhAQAf/vCHV0F8wru8vHzHGTNm9D/ppJMW77LLLutefPHFPr/61a9GvP766yUPP/zwG01jefLJJwfcd999Q04//fSFw4cPr99hhx1qm4v5yiuvnPutb31rbN++fRu++c1vzgcYNWpU/a677rph4sSJqysrK4d997vfXdh0nVtvvXVYv379MieddNLypssnT548ftttt91w8cUXv/XMM8/0v+WWW0YsX7684I9//OPsxjLnn39++qqrrhpz9NFHLzvllFMWL1q0qPCmm24acdhhh+38r3/965Xhw4dvsU/hS/liXWVdJUmS1BOZZJEkSerljjjiiDXr169PXX/99elDDz109ec+97llLZWdPn16n2nTpg2bPHny4qlTp87JLl50xhln1P/yl78cee+99w445phjVh1xxBGrAR599NEB++233/olS5YUvPbaa30++tGPLnv22WcHNG7v8ccf7z9o0KCGiRMnrgf4xS9+MXT69OkDH3jggZkf/ehHVzeW23333dedd95521dVVfUrLy9f07h89uzZpc8+++zLkyZNWt/aMZ588snLL7vssjFDhgyp/8pXvrK06Xuf/vSnl3zrW9/a/oUXXijdZ5991kOcXPu+++4b8tGPfnTZgAEDMk3Lb7fddrWPPPJIYwPqopNPPrnhtttu2+aZZ55ZcMABB6yrrq4uvvrqq8ecd955b1955ZU1jetNnjx52YEHHrjrj370o22aLpeUG+sq6ypJkqSeyOHCJEmSlLN77rlnEMB55523oOnyiy++uAbg3nvvHQQwevTo+ve9733rn3jiif4ADz/8cP9UKpWcf/75NUuWLCl88cUXSwCeeeaZ/pMmTVqVSsXL0rvuumvI+PHj1++5557r58+fX9j4OvLII1dltzOg6X7322+/VW01WrbltNNOW1ZSUpLccsstQxuXTZs2beDy5csLTz755PdMPH3mmWcuavr7OeecsxDgT3/60yCAO++8c3Amk+Gzn/3ssqbHsO2229Zvv/32tY8//viATbcpqXNZV1lXSZIkdRd7skiSJClnc+bMKU6lUuy2227vGupm7Nix9QMGDGiYO3duceOyAw44YPWjjz46COJT4LvvvvvaQw45ZO2gQYMaHnnkkf5jxoypmzlzZt9PfepT7zytPXv27NJZs2aVjh49eq/m9r9w4cJ3zRMwduzYZofcaY/hw4c3fOhDH1o+bdq0oddee+08gDvuuGPoiBEj6o455phVm5bfdddd12/ye20qlWL27NnFAK+99lppkiTsscceuze3v8LCwmRzY5bUOusq6ypJkqTuYpJFkiRJ7ZZKpdpsfPvABz6weurUqcNfeeWV4qeffrr/+9///lWpVIpJkyateuKJJwZsu+22dZlMhsMPP/ydoXYymQwTJkxY97//+79zm9vm+973vg1Nfy8tLe2URsCTTz55yUknnTSkqqqq37777rvu4YcfHnzKKacsKigoaHPdTT+LTCZDCIHKysrXCgoK3hPfpkP6SOo61lUbWVdJkiR1jR6bZAkhXAD8ALg2SZKvt1DmNODmTRbXJklS2rXRSZIk9U7bb7/9hkwmw4svvljaODcBwNy5cwtXrVpVsN12273TsHjEEUesArj//vsHvvjii/2++c1v1gAcfPDBq2+++eZtRo0aVdenT5/MIYccsqbJ9mv/85//9D322GPfGZans4QQWmzk/NSnPrXizDPPrL/11luHzZw5c8369etTp59++nuG3wF45ZVXSnfeeed3jvOll14qzWQyjBs3bgPADjvsUJskCRMmTKjdc889N/vpdUntZ11lXSVJktRdeuScLCGE/YAzgH/nUHwlMKrJa/suDE2SJKlXO/bYY1cA/OhHPxrZdPkVV1wxEuCYY45Z0bhs55133jBixIi6G264YWR9fX1onGD68MMPXzV37tySe++9d8jee++9pqho46g6J5xwwrKFCxcW/fjHPx6+6b5Xr14dVq5c2eHr1z59+mRWrlzZ7OPeRUVFHHfccUvvu+++IbfddtuwCRMmrDvggAPWNVf2Zz/72TZNf//xj388AjYe+5QpU5YXFBTw7W9/e3Qm8+4HwTOZDDU1NW0/ci5ps1hXWVdJkiR1lx7XkyWE0B+4HfgC8O0cVkmSJKnp2qgkSZIEcOCBB6775Cc/ueTOO+8cvmLFioJDDjlk1XPPPddv2rRpw4444ojlm84LsP/++6+67777hk6YMGHdNtts0wBw8MEHr+3Tp09mzpw5JSeccMK7nsD+yle+suSuu+4act55523/2GOPDTjwwANXNzQ0hFdffbX0/vvvH3rPPfdUH3rooWs7Evuee+659vbbb9/mvPPOG7XjjjuuT6fT9ccee+w78Z5++ulLbrnllhHPPPPMgIsv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ak2298qvgMOAWuJIIY09V0qACcAPgR0yNWWXp9LVSV4CVa8QkqR3f79CCAOBFcCgJElW5jseSVuf8lTFkcDPiV1WW0qgFAMjgHuqMpVf7K7YJPV8M2bM2LmwsPDBCRMmrO7bt+/6ttdoWaYhwzcOu2TC3Jnz+g4ZMXBDCBsf6kqShOULVxZtu9Poddc8dtlr3TUcz4ABA/b+xCc+sfTWW2998z3xZjKMHz9+9+222672scceey2VijGtXr067Lzzzrtvv/3265988snXID61ffnll2/76quvvrjTTjttaNzG9OnT+xx00EG7Tp48efHUqVPnNC4/44wztv3lL3858p577qk+5phjVv32t78dfMopp+zw2GOP/efQQw9d21K8q1evDv3793/nArq2tjbsscceuwwbNqx++vTp1Z30sWyWtWvXlr722mv96+vrj5w0adKrzZXxGnjLFUK4EPgksDOwDngKOD9JkpmtrHMacPMmi2uTJCltx35b/c5YV1lXtVcudZUkSS3J1JT9EDgVWERMsjRnEFAKnJtKV/++u2LT1qE990wOFyZJXag8VRGA04lJlNZ6qGwgVtwfLk9VTOiO2CT1Pi8/NbNvzawFpf0H9alr2mgJEEKg36A+9TWzFpS+/NTMvi1sotMNHDiw4fnnn+83e/bsok3fmz59ep85c+aUTJ48eemCBQsK58+fXzh//vzCVatWFRx88MEr//GPfwxoaGhodfv33HPPIIDzzjtvQdPlF198cQ3AvffeOwhgyJAhDQB333334Nra2haHFGjaaLlo0aKCpUuXFuy///6rX3755W77zNTrHQb8DHg/UE7sJftQCKFfq2vBSuI45Y2v7bsyyM1hXbWRdZUkSe+VqSkbDXwCWE3LCRaI7Swp4H8yNWW2g6vL+OWSpK61C7Af8cTellVAX+KFgiR1uuULVxTW1zWEwuLCZrsyFxYXJvX1DWH5whXdNqTspZde+tbrr7/eZ4cddthzjz322OWcc84Z/corrxQD/Oc//ykF+OpXvzpu9OjRezV9/e53vxu+YcOGsHTp0oLWtj9nzpziVCrFbrvt9q6br7Fjx9YPGDCgYe7cucUARx999KqPfvSjy6655ppRw4cP3+vDH/7wDtdee+2wTedCuPPOOwfttddeO5eUlEwcMWLE3qNHj97r9ttv32b16tWtxiF1liRJjkyS5JYkSV5OkuRfwGnAWGBS26smNU1eC9oonzfWVRtZV0mS1KzjgQHk1taynNgDeL8ujEe9nHOySFLXGkfsmrq0Hevs2DWhSOrtBo8YVF9YVJDUb6gPxaXF72m8rN9QHwoLC5LBIwbVN7d+V/j85z+/rLy8fPWdd945+OGHHx544403jrzhhhvSt9566+uZTAaA73znO29NnDix2WFxBg4cmMllP6lUqtUxclOpFA8++OCsRx55pN/dd989+K9//evAr3/96+Ouv/769D/+8Y//DBo0KPPggw/2/8xnPrPjvvvuu/qHP/zhnNGjR9cVFxcnv/71r4ffe++9Q9t98FLnGJT92da1Rv8Qwhzig3bPAxclSfJyS4VDCCXE8cwbddtk89ZVrb5vXSVJUmxrAchlHox1wFDgfcAzXRWQejeTLJLUtVJAi0M5tMAnDCV1id0O2mltevzI9W/NnNenqKSobtN5DtasWFe47U6j1+120E4tjvPfFbbffvu6Cy64YNEFF1yw6O233y6cOHHirj/84Q9H/fjHP54LcZie448/vtUJrjcdUqjJtjdkMhlefPHF0okTJ74zT8TcuXMLV61aVbDddtttaFr+wx/+8JoPf/jDa4C3f/7znw/98pe//L6bbrpp6DnnnLP497///ZCSkpLMY489Vt2nT593buh+/etfD9+c45c6KoSQAn4CPJkkyUutFJ1JHL7038SkzDeBp0IIuyVJ8lYL61wIfLcTw82ZdZV1lSRJbejI6EyO6KQu45dLkrrWW8B6oE871pnTdhFJar9UQYop5x1fU9qvJLN84cqiDes3hEwmw4b1G8LyhSuLSvuVZKacd3xNd00kXV9fz5IlS96VWB4zZkz9iBEj6mpra1MHH3zw2u222672+uuvT69YseI9Qc2bN++dB4b69euXAd6zvWOPPXYFwI9+9KORTZdfccUVIwGOOeaYFRDnLGh8Gr3RfvvttxbihNEABQUFSTbud1pJZ86cWVxVVTW4vccudZKfAbsDU1orlCTJ9CRJbk2S5J9JkjwGfJI4SewZraz2A2JCpvG1beeE3Dbrqo2sqyRJalbjQyK5PNRaAtQ3WUfqdPZkkaSu9S/gJWAi0NbTlv2ICZm7uzgmSb3YgcfuuwqYM/V/707XzFpQumblulBYWJBsu9PodVPOO74m+363WL58ecHYsWP3POqoo5btueeea/v375959NFHB7700kt9v/vd775VUFDADTfcMOdTn/rUhF122WW3KVOmLBkzZsyGt99+u/jvf//7gAEDBjQ8+uijrwMccMABawAuuuiiMRUVFUuLioqSKVOmrDjwwAPXffKTn1xy5513Dl+xYkXBIYccsuq5557rN23atGFHHHHE8mOOOWYVwI033jjs17/+9Yijjjpq2Q477FC7atWqgltvvXV4//79Gz7xiU+sgNjI+atf/WrkBz/4wQknnnji0oULFxbefPPNI8aOHVtbXV3dnmS6tNlCCNcDHwcObaU3SrOSJKkLIbxAK0OUJklSS5OJZFvqgdFVrKusqyRJasU9wFnE4UxXtlF2CPAG8FRXB6XeKyRJLkPXbb1CCAOJkyQNSpKkrf+UktRu5amKCuDHxHFAW6pnCoBRwF+Bk6oylb27cpb0jhkzZuxcWFj44IQJE1b37dt3fdtr5CbTkOHlp2b2Xb5wReHgEYPqdztop7Xd9VR4o/Xr14evf/3rY/72t78NfOutt0oymQxjx46t/dznPrfo/PPPX9RY7qmnnupz6aWXjn722Wf7r127tmD48OF1e++995ozzjhj0bHHHvtOQ+t555036je/+c02ixcvLspkMrz66qsv7rTTThvq6uq48MILR02dOnX4ggULioYPH153wgknLL3qqqvmNQ6l8+STT/a58sor0zNmzOi/ZMmSov79+zfstddeay699NJ5hxxyyDtJ8p/85CfDfvKTn4yaP39+8ZgxY2q//vWv18yePbvkmmuuGZUkyYxu/QBbsHbt2tLXXnutf319/ZGTJk16tbkyXgNvuULMdvwU+ARweJIkr3VgGwXAy8ADSZKck+M6rX5nrKusq9orl7pKkqSWZGrKbiReDy0A6loo1g8YCHwnla7+dXfFpq1De+6ZTLJ4gympi5WnKlLA5cBpQANxYtrGiVoD8YQ/AHiVmGCZl4cwJfVQXdVwqa2XSZatWwjhBuAk4DjiXCuNViRJsi5b5lbg7SRJLsz+fgnwNPA6MBj4FnA8MClJkldy3G9ekizaeplkkSRtjkxN2TDgdmBvYDXxOqWxobuA2IOlGPgD8I1UurohD2FqC9aeeybnZJGkLlaVqcwA3wG+Txz/fAQwuskrEIcI+7QJFkmS1IYvE+dI+Rswv8lrcpMyY4k9ZBsNAf4P+A/wAPEBj4NyTbBIkiT1NKl09RLgM8BUIMO721lGAsuBHwHnmGBRV3NOFknqBtlEy43lqYrfAEcCOwNFxKTL/VWZSie7lyRJbUqSpM3JUZIkOXyT378BfKOrYpIkScqHbKLl65masv8lzlWXJo4g8jrwQCpd3W1zuKl3M8kiSd2oKlO5FpiW7zgkSZIkSZK2Bql09Tzgl/mOQ72Xw4VJkiRJkiRJkiR1gEkWSZIkSZIkSZKkDjDJIkmSJEmSJEmS1AEmWSRJkiRJkiRJkjrAJIskSZIkSZIkSVIHmGSRJEmSJEmSJEnqAJMskiRJkiRJkiRJHWCSRZIkSZIkSZIkqQNMskiSJEmSJEmSJHWASRZJkiQJOOGEE8aNGTNmj67a/v7777/T/vvvv1NXbV9S72BdJUmS1LOYZJEkSZIkSZIkSeqAwnwHIEmSJPUEd9xxx5xMJpPvMCSpVdZVkiRJPYtJFkmSpF6oIZPh+fnz+i5et7ZweJ++9RNHjV5bkNr6OjmvXLkyNXDgwJxaI0tKSpKujqez1NXV0dDQEEpLS7eYmKWOsK56L+sqSZKknmXruzqVJElSqx6e9caAKXf9bsJZf753h28/WjXurD/fu8OUu3434eFZbwzozjhuvvnmISGESffff3//Td+76qqrhocQJj333HOlAC+88ELpkUceOX7QoEF7l5SUTNx99913uf322wc1Xee6664b1ri9z372s2OHDh2617bbbrsnwLJly1Knn376dmPGjNmjuLh44tChQ/c66KCDJjzxxBN9G9dvbp6DhoYGLr/88hFlZWW7lpSUTBwyZMhehxxyyITHH3/8nfXq6ur41re+NWq77bbbvbi4eOKYMWP2OOuss8asW7cutPUZvP3224Unnnji9sOGDdurpKRk4k477bTrT3/602FNy8ycObM4hDDpkksuGXnZZZeN2G677XYvLS2d9Pzzz5fm+llLWyLrKusqSZKkLYE9WSRJknqRh2e9MeB7f3tk+7X1dQUDi0vqigoKkrqGhvDGsqV9vve3R7YH5hwxfodV3RFLRUXF8rPOOiszderUoR/72MdWN33vrrvuGrrjjjuu32+//db/4x//KP3gBz+488iRI+u++tWvzu/Xr19m2rRpQ08++eQdGxoa3jjllFOWN133a1/72vZDhw6t/+Y3vzlvzZo1BQCnnnrq9g8++OCQU089deGuu+66fsmSJQVPPfXUgBdffLH04IMPXttSjJMnTx531113DTv00ENXnHzyyYvr6+vDk08+2f+JJ57od+ihh64FmDJlyrhp06YNO/LII5edeeaZC5599tl+P/vZz9IzZ84sraqqeqOlba9evToceuihO7355pslp5566sL3ve99G/74xz8OOfvss8ctX7684Dvf+c7CpuXvuOOO4bW1teGUU05ZXFJSktlmm20aOvCxS1sE6yrrKkmSpC2FSRZJkqReoiGT4Rcznk2vra8rGN6n74YQ4sPLJYWFyfCCgrrF69YW/WLGs+kPjnvfqu4Yjqd///7Jhz70oeUPPPDAkPr6+jcLC+Ol6Ztvvln43HPPDTjnnHPmAZx99tljR40ateFf//rXf/r06ZMAnH/++Yv23XffnS+55JJtN224HDRoUP1TTz01s3F7AH/9618HTZkyZfH//d//vdWk6ILW4rv33nsH3HXXXcNOO+20hTfffPPcpus1zocwffr0PtOmTRs2efLkxVOnTp2TfX/RGWecUf/LX/5y5L333jvgmGOOabYh+Jprrtlm1qxZpTfccMN/v/zlLy8F+OY3v7no/e9//05XXnnlmLPOOmvxkCFD3hk+aMGCBUUzZ858afTo0fWtxS1t6ayrrKskSZK2JA4XJkmS1Es8P39e3zdXLC8dWFxS19ho2SiEwMDikvo3VywvfX7+vL4tbKLTTZ48ednSpUsL77///neG/7ntttuGZDIZTj755KULFiwoePrppwccf/zxy5YvX14wf/78wvnz5xcuWLCg8EMf+tCKOXPmlPz3v/8tarrNz33uc4ubNloCDBw4sOH555/vN3v27HeVbU1lZeWQEAJXXnnlvE3fS2Ubdu+5555BAOedd967GkEvvvjiGoB777130KbrNvrLX/4yaPjw4XVf/OIXlzYuKykpSb785S8vWLt2berBBx9815BIRx555HIbLdUbWFdZV0mSJG1JTLJIkiT1EovXrS2sz2RCUUFBsxMQFxUUJPWZTFi8bm239XY+4YQTVvTv379h6tSpQxuX3XXXXUN33nnndXvuuWftK6+8UpIkCVddddXo0aNH79X0dfXVV48GmDdv3rvi3XHHHWs33c+ll1761uuvv95nhx122HOPPfbY5Zxzzhn9yiuvFLcW2+zZs0u22WabupEjR7Y41M2cOXOKU6kUu+2227v2OXbs2PoBAwY0zJ07t8V9vP3228Xbb799bUFBwbuW77HHHuuz+3/XuuPGjXvPcUlbI+sq6ypJkqQticOFSZIk9RLD+/StL0ylkrqGhlBSWPiexsu6hoZQmEolw/v07bYnkPv06ZN85CMfWf7ggw8Orqurm/PWW28VvfDCC/0vuOCCtwEymUwA+OIXv7jgqKOOWtHcNnbdddd3Nej17ds3s2mZz3/+88vKy8tX33nnnYMffvjhgTfeeOPIG264IX3rrbe+fuKJJ67c3ONIpVLNNgZ3pj59+rznuKStkXWVdZUkSdKWxCSLJElSLzFx1Oi1YwcNXv/GsqV9hhcUvGsYniRJWLmhtnCHIUPXTRw1usXJlbvC5MmTl06bNm3YPffcM/Dll18uTZKEU045ZSnAzjvvXAtQVFSUHH/88Zs1yfX2229fd8EFFyy64IILFr399tuFEydO3PWHP/zhqJYaLseNG1f7xBNPDFywYEFBS0+Ib7/99hsymQwvvvhi6cSJE9c3Lp87d27hqlWrCrbbbrsNLcUzZsyYDTNnzuzT0NBA0yfEX3rppdLs/ltcV9qaWVdZV0mSJG1JHC5MkiSplyhIpThj0v41fQuLMovXrS2qra8PmSShtr4+LF63tqhvUVHmjEn713THRNJNHXfccasGDRrUMHXq1KHTpk0buscee6zZeeedNwCMGTOmfv/991912223bTNnzpz3zFGw6fA7zamvr2fJkiXvGudmzJgx9SNGjKirra1t8WArKiqWJUnCBRdcMHrT9xonkz722GNXAPzoRz8a2fT9K664YiTAMccc0+wT7QAf/ehHVyxevLjoV7/61TvDD9XV1fHzn/98RN++fTNHHnnkZjXUSlsq66qNrKskSZJ6PnuySJIk9SJHjN9hFTDnFzOeTb+5Ynnpqg21oTCVSnYYMnTdGZP2r8m+361KSkqSI488ctm99947dN26dalLLrnkrabv33DDDW9+6EMf2nnvvffe9aSTTlo8fvz42gULFhQ9++yz/ebPn188c+bMV1rb/vLlywvGjh2751FHHbVszz33XNu/f//Mo48+OvCll17q+93vfvetltY75phjVh1//PFLbrnllhGzZs0qKS8vX5nJZHjyyScHHHbYYSsvuuiiRQceeOC6T37yk0vuvPPO4StWrCg45JBD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D3gBOBXYCRiefXsdMTl1Uypd/UCeQuxVUunqf2ZqyiqI39HjiEmVxknuFxN7Hv0ila5ekL8o888ki6ReIdtD5bLyVMVPgAOIT36sBf5Rlan0RlFSr5AkDSRr/i8dGy2HbSA0PgBXkpAqriOzpChZ839pSg5fFUJLIyx2nv79+ycf+tCHlj/wwAND6uvr3ywsjJemb775ZuFzzz034JxzzpnX2vqzZ88uffbZZ1+eNGnSOzeTp5122nYrV64seOKJJ1456KCD1gF85StfWbzTTjvt0fKW3q22tjb18ssvv9I4PM+QIUMavvOd72z33HPPle63337N3rjee++9A+66665hp5122sKbb755bpO3FmQyG0cwmD59+qv9+/d/pxH1oosuWnTIIYdMuOGGG0bacClF1lW5sa6SpJ4tla7+N3BWpqZsW2AvoIT4oOf0VLp6XZNyM4AzMjVl2wN7EHunLAGeTqWra5uUmw5Mz9SUjQd2zZZbnC23oXuOqntkhwC7PVNTdiewLzFJlQH+C7zUWydXz5fsEHQXZGrKfgTsB/QFVhG/eyvzGlwPYZJFUq9SlalcSZynRZJ6n7oX+tIwtzQ+Fb7JlAAhQGpAPQ1zS6l7oS/F+67tjpAmT5687L777ht6//33DzjuuONWAdx2221DMpkMJ598cmuTgLLffvutatpoCfC3v/1t0N57772msdESYOTIkQ3HH3/8kt/85jcjconppJNOWtx0/oMPfvCDqwCqq6tLWmq4rKysHBJC4Morr3xPY2sqtXGE3qaNlkuWLCnYsGFDOPjgg1c98cQTA5csWVIwbNiwnjvhhNRdrKusqyRpK5JKV79F7JXSVrk5xPkv2io3C9hi511pj2yy5dl8x6Eola5eDPw533H0RM7JIkmS1FtklhSS1AcoauHJr6KEpD6QWdJtD+KccMIJK/r3798wderUoY3L7rrrrqE777zzuj333LO2tXXHjh37nvfnzZtXPG7cuPc0Lu64446tbmuT7b7rScDhw4c3ACxdurTFz2X27Nkl22yzTd3IkSNbbXh86KGH+h100EFlffr02Wf48OF7jx49eq8rr7xyTHb7Xf9IvrQlsK7KiXWVJElSz2BPFkmSpN4iNayeUBjnNaCkmcbLukAoTEgNq++ukPr06ZN85CMfWf7ggw8Orqurm/PWW28VvfDCC/0vuOCC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\n", + "image/png": "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Lb2N68J3cWwB1tqFwGW4z3gB8HC8DVlr/4X7DE4A3gV+B/wR+FkX4hYREZEBylgb76ahiIiIiIiIiIjImtQiSUREREREREREUqJEkoiIiIiIiIiIpESJJBERERERERERSYkSSSIiIiIiIiIikhIlkkREREREREREJCVKJImIiIiIiIiISEqUSBIRERERERERkZQokSQiIiIiIiIiIilRIklERERERERERFKiRJKIiIiIiIiIiKREiSQREREREREREUmJEkkiIiIiIiIiIpISJZJERERERERERCQlSiSJiIiIiIiIiEhKlEgSEREREREREZGUKJEkIiIiIiIiIiIpUSJJRERERERERERSokSSiIiIiIiIiIikRIkkERERERERERFJiRJJIiIiIiIiIiKSEiWSREREREREREQkJUokiYiIiIiIiIhISpRIEhERERERERGRlCiRJCIiIiIiIiIiKVEiSUREREREREREUqJEkoiIiIiIiIiIpESJJBERERERERERSYkSSSIiIiIiIiIikhIlkkREREREREREJCVKJImIiIiIiIiISEqUSBIRERERERERkZQokSQiIiIiIiIiIilRIklERERERERERFKiRJKIiIiIiIiIiKREiSQREREREREREUmJEkkiIiIiIiIiIpISJZJERERERERERCQlSiSJiIiIiIiIiEhKlEgSEREREREREZGUKJEkIiIiIiIiIiIpUSJJRERERERERERSokSSiIiIiIiIiIikRIkkERERERERERFJiRJJIiIiIiIiIiKSEiWSREREREREREQkJbmZDqA7jDGLgM8yHYeIiIj0mg2ttaMzHYSsSXUwERGRfi9hHaxPJ5KAz6y122c6CBEREekdxpiZmY5B4lIdTEREpB9LVgdT1zYREREREREREUmJEkkiIiIiIiIiIpISJZJERERERERERCQlSiSJiIiIiIiIiEhK+vpg2yIiIuvtjTfeGJObm3sLsBW6qZJpPvBuW1vbqdOnT/8q08FI92jfyirWGNPQ3t5+u+/7N02fPr0l0wGJiEj/oESSiIgMOLm5ubeEQqEtRo8evdTzPJvpeAYy3/fNokWLpkQikVuAgzMdj3SP9q3sYa2lpaUlb/78+ecuX758GnBCpmMSEZH+QXeKRERkINpq9OjRy3Whm3me59nRo0c34FqwSN+nfStLGGMoKCho3XDDDRuAXTMdj4iI9B9KJImIyEDk6UI3ewTfheok/YP2rSwTfB85mY5DRET6D1XaREREREREREQkJUokiYiIiIiIiIhISpRIEhER6aLZs2cXbL755lOGDBmy3VVXXTXmsMMOm1xZWTk+03GJ9HXat0RERLKXEkkiIiJddPXVV4d22WWXxpUrV751xRVXZOXU9RMmTNj6oYceKs50HCLrQ/uWiIhI9lIiSUREpIu++OKLgi233HJVpuMA8H2f9vb2TIch0iO0b4mIiGQvJZJERES6YMcddyx77bXXii+77LINCgsLt3v77bcLOq9TXV09aoMNNthq2LBh2+61116bzJ07Nw/gggsuGH/CCSdMAmhubjaDBw/e7owzzpgIsGLFClNQUDBt4cKFOQDPPPPMkO22227z4uLibTfbbLMpjz322DctIHbYYYfNzj333AnTpk3bvLCwcNoHH3ywRgyHHHLIRgsWLMg/8sgjNy0sLNzuiiuuGLvHHntscvXVV4+JXa+srGzKHXfcUQJgjJl+1VVXjZk4ceLWw4cPn3rGGWdMjL2Ivv7660eWlpZuOXTo0G133XXXTcPhcH5PfaYioH1L+5aIiGQ7JZJERES64NVXXw1Pnz59xbXXXjuvqanprW222aY5dvkjjzxSfNVVV034+9//Xh+JRGZPmjSp+fDDDy8F2HPPPRtfeeWVYoAXX3yxcNSoUa2vvPJKEcCzzz5bNHny5NVjx45t//TTT/MOO+ywTS+99NIFy5Ytm3Xdddd9ceyxx248f/783Oh27r///hE333zz3MbGxjc33XTTltgYHnrooU/HjRvXcs8993zc1NT01lVXXbXw2GOPXXzvvfeOiK7zyiuvDP7qq6/yjzjiiIboc48++mjJG2+88f7rr7/+wVNPPVVyww03jAK46667Sn7729+Ou//++z9ZvHjxrJ133nnFjBkzSnvj85WBS/uW9i0REcluSiSJiIj0grvuumvEjBkzFu+6665NgwcPtjU1NV/OmjVryEcffZS/1157rfjss88GRSKRnOeee674mGOO+XrhwoX5DQ0N3nPPPVe80047NQLccsstI/fYY4+GGTNmNOTk5HDooYcu32qrrVY+8MADw6LbmTFjxuLtt99+dV5eHgUFBXZdcR199NHL5s6dO+idd94pALj99ttHHnTQQUsGDRr0zWsvuuiiyNixY9s33XTTljPPPHNhbW3tCICbb7559AUXXBCZNm3a6ry8PK699toFH3744WC1nJB00r4lIiKSWWlNJBljcowxbxljHouz7ERjzCJjzKzgcWo6YxMREelJkUgkf8MNN/ymJcWwYcP8kpKS9s8++yyvqKjIbrXVViufeuqp4pdffrlor732apw+ffqKp59+uujll18u3mOPPRoBPvvss/wnnnhieHFx8bbRxxtvvFG0YMGCvGi5kyZNaom3/UQKCwvtQQcdtOS2224b2d7ezkMPPTTixBNPXBy7zuTJk1tif1+4cGEewJdffpl/+eWXT4rGUlJSsq211nz22Wd5nbcj0lu0b4mIiGRW7rpX6VHnAR8AQxMsv9dae04a4xEREekVoVCo5bPPPvtmXJXly5d7y5Yty9lwww1bAXbeeecVzzzzzND333+/cLfddmt64403Gp944omh77zzTuG+++67AtyF7KGHHrr4nnvu+SzRdowx6x3bySefvPjkk0/eaLfddlsxePBgf5999lkZu3zu3Ln522+//WpwF9xjx45tBRg3blzLj370owVnnXXWkvXeqEgP0b4lIiKSWWlrkWSMmQgcCNySrm2KiIhkytFHH73k3nvvHfnf//538KpVq8x55503YerUqSs322yzFnBjuTz44IMjN9lkk9WDBg2y5eXljffcc8/oCRMmtIwfP74N4JRTTln89NNPlzzwwAND29raaGpqMo899ljxJ598knIrhVGjRrXOmTNnjYGC99lnn5We53HJJZdMrKioWNz5NdXV1aFFixblzJkzJ+9Pf/rTmMMOO2wJwOmnn77ot7/97biZM2cOAli8eHHObbfdNrw7n5PI+tK+JSIiklnp7Np2PXAx4CdZ5zBjzNvGmPuNMZPirWCMOd0YM9MYMxMY1QtxioiIdNshhxzSeNlll82fMWPGxqFQaOrcuXML7rvvvvro8r333nvF6tWrzc4779wIMG3atNX5+fn+t7/97cboOptssknrfffdN+e6664bN3LkyG0nTJiwzW9+85uxvu+n3FTioosuilRXV48rLi7e9sorrxwbff6II45Y/PHHHw8++eST17rYPfDAA5dtt912U7bffvst99lnn4bzzz//a4Djjz9+2fnnn7/g6KOPLi0qKtpuyy233PKJJ54Y1vn1Ir1J+5aIiEhmGWvXOXZg9zdizEHAAdbas40xewA/stYe1GmdkcAKa22zMeYMYIa1dq91lDvTWrt9b8UtIiL90+zZs+dOnTr160zHkUl/+MMfRt5+++2j3njjjY9inzfGTH/nnXfe3WqrrZoTvbY3zJ49e9TUqVMnd35e5/rslOh70b6VffsWJN6/REREEklWB0tXi6RdgIONMXOBe4C9jDF3xa5grV1srY2eWG8BpqcpNhERkQGlsbHR+8tf/jL6pJNOGtAX/CI9TfuWiIgMBGlJJFlrL7PWTrTWTgaOBJ611h4bu44xZlzMnwfjBuUWERGRHvTAAw8MHTNmzNRRo0a1nnHGGWt1vRGRrtG+JSIiA0W6Z21bgzHm58BMa+0jQKUx5mCgDVgCnJjJ2ERERPqjww47bPlhhx32VqLl1to30hmPSH+hfUtERAaKtCeSrLXPA88Hv18Z8/xlwGXpjkdERERERERERFKTzlnbRERERERERESkD1MiSUREREREREREUqJEkoiIiIiIiIiIpESJJBERERERERERSUlGZ20TkfQp9yrygb2A7YDVuEHvZ9X5tTaTcYmIiIiISP/mR8rGA/sD44B5wGNeKLwks1FJV6lFksgAUO5VbA38B6gBTgMqgfuA2nKvYngmYxOR7vvoo4/yjTHTW1tbMx2KSL+ifUtEpHv8SJnxI2UXAy8APwZOBq4EXvEjZSdkNDjpMiWSRPq5cq9iDHAXMBRYDiwBFgMNuNZJt5R7FSZzEYr0HS/UvjL03B0vKzty4hlbn7vjZWUv1L4yNNMxiSRjjJlkjHnOGPO+MeY9Y8x5cdbZwxjTYIyZFTyuzESs2r9ERPqlk4EzgEZgKe5aZBmwCrjSj5Ttl7nQpKuUSBLp/44GhgAr4ixbCmwDTE9rRCJ90Au1rwz9U9VfN1i2aHnekGGD25YtWp73p6q/btAbF7uXX355aMyYMdsMGTJku8mTJ2/18MMPF7e3t/PjH/84NGnSpK1KSkq2PeCAA0oXLlyYA7DHHntsBjBs2LDtCgsLt3v66aeHtLe3c/HFF48bP3781iNGjJh66KGHTl68eHEOQFNTk/n+97+/UUlJybbFxcXbbrXVVlt8/vnnuQA33HDDyNLS0i2HDBmy3cSJE7f+9a9/Paqn35+kVRtQZa2dAuwI/NAYMyXOei9Za7cNHj9Pb4jp27+0b4mIpI8fKcvH9YRYCfidFrcBzcBFfqRMN7X7GCWSRPq/7+PGREokB9gnTbGI9Fn3Vz8Sys3LtQWD831jDAWD8/3cvFx7f/UjoZ7czuzZswtuvfXWMa+//voHK1eufOupp54Kb7LJJi3XXHPNmMcff7zk+eef/2jBggWzS0pK2k899dQNAJ5//vmPABoaGt5qamp6a5999ln5+9//fuQ999wz8umnn/7o008/fWflypU5p5xyygYAN95448jGxsaczz///O2lS5fOuummmz4bMmSIDzB27Ni2Rx99dE5jY+Nbf/7znz+98sorJ/3nP/8p7Mn3KOljrV1grX0z+L0R+ACYkNmo1paO/Uv7lohI2m0NFAAtCZY3ARuQheclSU6DbYv0f/msfQcglgUGpykWkT5r0RdLCoYMG9wW+1z+oDx/0RdLCnpyOzk5ObS0tJhZs2YNGjduXNtmm23WAvC9731v9O9+97t5G2+8cSvAtddeO3/jjTfeurW19dN45dx7770jzz777IVTpkxpAfj1r3/9xfTp07dsbW39NC8vzy5dujT3/fffL/j2t7+96jvf+U5T9HVHHnlkQ/T3Aw88cMUuu+yy/Lnnnivaddddm+JtR/oOY8xkXJfm1+Is3skYMxuYD/zIWvtenNefDpwe/NmjrWnSsX9p3xIRSbt83LVGMu3BetKHqEWSSP83E0h2x7MdeDNNsYj0WaMnjmhuWd26xnmzZXWrN3riiOae3M5WW23VfM0113z+i1/8Yvzo0aOnHnTQQaVz587NW7BgQf4xxxyzSXFxcbTLzJY5OTl88cUXefHKWbhwYd7kyZO/uQO46aabtrS3t5svvvgi76yzzlqy1157NRx99NGlY8aM2ebMM8+c2NzcbADuu+++oVOnTt182LBh2xYXF2/7wgsvDPv6669146mPM8YUAQ8A51trl3da/CawobV2KvB74KF4ZVhrb7bWbm+t3R74uifjS8f+pX1LRCTtPsb1fkiUd8gDWoEv0xaR9AglkkT6v9txdwJy4iwrxPVZfiqtEYn0QYdXHRxpa20zzataPGstzatavLbWNnN41cGRnt7WmWeeueSNN974aO7cuW8bY+z5558/cezYsa0PPvhguLGxcVb00dzc/OZGG23UaszaQwuMHTu2de7cud/c4ZszZ05+Tk6OnThxYmtBQYGtrq5e8Mknn7z30ksvfVhXVzfsj3/848hVq1aZE044YePzzz9/4VdffTW7sbFx1u67795g7bpuJko2M8bk4ZJId1trH+y83Fq73Fq7Ivj9X0CeMSat4/eka//SviUikj5eKPw18AQwLMEqRcBfvVC4R2/KSe9TIkmkn6vza2cBv8IdqEtwmf+C4HcfOLXOr002hpKIALtX7LT8zOoT55WMHtq6smFVbsnooa1nVp84b/eKnTq37uiW2bNnFzzyyCPFq1atMoWFhXbQoEHW8zx70kknfXXFFVdMDIfD+QDz58/Pveuuu0oAxo0b1+Z5Hh988ME33YAqKiqW3HTTTWM//PDD/IaGBu/iiy+ecOCBBy7Ny8vj0UcfLX799dcHt7W1UVJS0p6bm2s9z7OrV682LS0t3pgxY1rz8vLsfffdN/Tll1/WzFl9mHGZkFuBD6y1v02wTihYD2PMDrj64eL0RZme/Uv7lohIRlyJa5k0HHcTOxd3XTIc19X6D5kLTbpKzWlFBoA6v/Yv5V7FG8ApwLdwTUjvBu6q82u/yGhwIn3I7hU7Le/pxFFnq1ev9i6//PKJRx111KDc3Fw7bdq0FbfffvtnkyZNarXWmn333bds0aJFeSNGjGj9/ve/v/TYY49dVlxc7J977rkLdt99983b2trMQw899PF555339fz58/P22GOPzZubm81uu+22/JZbbpkHMH/+/Lxzzz13w4ULF+YVFhb63/ve95acffbZi/Py8rjqqqvmHX/88Ru3tLSYvffeu2HvvfduWFfMktV2AY4D3jHGzAqe+zFucFOstX8CDgfOMsa04aZjPtJmoKlMb+9f2rdERNLPC4Ub/EjZD3ATAB0PjAY+BG4DnvBC4dZMxiddY/pyk1pjzMygn76IiEjKZs+ePXfq1Kk9OsaLdM/s2bNHTZ06dXLn53Wuz06JvhftW9kp0f4lIiKSSLI6mLq2iYiIiIiIiIhISpRIEhERERERERGRlCiRJCIiIiIiIiIiKVEiSUREREREREREUqJEkoiIiIiIiIiIpESJJBERERERERERSYkSSSIiIiIiIiIikhIlkkREREREREREJCVKJImIiAwwhYWF273//vv53SljwoQJWz/00EPFPRWTSH+h/UtERPq73EwHICIiIunV1NT0VqZjEOmvtH+JiEh/p0SSiIhIih4PfzT01rdmhhasWFEwrqio+ZTtto8cWLbZ8kzH1Vlrayt5eXmZDiOubI5NMkv7V/dlc2wiItJ/qGubiIhICh4PfzT06pee32DxqlV5xfn5bYtXrcq7+qXnN3g8/NHQntrG5ZdfHtpvv/1KY5876aSTJp144omTFi9enHPEEUdsOHr06G3GjBmzTWVl5fi2tjYAampqRk6bNm3zU045ZVJJScm2VVVV4999992Cb33rW5sVFxdvO3z48KkHHnjgN+UaY6a/++67BQArVqwwp5122sTx48dvXVxcvO306dM3W7FihQG4++67h22yySZbFhcXb7vDDjts9uabbw6KF/eqVavMySefPGnMmDHbjBkzZpuTTz550qpVqwzAY489Vjx27NhtLr/88tCoUaOmVlRUbNRTn5f0H9q/tH+JiEjfoUSSiIhICm59a2YoLyfHDsrN9Y0xDMrN9fNycuytb80M9dQ2TjjhhCUvvPDCsKVLl3oAbW1tPPbYY8OPO+64JUceeeTk3NxcPvnkk3ffeuut95977rlhv/vd70ZFX/v2228PKS0tbV60aNGsa665ZsFll102fq+99mpYtmzZrC+//PLtysrKr+Jt86yzzpo0e/bsIS+//PKHS5cunXXdddd9kZOTw9tvv11w6qmnlv7617/+/Ouvv5697777LjvkkEM2Wb16telcxmWXXTbujTfeGPLWW2+9P2vWrPffeuutIZdeeum46PLFixfnLVmyJOfzzz9/+6677prbU5+X9B/av7R/iYhI36FEkoiISAoWrFhRUJCT48c+V5CT4y9YsaKgp7ZRVlbWMmXKlKa77757OMCjjz46dNCgQX5ZWVnzCy+8MOzmm2+eN3ToUH/ChAlt55xzzsL7779/RPS1o0ePbrn88su/ysvLo6ioyObm5tp58+YVzJ07N6+wsNB+97vfXdF5e+3t7dTW1o664YYb5m200Uatubm5lJeXrxw8eLC98847R+y5554Nhx566PKCggL7s5/9bOHq1au9p59+uqhzOQ888MCIH//4xwsmTJjQNn78+LYrrrhi/v333z8yutwYY6urq+cPHjzYFhUV2Z76vKT/0P6l/UtERPoOJZJERERSMK6oqLm5vX2N82Zze7s3rqiouSe3U1FRseS+++4bAXD33XeP+MEPfrBkzpw5+W1tbWbcuHFTi4uLty0uLt62qqpqw8WLF38zGMq4ceNaY8u54YYbvrDWstNOO22xySabbHn99deP7LytSCSS29zcbKZMmbLWe5g/f37epEmTWqJ/5+TkMG7cuJbPP/98rQFYFi1alL/xxht/U0ZpaWnLV1999c16w4cPbyssLNQFriSk/Uv7l4iI9B1KJImIiKTglO22j7S2t5vVbW2etZbVbW1ea3u7OWW77SM9uZ3jjz9+6euvv178ySef5D311FMlJ5xwwpLS0tLW/Px8u2TJklmNjY2zGhsbZ61YseKtOXPmvBd9nTFmjQvJDTbYoO2ee+757Kuvvnr7xhtv/OySSy7ZMDpuS1QoFGorKCiw77///lqtPsaPH9/6+eeffzOFue/7LFiwIH/SpEmtndcdPXp0yyeffPJNGZ9++mn+mDFjvlnPmLV664isQfuX9i8REek7lEgSERFJwYFlmy2//Dt7zBs5eHBrY0tL7sjBg1sv/84e83p6Vqnx48e37bDDDo3HHXfc5IkTJ7ZMmzZt9YYbbti6yy67NJx++umTlixZ4rW3t/Pee+8VPP7442t1g4m67bbbhn/yySd5ACNHjmwzxuB53hoXwzk5OVRUVHx94YUXTpo7d25eW1sbTz/99JBVq1aZY489dslzzz037OGHHy5ubm42P/3pT8fm5+fbffbZZ60uPIceeuiS6667btz8+fNzFyxYkHv11VePO+ywwxb35Oci/Zv2L+1fIiLSd+RmOgAREZG+4sCyzZanYzryGTNmLD7nnHM2uuKKK76IPnfffffNraysnLDFFlts1dTU5E2cOLHlggsuWJCojNdff33IpZdeOmnFihU5I0eObL3qqqvmTZkypaXzejfddNPnlZWVE3fYYYctVq1a5W222Warnn/++fDUqVOb//znP3964YUXbnDsscfmbb755qseeuihjwcNGrRWF5rrrrtuwdlnn50zderUKQAHHnjg0uuuuy5hbCLxaP/S/iUiIn2Dsbbvdqk2xsy01m6f6ThERKRvmT179typU6d+nek4pMPs2bNHTZ06dXLn53Wuz06JvhftW9kp0f4lIiKSSLI6mFokiWSRcq8iH9gBKAG+AGbX+bV9N9srIiIiIiL4kbLxwFTAB970QuFFMctKcNcAucC7Xig8L2bZYODbwBDgU+ADLxTOyuuDINYdgUKyPNZM8CNlE4BtgHZgphcKL8lwSF2mRJJIlij3Kg4D/g8YBJjg8UW5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NbOPxmWuAbLAMuDHwPE1ik0aVDaZehyfkvdmYAEwFx+7YBWQzCZTv6xjeCIiItJEMlH6t8DH8NvJ5uPtioXAP4HDMlH64SrqXIGP/XkHPqh2a/wAuBSfDe4PeK+l3LIW4C/AqzNRutT4SiIiIg3LQih123bjM7Ol8S1uMsV19PbsiN/6uBa4M5tMRaOsIiIiU4CO9Y2pmfdLV6I7AeyCX6R6tJoEUol6XwK8Cb/1/vJMlF6Xt2wr4GC8N9JvM1H6ecM3iIiINJJyx3olkkRERKRh6VjfmLRfREREprZyx/qaztomIiIiIiIiIiLNS4kkERERERERERGpiBJJIiIiIiIiIiJSESWSRERERERERESkIkokiYiIiIiIiIhIRZRIEhERERERERGRiiiRJCIiIjKFmdlbzew+M1tmZp8rsnymmV0aL7/ZzF5YhzBFRESkSSiRJCIiIjJFmVkL8H3gIGAX4Egz26Wg2AeBFSGElwD/C3yrtlGKiIhIM1EiSURERGTq2gtYFkLIhhA2A5cAhxSUOQQ4L/7958ABZmY1jFFERESaiBJJIiIiIlPX9sAjec8fjV8rWiaEMAisArYorMjMjjOzpWa2FNhycsIVERGRRqdEkoiIiIiMKoRwVghhjxDCHsAz9Y5HRERE6kOJJBEREZGp6zFgx7znO8SvFS1jZq3AQuDZmkQnIiIiTUeJJBEREZGp6xZgZzN7kZnNAI4ArioocxVwbPz7u4E/hBBCDWMUERGRJtJa7wBEREREZHKEEAbN7ATgd0AL8NMQwl1m9lVgaQjhKuBs4AIzWwYsx5NNIiIiIkUpkSQiIiIyhYUQrgGuKXjtlLzfNwLdtY5LREREmpNubRMRERERERERkYookSQiIiIiIiIiIhVRIklERERERERERCqiRJKIiIiIiIiIiFREiSQREREREREREamIEkkiIiIiIiIiIlIRJZJERERERERERKQiSiSJiIiIiIiIiEhFlEgSEREREREREZGKKJEkIiIiIiIiIiIVUSJJREREREREREQqokSSiIiIiIiIiIhURIkkERERERERERGpiBJJIiIiIiIiIiJSESWSRERERERERESkIhZCqHcMVTOzp4GHSizeEnimhuHUk7Z16pku2wna1qlqumzrdNlOqN+27hRC2KoO7ytljNIGayTT6W+0Gvp8StNnU54+n/L0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", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -216,13 +229,17 @@ "cell_type": "code", "execution_count": 7, "id": "a2715c13", - "metadata": {}, + "metadata": { + "tags": [ + "hide-input" + ] + }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -232,9 +249,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -244,9 +261,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -355,16 +372,16 @@ "execution_count": 10, "id": "686ded22", "metadata": { - "jupyter": { - "source_hidden": true - } + "tags": [ + "hide" + ] }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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v34e+BdhjKyaY3edR/gs/Cp6PS8TPiPVxa9lwA8IhbGphDGrrnf3zQ4GLyIiIlvH0uQkIiIiIpJj0Uxvp7n7wAbafvUMcX22ssWXiIiItFAF+Q5ARERERBqWmbUjDA4+HPiTikgiIiKypdS1TURERKT5u43QDfEz4KY8xyIiIiJNmLq2iYiIiIiIiIhIRtQiSUREREREREREMqJCkoiIiIiIiIiIZESFJBERERERERERyYgKSSIiIiIiIiIikhEVkkREREREREREJCMqJImIiIiIiIiISEZUSBIRERERERERkYyokCQiIiIiIiIiIhlRIUlERERERERERDKiQpKIiIiIiIiIiGREhSQREREREREREcmICkkiIiIiIiIiIpIRFZJERERERERERCQjKiSJiIiIiIiIiEhGVEgSEREREREREZGMqJAkIiIiIiIiIiIZUSFJREREREREREQyokKSiIiIiIiIiIhkRIUkERERERERERHJiApJIiIiIiIiIiKSERWSREREREREREQkIyokiYiIiIiIiIhIRlRIEhERERERERGRjKiQJCIiIiIiIiIiGVEhSUREREREREREMqJCkoiIiIiIiIiIZESFJBERERERERERyYgKSSIiIiIiIiIikhEVkkREREREREREJCMqJImIiIiIiIiISEZUSBIRERERERERkYyokCQiIiIiIiIiIhlRIUlERERERERERDKiQpKIiIiIiIiIiGREhSQREREREREREcmICkkiIiIiIiIiIpIRFZJERERERERERCQjKiSJiIiIiIiIiEhGVEgSEREREREREZGMqJAkIiIiIiIiIiIZUSFJREREREREREQyokKSiIiIiIiIiIhkpCDfAWwNM1sEzMp3HCIi0mz0c/fuDbmDA/ZuXba0LJn14++kKRVvuPvh2d6uSG2Ug4mISJYpB2tCmnQhCZjl7nvmOwgREWkezGxCQ+9jaVmy4JPX+n2e7e3Ge37RLdvbFKmDcjAREcka5WBNS1MvJImIiDQxTpJkvoMQERERaWGUg2WLCkkiIiI55A4JVxIjIiIikkvKwbJHg22LiIiIiIiIiEhG1CJJREQkx5J4vkMQERERaXGUg2WHWiSJiIiIiIiIiEhG1CJJREQkxzTQo4iIiEjuKQfLDhWSREREcshxEq5m1SIiIiK5pBwse9S1TUREREREREREMqIWSSIiIjmmgR5FREREck85WHaoRZKIiIiIiIiIiGRELZJERERyyIGEroaJiIiI5JRysOxRiyQREREREREREcmIWiSJiIjkmPrni4iIiOSecrDsUCFJREQkxzT1rIiIiEjuKQfLDnVtExERERERERGRjKhFkoiISA45kMx3ECIiIiItjHKw7MlpiyQzi5vZRDN7ppZlZ5rZIjP7MLr9OJexiYiIiIiIiIhI3XLdIuki4HOgQ5rlj7j7z3IYj4iISM5p6lkRERGR3FMOlh05KySZ2XbAkcCvgUtztV8REZHGxIGEchgRERGRnFIOlj257Nr2e2A4dXdLPM7MPjazx8ysT20rmNl5ZjbBzCYA3RogThERERERERERqUVOCklm9n3gK3d/v47VngZK3H1n4EVgXG0rufud7r6nu+8JLM5+tCIiIg0r2QA3EREREambcrDsyFWLpP2Bo8ysFPg7cLCZ/TV1BXdf4u7rort3A3vkKDYREREREREREclATsZIcveRwEgAMzsQuMzdT0tdx8x6uvv86O5RhEG5RUREmhUHEli+wxARERFpUZSDZU+uZ23biJldB0xw96eAC83sKKAKWAqcmc/YREREGkpSAz2KiIiI5JxysOzIeSHJ3V8DXot+vyrl8fWtlkREREREREREpPHJa4skERGRlkbNqkVERERyTzlY9uRqsG0REREREREREWni1CJJREQkx3Q1TERERCT3lINlhwpJIiIiueSQdCUxIiIiIjmlHCxrVEgSyYKdnrymG3Ak0AeYDzz72dHXLMhvVCIiIiIikg0fzO7bHzgc6ApMBf69e9/ZK/IblUh+qJAkspV2evKaHwPDCWOOxYAkcMVOT17zF+CWz46+RpNMish6GuhRRESk6fhgdt8C4DfAsYBFtwRwzQez+16+e9/Zz+YzPsmccrDs0WDbIlthpyevOQoYCawGlgNLo5+rgJ8Cp+UrNhERETPrY2avmtkkM/vMzC6qZZ0DzazMzD6MblflI1YRkUZqJHA8UAYsI+T7ZUAV8PsPZvfdK4+xieSFCkkiW2inJ6+JAZcDawkHklQJoBy4eKcnrynMdWwi0pgZCWJZv4mkUQX8wt2HAvsAPzWzobWs94a77xrdrsttiCIijdMHs/t2Bk4nFI5q9jKoiB67MNdxyZZSDpYtLfNVi2RHP2BbYE2a5RVAW2DH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RERERFo3tUgSERHJKYdkMt9BiIiIiLQxysGyRS2SREREREREREQkI2qRJCIikkuO+ueLiIiI5JpysKxRIUlERCTXlMSIiIiI5J5ysKxQ1zYREREREREREcmICkkiIiK5lvTs30TSMLOhZjbLzGab2agUy4vN7N5o+atmVpaHMEVERJqfcrCsUCFJREREZCtlZnHgRuBIYDfgZDPbrd5qPwSWu/tA4DfA5NxGKSIiIq2JxkgSERHJoTDOo6aelZzZD5jt7nMAzOyvwLHA/+qscyxwZfT734AbzMzcNZCEiIhsPZSDZY8KSSIiIrnkbbcZtOTFNsAnde7PB/ZPt46715jZSqA7sKTuSmZ2NnB2dLdHs0QrIiLSXJSDZY26tomIiIhIo9z9Fnffx933oV6RSURERNoOtUgSERHJNfUYktz5FOhf5/620WOp1plvZgVAZ2BpbsITERHJIeVgWaEWSSIiIiJbr9eAncxsezMrAk4CHq23zqPAiOj344HnND6SiIiIpKMWSSIiIrmW1ECPkhvRmEc/Bp4E4sAd7v6umV0FzHD3R4HbgT+Z2WxgGaHYJCIisvVRDpYVKiSJiIiIbMXc/R/AP+o9Nq7O7xXACbmOS0RERFonFZJERERyTb2GRERERHJPOVhWqJAkIiKSS+64mlWLiIiI5JZysKzRYNsiIiIiIiIiIpIRtUgSERHJNTWrFhEREck95WBZoRZJIiIiIiIiIiKSEbVIEhERybWkroaJiIiI5JxysKxQIUlERCTXXAM9ioiIiOSccrCsUNc2ERERERERERHJiFokiYiI5JKDq1m1iIiISG4pB8satUgSEREREREREZGMqEWSiIhITrn654uIiIjknHKwbFEhSUREJMfUrFpEREQk95SDZYe6tomIiIiIiIiISEbUIklERCTX1KxaREREJPeUg2WFWiSJiIiIiIiIiEhGzL319hE0s8XAvBSLegBLchxOtij2/FDs+aHY80OxpzfA3Xs24/YxsycIzyPblrj70GbYrsgmGsjBcq01f55lSs9x69EWnqee49Yj189TOVgr0qoLSemY2Qx33yffcWwOxZ4fij0/FHt+KHYR2Vq0hc8EPcetR1t4nnqOW4+28jxl86hrm4iIiIiIiIiIZESFJBERERERERERycjWWki6Jd8BbAHFnh+KPT8Ue34odhHZWrSFzwQ9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", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -386,8 +403,9 @@ } ], "metadata": { + "celltoolbar": "Edit Metadata", "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "dval_env", "language": "python", "name": "python3" }, @@ -401,11 +419,11 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.8.16" }, "vscode": { "interpreter": { - "hash": "4e000971326892723e7f31ded70802f690c31c3620f59a0f99e594aaee3047ef" + "hash": "b3369ace3ad477f5e763d9fa7767e0177027059e92a8b1ded9e92b707c0b1513" } } }, diff --git a/notebooks/shapley_utility_learning.ipynb b/notebooks/shapley_utility_learning.ipynb index 8e930730e..978583975 100644 --- a/notebooks/shapley_utility_learning.ipynb +++ b/notebooks/shapley_utility_learning.ipynb @@ -16,7 +16,7 @@ "The idea is to employ a model to learn the performance of the learning algorithm of interest on unseen data combinations (i.e. subsets of the dataset). The method was originally described in *Wang, Tianhao, Yu Yang, and Ruoxi Jia. [Improving Cooperative Game Theory-Based Data Valuation via Data Utility Learning](https://doi.org/10.48550/arXiv.2107.06336). arXiv, 2022*.\n", "\n", "
\n", - "**Warning:** Work on Data Utility Learning is preliminary. It remains to be seen when or whether it can be put effectively into application. For this further testing and benchmarking are required.\n", + "

Warning: Work on Data Utility Learning is preliminary. It remains to be seen when or whether it can be put effectively into application. For this further testing and benchmarking are required.

\n", "
" ] }, @@ -34,17 +34,17 @@ "\n", "where $N$ is the set of all indices in the training set and $u$ is the utility.\n", "\n", - "In Data Utility Learning, to avoid the exponential cost of computing this sum, one learns a surrogate model for $u$. We start by sampling so-called **utility samples** to form a training set $S_\\operatorname{train}$ for our utility model. Each utility sample is a tuple consisting of a subset of indices $S_j$ in the dataset and its utility $u(S_j)$:\n", + "In Data Utility Learning, to avoid the exponential cost of computing this sum, one learns a surrogate model for $u$. We start by sampling so-called **utility samples** to form a training set $S_\\mathrm{train}$ for our utility model. Each utility sample is a tuple consisting of a subset of indices $S_j$ in the dataset and its utility $u(S_j)$:\n", "\n", - "$$\\mathcal{S}_\\operatorname{train} = \\{(S_j, u(S_j): j = 1 , ..., m_\\operatorname{train}\\}$$\n", + "$$\\mathcal{S}_\\mathrm{train} = \\{(S_j, u(S_j): j = 1 , ..., m_\\mathrm{train}\\}$$\n", "\n", - "where $m_\\operatorname{train}$ denotes the *training budget* for the learned utility function.\n", + "where $m_\\mathrm{train}$ denotes the *training budget* for the learned utility function.\n", "\n", "The subsets are then transformed into boolean vectors $\\phi$ in which a $1$ at index $k$ means that the $k$-th sample of the dataset is present in the subset:\n", "\n", "$$S_j \\mapsto \\phi_j \\in \\{ 0, 1 \\}^{N}$$\n", "\n", - "We fit a regression model $\\tilde{u}$, called **data utility model**, on the transformed utility samples $\\phi (\\mathcal{S}_\\operatorname{train}) := \\{(\\phi(S_j), u(S_j): j = 1 , ..., m_\\operatorname{train}\\}$ and use it to predict instead of computing the utility for any $S_j \\notin \\mathcal{S}_\\operatorname{train}$. We abuse notation and identify $\\tilde{u}$ with the composition $\\tilde{u} \\circ \\phi : N \\rightarrow \\mathbb{R}$.\n", + "We fit a regression model $\\tilde{u}$, called **data utility model**, on the transformed utility samples $\\phi (\\mathcal{S}_\\mathrm{train}) := \\{(\\phi(S_j), u(S_j): j = 1 , ..., m_\\mathrm{train}\\}$ and use it to predict instead of computing the utility for any $S_j \\notin \\mathcal{S}_\\mathrm{train}$. We abuse notation and identify $\\tilde{u}$ with the composition $\\tilde{u} \\circ \\phi : N \\rightarrow \\mathbb{R}$.\n", "\n", "The main assumption is that it is much faster to fit and use $\\tilde{u}$ than it is to compute $u$ and that for most $i$, $v_\\tilde{u}(i) \\approx v_u(i)$ in some sense." ] @@ -66,9 +66,11 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide" + ] }, "outputs": [], "source": [ @@ -79,7 +81,9 @@ "cell_type": "code", "execution_count": 2, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide" + ] }, "outputs": [], "source": [ @@ -137,7 +141,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "As is the case with all other Shapley methods, the main entry point is the function [compute_shapley_values()](../pydvl/value/shapley/common.rst#pydvl.value.shapley.common.compute_shapley_values), which provides a facade to all algorithms in this family. We use it with the usual classes [Dataset](../pydvl/utils/dataset.rst#pydvl.utils.dataset.Dataset) and [Utility](../pydvl/utils/utility.rst#pydvl.utils.utility.Utility). In addition, we must import the core class for learning a utility, [DataUtilityLearning](../pydvl/utils/utility.rst#pydvl.utils.utility.DataUtilityLearning)." + "As is the case with all other Shapley methods, the main entry point is the function [compute_shapley_values()](../../api/pydvl/value/shapley/common/#pydvl.value.shapley.common.compute_shapley_values), which provides a facade to all algorithms in this family. We use it with the usual classes [Dataset](../../api/pydvl/utils/dataset/#pydvl.utils.dataset.Dataset) and [Utility](../../api/pydvl/utils/utility/#pydvl.utils.utility.Utility). In addition, we must import the core class for learning a utility, [DataUtilityLearning](../../api/pydvl/utils/utility/#pydvl.utils.utility.DataUtilityLearning)." ] }, { @@ -250,7 +254,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We now estimate the Data Shapley values using the [DataUtilityLearning](../pydvl/utils/utility.rst#pydvl.utils.utility.DataUtilityLearning) wrapper. This class wraps a [Utility](../pydvl/utils/utility.rst#pydvl.utils.utility.Utility) and delegates calls to it, up until a given budget. Every call yields a utility sample which is saved under the hood for training of the given utility model. Once the budget is exhausted, `DataUtilityLearning` fits the model to the utility samples and all subsequent calls use the learned model to predict the wrapped utility instead of delegating to it.\n", + "We now estimate the Data Shapley values using the [DataUtilityLearning](../../api/pydvl/utils/utility/#pydvl.utils.utility.DataUtilityLearning) wrapper. This class wraps a [Utility](../../api/pydvl/utils/utility/#pydvl.utils.utility.Utility) and delegates calls to it, up until a given budget. Every call yields a utility sample which is saved under the hood for training of the given utility model. Once the budget is exhausted, `DataUtilityLearning` fits the model to the utility samples and all subsequent calls use the learned model to predict the wrapped utility instead of delegating to it.\n", "\n", "For the utility model we follow the paper and use a fully connected neural network. To train it we use a total of `training_budget` utility samples. We repeat this multiple times for each training budget.\n", "\n", @@ -368,11 +372,26 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide-input" + ] }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABiYAAAPPCAYAAABAK3M6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXxcV33//9eZGe27LMmWN9m+tuXdjhOW0EA2tlLUgrtRWpetLOXXNrSlLUuAsBVo+VJSugAtLdSllBYMdFgCIRDICkkcW7bjyPa1LduxbEuWZO3LzJzfH+cKK7Ika7mj0fJ+Ph73MdbMnXPPLBprzvue8zHWWkRERERERERERERERGZCJNMdEBERERERERERERGRhUPBhIiIiIiIiIiIiIiIzBgFEyIiIiIiIiIiIiIiMmMUTIiIiIiIiIiIiIiIyIxRMCEiIiIiIiIiIiIiIjNGwYSIiIiIiIiIiIiIiMwYBRMiIiIiIiIiIiIiIjJjFEyIiIiIiIiIiIiIiMiMUTAhIiIiIiIiIiIiIiIzRsGEiIiIiIiIiIiIiIjMGAUTIiIiIiIiIiIiIiIyYxRMiIiIZJgx5qPGGGuMuTfTfZHZwxjzxeB98cVM90Vml/n+3pjvjy9MYTxXxpj7gzbuCq9nIiIiIiLji2W6AyIiIsLO4HJfOhoPBps+MNH9rbUmHf0QmcuMMa8HVgH3W2vvn6vHyKT5/vhmGz3f809Yr6neGyIiIjIbKJgQERHJvOuCy7QEEyNcmIFjiMxHrwduDv59f4aP0QQ0BJdzyeuZ348vE8Z7rl5P+t+zMrNeTzivaVjtiIiIiEyZggkREZEMMsYsAxYHP6Y9mLDWLkn3MUQkvay17wbenel+pMt8f3xh0nMlIiIiInOVakyIiIhk1tAyTh3A8Ux2RERERERERERkJiiYEBERyayhYGK/tdZmtCdjGF4Y1RiTZYz5c2PM48aY9uD6Wyaz34i2bzHG/K8x5hljTL8xpsUYc58x5g3GmOh0+jOBx1VmjHmTMeZ/jDEHjTGtxpg+Y0yjMea/jDHPn+BzYowxbzbG/MwY02GM6TTGPGKM+b0J9OF3jTEPBfe5HLTxFmNMKHU+jDErjDF/Y4zZH7Tfa4zxjTHfMsb8vjEmd4z7Tfd1iRlj/tQY86QxpssYc9EY801jzPZh++cbY+40xhwyxnQbYy4ZY75qjPEm0H62MeZdxpj64L5txph7jTG/PM5zcSq4/+vH2eeqQsLGmNcbYyxXlj35QLDP8G3VsP0n/b6awjGuWfA4hNdwyu/rdD6+dL/Pht1vlTHm08aYw0HbPcaYp40xdxtjVk72OQjaPBj0/Y9Gue3GYc/F10a5PSt4Dawx5vZh10/7PTviOKG97sPanNRn9lSfe2PMbxtjvmeMuWCMGQzaP2aM+T9jzP9nRnzemWl+pky3v8F9J/QZPZ3XdMTxptSOmcLnyUQYYz4ZHPM7wc+vDdq9FLz/fmqMuXXY/lnGmLcaYx4OXt8uY8z3jTHbptoHERERyRwt5SQiIpJZaS18HbJc3FrULwASQCcwWpgyof2MMZ8C/jT40QKXgVLgtmD7PWPMq6y1ndPsz1ju4EpR8CRu1grAymB7jTHmHdbavx+njSjwDeDXgj70AEXA84HnG2PWWWuvKjxujDHAF4A3BFdZoB24AXgucCvQP4nHchVjzG7g87jnCWAA9xytBNYAvwrUA/tH3G+6r0sWcA9we3DMQaAS9xzdHgwynQTuxdVX6QuOUw78FnCLMeY51trTY7SfDfwQeCHuOe8K+vdi4MXGmA9aa+8a77mZpF5cbZby4LF1B8ccLjns31N5X032GOMK4TWc0vt6HKE+vkDa3mfGmN/F/X7mBFf1AymgNtjeYIz5DWvtDybZ5x8DW3CvwT+MuO22Yf++xRhjRoTVzwUKg748dI3jTPX5Dvt1H+man9lTfe6NMf/Glc9TcI83C1gbbHXAd4BTo/Rryp8p03mvTPIzOqzfoUm3E8LnyXiGamwdM8bEgVdy5fe5APea3GOM+SXgPLAXeE7wOAzuuXspsCN4f3YgIiIic4e1Vps2bdq0adOWoQ04g/uivzuNx7grOIad4v3vD+7fGWyvB/KC2xYB5ZPZL/j5j4b6BHwOWBJcXwC8AzcoYYH/nmp/JvC43hI8N9cD2cF1BlgNfBo3uJQArhunD624QOF1w/qwHPi/4PYksG6U+//JsMf/GaAiuL4EN6idAtqC2784hdfsV4I2LPAgcBMQCW7LDn7+PLBpxP3CeF3agBbgN3ADXwY3kOQHtz+EG1w6iRtQigTb7cDFYJ//HKf9dtwg81uB3OC2FcD/Duv7r45y/1PBba8f53n74ljP+bDj3zUD76trHWO8fobxGk7pfT2Jz5LpPL50v89eEjy+QeATwKqgbYMbaP4frgzOrpzk4391cN9LBL+Pw2774bB2LbBjxO13Btffn4b37Ey97tf6P2RKzz3u82yof3/Js/+vWRS8/l8Elob8mTLl9wpT/4ye0Gsa4u/ilD9PJtiPS1z5fW4EXgVkBbe9DBdAWODrwCFcSHNL8BxHgvfSUP/+eDrPiTZt2rRp06Zt5reMd0CbNm3atGlbqBvu7N6hL9Sb03icu4Yd5/w1trtHuf/9w+5fN85xJrpf3rDBiP8aY58/HtbW9VM5TgjP2z8Ex/jXazzWW0e5PQd4Jrj9vSNuyx32+P9jjGN/bFj7X5xkv2PAieC+DxAMjk/gfmG+LjeNct/bht3eA6wdZZ83Drs9a5z23zjKfSPAT4LbD41y+ylmIJgI6X017jHG6mfIr+Gk3tcTfOzTenzpfp8F76GjwW1vGad/3wr2+fQkH38ZbiDbAjtHPK89uLPX/za4/c9G3PdHwfUfCPs9O4Ov+5if2dN57nFhhAW+P41+TeozZZr9ndJn9GRe0zDaYZqfJxPoQ82w+15gRHAU7PMvw/Y5DBSMss/Qa/SP03lOtGnTpk2bNm0zv6nGhIiISOYMLWHQCzw9Q8dcfI2tZJz7HrbWxidwjGvt9xLcMhLgQpPR/BPQFPz7tdPsz1R9J7i8aZx9HrLW/njkldbafuD7wY8j175+KVce/4fGaPfjuDN4p+JW3Nn5AH9qrR2Y4P3Cel0etNY+OMr1P+HK8lRfs9aOVux96DnLA9aN0f4Z4N9HXmmtTQEfCX7cbIzZOsb9M20i76upCus1nMr7eqal4332ouDnFuBfxzn2fwSXL5t4d8Fa2wYcCH4cvnTT84O+PIRbnupZtxtjcoAbgx+vel1ClO7XfbzP7Ok89+3BZeUU6x1M5TNlOv2d6mf0TAvr82Qs1w3795uttedG2edscGmB37bWdo+yzzPBZdYkjx8KY8xZY8w3MnFsERGRuU41JkRERDJnqL5EvbU2CWCM2Qn8Hm65kdW4AbYjwKestd+c7gGttdMpqnytdc0nut8NweUZa+3R0Xaw1iaNMT8CfnfY/lPtz5iMMWuAt+MGijzceuojT9xYPk4TPxvntqFBlvIR1w9//KMNmmKtvWyMeQL4pXHaH8sLgsvz1trHJ3G/sF6Xn49z3xZgGfDYGPe9MOzfZWPsc7+11o5x2wO4ZZJiQf8OjrFfWoXwvpqqsF7DqbyvZ1o63mdDv28lwDkzdg367OCyZmJdfZYf4QZkbwM+GVx327DbHsZ97r/QGBMN/m94AW6mVS/w6BSOOVHpft3H+8yeznN/Hy7IvQ54wBjzBeBH1tqTE+zXVD5TptPfqX5Gz7SwPk/GMhRMnAO+PcY+q4LLh621h8bYZyjkGa1ezB8D7dbaPZPs24QYYxbhPms+l472RURE5jsFEyIiIpkzWuHrv8SdpbgXdyZiHvA7wDeMMR+21r5/Zrv4LBdD2q8quHxm3L2unClZNcbtE+3PqIwxrwa+wpWipeAKFQ8Vyc3GDVoWjNPMeMU+E8HlyLM4J/v4J2tJcNk4yfuF9bpM5DkZdR9rbWLYAN9YZ7+O2T9rbZ8x5hJu9s9Y/UurkN5XUzWTr2FGzk4eJh3vs6XDrls8gT7kTWCfkX4M/DkueIhZaxO4AAvcYHqvMeZR4GZczYxHh93+cJrPrk/36z7eZ/aUn3trrW+M+QPgs7iZJTcCGGOacc/3fwH/N074MJXPlOm8V6b6GT3Twvo8GctQMPGdYHbKaHYEl98a7UZjTAQYmslSP+K2XOD/Af8MpCWYwNVlycPV2hAREZFJ0lJOIiIimTNaMPEZYJm19s3W2s9Zaz+NO7vyUeDdxphMnqWcDHm/6ZrycYKzHL+IGzz+Ea6YZr61tsRau9hauwT4zTA6mQFjDb5Jms3z99VCMLQM0M+stWYi2xSO8VPcIH8h8FxjTD7wPFyB5CeCfX4UXN424jKdyzjNhPE+s6f13Ftrv4yblfA24Ku45Zkqgd8Cvgn8xBhTHOJjmU5/9Rnt7AguR53ZZIzJBjYHP441s2QdV0LefSNuuw4XHI06u2q04wVBx4RZp29o1quIiIhMjoIJERGRDDDGlABrgh9/8WXaWvuQtfZZtQWCL7x7cTMd189YJ9Nn6KzZay1lM3T7tGZGjOEVQDHQhivG+hNrbe+IfZZcfbdQDD2eZdfY71q3j+V8cDnZZWZmw+syEWM+L8Fa/IuCH0f2b+iM79xx2h6vxspEZPJ9BXPnNZytpvq7M2HW2k6uBBC34WqNZAM/HTa4ORRA3GaMKQCeG/z8I+avaT/31trWINB/jbV2JbAWV6/HAi9k7DoJU/lMmU5/0/4+C0naPk+CEHdF8OPIQGHIVlywYMfZZ2jWxUVr7S9mGRpj7sEtiwbwn8YYG2yvCm7/V2NMjzFmjTHmP4NZMV1A1Biz1BjzN8aYJ40xbcaYDmPMz4fuO+Jx/Ksxpnt4oGGM+aIxptMYU22M+Zwxpin4+TvGmOqJPD8iIiILhYIJERGRzLgOMMAAMNa6ycMNLRvRnLYezZyhMx+XG2NGDVqCAqZDy5eMtU78dAwNiDRYa3vG2OfFaTguXHn8K4wx3mg7BGf2Xj/F9ocGY5YYYyaz5vdseF0m4mYz9oLuL+TKUqUjz7BtCy5XMIpgYGm852toqZHxzpKf7vtqIscYz2x/Daf7+NJtqAbCZH93JusXwQPDlnEadvvPgB7cbLnbcYOzXUz+9Zrtz/dwoT/31lrfWvtu3FJO4JZJHM1UPlOm09+pfkZDeK/pRNpJ5+fJUKAwyNi1gIZmlfrW2svXaOfJEdf/I3B/0P7uYdtPgtt34JYuexj3XLwX+Atr7SDwKtxj+jZuec2/xoVTXzPGDIWEDGvn4IilqHbgCrI/gnt+78ItJfUK4FNjPA4REZEFScGEiIhIZgx94T58rTXDjTHLgDfglozw096z9LsXuBT8+64x9nkrV8KYr6ShD0ODHOuDdaifxRizA3htGo4L7vEPDZK/b4x9/pKprV8PbtDzRPDvvwuWw5hovzL9ukzESuB1I68MgoX3BD8+Za0dOdh1ILh89RiDkK9j/DODO4LL0nH2me77aiLHGM9sfw2n+/jS7cfAUEH6a/7uTGNpvaEQ4kbgl0dcR/B/wkO4z4Ch9/SDQT2KyZjtz/dwU37ug1kN4xmatTRWHYOpfKZM570y1c9oCO81nUg76fw8GQoUxvsbaGifsWZLwJXloJ61j7U2jguUnrLW/uewrc0YE8MtEVUF3GGt/X1r7WettXcHd/+StfY51tr3WWv/xVr7cVxQEcWFCwAMa2f/sOuygI24mXGvs9a+JZjF83ZcIfWRwYaIiMiCpmBCREQkM0arL3GVYP3xb+DWrH9Lujs1E4Klbe4KfvwdY8xnjTGLwT1eY8yfAJ8Obv+qtfaJq1uZth/gBqnKgS8H4c/QGtO/Fdw+XiHYKQse/4eDH19njPl0sKwFxphiY8z7cINh7VNsPwn8EW75i5uA+4wxNw0tNRE8xluC5Ss2jejXXcGPmXpdJuIy8M/GmDcPDf4bY1bgBsWGzty9c5T7DQ2abQQ+P+I5/1Nc4dzWcY47NLPpFUPvl1FM9301kWOMaQ68htN6fOkWDPy/Dbfs103AT40xtweDjQAES7+8zRjzGPD2KR7qIdxsuVxgO24m3MggbSioeF5wOZX6ErP6+R5ums/9Pxhj/scY8+vGmKph+xcaY94G/H5w1XfGOPykP1Om09+pfkYHwnpNr9lOmj9PJhI6DP2dNF67o7YThM/bGRYaDLMB97v3v9bar4680VrbHbQRMcaUGGMqgD7ca50zSjvDj7EJtzTbF6y1P+HZBrgSkomIiAgKJkRERDLlmsFEcBbl3mDf37XW1k/3oMaY8xPYXjDd41yLtfYfgL8Lfnwr0GSMacUNEN2NW7rkx8Cb03T8Y8DfBj/uAs4aY9pxy6V8Nbj8k3QcO3A3bmkHgDuAi8HjbwU+FPThW1Nt3Fr7PeD1QD9u4OsBoMcY0wJ0457b38UNoAy/X0Zflwn6J9wSI58HOoL+ncYVuQX4iLX2GyPvZK29jyvP+R8ALcaYNtzslU8BnwPi4xz3S7jBqbXA6eB35VSwLQ+OMd331TWPcS2z/DWc9uNLt+B98pu4AOl5wA+BbmNMizGmD/CBf8Yt+zWlIsbBMl8/G3bV/dbakW2NDCKmEkzM+ud7uGk891nB/b4GXDBuPf+2oJ1/xn3OPQh8dIxDT+czZUrvlal+RhPeazqhdtL4eTJuMGHcElHbgh9HDSaCQKVyjHY8oIirl3iCK7Ms9oy8wTivM8Y8ggsR2nHB4QXcDIxjo7Szf9h124PLr41y3I3A06NcLyIismApmBAREZlhxs2CqA1+HOtLeRbwP8BLgTdZa/eGdPjFE9gms6zElFlr/wy3xvrXcV/6C3EDPD8G3gi8JCgUm67jvwt3Ju3PcQMQWbilOf4aN2hyLo3HTllrfz84/qPB8WO498PbCGEZKWvtf+DO6Pw08BTubM88oBH4Jm697SOj3C+jr8sEDODW3X8P0IA7g/UycB/wK9basZbHAjcQeAduIKkX97fwQ8BvWWvHDaKC0OFW4P9wA1WLcMVra7iyBv203lcTPca1zNbXMKzHl27W2m/iBmw/iHsdu3BL3vTjlgT7V+DVXAmhpmJ40DBaUevHubLcTgfXmF03mrnyfA83xef+w7jA7xu4gd8E7j1/Ebcc0RuBW4bOhB/FlD9TpvNemcpndIifERNuJ+zPk+BvoKGaFWO9rzdwZTnDaxW+brfWnhjjtv2j3G8HLigaOaMB4DPAF3EFyv8E99q9BBfCjGxvB26GXP2I6yzuvfALwUyepYwelIiIiCxY5uqTc0RERCSTgjMF/xv4DeAPrbWfzXCXRDLOGHM/cDPwQWvtXZntjYjMdfpMmb+MMR/BFbQuHVk42xjzQ2CVtXbtiOtXASeBf7DW/vGI276PC3IKh2piBO0st9ZuGLbfj4CVo7T9cuB7uKDru+E8ShERkblPMyZERERmkWCN6S/hQok/VSghIiIiMimrgbaRoURgO6PPwlgRXDYMv9IY8xbc7NWRhbpHq2ExVttDMzg0Y0JERGSYWTmFV0REZAH7W9y60o/g1sD/vRG3PzzKkgUiIiIi4pwEyowxn8AV+m631saD+hkVjB4QHMTVlPiAMaYQtyzXS3CBhWVY4DCsnf3DrlsBlI/R9nXABWtt07QfmYiIyDyiYEJERGR2uT64vDHYRnoDoGBCREREZHSfxNXyejNQBnwXiHOlYPVV4YG1tt0Y82u4mh93AU24ZTU/hKv5Mvw+Q+3sH3bdUOHrsYKJ/aNcLyIisqApmBAREZlFrLW3ZLoPIiIiInOVtbYd+M1Rrv82YMa530+BnaPcZEbsd1U747VtrV13zU6LiIgsQCp+LSIiIiIiIiIiIiIiM0bFr0VEREREREREREREZMZoKacMMcYYgiJYme6LiIiIiIiIiIiIiIRuMfCk1bJFV1EwkTnXAU9kuhMiIiIiIiIiIiIikjbXA/sy3YnZRsFE5gzNlLgezZoQERERERERERERmU8W405M19jvKBRMZN4Fa+0zme6EiIiIiIiIiIiIiITDreQvY1HxaxERERERERERERERmTEKJkREREREREREREREZMYomBARERERERERERERkRmjYEJERERERERERERERGaMggkREREREREREREREZkxCiZERERERERERERERGTGKJgQEREREREREREREZEZo2BCRERERERERERERERmjIIJERERERERERERERGZMQomRERERERERERERERkxiiYEBERERERERERERGRGaNgQkREREREREREREREZoyCCRERERERERERERERmTEKJkREREREREREREREZMYomBARERERERERERERkRmjYEJERERERERERERERGaMggkREREREREREREREZkxCiZERERERERERERERGTGKJgQEREREREREREREZEZo2BCRERERERERERERERmjIIJERERERERERERERGZMQomRERERERERERERERkxiiYEBERERERERERERGRGaNgQkREREREREREREREZoyCCRERERERERERERERmTEKJkREREREREREREREZMYomBARERERERERERERkRmjYEJERERERERERERERGaMggkREREREREREREREZkxCiZERERERERERERERGTGKJgQEREREREREREREZEZo2BCRERERERERERERERmjIIJERERERERERERERGZMQomRERERERERERERERkxiiYEBERERERERERERGRGaNgQkREREREREREREREZoyCCcmYvQ1NeXsbmrIy3Q8REREREZG5KO552XHPK8h0P0REREQmS8GEZNJzgY2Z7oSIiIiIiMhcE/e8HOBW4NVxz1sb9zyT6T6JiIiITJSCCcmkXGBJpjshIiIiIiIyl8Q9Lwv4JWAbUAL8MvCCuOflZrRjIiIiIhOkYEIyrVrLOYmIiIiIiExM3POiwPOB64BG4DRwCXgB8Ctxz6vOYPdEREREJkTBhGRaIVCW6U6IiIiIiIjMdnHPiwA3AM8BzgG9wU2dwDFgOVAX97ztQYAhIiIiMispmJBMKwLKM90JERERERGR2SyoIbEduBG4CHSN2CUJnAAGgduBF8c9r2RGOykiIiIyQbFMd0AWvHxgUaY7ISIiIiIiMsttAm4C2oDL4+zXgptBsRWojHveo4Bf5/s2/V0UERERmRjNmJDZYMXehiaT6U6IiIiIiIjMRnHPWwfcDHQDrRO4Sz9wFDdDXYWxRUREZNZRMCGZ1g2UAMWZ7oiIiIiIiMhsE/e8VcCtQAJonsRdLXAWFcYWERGRWUjBhGRaD245J9WZEBERERERGSbuectwoUQW0DTFZlQYW0RERGYdBROSaSnAAGWZ7oiIiIiIiMhsEfe8KuA2oBA4Pc3mVBhbREREZhUFEzIb9AHLMt0JERERERGR2SDueeW4UGIRcCrEpltwIcdW3OyJtXHPU70/ERERmXEKJmQ26AQq9zY05WW6IyIiIiIiIpkU97xiXCixDDfLIWwqjC0iIiIZp2BCZoMu3PRkLeckIiIiIiILVtzzCnA1JVYBx3EFrNNBhbFFREQkoxRMyGyQAGKo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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "fig, ax = plt.subplots()\n", "shaded_mean_std(\n", @@ -402,28 +421,7 @@ "ax2.set_ylabel(\"Computation Time\", color=\"indianred\")\n", "ax2.tick_params(axis=\"y\", labelcolor=\"indianred\")\n", "ax.set_title(\"$l_2$ Error and computation time with respect to $m_{train}$\")\n", - "fig.tight_layout();" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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rzdwZTnDaxW+brfWnhjjtv2j3G8HLigaOaMB4DPAF3EFyv8E99q9BBfCjGxvB26GXP2I6yzuvfALwUyepYwelIiIiCxY5uqTc0RERCSTgjMF/xv4DeAPrbWfzXCXRDLOGHM/cDPwQWvtXZntjYjMdfpMmb+MMR/BFbQuHVk42xjzQ2CVtXbtiOtXASeBf7DW/vGI276PC3IKh2piBO0st9ZuGLbfj4CVo7T9cuB7uKDru+E8ShERkblPMyZERERmkWCN6S/hQok/VSghIiIiMimrgbaRoURgO6PPwlgRXDYMv9IY8xbc7NWRhbpHq2ExVttDMzg0Y0JERGSYWTmFV0REZAH7W9y60o/g1sD/vRG3PzzKkgUiIiIi4pwEyowxn8AV+m631saD+hkVjB4QHMTVlPiAMaYQtyzXS3CBhWVY4DCsnf3DrlsBlI/R9nXABWtt07QfmYiIyDyiYEJERGR2uT64vDHYRnoDoGBCREREZHSfxNXyejNQBnwXiHOlYPVV4YG1tt0Y82u4mh93AU24ZTU/hKv5Mvw+Q+3sH3bdUOHrsYKJ/aNcLyIisqApmBAREZlFrLW3ZLoPIiIiInOVtbYd+M1Rrv82YMa530+BnaPcZEbsd1U747VtrV13zU6LiIgsQCp+LSIiIiIiIiIiIiIiM0bFr0VEREREREREREREZMZoKacMMcYYgiJYme6LiIiIiIiIiIiIiIRuMfCk1bJFV1EwkTnXAU9kuhMiIiIiIiIiIiIikjbXA/sy3YnZRsFE5gzNlLgezZoQERERERERERERmU8W405M19jvKBRMZN4Fa+0zme6EiIiIiIiIiIiIiITDreQvY1HxaxERERERERERERERmTEKJkREREREREREREREZMYomBARERERERERERERkRmjYEJERERERERERERERGaMggkREREREREREREREZkxCiZERERERERERERERGTGKJgQEREREREREREREZEZo2BCRERERERERERERERmjIIJERERERERERERERGZMQomRERERERERERERERkxiiYEBERERERERERERGRGaNgQkREREREREREREREZoyCCRERERERERERERERmTEKJkREREREREREREREZMYomBARERERERERERERkRmjYEJERERERERERERERGaMggkREREREREREREREZkxCiZERERERERERERERGTGKJgQEREREREREREREZEZo2BCRERERERERERERERmjIIJERERERERERERERGZMQomRERERERERERERERkxiiYEBERERERERERERGRGaNgQkREREREREREREREZoyCCRERERERERERERERmTEKJkREREREREREREREZMYomBARERERERERERERkRmjYEJERERERERERERERGaMggkREREREREREREREZkxCiZERERERERERERERGTGKJgQEREREREREREREZEZo2BCRERERERERERERERmjIIJERERERERERERERGZMQomRERERERERERERERkxiiYEBERERERERERERGRGaNgQkREREREREREREREZoyCCcmYvQ1NeXsbmrIy3Q8REREREZG5KO552XHPK8h0P0REREQmS8GEZNJzgY2Z7oSIiIiIiMhcE/e8HOBW4NVxz1sb9zyT6T6JiIiITJSCCcmkXGBJpjshIiIiIiIyl8Q9Lwv4JWAbUAL8MvCCuOflZrRjIiIiIhOkYEIyrVrLOYmIiIiIiExM3POiwPOB64BG4DRwCXgB8Ctxz6vOYPdEREREJkTBhGRaIVCW6U6IiIiIiIjMdnHPiwA3AM8BzgG9wU2dwDFgOVAX97ztQYAhIiIiMispmJBMKwLKM90JERERERGR2SyoIbEduBG4CHSN2CUJnAAGgduBF8c9r2RGOykiIiIyQbFMd0AWvHxgUaY7ISIiIiIiMsttAm4C2oDL4+zXgptBsRWojHveo4Bf5/s2/V0UERERmRjNmJDZYMXehiaT6U6IiIiIiIjMRnHPWwfcDHQDrRO4Sz9wFDdDXYWxRUREZNZRMCGZ1g2UAMWZ7oiIiIiIiMhsE/e8VcCtQAJonsRdLXAWFcYWERGRWUjBhGRaD245J9WZEBERERERGSbuectwoUQW0DTFZlQYW0RERGYdBROSaSnAAGWZ7oiIiIiIiMhsEfe8KuA2oBA4Pc3mVBhbREREZhUFEzIb9AHLMt0JERERERGR2SDueeW4UGIRcCrEpltwIcdW3OyJtXHPU70/ERERmXEKJmQ26AQq9zY05WW6IyIiIiIiIpkU97xiXCixDDfLIWwqjC0iIiIZp2BCZoMu3PRkLeckIiIiIiILVtzzCnA1JVYBx3EFrNNBhbFFREQkoxRMyGyQAGKo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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ + "fig.tight_layout()\n", "plt.show()" ] }, @@ -434,26 +432,14 @@ "Let us next look at how well the ranking of values resulting from using the surrogate $\\tilde{u}$ matches the ranking by the exact values. For this we fix $k=3$ and consider the $k$ samples with the highest value according to $\\tilde{u}$ and $u$:" ] }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "shaded_mean_std(\n", - " accuracies.transpose(),\n", - " abscissa=training_budget_values,\n", - " mean_color=\"dodgerblue\",\n", - " shade_color=\"lightblue\",\n", - " xlabel=\"$m_\\\\operatorname{train}$\",\n", - " ylabel=f\"Average Top-{top_k} Accuracy\",\n", - ");" - ] - }, { "cell_type": "code", "execution_count": 14, - "metadata": {}, + "metadata": { + "tags": [ + "hide-input" + ] + }, "outputs": [ { "data": { @@ -469,6 +455,14 @@ } ], "source": [ + "shaded_mean_std(\n", + " accuracies.transpose(),\n", + " abscissa=training_budget_values,\n", + " mean_color=\"dodgerblue\",\n", + " shade_color=\"lightblue\",\n", + " xlabel=\"$m_\\\\operatorname{train}$\",\n", + " ylabel=f\"Average Top-{top_k} Accuracy\",\n", + ")\n", "plt.show()" ] }, @@ -481,11 +475,26 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide-input" + ] }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "fig, ax = plt.subplots(figsize=(18, 12))\n", "distances = 100 * df.loc[:, df.columns != \"exact\"].sub(df.exact, axis=\"index\").div(\n", @@ -505,28 +514,7 @@ "ax.set_xlabel(\"Index\")\n", "ax.set_ylabel(\"% deviation from the exact value\")\n", "ax.set_title(\"Relative deviation of estimated from exact values across runs\")\n", - "ax.grid(False)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ + "ax.grid(False)\n", "plt.show()" ] }, @@ -638,25 +626,12 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": { - "nbsphinx": "hidden" + "tags": [ + "hide-input" + ] }, - "outputs": [], - "source": [ - "fig, ax = plt.subplots()\n", - "df_corrupted.sort_values(by=\"exact\", ascending=False, axis=0).plot(\n", - " y=[\"exact\", \"estimated\"], kind=\"bar\", ax=ax, color=[\"dodgerblue\", \"indianred\"]\n", - ")\n", - "ax.set_xlabel(\"Index\")\n", - "ax.set_ylabel(\"Data Shapley value\")\n", - "plt.legend([\"Exact\", \"Estimated\"]);" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, "outputs": [ { "data": { @@ -672,7 +647,14 @@ } ], "source": [ - "plt.show()" + "fig, ax = plt.subplots()\n", + "df_corrupted.sort_values(by=\"exact\", ascending=False, axis=0).plot(\n", + " y=[\"exact\", \"estimated\"], kind=\"bar\", ax=ax, color=[\"dodgerblue\", \"indianred\"]\n", + ")\n", + "ax.set_xlabel(\"Index\")\n", + "ax.set_ylabel(\"Data Shapley value\")\n", + "plt.legend([\"Exact\", \"Estimated\"])\n", + "plt.show();" ] }, { @@ -702,7 +684,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.8.16" } }, "nbformat": 4, diff --git a/notebooks/notebook_support.py b/notebooks/support/common.py similarity index 78% rename from notebooks/notebook_support.py rename to notebooks/support/common.py index 834638f93..b64d7e995 100644 --- a/notebooks/notebook_support.py +++ b/notebooks/support/common.py @@ -1,147 +1,33 @@ +import logging import os -import pickle as pkl from copy import deepcopy -from pathlib import Path -from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Sequence, Tuple +from typing import Any, Dict, Iterable, List, Optional, Sequence, Tuple import matplotlib.patches as mpatches import matplotlib.pyplot as plt import numpy as np import pandas as pd -import torch.nn as nn +from numpy.typing import NDArray from PIL.JpegImagePlugin import JpegImageFile -from torch.optim import Adam -from torchvision.models import ResNet18_Weights, resnet18 -from pydvl.influence.model_wrappers import TorchModel from pydvl.utils import Dataset -try: - import torch +from .types import Losses - _TORCH_INSTALLED = True -except ImportError: - _TORCH_INSTALLED = False +logger = logging.getLogger(__name__) -if TYPE_CHECKING: - from numpy.typing import NDArray -MODEL_PATH = Path().resolve().parent / "data" / "models" - - -def new_resnet_model(output_size: int) -> TorchModel: - model = resnet18(weights=ResNet18_Weights.IMAGENET1K_V1) - - for param in model.parameters(): - param.requires_grad = False - - # Fine-tune final few layers - model.avgpool = nn.AdaptiveAvgPool2d(1) - n_features = model.fc.in_features - model.fc = nn.Linear(n_features, output_size) - device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") - model.to(device) - - return TorchModel(model) - - -class TrainingManager: - """A simple class to handle persistence of the model for the notebook - `influence_imagenet.ipynb` - """ - - def __init__( - self, - name: str, - model: TorchModel, - loss: torch.nn.modules.loss._Loss, - train_x: "NDArray[np.float_]", - train_y: "NDArray[np.float_]", - val_x: "NDArray[np.float_]", - val_y: "NDArray[np.float_]", - data_dir: Path, - ): - self.name = name - self.model_wrapper = model - self.loss = loss - self.train_x, self.train_y = train_x, train_y - self.val_x, self.val_y = val_x, val_y - self.data_dir = data_dir - os.makedirs(self.data_dir, exist_ok=True) - - @property - def model(self) -> nn.Module: - return self.model_wrapper.model - - def train( - self, - n_epochs: int, - lr: float = 0.001, - batch_size: int = 1000, - use_cache: bool = True, - ) -> Tuple["NDArray[np.float_]", "NDArray[np.float_]"]: - """ - :return: Tuple of training_loss, validation_loss - """ - if use_cache: - try: - training_loss, validation_loss = self.load() - print("Cached model found, loading...") - return training_loss, validation_loss - except: - print(f"No pretrained model found. Training for {n_epochs} epochs:") - - optimizer = Adam(self.model.parameters(), lr=lr) - - training_loss, validation_loss = self.model_wrapper.fit( - x_train=self.train_x, - y_train=self.train_y, - x_val=self.val_x, - y_val=self.val_y, - loss=self.loss, - optimizer=optimizer, - num_epochs=n_epochs, - batch_size=batch_size, - ) - if use_cache: - self.save(training_loss, validation_loss) - - return training_loss, validation_loss - - def save( - self, training_loss: "NDArray[np.float_]", validation_loss: "NDArray[np.float_]" - ): - """Saves the model weights and training and validation losses. - - :param training_loss: list of training losses, one per epoch - :param validation_loss: list of validation losses, also one per epoch - """ - torch.save(self.model.state_dict(), self.data_dir / f"{self.name}_weights.pth") - with open(self.data_dir / f"{self.name}_train_val_loss.pkl", "wb") as file: - pkl.dump([training_loss, validation_loss], file) - - def load(self) -> Tuple["NDArray[np.float_]", "NDArray[np.float_]"]: - """Loads model weights and training and validation losses. - :return: two arrays, one with training and one with validation losses. - """ - self.model.load_state_dict( - torch.load(self.data_dir / f"{self.name}_weights.pth") - ) - with open(self.data_dir / f"{self.name}_train_val_loss.pkl", "rb") as file: - return pkl.load(file) - - -def plot_dataset( - train_ds: Tuple["NDArray[np.float_]", "NDArray[np.int_]"], - test_ds: Tuple["NDArray[np.float_]", "NDArray[np.int_]"], - x_min: Optional["NDArray[np.float_]"] = None, - x_max: Optional["NDArray[np.float_]"] = None, +def plot_gaussian_blobs( + train_ds: Tuple[NDArray[np.float_], NDArray[np.int_]], + test_ds: Tuple[NDArray[np.float_], NDArray[np.int_]], + x_min: Optional[NDArray[np.float_]] = None, + x_max: Optional[NDArray[np.float_]] = None, *, xlabel: Optional[str] = None, ylabel: Optional[str] = None, legend_title: Optional[str] = None, vline: Optional[float] = None, - line: Optional["NDArray[np.float_]"] = None, + line: Optional[NDArray[np.float_]] = None, suptitle: Optional[str] = None, s: Optional[float] = None, figsize: Tuple[int, int] = (20, 10), @@ -214,15 +100,15 @@ def plot_dataset( def plot_influences( - x: "NDArray[np.float_]", - influences: "NDArray[np.float_]", + x: NDArray[np.float_], + influences: NDArray[np.float_], corrupted_indices: Optional[List[int]] = None, *, ax: Optional[plt.Axes] = None, xlabel: Optional[str] = None, ylabel: Optional[str] = None, legend_title: Optional[str] = None, - line: Optional["NDArray[np.float_]"] = None, + line: Optional[NDArray[np.float_]] = None, suptitle: Optional[str] = None, colorbar_limits: Optional[Tuple] = None, ) -> plt.Axes: @@ -437,6 +323,14 @@ def _process_dataset(ds): processed_ds["labels"].append(item["label"]) return pd.DataFrame.from_dict(processed_ds) + def split_ds_by_size(dataset, split_size): + split_ds = dataset.train_test_split( + train_size=split_size, + seed=random_state, + stratify_by_column="label", + ) + return split_ds + if os.environ.get("CI"): tiny_imagenet = load_dataset("Maysee/tiny-imagenet", split="valid") if keep_labels is not None: @@ -463,14 +357,10 @@ def _process_dataset(ds): lambda item: item["label"] in keep_labels.keys() ) - split_ds = tiny_imagenet.train_test_split( - train_size=1 - test_size, seed=random_state - ) + split_ds = split_ds_by_size(tiny_imagenet, 1 - test_size) test_ds = _process_dataset(split_ds["test"]) - split_ds = split_ds["train"].train_test_split( - train_size=train_size, seed=random_state - ) + split_ds = split_ds_by_size(split_ds["train"], train_size) train_ds = _process_dataset(split_ds["train"]) val_ds = _process_dataset(split_ds["test"]) @@ -500,7 +390,7 @@ def plot_sample_images(dataset: pd.DataFrame, n_images_per_class: int = 3): def plot_lowest_highest_influence_images( - subset_influences: "NDArray[np.float_]", + subset_influences: NDArray[np.float_], subset_images: List[JpegImageFile], num_to_plot: int, ): @@ -531,17 +421,15 @@ def plot_lowest_highest_influence_images( plt.show() -def plot_losses( - training_loss: "NDArray[np.float_]", validation_loss: "NDArray[np.float_]" -): +def plot_losses(losses: Losses): """Plots the train and validation loss :param training_loss: list of training losses, one per epoch :param validation_loss: list of validation losses, one per epoch """ _, ax = plt.subplots() - ax.plot(training_loss, label="Train") - ax.plot(validation_loss, label="Val") + ax.plot(losses.training, label="Train") + ax.plot(losses.validation, label="Val") ax.set_ylabel("Loss") ax.set_xlabel("Train epoch") ax.legend() @@ -551,7 +439,7 @@ def plot_losses( def corrupt_imagenet( dataset: pd.DataFrame, fraction_to_corrupt: float, - avg_influences: "NDArray[np.float_]", + avg_influences: NDArray[np.float_], ) -> Tuple[pd.DataFrame, Dict[Any, List[int]]]: """Given the preprocessed tiny imagenet dataset (or a subset of it), it takes a fraction of the images with the highest influence and (randomly) @@ -589,10 +477,10 @@ def corrupt_imagenet( def compute_mean_corrupted_influences( corrupted_dataset: pd.DataFrame, corrupted_indices: Dict[Any, List[int]], - avg_corrupted_influences: "NDArray[np.float_]", + avg_corrupted_influences: NDArray[np.float_], ) -> pd.DataFrame: - """Given a corrupted dataset, it returns a dataframe with average influence for each class - and separately for corrupted (and non) point. + """Given a corrupted dataset, it returns a dataframe with average influence for each class, + separating corrupted and original points. :param corrupted_dataset: corrupted dataset as returned by get_corrupted_imagenet :param corrupted_indices: list of corrupted indices, as returned by get_corrupted_imagenet @@ -626,7 +514,7 @@ def compute_mean_corrupted_influences( def plot_corrupted_influences_distribution( corrupted_dataset: pd.DataFrame, corrupted_indices: Dict[Any, List[int]], - avg_corrupted_influences: "NDArray[np.float_]", + avg_corrupted_influences: NDArray[np.float_], figsize: Tuple[int, int] = (16, 8), ): """Given a corrupted dataset, plots the histogram with the distribution of @@ -656,14 +544,10 @@ def plot_corrupted_influences_distribution( non_corrupted_infl = class_influences[ ~class_influences.index.isin(corrupted_indices[label]) ] - axes[idx].hist( - non_corrupted_infl, label="Non corrupted", density=True, alpha=0.7 - ) - axes[idx].hist( - corrupted_infl, label="Corrupted", density=True, alpha=0.7, color="green" - ) + axes[idx].hist(non_corrupted_infl, label="Non corrupted", alpha=0.7) + axes[idx].hist(corrupted_infl, label="Corrupted", alpha=0.7, color="green") axes[idx].set_xlabel("Influence values") - axes[idx].set_ylabel("Distribution") + axes[idx].set_ylabel("Number of samples") axes[idx].set_title(f"Influences for {label=}") axes[idx].legend() plt.show() diff --git a/notebooks/support/shapley.py b/notebooks/support/shapley.py new file mode 100644 index 000000000..98c295ef9 --- /dev/null +++ b/notebooks/support/shapley.py @@ -0,0 +1,159 @@ +from pathlib import Path +from typing import Any, Callable, Optional, Tuple + +import numpy as np +import pandas as pd +from sklearn.datasets import load_wine +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import MinMaxScaler + + +def load_spotify_dataset( + val_size: float, + test_size: float, + min_year: int = 2014, + target_column: str = "popularity", + random_state: int = 24, +): + """Loads (and downloads if not already cached) the spotify music dataset. + More info on the dataset can be found at + https://www.kaggle.com/datasets/mrmorj/dataset-of-songs-in-spotify. + + If this method is called within the CI pipeline, it will load a reduced + version of the dataset for testing purposes. + + :param val_size: size of the validation set + :param test_size: size of the test set + :param min_year: minimum year of the returned data + :param target_column: column to be returned as y (labels) + :param random_state: fixes sklearn random seed + :return: Tuple with 3 elements, each being a list sith [input_data, related_labels] + """ + root_dir_path = Path(__file__).parent.parent.parent + file_path = root_dir_path / "data/top_hits_spotify_dataset.csv" + if file_path.exists(): + data = pd.read_csv(file_path) + else: + url = "https://raw.githubusercontent.com/aai-institute/pyDVL/develop/data/top_hits_spotify_dataset.csv" + data = pd.read_csv(url) + data.to_csv(file_path, index=False) + + data = data[data["year"] > min_year] + data["genre"] = data["genre"].astype("category").cat.codes + y = data[target_column] + X = data.drop(target_column, axis=1) + X, X_test, y, y_test = train_test_split( + X, y, test_size=test_size, random_state=random_state + ) + X_train, X_val, y_train, y_val = train_test_split( + X, y, test_size=val_size, random_state=random_state + ) + return [X_train, y_train], [X_val, y_val], [X_test, y_test] + + +def load_wine_dataset( + train_size: float, test_size: float, random_state: Optional[int] = None +): + """Loads the sklearn wine dataset. More info can be found at + https://scikit-learn.org/stable/datasets/toy_dataset.html#wine-recognition-dataset. + + :param train_size: fraction of points used for training dataset + :param test_size: fraction of points used for test dataset + :param random_state: fix random seed. If None, no random seed is set. + :return: A tuple of four elements with the first three being input and + target values in the form of matrices of shape (N,D) the first + and (N,) the second. The fourth element is a list containing names of + features of the model. (FIXME doc) + """ + try: + import torch + except ImportError as e: + raise RuntimeError( + "PyTorch is required in order to load the Wine Dataset" + ) from e + + wine_bunch = load_wine(as_frame=True) + x, x_test, y, y_test = train_test_split( + wine_bunch.data, + wine_bunch.target, + train_size=1 - test_size, + random_state=random_state, + ) + x_train, x_val, y_train, y_val = train_test_split( + x, y, train_size=train_size / (1 - test_size), random_state=random_state + ) + x_transformer = MinMaxScaler() + + transformed_x_train = x_transformer.fit_transform(x_train) + transformed_x_test = x_transformer.transform(x_test) + + transformed_x_train = torch.tensor(transformed_x_train, dtype=torch.float) + transformed_y_train = torch.tensor(y_train.to_numpy(), dtype=torch.long) + + transformed_x_test = torch.tensor(transformed_x_test, dtype=torch.float) + transformed_y_test = torch.tensor(y_test.to_numpy(), dtype=torch.long) + + transformed_x_val = x_transformer.transform(x_val) + transformed_x_val = torch.tensor(transformed_x_val, dtype=torch.float) + transformed_y_val = torch.tensor(y_val.to_numpy(), dtype=torch.long) + return ( + (transformed_x_train, transformed_y_train), + (transformed_x_val, transformed_y_val), + (transformed_x_test, transformed_y_test), + wine_bunch.feature_names, + ) + + +def synthetic_classification_dataset( + mus: np.ndarray, + sigma: float, + num_samples: int, + train_size: float, + test_size: float, + random_seed=None, +) -> Tuple[Tuple[Any, Any], Tuple[Any, Any], Tuple[Any, Any]]: + """Sample from a uniform Gaussian mixture model. + + :param mus: 2d-matrix [CxD] with the means of the components in the rows. + :param sigma: Standard deviation of each dimension of each component. + :param num_samples: The number of samples to generate. + :param train_size: fraction of points used for training dataset + :param test_size: fraction of points used for test dataset + :param random_seed: fix random seed. If None, no random seed is set. + :returns: A tuple of matrix x of shape [NxD] and target vector y of shape [N]. + """ + num_features = mus.shape[1] + num_classes = mus.shape[0] + gaussian_cov = sigma * np.eye(num_features) + gaussian_chol = np.linalg.cholesky(gaussian_cov) + y = np.random.randint(num_classes, size=num_samples) + x = ( + np.einsum( + "ij,kj->ki", + gaussian_chol, + np.random.normal(size=[num_samples, num_features]), + ) + + mus[y] + ) + x, x_test, y, y_test = train_test_split( + x, y, train_size=1 - test_size, random_state=random_seed + ) + x_train, x_val, y_train, y_val = train_test_split( + x, y, train_size=train_size / (1 - test_size), random_state=random_seed + ) + return (x_train, y_train), (x_val, y_val), (x_test, y_test) + + +def decision_boundary_fixed_variance_2d( + mu_1: np.ndarray, mu_2: np.ndarray +) -> Callable[[np.ndarray], np.ndarray]: + """ + Closed-form solution for decision boundary dot(a, b) + b = 0 with fixed variance. + :param mu_1: First mean. + :param mu_2: Second mean. + :returns: A callable which converts a continuous line (-infty, infty) to the decision boundary in feature space. + """ + a = np.asarray([[0, 1], [-1, 0]]) @ (mu_2 - mu_1) + b = (mu_1 + mu_2) / 2 + a = a.reshape([1, -1]) + return lambda z: z.reshape([-1, 1]) * a + b # type: ignore diff --git a/notebooks/support/torch.py b/notebooks/support/torch.py new file mode 100644 index 000000000..68faad12f --- /dev/null +++ b/notebooks/support/torch.py @@ -0,0 +1,254 @@ +import logging +import os +import pickle as pkl +from pathlib import Path +from typing import Callable, List, Optional, Tuple + +import numpy as np +import pandas as pd +import torch +import torch.nn as nn +from torch.optim import Adam, Optimizer +from torch.optim.lr_scheduler import _LRScheduler +from torch.utils.data import DataLoader +from torchvision.models import ResNet18_Weights, resnet18 + +from pydvl.influence.torch import as_tensor +from pydvl.utils import maybe_progress + +from .types import Losses + +logger = logging.getLogger(__name__) + +from numpy.typing import NDArray + +MODEL_PATH = Path().resolve().parent / "data" / "models" + + +class TorchLogisticRegression(nn.Module): + """ + A simple binary logistic regression model. + """ + + def __init__( + self, + n_input: int, + ): + """ + :param n_input: Number of features in the input. + """ + super().__init__() + self.fc1 = nn.Linear(n_input, 1, bias=True, dtype=float) + + def forward(self, x): + """ + :param x: Tensor [NxD], with N the batch length and D the number of features. + :returns: A tensor [N] representing the probability of the positive class for each sample. + """ + x = torch.as_tensor(x) + return torch.sigmoid(self.fc1(x)) + + +class TorchMLP(nn.Module): + """ + A simple fully-connected neural network + """ + + def __init__( + self, + layers_size: List[int], + ): + """ + :param layers_size: list of integers representing the number of + neurons in each layer. + """ + super().__init__() + if len(layers_size) < 2: + raise ValueError( + "Passed layers_size has less than 2 values. " + "The network needs at least input and output sizes." + ) + layers = [] + for frm, to in zip(layers_size[:-1], layers_size[1:]): + layers.append(nn.Linear(frm, to)) + layers.append(nn.Tanh()) + layers.pop() + + layers.append(nn.Softmax(dim=-1)) + + self.layers = nn.Sequential(*layers) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + """ + Perform forward pass through the network. + :param x: Tensor input of shape [NxD], with N batch size and D number of + features. + :returns: Tensor output of shape[NxK], with K the output size of the network. + """ + return self.layers(x) + + +def fit_torch_model( + model: nn.Module, + training_data: DataLoader, + val_data: DataLoader, + loss: Callable[[torch.Tensor, torch.Tensor], torch.Tensor], + optimizer: Optimizer, + scheduler: Optional[_LRScheduler] = None, + num_epochs: int = 1, + progress: bool = True, +) -> Losses: + """ + Fits a pytorch model to the supplied data. + Represents a simple machine learning loop, iterating over a number of + epochs, sampling data with a certain batch size, calculating gradients and updating the parameters through a + loss function. + :param model: A pytorch model. + :param training_data: A pytorch DataLoader with the training data. + :param val_data: A pytorch DataLoader with the validation data. + :param optimizer: Select either ADAM or ADAM_W. + :param scheduler: A pytorch scheduler. If None, no scheduler is used. + :param num_epochs: Number of epochs to repeat training. + :param progress: True, iff progress shall be printed. + """ + train_loss = [] + val_loss = [] + + for epoch in maybe_progress(range(num_epochs), progress, desc="Model fitting"): + batch_loss = [] + for train_batch in training_data: + batch_x, batch_y = train_batch + pred_y = model(batch_x) + loss_value = loss(torch.squeeze(pred_y), torch.squeeze(batch_y)) + batch_loss.append(loss_value.item()) + + logger.debug(f"Epoch: {epoch} ---> Training loss: {loss_value.item()}") + loss_value.backward() + optimizer.step() + optimizer.zero_grad() + + if scheduler: + scheduler.step() + with torch.no_grad(): + batch_val_loss = [] + for val_batch in val_data: + batch_x, batch_y = val_batch + pred_y = model(batch_x) + batch_val_loss.append( + loss(torch.squeeze(pred_y), torch.squeeze(batch_y)).item() + ) + + mean_epoch_train_loss = np.mean(batch_loss) + mean_epoch_val_loss = np.mean(batch_val_loss) + train_loss.append(mean_epoch_train_loss) + val_loss.append(mean_epoch_val_loss) + logger.info( + f"Epoch: {epoch} ---> Training loss: {mean_epoch_train_loss}, Validation loss: {mean_epoch_val_loss}" + ) + return Losses(train_loss, val_loss) + + +def new_resnet_model(output_size: int) -> nn.Module: + model = resnet18(weights=ResNet18_Weights.IMAGENET1K_V1) + + for param in model.parameters(): + param.requires_grad = False + + # Fine-tune final few layers + model.avgpool = nn.AdaptiveAvgPool2d(1) + n_features = model.fc.in_features + model.fc = nn.Linear(n_features, output_size) + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + model.to(device) + + return model + + +class TrainingManager: + """A simple class to handle persistence of the model for the notebook + `influence_imagenet.ipynb` + """ + + def __init__( + self, + name: str, + model: nn.Module, + loss: torch.nn.modules.loss._Loss, + train_data: DataLoader, + val_data: DataLoader, + data_dir: Path, + ): + self.name = name + self.model = model + self.loss = loss + self.train_data = train_data + self.val_data = val_data + self.data_dir = data_dir + os.makedirs(self.data_dir, exist_ok=True) + + def train( + self, + n_epochs: int, + lr: float = 0.001, + use_cache: bool = True, + ) -> Losses: + """ + :return: Tuple of training_loss, validation_loss + """ + if use_cache: + try: + losses = self.load() + print("Cached model found, loading...") + return losses + except: + print(f"No pretrained model found. Training for {n_epochs} epochs:") + + optimizer = Adam(self.model.parameters(), lr=lr) + + losses = fit_torch_model( + model=self.model, + training_data=self.train_data, + val_data=self.val_data, + loss=self.loss, + optimizer=optimizer, + num_epochs=n_epochs, + ) + if use_cache: + self.save(losses) + self.model.eval() + return losses + + def save(self, losses: Losses): + """Saves the model weights and training and validation losses. + + :param training_loss: list of training losses, one per epoch + :param validation_loss: list of validation losses, also one per epoch + """ + torch.save(self.model.state_dict(), self.data_dir / f"{self.name}_weights.pth") + with open(self.data_dir / f"{self.name}_train_val_loss.pkl", "wb") as file: + pkl.dump(losses, file) + + def load(self) -> Losses: + """Loads model weights and training and validation losses. + :return: two arrays, one with training and one with validation losses. + """ + self.model.load_state_dict( + torch.load(self.data_dir / f"{self.name}_weights.pth") + ) + self.model.eval() + with open(self.data_dir / f"{self.name}_train_val_loss.pkl", "rb") as file: + return pkl.load(file) + + +def process_imgnet_io( + df: pd.DataFrame, labels: dict +) -> Tuple[torch.Tensor, torch.Tensor]: + x = df["normalized_images"] + y = df["labels"] + ds_label_to_model_label = { + ds_label: idx for idx, ds_label in enumerate(labels.values()) + } + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + x_nn = torch.stack(x.tolist()).to(device) + y_nn = torch.tensor([ds_label_to_model_label[yi] for yi in y], device=device) + return x_nn, y_nn diff --git a/notebooks/support/types.py b/notebooks/support/types.py new file mode 100644 index 000000000..5f3988745 --- /dev/null +++ b/notebooks/support/types.py @@ -0,0 +1,9 @@ +from typing import NamedTuple + +import numpy as np +from numpy.typing import NDArray + + +class Losses(NamedTuple): + training: NDArray[np.float_] + validation: NDArray[np.float_] diff --git a/pyproject.toml b/pyproject.toml index 2d453cf3e..206829f39 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ log_level = "INFO" markers = [ "torch: Mark a test function that uses PyTorch" ] +filterwarnings = "ignore::DeprecationWarning:pkg_resources.*:" [tool.coverage.run] branch = true diff --git a/requirements-dev.txt b/requirements-dev.txt index 68667f451..34cdda5a7 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,18 +1,24 @@ +tox<4.0.0 +tox-wheel +pre-commit==3.1.1 black[jupyter] == 23.1.0 isort == 5.12.0 -jupyter +pylint==2.12.0 +pylint-json2html +anybadge mypy == 0.982 +types-tqdm +pandas-stubs +bump2version +jupyter nbconvert>=7.2.9 nbstripout == 0.6.1 -bump2version -pre-commit==3.1.1 pytest==7.2.2 pytest-cov -pytest-docker==0.12.0 +pytest-docker==2.0.0 pytest-mock pytest-timeout -ray[default] >= 0.8 -tox<4.0.0 -tox-wheel -types-tqdm +pytest-lazy-fixture +wheel twine==4.0.2 +bump2version diff --git a/requirements-docs.txt b/requirements-docs.txt new file mode 100644 index 000000000..5cb1fba3e --- /dev/null +++ b/requirements-docs.txt @@ -0,0 +1,19 @@ +mike +markdown-captions +mkdocs==1.5.2 +mkdocstrings[python]>=0.18 +mkdocs-alias-plugin>=0.6.0 +mkdocs-autorefs +mkdocs-bibtex +mkdocs-gen-files +mkdocs-git-revision-date-localized-plugin +mkdocs-glightbox +mknotebooks>=0.8.0 +pygments +mkdocs-literate-nav +mkdocs-material +mkdocs-section-index +mkdocs-macros-plugin +neoteroi-mkdocs # Needed for card grid on home page +pypandoc +GitPython diff --git a/requirements-notebooks.txt b/requirements-notebooks.txt index cd8463e63..29d63506f 100644 --- a/requirements-notebooks.txt +++ b/requirements-notebooks.txt @@ -1,4 +1,4 @@ -torch==1.13.1 -torchvision==0.14.1 +torch==2.0.1 +torchvision==0.15.2 datasets==2.6.1 pillow==9.3.0 diff --git a/requirements.txt b/requirements.txt index e6c31a00b..471ba7475 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,6 @@ pandas>=1.3 scikit-learn scipy>=1.7.0 cvxpy>=1.3.0 -ray>=0.8 joblib pymemcache cloudpickle diff --git a/setup.py b/setup.py index 002249cea..ac71c80f4 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ package_data={"pydvl": ["py.typed"]}, packages=find_packages(where="src"), include_package_data=True, - version="0.6.1", + version="0.7.0", description="The Python Data Valuation Library", install_requires=[ line @@ -21,7 +21,11 @@ ], setup_requires=["wheel"], tests_require=["pytest"], - extras_require={"influence": ["torch"]}, + extras_require={ + "cupy": ["cupy-cuda11x>=12.1.0"], + "influence": ["torch>=2.0.0"], + "ray": ["ray>=0.8"], + }, author="appliedAI Institute gGmbH", long_description=long_description, long_description_content_type="text/markdown", @@ -40,8 +44,8 @@ "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", ], project_urls={ - "Source": "https://github.com/appliedAI-Initiative/pydvl", - "Documentation": "https://appliedai-initiative.github.io/pyDVL", + "Source": "https://github.com/aai-institute/pydvl", + "Documentation": "https://aai-institute.github.io/pyDVL", "TransferLab": "https://transferlab.appliedai.de", }, zip_safe=False, # Needed for mypy to find py.typed diff --git a/src/pydvl/__init__.py b/src/pydvl/__init__.py index 43c4ab005..3b96cbea6 100644 --- a/src/pydvl/__init__.py +++ b/src/pydvl/__init__.py @@ -1 +1,10 @@ -__version__ = "0.6.1" +""" +# The Python Data Valuation Library API + +This is the API documentation for the Python Data Valuation Library (PyDVL). +Use the table of contents to access the documentation for each module. + +The two main modules you will want to look at are [value][pydvl.value] and +[influence][pydvl.influence]. +""" +__version__ = "0.7.0" diff --git a/src/pydvl/influence/__init__.py b/src/pydvl/influence/__init__.py index 37f1ff9cf..b7604fd74 100644 --- a/src/pydvl/influence/__init__.py +++ b/src/pydvl/influence/__init__.py @@ -1,10 +1,9 @@ """ This package contains algorithms for the computation of the influence function. -.. warning:: - Much of the code in this package is experimental or untested and is subject - to modification. In particular, the package structure and basic API will - probably change. +> **Warning:** Much of the code in this package is experimental or untested and is subject to modification. +In particular, the package structure and basic API will probably change. """ -from .general import * +from .general import InfluenceType, compute_influence_factors, compute_influences +from .inversion import InversionMethod diff --git a/src/pydvl/influence/conjugate_gradient.py b/src/pydvl/influence/conjugate_gradient.py deleted file mode 100644 index b4839dc6c..000000000 --- a/src/pydvl/influence/conjugate_gradient.py +++ /dev/null @@ -1,228 +0,0 @@ -""" -Contains - -- batched conjugate gradient. -- error bound for conjugate gradient. -""" -import logging -import warnings -from typing import TYPE_CHECKING, Callable, Optional, Tuple, Union - -import numpy as np -from scipy.sparse.linalg import cg - -from ..utils import maybe_progress -from .types import MatrixVectorProduct - -if TYPE_CHECKING: - from numpy.typing import NDArray - -__all__ = ["conjugate_gradient", "batched_preconditioned_conjugate_gradient"] - -logger = logging.getLogger(__name__) - - -def conjugate_gradient( - A: "NDArray[np.float_]", batch_y: "NDArray[np.float_]", progress: bool = False -) -> "NDArray[np.float_]": - """ - Given a matrix and a batch of vectors, it uses conjugate gradient to calculate the solution - to Ax = y for each y in batch_y. - - :param A: a real, symmetric and positive-definite matrix of shape [NxN] - :param batch_y: a matrix of shape [NxP], with P the size of the batch. - :param progress: True, iff progress shall be printed. - - :return: A NDArray of shape [NxP] representing x, the solution of Ax=b. - """ - batch_cg = [] - for y in maybe_progress(batch_y, progress, desc="Conjugate gradient"): - y_cg, _ = cg(A, y) - batch_cg.append(y_cg) - return np.asarray(batch_cg) - - -def batched_preconditioned_conjugate_gradient( - A: Union["NDArray", Callable[["NDArray"], "NDArray"]], - b: "NDArray", - x0: Optional["NDArray"] = None, - rtol: float = 1e-3, - max_iterations: int = 100, - max_step_size: Optional[float] = None, -) -> Tuple["NDArray", int]: - """ - Implementation of a batched conjugate gradient algorithm. It uses vector matrix products for efficient calculation. - On top of that, it constrains the maximum step size. - - See [1]_ for more details on the algorithm. - - See also [2]_ and [3]_. - - .. warning:: - - This function is experimental and unstable. Prefer using inversion_method='cg' - - :param A: A linear function f : R[k] -> R[k] representing a matrix vector product from dimension K to K or a matrix. \ - It has to be positive-definite v.T @ f(v) >= 0. - :param b: A NDArray of shape [K] representing the targeted result of the matrix multiplication Ax. - :param max_iterations: Maximum number of iterations to use in conjugate gradient. Default is 10 times K. - :param rtol: Relative tolerance of the residual with respect to the 2-norm of b. - :param max_step_size: Maximum step size along a gradient direction. Might be necessary for numerical stability. \ - See also max_iterations. Default is 10.0. - :param verify_assumptions: True, iff the matrix should be checked for positive-definiteness by a stochastic rule. - - :return: A NDArray of shape [K] representing the solution of Ax=b. - - .. note:: - .. [1] `Conjugate Gradient Method - Wikipedia `_. - .. [2] `SciPy's implementation of Conjugate Gradient `_. - .. [3] `Prof. Mert Pilanci., "Conjugate Gradient Method", Stanford University, 2022 `_. - """ - warnings.warn( - "This function is experimental and unstable. Prefer using inversion_method='cg'", - UserWarning, - ) - # wrap A into a function. - if not callable(A): - new_A = np.copy(A) - A = lambda v: v @ new_A.T # type: ignore - M = hvp_to_inv_diag_conditioner(A, d=b.shape[1]) - - k = A(b).shape[0] - if A(b).size == 0: - return b, 0 - - if b.ndim == 1: - b = b.reshape([1, -1]) - - if max_iterations is None: - max_iterations = 10 * k - - # start with residual - if x0 is not None: - x = np.copy(x0) - elif M is not None: - x = M(b) - else: - x = np.copy(b) - - r = b - A(x) - u = np.copy(r) - - if M is not None: - u = M(u) - - p = np.copy(b) - - if x.ndim == 1: - x = x.reshape([1, -1]) - - iteration = 0 - batch_dim = b.shape[0] - converged = np.zeros(batch_dim, dtype=bool) - atol = np.linalg.norm(b, axis=1) * rtol - - while iteration < max_iterations: - # remaining fields - iteration += 1 - not_yet_converged_indices = np.argwhere(np.logical_not(converged))[:, 0] - mvp = A(p)[not_yet_converged_indices] - p_dot_mvp = np.einsum("ia,ia->i", p[not_yet_converged_indices], mvp) - r_dot_u = np.einsum( - "ia,ia->i", r[not_yet_converged_indices], u[not_yet_converged_indices] - ) - alpha = r_dot_u / p_dot_mvp - if max_step_size is not None: - alpha = np.minimum(max_step_size, alpha) - - # update x and r - reshaped_alpha = alpha.reshape([-1, 1]) - x[not_yet_converged_indices] += reshaped_alpha * p[not_yet_converged_indices] - r[not_yet_converged_indices] -= reshaped_alpha * mvp - - # calculate next conjugate gradient - new_u = r - if M is not None: - new_u = M(new_u) - - new_u = new_u[not_yet_converged_indices] - new_r_dot_u = np.einsum("ia,ia->i", r[not_yet_converged_indices], new_u) - - if rtol is not None: - residual = np.linalg.norm( - A(x)[not_yet_converged_indices] - b[not_yet_converged_indices], - axis=1, - ) - converged[not_yet_converged_indices] = ( - residual <= atol[not_yet_converged_indices] - ) - - if np.all(converged): - break - - beta = new_r_dot_u / r_dot_u - p[not_yet_converged_indices] = ( - beta.reshape([-1, 1]) * p[not_yet_converged_indices] + new_u - ) - u[not_yet_converged_indices] = new_u - - if not np.all(converged): - percentage_converged = int(converged.sum() / len(converged)) * 100 - msg = ( - f"Converged vectors are only {percentage_converged}%. " - "Please increase max_iterations, decrease max_step_size " - "and make sure that A is positive definite" - " (e.g. through regularization)." - ) - warnings.warn(msg, RuntimeWarning) - return x, iteration - - -def conjugate_gradient_condition_number_based_error_bound( - A: "NDArray", n: int, x0: "NDArray", xt: "NDArray" -) -> float: - """ - Error bound for conjugate gradient based on the condition number of the weight matrix A. Used for testing purposes. - See also https://math.stackexchange.com/questions/382958/error-for-conjugate-gradient-method. Explicit of the weight - matrix is required. - :param A: Weight matrix of the matrix to be inverted. - :param n: Maximum number for executed iterations X in conjugate gradient. - :param x0: Initialization solution x0 of conjugate gradient. - :param xt: Final solution xt of conjugate gradient after X iterations. - :returns: Upper bound for ||x0 - xt||_A. - """ - eigvals = np.linalg.eigvals(A) - eigvals = np.sort(eigvals) - eig_val_max = np.max(eigvals) - eig_val_min = np.min(eigvals) - kappa = np.abs(eig_val_max / eig_val_min) - norm_A = lambda v: np.sqrt(np.einsum("ia,ab,ib->i", v, A, v)) - error_init: float = norm_A(xt - x0) - - sqrt_kappa = np.sqrt(kappa) - div = (sqrt_kappa + 1) / (sqrt_kappa - 1) - div_n = div**n - return (2 * error_init) / (div_n + 1 / div_n) # type: ignore - - -def hvp_to_inv_diag_conditioner( - hvp: MatrixVectorProduct, d: int -) -> MatrixVectorProduct: - """ - This method uses the hvp function to construct a simple pre-conditioner 1/diag(H). It does so while requiring - only O(d) space in RAM for construction and later execution. - :param hvp: The callable calculating the Hessian vector product Hv. - :param d: The number of dimensions of the hvp callable. - :returns: A MatrixVectorProduct for the conditioner. - """ - diags = np.empty(d) - - for i in range(d): - inp = np.zeros(d) - inp[i] = 1 - diags[i] = hvp(np.reshape(inp, [1, -1]))[0, i] - - def _inv_diag_conditioner(v: "NDArray"): - return v / diags - - return _inv_diag_conditioner diff --git a/src/pydvl/influence/frameworks/__init__.py b/src/pydvl/influence/frameworks/__init__.py deleted file mode 100644 index b3059de2b..000000000 --- a/src/pydvl/influence/frameworks/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .torch_differentiable import * - -__all__ = [ - "TorchTwiceDifferentiable", -] diff --git a/src/pydvl/influence/frameworks/torch_differentiable.py b/src/pydvl/influence/frameworks/torch_differentiable.py deleted file mode 100644 index 8e3a370c3..000000000 --- a/src/pydvl/influence/frameworks/torch_differentiable.py +++ /dev/null @@ -1,177 +0,0 @@ -""" -Contains all parts of pyTorch based machine learning model. -""" -from typing import TYPE_CHECKING, Callable, Optional, Tuple, Union - -import numpy as np - -from ...utils import maybe_progress -from ..types import TwiceDifferentiable - -try: - import torch - import torch.nn as nn - from torch import autograd - from torch.autograd import Variable - - _TORCH_INSTALLED = True -except ImportError: - _TORCH_INSTALLED = False - -if TYPE_CHECKING: - from numpy.typing import NDArray - -__all__ = [ - "TorchTwiceDifferentiable", -] - - -def flatten_gradient(grad): - """ - Simple function to flatten a pyTorch gradient for use in subsequent calculation - """ - return torch.cat([el.reshape(-1) for el in grad]) - - -class TorchTwiceDifferentiable(TwiceDifferentiable): - """ - Calculates second-derivative matrix vector products (Mvp) of a pytorch torch.nn.Module - """ - - def __init__( - self, - model: "nn.Module", - loss: Callable[["torch.Tensor", "torch.Tensor"], "torch.Tensor"], - ): - """ - :param model: A torch.nn.Module representing a (differentiable) function f(x). - :param loss: Loss function L(f(x), y) maps a prediction and a target to a single value. - """ - if not _TORCH_INSTALLED: - raise RuntimeWarning("This function requires PyTorch.") - - self.model = model - self.loss = loss - - def num_params(self) -> int: - """ - Get number of parameters of model f. - :returns: Number of parameters as integer. - """ - model_parameters = filter(lambda p: p.requires_grad, self.model.parameters()) - return sum([np.prod(p.size()) for p in model_parameters]) - - def split_grad( - self, - x: Union["NDArray", "torch.Tensor"], - y: Union["NDArray", "torch.Tensor"], - progress: bool = False, - ) -> "NDArray": - """ - Calculates gradient of model parameters wrt each x[i] and y[i] and then - returns a array of size [N, P] with N number of points (length of x and y) and P - number of parameters of the model. - :param x: A np.ndarray [NxD] representing the features x_i. - :param y: A np.ndarray [NxK] representing the predicted target values y_i. - :param progress: True, iff progress shall be printed. - :returns: A np.ndarray [NxP] representing the gradients with respect to all parameters of the model. - """ - x = torch.as_tensor(x).unsqueeze(1) - y = torch.as_tensor(y) - - params = [ - param for param in self.model.parameters() if param.requires_grad == True - ] - - grads = [ - flatten_gradient( - autograd.grad( - self.loss( - torch.squeeze(self.model(x[i])), - torch.squeeze(y[i]), - ), - params, - ) - ) - .detach() - .numpy() - for i in maybe_progress( - range(len(x)), - progress, - desc="Split Gradient", - ) - ] - return np.stack(grads, axis=0) - - def grad( - self, - x: Union["NDArray", "torch.Tensor"], - y: Union["NDArray", "torch.Tensor"], - ) -> Tuple["NDArray", "torch.Tensor"]: - """ - Calculates gradient of model parameters wrt x and y. - :param x: A np.ndarray [NxD] representing the features x_i. - :param y: A np.ndarray [NxK] representing the predicted target values y_i. - :param progress: True, iff progress shall be printed. - :returns: A tuple where: \ - - first element is a np.ndarray [P] with the gradients of the model. \ - - second element is the input to the model as a grad parameters. \ - This can be used for further differentiation. - """ - x = torch.as_tensor(x).requires_grad_(True) - y = torch.as_tensor(y) - - params = [ - param for param in self.model.parameters() if param.requires_grad == True - ] - - loss_value = self.loss(torch.squeeze(self.model(x)), torch.squeeze(y)) - grad_f = torch.autograd.grad(loss_value, params, create_graph=True) - return flatten_gradient(grad_f), x - - def mvp( - self, - grad_xy: Union["NDArray", "torch.Tensor"], - v: Union["NDArray", "torch.Tensor"], - progress: bool = False, - backprop_on: Optional["torch.Tensor"] = None, - ) -> "NDArray": - """ - Calculates second order derivative of the model along directions v. - This second order derivative can be on the model parameters or on another input parameter, - selected via the backprop_on argument. - - :param grad_xy: an array [P] holding the gradients of the model parameters wrt input x and labels y, \ - where P is the number of parameters of the model. It is typically obtained through self.grad. - :param v: A np.ndarray [DxP] or a one dimensional np.array [D] which multiplies the Hessian, \ - where D is the number of directions. - :param progress: True, iff progress shall be printed. - :param backprop_on: tensor used in the second backpropagation (the first one is along x and y as defined \ - via grad_xy). If None, the model parameters are used. - :returns: A np.ndarray representing the implicit matrix vector product of the model along the given directions.\ - Output shape is [DxP] if backprop_on is None, otherwise [DxM], with M the number of elements of backprop_on. - """ - v = torch.as_tensor(v) - if v.ndim == 1: - v = v.unsqueeze(0) - - z = (grad_xy * Variable(v)).sum(dim=1) - params = [ - param for param in self.model.parameters() if param.requires_grad == True - ] - all_flattened_grads = [ - flatten_gradient( - autograd.grad( - z[i], - params if backprop_on is None else backprop_on, - retain_graph=True, - ) - ) - for i in maybe_progress( - range(len(z)), - progress, - desc="MVP", - ) - ] - hvp = torch.stack([grad.contiguous().view(-1) for grad in all_flattened_grads]) - return hvp.detach().numpy() # type: ignore diff --git a/src/pydvl/influence/general.py b/src/pydvl/influence/general.py index c7c7786de..a200b7f4e 100644 --- a/src/pydvl/influence/general.py +++ b/src/pydvl/influence/general.py @@ -1,227 +1,324 @@ """ -Contains parallelized influence calculation functions for general models. +This module contains influence calculation functions for general +models, as introduced in (Koh and Liang, 2017)[^1]. + +## References + +[^1]: Koh, P.W., Liang, P., 2017. + [Understanding Black-box Predictions via Influence Functions](https://proceedings.mlr.press/v70/koh17a.html). + In: Proceedings of the 34th International Conference on Machine Learning, pp. 1885–1894. PMLR. """ +import logging +from copy import deepcopy from enum import Enum -from typing import TYPE_CHECKING, Callable, Dict, Optional - -import numpy as np -from scipy.sparse.linalg import LinearOperator +from typing import Any, Callable, Dict, Generator, Optional, Type from ..utils import maybe_progress -from .conjugate_gradient import ( - batched_preconditioned_conjugate_gradient, - conjugate_gradient, +from .inversion import InversionMethod, solve_hvp +from .twice_differentiable import ( + DataLoaderType, + InverseHvpResult, + TensorType, + TensorUtilities, + TwiceDifferentiable, ) -from .frameworks import TorchTwiceDifferentiable -from .types import MatrixVectorProductInversionAlgorithm, TwiceDifferentiable - -try: - import torch - import torch.nn as nn - _TORCH_INSTALLED = True -except ImportError: - _TORCH_INSTALLED = False +__all__ = ["compute_influences", "InfluenceType", "compute_influence_factors"] -if TYPE_CHECKING: - from numpy.typing import NDArray +logger = logging.getLogger(__name__) -__all__ = ["compute_influences", "InfluenceType", "InversionMethod"] +class InfluenceType(str, Enum): + r""" + Enum representation for the types of influence. + Attributes: + Up: Up-weighting a training point, see section 2.1 of + (Koh and Liang, 2017)1 + Perturbation: Perturb a training point, see section 2.2 of + (Koh and Liang, 2017)1 -class InfluenceType(str, Enum): - """ - Different influence types. """ Up = "up" Perturbation = "perturbation" -class InversionMethod(str, Enum): - """ - Different inversion methods types. - """ +def compute_influence_factors( + model: TwiceDifferentiable, + training_data: DataLoaderType, + test_data: DataLoaderType, + inversion_method: InversionMethod, + *, + hessian_perturbation: float = 0.0, + progress: bool = False, + **kwargs: Any, +) -> InverseHvpResult: + r""" + Calculates influence factors of a model for training and test data. - Direct = "direct" - Cg = "cg" - BatchedCg = "batched_cg" + Given a test point \(z_{test} = (x_{test}, y_{test})\), a loss \(L(z_{test}, \theta)\) + (\(\theta\) being the parameters of the model) and the Hessian of the model \(H_{\theta}\), + influence factors are defined as: + \[ + s_{test} = H_{\theta}^{-1} \operatorname{grad}_{\theta} L(z_{test}, \theta). + \] + + They are used for efficient influence calculation. This method first (implicitly) calculates + the Hessian and then (explicitly) finds the influence factors for the model using the given + inversion method. The parameter `hessian_perturbation` is used to regularize the inversion of + the Hessian. For more info, refer to (Koh and Liang, 2017)1, paragraph 3. + + Args: + model: A model wrapped in the TwiceDifferentiable interface. + training_data: DataLoader containing the training data. + test_data: DataLoader containing the test data. + inversion_method: Name of method for computing inverse hessian vector products. + hessian_perturbation: Regularization of the hessian. + progress: If True, display progress bars. + + Returns: + array: An array of size (N, D) containing the influence factors for each dimension (D) and test sample (N). -def calculate_influence_factors( - model: TwiceDifferentiable, - x: "NDArray", - y: "NDArray", - x_test: "NDArray", - y_test: "NDArray", - inversion_func: MatrixVectorProductInversionAlgorithm, - lam: float = 0, - progress: bool = False, -) -> "NDArray": - """ - Calculates the influence factors. For more info, see https://arxiv.org/pdf/1703.04730.pdf, paragraph 3. - - :param model: A model which has to implement the TwiceDifferentiable interface. - :param x_train: A np.ndarray of shape [MxK] containing the features of the input data points. - :param y_train: A np.ndarray of shape [MxL] containing the targets of the input data points. - :param x_test: A np.ndarray of shape [NxK] containing the features of the test set of data points. - :param y_test: A np.ndarray of shape [NxL] containing the targets of the test set of data points. - :param inversion_func: function to use to invert the product of hvp (hessian vector product) and the gradient - of the loss (s_test in the paper). - :param lam: regularization of the hessian - :param progress: If True, display progress bars. - :returns: A np.ndarray of size (N, D) containing the influence factors for each dimension (D) and test sample (N). """ - if not _TORCH_INSTALLED: - raise RuntimeWarning("This function requires PyTorch.") - grad_xy, _ = model.grad(x, y) - hvp = lambda v: model.mvp(grad_xy, v) + lam * v - test_grads = model.split_grad(x_test, y_test, progress) - return inversion_func(hvp, test_grads) + + tensor_util: Type[TensorUtilities] = TensorUtilities.from_twice_differentiable( + model + ) + + stack = tensor_util.stack + unsqueeze = tensor_util.unsqueeze + cat_gen = tensor_util.cat_gen + cat = tensor_util.cat + + def test_grads() -> Generator[TensorType, None, None]: + for x_test, y_test in maybe_progress( + test_data, progress, desc="Batch Test Gradients" + ): + yield stack( + [ + model.grad(inpt, target) + for inpt, target in zip(unsqueeze(x_test, 1), y_test) + ] + ) # type:ignore + + try: + # if provided input_data implements __len__, pre-allocate the result tensor to reduce memory consumption + resulting_shape = (len(test_data), model.num_params) # type:ignore + rhs = cat_gen( + test_grads(), resulting_shape, model # type:ignore + ) # type:ignore + except Exception as e: + logger.warning( + f"Failed to pre-allocate result tensor: {e}\n" + f"Evaluate all resulting tensor and concatenate" + ) + rhs = cat(list(test_grads())) + + return solve_hvp( + inversion_method, + model, + training_data, + rhs, + hessian_perturbation=hessian_perturbation, + **kwargs, + ) -def _calculate_influences_up( +def compute_influences_up( model: TwiceDifferentiable, - x: "NDArray", - y: "NDArray", - influence_factors: "NDArray", + input_data: DataLoaderType, + influence_factors: TensorType, + *, progress: bool = False, -) -> "NDArray": - """ - Calculates the influence from the influence factors and the scores of the training points. - Uses the upweighting method, as described in section 2.1 of https://arxiv.org/pdf/1703.04730.pdf - - :param model: A model which has to implement the TwiceDifferentiable interface. - :param x_train: A np.ndarray of shape [MxK] containing the features of the input data points. - :param y_train: A np.ndarray of shape [MxL] containing the targets of the input data points. - :param influence_factors: np.ndarray containing influence factors - :param progress: If True, display progress bars. - :returns: A np.ndarray of size [NxM], where N is number of test points and M number of train points. +) -> TensorType: + r""" + Given the model, the training points, and the influence factors, this function calculates the + influences using the up-weighting method. + + The procedure involves two main steps: + 1. Calculating the gradients of the model with respect to each training sample + (\(\operatorname{grad}_{\theta} L\), where \(L\) is the loss of a single point and \(\theta\) are the + parameters of the model). + 2. Multiplying each gradient with the influence factors. + + For a detailed description of the methodology, see section 2.1 of (Koh and Liang, 2017)1. + + Args: + model: A model that implements the TwiceDifferentiable interface. + input_data: DataLoader containing the samples for which the influence will be calculated. + influence_factors: Array containing pre-computed influence factors. + progress: If set to True, progress bars will be displayed during computation. + + Returns: + An array of shape [NxM], where N is the number of influence factors, and M is the number of input samples. """ - train_grads = model.split_grad(x, y, progress) - return np.einsum("ta,va->tv", influence_factors, train_grads) # type: ignore + tensor_util: Type[TensorUtilities] = TensorUtilities.from_twice_differentiable( + model + ) + + stack = tensor_util.stack + unsqueeze = tensor_util.unsqueeze + cat_gen = tensor_util.cat_gen + cat = tensor_util.cat + einsum = tensor_util.einsum + + def train_grads() -> Generator[TensorType, None, None]: + for x, y in maybe_progress( + input_data, progress, desc="Batch Split Input Gradients" + ): + yield stack( + [model.grad(inpt, target) for inpt, target in zip(unsqueeze(x, 1), y)] + ) # type:ignore + + try: + # if provided input_data implements __len__, pre-allocate the result tensor to reduce memory consumption + resulting_shape = (len(input_data), model.num_params) # type:ignore + train_grad_tensor = cat_gen( + train_grads(), resulting_shape, model # type:ignore + ) # type:ignore + except Exception as e: + logger.warning( + f"Failed to pre-allocate result tensor: {e}\n" + f"Evaluate all resulting tensor and concatenate" + ) + train_grad_tensor = cat([x for x in train_grads()]) # type:ignore + + return einsum("ta,va->tv", influence_factors, train_grad_tensor) # type:ignore -def _calculate_influences_pert( + +def compute_influences_pert( model: TwiceDifferentiable, - x: "NDArray", - y: "NDArray", - influence_factors: "NDArray", + input_data: DataLoaderType, + influence_factors: TensorType, + *, progress: bool = False, -) -> "NDArray": - """ - Calculates the influence from the influence factors and the scores of the training points. - Uses the perturbation method, as described in section 2.2 of https://arxiv.org/pdf/1703.04730.pdf - - :param model: A model which has to implement the TwiceDifferentiable interface. - :param x_train: A np.ndarray of shape [MxK] containing the features of the input data points. - :param y_train: A np.ndarray of shape [MxL] containing the targets of the input data points. - :param influence_factors: np.ndarray containing influence factors - :param progress: If True, display progress bars. - :returns: A np.ndarray of size [NxMxP], where N is number of test points, M number of train points, - and P the number of features. +) -> TensorType: + r""" + Calculates the influence values based on the influence factors and training samples using the perturbation method. + + The process involves two main steps: + 1. Calculating the gradient of the model with respect to each training sample + (\(\operatorname{grad}_{\theta} L\), where \(L\) is the loss of the model for a single data point and \(\theta\) + are the parameters of the model). + 2. Using the method [TwiceDifferentiable.mvp][pydvl.influence.twice_differentiable.TwiceDifferentiable.mvp] + to efficiently compute the product of the + influence factors and \(\operatorname{grad}_x \operatorname{grad}_{\theta} L\). + + For a detailed methodology, see section 2.2 of (Koh and Liang, 2017)1. + + Args: + model: A model that implements the TwiceDifferentiable interface. + input_data: DataLoader containing the samples for which the influence will be calculated. + influence_factors: Array containing pre-computed influence factors. + progress: If set to True, progress bars will be displayed during computation. + + Returns: + A 3D array with shape [NxMxP], where N is the number of influence factors, + M is the number of input samples, and P is the number of features. """ + + tensor_util: Type[TensorUtilities] = TensorUtilities.from_twice_differentiable( + model + ) + stack = tensor_util.stack + tu_slice = tensor_util.slice + reshape = tensor_util.reshape + get_element = tensor_util.get_element + shape = tensor_util.shape + all_pert_influences = [] - for i in maybe_progress( - len(x), + for x, y in maybe_progress( + input_data, progress, - desc="Influence Perturbation", + desc="Batch Influence Perturbation", ): - grad_xy, tensor_x = model.grad(x[i : i + 1], y[i]) - perturbation_influences = model.mvp( - grad_xy, - influence_factors, - backprop_on=tensor_x, - ) - all_pert_influences.append(perturbation_influences.reshape((-1, *x[i].shape))) + for i in range(len(x)): + tensor_x = tu_slice(x, i, i + 1) + grad_xy = model.grad(tensor_x, get_element(y, i), create_graph=True) + perturbation_influences = model.mvp( + grad_xy, + influence_factors, + backprop_on=tensor_x, + ) + all_pert_influences.append( + reshape(perturbation_influences, (-1, *shape(get_element(x, i)))) + ) - return np.stack(all_pert_influences, axis=1) + return stack(all_pert_influences, axis=1) # type:ignore -influence_type_function_dict = { - "up": _calculate_influences_up, - "perturbation": _calculate_influences_pert, +influence_type_registry: Dict[InfluenceType, Callable[..., TensorType]] = { + InfluenceType.Up: compute_influences_up, + InfluenceType.Perturbation: compute_influences_pert, } def compute_influences( - model: "nn.Module", - loss: Callable[["torch.Tensor", "torch.Tensor"], "torch.Tensor"], - x: "NDArray", - y: "NDArray", - x_test: "NDArray", - y_test: "NDArray", - progress: bool = False, + differentiable_model: TwiceDifferentiable, + training_data: DataLoaderType, + *, + test_data: Optional[DataLoaderType] = None, + input_data: Optional[DataLoaderType] = None, inversion_method: InversionMethod = InversionMethod.Direct, influence_type: InfluenceType = InfluenceType.Up, - inversion_method_kwargs: Optional[Dict] = None, - hessian_regularization: float = 0, -) -> "NDArray": - """ - Calculates the influence of the training points j on the test points i. First it calculates - the influence factors for all test points with respect to the training points, and then uses them to - get the influences over the complete training set. Points with low influence values are (on average) - less important for model training than points with high influences. - - :param model: A supervised model from a supported framework. Currently, only pytorch nn.Module is supported. - :param loss: loss of the model, a callable that, given prediction of the model and real labels, returns a - tensor with the loss value. - :param x: model input for training - :param y: input labels - :param x_test: model input for testing - :param y_test: test labels - :param progress: whether to display progress bars. - :param inversion_method: Set the inversion method to a specific one, can be 'direct' for direct inversion - (and explicit construction of the Hessian) or 'cg' for conjugate gradient. - :param influence_type: Which algorithm to use to calculate influences. - Currently supported options: 'up' or 'perturbation'. For details refer to https://arxiv.org/pdf/1703.04730.pdf - :param inversion_method_kwargs: kwargs for the inversion method selected. - If using the direct method no kwargs are needed. If inversion_method='cg', the following kwargs can be passed: - - rtol: relative tolerance to be achieved before terminating computation - - max_iterations: maximum conjugate gradient iterations - - max_step_size: step size of conjugate gradient - - verify_assumptions: True to run tests on convexity of the model. - :param hessian_regularization: lambda to use in Hessian regularization, i.e. H_reg = H + lambda * 1, with 1 the identity matrix \ - and H the (simple and regularized) Hessian. Typically used with more complex models to make sure the Hessian \ - is positive definite. - :returns: A np.ndarray specifying the influences. Shape is [NxM] if influence_type is'up', where N is number of test points and - M number of train points. If instead influence_type is 'perturbation', output shape is [NxMxP], with P the number of input - features. + hessian_regularization: float = 0.0, + progress: bool = False, + **kwargs: Any, +) -> TensorType: # type: ignore # ToDO fix typing + r""" + Calculates the influence of each input data point on the specified test points. + + This method operates in two primary stages: + 1. Computes the influence factors for all test points concerning the model and its training data. + 2. Uses these factors to derive the influences over the complete set of input data. + + The influence calculation relies on the twice-differentiable nature of the provided model. + + Args: + differentiable_model: A model bundled with its corresponding loss in the `TwiceDifferentiable` wrapper. + training_data: DataLoader instance supplying the training data. This data is pivotal in computing the + Hessian matrix for the model's loss. + test_data: DataLoader instance with the test samples. Defaults to `training_data` if None. + input_data: DataLoader instance holding samples whose influences need to be computed. Defaults to + `training_data` if None. + inversion_method: An enumeration value determining the approach for inverting matrices + or computing inverse operations, see [.inversion.InversionMethod] + progress: A boolean indicating whether progress bars should be displayed during computation. + influence_type: Determines the methodology for computing influences. + Valid choices include 'up' (for up-weighting) and 'perturbation'. + For an in-depth understanding, see (Koh and Liang, 2017)1. + hessian_regularization: A lambda value used in Hessian regularization. The regularized Hessian, \( H_{reg} \), + is computed as \( H + \lambda \times I \), where \( I \) is the identity matrix and \( H \) + is the simple, unmodified Hessian. This regularization is typically utilized for more + sophisticated models to ensure that the Hessian remains positive definite. + + Returns: + The shape of this array varies based on the `influence_type`. If 'up', the shape is [NxM], where + N denotes the number of test points and M denotes the number of training points. Conversely, if the + influence_type is 'perturbation', the shape is [NxMxP], with P representing the number of input features. """ - if not _TORCH_INSTALLED: - raise RuntimeWarning("This function requires PyTorch.") - - if inversion_method_kwargs is None: - inversion_method_kwargs = dict() - differentiable_model = TorchTwiceDifferentiable(model, loss) - n_params = differentiable_model.num_params() - dict_fact_algos: Dict[Optional[str], MatrixVectorProductInversionAlgorithm] = { - "direct": lambda hvp, x: np.linalg.solve(hvp(np.eye(n_params)), x.T).T, # type: ignore - "cg": lambda hvp, x: conjugate_gradient(LinearOperator((n_params, n_params), matvec=hvp), x, progress), # type: ignore - "batched_cg": lambda hvp, x: batched_preconditioned_conjugate_gradient( # type: ignore - hvp, x, **inversion_method_kwargs - )[ - 0 - ], - } - - influence_factors = calculate_influence_factors( + + if input_data is None: + input_data = deepcopy(training_data) + if test_data is None: + test_data = deepcopy(training_data) + + influence_factors, _ = compute_influence_factors( differentiable_model, - x, - y, - x_test, - y_test, - dict_fact_algos[inversion_method], - lam=hessian_regularization, + training_data, + test_data, + inversion_method, + hessian_perturbation=hessian_regularization, progress=progress, + **kwargs, ) - influence_function = influence_type_function_dict[influence_type] - return influence_function( + return influence_type_registry[influence_type]( differentiable_model, - x, - y, + input_data, influence_factors, - progress, + progress=progress, ) diff --git a/src/pydvl/influence/inversion.py b/src/pydvl/influence/inversion.py new file mode 100644 index 000000000..1eb26e957 --- /dev/null +++ b/src/pydvl/influence/inversion.py @@ -0,0 +1,205 @@ +"""Contains methods to invert the hessian vector product. +""" +import functools +import inspect +import logging +import warnings +from enum import Enum +from typing import Any, Callable, Dict, Tuple, Type + +__all__ = [ + "solve_hvp", + "InversionMethod", + "InversionRegistry", +] + +from .twice_differentiable import ( + DataLoaderType, + InverseHvpResult, + TensorType, + TwiceDifferentiable, +) + +logger = logging.getLogger(__name__) + + +class InversionMethod(str, Enum): + """ + Different inversion methods types. + """ + + Direct = "direct" + Cg = "cg" + Lissa = "lissa" + Arnoldi = "arnoldi" + + +def solve_hvp( + inversion_method: InversionMethod, + model: TwiceDifferentiable, + training_data: DataLoaderType, + b: TensorType, + *, + hessian_perturbation: float = 0.0, + **kwargs: Any, +) -> InverseHvpResult: + r""" + Finds \( x \) such that \( Ax = b \), where \( A \) is the hessian of the model, + and \( b \) a vector. Depending on the inversion method, the hessian is either + calculated directly and then inverted, or implicitly and then inverted through + matrix vector product. The method also allows to add a small regularization term + (hessian_perturbation) to facilitate inversion of non fully trained models. + + Args: + inversion_method: + model: A model wrapped in the TwiceDifferentiable interface. + training_data: + b: Array as the right hand side of the equation \( Ax = b \) + hessian_perturbation: regularization of the hessian. + kwargs: kwargs to pass to the inversion method. + + Returns: + Instance of [InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult], with + an array that solves the inverse problem, i.e., it returns \( x \) such that \( Ax = b \) + and a dictionary containing information about the inversion process. + """ + + return InversionRegistry.call( + inversion_method, + model, + training_data, + b, + hessian_perturbation=hessian_perturbation, + **kwargs, + ) + + +class InversionRegistry: + """ + A registry to hold inversion methods for different models. + """ + + registry: Dict[Tuple[Type[TwiceDifferentiable], InversionMethod], Callable] = {} + + @classmethod + def register( + cls, + model_type: Type[TwiceDifferentiable], + inversion_method: InversionMethod, + overwrite: bool = False, + ): + """ + Register a function for a specific model type and inversion method. + + The function to be registered must conform to the following signature: + `(model: TwiceDifferentiable, training_data: DataLoaderType, b: TensorType, + hessian_perturbation: float = 0.0, ...)`. + + Args: + model_type: The type of the model the function should be registered for. + inversion_method: The inversion method the function should be + registered for. + overwrite: If ``True``, allows overwriting of an existing registered + function for the same model type and inversion method. If ``False``, + logs a warning when attempting to register a function for an already + registered model type and inversion method. + + Raises: + TypeError: If the provided model_type or inversion_method are of the wrong type. + ValueError: If the function to be registered does not match the required signature. + + Returns: + A decorator for registering a function. + """ + + if not isinstance(model_type, type): + raise TypeError( + f"'model_type' is of type {type(model_type)} but should be a Type[TwiceDifferentiable]" + ) + + if not isinstance(inversion_method, InversionMethod): + raise TypeError( + f"'inversion_method' must be an 'InversionMethod' " + f"but has type {type(inversion_method)} instead." + ) + + key = (model_type, inversion_method) + + def decorator(func): + if not overwrite and key in cls.registry: + warnings.warn( + f"There is already a function registered for model type {model_type} " + f"and inversion method {inversion_method}. " + f"To overwrite the existing function {cls.registry.get(key)} with {func}, set overwrite to True." + ) + sig = inspect.signature(func) + params = list(sig.parameters.values()) + + expected_args = [ + ("model", model_type), + ("training_data", DataLoaderType.__bound__), + ("b", model_type.tensor_type()), + ("hessian_perturbation", float), + ] + + for (name, typ), param in zip(expected_args, params): + if not ( + isinstance(param.annotation, typ) + or issubclass(param.annotation, typ) + ): + raise ValueError( + f'Parameter "{name}" must be of type "{typ.__name__}"' + ) + + @functools.wraps(func) + def wrapper(*args, **kwargs): + return func(*args, **kwargs) + + cls.registry[key] = wrapper + return wrapper + + return decorator + + @classmethod + def get( + cls, model_type: Type[TwiceDifferentiable], inversion_method: InversionMethod + ) -> Callable[ + [TwiceDifferentiable, DataLoaderType, TensorType, float], InverseHvpResult + ]: + key = (model_type, inversion_method) + method = cls.registry.get(key, None) + if method is None: + raise ValueError(f"No function registered for {key}") + return method + + @classmethod + def call( + cls, + inversion_method: InversionMethod, + model: TwiceDifferentiable, + training_data: DataLoaderType, + b: TensorType, + hessian_perturbation, + **kwargs, + ) -> InverseHvpResult: + r""" + Call a registered function with the provided parameters. + + Args: + inversion_method: The inversion method to use. + model: A model wrapped in the TwiceDifferentiable interface. + training_data: The training data to use. + b: Array as the right hand side of the equation \(Ax = b\). + hessian_perturbation: Regularization of the hessian. + kwargs: Additional keyword arguments to pass to the inversion method. + + Returns: + An instance of [InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult], + that contains an array, which solves the inverse problem, + i.e. it returns \(x\) such that \(Ax = b\), and a dictionary containing information + about the inversion process. + """ + + return cls.get(type(model), inversion_method)( + model, training_data, b, hessian_perturbation, **kwargs + ) diff --git a/src/pydvl/influence/linear.py b/src/pydvl/influence/linear.py deleted file mode 100644 index 5725c17f9..000000000 --- a/src/pydvl/influence/linear.py +++ /dev/null @@ -1,167 +0,0 @@ -""" -This module contains all functions for the closed form computation of influences -for standard linear regression. -""" -from typing import TYPE_CHECKING, Tuple - -import numpy as np -from sklearn.linear_model import LinearRegression - -from ..utils.numeric import ( - linear_regression_analytical_derivative_d2_theta, - linear_regression_analytical_derivative_d_theta, - linear_regression_analytical_derivative_d_x_d_theta, -) -from .general import InfluenceType - -if TYPE_CHECKING: - from numpy.typing import NDArray - -__all__ = ["compute_linear_influences"] - - -def compute_linear_influences( - x: "NDArray", - y: "NDArray", - x_test: "NDArray", - y_test: "NDArray", - influence_type: InfluenceType = InfluenceType.Up, -): - """Calculate the influence each training sample on the loss computed over a - validation set for an ordinary least squares model ($y = A x + b$ with - quadratic loss). - - :param x: An array of shape (M, K) containing the features of training data. - :param y: An array of shape (M, L) containing the targets of training data. - :param x_test: An array of shape (N, K) containing the features of the - test set. - :param y_test: An array of shape (N, L) containing the targets of the test - set. - :param influence_type: Which algorithm to use to calculate influences. - Currently supported options: 'up' or 'perturbation'. - :returns: An array of shape (B, C) with the influences of the training - points on the test data. - """ - - lr = LinearRegression() - lr.fit(x, y) - A = lr.coef_ - b = lr.intercept_ - - if influence_type not in list(InfluenceType): - raise NotImplementedError( - f"Only up-weighting and perturbation influences are supported, but got {influence_type=}" - ) - - if influence_type == InfluenceType.Up: - return influences_up_linear_regression_analytical( - (A, b), - x, - y, - x_test, - y_test, - ) - elif influence_type == InfluenceType.Perturbation: - return influences_perturbation_linear_regression_analytical( - (A, b), - x, - y, - x_test, - y_test, - ) - - -def influences_up_linear_regression_analytical( - linear_model: Tuple["NDArray", "NDArray"], - x: "NDArray", - y: "NDArray", - x_test: "NDArray", - y_test: "NDArray", -): - """Calculate the influence each training sample on the loss computed over a - validation set for an ordinary least squares model (Ax+b=y with quadratic - loss). - - This method uses the - - :param linear_model: A tuple of arrays of shapes (N, M) and N representing A - and b respectively. - :param x: An array of shape (M, K) containing the features of the - training set. - :param y: An array of shape (M, L) containing the targets of the - training set. - :param x_test: An array of shape (N, K) containing the features of the test - set. - :param y_test: An array of shape (N, L) containing the targets of the test - set. - :returns: An array of shape (B, C) with the influences of the training points - on the test points. - """ - - test_grads_analytical = linear_regression_analytical_derivative_d_theta( - linear_model, - x_test, - y_test, - ) - train_grads_analytical = linear_regression_analytical_derivative_d_theta( - linear_model, - x, - y, - ) - hessian_analytical = linear_regression_analytical_derivative_d2_theta( - linear_model, - x, - y, - ) - s_test_analytical = np.linalg.solve(hessian_analytical, test_grads_analytical.T).T - result: "NDArray" = np.einsum( - "ia,ja->ij", s_test_analytical, train_grads_analytical - ) - return result - - -def influences_perturbation_linear_regression_analytical( - linear_model: Tuple["NDArray", "NDArray"], - x: "NDArray", - y: "NDArray", - x_test: "NDArray", - y_test: "NDArray", -): - """Calculate the influences of each training sample onto the - validation set for a linear model Ax+b=y. - - :param linear_model: A tuple of np.ndarray' of shape (N, M) and (N) - representing A and b respectively. - :param x: An array of shape (M, K) containing the features of the - input data. - :param y: An array of shape (M, L) containing the targets of the input - data. - :param x_test: An array of shape (N, K) containing the features of the test - set. - :param y_test: An array of shape (N, L) containing the targets of the test - set. - :returns: An array of shape (B, C, M) with the influences of the training - points on the test points for each feature. - """ - - test_grads_analytical = linear_regression_analytical_derivative_d_theta( - linear_model, - x_test, - y_test, - ) - train_second_deriv_analytical = linear_regression_analytical_derivative_d_x_d_theta( - linear_model, - x, - y, - ) - - hessian_analytical = linear_regression_analytical_derivative_d2_theta( - linear_model, - x, - y, - ) - s_test_analytical = np.linalg.solve(hessian_analytical, test_grads_analytical.T).T - result: "NDArray" = np.einsum( - "ia,jab->ijb", s_test_analytical, train_second_deriv_analytical - ) - return result diff --git a/src/pydvl/influence/model_wrappers/__init__.py b/src/pydvl/influence/model_wrappers/__init__.py deleted file mode 100644 index 4397c4664..000000000 --- a/src/pydvl/influence/model_wrappers/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .torch_wrappers import * - -__all__ = [ - "TorchLinearRegression", - "TorchBinaryLogisticRegression", - "TorchMLP", -] diff --git a/src/pydvl/influence/model_wrappers/torch_wrappers.py b/src/pydvl/influence/model_wrappers/torch_wrappers.py deleted file mode 100644 index 6aba15b16..000000000 --- a/src/pydvl/influence/model_wrappers/torch_wrappers.py +++ /dev/null @@ -1,280 +0,0 @@ -import logging -from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, Any, Callable, List, Optional, Tuple, Union - -import numpy as np - -from ...utils import maybe_progress - -try: - import torch - import torch.nn as nn - from torch.nn import Softmax, Tanh - from torch.optim import Optimizer - from torch.optim.lr_scheduler import _LRScheduler - from torch.utils.data import DataLoader, TensorDataset - - _TORCH_INSTALLED = True -except ImportError: - _TORCH_INSTALLED = False - -if TYPE_CHECKING: - from numpy.typing import NDArray - -__all__ = [ - "TorchLinearRegression", - "TorchBinaryLogisticRegression", - "TorchMLP", - "TorchModel", -] - -logger = logging.getLogger(__name__) - - -class TorchModelBase(ABC): - def __init__(self): - if not _TORCH_INSTALLED: - raise RuntimeWarning("This function requires PyTorch.") - - @abstractmethod - def forward(self, x: torch.Tensor) -> torch.Tensor: - pass - - def fit( - self, - x_train: Union["NDArray[np.float_]", torch.tensor], - y_train: Union["NDArray[np.float_]", torch.tensor], - x_val: Union["NDArray[np.float_]", torch.tensor], - y_val: Union["NDArray[np.float_]", torch.tensor], - loss: Callable[[torch.Tensor, torch.Tensor], torch.Tensor], - optimizer: Optimizer, - scheduler: Optional[_LRScheduler] = None, - num_epochs: int = 1, - batch_size: int = 64, - progress: bool = True, - ) -> Tuple["NDArray[np.float_]", "NDArray[np.float_]"]: - """ - Wrapper of pytorch fit method. It fits the model to the supplied data. - It represents a simple machine learning loop, iterating over a number of - epochs, sampling data with a certain batch size, calculating gradients and updating the parameters through a - loss function. - :param x: Matrix of shape [NxD] representing the features x_i. - :param y: Matrix of shape [NxK] representing the prediction targets y_i. - :param optimizer: Select either ADAM or ADAM_W. - :param scheduler: A pytorch scheduler. If None, no scheduler is used. - :param num_epochs: Number of epochs to repeat training. - :param batch_size: Batch size to use in training. - :param progress: True, iff progress shall be printed. - :param tensor_type: accuracy of tensors. Typically 'float' or 'long' - """ - x_train = torch.as_tensor(x_train).clone() - y_train = torch.as_tensor(y_train).clone() - x_val = torch.as_tensor(x_val).clone() - y_val = torch.as_tensor(y_val).clone() - - dataset = TensorDataset(x_train, y_train) - dataloader = DataLoader(dataset, batch_size=batch_size) - train_loss = [] - val_loss = [] - - for epoch in maybe_progress(range(num_epochs), progress, desc="Model fitting"): - batch_loss = [] - for train_batch in dataloader: - batch_x, batch_y = train_batch - pred_y = self.forward(batch_x) - loss_value = loss(torch.squeeze(pred_y), torch.squeeze(batch_y)) - batch_loss.append(loss_value.item()) - - logger.debug(f"Epoch: {epoch} ---> Training loss: {loss_value.item()}") - loss_value.backward() - optimizer.step() - optimizer.zero_grad() - - if scheduler: - scheduler.step() - pred_val = self.forward(x_val) - epoch_val_loss = loss(torch.squeeze(pred_val), torch.squeeze(y_val)).item() - mean_epoch_train_loss = np.mean(batch_loss) - val_loss.append(epoch_val_loss) - train_loss.append(mean_epoch_train_loss) - logger.info( - f"Epoch: {epoch} ---> Training loss: {mean_epoch_train_loss}, Validation loss: {epoch_val_loss}" - ) - return np.array(train_loss), np.array(val_loss) - - def predict(self, x: torch.Tensor) -> "NDArray[np.float_]": - """ - Use internal model to deliver prediction in numpy. - :param x: A np.ndarray [NxD] representing the features x_i. - :returns: A np.ndarray [NxK] representing the predicted values. - """ - return self.forward(x).detach().numpy() # type: ignore - - def score( - self, - x: torch.Tensor, - y: torch.Tensor, - score: Callable[[torch.Tensor, torch.Tensor, Any], torch.Tensor], - ) -> float: - """ - Use internal model to measure how good is prediction through a loss function. - :param x: A np.ndarray [NxD] representing the features x_i. - :param y: A np.ndarray [NxK] representing the predicted target values y_i. - :returns: The aggregated value over all samples N. - """ - return score(self.forward(x), y).detach().numpy() # type: ignore - - -class TorchModel(TorchModelBase): - def __init__(self, model: nn.Module): - self.model = model - - def forward(self, x: torch.Tensor) -> torch.Tensor: - return self.model(x) - - def __call__(self, *args, **kwargs): - return self.model(*args, **kwargs) - - -class TorchLinearRegression(nn.Module, TorchModelBase): - """ - A simple linear regression model (with bias) f(x)=Ax+b. - """ - - def __init__( - self, - n_input: int, - n_output: int, - init: Tuple["NDArray[np.float_]", "NDArray[np.float_]"] = None, - ): - """ - :param n_input: input to the model. - :param n_output: output of the model - :param init A tuple with two matrices, namely A of shape [K, D] and b of shape [K]. If set to None Xavier - uniform initialization is used. - """ - super().__init__() - self.n_input = n_input - self.n_output = n_output - if init is None: - r = np.sqrt(6 / (n_input + n_output)) - init_A = np.random.uniform(-r, r, size=[n_output, n_input]) - init_b = np.zeros(n_output) - init = (init_A, init_b) - - self.A = nn.Parameter( - torch.tensor(init[0], dtype=torch.float64), requires_grad=True - ) - self.b = nn.Parameter( - torch.tensor(init[1], dtype=torch.float64), requires_grad=True - ) - - def forward(self, x: torch.Tensor) -> torch.Tensor: - """ - Calculate A @ x + b using RAM-optimized calculation layout. - :param x: Tensor [NxD] representing the features x_i. - :returns A tensor [NxK] representing the outputs y_i. - """ - return x @ self.A.T + self.b - - -class TorchBinaryLogisticRegression(nn.Module, TorchModelBase): - """ - A simple binary logistic regression model p(y)=sigmoid(dot(a, x) + b). - """ - - def __init__( - self, - n_input: int, - init: Tuple["NDArray[np.float_]", "NDArray[np.float_]"] = None, - ): - """ - :param n_input: Number of feature inputs to the BinaryLogisticRegressionModel. - :param init A tuple representing the initialization for the weight matrix A and the bias b. If set to None - sample the values uniformly using the Xavier rule. - """ - super().__init__() - self.n_input = n_input - if init is None: - init_A = np.random.normal(0, 0.02, size=(1, n_input)) - init_b = np.random.normal(0, 0.02, size=(1)) - init = (init_A, init_b) - - self.A = nn.Parameter(torch.tensor(init[0]), requires_grad=True) - self.b = nn.Parameter(torch.tensor(init[1]), requires_grad=True) - - def forward(self, x: Union["NDArray[np.float_]", torch.Tensor]) -> torch.Tensor: - """ - Calculate sigmoid(dot(a, x) + b) using RAM-optimized calculation layout. - :param x: Tensor [NxD] representing the features x_i. - :returns: A tensor [N] representing the probabilities for p(y_i). - """ - x = torch.as_tensor(x) - return torch.sigmoid(x @ self.A.T + self.b) - - -class TorchMLP(nn.Module, TorchModelBase): - """ - A simple fully-connected neural network f(x) model defined by y = v_K, v_i = o(A v_(i-1) + b), v_1 = x. It contains - K layers and K - 2 hidden layers. It holds that K >= 2, because every network contains a input and output. - """ - - def __init__( - self, - n_input: int, - n_output: int, - n_neurons_per_layer: List[int], - output_probabilities: bool = True, - init: List[Tuple["NDArray[np.float_]", "NDArray[np.float_]"]] = None, - ): - """ - :param n_input: Number of feature in input. - :param n_output: Output length. - :param n_neurons_per_layer: Each integer represents the size of a hidden layer. Overall this list has K - 2 - :param output_probabilities: True, if the model should output probabilities. In the case of n_output 2 the - number of outputs reduce to 1. - :param init: A list of tuple of np.ndarray representing the internal weights. - """ - super().__init__() - self.n_input = n_input - self.n_output = 1 if output_probabilities and n_output == 2 else n_output - - self.n_hidden_layers = n_neurons_per_layer - self.output_probabilities = output_probabilities - - all_dimensions = [self.n_input] + self.n_hidden_layers + [self.n_output] - layers = [] - num_layers = len(all_dimensions) - 1 - for num_layer, (in_features, out_features) in enumerate( - zip(all_dimensions[:-1], all_dimensions[1:]) - ): - linear_layer = nn.Linear( - in_features, out_features, bias=num_layer < len(all_dimensions) - 2 - ) - - if init is None: - torch.nn.init.xavier_uniform_(linear_layer.weight) - if num_layer < len(all_dimensions) - 2: - linear_layer.bias.data.fill_(0.01) - - else: - A, b = init[num_layer] - linear_layer.weight.data = A - if num_layer < len(all_dimensions) - 2: - linear_layer.bias.data = b - - layers.append(linear_layer) - if num_layer < num_layers - 1: - layers.append(Tanh()) - elif self.output_probabilities: - layers.append(Softmax(dim=-1)) - - self.layers = nn.Sequential(*layers) - - def forward(self, x: torch.Tensor) -> torch.Tensor: - """ - Perform forward-pass through the network. - :param x: Tensor input of shape [NxD]. - :returns: Tensor output of shape[NxK]. - """ - return self.layers(x) diff --git a/src/pydvl/influence/torch/__init__.py b/src/pydvl/influence/torch/__init__.py new file mode 100644 index 000000000..1f431d57b --- /dev/null +++ b/src/pydvl/influence/torch/__init__.py @@ -0,0 +1,9 @@ +from .torch_differentiable import ( + TorchTwiceDifferentiable, + as_tensor, + model_hessian_low_rank, + solve_arnoldi, + solve_batch_cg, + solve_linear, + solve_lissa, +) diff --git a/src/pydvl/influence/torch/functional.py b/src/pydvl/influence/torch/functional.py new file mode 100644 index 000000000..1be128b4b --- /dev/null +++ b/src/pydvl/influence/torch/functional.py @@ -0,0 +1,236 @@ +from typing import Callable, Dict, Generator, Iterable + +import torch +from torch.func import functional_call, grad, jvp, vjp +from torch.utils.data import DataLoader + +from .util import ( + TorchTensorContainerType, + align_structure, + flatten_tensors_to_vector, + to_model_device, +) + +__all__ = [ + "get_hvp_function", +] + + +def hvp( + func: Callable[[TorchTensorContainerType], torch.Tensor], + params: TorchTensorContainerType, + vec: TorchTensorContainerType, + reverse_only: bool = True, +) -> TorchTensorContainerType: + r""" + Computes the Hessian-vector product (HVP) for a given function at given parameters, i.e. + + \[\nabla_{\theta} \nabla_{\theta} f (\theta)\cdot v\] + + This function can operate in two modes, either reverse-mode autodiff only or both + forward- and reverse-mode autodiff. + + Args: + func: The scalar-valued function for which the HVP is computed. + params: The parameters at which the HVP is computed. + vec: The vector with which the Hessian is multiplied. + reverse_only: Whether to use only reverse-mode autodiff + (True, default) or both forward- and reverse-mode autodiff (False). + + Returns: + The HVP of the function at the given parameters with the given vector. + + Example: + ```python + >>> def f(z): return torch.sum(z**2) + >>> u = torch.ones(10, requires_grad=True) + >>> v = torch.ones(10) + >>> hvp_vec = hvp(f, u, v) + >>> assert torch.allclose(hvp_vec, torch.full((10, ), 2.0)) + ``` + """ + + output: TorchTensorContainerType + + if reverse_only: + _, vjp_fn = vjp(grad(func), params) + output = vjp_fn(vec)[0] + else: + output = jvp(grad(func), (params,), (vec,))[1] + + return output + + +def batch_hvp_gen( + model: torch.nn.Module, + loss: Callable[[torch.Tensor, torch.Tensor], torch.Tensor], + data_loader: DataLoader, + reverse_only: bool = True, +) -> Generator[Callable[[torch.Tensor], torch.Tensor], None, None]: + r""" + Generates a sequence of batch Hessian-vector product (HVP) computations for the provided model, loss function, + and data loader. If \(f_i\) is the model's loss on the \(i\)-th batch and \(\theta\) the model parameters, + this is the sequence of the callable matrix vector products for the matrices + + \[\nabla_{\theta}\nabla_{\theta}f_i(\theta), \quad i=1,\dots, \text{num_batches} \] + + i.e. iterating over the data_loader, yielding partial function calls for calculating HVPs. + + Args: + model: The PyTorch model for which the HVP is calculated. + loss: The loss function used to calculate the gradient and HVP. + data_loader: PyTorch DataLoader object containing the dataset for which the HVP is calculated. + reverse_only: Whether to use only reverse-mode autodiff + (True, default) or both forward- and reverse-mode autodiff (False). + + Yields: + Partial functions `H_{batch}(vec)=hvp(model, loss, inputs, targets, vec)` that when called, + will compute the Hessian-vector product H(vec) for the given model and loss in a batch-wise manner, where + (inputs, targets) coming from one batch. + """ + + for inputs, targets in iter(data_loader): + batch_loss = batch_loss_function(model, loss, inputs, targets) + model_params = dict(model.named_parameters()) + + def batch_hvp(vec: torch.Tensor): + return flatten_tensors_to_vector( + hvp( + batch_loss, + model_params, + align_structure(model_params, vec), + reverse_only=reverse_only, + ).values() + ) + + yield batch_hvp + + +def empirical_loss_function( + model: torch.nn.Module, + loss: Callable[[torch.Tensor, torch.Tensor], torch.Tensor], + data_loader: DataLoader, +) -> Callable[[Dict[str, torch.Tensor]], torch.Tensor]: + r""" + Creates a function to compute the empirical loss of a given model on a given dataset. + If we denote the model parameters with \( \theta \), the resulting function approximates: + + \[f(\theta) = \frac{1}{N}\sum_{i=1}^N \operatorname{loss}(y_i, \operatorname{model}(\theta, x_i))\] + + Args: + - model: The model for which the loss should be computed. + - loss: The loss function to be used. + - data_loader: The data loader for iterating over the dataset. + + Returns: + A function that computes the empirical loss of the model on the dataset for given model parameters. + + """ + + def empirical_loss(params: Dict[str, torch.Tensor]): + total_loss = to_model_device(torch.zeros((), requires_grad=True), model) + total_samples = to_model_device(torch.zeros(()), model) + + for x, y in iter(data_loader): + output = functional_call( + model, params, (to_model_device(x, model),), strict=True + ) + loss_value = loss(output, to_model_device(y, model)) + total_loss = total_loss + loss_value * x.size(0) + total_samples += x.size(0) + + return total_loss / total_samples + + return empirical_loss + + +def batch_loss_function( + model: torch.nn.Module, + loss: Callable[[torch.Tensor, torch.Tensor], torch.Tensor], + x: torch.Tensor, + y: torch.Tensor, +) -> Callable[[Dict[str, torch.Tensor]], torch.Tensor]: + r""" + Creates a function to compute the loss of a given model on a given batch of data, i.e. for the $i$-th batch $B_i$ + + \[\frac{1}{|B_i|}\sum_{x,y \in B_i} \operatorname{loss}(y, \operatorname{model}(\theta, x))\] + + Args: + model: The model for which the loss should be computed. + loss: The loss function to be used. + x: The input data for the batch. + y: The true labels for the batch. + + Returns: + A function that computes the loss of the model on the batch for given model parameters. + """ + + def batch_loss(params: Dict[str, torch.Tensor]): + outputs = functional_call( + model, params, (to_model_device(x, model),), strict=True + ) + return loss(outputs, y) + + return batch_loss + + +def get_hvp_function( + model: torch.nn.Module, + loss: Callable[[torch.Tensor, torch.Tensor], torch.Tensor], + data_loader: DataLoader, + use_hessian_avg: bool = True, + reverse_only: bool = True, + track_gradients: bool = False, +) -> Callable[[torch.Tensor], torch.Tensor]: + """ + Returns a function that calculates the approximate Hessian-vector product for a given vector. If you want to + compute the exact hessian, i.e., pulling all data into memory and compute a full gradient computation, use + the function `hvp`. + + Args: + model: A PyTorch module representing the model whose loss function's Hessian is to be computed. + loss: A callable that takes the model's output and target as input and returns the scalar loss. + data_loader: A DataLoader instance that provides batches of data for calculating the Hessian-vector product. + Each batch from the DataLoader is assumed to return a tuple where the first element + is the model's input and the second element is the target output. + use_hessian_avg: If True, the returned function uses batch-wise Hessian computation via + [batch_loss_function][pydvl.influence.torch.functional.batch_loss_function] and averages the results. + If False, the function uses backpropagation on the full + [empirical_loss_function][pydvl.influence.torch.functional.empirical_loss_function], + which is more accurate than averaging the batch hessians, but probably has a way higher memory usage. + reverse_only: Whether to use only reverse-mode autodiff (True, default) or + both forward- and reverse-mode autodiff (False). + track_gradients: Whether to track gradients for the resulting tensor of the hessian vector + products are (False, default). + + Returns: + A function that takes a single argument, a vector, and returns the product of the Hessian of the `loss` + function with respect to the `model`'s parameters and the input vector. + """ + + params = { + k: p if track_gradients else p.detach() for k, p in model.named_parameters() + } + + def hvp_function(vec: torch.Tensor) -> torch.Tensor: + v = align_structure(params, vec) + empirical_loss = empirical_loss_function(model, loss, data_loader) + return flatten_tensors_to_vector( + hvp(empirical_loss, params, v, reverse_only=reverse_only).values() + ) + + def avg_hvp_function(vec: torch.Tensor) -> torch.Tensor: + v = align_structure(params, vec) + batch_hessians_vector_products: Iterable[torch.Tensor] = map( + lambda x: x(v), batch_hvp_gen(model, loss, data_loader, reverse_only) + ) + + num_batches = len(data_loader) + avg_hessian = to_model_device(torch.zeros_like(vec), model) + + for batch_hvp in batch_hessians_vector_products: + avg_hessian += batch_hvp + + return avg_hessian / float(num_batches) + + return avg_hvp_function if use_hessian_avg else hvp_function diff --git a/src/pydvl/influence/torch/torch_differentiable.py b/src/pydvl/influence/torch/torch_differentiable.py new file mode 100644 index 000000000..bb1d444e4 --- /dev/null +++ b/src/pydvl/influence/torch/torch_differentiable.py @@ -0,0 +1,845 @@ +""" +Contains methods for differentiating a pyTorch model. Most of the methods focus +on ways to calculate matrix vector products. Moreover, it contains several +methods to invert the Hessian vector product. These are used to calculate the +influence of a training point on the model. + +## References + +[^1]: Koh, P.W., Liang, P., 2017. + [Understanding Black-box Predictions via Influence Functions](https://proceedings.mlr.press/v70/koh17a.html). + In: Proceedings of the 34th International Conference on Machine Learning, pp. 1885–1894. PMLR. +[^2]: Agarwal, N., Bullins, B., Hazan, E., 2017. + [Second-Order Stochastic Optimization for Machine Learning in Linear Time](https://www.jmlr.org/papers/v18/16-491.html). + In: Journal of Machine Learning Research, Vol. 18, pp. 1–40. JMLR. +""" +import logging +from dataclasses import dataclass +from functools import partial +from typing import Callable, Generator, List, Optional, Sequence, Tuple + +import torch +import torch.nn as nn +from numpy.typing import NDArray +from scipy.sparse.linalg import ArpackNoConvergence +from torch import autograd +from torch.autograd import Variable +from torch.utils.data import DataLoader + +from ...utils import maybe_progress +from ..inversion import InversionMethod, InversionRegistry +from ..twice_differentiable import ( + InverseHvpResult, + TensorUtilities, + TwiceDifferentiable, +) +from .functional import get_hvp_function +from .util import align_structure, as_tensor, flatten_tensors_to_vector + +__all__ = [ + "TorchTwiceDifferentiable", + "solve_linear", + "solve_batch_cg", + "solve_lissa", + "solve_arnoldi", + "lanzcos_low_rank_hessian_approx", + "model_hessian_low_rank", +] + +logger = logging.getLogger(__name__) + + +class TorchTwiceDifferentiable(TwiceDifferentiable[torch.Tensor]): + r""" + Wraps a [torch.nn.Module][torch.nn.Module] + and a loss function and provides methods to compute gradients and + second derivative of the loss wrt. the model parameters + + Args: + model: A (differentiable) function. + loss: A differentiable scalar loss \( L(\hat{y}, y) \), + mapping a prediction and a target to a real value. + """ + + def __init__( + self, + model: nn.Module, + loss: Callable[[torch.Tensor, torch.Tensor], torch.Tensor], + ): + + if model.training: + logger.warning( + "Passed model not in evaluation mode. This can create several issues in influence " + "computation, e.g. due to batch normalization. Please call model.eval() before " + "computing influences." + ) + self.loss = loss + self.model = model + first_param = next(model.parameters()) + self.device = first_param.device + self.dtype = first_param.dtype + + @classmethod + def tensor_type(cls): + return torch.Tensor + + @property + def parameters(self) -> List[torch.Tensor]: + """ + Returns: + All model parameters that require differentiating. + """ + + return [param for param in self.model.parameters() if param.requires_grad] + + @property + def num_params(self) -> int: + """ + Get the number of parameters of model f. + + Returns: + int: Number of parameters. + """ + return sum([p.numel() for p in self.parameters]) + + def grad( + self, x: torch.Tensor, y: torch.Tensor, create_graph: bool = False + ) -> torch.Tensor: + r""" + Calculates gradient of model parameters with respect to the model parameters. + + Args: + x: A matrix [NxD] representing the features \( x_i \). + y: A matrix [NxK] representing the target values \( y_i \). + create_graph (bool): If True, the resulting gradient tensor can be used for further differentiation. + + Returns: + An array [P] with the gradients of the model. + """ + + x = x.to(self.device) + y = y.to(self.device) + + if create_graph and not x.requires_grad: + x = x.requires_grad_(True) + + loss_value = self.loss(torch.squeeze(self.model(x)), torch.squeeze(y)) + grad_f = torch.autograd.grad( + loss_value, self.parameters, create_graph=create_graph + ) + return flatten_tensors_to_vector(grad_f) + + def hessian(self, x: torch.Tensor, y: torch.Tensor) -> torch.Tensor: + r""" + Calculates the explicit hessian of model parameters given data \(x\) and \(y\). + + Args: + x: A matrix [NxD] representing the features \(x_i\). + y: A matrix [NxK] representing the target values \(y_i\). + + Returns: + A tensor representing the hessian of the loss with respect to the model parameters. + """ + + def model_func(param): + outputs = torch.func.functional_call( + self.model, + align_structure( + {k: p for k, p in self.model.named_parameters() if p.requires_grad}, + param, + ), + (x.to(self.device),), + strict=True, + ) + return self.loss(outputs, y.to(self.device)) + + params = flatten_tensors_to_vector( + p.detach() for p in self.model.parameters() if p.requires_grad + ) + return torch.func.hessian(model_func)(params) + + @staticmethod + def mvp( + grad_xy: torch.Tensor, + v: torch.Tensor, + backprop_on: torch.Tensor, + *, + progress: bool = False, + ) -> torch.Tensor: + r""" + Calculates the second-order derivative of the model along directions v. + This second-order derivative can be selected through the `backprop_on` argument. + + Args: + grad_xy: An array [P] holding the gradients of the model parameters with respect to input + \(x\) and labels \(y\), where P is the number of parameters of the model. + It is typically obtained through `self.grad`. + v: An array ([DxP] or even one-dimensional [D]) which multiplies the matrix, + where D is the number of directions. + progress: If True, progress will be printed. + backprop_on: Tensor used in the second backpropagation + (the first one is defined via grad_xy). + + Returns: + A matrix representing the implicit matrix-vector product of the model along the given directions. + The output shape is [DxM], with M being the number of elements of `backprop_on`. + """ + + device = grad_xy.device + v = as_tensor(v, warn=False).to(device) + if v.ndim == 1: + v = v.unsqueeze(0) + + z = (grad_xy * Variable(v)).sum(dim=1) + + mvp = [] + for i in maybe_progress(range(len(z)), progress, desc="MVP"): + mvp.append( + flatten_tensors_to_vector( + autograd.grad(z[i], backprop_on, retain_graph=True) + ) + ) + return torch.stack([grad.contiguous().view(-1) for grad in mvp]).detach() + + +@dataclass +class LowRankProductRepresentation: + r""" + Representation of a low rank product of the form \(H = V D V^T\), + where D is a diagonal matrix and V is orthogonal. + + Args: + eigen_vals: Diagonal of D. + projections: The matrix V. + """ + + eigen_vals: torch.Tensor + projections: torch.Tensor + + @property + def device(self) -> torch.device: + return ( + self.eigen_vals.device + if hasattr(self.eigen_vals, "device") + else torch.device("cpu") + ) + + def to(self, device: torch.device): + """ + Move the representing tensors to a device + """ + return LowRankProductRepresentation( + self.eigen_vals.to(device), self.projections.to(device) + ) + + def __post_init__(self): + if self.eigen_vals.device != self.projections.device: + raise ValueError("eigen_vals and projections must be on the same device.") + + +def lanzcos_low_rank_hessian_approx( + hessian_vp: Callable[[torch.Tensor], torch.Tensor], + matrix_shape: Tuple[int, int], + hessian_perturbation: float = 0.0, + rank_estimate: int = 10, + krylov_dimension: Optional[int] = None, + tol: float = 1e-6, + max_iter: Optional[int] = None, + device: Optional[torch.device] = None, + eigen_computation_on_gpu: bool = False, + torch_dtype: torch.dtype = None, +) -> LowRankProductRepresentation: + r""" + Calculates a low-rank approximation of the Hessian matrix of a scalar-valued + function using the implicitly restarted Lanczos algorithm, i.e.: + + \[ H_{\text{approx}} = V D V^T\] + + where \(D\) is a diagonal matrix with the top (in absolute value) `rank_estimate` eigenvalues of the Hessian + and \(V\) contains the corresponding eigenvectors. + + Args: + hessian_vp: A function that takes a vector and returns the product of + the Hessian of the loss function. + matrix_shape: The shape of the matrix, represented by the hessian vector + product. + hessian_perturbation: Regularization parameter added to the + Hessian-vector product for numerical stability. + rank_estimate: The number of eigenvalues and corresponding eigenvectors + to compute. Represents the desired rank of the Hessian approximation. + krylov_dimension: The number of Krylov vectors to use for the Lanczos + method. If not provided, it defaults to + \( \min(\text{model.num_parameters}, \max(2 \times \text{rank_estimate} + 1, 20)) \). + tol: The stopping criteria for the Lanczos algorithm, which stops when + the difference in the approximated eigenvalue is less than `tol`. + Defaults to 1e-6. + max_iter: The maximum number of iterations for the Lanczos method. If + not provided, it defaults to \( 10 \cdot \text{model.num_parameters}\). + device: The device to use for executing the hessian vector product. + eigen_computation_on_gpu: If True, tries to execute the eigen pair + approximation on the provided device via [cupy](https://cupy.dev/) + implementation. Ensure that either your model is small enough, or you + use a small rank_estimate to fit your device's memory. If False, the + eigen pair approximation is executed on the CPU with scipy's wrapper to + ARPACK. + torch_dtype: If not provided, the current torch default dtype is used for + conversion to torch. + + Returns: + A [LowRankProductRepresentation][pydvl.influence.torch.torch_differentiable.LowRankProductRepresentation] + instance that contains the top (up until rank_estimate) eigenvalues + and corresponding eigenvectors of the Hessian. + """ + + torch_dtype = torch.get_default_dtype() if torch_dtype is None else torch_dtype + + if eigen_computation_on_gpu: + try: + import cupy as cp + from cupyx.scipy.sparse.linalg import LinearOperator, eigsh + from torch.utils.dlpack import from_dlpack, to_dlpack + except ImportError as e: + raise ImportError( + f"Try to install missing dependencies or set eigen_computation_on_gpu to False: {e}" + ) + + if device is None: + raise ValueError( + "Without setting an explicit device, cupy is not supported" + ) + + def to_torch_conversion_function(x): + return from_dlpack(x.toDlpack()).to(torch_dtype) + + def mv(x): + x = to_torch_conversion_function(x) + y = hessian_vp(x) + hessian_perturbation * x + return cp.from_dlpack(to_dlpack(y)) + + else: + from scipy.sparse.linalg import LinearOperator, eigsh + + def mv(x): + x_torch = torch.as_tensor(x, device=device, dtype=torch_dtype) + y: NDArray = ( + (hessian_vp(x_torch) + hessian_perturbation * x_torch) + .detach() + .cpu() + .numpy() + ) + return y + + to_torch_conversion_function = partial(torch.as_tensor, dtype=torch_dtype) + + try: + eigen_vals, eigen_vecs = eigsh( + LinearOperator(matrix_shape, matvec=mv), + k=rank_estimate, + maxiter=max_iter, + tol=tol, + ncv=krylov_dimension, + return_eigenvectors=True, + ) + + except ArpackNoConvergence as e: + logger.warning( + f"ARPACK did not converge for parameters {max_iter=}, {tol=}, {krylov_dimension=}, " + f"{rank_estimate=}. \n Returning the best approximation found so far. Use those with care or " + f"modify parameters.\n Original error: {e}" + ) + + eigen_vals, eigen_vecs = e.eigenvalues, e.eigenvectors + + eigen_vals = to_torch_conversion_function(eigen_vals) + eigen_vecs = to_torch_conversion_function(eigen_vecs) + + return LowRankProductRepresentation(eigen_vals, eigen_vecs) + + +def model_hessian_low_rank( + model: TorchTwiceDifferentiable, + training_data: DataLoader, + hessian_perturbation: float = 0.0, + rank_estimate: int = 10, + krylov_dimension: Optional[int] = None, + tol: float = 1e-6, + max_iter: Optional[int] = None, + eigen_computation_on_gpu: bool = False, +) -> LowRankProductRepresentation: + r""" + Calculates a low-rank approximation of the Hessian matrix of the model's loss function using the implicitly + restarted Lanczos algorithm, i.e. + + \[ H_{\text{approx}} = V D V^T\] + + where \(D\) is a diagonal matrix with the top (in absolute value) `rank_estimate` eigenvalues of the Hessian + and \(V\) contains the corresponding eigenvectors. + + + Args: + model: A PyTorch model instance that is twice differentiable, wrapped into `TorchTwiceDifferential`. + The Hessian will be calculated with respect to this model's parameters. + training_data: A DataLoader instance that provides the model's training data. + Used in calculating the Hessian-vector products. + hessian_perturbation: Optional regularization parameter added to the Hessian-vector product + for numerical stability. + rank_estimate: The number of eigenvalues and corresponding eigenvectors to compute. + Represents the desired rank of the Hessian approximation. + krylov_dimension: The number of Krylov vectors to use for the Lanczos method. + If not provided, it defaults to min(model.num_parameters, max(2*rank_estimate + 1, 20)). + tol: The stopping criteria for the Lanczos algorithm, which stops when the difference + in the approximated eigenvalue is less than `tol`. Defaults to 1e-6. + max_iter: The maximum number of iterations for the Lanczos method. If not provided, it defaults to + 10*model.num_parameters. + eigen_computation_on_gpu: If True, tries to execute the eigen pair approximation on the provided + device via cupy implementation. + Make sure, that either your model is small enough or you use a + small rank_estimate to fit your device's memory. + If False, the eigen pair approximation is executed on the CPU by scipy wrapper to + ARPACK. + + Returns: + A [LowRankProductRepresentation][pydvl.influence.torch.torch_differentiable.LowRankProductRepresentation] + instance that contains the top (up until rank_estimate) eigenvalues + and corresponding eigenvectors of the Hessian. + """ + raw_hvp = get_hvp_function( + model.model, model.loss, training_data, use_hessian_avg=True + ) + + return lanzcos_low_rank_hessian_approx( + hessian_vp=raw_hvp, + matrix_shape=(model.num_params, model.num_params), + hessian_perturbation=hessian_perturbation, + rank_estimate=rank_estimate, + krylov_dimension=krylov_dimension, + tol=tol, + max_iter=max_iter, + device=model.device if hasattr(model, "device") else None, + eigen_computation_on_gpu=eigen_computation_on_gpu, + ) + + +class TorchTensorUtilities(TensorUtilities[torch.Tensor, TorchTwiceDifferentiable]): + twice_differentiable_type = TorchTwiceDifferentiable + + @staticmethod + def einsum(equation: str, *operands) -> torch.Tensor: + """Sums the product of the elements of the input :attr:`operands` along dimensions specified using a notation + based on the Einstein summation convention. + """ + return torch.einsum(equation, *operands) + + @staticmethod + def cat(a: Sequence[torch.Tensor], **kwargs) -> torch.Tensor: + """Concatenates a sequence of tensors into a single torch tensor""" + return torch.cat(a, **kwargs) + + @staticmethod + def stack(a: Sequence[torch.Tensor], **kwargs) -> torch.Tensor: + """Stacks a sequence of tensors into a single torch tensor""" + return torch.stack(a, **kwargs) + + @staticmethod + def unsqueeze(x: torch.Tensor, dim: int) -> torch.Tensor: + """ + Add a singleton dimension at a specified position in a tensor. + + Args: + x: A PyTorch tensor. + dim: The position at which to add the singleton dimension. Zero-based indexing. + + Returns: + A new tensor with an additional singleton dimension. + """ + + return x.unsqueeze(dim) + + @staticmethod + def get_element(x: torch.Tensor, idx: int) -> torch.Tensor: + return x[idx] + + @staticmethod + def slice(x: torch.Tensor, start: int, stop: int, axis: int = 0) -> torch.Tensor: + slicer = [slice(None) for _ in x.shape] + slicer[axis] = slice(start, stop) + return x[tuple(slicer)] + + @staticmethod + def shape(x: torch.Tensor) -> Tuple[int, ...]: + return x.shape # type:ignore + + @staticmethod + def reshape(x: torch.Tensor, shape: Tuple[int, ...]) -> torch.Tensor: + return x.reshape(shape) + + @staticmethod + def cat_gen( + a: Generator[torch.Tensor, None, None], + resulting_shape: Tuple[int, ...], + model: TorchTwiceDifferentiable, + axis: int = 0, + ) -> torch.Tensor: + result = torch.empty(resulting_shape, dtype=model.dtype, device=model.device) + + start_idx = 0 + for x in a: + stop_idx = start_idx + x.shape[axis] + + slicer = [slice(None) for _ in resulting_shape] + slicer[axis] = slice(start_idx, stop_idx) + + result[tuple(slicer)] = x + + start_idx = stop_idx + + return result + + +@InversionRegistry.register(TorchTwiceDifferentiable, InversionMethod.Direct) +def solve_linear( + model: TorchTwiceDifferentiable, + training_data: DataLoader, + b: torch.Tensor, + hessian_perturbation: float = 0.0, +) -> InverseHvpResult: + r""" + Given a model and training data, it finds x such that \(Hx = b\), with \(H\) being the model hessian. + + Args: + model: A model wrapped in the TwiceDifferentiable interface. + training_data: A DataLoader containing the training data. + b: A vector or matrix, the right hand side of the equation \(Hx = b\). + hessian_perturbation: Regularization of the hessian. + + Returns: + Instance of [InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult], + having an array that solves the inverse problem, i.e. it returns \(x\) such that \(Hx = b\), + and a dictionary containing information about the solution. + """ + + all_x, all_y = [], [] + for x, y in training_data: + all_x.append(x) + all_y.append(y) + hessian = model.hessian(torch.cat(all_x), torch.cat(all_y)) + matrix = hessian + hessian_perturbation * torch.eye( + model.num_params, device=model.device + ) + info = {"hessian": hessian} + return InverseHvpResult(x=torch.linalg.solve(matrix, b.T).T, info=info) + + +@InversionRegistry.register(TorchTwiceDifferentiable, InversionMethod.Cg) +def solve_batch_cg( + model: TorchTwiceDifferentiable, + training_data: DataLoader, + b: torch.Tensor, + hessian_perturbation: float = 0.0, + *, + x0: Optional[torch.Tensor] = None, + rtol: float = 1e-7, + atol: float = 1e-7, + maxiter: Optional[int] = None, + progress: bool = False, +) -> InverseHvpResult: + r""" + Given a model and training data, it uses conjugate gradient to calculate the + inverse of the Hessian Vector Product. More precisely, it finds x such that \(Hx = + b\), with \(H\) being the model hessian. For more info, see + [Wikipedia](https://en.wikipedia.org/wiki/Conjugate_gradient_method). + + Args: + model: A model wrapped in the TwiceDifferentiable interface. + training_data: A DataLoader containing the training data. + b: A vector or matrix, the right hand side of the equation \(Hx = b\). + hessian_perturbation: Regularization of the hessian. + x0: Initial guess for hvp. If None, defaults to b. + rtol: Maximum relative tolerance of result. + atol: Absolute tolerance of result. + maxiter: Maximum number of iterations. If None, defaults to 10*len(b). + progress: If True, display progress bars. + + Returns: + Instance of [InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult], + having a matrix of shape [NxP] with each line being a solution of \(Ax=b\), + and a dictionary containing information about the convergence of CG, + one entry for each line of the matrix. + """ + + total_grad_xy = 0 + total_points = 0 + for x, y in maybe_progress(training_data, progress, desc="Batch Train Gradients"): + grad_xy = model.grad(x, y, create_graph=True) + total_grad_xy += grad_xy * len(x) + total_points += len(x) + backprop_on = model.parameters + reg_hvp = lambda v: model.mvp( + total_grad_xy / total_points, v, backprop_on + ) + hessian_perturbation * v.type(torch.float64) + batch_cg = torch.zeros_like(b) + info = {} + for idx, bi in enumerate(maybe_progress(b, progress, desc="Conjugate gradient")): + batch_result, batch_info = solve_cg( + reg_hvp, bi, x0=x0, rtol=rtol, atol=atol, maxiter=maxiter + ) + batch_cg[idx] = batch_result + info[f"batch_{idx}"] = batch_info + return InverseHvpResult(x=batch_cg, info=info) + + +def solve_cg( + hvp: Callable[[torch.Tensor], torch.Tensor], + b: torch.Tensor, + *, + x0: Optional[torch.Tensor] = None, + rtol: float = 1e-7, + atol: float = 1e-7, + maxiter: Optional[int] = None, +) -> InverseHvpResult: + r""" + Conjugate gradient solver for the Hessian vector product. + + Args: + hvp: A callable Hvp, operating with tensors of size N. + b: A vector or matrix, the right hand side of the equation \(Hx = b\). + x0: Initial guess for hvp. + rtol: Maximum relative tolerance of result. + atol: Absolute tolerance of result. + maxiter: Maximum number of iterations. If None, defaults to 10*len(b). + + Returns: + Instance of [InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult], + with a vector x, solution of \(Ax=b\), and a dictionary containing + information about the convergence of CG. + """ + + if x0 is None: + x0 = torch.clone(b) + if maxiter is None: + maxiter = len(b) * 10 + + y_norm = torch.sum(torch.matmul(b, b)).item() + stopping_val = max([rtol**2 * y_norm, atol**2]) + + x = x0 + p = r = (b - hvp(x)).squeeze().type(torch.float64) + gamma = torch.sum(torch.matmul(r, r)).item() + optimal = False + + for k in range(maxiter): + if gamma < stopping_val: + optimal = True + break + Ap = hvp(p).squeeze() + alpha = gamma / torch.sum(torch.matmul(p, Ap)).item() + x += alpha * p + r -= alpha * Ap + gamma_ = torch.sum(torch.matmul(r, r)).item() + beta = gamma_ / gamma + gamma = gamma_ + p = r + beta * p + + info = {"niter": k, "optimal": optimal, "gamma": gamma} + return InverseHvpResult(x=x, info=info) + + +@InversionRegistry.register(TorchTwiceDifferentiable, InversionMethod.Lissa) +def solve_lissa( + model: TorchTwiceDifferentiable, + training_data: DataLoader, + b: torch.Tensor, + hessian_perturbation: float = 0.0, + *, + maxiter: int = 1000, + dampen: float = 0.0, + scale: float = 10.0, + h0: Optional[torch.Tensor] = None, + rtol: float = 1e-4, + progress: bool = False, +) -> InverseHvpResult: + r""" + Uses LISSA, Linear time Stochastic Second-Order Algorithm, to iteratively + approximate the inverse Hessian. More precisely, it finds x s.t. \(Hx = b\), + with \(H\) being the model's second derivative wrt. the parameters. + This is done with the update + + \[H^{-1}_{j+1} b = b + (I - d) \ H - \frac{H^{-1}_j b}{s},\] + + where \(I\) is the identity matrix, \(d\) is a dampening term and \(s\) a scaling + factor that are applied to help convergence. For details, see + (Koh and Liang, 2017)1 and the original paper + (Agarwal et. al.)2. + + Args: + model: A model wrapped in the TwiceDifferentiable interface. + training_data: A DataLoader containing the training data. + b: A vector or matrix, the right hand side of the equation \(Hx = b\). + hessian_perturbation: Regularization of the hessian. + maxiter: Maximum number of iterations. + dampen: Dampening factor, defaults to 0 for no dampening. + scale: Scaling factor, defaults to 10. + h0: Initial guess for hvp. + rtol: tolerance to use for early stopping + progress: If True, display progress bars. + + Returns: + Instance of [InverseHvpResult][pydvl.influence.twice_differentiable.InverseHvpResult], with a matrix of shape [NxP] with each line being a solution of \(Ax=b\), + and a dictionary containing information about the accuracy of the solution. + """ + + if h0 is None: + h_estimate = torch.clone(b) + else: + h_estimate = h0 + shuffled_training_data = DataLoader( + training_data.dataset, training_data.batch_size, shuffle=True + ) + + def lissa_step( + h: torch.Tensor, reg_hvp: Callable[[torch.Tensor], torch.Tensor] + ) -> torch.Tensor: + """Given an estimate of the hessian inverse and the regularised hessian + vector product, it computes the next estimate. + + Args: + h: An estimate of the hessian inverse. + reg_hvp: Regularised hessian vector product. + + Returns: + The next estimate of the hessian inverse. + """ + return b + (1 - dampen) * h - reg_hvp(h) / scale + + for _ in maybe_progress(range(maxiter), progress, desc="Lissa"): + x, y = next(iter(shuffled_training_data)) + grad_xy = model.grad(x, y, create_graph=True) + reg_hvp = ( + lambda v: model.mvp(grad_xy, v, model.parameters) + hessian_perturbation * v + ) + residual = lissa_step(h_estimate, reg_hvp) - h_estimate + h_estimate += residual + if torch.isnan(h_estimate).any(): + raise RuntimeError("NaNs in h_estimate. Increase scale or dampening.") + max_residual = torch.max(torch.abs(residual / h_estimate)) + if max_residual < rtol: + break + mean_residual = torch.mean(torch.abs(residual / h_estimate)) + logger.info( + f"Terminated Lissa with {max_residual*100:.2f} % max residual." + f" Mean residual: {mean_residual*100:.5f} %" + ) + info = { + "max_perc_residual": max_residual * 100, + "mean_perc_residual": mean_residual * 100, + } + return InverseHvpResult(x=h_estimate / scale, info=info) + + +@InversionRegistry.register(TorchTwiceDifferentiable, InversionMethod.Arnoldi) +def solve_arnoldi( + model: TorchTwiceDifferentiable, + training_data: DataLoader, + b: torch.Tensor, + hessian_perturbation: float = 0.0, + *, + rank_estimate: int = 10, + krylov_dimension: Optional[int] = None, + low_rank_representation: Optional[LowRankProductRepresentation] = None, + tol: float = 1e-6, + max_iter: Optional[int] = None, + eigen_computation_on_gpu: bool = False, +) -> InverseHvpResult: + r""" + Solves the linear system Hx = b, where H is the Hessian of the model's loss function and b is the given + right-hand side vector. + It employs the [implicitly restarted Arnoldi method](https://en.wikipedia.org/wiki/Arnoldi_iteration) for + computing a partial eigen decomposition, which is used fo the inversion i.e. + + \[x = V D^{-1} V^T b\] + + where \(D\) is a diagonal matrix with the top (in absolute value) `rank_estimate` eigenvalues of the Hessian + and \(V\) contains the corresponding eigenvectors. + + Args: + model: A PyTorch model instance that is twice differentiable, wrapped into + [TorchTwiceDifferential][pydvl.influence.torch.torch_differentiable.TorchTwiceDifferentiable]. + The Hessian will be calculated with respect to this model's parameters. + training_data: A DataLoader instance that provides the model's training data. + Used in calculating the Hessian-vector products. + b: The right-hand side vector in the system Hx = b. + hessian_perturbation: Optional regularization parameter added to the Hessian-vector + product for numerical stability. + rank_estimate: The number of eigenvalues and corresponding eigenvectors to compute. + Represents the desired rank of the Hessian approximation. + krylov_dimension: The number of Krylov vectors to use for the Lanczos method. + Defaults to min(model's number of parameters, max(2 times rank_estimate + 1, 20)). + low_rank_representation: An instance of + [LowRankProductRepresentation][pydvl.influence.torch.torch_differentiable.LowRankProductRepresentation] + containing a previously computed low-rank representation of the Hessian. If provided, all other parameters + are ignored; otherwise, a new low-rank representation is computed + using provided parameters. + tol: The stopping criteria for the Lanczos algorithm. + Ignored if `low_rank_representation` is provided. + max_iter: The maximum number of iterations for the Lanczos method. + Ignored if `low_rank_representation` is provided. + eigen_computation_on_gpu: If True, tries to execute the eigen pair approximation on the model's device + via a cupy implementation. Ensure the model size or rank_estimate is appropriate for device memory. + If False, the eigen pair approximation is executed on the CPU by the scipy wrapper to ARPACK. + + Returns: + Instance of [InverseHvpResult][pydvl.influence.torch.torch_differentiable.InverseHvpResult], + having the solution vector x that satisfies the system \(Ax = b\), + where \(A\) is a low-rank approximation of the Hessian \(H\) of the model's loss function, and an instance + of [LowRankProductRepresentation][pydvl.influence.torch.torch_differentiable.LowRankProductRepresentation], + which represents the approximation of H. + """ + + b_device = b.device if hasattr(b, "device") else torch.device("cpu") + + if low_rank_representation is None: + if b_device.type == "cuda" and not eigen_computation_on_gpu: + raise ValueError( + "Using 'eigen_computation_on_gpu=False' while 'b' is on a 'cuda' device is not supported. " + "To address this, consider the following options:\n" + " - Set eigen_computation_on_gpu=True if your model and data are small enough " + "and if 'cupy' is available in your environment.\n" + " - Move 'b' to the CPU with b.to('cpu').\n" + " - Precompute a low rank representation and move it to the 'b' device using:\n" + " low_rank_representation = model_hessian_low_rank(model, training_data, ..., " + "eigen_computation_on_gpu=False).to(b.device)" + ) + + low_rank_representation = model_hessian_low_rank( + model, + training_data, + hessian_perturbation=hessian_perturbation, + rank_estimate=rank_estimate, + krylov_dimension=krylov_dimension, + tol=tol, + max_iter=max_iter, + eigen_computation_on_gpu=eigen_computation_on_gpu, + ) + else: + if b_device.type != low_rank_representation.device.type: + raise RuntimeError( + f"The devices for 'b' and 'low_rank_representation' do not match.\n" + f" - 'b' is on device: {b_device}\n" + f" - 'low_rank_representation' is on device: {low_rank_representation.device}\n" + f"\nTo resolve this, consider moving 'low_rank_representation' to '{b_device}' by using:\n" + f"low_rank_representation = low_rank_representation.to(b.device)" + ) + + logger.info("Using provided low rank representation, ignoring other parameters") + + result = low_rank_representation.projections @ ( + torch.diag_embed(1.0 / low_rank_representation.eigen_vals) + @ (low_rank_representation.projections.t() @ b.t()) + ) + return InverseHvpResult( + x=result.t(), + info={ + "eigenvalues": low_rank_representation.eigen_vals, + "eigenvectors": low_rank_representation.projections, + }, + ) diff --git a/src/pydvl/influence/torch/util.py b/src/pydvl/influence/torch/util.py new file mode 100644 index 000000000..8347927f7 --- /dev/null +++ b/src/pydvl/influence/torch/util.py @@ -0,0 +1,185 @@ +import logging +import math +from typing import Any, Dict, Iterable, Tuple, TypeVar + +import torch + +logger = logging.getLogger(__name__) + +__all__ = [ + "to_model_device", + "flatten_tensors_to_vector", + "reshape_vector_to_tensors", + "TorchTensorContainerType", + "align_structure", + "as_tensor", +] + + +def to_model_device(x: torch.Tensor, model: torch.nn.Module) -> torch.Tensor: + """ + Returns the tensor `x` moved to the device of the `model`, if device of model is set + + Args: + x: The tensor to be moved to the device of the model. + model: The model whose device will be used to move the tensor. + + Returns: + The tensor `x` moved to the device of the `model`, if device of model is set. + """ + if hasattr(model, "device"): + return x.to(model.device) + return x + + +def flatten_tensors_to_vector(tensors: Iterable[torch.Tensor]) -> torch.Tensor: + """ + Flatten multiple tensors into a single 1D tensor (vector). + + This function takes an iterable of tensors and reshapes each of them into a 1D tensor. + These reshaped tensors are then concatenated together into a single 1D tensor in the order they were given. + + Args: + tensors: An iterable of tensors to be reshaped and concatenated. + + Returns: + A 1D tensor that is the concatenation of all the reshaped input tensors. + """ + return torch.cat([t.contiguous().view(-1) for t in tensors]) + + +def reshape_vector_to_tensors( + input_vector: torch.Tensor, target_shapes: Iterable[Tuple[int, ...]] +) -> Tuple[torch.Tensor, ...]: + """ + Reshape a 1D tensor into multiple tensors with specified shapes. + + This function takes a 1D tensor (input_vector) and reshapes it into a series of tensors with shapes given by 'target_shapes'. + The reshaped tensors are returned as a tuple in the same order as their corresponding shapes. + + Note: The total number of elements in 'input_vector' must be equal to the sum of the products of the shapes in 'target_shapes'. + + Args: + input_vector: The 1D tensor to be reshaped. Must be 1D. + target_shapes: An iterable of tuples. Each tuple defines the shape of a tensor to be reshaped from the 'input_vector'. + + Returns: + A tuple of reshaped tensors. + + Raises: + ValueError: If 'input_vector' is not a 1D tensor or if the total number of elements in 'input_vector' does not match the sum of the products of the shapes in 'target_shapes'. + """ + + if input_vector.dim() != 1: + raise ValueError("Input vector must be a 1D tensor") + + total_elements = sum(math.prod(shape) for shape in target_shapes) + + if total_elements != input_vector.shape[0]: + raise ValueError( + f"The total elements in shapes {total_elements} does not match the vector length {input_vector.shape[0]}" + ) + + tensors = [] + start = 0 + for shape in target_shapes: + size = math.prod(shape) # compute the total size of the tensor with this shape + tensors.append( + input_vector[start : start + size].view(shape) + ) # slice the vector and reshape it + start += size + return tuple(tensors) + + +TorchTensorContainerType = TypeVar( + "TorchTensorContainerType", + torch.Tensor, + Tuple[torch.Tensor, ...], + Dict[str, torch.Tensor], +) +"""Type variable for a PyTorch tensor or a container thereof.""" + + +def align_structure( + source: Dict[str, torch.Tensor], + target: TorchTensorContainerType, +) -> Dict[str, torch.Tensor]: + """ + This function transforms `target` to have the same structure as `source`, i.e., + it should be a dictionary with the same keys as `source` and each corresponding + value in `target` should have the same shape as the value in `source`. + + Args: + source: The reference dictionary containing PyTorch tensors. + target: The input to be harmonized. It can be a dictionary, tuple, or tensor. + + Returns: + The harmonized version of `target`. + + Raises: + ValueError: If `target` cannot be harmonized to match `source`. + """ + + tangent_dict: Dict[str, torch.Tensor] + + if isinstance(target, dict): + + if list(target.keys()) != list(source.keys()): + raise ValueError("The keys in 'target' do not match the keys in 'source'.") + + if [v.shape for v in target.values()] != [v.shape for v in source.values()]: + + raise ValueError( + "The shapes of the values in 'target' do not match the shapes of the values in 'source'." + ) + + tangent_dict = target + + elif isinstance(target, tuple) or isinstance(target, list): + + if [v.shape for v in target] != [v.shape for v in source.values()]: + + raise ValueError( + "'target' is a tuple/list but its elements' shapes do not match the shapes " + "of the values in 'source'." + ) + + tangent_dict = dict(zip(source.keys(), target)) + + elif isinstance(target, torch.Tensor): + + try: + tangent_dict = dict( + zip( + source.keys(), + reshape_vector_to_tensors( + target, [p.shape for p in source.values()] + ), + ) + ) + except Exception as e: + raise ValueError( + f"'target' is a tensor but cannot be reshaped to match 'source'. Original error: {e}" + ) + + else: + raise ValueError(f"'target' is of type {type(target)} which is not supported.") + + return tangent_dict + + +def as_tensor(a: Any, warn=True, **kwargs) -> torch.Tensor: + """ + Converts an array into a torch tensor. + + Args: + a: Array to convert to tensor. + warn: If True, warns that `a` will be converted. + + Returns: + A torch tensor converted from the input array. + """ + + if warn and not isinstance(a, torch.Tensor): + logger.warning("Converting tensor to type torch.Tensor.") + return torch.as_tensor(a, **kwargs) diff --git a/src/pydvl/influence/twice_differentiable.py b/src/pydvl/influence/twice_differentiable.py new file mode 100644 index 000000000..51700e89a --- /dev/null +++ b/src/pydvl/influence/twice_differentiable.py @@ -0,0 +1,250 @@ +from abc import ABC, abstractmethod +from dataclasses import dataclass +from typing import ( + Any, + Dict, + Generator, + Generic, + Iterable, + List, + Sequence, + Tuple, + Type, + TypeVar, +) + +__all__ = [ + "DataLoaderType", + "ModelType", + "TensorType", + "InverseHvpResult", + "TwiceDifferentiable", + "TensorUtilities", +] + +TensorType = TypeVar("TensorType", bound=Sequence) +"""Type variable for tensors, i.e. sequences of numbers""" + +ModelType = TypeVar("ModelType", bound="TwiceDifferentiable") +"""Type variable for twice differentiable models""" + +DataLoaderType = TypeVar("DataLoaderType", bound=Iterable) +"""Type variable for data loaders""" + + +@dataclass(frozen=True) +class InverseHvpResult(Generic[TensorType]): + r""" + Container class for results of solving a problem \(Ax=b\) + + Args: + x: solution of a problem \(Ax=b\) + info: additional information, to couple with the solution itself + """ + x: TensorType + info: Dict[str, Any] + + def __iter__(self): + return iter((self.x, self.info)) + + +class TwiceDifferentiable(ABC, Generic[TensorType]): + """ + Abstract base class for wrappers of differentiable models and losses. Meant to be subclassed for each + supported framework. + Provides methods to compute gradients and second derivative of the loss wrt. the model parameters + """ + + @classmethod + @abstractmethod + def tensor_type(cls): + pass + + @property + @abstractmethod + def num_params(self) -> int: + """Returns the number of parameters of the model""" + pass + + @property + @abstractmethod + def parameters(self) -> List[TensorType]: + """Returns all the model parameters that require differentiation""" + pass + + def grad( + self, x: TensorType, y: TensorType, create_graph: bool = False + ) -> TensorType: + r""" + Calculates gradient of model parameters with respect to the model parameters. + + Args: + x: A matrix representing the features \(x_i\). + y: A matrix representing the target values \(y_i\). + create_graph: Used for further differentiation on input parameters. + + Returns: + An array with the gradients of the model. + """ + + pass + + def hessian(self, x: TensorType, y: TensorType) -> TensorType: + r""" + Calculates the full Hessian of \(L(f(x),y)\) with respect to the model parameters given data \(x\) and \(y\). + + Args: + x: An array representing the features \(x_i\). + y: An array representing the target values \(y_i\). + + Returns: + A tensor representing the Hessian of the model, i.e. the second derivative + with respect to the model parameters. + """ + + pass + + @staticmethod + @abstractmethod + def mvp( + grad_xy: TensorType, + v: TensorType, + backprop_on: TensorType, + *, + progress: bool = False, + ) -> TensorType: + r""" + Calculates the second order derivative of the model along directions \(v\). + The second order derivative can be selected through the `backprop_on` argument. + + Args: + grad_xy: An array [P] holding the gradients of the model parameters with respect to input \(x\) and + labels \(y\). \(P\) is the number of parameters of the model. Typically obtained through `self.grad`. + v: An array ([DxP] or even one-dimensional [D]) which multiplies the matrix. + \(D\) is the number of directions. + progress: If `True`, progress is displayed. + backprop_on: Tensor used in the second backpropagation. The first one is along \(x\) and \(y\) + as defined via `grad_xy`. + + Returns: + A matrix representing the implicit matrix-vector product of the model along the given directions. + Output shape is [DxM], where \(M\) is the number of elements of `backprop_on`. + """ + + +class TensorUtilities(Generic[TensorType, ModelType], ABC): + twice_differentiable_type: Type[TwiceDifferentiable] + registry: Dict[Type[TwiceDifferentiable], Type["TensorUtilities"]] = {} + + def __init_subclass__(cls, **kwargs): + """ + Automatically registers non-abstract subclasses in the registry. + + This method checks if `twice_differentiable_type` is defined in the subclass and if it is of the correct type. + If either attribute is missing or incorrect, a `TypeError` is raised. + + Args: + kwargs: Additional keyword arguments. + + Raises: + TypeError: If the subclass does not define `twice_differentiable_type`, or if it is not of the correct type. + """ + + if not hasattr(cls, "twice_differentiable_type") or not isinstance( + cls.twice_differentiable_type, type + ): + raise TypeError( + f"'twice_differentiable_type' must be a Type[TwiceDifferentiable]" + ) + + cls.registry[cls.twice_differentiable_type] = cls + + super().__init_subclass__(**kwargs) + + @staticmethod + @abstractmethod + def einsum(equation, *operands) -> TensorType: + """Sums the product of the elements of the input `operands` along dimensions specified using a notation + based on the Einstein summation convention. + """ + + @staticmethod + @abstractmethod + def cat(a: Sequence[TensorType], **kwargs) -> TensorType: + """Concatenates a sequence of tensors into a single torch tensor""" + + @staticmethod + @abstractmethod + def stack(a: Sequence[TensorType], **kwargs) -> TensorType: + """Stacks a sequence of tensors into a single torch tensor""" + + @staticmethod + @abstractmethod + def unsqueeze(x: TensorType, dim: int) -> TensorType: + """Add a singleton dimension at a specified position in a tensor""" + + @staticmethod + @abstractmethod + def get_element(x: TensorType, idx: int) -> TensorType: + """Get the tensor element x[i] from the first non-singular dimension""" + + @staticmethod + @abstractmethod + def slice(x: TensorType, start: int, stop: int, axis: int = 0) -> TensorType: + """Slice a tensor in the provided axis""" + + @staticmethod + @abstractmethod + def shape(x: TensorType) -> Tuple[int, ...]: + """Slice a tensor in the provided axis""" + + @staticmethod + @abstractmethod + def reshape(x: TensorType, shape: Tuple[int, ...]) -> TensorType: + """Reshape a tensor to the provided shape""" + + @staticmethod + @abstractmethod + def cat_gen( + a: Generator[TensorType, None, None], + resulting_shape: Tuple[int, ...], + model: ModelType, + ) -> TensorType: + """Concatenate tensors from a generator. Resulting tensor is of shape resulting_shape + and compatible to model + """ + + @classmethod + def from_twice_differentiable( + cls, + twice_diff: TwiceDifferentiable, + ) -> Type["TensorUtilities"]: + """ + Factory method to create an instance of a subclass + [TensorUtilities][pydvl.influence.twice_differentiable.TensorUtilities] from an instance of a subclass of + [TwiceDifferentiable][pydvl.influence.twice_differentiable.TwiceDifferentiable]. + + Args: + twice_diff: An instance of a subclass of + [TwiceDifferentiable][pydvl.influence.twice_differentiable.TwiceDifferentiable] + for which a corresponding [TensorUtilities][pydvl.influence.twice_differentiable.TensorUtilities] + object is required. + + Returns: + An subclass of [TensorUtilities][pydvl.influence.twice_differentiable.TensorUtilities] + registered to the provided subclass instance of + [TwiceDifferentiable][pydvl.influence.twice_differentiable.TwiceDifferentiable] object. + + Raises: + KeyError: If there's no registered [TensorUtilities][pydvl.influence.twice_differentiable.TensorUtilities] + for the provided [TwiceDifferentiable][pydvl.influence.twice_differentiable.TwiceDifferentiable] type. + """ + + tu = cls.registry.get(type(twice_diff), None) + + if tu is None: + raise KeyError( + f"No registered TensorUtilities for the type {type(twice_diff).__name__}" + ) + + return tu diff --git a/src/pydvl/influence/types.py b/src/pydvl/influence/types.py deleted file mode 100644 index 866214044..000000000 --- a/src/pydvl/influence/types.py +++ /dev/null @@ -1,48 +0,0 @@ -from abc import ABC -from typing import Callable, Iterable, Optional, Tuple - -from numpy import ndarray - -__all__ = [ - "TwiceDifferentiable", - "MatrixVectorProduct", - "MatrixVectorProductInversionAlgorithm", -] - - -class TwiceDifferentiable(ABC): - def num_params(self) -> int: - pass - - def split_grad(self, x: ndarray, y: ndarray, progress: bool = False) -> ndarray: - """ - Calculate the gradient of the model wrt each input x and labels y. - The output is therefore of size [Nxp], with N the amout of points (the length of x and y) and - P the number of parameters. - """ - pass - - def grad(self, x: ndarray, y: ndarray) -> Tuple[ndarray, ndarray]: - """ - It calculates the gradient of model parameters with respect to input x and labels y. - """ - pass - - def mvp( - self, - grad_xy: ndarray, - v: ndarray, - progress: bool = False, - backprop_on: Optional[Iterable] = None, - ) -> ndarray: - """ - Calculate the hessian vector product over the loss with all input parameters x and y with the vector v. - """ - pass - - -MatrixVectorProduct = Callable[[ndarray], ndarray] - -MatrixVectorProductInversionAlgorithm = Callable[ - [MatrixVectorProduct, ndarray], ndarray -] diff --git a/src/pydvl/reporting/plots.py b/src/pydvl/reporting/plots.py index 8008bddf9..3d1090b14 100644 --- a/src/pydvl/reporting/plots.py +++ b/src/pydvl/reporting/plots.py @@ -21,23 +21,24 @@ def shaded_mean_std( ax: Optional[Axes] = None, **kwargs, ) -> Axes: - """The usual mean +- x std deviations plot to aggregate runs of experiments. - - :param data: axis 0 is to be aggregated on (e.g. runs) and axis 1 is the - data for each run. - :param abscissa: values for the x axis. Leave empty to use increasing - integers. - :param num_std: number of standard deviations to shade around the mean. - :param mean_color: color for the mean - :param shade_color: color for the shaded region - :param title: - :param xlabel: - :param ylabel: - :param ax: If passed, axes object into which to insert the figure. Otherwise, - a new figure is created and returned - :param kwargs: these are forwarded to the ax.plot() call for the mean. - - :return: The axes used (or created) + """The usual mean \(\pm\) std deviation plot to aggregate runs of experiments. + + Args: + data: axis 0 is to be aggregated on (e.g. runs) and axis 1 is the + data for each run. + abscissa: values for the x-axis. Leave empty to use increasing integers. + num_std: number of standard deviations to shade around the mean. + mean_color: color for the mean + shade_color: color for the shaded region + title: Title text. To use mathematics, use LaTeX notation. + xlabel: Text for the horizontal axis. + ylabel: Text for the vertical axis + ax: If passed, axes object into which to insert the figure. Otherwise, + a new figure is created and returned + kwargs: these are forwarded to the ax.plot() call for the mean. + + Returns: + The axes used (or created) """ assert len(data.shape) == 2 mean = data.mean(axis=0) @@ -58,85 +59,16 @@ def shaded_mean_std( return ax -def shapley_results(results: dict, filename: str = None): - """ - FIXME: change this to use dataframes - - :param results: dict - :param filename: For plt.savefig(). Set to None to disable saving. - - Here's an example results dictionary:: - - results = { - "all_values": num_runs x num_points - "backward_scores": num_runs x num_points, - "backward_scores_reversed": num_runs x num_points, - "backward_random_scores": num_runs x num_points, - "forward_scores": num_runs x num_points, - "forward_scores_reversed": num_runs x num_points, - "forward_random_scores": num_runs x num_points, - "max_iterations": int, - "score_name" str, - "num_points": int - } - """ - plt.figure(figsize=(16, 5)) - num_runs = len(results["all_values"]) - num_points = len(results["backward_scores"][0]) - use_points = int(0.6 * num_points) - - plt.subplot(1, 2, 1) - values = np.array(results["backward_scores"])[:, :use_points] - shaded_mean_std(values, color="b", label="By increasing shapley value") - - values = np.array(results["backward_scores_reversed"])[:, :use_points] - shaded_mean_std(values, color="g", label="By decreasing shapley value") - - values = np.array(results["backward_random_scores"])[:, :use_points] - shaded_mean_std(values, color="r", linestyle="--", label="At random") - - plt.ylabel(f'Score ({results.get("score_name")})') - plt.xlabel("Points removed") - plt.title( - f"Effect of point removal. " - f'MonteCarlo with {results.get("max_iterations")} iterations ' - f"over {num_runs} runs" - ) - plt.legend() - - plt.subplot(1, 2, 2) - - values = np.array(results["forward_scores"])[:, :use_points] - shaded_mean_std(values, color="b", label="By increasing shapley value") - - values = np.array(results["forward_scores_reversed"])[:, :use_points] - shaded_mean_std(values, color="g", label="By decreasing shapley value") - - values = np.array(results["forward_random_scores"])[:, :use_points] - shaded_mean_std(values, color="r", linestyle="--", label="At random") - - plt.ylabel(f'Score ({results.get("score_name")})') - plt.xlabel("Points added") - plt.title( - f"Effect of point addition. " - f'MonteCarlo with {results["max_iterations"]} iterations ' - f"over {num_runs} runs" - ) - plt.legend() - - if filename: - plt.savefig(filename, dpi=300) - - def spearman_correlation(vv: List[OrderedDict], num_values: int, pvalue: float): """Simple matrix plots with spearman correlation for each pair in vv. - :param vv: list of OrderedDicts with index: value. Spearman correlation - is computed for the keys. - :param num_values: Use only these many values from the data (from the start - of the OrderedDicts) - :param pvalue: correlation coefficients for which the p-value is below the - threshold `pvalue/len(vv)` will be discarded. + Args: + vv: list of OrderedDicts with index: value. Spearman correlation + is computed for the keys. + num_values: Use only these many values from the data (from the start + of the OrderedDicts) + pvalue: correlation coefficients for which the p-value is below the + threshold `pvalue/len(vv)` will be discarded. """ r: np.ndarray = np.ndarray((len(vv), len(vv))) p: np.ndarray = np.ndarray((len(vv), len(vv))) @@ -170,22 +102,25 @@ def plot_shapley( df: pd.DataFrame, *, level: float = 0.05, - ax: plt.Axes = None, - title: str = None, - xlabel: str = None, - ylabel: str = None, + ax: Optional[plt.Axes] = None, + title: Optional[str] = None, + xlabel: Optional[str] = None, + ylabel: Optional[str] = None, ) -> plt.Axes: - """Plots the shapley values, as returned from - :func:`~pydvl.value.shapley.common.compute_shapley_values`, with error bars + r"""Plots the shapley values, as returned from + [compute_shapley_values][pydvl.value.shapley.common.compute_shapley_values], with error bars corresponding to an $\alpha$-level confidence interval. - :param df: dataframe with the shapley values - :param level: confidence level for the error bars - :param ax: axes to plot on or None if a new subplots should be created - :param title: string, title of the plot - :param xlabel: string, x label of the plot - :param ylabel: string, y label of the plot - :return: the axes created or used + Args: + df: dataframe with the shapley values + level: confidence level for the error bars + ax: axes to plot on or None if a new subplots should be created + title: string, title of the plot + xlabel: string, x label of the plot + ylabel: string, y label of the plot + + Returns: + The axes created or used """ if ax is None: _, ax = plt.subplots() @@ -204,11 +139,12 @@ def plot_influence_distribution_by_label( influences: NDArray[np.float_], labels: NDArray[np.float_], title_extra: str = "" ): """Plots the histogram of the influence that all samples in the training set - have over a single sample index, separated by labels. + have over a single sample index, separated by labels. - :param influences: array of influences (training samples x test samples) - :param labels: labels for the training set. - :param title_extra: + Args: + influences: array of influences (training samples x test samples) + labels: labels for the training set. + title_extra: """ _, ax = plt.subplots() unique_labels = np.unique(labels) diff --git a/src/pydvl/reporting/scores.py b/src/pydvl/reporting/scores.py index 6e562b730..b12e52248 100644 --- a/src/pydvl/reporting/scores.py +++ b/src/pydvl/reporting/scores.py @@ -20,12 +20,15 @@ def compute_removal_score( r"""Fits model and computes score on the test set after incrementally removing a percentage of data points from the training set, based on their values. - :param u: Utility object with model, data, and scoring function. - :param values: Data values of data instances in the training set. - :param percentages: Sequence of removal percentages. - :param remove_best: If True, removes data points in order of decreasing valuation. - :param progress: If True, display a progress bar. - :return: Dictionary that maps the percentages to their respective scores. + Args: + u: Utility object with model, data, and scoring function. + values: Data values of data instances in the training set. + percentages: Sequence of removal percentages. + remove_best: If True, removes data points in order of decreasing valuation. + progress: If True, display a progress bar. + + Returns: + Dictionary that maps the percentages to their respective scores. """ # Sanity checks if np.any([x >= 1.0 or x < 0.0 for x in percentages]): diff --git a/src/pydvl/utils/caching.py b/src/pydvl/utils/caching.py index 94b60d9a4..8be6dda32 100644 --- a/src/pydvl/utils/caching.py +++ b/src/pydvl/utils/caching.py @@ -1,74 +1,67 @@ """ Distributed caching of functions. -pyDVL uses `memcached `_ to cache utility values, through -`pymemcache `_. This allows sharing +pyDVL uses [memcached](https://memcached.org) to cache utility values, through +[pymemcache](https://pypi.org/project/pymemcache). This allows sharing evaluations across processes and nodes in a cluster. You can run memcached as a -service, locally or remotely, see :ref:`caching setup`. +service, locally or remotely, see [Setting up the cache](#setting-up-the-cache) -.. warning:: +!!! Warning + Function evaluations are cached with a key based on the function's signature + and code. This can lead to undesired cache hits, see [Cache reuse](#cache-reuse). - Function evaluations are cached with a key based on the function's signature - and code. This can lead to undesired cache hits, see :ref:`cache reuse`. + Remember **not to reuse utility objects for different datasets**. - Remember **not to reuse utility objects for different datasets**. +# Configuration -Configuration -------------- - -Memoization is disabled by default but can be enabled easily, see :ref:`caching setup`. +Memoization is disabled by default but can be enabled easily, +see [Setting up the cache](#setting-up-the-cache). When enabled, it will be added to any callable used to construct a -:class:`pydvl.utils.utility.Utility` (done with the decorator :func:`memcached`). +[Utility][pydvl.utils.utility.Utility] (done with the decorator [@memcached][pydvl.utils.caching.memcached]). Depending on the nature of the utility you might want to enable the computation of a running average of function values, see -:ref:`caching stochastic functions`. You can see all configuration options under -:class:`~pydvl.utils.config.MemcachedConfig`. - -.. rubric:: Default configuration - -.. code-block:: python - - default_config = dict( - server=('localhost', 11211), - connect_timeout=1.0, - timeout=0.1, - # IMPORTANT! Disable small packet consolidation: - no_delay=True, - serde=serde.PickleSerde(pickle_version=PICKLE_VERSION) - ) - -.. _caching stochastic functions: +[Usage with stochastic functions](#usaage-with-stochastic-functions). +You can see all configuration options under [MemcachedConfig][pydvl.utils.config.MemcachedConfig]. -Usage with stochastic functions -------------------------------- +## Default configuration -In addition to standard memoization, the decorator :func:`memcached` can compute -running average and standard error of repeated evaluations for the same input. -This can be useful for stochastic functions with high variance (e.g. model -training for small sample sizes), but drastically reduces the speed benefits of -memoization. +```python +default_config = dict( + server=('localhost', 11211), + connect_timeout=1.0, + timeout=0.1, + # IMPORTANT! Disable small packet consolidation: + no_delay=True, + serde=serde.PickleSerde(pickle_version=PICKLE_VERSION) +) +``` -This behaviour can be activated with -:attr:`~pydvl.utils.config.MemcachedConfig.allow_repeated_evaluations`. +# Usage with stochastic functions -.. _cache reuse: +In addition to standard memoization, the decorator +[memcached()][pydvl.utils.caching.memcached] can compute running average and +standard error of repeated evaluations for the same input. This can be useful +for stochastic functions with high variance (e.g. model training for small +sample sizes), but drastically reduces the speed benefits of memoization. -Cache reuse ------------ +This behaviour can be activated with the argument `allow_repeated_evaluations` +to [memcached()][pydvl.utils.caching.memcached]. -When working directly with :func:`memcached`, it is essential to only cache pure -functions. If they have any kind of state, either internal or external (e.g. a -closure over some data that may change), then the cache will fail to notice this -and the same value will be returned. +# Cache reuse -When a function is wrapped with :func:`memcached` for memoization, its signature -(input and output names) and code are used as a key for the cache. Alternatively -you can pass a custom value to be used as key with +When working directly with [memcached()][pydvl.utils.caching.memcached], it is +essential to only cache pure functions. If they have any kind of state, either +internal or external (e.g. a closure over some data that may change), then the +cache will fail to notice this and the same value will be returned. -.. code-block:: python +When a function is wrapped with [memcached()][pydvl.utils.caching.memcached] for +memoization, its signature (input and output names) and code are used as a key +for the cache. Alternatively you can pass a custom value to be used as key with - cached_fun = memcached(**asdict(cache_options))(fun, signature=custom_signature) +```python +cached_fun = memcached(**asdict(cache_options))(fun, signature=custom_signature) +``` -If you are running experiments with the same :class:`~pydvl.utils.utility.Utility` +If you are running experiments with the same [Utility][pydvl.utils.utility.Utility] but different datasets, this will lead to evaluations of the utility on new data returning old values because utilities only use sample indices as arguments (so there is no way to tell the difference between '1' for dataset A and '1' for @@ -76,18 +69,17 @@ cache between runs, but the preferred one is to **use a different Utility object for each dataset**. -Unexpected cache misses ------------------------ +# Unexpected cache misses Because all arguments to a function are used as part of the key for the cache, sometimes one must exclude some of them. For example, If a function is going to run across multiple processes and some reporting arguments are added (like a `job_id` for logging purposes), these will be part of the signature and make the functions distinct to the eyes of the cache. This can be avoided with the use of -:attr:`~pydvl.utils.config.MemcachedConfig.ignore_args` in the configuration. - +[ignore_args][pydvl.utils.config.MemcachedConfig] in the configuration. """ +from __future__ import annotations import logging import socket @@ -98,7 +90,7 @@ from hashlib import blake2b from io import BytesIO from time import time -from typing import Callable, Dict, Iterable, Optional, TypeVar, cast +from typing import Any, Callable, Dict, Iterable, Optional, TypeVar, cast from cloudpickle import Pickler from pymemcache import MemcacheUnexpectedCloseError @@ -116,7 +108,16 @@ @dataclass class CacheStats: - """Statistics gathered by cached functions.""" + """Statistics gathered by cached functions. + + Attributes: + sets: number of times a value was set in the cache + misses: number of times a value was not found in the cache + hits: number of times a value was found in the cache + timeouts: number of times a timeout occurred + errors: number of times an error occurred + reconnects: number of times the client reconnected to the server + """ sets: int = 0 misses: int = 0 @@ -126,7 +127,14 @@ class CacheStats: reconnects: int = 0 -def serialize(x): +def serialize(x: Any) -> bytes: + """Serialize an object to bytes. + Args: + x: object to serialize. + + Returns: + serialized object. + """ pickled_output = BytesIO() pickler = Pickler(pickled_output, PICKLE_VERSION) pickler.dump(x) @@ -140,7 +148,7 @@ def memcached( rtol_stderr: float = 0.1, min_repetitions: int = 3, ignore_args: Optional[Iterable[str]] = None, -): +) -> Callable[[Callable[..., T], bytes | None], Callable[..., T]]: """ Transparent, distributed memoization of function calls. @@ -151,43 +159,45 @@ def memcached( If the function is deterministic, i.e. same input corresponds to the same exact output, set `allow_repeated_evaluations` to `False`. If instead the function is stochastic (like the training of a model depending on random - initializations), memcached allows to set a minimum number of evaluations + initializations), memcached() allows to set a minimum number of evaluations to compute a running average, and a tolerance after which the function will not be called anymore. In other words, the function will be recomputed until the value has stabilized with a standard error smaller than `rtol_stderr * running average`. - .. warning:: - - Do not cache functions with state! See :ref:`cache reuse` - - .. code-block:: python - :caption: Example usage - - cached_fun = memcached(**asdict(cache_options))(heavy_computation) - - :param client_config: configuration for `pymemcache's Client() - `_. - Will be merged on top of the default configuration (see below). - :param time_threshold: computations taking less time than this many seconds - are not cached. - :param allow_repeated_evaluations: If `True`, repeated calls to a function - with the same arguments will be allowed and outputs averaged until the - running standard deviation of the mean stabilises below - `rtol_stderr * mean`. - :param rtol_stderr: relative tolerance for repeated evaluations. More - precisely, :func:`memcached` will stop evaluating the function once the - standard deviation of the mean is smaller than `rtol_stderr * mean`. - :param min_repetitions: minimum number of times that a function evaluation - on the same arguments is repeated before returning cached values. Useful - for stochastic functions only. If the model training is very noisy, set - this number to higher values to reduce variance. - :param ignore_args: Do not take these keyword arguments into account when - hashing the wrapped function for usage as key in memcached. This allows - sharing the cache among different jobs for the same experiment run if - the callable happens to have "nuisance" parameters like "job_id" which - do not affect the result of the computation. - :return: A wrapped function + !!! Warning + Do not cache functions with state! See [Cache reuse](cache-reuse) + + ??? Example + ```python + cached_fun = memcached(**asdict(cache_options))(heavy_computation) + ``` + + Args: + client_config: configuration for pymemcache's + [Client][pymemcache.client.base.Client]. + Will be merged on top of the default configuration (see below). + time_threshold: computations taking less time than this many seconds are + not cached. + allow_repeated_evaluations: If `True`, repeated calls to a function + with the same arguments will be allowed and outputs averaged until the + running standard deviation of the mean stabilises below + `rtol_stderr * mean`. + rtol_stderr: relative tolerance for repeated evaluations. More precisely, + [memcached()][pydvl.utils.caching.memcached] will stop evaluating the function once the + standard deviation of the mean is smaller than `rtol_stderr * mean`. + min_repetitions: minimum number of times that a function evaluation + on the same arguments is repeated before returning cached values. Useful + for stochastic functions only. If the model training is very noisy, set + this number to higher values to reduce variance. + ignore_args: Do not take these keyword arguments into account when + hashing the wrapped function for usage as key in memcached. This allows + sharing the cache among different jobs for the same experiment run if + the callable happens to have "nuisance" parameters like `job_id` which + do not affect the result of the computation. + + Returns: + A wrapped function """ if ignore_args is None: diff --git a/src/pydvl/utils/config.py b/src/pydvl/utils/config.py index 89ddd023f..b5a4a6743 100644 --- a/src/pydvl/utils/config.py +++ b/src/pydvl/utils/config.py @@ -9,44 +9,47 @@ __all__ = ["ParallelConfig", "MemcachedClientConfig", "MemcachedConfig"] -@dataclass +@dataclass(frozen=True) class ParallelConfig: """Configuration for parallel computation backend. - :param backend: Type of backend to use. - Defaults to 'ray' - :param address: Address of existing remote or local cluster to use. - :param n_cpus_local: Number of CPUs to use when creating a local ray cluster. - This has no effect when using an existing ray cluster. - :param logging_level: Logging level for the parallel backend's worker. + Args: + backend: Type of backend to use. Defaults to 'joblib' + address: Address of existing remote or local cluster to use. + n_cpus_local: Number of CPUs to use when creating a local ray cluster. + This has no effect when using an existing ray cluster. + logging_level: Logging level for the parallel backend's worker. + wait_timeout: Timeout in seconds for waiting on futures. """ - backend: Literal["sequential", "ray"] = "ray" + backend: Literal["joblib", "ray"] = "joblib" address: Optional[Union[str, Tuple[str, int]]] = None n_cpus_local: Optional[int] = None logging_level: int = logging.WARNING + wait_timeout: float = 1.0 def __post_init__(self) -> None: + # FIXME: this is specific to ray if self.address is not None and self.n_cpus_local is not None: raise ValueError("When `address` is set, `n_cpus_local` should be None.") -@dataclass +@dataclass(frozen=True) class MemcachedClientConfig: """Configuration of the memcached client. - :param server: A tuple of (IP|domain name, port). - :param connect_timeout: How many seconds to wait before raising - `ConnectionRefusedError` on failure to connect. - :param timeout: seconds to wait for send or recv calls on the socket - connected to memcached. - :param no_delay: set the `TCP_NODELAY` flag, which may help with performance - in some cases. - :param serde: a serializer / deserializer ("serde"). The default - `PickleSerde` should work in most cases. See `pymemcached's - documentation - `_ - for details. + Args: + server: A tuple of (IP|domain name, port). + connect_timeout: How many seconds to wait before raising + `ConnectionRefusedError` on failure to connect. + timeout: seconds to wait for send or recv calls on the socket + connected to memcached. + no_delay: set the `TCP_NODELAY` flag, which may help with performance + in some cases. + serde: a serializer / deserializer ("serde"). The default `PickleSerde` + should work in most cases. See [pymemcached's + documentation](https://pymemcache.readthedocs.io/en/latest/apidoc/pymemcache.client.base.html#pymemcache.client.base.Client) + for details. """ server: Tuple[str, int] = ("localhost", 11211) @@ -58,30 +61,30 @@ class MemcachedClientConfig: @dataclass class MemcachedConfig: - """Configuration for :func:`~pydvl.utils.caching.memcached`, providing + """Configuration for [memcached()][pydvl.utils.caching.memcached], providing memoization of function calls. Instances of this class are typically used as arguments for the construction - of a :class:`~pydvl.utils.utility.Utility`. - - :param client_config: Configuration for the connection to the memcached - server. - :param time_threshold: computations taking less time than this many seconds - are not cached. - :param allow_repeated_evaluations: If `True`, repeated calls to a function - with the same arguments will be allowed and outputs averaged until the - running standard deviation of the mean stabilises below - `rtol_stderr * mean`. - :param rtol_stderr: relative tolerance for repeated evaluations. More - precisely, :func:`~pydvl.utils.caching.memcached` will stop evaluating - the function once the standard deviation of the mean is smaller than - `rtol_stderr * mean`. - :param min_repetitions: minimum number of times that a function evaluation - on the same arguments is repeated before returning cached values. Useful - for stochastic functions only. If the model training is very noisy, set - this number to higher values to reduce variance. - :param ignore_args: Do not take these keyword arguments into account when - hashing the wrapped function for usage as key in memcached. + of a [Utility][pydvl.utils.utility.Utility]. + + Args: + client_config: Configuration for the connection to the memcached server. + time_threshold: computations taking less time than this many seconds are + not cached. + allow_repeated_evaluations: If `True`, repeated calls to a function + with the same arguments will be allowed and outputs averaged until the + running standard deviation of the mean stabilises below + `rtol_stderr * mean`. + rtol_stderr: relative tolerance for repeated evaluations. More precisely, + [memcached()][pydvl.utils.caching.memcached] will stop evaluating + the function once the standard deviation of the mean is smaller than + `rtol_stderr * mean`. + min_repetitions: minimum number of times that a function evaluation + on the same arguments is repeated before returning cached values. Useful + for stochastic functions only. If the model training is very noisy, set + this number to higher values to reduce variance. + ignore_args: Do not take these keyword arguments into account when hashing + the wrapped function for usage as key in memcached. """ client_config: MemcachedClientConfig = field(default_factory=MemcachedClientConfig) diff --git a/src/pydvl/utils/dataset.py b/src/pydvl/utils/dataset.py index d3c6eadf7..12a123806 100644 --- a/src/pydvl/utils/dataset.py +++ b/src/pydvl/utils/dataset.py @@ -5,32 +5,28 @@ (the *utility*). This is typically the performance of the model on a test set (as an approximation to its true expected performance). It is therefore convenient to keep both the training data and the test data together to be passed around to -methods in :mod:`~pydvl.value.shapley` and :mod:`~pydvl.value.least_core`. -This is done with :class:`~pydvl.utils.dataset.Dataset`. +methods in [shapley][pydvl.value.shapley] and [least_core][pydvl.value.least_core]. +This is done with [Dataset][pydvl.utils.dataset.Dataset]. This abstraction layer also seamlessly grouping data points together if one is interested in computing their value as a group, see -:class:`~pydvl.utils.dataset.GroupedDataset`. +[GroupedDataset][pydvl.utils.dataset.GroupedDataset]. -Objects of both types are used to construct a :class:`~pydvl.utils.utility.Utility` +Objects of both types are used to construct a [Utility][pydvl.utils.utility.Utility] object. """ - import logging from collections import OrderedDict -from pathlib import Path -from typing import Any, Callable, Iterable, List, Optional, Sequence, Tuple, Union +from typing import Any, Iterable, List, Optional, Sequence, Tuple, Union import numpy as np import pandas as pd from numpy.typing import NDArray -from sklearn.datasets import load_wine from sklearn.model_selection import train_test_split -from sklearn.preprocessing import MinMaxScaler from sklearn.utils import Bunch, check_X_y -__all__ = ["Dataset", "GroupedDataset", "load_spotify_dataset", "load_wine_dataset"] +__all__ = ["Dataset", "GroupedDataset"] logger = logging.getLogger(__name__) @@ -57,19 +53,20 @@ def __init__( ): """Constructs a Dataset from data and labels. - :param x_train: training data - :param y_train: labels for training data - :param x_test: test data - :param y_test: labels for test data - :param feature_names: name of the features of input data - :param target_names: names of the features of target data - :param data_names: names assigned to data points. - For example, if the dataset is a time series, each entry can be a - timestamp which can be referenced directly instead of using a row - number. - :param description: A textual description of the dataset. - :param is_multi_output: set to ``False`` if labels are scalars, or to - ``True`` if they are vectors of dimension > 1. + Args: + x_train: training data + y_train: labels for training data + x_test: test data + y_test: labels for test data + feature_names: name of the features of input data + target_names: names of the features of target data + data_names: names assigned to data points. + For example, if the dataset is a time series, each entry can be a + timestamp which can be referenced directly instead of using a row + number. + description: A textual description of the dataset. + is_multi_output: set to `False` if labels are scalars, or to + `True` if they are vectors of dimension > 1. """ self.x_train, self.y_train = check_X_y( x_train, y_train, multi_output=is_multi_output @@ -145,15 +142,18 @@ def get_training_data( """Given a set of indices, returns the training data that refer to those indices. - This is used mainly by :class:`~pydvl.utils.utility.Utility` to retrieve + This is used mainly by [Utility][pydvl.utils.utility.Utility] to retrieve subsets of the data from indices. It is typically **not needed in algorithms**. - :param indices: Optional indices that will be used to select points - from the training data. If ``None``, the entire training data will - be returned. - :return: If ``indices`` is not ``None``, the selected x and y arrays - from the training data. Otherwise, the entire dataset. + Args: + indices: Optional indices that will be used to select points from + the training data. If `None`, the entire training data will be + returned. + + Returns: + If `indices` is not `None`, the selected x and y arrays from the + training data. Otherwise, the entire dataset. """ if indices is None: return self.x_train, self.y_train @@ -170,19 +170,20 @@ def get_test_data( we generally want to score the trained model on the entire test data. Additionally, the way this method is used in the - :class:`~pydvl.utils.utility.Utility` class, the passed indices will + [Utility][pydvl.utils.utility.Utility] class, the passed indices will be those of the training data and would not work on the test data. There may be cases where it is desired to use parts of the test data. - In those cases, it is recommended to inherit from the :class:`Dataset` - class and to override the :meth:`~Dataset.get_test_data` method. + In those cases, it is recommended to inherit from + [Dataset][pydvl.utils.dataset.Dataset] and override + [get_test_data()][pydvl.utils.dataset.Dataset.get_test_data]. For example, the following snippet shows how one could go about mapping the training data indices into test data indices - inside :meth:`~Dataset.get_test_data`: - - :Example: + inside [get_test_data()][pydvl.utils.dataset.Dataset.get_test_data]: + ??? Example + ```pycon >>> from pydvl.utils import Dataset >>> import numpy as np >>> class DatasetWithTestDataIndices(Dataset): @@ -200,12 +201,15 @@ class and to override the :meth:`~Dataset.get_test_data` method. >>> indices = np.random.choice(dataset.indices, 30, replace=False) >>> _ = dataset.get_training_data(indices) >>> _ = dataset.get_test_data(indices) + ``` + Args: + indices: Optional indices into the test data. This argument is + unused left for compatibility with + [get_training_data()][pydvl.utils.dataset.Dataset.get_training_data]. - :param indices: Optional indices into the test data. This argument - is unused and is left as is to keep the same interface as - :meth:`Dataset.get_training_data`. - :return: The entire test data. + Returns: + The entire test data. """ return self.x_test, self.y_test @@ -251,31 +255,38 @@ def from_sklearn( stratify_by_target: bool = False, **kwargs, ) -> "Dataset": - """Constructs a :class:`Dataset` object from an - :class:`sklearn.utils.Bunch`, as returned by the `load_*` functions in - `sklearn toy datasets - `_. - - :param data: sklearn dataset. The following attributes are supported - - ``data``: covariates [required] - - ``target``: target variables (labels) [required] - - ``feature_names``: the feature names - - ``target_names``: the target names - - ``DESCR``: a description - :param train_size: size of the training dataset. Used in - `train_test_split` - :param random_state: seed for train / test split - :param stratify_by_target: If `True`, data is split in a stratified - fashion, using the target variable as labels. Read more in - `scikit-learn's user guide - `. - :param kwargs: Additional keyword arguments to pass to the - :class:`Dataset` constructor. Use this to pass e.g. ``is_multi_output``. - :return: Object with the sklearn dataset - - .. versionchanged:: 0.6.0 - Added kwargs to pass to the :class:`Dataset` constructor. + """Constructs a [Dataset][pydvl.utils.Dataset] object from a + [sklearn.utils.Bunch][sklearn.utils.Bunch], as returned by the `load_*` + functions in [scikit-learn toy datasets](https://scikit-learn.org/stable/datasets/toy_dataset.html). + + ??? Example + ```pycon + >>> from pydvl.utils import Dataset + >>> from sklearn.datasets import load_boston + >>> dataset = Dataset.from_sklearn(load_boston()) + ``` + + Args: + data: scikit-learn Bunch object. The following attributes are supported: + + - `data`: covariates. + - `target`: target variables (labels). + - `feature_names` (**optional**): the feature names. + - `target_names` (**optional**): the target names. + - `DESCR` (**optional**): a description. + train_size: size of the training dataset. Used in `train_test_split` + random_state: seed for train / test split + stratify_by_target: If `True`, data is split in a stratified + fashion, using the target variable as labels. Read more in + [scikit-learn's user guide](https://scikit-learn.org/stable/modules/cross_validation.html#stratification). + kwargs: Additional keyword arguments to pass to the + [Dataset][pydvl.utils.Dataset] constructor. Use this to pass e.g. `is_multi_output`. + + Returns: + Object with the sklearn dataset + + !!! tip "Changed in version 0.6.0" + Added kwargs to pass to the [Dataset][pydvl.utils.Dataset] constructor. """ x_train, x_test, y_train, y_test = train_test_split( data.data, @@ -305,30 +316,36 @@ def from_arrays( stratify_by_target: bool = False, **kwargs, ) -> "Dataset": - """Constructs a :class:`Dataset` object from X and y numpy arrays as - returned by the `make_*` functions in `sklearn generated datasets - `_. - - :param X: numpy array of shape (n_samples, n_features) - :param y: numpy array of shape (n_samples,) - :param train_size: size of the training dataset. Used in - `train_test_split` - :param random_state: seed for train / test split - :param stratify_by_target: If `True`, data is split in a stratified - fashion, using the y variable as labels. Read more in - `sklearn's user guide - `. - :param kwargs: Additional keyword arguments to pass to the - :class:`Dataset` constructor. Use this to pass e.g. ``feature_names`` - or ``target_names``. - :return: Object with the passed X and y arrays split across training - and test sets. - - .. versionadded:: 0.4.0 - - .. versionchanged:: 0.6.0 - Added kwargs to pass to the :class:`Dataset` constructor. + """Constructs a [Dataset][pydvl.utils.Dataset] object from X and y numpy arrays as + returned by the `make_*` functions in [sklearn generated datasets](https://scikit-learn.org/stable/datasets/sample_generators.html). + + ??? Example + ```pycon + >>> from pydvl.utils import Dataset + >>> from sklearn.datasets import make_regression + >>> X, y = make_regression() + >>> dataset = Dataset.from_arrays(X, y) + ``` + + Args: + X: numpy array of shape (n_samples, n_features) + y: numpy array of shape (n_samples,) + train_size: size of the training dataset. Used in `train_test_split` + random_state: seed for train / test split + stratify_by_target: If `True`, data is split in a stratified fashion, + using the y variable as labels. Read more in [sklearn's user + guide](https://scikit-learn.org/stable/modules/cross_validation.html#stratification). + kwargs: Additional keyword arguments to pass to the + [Dataset][pydvl.utils.Dataset] constructor. Use this to pass e.g. `feature_names` + or `target_names`. + + Returns: + Object with the passed X and y arrays split across training and test sets. + + !!! tip "New in version 0.4.0" + + !!! tip "Changed in version 0.6.0" + Added kwargs to pass to the [Dataset][pydvl.utils.Dataset] constructor. """ x_train, x_test, y_train, y_test = train_test_split( X, @@ -360,25 +377,26 @@ def __init__( as logical units. For instance, one can group by value of a categorical feature, by bin into which a continuous feature falls, or by label. - :param x_train: training data - :param y_train: labels of training data - :param x_test: test data - :param y_test: labels of test data - :param data_groups: Iterable of the same length as ``x_train`` containing - a group label for each training data point. The label can be of any - type, e.g. ``str`` or ``int``. Data points with the same label will - then be grouped by this object and considered as one for effects of - valuation. - :param feature_names: names of the covariates' features. - :param target_names: names of the labels or targets y - :param group_names: names of the groups. If not provided, the labels - from ``data_groups`` will be used. - :param description: A textual description of the dataset - :param kwargs: Additional keyword arguments to pass to the - :class:`Dataset` constructor. - - .. versionchanged:: 0.6.0 - Added ``group_names`` and forwarding of ``kwargs`` + Args: + x_train: training data + y_train: labels of training data + x_test: test data + y_test: labels of test data + data_groups: Iterable of the same length as `x_train` containing + a group label for each training data point. The label can be of any + type, e.g. `str` or `int`. Data points with the same label will + then be grouped by this object and considered as one for effects of + valuation. + feature_names: names of the covariates' features. + target_names: names of the labels or targets y + group_names: names of the groups. If not provided, the labels + from `data_groups` will be used. + description: A textual description of the dataset + kwargs: Additional keyword arguments to pass to the + [Dataset][pydvl.utils.Dataset] constructor. + + !!! tip "Changed in version 0.6.0" + Added `group_names` and forwarding of `kwargs` """ super().__init__( x_train=x_train, @@ -428,9 +446,12 @@ def get_training_data( ) -> Tuple[NDArray, NDArray]: """Returns the data and labels of all samples in the given groups. - :param indices: group indices whose elements to return. If ``None``, - all data from all groups are returned. - :return: Tuple of training data x and labels y. + Args: + indices: group indices whose elements to return. If `None`, + all data from all groups are returned. + + Returns: + Tuple of training data x and labels y. """ if indices is None: indices = self.indices @@ -449,31 +470,41 @@ def from_sklearn( data_groups: Optional[Sequence] = None, **kwargs, ) -> "GroupedDataset": - """Constructs a :class:`GroupedDataset` object from a scikit-learn bunch - as returned by the `load_*` functions in `sklearn toy datasets - `_ and groups + """Constructs a [GroupedDataset][pydvl.utils.GroupedDataset] object from a + [sklearn.utils.Bunch][sklearn.utils.Bunch] as returned by the `load_*` functions in + [scikit-learn toy datasets](https://scikit-learn.org/stable/datasets/toy_dataset.html) and groups it. - :param data: sklearn dataset. The following attributes are supported - - ``data``: covariates [required] - - ``target``: target variables (labels) [required] - - ``feature_names``: the feature names - - ``target_names``: the target names - - ``DESCR``: a description - :param train_size: size of the training dataset. Used in - `train_test_split`. - :param random_state: seed for train / test split. - :param stratify_by_target: If ``True``, data is split in a stratified - fashion, using the target variable as labels. Read more in - `sklearn's user guide - `. - :param data_groups: an array holding the group index or name for each - data point. The length of this array must be equal to the number of - data points in the dataset. - :param kwargs: Additional keyword arguments to pass to the - :class:`Dataset` constructor. - :return: Dataset with the selected sklearn data + ??? Example + ```pycon + >>> from sklearn.datasets import load_iris + >>> from pydvl.utils import GroupedDataset + >>> iris = load_iris() + >>> data_groups = iris.data[:, 0] // 0.5 + >>> dataset = GroupedDataset.from_sklearn(iris, data_groups=data_groups) + ``` + + Args: + data: scikit-learn Bunch object. The following attributes are supported: + + - `data`: covariates. + - `target`: target variables (labels). + - `feature_names` (**optional**): the feature names. + - `target_names` (**optional**): the target names. + - `DESCR` (**optional**): a description. + train_size: size of the training dataset. Used in `train_test_split`. + random_state: seed for train / test split. + stratify_by_target: If `True`, data is split in a stratified + fashion, using the target variable as labels. Read more in + [sklearn's user guide](https://scikit-learn.org/stable/modules/cross_validation.html#stratification). + data_groups: an array holding the group index or name for each + data point. The length of this array must be equal to the number of + data points in the dataset. + kwargs: Additional keyword arguments to pass to the + [Dataset][pydvl.utils.Dataset] constructor. + + Returns: + Dataset with the selected sklearn data """ if data_groups is None: raise ValueError( @@ -505,33 +536,48 @@ def from_arrays( data_groups: Optional[Sequence] = None, **kwargs, ) -> "Dataset": - """Constructs a :class:`GroupedDataset` object from X and y numpy arrays - as returned by the `make_*` functions in `sklearn generated datasets - `_. - - :param X: array of shape (n_samples, n_features) - :param y: array of shape (n_samples,) - :param train_size: size of the training dataset. Used in - ``train_test_split``. - :param random_state: seed for train / test split. - :param stratify_by_target: If ``True``, data is split in a stratified - fashion, using the y variable as labels. Read more in - `sklearn's user guide - `. - :param data_groups: an array holding the group index or name for each - data point. The length of this array must be equal to the number of - data points in the dataset. - :param kwargs: Additional keyword arguments that will be passed - to the :class:`~pydvl.utils.dataset.Dataset` constructor. - - :return: Dataset with the passed X and y arrays split across training - and test sets. - - .. versionadded:: 0.4.0 - - .. versionchanged:: 0.6.0 - Added kwargs to pass to the :class:`Dataset` constructor. + """Constructs a [GroupedDataset][pydvl.utils.GroupedDataset] object from X and y numpy arrays + as returned by the `make_*` functions in + [scikit-learn generated datasets](https://scikit-learn.org/stable/datasets/sample_generators.html). + + ??? Example + ```pycon + >>> from sklearn.datasets import make_classification + >>> from pydvl.utils import GroupedDataset + >>> X, y = make_classification( + ... n_samples=100, + ... n_features=4, + ... n_informative=2, + ... n_redundant=0, + ... random_state=0, + ... shuffle=False + ... ) + >>> data_groups = X[:, 0] // 0.5 + >>> dataset = GroupedDataset.from_arrays(X, y, data_groups=data_groups) + ``` + + Args: + X: array of shape (n_samples, n_features) + y: array of shape (n_samples,) + train_size: size of the training dataset. Used in `train_test_split`. + random_state: seed for train / test split. + stratify_by_target: If `True`, data is split in a stratified + fashion, using the y variable as labels. Read more in + [sklearn's user guide](https://scikit-learn.org/stable/modules/cross_validation.html#stratification). + data_groups: an array holding the group index or name for each data + point. The length of this array must be equal to the number of + data points in the dataset. + kwargs: Additional keyword arguments that will be passed to the + [Dataset][pydvl.utils.Dataset] constructor. + + Returns: + Dataset with the passed X and y arrays split across training and + test sets. + + !!! tip "New in version 0.4.0" + + !!! tip "Changed in version 0.6.0" + Added kwargs to pass to the [Dataset][pydvl.utils.Dataset] constructor. """ if data_groups is None: raise ValueError( @@ -554,15 +600,29 @@ def from_arrays( def from_dataset( cls, dataset: Dataset, data_groups: Sequence[Any] ) -> "GroupedDataset": - """Creates a :class:`GroupedDataset` object from the data a - :class:`Dataset` object and a mapping of data groups. - - :param dataset: The original data. - :param data_groups: An array holding the group index or name for each - data point. The length of this array must be equal to the number of - data points in the dataset. - :return: A :class:`GroupedDataset` with the initial :class:`Dataset` - grouped by data_groups. + """Creates a [GroupedDataset][pydvl.utils.GroupedDataset] object from the data a + [Dataset][pydvl.utils.Dataset] object and a mapping of data groups. + + ??? Example + ```pycon + >>> import numpy as np + >>> from pydvl.utils import Dataset, GroupedDataset + >>> dataset = Dataset.from_arrays( + ... X=np.asarray([[1, 2], [3, 4], [5, 6], [7, 8]]), + ... y=np.asarray([0, 1, 0, 1]), + ... ) + >>> dataset = GroupedDataset.from_dataset(dataset, data_groups=[0, 0, 1, 1]) + ``` + + Args: + dataset: The original data. + data_groups: An array holding the group index or name for each data + point. The length of this array must be equal to the number of + data points in the dataset. + + Returns: + A [GroupedDataset][pydvl.utils.GroupedDataset] with the initial + [Dataset][pydvl.utils.Dataset] grouped by data_groups. """ return cls( x_train=dataset.x_train, @@ -574,154 +634,3 @@ def from_dataset( target_names=dataset.target_names, description=dataset.description, ) - - -def load_spotify_dataset( - val_size: float, - test_size: float, - min_year: int = 2014, - target_column: str = "popularity", - random_state: int = 24, -): - """Loads (and downloads if not already cached) the spotify music dataset. - More info on the dataset can be found at - https://www.kaggle.com/datasets/mrmorj/dataset-of-songs-in-spotify. - - If this method is called within the CI pipeline, it will load a reduced - version of the dataset for testing purposes. - - :param val_size: size of the validation set - :param test_size: size of the test set - :param min_year: minimum year of the returned data - :param target_column: column to be returned as y (labels) - :param random_state: fixes sklearn random seed - :return: Tuple with 3 elements, each being a list sith [input_data, related_labels] - """ - root_dir_path = Path(__file__).parent.parent.parent.parent - file_path = root_dir_path / "data/top_hits_spotify_dataset.csv" - if file_path.exists(): - data = pd.read_csv(file_path) - else: - url = "https://raw.githubusercontent.com/appliedAI-Initiative/pyDVL/develop/data/top_hits_spotify_dataset.csv" - data = pd.read_csv(url) - data.to_csv(file_path, index=False) - - data = data[data["year"] > min_year] - data["genre"] = data["genre"].astype("category").cat.codes - y = data[target_column] - X = data.drop(target_column, axis=1) - X, X_test, y, y_test = train_test_split( - X, y, test_size=test_size, random_state=random_state - ) - X_train, X_val, y_train, y_val = train_test_split( - X, y, test_size=val_size, random_state=random_state - ) - return [X_train, y_train], [X_val, y_val], [X_test, y_test] - - -def load_wine_dataset( - train_size: float, test_size: float, random_state: Optional[int] = None -): - """Loads the sklearn wine dataset. More info can be found at - https://scikit-learn.org/stable/datasets/toy_dataset.html#wine-recognition-dataset. - - :param train_size: fraction of points used for training dataset - :param test_size: fraction of points used for test dataset - :param random_state: fix random seed. If None, no random seed is set. - :return: A tuple of four elements with the first three being input and - target values in the form of matrices of shape (N,D) the first - and (N,) the second. The fourth element is a list containing names of - features of the model. (FIXME doc) - """ - try: - import torch - except ImportError as e: - raise RuntimeError( - "PyTorch is required in order to load the Wine Dataset" - ) from e - - wine_bunch = load_wine(as_frame=True) - x, x_test, y, y_test = train_test_split( - wine_bunch.data, - wine_bunch.target, - train_size=1 - test_size, - random_state=random_state, - ) - x_train, x_val, y_train, y_val = train_test_split( - x, y, train_size=train_size / (1 - test_size), random_state=random_state - ) - x_transformer = MinMaxScaler() - - transformed_x_train = x_transformer.fit_transform(x_train) - transformed_x_test = x_transformer.transform(x_test) - - transformed_x_train = torch.tensor(transformed_x_train, dtype=torch.float) - transformed_y_train = torch.tensor(y_train.to_numpy(), dtype=torch.long) - - transformed_x_test = torch.tensor(transformed_x_test, dtype=torch.float) - transformed_y_test = torch.tensor(y_test.to_numpy(), dtype=torch.long) - - transformed_x_val = x_transformer.transform(x_val) - transformed_x_val = torch.tensor(transformed_x_val, dtype=torch.float) - transformed_y_val = torch.tensor(y_val.to_numpy(), dtype=torch.long) - return ( - (transformed_x_train, transformed_y_train), - (transformed_x_val, transformed_y_val), - (transformed_x_test, transformed_y_test), - wine_bunch.feature_names, - ) - - -def synthetic_classification_dataset( - mus: np.ndarray, - sigma: float, - num_samples: int, - train_size: float, - test_size: float, - random_seed=None, -) -> Tuple[Tuple[Any, Any], Tuple[Any, Any], Tuple[Any, Any]]: - """Sample from a uniform Gaussian mixture model. - - :param mus: 2d-matrix [CxD] with the means of the components in the rows. - :param sigma: Standard deviation of each dimension of each component. - :param num_samples: The number of samples to generate. - :param train_size: fraction of points used for training dataset - :param test_size: fraction of points used for test dataset - :param random_seed: fix random seed. If None, no random seed is set. - :returns: A tuple of matrix x of shape [NxD] and target vector y of shape [N]. - """ - num_features = mus.shape[1] - num_classes = mus.shape[0] - gaussian_cov = sigma * np.eye(num_features) - gaussian_chol = np.linalg.cholesky(gaussian_cov) - y = np.random.randint(num_classes, size=num_samples) - x = ( - np.einsum( - "ij,kj->ki", - gaussian_chol, - np.random.normal(size=[num_samples, num_features]), - ) - + mus[y] - ) - x, x_test, y, y_test = train_test_split( - x, y, train_size=1 - test_size, random_state=random_seed - ) - x_train, x_val, y_train, y_val = train_test_split( - x, y, train_size=train_size / (1 - test_size), random_state=random_seed - ) - return (x_train, y_train), (x_val, y_val), (x_test, y_test) - - -def decision_boundary_fixed_variance_2d( - mu_1: np.ndarray, mu_2: np.ndarray -) -> Callable[[np.ndarray], np.ndarray]: - """ - Closed-form solution for decision boundary dot(a, b) + b = 0 with fixed variance. - :param mu_1: First mean. - :param mu_2: Second mean. - :returns: A callable which converts a continuous line (-infty, infty) to the decision boundary in feature space. - """ - a = np.asarray([[0, 1], [-1, 0]]) @ (mu_2 - mu_1) - b = (mu_1 + mu_2) / 2 - a = a.reshape([1, -1]) - return lambda z: z.reshape([-1, 1]) * a + b # type: ignore diff --git a/src/pydvl/utils/functional.py b/src/pydvl/utils/functional.py new file mode 100644 index 000000000..879068b9c --- /dev/null +++ b/src/pydvl/utils/functional.py @@ -0,0 +1,108 @@ +""" +Supporting utilities for manipulating arguments of functions. +""" + +from __future__ import annotations + +import inspect +from functools import partial +from typing import Callable, Set, Union + +__all__ = ["maybe_add_argument"] + + +def _accept_additional_argument(*args, fun: Callable, arg: str, **kwargs): + """Calls the given function with the given positional and keyword arguments, + removing `arg` from the keyword arguments. + + Args: + args: Positional arguments to pass to the function. + fun: The function to call. + arg: The name of the argument to remove. + kwargs: Keyword arguments to pass to the function. + + Returns: + The return value of the function. + """ + try: + del kwargs[arg] + except KeyError: + pass + + return fun(*args, **kwargs) + + +def free_arguments(fun: Union[Callable, partial]) -> Set[str]: + """Computes the set of free arguments for a function or + [functools.partial][] object. + + All arguments of a function are considered free unless they are set by a + partial. For example, if `f = partial(g, a=1)`, then `a` is not a free + argument of `f`. + + Args: + fun: A callable or a [partial object][]. + + Returns: + The set of free arguments of `fun`. + + !!! tip "New in version 0.7.0" + """ + args_set_by_partial: Set[str] = set() + + def _rec_unroll_partial_function_args(g: Union[Callable, partial]) -> Callable: + """Stores arguments and recursively call itself if `g` is a + [functools.partial][] object. In the end, returns the initially wrapped + function. + + This handles the construct `partial(_accept_additional_argument, *args, + **kwargs)` that is used by `maybe_add_argument`. + + Args: + g: A partial or a function to unroll. + + Returns: + Initial wrapped function. + """ + nonlocal args_set_by_partial + + if isinstance(g, partial) and g.func == _accept_additional_argument: + arg = g.keywords["arg"] + if arg in args_set_by_partial: + args_set_by_partial.remove(arg) + return _rec_unroll_partial_function_args(g.keywords["fun"]) + elif isinstance(g, partial): + args_set_by_partial.update(g.keywords.keys()) + args_set_by_partial.update(g.args) + return _rec_unroll_partial_function_args(g.func) + else: + return g + + wrapped_fn = _rec_unroll_partial_function_args(fun) + sig = inspect.signature(wrapped_fn) + return args_set_by_partial | set(sig.parameters.keys()) + + +def maybe_add_argument(fun: Callable, new_arg: str) -> Callable: + """Wraps a function to accept the given keyword parameter if it doesn't + already. + + If `fun` already takes a keyword parameter of name `new_arg`, then it is + returned as is. Otherwise, a wrapper is returned which merely ignores the + argument. + + Args: + fun: The function to wrap + new_arg: The name of the argument that the new function will accept + (and ignore). + + Returns: + A new function accepting one more keyword argument. + + !!! tip "Changed in version 0.7.0" + Ability to work with partials. + """ + if new_arg in free_arguments(fun): + return fun + + return partial(_accept_additional_argument, fun=fun, arg=new_arg) diff --git a/src/pydvl/utils/numeric.py b/src/pydvl/utils/numeric.py index fbe8aabab..d8b1ce915 100644 --- a/src/pydvl/utils/numeric.py +++ b/src/pydvl/utils/numeric.py @@ -10,11 +10,10 @@ import numpy as np from numpy.typing import NDArray +from pydvl.utils.types import Seed + __all__ = [ "running_moments", - "linear_regression_analytical_derivative_d2_theta", - "linear_regression_analytical_derivative_d_theta", - "linear_regression_analytical_derivative_d_x_d_theta", "num_samples_permutation_hoeffding", "powerset", "random_matrix_with_condition_number", @@ -31,16 +30,22 @@ def powerset(s: NDArray[T]) -> Iterator[Collection[T]]: """Returns an iterator for the power set of the argument. Subsets are generated in sequence by growing size. See - :func:`random_powerset` for random sampling. - - >>> import numpy as np - >>> from pydvl.utils.numeric import powerset - >>> list(powerset(np.array((1,2)))) - [(), (1,), (2,), (1, 2)] - - :param s: The set to use - :return: An iterator - :raises TypeError: If the argument is not an ``Iterable``. + [random_powerset()][pydvl.utils.numeric.random_powerset] for random + sampling. + + ??? Example + ``` pycon + >>> import numpy as np + >>> from pydvl.utils.numeric import powerset + >>> list(powerset(np.array((1,2)))) + [(), (1,), (2,), (1, 2)] + ``` + + Args: + s: The set to use + + Returns: + An iterator over all subsets of the set of indices `s`. """ return chain.from_iterable(combinations(s, r) for r in range(len(s) + 1)) @@ -53,93 +58,127 @@ def num_samples_permutation_hoeffding(eps: float, delta: float, u_range: float) be ε-close to the true quantity, if at least this many permutations are sampled. - :param eps: ε > 0 - :param delta: 0 < δ <= 1 - :param u_range: Range of the :class:`~pydvl.utils.utility.Utility` function - :return: Number of _permutations_ required to guarantee ε-correct Shapley - values with probability 1-δ + Args: + eps: ε > 0 + delta: 0 < δ <= 1 + u_range: Range of the [Utility][pydvl.utils.utility.Utility] function + + Returns: + Number of _permutations_ required to guarantee ε-correct Shapley + values with probability 1-δ """ return int(np.ceil(np.log(2 / delta) * 2 * u_range**2 / eps**2)) -def random_subset(s: NDArray[T], q: float = 0.5) -> NDArray[T]: +def random_subset( + s: NDArray[T], + q: float = 0.5, + seed: Optional[Seed] = None, +) -> NDArray[T]: """Returns one subset at random from ``s``. - :param s: set to sample from - :param q: Sampling probability for elements. The default 0.5 yields a - uniform distribution over the power set of s. - :return: the subset + Args: + s: set to sample from + q: Sampling probability for elements. The default 0.5 yields a + uniform distribution over the power set of s. + seed: Either an instance of a numpy random number generator or a seed for it. + + Returns: + The subset """ - rng = np.random.default_rng() + rng = np.random.default_rng(seed) selection = rng.uniform(size=len(s)) > q return s[selection] def random_powerset( - s: NDArray[T], n_samples: Optional[int] = None, q: float = 0.5 + s: NDArray[T], + n_samples: Optional[int] = None, + q: float = 0.5, + seed: Optional[Seed] = None, ) -> Generator[NDArray[T], None, None]: """Samples subsets from the power set of the argument, without pre-generating all subsets and in no order. - See `powerset()` if you wish to deterministically generate all subsets. + See [powerset][pydvl.utils.numeric.powerset] if you wish to deterministically generate all subsets. To generate subsets, `len(s)` Bernoulli draws with probability `q` are drawn. The default value of `q = 0.5` provides a uniform distribution over the power set of `s`. Other choices can be used e.g. to implement - :func:`Owen sampling - `. + [owen_sampling_shapley][pydvl.value.shapley.owen.owen_sampling_shapley]. + + Args: + s: set to sample from + n_samples: if set, stop the generator after this many steps. + Defaults to `np.iinfo(np.int32).max` + q: Sampling probability for elements. The default 0.5 yields a + uniform distribution over the power set of s. + seed: Either an instance of a numpy random number generator or a seed for it. - :param s: set to sample from - :param n_samples: if set, stop the generator after this many steps. - Defaults to `np.iinfo(np.int32).max` - :param q: Sampling probability for elements. The default 0.5 yields a - uniform distribution over the power set of s. + Returns: + Samples from the power set of `s`. - :return: Samples from the power set of s - :raises: TypeError: if the data `s` is not a NumPy array - :raises: ValueError: if the element sampling probability is not in [0,1] + Raises: + ValueError: if the element sampling probability is not in [0,1] """ - if not isinstance(s, np.ndarray): - raise TypeError("Set must be an NDArray") if q < 0 or q > 1: raise ValueError("Element sampling probability must be in [0,1]") + rng = np.random.default_rng(seed) total = 1 if n_samples is None: n_samples = np.iinfo(np.int32).max while total <= n_samples: - yield random_subset(s, q) + yield random_subset(s, q, seed=rng) total += 1 -def random_subset_of_size(s: NDArray[T], size: int) -> NDArray[T]: +def random_subset_of_size( + s: NDArray[T], + size: int, + seed: Optional[Seed] = None, +) -> NDArray[T]: """Samples a random subset of given size uniformly from the powerset - of ``s``. + of `s`. - :param s: Set to sample from - :param size: Size of the subset to generate - :return: The subset - :raises ValueError: If size > len(s) + Args: + s: Set to sample from + size: Size of the subset to generate + seed: Either an instance of a numpy random number generator or a seed for it. + + Returns: + The subset + + Raises + ValueError: If size > len(s) """ if size > len(s): raise ValueError("Cannot sample subset larger than set") - rng = np.random.default_rng() + rng = np.random.default_rng(seed) return rng.choice(s, size=size, replace=False) -def random_matrix_with_condition_number(n: int, condition_number: float) -> "NDArray": +def random_matrix_with_condition_number( + n: int, condition_number: float, seed: Optional[Seed] = None +) -> NDArray: """Constructs a square matrix with a given condition number. Taken from: - https://gist.github.com/bstellato/23322fe5d87bb71da922fbc41d658079#file-random_mat_condition_number-py + [https://gist.github.com/bstellato/23322fe5d87bb71da922fbc41d658079#file-random_mat_condition_number-py]( + https://gist.github.com/bstellato/23322fe5d87bb71da922fbc41d658079#file-random_mat_condition_number-py) Also see: - https://math.stackexchange.com/questions/1351616/condition-number-of-ata. + [https://math.stackexchange.com/questions/1351616/condition-number-of-ata]( + https://math.stackexchange.com/questions/1351616/condition-number-of-ata). + + Args: + n: size of the matrix + condition_number: duh + seed: Either an instance of a numpy random number generator or a seed for it. - :param n: size of the matrix - :param condition_number: duh - :return: An (n,n) matrix with the requested condition number. + Returns: + An (n,n) matrix with the requested condition number. """ if n < 2: raise ValueError("Matrix size must be at least 2") @@ -147,6 +186,7 @@ def random_matrix_with_condition_number(n: int, condition_number: float) -> "NDA if condition_number <= 1: raise ValueError("Condition number must be greater than 1") + rng = np.random.default_rng(seed) log_condition_number = np.log(condition_number) exp_vec = np.arange( -log_condition_number / 4.0, @@ -156,80 +196,13 @@ def random_matrix_with_condition_number(n: int, condition_number: float) -> "NDA exp_vec = exp_vec[:n] s: np.ndarray = np.exp(exp_vec) S = np.diag(s) - U, _ = np.linalg.qr((np.random.rand(n, n) - 5.0) * 200) - V, _ = np.linalg.qr((np.random.rand(n, n) - 5.0) * 200) + U, _ = np.linalg.qr((rng.uniform(size=(n, n)) - 5.0) * 200) + V, _ = np.linalg.qr((rng.uniform(size=(n, n)) - 5.0) * 200) P: np.ndarray = U.dot(S).dot(V.T) P = P.dot(P.T) return P -def linear_regression_analytical_derivative_d_theta( - linear_model: Tuple["NDArray", "NDArray"], x: "NDArray", y: "NDArray" -) -> "NDArray": - """ - :param linear_model: A tuple of np.ndarray' of shape [NxM] and [N] representing A and b respectively. - :param x: A np.ndarray of shape [BxM]. - :param y: A np.nparray of shape [BxN]. - :returns: A np.ndarray of shape [Bx((N+1)*M)], where each row vector is [d_theta L(x, y), d_b L(x, y)] - """ - - A, b = linear_model - n, m = list(A.shape) - residuals = x @ A.T + b - y - kron_product = np.expand_dims(residuals, axis=2) * np.expand_dims(x, axis=1) - test_grads = np.reshape(kron_product, [-1, n * m]) - full_grads = np.concatenate((test_grads, residuals), axis=1) - return full_grads / n # type: ignore - - -def linear_regression_analytical_derivative_d2_theta( - linear_model: Tuple["NDArray", "NDArray"], x: "NDArray", y: "NDArray" -) -> "NDArray": - """ - :param linear_model: A tuple of np.ndarray' of shape [NxM] and [N] representing A and b respectively. - :param x: A np.ndarray of shape [BxM], - :param y: A np.nparray of shape [BxN]. - :returns: A np.ndarray of shape [((N+1)*M)x((N+1)*M)], representing the Hessian. It gets averaged over all samples. - """ - A, b = linear_model - n, m = tuple(A.shape) - d2_theta = np.einsum("ia,ib->iab", x, x) - d2_theta = np.mean(d2_theta, axis=0) - d2_theta = np.kron(np.eye(n), d2_theta) - d2_b = np.eye(n) - mean_x = np.mean(x, axis=0, keepdims=True) - d_theta_d_b = np.kron(np.eye(n), mean_x) - top_matrix = np.concatenate((d2_theta, d_theta_d_b.T), axis=1) - bottom_matrix = np.concatenate((d_theta_d_b, d2_b), axis=1) - full_matrix = np.concatenate((top_matrix, bottom_matrix), axis=0) - return full_matrix / n # type: ignore - - -def linear_regression_analytical_derivative_d_x_d_theta( - linear_model: Tuple["NDArray", "NDArray"], x: "NDArray", y: "NDArray" -) -> "NDArray": - """ - :param linear_model: A tuple of np.ndarray of shape [NxM] and [N] representing A and b respectively. - :param x: A np.ndarray of shape [BxM]. - :param y: A np.nparray of shape [BxN]. - :returns: A np.ndarray of shape [Bx((N+1)*M)xM], representing the derivative. - """ - - A, b = linear_model - N, M = tuple(A.shape) - residuals = x @ A.T + b - y - B = len(x) - outer_product_matrix = np.einsum("ab,ic->iacb", A, x) - outer_product_matrix = np.reshape(outer_product_matrix, [B, M * N, M]) - tiled_identity = np.tile(np.expand_dims(np.eye(M), axis=0), [B, N, 1]) - outer_product_matrix += tiled_identity * np.expand_dims( - np.repeat(residuals, M, axis=1), axis=2 - ) - b_part_derivative = np.tile(np.expand_dims(A, axis=0), [B, 1, 1]) - full_derivative = np.concatenate((outer_product_matrix, b_part_derivative), axis=1) - return full_derivative / N # type: ignore - - @overload def running_moments( previous_avg: float, previous_variance: float, count: int, new_value: float @@ -256,23 +229,23 @@ def running_moments( """Uses Welford's algorithm to calculate the running average and variance of a set of numbers. - See `Welford's algorithm in wikipedia - `_ + See [Welford's algorithm in wikipedia](https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Welford's_online_algorithm) - .. warning:: - This is not really using Welford's correction for numerical stability - for the variance. (FIXME) + !!! Warning + This is not really using Welford's correction for numerical stability + for the variance. (FIXME) - .. todo:: - This could be generalised to arbitrary moments. See `this paper - `_ + !!! Todo + This could be generalised to arbitrary moments. See [this paper](https://www.osti.gov/biblio/1028931) + Args: + previous_avg: average value at previous step + previous_variance: variance at previous step + count: number of points seen so far + new_value: new value in the series of numbers - :param previous_avg: average value at previous step - :param previous_variance: variance at previous step - :param count: number of points seen so far - :param new_value: new value in the series of numbers - :return: new_average, new_variance, calculated with the new count + Returns: + new_average, new_variance, calculated with the new count """ # broadcasted operations seem not to be supported by mypy, so we ignore the type new_average = (new_value + count * previous_avg) / (count + 1) # type: ignore @@ -288,10 +261,13 @@ def top_k_value_accuracy( """Computes the top-k accuracy for the estimated values by comparing indices of the highest k values. - :param y_true: Exact/true value - :param y_pred: Predicted/estimated value - :param k: Number of the highest values taken into account - :return: Accuracy + Args: + y_true: Exact/true value + y_pred: Predicted/estimated value + k: Number of the highest values taken into account + + Returns: + Accuracy """ top_k_exact_values = np.argsort(y_true)[-k:] top_k_pred_values = np.argsort(y_pred)[-k:] diff --git a/src/pydvl/utils/parallel/__init__.py b/src/pydvl/utils/parallel/__init__.py index be9f612f2..76319b197 100644 --- a/src/pydvl/utils/parallel/__init__.py +++ b/src/pydvl/utils/parallel/__init__.py @@ -1,3 +1,44 @@ +""" +This module provides a common interface to parallelization backends. The list of +supported backends is [here][pydvl.utils.parallel.backends]. Backends can be +selected with the `backend` argument of an instance of +[ParallelConfig][pydvl.utils.config.ParallelConfig], as seen in the examples +below. + +We use [executors][concurrent.futures.Executor] to submit tasks in parallel. The +basic high-level pattern is + +```python +from pydvl.utils.parallel import init_executo +from pydvl.utils.config import ParallelConfig + +config = ParallelConfig(backend="ray") +with init_executor(max_workers=1, config=config) as executor: + future = executor.submit(lambda x: x + 1, 1) + result = future.result() +assert result == 2 +``` + +Running a map-reduce job is also easy: + +```python +from pydvl.utils.parallel import init_executor +from pydvl.utils.config import ParallelConfig + +config = ParallelConfig(backend="joblib") +with init_executor(config=config) as executor: + results = list(executor.map(lambda x: x + 1, range(5))) +assert results == [1, 2, 3, 4, 5] +``` + +There is an alternative map-reduce implementation +[MapReduceJob][pydvl.utils.parallel.map_reduce.MapReduceJob] which internally +uses joblib's higher level API with `Parallel()` +""" from .backend import * +from .backends import * from .futures import * from .map_reduce import * + +if len(BaseParallelBackend.BACKENDS) == 0: + raise ImportError("No parallel backend found. Please install ray or joblib.") diff --git a/src/pydvl/utils/parallel/backend.py b/src/pydvl/utils/parallel/backend.py index f9840d77d..0191c7be6 100644 --- a/src/pydvl/utils/parallel/backend.py +++ b/src/pydvl/utils/parallel/backend.py @@ -1,65 +1,66 @@ +from __future__ import annotations + +import logging import os -from abc import ABCMeta, abstractmethod -from dataclasses import asdict -from typing import ( - Any, - Callable, - Dict, - Iterable, - List, - Optional, - Tuple, - Type, - TypeVar, - Union, -) - -import ray -from ray import ObjectRef +from abc import abstractmethod +from concurrent.futures import Executor +from enum import Flag, auto +from typing import Any, Callable, Type, TypeVar from ..config import ParallelConfig +from ..types import NoPublicConstructor -__all__ = ["init_parallel_backend", "effective_n_jobs", "available_cpus"] - -T = TypeVar("T") - -_PARALLEL_BACKENDS: Dict[str, "Type[BaseParallelBackend]"] = {} +__all__ = [ + "init_parallel_backend", + "effective_n_jobs", + "available_cpus", + "BaseParallelBackend", + "CancellationPolicy", +] -class NoPublicConstructor(ABCMeta): - """Metaclass that ensures a private constructor +log = logging.getLogger(__name__) - If a class uses this metaclass like this: - class SomeClass(metaclass=NoPublicConstructor): - pass +class CancellationPolicy(Flag): + """Policy to use when cancelling futures after exiting an Executor. - If you try to instantiate your class (`SomeClass()`), - a `TypeError` will be thrown. + !!! Note + Not all backends support all policies. - Taken almost verbatim from: - https://stackoverflow.com/a/64682734 + Attributes: + NONE: Do not cancel any futures. + PENDING: Cancel all pending futures, but not running ones. + RUNNING: Cancel all running futures, but not pending ones. + ALL: Cancel all pending and running futures. """ - def __call__(cls, *args, **kwargs): - raise TypeError( - f"{cls.__module__}.{cls.__qualname__} cannot be initialized directly. " - "Use init_parallel_backend() instead." - ) - - def _create(cls, *args: Any, **kwargs: Any): - return super().__call__(*args, **kwargs) + NONE = 0 + PENDING = auto() + RUNNING = auto() + ALL = PENDING | RUNNING class BaseParallelBackend(metaclass=NoPublicConstructor): - """Abstract base class for all parallel backends""" + """Abstract base class for all parallel backends.""" - config: Dict[str, Any] = {} + config: dict[str, Any] = {} + BACKENDS: dict[str, "Type[BaseParallelBackend]"] = {} def __init_subclass__(cls, *, backend_name: str, **kwargs): - global _PARALLEL_BACKENDS - _PARALLEL_BACKENDS[backend_name] = cls super().__init_subclass__(**kwargs) + BaseParallelBackend.BACKENDS[backend_name] = cls + + @classmethod + @abstractmethod + def executor( + cls, + max_workers: int | None = None, + config: ParallelConfig = ParallelConfig(), + cancel_futures: CancellationPolicy = CancellationPolicy.PENDING, + ) -> Executor: + """Returns an executor for the parallel backend.""" + ... @abstractmethod def get(self, v: Any, *args, **kwargs): @@ -91,149 +92,54 @@ def __repr__(self) -> str: return f"<{self.__class__.__name__}: {self.config}>" -class SequentialParallelBackend(BaseParallelBackend, backend_name="sequential"): - """Class used to run jobs sequentially and locally. - - It shouldn't be initialized directly. You should instead call - :func:`~pydvl.utils.parallel.backend.init_parallel_backend`. - - :param config: instance of :class:`~pydvl.utils.config.ParallelConfig` with number of cpus - """ - - def __init__(self, config: ParallelConfig): - self.config = {} - - def get(self, v: Any, *args, **kwargs): - return v - - def put(self, v: Any, *args, **kwargs) -> Any: - return v - - def wrap(self, fun: Callable, **kwargs) -> Callable: - """Wraps a function for sequential execution. - - This is a noop and kwargs are ignored.""" - return fun - - def wait(self, v: Any, *args, **kwargs) -> Tuple[list, list]: - return v, [] - - def _effective_n_jobs(self, n_jobs: int) -> int: - return 1 - - -class RayParallelBackend(BaseParallelBackend, backend_name="ray"): - """Class used to wrap ray to make it transparent to algorithms. - - It shouldn't be initialized directly. You should instead call - :func:`~pydvl.utils.parallel.backend.init_parallel_backend`. - - :param config: instance of :class:`~pydvl.utils.config.ParallelConfig` with - cluster address, number of cpus, etc. - """ - - def __init__(self, config: ParallelConfig): - config_dict = asdict(config) - config_dict.pop("backend") - n_cpus_local = config_dict.pop("n_cpus_local") - if config_dict.get("address", None) is None: - config_dict["num_cpus"] = n_cpus_local - self.config = config_dict - if not ray.is_initialized(): - ray.init(**self.config) - - def get( - self, - v: Union[ObjectRef, Iterable[ObjectRef], T], - *args, - **kwargs, - ) -> Union[T, Any]: - timeout: Optional[float] = kwargs.get("timeout", None) - if isinstance(v, ObjectRef): - return ray.get(v, timeout=timeout) - elif isinstance(v, Iterable): - return [self.get(x, timeout=timeout) for x in v] - else: - return v - - def put(self, v: T, *args, **kwargs) -> Union["ObjectRef[T]", T]: - try: - return ray.put(v, **kwargs) # type: ignore - except TypeError: - return v # type: ignore +def init_parallel_backend(config: ParallelConfig) -> BaseParallelBackend: + """Initializes the parallel backend and returns an instance of it. - def wrap(self, fun: Callable, **kwargs) -> Callable: - """Wraps a function as a ray remote. - - :param fun: the function to wrap - :param kwargs: keyword arguments to pass to @ray.remote - - :return: The `.remote` method of the ray `RemoteFunction`. - """ - if len(kwargs) > 0: - return ray.remote(**kwargs)(fun).remote # type: ignore - return ray.remote(fun).remote # type: ignore - - def wait( - self, - v: List["ObjectRef"], - *args, - **kwargs, - ) -> Tuple[List[ObjectRef], List[ObjectRef]]: - num_returns: int = kwargs.get("num_returns", 1) - timeout: Optional[float] = kwargs.get("timeout", None) - return ray.wait( # type: ignore - v, - num_returns=num_returns, - timeout=timeout, - ) + The following example creates a parallel backend instance with the default + configuration, which is a local joblib backend. - def _effective_n_jobs(self, n_jobs: int) -> int: - if n_jobs < 0: - ray_cpus = int(ray._private.state.cluster_resources()["CPU"]) # type: ignore - eff_n_jobs = ray_cpus - else: - eff_n_jobs = n_jobs - return eff_n_jobs + ??? Example + ``` python + config = ParallelConfig() + parallel_backend = init_parallel_backend(config) + ``` + To create a parallel backend instance with a different backend, e.g. ray, + you can pass the backend name as a string to the constructor of + [ParallelConfig][pydvl.utils.config.ParallelConfig]. -def init_parallel_backend( - config: ParallelConfig, -) -> BaseParallelBackend: - """Initializes the parallel backend and returns an instance of it. + ??? Example + ```python + config = ParallelConfig(backend="ray") + parallel_backend = init_parallel_backend(config) + ``` - :param config: instance of :class:`~pydvl.utils.config.ParallelConfig` - with cluster address, number of cpus, etc. + Args: + config: instance of [ParallelConfig][pydvl.utils.config.ParallelConfig] + with cluster address, number of cpus, etc. - :Example: - - >>> from pydvl.utils.parallel.backend import init_parallel_backend - >>> from pydvl.utils.config import ParallelConfig - >>> config = ParallelConfig(backend="ray") - >>> parallel_backend = init_parallel_backend(config) - >>> parallel_backend - """ try: - parallel_backend_cls = _PARALLEL_BACKENDS[config.backend] + parallel_backend_cls = BaseParallelBackend.BACKENDS[config.backend] except KeyError: raise NotImplementedError(f"Unexpected parallel backend {config.backend}") - parallel_backend = parallel_backend_cls._create(config) - return parallel_backend # type: ignore + return parallel_backend_cls.create(config) # type: ignore def available_cpus() -> int: """Platform-independent count of available cores. FIXME: do we really need this or is `os.cpu_count` enough? Is this portable? - :return: Number of cores, or 1 if it is not possible to determine. + + Returns: + Number of cores, or 1 if it is not possible to determine. """ from platform import system if system() != "Linux": return os.cpu_count() or 1 - return len(os.sched_getaffinity(0)) + return len(os.sched_getaffinity(0)) # type: ignore def effective_n_jobs(n_jobs: int, config: ParallelConfig = ParallelConfig()) -> int: @@ -242,13 +148,18 @@ def effective_n_jobs(n_jobs: int, config: ParallelConfig = ParallelConfig()) -> This number may vary depending on the parallel backend and the resources available. - :param n_jobs: the number of jobs requested. If -1, the number of available - CPUs is returned. - :param config: instance of :class:`~pydvl.utils.config.ParallelConfig` with - cluster address, number of cpus, etc. - :return: the effective number of jobs, guaranteed to be >= 1. - :raises RuntimeError: if the effective number of jobs returned by the backend - is < 1. + Args: + n_jobs: the number of jobs requested. If -1, the number of available + CPUs is returned. + config: instance of [ParallelConfig][pydvl.utils.config.ParallelConfig] with + cluster address, number of cpus, etc. + + Returns: + The effective number of jobs, guaranteed to be >= 1. + + Raises: + RuntimeError: if the effective number of jobs returned by the backend + is < 1. """ parallel_backend = init_parallel_backend(config) if (eff_n_jobs := parallel_backend.effective_n_jobs(n_jobs)) < 1: diff --git a/src/pydvl/utils/parallel/backends/__init__.py b/src/pydvl/utils/parallel/backends/__init__.py new file mode 100644 index 000000000..758d8dab7 --- /dev/null +++ b/src/pydvl/utils/parallel/backends/__init__.py @@ -0,0 +1,6 @@ +from .joblib import * + +try: + from .ray import * +except ImportError: + pass diff --git a/src/pydvl/utils/parallel/backends/joblib.py b/src/pydvl/utils/parallel/backends/joblib.py new file mode 100644 index 000000000..c75618fbf --- /dev/null +++ b/src/pydvl/utils/parallel/backends/joblib.py @@ -0,0 +1,74 @@ +from __future__ import annotations + +from concurrent.futures import Executor +from typing import Callable, TypeVar, cast + +import joblib +from joblib import delayed +from joblib.externals.loky import get_reusable_executor + +from pydvl.utils import ParallelConfig +from pydvl.utils.parallel.backend import BaseParallelBackend, CancellationPolicy, log + +__all__ = ["JoblibParallelBackend"] + +T = TypeVar("T") + + +class JoblibParallelBackend(BaseParallelBackend, backend_name="joblib"): + """Class used to wrap joblib to make it transparent to algorithms. + + It shouldn't be initialized directly. You should instead call + [init_parallel_backend()][pydvl.utils.parallel.backend.init_parallel_backend]. + + Args: + config: instance of [ParallelConfig][pydvl.utils.config.ParallelConfig] + with cluster address, number of cpus, etc. + """ + + def __init__(self, config: ParallelConfig): + self.config = { + "logging_level": config.logging_level, + "n_jobs": config.n_cpus_local, + } + + @classmethod + def executor( + cls, + max_workers: int | None = None, + config: ParallelConfig = ParallelConfig(), + cancel_futures: CancellationPolicy = CancellationPolicy.NONE, + ) -> Executor: + if cancel_futures not in (CancellationPolicy.NONE, False): + log.warning( + "Cancellation of futures is not supported by the joblib backend" + ) + return cast(Executor, get_reusable_executor(max_workers=max_workers)) + + def get(self, v: T, *args, **kwargs) -> T: + return v + + def put(self, v: T, *args, **kwargs) -> T: + return v + + def wrap(self, fun: Callable, **kwargs) -> Callable: + """Wraps a function as a joblib delayed. + + Args: + fun: the function to wrap + + Returns: + The delayed function. + """ + return delayed(fun) # type: ignore + + def wait(self, v: list[T], *args, **kwargs) -> tuple[list[T], list[T]]: + return v, [] + + def _effective_n_jobs(self, n_jobs: int) -> int: + if self.config["n_jobs"] is None: + maximum_n_jobs = joblib.effective_n_jobs() + else: + maximum_n_jobs = self.config["n_jobs"] + eff_n_jobs: int = min(joblib.effective_n_jobs(n_jobs), maximum_n_jobs) + return eff_n_jobs diff --git a/src/pydvl/utils/parallel/backends/ray.py b/src/pydvl/utils/parallel/backends/ray.py new file mode 100644 index 000000000..a0f0f6603 --- /dev/null +++ b/src/pydvl/utils/parallel/backends/ray.py @@ -0,0 +1,92 @@ +from __future__ import annotations + +from concurrent.futures import Executor +from typing import Any, Callable, Iterable, TypeVar + +import ray +from ray import ObjectRef +from ray.util.joblib import register_ray + +from pydvl.utils import ParallelConfig +from pydvl.utils.parallel.backend import BaseParallelBackend, CancellationPolicy + +__all__ = ["RayParallelBackend"] + + +T = TypeVar("T") + + +class RayParallelBackend(BaseParallelBackend, backend_name="ray"): + """Class used to wrap ray to make it transparent to algorithms. + + It shouldn't be initialized directly. You should instead call + [init_parallel_backend()][pydvl.utils.parallel.backend.init_parallel_backend]. + + Args: + config: instance of [ParallelConfig][pydvl.utils.config.ParallelConfig] + with cluster address, number of cpus, etc. + """ + + def __init__(self, config: ParallelConfig): + self.config = {"address": config.address, "logging_level": config.logging_level} + if self.config["address"] is None: + self.config["num_cpus"] = config.n_cpus_local + if not ray.is_initialized(): + ray.init(**self.config) + # Register ray joblib backend + register_ray() + + @classmethod + def executor( + cls, + max_workers: int | None = None, + config: ParallelConfig = ParallelConfig(), + cancel_futures: CancellationPolicy = CancellationPolicy.PENDING, + ) -> Executor: + from pydvl.utils.parallel.futures.ray import RayExecutor + + return RayExecutor(max_workers, config=config, cancel_futures=cancel_futures) # type: ignore + + def get(self, v: ObjectRef | Iterable[ObjectRef] | T, *args, **kwargs) -> T | Any: + timeout: float | None = kwargs.get("timeout", None) + if isinstance(v, ObjectRef): + return ray.get(v, timeout=timeout) + elif isinstance(v, Iterable): + return [self.get(x, timeout=timeout) for x in v] + else: + return v + + def put(self, v: T, *args, **kwargs) -> ObjectRef[T] | T: + try: + return ray.put(v, **kwargs) # type: ignore + except TypeError: + return v # type: ignore + + def wrap(self, fun: Callable, **kwargs) -> Callable: + """Wraps a function as a ray remote. + + Args: + fun: the function to wrap + kwargs: keyword arguments to pass to @ray.remote + + Returns: + The `.remote` method of the ray `RemoteFunction`. + """ + if len(kwargs) > 0: + return ray.remote(**kwargs)(fun).remote # type: ignore + return ray.remote(fun).remote # type: ignore + + def wait( + self, v: list[ObjectRef], *args, **kwargs + ) -> tuple[list[ObjectRef], list[ObjectRef]]: + num_returns: int = kwargs.get("num_returns", 1) + timeout: float | None = kwargs.get("timeout", None) + return ray.wait(v, num_returns=num_returns, timeout=timeout) # type: ignore + + def _effective_n_jobs(self, n_jobs: int) -> int: + ray_cpus = int(ray._private.state.cluster_resources()["CPU"]) # type: ignore + if n_jobs < 0: + eff_n_jobs = ray_cpus + else: + eff_n_jobs = min(n_jobs, ray_cpus) + return eff_n_jobs diff --git a/src/pydvl/utils/parallel/futures/__init__.py b/src/pydvl/utils/parallel/futures/__init__.py index 93b94fc27..937eb2a95 100644 --- a/src/pydvl/utils/parallel/futures/__init__.py +++ b/src/pydvl/utils/parallel/futures/__init__.py @@ -1,9 +1,14 @@ -from concurrent.futures import Executor, ThreadPoolExecutor +from concurrent.futures import Executor from contextlib import contextmanager from typing import Generator, Optional from pydvl.utils.config import ParallelConfig -from pydvl.utils.parallel.futures.ray import RayExecutor +from pydvl.utils.parallel.backend import BaseParallelBackend + +try: + from pydvl.utils.parallel.futures.ray import RayExecutor +except ImportError: + pass __all__ = ["init_executor"] @@ -14,41 +19,35 @@ def init_executor( config: ParallelConfig = ParallelConfig(), **kwargs, ) -> Generator[Executor, None, None]: - """Initializes a futures executor based on the passed parallel configuration object. - - :param max_workers: Maximum number of concurrent tasks. - :param config: instance of :class:`~pydvl.utils.config.ParallelConfig` with cluster address, number of cpus, etc. - :param kwargs: Other optional parameter that will be passed to the executor. - - :Example: - - >>> from pydvl.utils.parallel.futures import init_executor - >>> from pydvl.utils.config import ParallelConfig - >>> config = ParallelConfig(backend="ray") - >>> with init_executor(max_workers=3, config=config) as executor: - ... pass - - >>> from pydvl.utils.parallel.futures import init_executor - >>> with init_executor() as executor: - ... future = executor.submit(lambda x: x + 1, 1) - ... result = future.result() - ... - >>> print(result) - 2 - - >>> from pydvl.utils.parallel.futures import init_executor - >>> with init_executor() as executor: - ... results = list(executor.map(lambda x: x + 1, range(5))) - ... - >>> print(results) - [1, 2, 3, 4, 5] - + """Initializes a futures executor for the given parallel configuration. + + Args: + max_workers: Maximum number of concurrent tasks. + config: instance of [ParallelConfig][pydvl.utils.config.ParallelConfig] + with cluster address, number of cpus, etc. + kwargs: Other optional parameter that will be passed to the executor. + + + ??? Examples + ``` python + from pydvl.utils.parallel.futures import init_executor + from pydvl.utils.config import ParallelConfig + config = ParallelConfig(backend="ray") + with init_executor(max_workers=1, config=config) as executor: + future = executor.submit(lambda x: x + 1, 1) + result = future.result() + assert result == 2 + ``` + ``` python + from pydvl.utils.parallel.futures import init_executor + with init_executor() as executor: + results = list(executor.map(lambda x: x + 1, range(5))) + assert results == [1, 2, 3, 4, 5] + ``` """ - if config.backend == "ray": - with RayExecutor(max_workers, config=config, **kwargs) as executor: - yield executor - elif config.backend == "sequential": - with ThreadPoolExecutor(1) as executor: - yield executor - else: - raise NotImplementedError(f"Unexpected parallel type {config.backend}") + try: + cls = BaseParallelBackend.BACKENDS[config.backend] + with cls.executor(max_workers=max_workers, config=config, **kwargs) as e: + yield e + except KeyError: + raise NotImplementedError(f"Unexpected parallel backend {config.backend}") diff --git a/src/pydvl/utils/parallel/futures/ray.py b/src/pydvl/utils/parallel/futures/ray.py index 62ad8d26b..677320396 100644 --- a/src/pydvl/utils/parallel/futures/ray.py +++ b/src/pydvl/utils/parallel/futures/ray.py @@ -1,21 +1,22 @@ import logging -import math import queue import sys import threading import time import types from concurrent.futures import Executor, Future -from dataclasses import asdict from typing import Any, Callable, Optional, TypeVar from weakref import WeakSet, ref import ray +from deprecate import deprecated from pydvl.utils import ParallelConfig __all__ = ["RayExecutor"] +from pydvl.utils.parallel import CancellationPolicy + T = TypeVar("T") logger = logging.getLogger(__name__) @@ -25,46 +26,59 @@ class RayExecutor(Executor): """Asynchronous executor using Ray that implements the concurrent.futures API. It shouldn't be initialized directly. You should instead call - :func:`~pydvl.utils.parallel.futures.init_executor`. - - :param max_workers: Maximum number of concurrent tasks. Each task can - request itself any number of vCPUs. You must ensure the product - of this value and the n_cpus_per_job parameter passed to submit() - does not exceed available cluster resources. - If set to None, it will default to the total number of vCPUs - in the ray cluster. - :param config: instance of :class:`~pydvl.utils.config.ParallelConfig` - with cluster address, number of cpus, etc. - :param cancel_futures_on_exit: If ``True``, all futures will be cancelled - when exiting the context created by using this class instance as a - context manager. It will be ignored when calling :meth:`shutdown` - directly. + [init_executor()][pydvl.utils.parallel.futures.init_executor]. + + Args: + max_workers: Maximum number of concurrent tasks. Each task can request + itself any number of vCPUs. You must ensure the product of this + value and the n_cpus_per_job parameter passed to submit() does not + exceed available cluster resources. If set to `None`, it will + default to the total number of vCPUs in the ray cluster. + config: instance of [ParallelConfig][pydvl.utils.config.ParallelConfig] + with cluster address, number of cpus, etc. + cancel_futures: Select which futures will be cancelled when exiting this + context manager. `Pending` is the default, which will cancel all + pending futures, but not running ones, as done by + [concurrent.futures.ProcessPoolExecutor][]. Additionally, `All` + cancels all pending and running futures, and `None` doesn't cancel + any. See [CancellationPolicy][pydvl.utils.parallel.backend.CancellationPolicy] """ + @deprecated( + target=True, + deprecated_in="0.7.0", + remove_in="0.8.0", + args_mapping={"cancel_futures_on_exit": "cancel_futures"}, + ) def __init__( self, max_workers: Optional[int] = None, *, config: ParallelConfig = ParallelConfig(), - cancel_futures_on_exit: bool = True, + cancel_futures: CancellationPolicy = CancellationPolicy.ALL, ): if config.backend != "ray": raise ValueError( - f"Parallel backend must be set to 'ray' and not {config.backend}" + f"Parallel backend must be set to 'ray' and not '{config.backend}'" ) if max_workers is not None: if max_workers <= 0: raise ValueError("max_workers must be greater than 0") max_workers = max_workers - self.cancel_futures_on_exit = cancel_futures_on_exit + if isinstance(cancel_futures, CancellationPolicy): + self._cancel_futures = cancel_futures + else: + self._cancel_futures = ( + CancellationPolicy.PENDING + if cancel_futures + else CancellationPolicy.NONE + ) + + self.config = {"address": config.address, "logging_level": config.logging_level} + if config.address is None: + self.config["num_cpus"] = config.n_cpus_local - config_dict = asdict(config) - config_dict.pop("backend") - n_cpus_local = config_dict.pop("n_cpus_local") - if config_dict.get("address", None) is None: - config_dict["num_cpus"] = n_cpus_local - self.config = config_dict if not ray.is_initialized(): ray.init(**self.config) @@ -73,7 +87,6 @@ def __init__( self._max_workers = int(ray._private.state.cluster_resources()["CPU"]) self._shutdown = False - self._cancel_pending_futures = False self._shutdown_lock = threading.Lock() self._queue_lock = threading.Lock() self._work_queue: "queue.Queue[Optional[_WorkItem]]" = queue.Queue( @@ -92,13 +105,17 @@ def submit(self, fn: Callable[..., T], *args, **kwargs) -> "Future[T]": Schedules the callable to be executed as fn(\*args, \**kwargs) and returns a Future instance representing the execution of the callable. - :param fn: Callable. - :param args: Positional arguments that will be passed to ``fn``. - :param kwargs: Keyword arguments that will be passed to ``fn``. - It can also optionally contain options for the ray remote function - as a dictionary as the keyword argument `remote_function_options`. - :return: A Future representing the given call. - :raises RuntimeError: If a task is submitted after the executor has been shut down. + Args: + fn: Callable. + args: Positional arguments that will be passed to `fn`. + kwargs: Keyword arguments that will be passed to `fn`. + It can also optionally contain options for the ray remote function + as a dictionary as the keyword argument `remote_function_options`. + Returns: + A Future representing the given call. + + Raises: + RuntimeError: If a task is submitted after the executor has been shut down. """ with self._shutdown_lock: logger.debug("executor acquired shutdown lock") @@ -120,12 +137,33 @@ def submit(self, fn: Callable[..., T], *args, **kwargs) -> "Future[T]": self._start_work_item_manager_thread() return future - def shutdown(self, wait: bool = True, *, cancel_futures: bool = False) -> None: + def shutdown( + self, wait: bool = True, *, cancel_futures: Optional[bool] = None + ) -> None: + """Clean up the resources associated with the Executor. + + This method tries to mimic the behaviour of + [Executor.shutdown][concurrent.futures.Executor.shutdown] + while allowing one more value for ``cancel_futures`` which instructs it + to use the [CancellationPolicy][pydvl.utils.parallel.backend.CancellationPolicy] + defined upon construction. + + Args: + wait: Whether to wait for pending futures to finish. + cancel_futures: Overrides the executor's default policy for + cancelling futures on exit. If ``True``, all pending futures are + cancelled, and if ``False``, no futures are cancelled. If ``None`` + (default), the executor's policy set at initialization is used. + """ logger.debug("executor shutting down") with self._shutdown_lock: logger.debug("executor acquired shutdown lock") self._shutdown = True - self._cancel_pending_futures = cancel_futures + self._cancel_futures = { + None: self._cancel_futures, + True: CancellationPolicy.PENDING, + False: CancellationPolicy.NONE, + }[cancel_futures] if wait: logger.debug("executor waiting for futures to finish") @@ -157,18 +195,13 @@ def _start_work_item_manager_thread(self) -> None: self._work_item_manager_thread.start() def __exit__(self, exc_type, exc_val, exc_tb): - """Exit the runtime context related to the RayExecutor object. - - This explicitly sets cancel_futures to be equal to cancel_futures_on_exit - attribute set at instantiation time in the call to the `shutdown()` method - which is different from the base Executor class' __exit__ method. - """ - self.shutdown(cancel_futures=self.cancel_futures_on_exit) + """Exit the runtime context related to the RayExecutor object.""" + self.shutdown() return False class _WorkItem: - """Inspired by code from: concurrent.futures.thread""" + """Inspired by code from: [concurrent.futures.thread][]""" def __init__( self, @@ -216,8 +249,8 @@ class _WorkItemManagerThread(threading.Thread): """Manages submitting the work items and throttling. It runs in a local thread. - - :param executor: An instance of RayExecutor that owns + Args: + executor: An instance of RayExecutor that owns this thread. A weakref will be owned by the manager as well as references to internal objects used to introspect the state of the executor. @@ -321,37 +354,43 @@ def flag_executor_shutting_down(self): executor = self.executor_reference() with self.shutdown_lock: logger.debug("work item manager thread acquired shutdown lock") - if executor is not None: - executor._shutdown = True - # Cancel pending work items if requested. - if executor._cancel_pending_futures: - logger.debug("forcefully cancelling running futures") - # We cancel the future's object references - # We cannot cancel a running future object. - for future in self.submitted_futures: - ray.cancel(future.object_ref) - # Drain all work items from the queues, - # and then cancel their associated futures. - # We empty the pending queue first. - logger.debug("cancelling pending work items") - while True: - with self.queue_lock: - try: - work_item = self.pending_queue.get_nowait() - except queue.Empty: - break - if work_item is not None: - work_item.future.cancel() - del work_item - while True: - with self.queue_lock: - try: - work_item = self.work_queue.get_nowait() - except queue.Empty: - break - if work_item is not None: - work_item.future.cancel() - del work_item - # Make sure we do this only once to not waste time looping - # on running processes over and over. - executor._cancel_pending_futures = False + if executor is None: + return + executor._shutdown = True + + if executor._cancel_futures & CancellationPolicy.PENDING: + # Drain all work items from the queues, + # and then cancel their associated futures. + # We empty the pending queue first. + logger.debug("cancelling pending work items") + while True: + with self.queue_lock: + try: + work_item = self.pending_queue.get_nowait() + except queue.Empty: + break + if work_item is not None: + work_item.future.cancel() + del work_item + while True: + with self.queue_lock: + try: + work_item = self.work_queue.get_nowait() + except queue.Empty: + break + if work_item is not None: + work_item.future.cancel() + del work_item + # Make sure we do this only once to not waste time looping + # on running processes over and over. + executor._cancel_futures &= ~CancellationPolicy.PENDING + + if executor._cancel_futures & CancellationPolicy.RUNNING: + logger.debug("forcefully cancelling running futures") + # We cancel the future's object references + # We cannot cancel a running future object. + for future in self.submitted_futures: + ray.cancel(future.object_ref) # type: ignore + # Make sure we do this only once to not waste time looping + # on running processes over and over. + executor._cancel_futures &= ~CancellationPolicy.RUNNING diff --git a/src/pydvl/utils/parallel/map_reduce.py b/src/pydvl/utils/parallel/map_reduce.py index c7fd3ff6a..149cd2752 100644 --- a/src/pydvl/utils/parallel/map_reduce.py +++ b/src/pydvl/utils/parallel/map_reduce.py @@ -1,149 +1,97 @@ -import inspect -from functools import singledispatch, update_wrapper +""" +This module contains a wrapper around joblib's `Parallel()` class that makes it +easy to run map-reduce jobs. + +!!! Deprecation notice + This interface might be deprecated or changed in a future release before 1.0 + +""" +from functools import reduce from itertools import accumulate, repeat -from typing import ( - Any, - Callable, - Dict, - Generic, - List, - Optional, - Sequence, - TypeVar, - Union, -) - -import numpy as np -import ray +from typing import Any, Collection, Dict, Generic, List, Optional, TypeVar, Union + +from joblib import Parallel, delayed +from numpy.random import SeedSequence from numpy.typing import NDArray -from ray import ObjectRef from ..config import ParallelConfig -from ..types import maybe_add_argument +from ..functional import maybe_add_argument +from ..types import MapFunction, ReduceFunction, Seed, ensure_seed_sequence from .backend import init_parallel_backend __all__ = ["MapReduceJob"] T = TypeVar("T") R = TypeVar("R") -Identity = lambda x, *args, **kwargs: x - -MapFunction = Callable[..., R] -ReduceFunction = Callable[[List[R]], R] -ChunkifyInputType = Union[NDArray[T], Sequence[T], T] - - -def _wrap_func_with_remote_args(func: Callable, *, timeout: Optional[float] = None): - def wrapper(*args, **kwargs): - args = list(args) - for i, v in enumerate(args[:]): - args[i] = _get_value(v, timeout=timeout) - for k, v in kwargs.items(): - kwargs[k] = _get_value(v, timeout=timeout) - return func(*args, **kwargs) - - try: - inspect.signature(func) - wrapper = update_wrapper(wrapper, func) - except ValueError: - # Doing it manually here because using update_wrapper from functools - # on numpy functions doesn't work with ray for some unknown reason. - wrapper.__name__ = func.__name__ - wrapper.__qualname__ = func.__qualname__ - wrapper.__doc__ = func.__doc__ - return wrapper - -@singledispatch -def _get_value(v: Any, *, timeout: Optional[float] = None) -> Any: - return v - -@_get_value.register -def _(v: ObjectRef, *, timeout: Optional[float] = None) -> Any: - return ray.get(v, timeout=timeout) - - -@_get_value.register -def _(v: np.ndarray, *, timeout: Optional[float] = None) -> NDArray: - return v - - -# Careful to use list as hint. The dispatch does not work with typing generics -@_get_value.register -def _(v: list, *, timeout: Optional[float] = None) -> List[Any]: - return [_get_value(x, timeout=timeout) for x in v] +def identity(x: Any, *args: Any, **kwargs: Any) -> Any: + return x class MapReduceJob(Generic[T, R]): - """Takes an embarrassingly parallel fun and runs it in ``n_jobs`` parallel + """Takes an embarrassingly parallel fun and runs it in `n_jobs` parallel jobs, splitting the data evenly into a number of chunks equal to the number of jobs. Typing information for objects of this class requires the type of the inputs - that are split for ``map_func`` and the type of its output. - - :param inputs: The input that will be split and passed to `map_func`. - if it's not a sequence object. It will be repeat ``n_jobs`` number of times. - :param map_func: Function that will be applied to the input chunks in each job. - :param reduce_func: Function that will be applied to the results of - ``map_func`` to reduce them. - :param map_kwargs: Keyword arguments that will be passed to ``map_func`` in - each job. Alternatively, one can use ``itertools.partial``. - :param reduce_kwargs: Keyword arguments that will be passed to ``reduce_func`` - in each job. Alternatively, one can use :func:`itertools.partial`. - :param config: Instance of :class:`~pydvl.utils.config.ParallelConfig` - with cluster address, number of cpus, etc. - :param n_jobs: Number of parallel jobs to run. Does not accept 0 - :param timeout: Amount of time in seconds to wait for remote results before - ... TODO - :param max_parallel_tasks: Maximum number of jobs to start in parallel. Any - tasks above this number won't be submitted to the backend before some - are done. This is to avoid swamping the work queue. Note that tasks have - a low memory footprint, so this is probably not a big concern, except - in the case of an infinite stream (not the case for MapReduceJob). See - https://docs.ray.io/en/latest/ray-core/patterns/limit-pending-tasks.html - - :Examples: - - A simple usage example with 2 jobs: - - >>> from pydvl.utils.parallel import MapReduceJob - >>> import numpy as np - >>> map_reduce_job: MapReduceJob[np.ndarray, np.ndarray] = MapReduceJob( - ... np.arange(5), - ... map_func=np.sum, - ... reduce_func=np.sum, - ... n_jobs=2, - ... ) - >>> map_reduce_job() - 10 - - When passed a single object as input, it will be repeated for each job: - - >>> from pydvl.utils.parallel import MapReduceJob - >>> import numpy as np - >>> map_reduce_job: MapReduceJob[int, np.ndarray] = MapReduceJob( - ... 5, - ... map_func=lambda x: np.array([x]), - ... reduce_func=np.sum, - ... n_jobs=4, - ... ) - >>> map_reduce_job() - 20 + that are split for `map_func` and the type of its output. + + Args: + inputs: The input that will be split and passed to `map_func`. + if it's not a sequence object. It will be repeat `n_jobs` number of times. + map_func: Function that will be applied to the input chunks in each job. + reduce_func: Function that will be applied to the results of + `map_func` to reduce them. + map_kwargs: Keyword arguments that will be passed to `map_func` in + each job. Alternatively, one can use [functools.partial][]. + reduce_kwargs: Keyword arguments that will be passed to `reduce_func` + in each job. Alternatively, one can use [functools.partial][]. + config: Instance of [ParallelConfig][pydvl.utils.config.ParallelConfig] + with cluster address, number of cpus, etc. + n_jobs: Number of parallel jobs to run. Does not accept 0 + + ??? Example + A simple usage example with 2 jobs: + + ``` pycon + >>> from pydvl.utils.parallel import MapReduceJob + >>> import numpy as np + >>> map_reduce_job: MapReduceJob[np.ndarray, np.ndarray] = MapReduceJob( + ... np.arange(5), + ... map_func=np.sum, + ... reduce_func=np.sum, + ... n_jobs=2, + ... ) + >>> map_reduce_job() + 10 + ``` + + When passed a single object as input, it will be repeated for each job: + ``` pycon + >>> from pydvl.utils.parallel import MapReduceJob + >>> import numpy as np + >>> map_reduce_job: MapReduceJob[int, np.ndarray] = MapReduceJob( + ... 5, + ... map_func=lambda x: np.array([x]), + ... reduce_func=np.sum, + ... n_jobs=2, + ... ) + >>> map_reduce_job() + 10 + ``` """ def __init__( self, - inputs: Union[Sequence[T], T], + inputs: Union[Collection[T], T], map_func: MapFunction[R], - reduce_func: Optional[ReduceFunction[R]] = None, + reduce_func: ReduceFunction[R] = identity, map_kwargs: Optional[Dict] = None, reduce_kwargs: Optional[Dict] = None, config: ParallelConfig = ParallelConfig(), *, n_jobs: int = -1, timeout: Optional[float] = None, - max_parallel_tasks: Optional[int] = None, ): self.config = config parallel_backend = init_parallel_backend(self.config) @@ -151,114 +99,56 @@ def __init__( self.timeout = timeout - self._n_jobs = 1 # This uses the setter defined below self.n_jobs = n_jobs - self.max_parallel_tasks = max_parallel_tasks - self.inputs_ = inputs - if reduce_func is None: - reduce_func = Identity - - if map_kwargs is None: - self.map_kwargs = dict() - else: - self.map_kwargs = { - k: self.parallel_backend.put(v) for k, v in map_kwargs.items() - } + self.map_kwargs = map_kwargs if map_kwargs is not None else dict() + self.reduce_kwargs = reduce_kwargs if reduce_kwargs is not None else dict() - if reduce_kwargs is None: - self.reduce_kwargs = dict() - else: - self.reduce_kwargs = { - k: self.parallel_backend.put(v) for k, v in reduce_kwargs.items() - } - - self._map_func = maybe_add_argument(map_func, "job_id") + self._map_func = reduce(maybe_add_argument, ["job_id", "seed"], map_func) self._reduce_func = reduce_func def __call__( self, + seed: Optional[Union[Seed, SeedSequence]] = None, ) -> R: - map_results = self.map(self.inputs_) - reduce_results = self.reduce(map_results) - return reduce_results - - def map(self, inputs: Union[Sequence[T], T]) -> List["ObjectRef[R]"]: - """Splits the input data into chunks and calls a wrapped :func:`map_func` on them.""" - map_results: List["ObjectRef[R]"] = [] - - map_func = self._wrap_function(self._map_func) - - total_n_jobs = 0 - total_n_finished = 0 - - chunks = self._chunkify(inputs, n_chunks=self.n_jobs) + """ + Runs the map-reduce job. - for j, next_chunk in enumerate(chunks): - result = map_func(next_chunk, job_id=j, **self.map_kwargs) - map_results.append(result) - total_n_jobs += 1 + Args: + seed: Either an instance of a numpy random number generator or a seed for + it. - total_n_finished = self._backpressure( - map_results, - n_dispatched=total_n_jobs, - n_finished=total_n_finished, - ) - return map_results - - def reduce(self, chunks: List["ObjectRef[R]"]) -> R: - """Reduces the resulting chunks from a call to :meth:`~pydvl.utils.parallel.map_reduce.MapReduceJob.map` - by passing them to a wrapped :func:`reduce_func`.""" - reduce_func = self._wrap_function(self._reduce_func) - - reduce_result = reduce_func(chunks, **self.reduce_kwargs) - result = self.parallel_backend.get(reduce_result, timeout=self.timeout) - return result # type: ignore - - def _wrap_function(self, func: Callable, **kwargs) -> Callable: - """Wraps a function with a timeout and remote arguments and puts it on - the remote backend. - - :param func: Function to wrap - :param kwargs: Additional keyword arguments to pass to the backend - wrapper. These are *not* arguments for the wrapped function. - :return: Remote function that can be called with the same arguments as - the wrapped function. Depending on the backend, this may simply be - the function itself. - """ - return self.parallel_backend.wrap( - _wrap_func_with_remote_args(func, timeout=self.timeout), **kwargs - ) - - def _backpressure( - self, jobs: List[ObjectRef], n_dispatched: int, n_finished: int - ) -> int: - """This is used to limit the number of concurrent tasks. - If :attr:`~pydvl.utils.parallel.map_reduce.MapReduceJob.max_parallel_tasks` is None then this function - is a no-op that simply returns 0. - - See https://docs.ray.io/en/latest/ray-core/patterns/limit-pending-tasks.html - :param jobs: - :param n_dispatched: - :param n_finished: - :return: + Returns: + The result of the reduce function. """ - if self.max_parallel_tasks is None: - return 0 - while (n_in_flight := n_dispatched - n_finished) > self.max_parallel_tasks: - wait_for_num_jobs = n_in_flight - self.max_parallel_tasks - finished_jobs, _ = self.parallel_backend.wait( - jobs, - num_returns=wait_for_num_jobs, - timeout=10, # FIXME make parameter? + if self.config.backend == "joblib": + backend = "loky" + else: + backend = self.config.backend + # In joblib the levels are reversed. + # 0 means no logging and 50 means log everything to stdout + verbose = 50 - self.config.logging_level + seed_seq = ensure_seed_sequence(seed) + with Parallel(backend=backend, n_jobs=self.n_jobs, verbose=verbose) as parallel: + chunks = self._chunkify(self.inputs_, n_chunks=self.n_jobs) + map_results: List[R] = parallel( + delayed(self._map_func)( + next_chunk, job_id=j, seed=seed, **self.map_kwargs + ) + for j, (next_chunk, seed) in enumerate( + zip(chunks, seed_seq.spawn(len(chunks))) + ) ) - n_finished += len(finished_jobs) - return n_finished - def _chunkify(self, data: ChunkifyInputType, n_chunks: int) -> List["ObjectRef[T]"]: + reduce_results: R = self._reduce_func(map_results, **self.reduce_kwargs) + return reduce_results + + def _chunkify( + self, data: Union[NDArray, Collection[T], T], n_chunks: int + ) -> List[Union[NDArray, Collection[T], T]]: """If data is a Sequence, it splits it into Sequences of size `n_chunks` for each job that we call chunks. If instead data is an `ObjectRef` instance, then it yields it repeatedly `n_chunks` number of times. """ @@ -266,16 +156,14 @@ def _chunkify(self, data: ChunkifyInputType, n_chunks: int) -> List["ObjectRef[T raise ValueError("Number of chunks should be greater than 0") if n_chunks == 1: - data_id = self.parallel_backend.put(data) - return [data_id] + return [data] try: # This is used as a check to determine whether data is iterable or not # if it's the former, then the value will be used to determine the chunk indices. - n = len(data) + n = len(data) # type: ignore except TypeError: - data_id = self.parallel_backend.put(data) - return list(repeat(data_id, times=n_chunks)) + return list(repeat(data, times=n_chunks)) else: # This is very much inspired by numpy's array_split function # The difference is that it only uses built-in functions @@ -294,8 +182,8 @@ def _chunkify(self, data: ChunkifyInputType, n_chunks: int) -> List["ObjectRef[T for start_index, end_index in zip(chunk_indices[:-1], chunk_indices[1:]): if start_index >= end_index: break - chunk_id = self.parallel_backend.put(data[start_index:end_index]) - chunks.append(chunk_id) + chunk = data[start_index:end_index] # type: ignore + chunks.append(chunk) return chunks diff --git a/src/pydvl/utils/progress.py b/src/pydvl/utils/progress.py index 17e925005..52493f27a 100644 --- a/src/pydvl/utils/progress.py +++ b/src/pydvl/utils/progress.py @@ -1,3 +1,10 @@ +""" +!!! Warning + This module is deprecated and will be removed in a future release. + It implements a wrapper for the [tqdm](https://tqdm.github.io/) progress bar + iterator for easy toggling, but this functionality is already provided by + the `disable` argument of `tqdm`. +""" import collections.abc from typing import Iterable, Iterator, Union @@ -57,9 +64,10 @@ def maybe_progress( """Returns either a tqdm progress bar or a mock object which wraps the iterator as well, but ignores any accesses to methods or properties. - :param it: the iterator to wrap - :param display: set to True to return a tqdm bar - :param kwargs: Keyword arguments that will be forwarded to tqdm + Args: + it: the iterator to wrap + display: set to True to return a tqdm bar + kwargs: Keyword arguments that will be forwarded to tqdm """ if isinstance(it, int): it = range(it) # type: ignore diff --git a/src/pydvl/utils/score.py b/src/pydvl/utils/score.py index 933706d98..578ed76ae 100644 --- a/src/pydvl/utils/score.py +++ b/src/pydvl/utils/score.py @@ -1,16 +1,17 @@ """ -This module provides a :class:`Scorer` class that wraps scoring functions with -additional information. +This module provides a [Scorer][pydvl.utils.score.Scorer] class that wraps +scoring functions with additional information. Scorers can be constructed in the same way as in scikit-learn: either from known strings or from a callable. Greater values must be better. If they are not, -a negated version can be used, see scikit-learn's `make_scorer() -`_. - -:class:`Scorer` provides additional information about the scoring function, like -its range and default values, which can be used by some data valuation -methods (like :func:`~pydvl.value.shapley.gt.group_testing_shapley`) to estimate -the number of samples required for a certain quality of approximation. +a negated version can be used, see scikit-learn's +[make_scorer()](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html). + +[Scorer][pydvl.utils.score.Scorer] provides additional information about the +scoring function, like its range and default values, which can be used by some +data valuation methods (like +[group_testing_shapley()][pydvl.value.shapley.gt.group_testing_shapley]) to +estimate the number of samples required for a certain quality of approximation. """ from typing import Callable, Optional, Protocol, Tuple, Union @@ -35,20 +36,20 @@ class Scorer: """A scoring callable that takes a model, data, and labels and returns a scalar. - :param scoring: Either a string or callable that can be passed to - `get_scorer - `_. - :param default: score to be used when a model cannot be fit, e.g. when too - little data is passed, or errors arise. - :param range: numerical range of the score function. Some Monte Carlo - methods can use this to estimate the number of samples required for a - certain quality of approximation. If not provided, it can be read from - the ``scoring`` object if it provides it, for instance if it was - constructed with :func:`~pydvl.utils.types.compose_score`. - :param name: The name of the scorer. If not provided, the name of the - function passed will be used. - - .. versionadded:: 0.5.0 + Args: + scoring: Either a string or callable that can be passed to + [get_scorer](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.get_scorer.html). + default: score to be used when a model cannot be fit, e.g. when too + little data is passed, or errors arise. + range: numerical range of the score function. Some Monte Carlo + methods can use this to estimate the number of samples required for a + certain quality of approximation. If not provided, it can be read from + the `scoring` object if it provides it, for instance if it was + constructed with [compose_score()][pydvl.utils.score.compose_score]. + name: The name of the scorer. If not provided, the name of the + function passed will be used. + + !!! tip "New in version 0.5.0" """ @@ -92,18 +93,22 @@ def compose_score( Useful to squash unbounded scores into ranges manageable by data valuation methods. - .. code-block:: python - :caption: Example usage + Example: + + ```python + sigmoid = lambda x: 1/(1+np.exp(-x)) + compose_score(Scorer("r2"), sigmoid, range=(0,1), name="squashed r2") + ``` - sigmoid = lambda x: 1/(1+np.exp(-x)) - compose_score(Scorer("r2"), sigmoid, range=(0,1), name="squashed r2") + Args: + scorer: The object to be composed. + transformation: A scalar transformation + range: The range of the transformation. This will be used e.g. by + [Utility][pydvl.utils.utility.Utility] for the range of the composed. + name: A string representation for the composition, for `str()`. - :param scorer: The object to be composed. - :param transformation: A scalar transformation - :param range: The range of the transformation. This will be used e.g. by - :class:`~pydvl.utils.utility.Utility` for the range of the composed. - :param name: A string representation for the composition, for `str()`. - :return: The composite :class:`Scorer`. + Returns: + The composite [Scorer][pydvl.utils.score.Scorer]. """ class CompositeScorer(Scorer): diff --git a/src/pydvl/utils/status.py b/src/pydvl/utils/status.py index 52b0df1b0..7e109111d 100644 --- a/src/pydvl/utils/status.py +++ b/src/pydvl/utils/status.py @@ -4,67 +4,61 @@ class Status(Enum): """Status of a computation. - Statuses can be combined using bitwise or (``|``) and bitwise and (``&``) to + Statuses can be combined using bitwise or (`|`) and bitwise and (`&`) to get the status of a combined computation. For example, if we have two computations, one that has converged and one that has failed, then the - combined status is ``Status.Converged | Status.Failed == Status.Converged``, - but ``Status.Converged & Status.Failed == Status.Failed``. + combined status is `Status.Converged | Status.Failed == Status.Converged`, + but `Status.Converged & Status.Failed == Status.Failed`. + ## OR - :OR: - - The result of bitwise or-ing two valuation statuses with ``|`` is given + The result of bitwise or-ing two valuation statuses with `|` is given by the following table: - +---+---+---+---+ | | P | C | F | - +===+===+===+===+ + |---|---|---|---| | P | P | C | P | - +---+---+---+---+ | C | C | C | C | - +---+---+---+---+ | F | P | C | F | - +---+---+---+---+ where P = Pending, C = Converged, F = Failed. - :AND: + ## AND - The result of bitwise and-ing two valuation statuses with ``&`` is given + The result of bitwise and-ing two valuation statuses with `&` is given by the following table: - +---+---+---+---+ | | P | C | F | - +===+===+===+===+ + |---|---|---|---| | P | P | P | F | - +---+---+---+---+ | C | P | C | F | - +---+---+---+---+ | F | F | F | F | - +---+---+---+---+ where P = Pending, C = Converged, F = Failed. - :NOT: - - The result of bitwise negation of a Status with ``~`` is ``Failed`` if - the status is ``Converged``, or ``Converged`` otherwise: + ## NOT - ~P == C, ~C == F, ~F == C + The result of bitwise negation of a Status with `~` is `Failed` if + the status is `Converged`, or `Converged` otherwise: - :Boolean casting: + ``` + ~P == C, ~C == F, ~F == C + ``` - A Status evaluates to ``True`` iff it's ``Converged`` or ``Failed``: + ## Boolean casting - bool(Status.Pending) == False - bool(Status.Converged) == True - bool(Status.Failed) == True + A Status evaluates to `True` iff it's `Converged` or `Failed`: - .. warning:: - These truth values are **inconsistent** with the usual boolean operations. - In particular the XOR of two instances of ``Status`` is not the same as - the XOR of their boolean values. + ```python + bool(Status.Pending) == False + bool(Status.Converged) == True + bool(Status.Failed) == True + ``` + !!! Warning + These truth values are **inconsistent** with the usual boolean + operations. In particular the XOR of two instances of `Status` is not + the same as the XOR of their boolean values. """ Pending = "pending" diff --git a/src/pydvl/utils/types.py b/src/pydvl/utils/types.py index 05f9f724e..5df91923d 100644 --- a/src/pydvl/utils/types.py +++ b/src/pydvl/utils/types.py @@ -1,12 +1,34 @@ """ This module contains types, protocols, decorators and generic function transformations. Some of it probably belongs elsewhere. """ -import inspect -from typing import Callable, Protocol, Type +from __future__ import annotations +from abc import ABCMeta +from typing import Any, Optional, Protocol, TypeVar, Union, cast + +from numpy.random import Generator, SeedSequence from numpy.typing import NDArray -__all__ = ["SupervisedModel"] +__all__ = [ + "ensure_seed_sequence", + "MapFunction", + "NoPublicConstructor", + "ReduceFunction", + "Seed", + "SupervisedModel", +] + +R = TypeVar("R", covariant=True) + + +class MapFunction(Protocol[R]): + def __call__(self, *args: Any, **kwargs: Any) -> R: + ... + + +class ReduceFunction(Protocol[R]): + def __call__(self, *args: Any, **kwargs: Any) -> R: + ... class SupervisedModel(Protocol): @@ -27,28 +49,53 @@ def score(self, x: NDArray, y: NDArray) -> float: pass -def maybe_add_argument(fun: Callable, new_arg: str): - """Wraps a function to accept the given keyword parameter if it doesn't - already. +class NoPublicConstructor(ABCMeta): + """Metaclass that ensures a private constructor - If `fun` already takes a keyword parameter of name `new_arg`, then it is - returned as is. Otherwise, a wrapper is returned which merely ignores the - argument. + If a class uses this metaclass like this: - :param fun: The function to wrap - :param new_arg: The name of the argument that the new function will accept - (and ignore). - :return: A new function accepting one more keyword argument. - """ - params = inspect.signature(fun).parameters - if new_arg in params.keys(): - return fun - - def wrapper(*args, **kwargs): - try: - del kwargs[new_arg] - except KeyError: + class SomeClass(metaclass=NoPublicConstructor): pass - return fun(*args, **kwargs) - return wrapper + If you try to instantiate your class (`SomeClass()`), + a `TypeError` will be thrown. + + Taken almost verbatim from: + [https://stackoverflow.com/a/64682734](https://stackoverflow.com/a/64682734) + """ + + def __call__(cls, *args, **kwargs): + raise TypeError( + f"{cls.__module__}.{cls.__qualname__} cannot be initialized directly. " + "Use the proper factory instead." + ) + + def create(cls, *args: Any, **kwargs: Any): + return super().__call__(*args, **kwargs) + + +Seed = Union[int, Generator] + + +def ensure_seed_sequence( + seed: Optional[Union[Seed, SeedSequence]] = None +) -> SeedSequence: + """ + If the passed seed is a SeedSequence object then it is returned as is. If it is + a Generator the internal protected seed sequence from the generator gets extracted. + Otherwise, a new SeedSequence object is created from the passed (optional) seed. + + Args: + seed: Either an int, a Generator object a SeedSequence object or None. + + Returns: + A SeedSequence object. + + !!! tip "New in version 0.7.0" + """ + if isinstance(seed, SeedSequence): + return seed + elif isinstance(seed, Generator): + return cast(SeedSequence, seed.bit_generator.seed_seq) # type: ignore + else: + return SeedSequence(seed) diff --git a/src/pydvl/utils/utility.py b/src/pydvl/utils/utility.py index 5763edeea..096a31b82 100644 --- a/src/pydvl/utils/utility.py +++ b/src/pydvl/utils/utility.py @@ -1,18 +1,26 @@ """ This module contains classes to manage and learn utility functions for the -computation of values. Please see the documentation on :ref:`data valuation` for -more information. +computation of values. Please see the documentation on +[Computing Data Values][computing-data-values] for more information. -:class:`Utility` holds information about model, data and scoring function (the -latter being what one usually understands under *utility* in the general -definition of Shapley value). It is automatically cached across machines. +[Utility][pydvl.utils.utility.Utility] holds information about model, +data and scoring function (the latter being what one usually understands +under *utility* in the general definition of Shapley value). +It is automatically cached across machines. -:class:`DataUtilityLearning` adds support for learning the scoring function -to avoid repeated re-training of the model to compute the score. +[DataUtilityLearning][pydvl.utils.utility.DataUtilityLearning] adds support +for learning the scoring function to avoid repeated re-training +of the model to compute the score. This module also contains Utility classes for toy games that are used for testing and for demonstration purposes. +## References + +[^1]: Wang, T., Yang, Y. and Jia, R., 2021. + [Improving cooperative game theory-based data valuation via data utility learning](https://arxiv.org/abs/2107.06336). + arXiv preprint arXiv:2107.06336. + """ import logging import warnings @@ -39,66 +47,78 @@ class Utility: """Convenience wrapper with configurable memoization of the scoring function. - An instance of ``Utility`` holds the triple of model, dataset and scoring - function which determines the value of data points. This is mosly used for - the computation of :ref:`Shapley values` and - :ref:`Least Core values`. + An instance of `Utility` holds the triple of model, dataset and scoring + function which determines the value of data points. This is used for the + computation of + [all game-theoretic values][game-theoretical-methods] + like [Shapley values][pydvl.value.shapley] and + [the Least Core][pydvl.value.least_core]. The Utility expect the model to fulfill - the :class:`pydvl.utils.types.SupervisedModel` interface i.e. to have - ``fit()``, ``predict()``, and ``score()`` methods. + the [SupervisedModel][pydvl.utils.types.SupervisedModel] interface i.e. + to have `fit()`, `predict()`, and `score()` methods. When calling the utility, the model will be - `cloned `_ + [cloned](https://scikit-learn.org/stable/modules/generated/sklearn.base + .clone.html) if it is a Sci-Kit Learn model, otherwise a copy is created using - ``deepcopy()`` - from the builtin `copy `_ - module. + `deepcopy()` from the builtin [copy](https://docs.python.org/3/ + library/copy.html) module. Since evaluating the scoring function requires retraining the model and that can be time-consuming, this class wraps it and caches the results of each execution. Caching is available both locally and across nodes, but must always be enabled for your - project first, see :ref:`how to set up the cache`. - - :param model: Any supervised model. Typical choices can be found at - https://scikit-learn.org/stable/supervised_learning.html - :param data: :class:`Dataset` or :class:`GroupedDataset`. - :param scorer: A scoring object. If None, the ``score()`` method of the model - will be used. See :mod:`~pydvl.utils.scorer` for ways to create - and compose scorers, in particular how to set default values and ranges. - For convenience, a string can be passed, which will be used to construct - a :class:`~pydvl.utils.scorer.Scorer`. - :param default_score: As a convenience when no ``scorer`` object is passed - (where a default value can be provided), this argument also allows to set - the default score for models that have not been fit, e.g. when too little - data is passed, or errors arise. - :param score_range: As with ``default_score``, this is a convenience argument - for when no ``scorer`` argument is provided, to set the numerical range - of the score function. Some Monte Carlo methods can use this to estimate - the number of samples required for a certain quality of approximation. - :param catch_errors: set to ``True`` to catch the errors when fit() fails. - This could happen in several steps of the pipeline, e.g. when too little - training data is passed, which happens often during Shapley value - calculations. When this happens, the :attr:`default_score` is returned - as a score and computation continues. - :param show_warnings: Set to ``False`` to suppress warnings thrown by - ``fit()``. - :param enable_cache: If ``True``, use memcached for memoization. - :param cache_options: Optional configuration object for memcached. - :param clone_before_fit: If True, the model will be cloned before calling - ``fit()``. - - :Example: - - >>> from pydvl.utils import Utility, DataUtilityLearning, Dataset - >>> from sklearn.linear_model import LinearRegression, LogisticRegression - >>> from sklearn.datasets import load_iris - >>> dataset = Dataset.from_sklearn(load_iris(), random_state=16) - >>> u = Utility(LogisticRegression(random_state=16), dataset) - >>> u(dataset.indices) - 0.9 + project first, see [Setting up the cache][setting-up-the-cache]. + + Attributes: + model: The supervised model. + data: An object containing the split data. + scorer: A scoring function. If None, the `score()` method of the model + will be used. See [score][pydvl.utils.score] for ways to create + and compose scorers, in particular how to set default values and + ranges. + + Args: + model: Any supervised model. Typical choices can be found in the + [sci-kit learn documentation][https://scikit-learn.org/stable/supervised_learning.html]. + data: [Dataset][pydvl.utils.dataset.Dataset] + or [GroupedDataset][pydvl.utils.dataset.GroupedDataset] instance. + scorer: A scoring object. If None, the `score()` method of the model + will be used. See [score][pydvl.utils.score] for ways to create + and compose scorers, in particular how to set default values and ranges. + For convenience, a string can be passed, which will be used to construct + a [Scorer][pydvl.utils.score.Scorer]. + default_score: As a convenience when no `scorer` object is passed + (where a default value can be provided), this argument also allows to set + the default score for models that have not been fit, e.g. when too little + data is passed, or errors arise. + score_range: As with `default_score`, this is a convenience argument for + when no `scorer` argument is provided, to set the numerical range + of the score function. Some Monte Carlo methods can use this to + estimate the number of samples required for a certain quality of + approximation. + catch_errors: set to `True` to catch the errors when `fit()` fails. This + could happen in several steps of the pipeline, e.g. when too little + training data is passed, which happens often during Shapley value + calculations. When this happens, the `default_score` is returned as + a score and computation continues. + show_warnings: Set to `False` to suppress warnings thrown by `fit()`. + enable_cache: If `True`, use memcached for memoization. + cache_options: Optional configuration object for memcached. + clone_before_fit: If `True`, the model will be cloned before calling + `fit()`. + + ??? Example + ``` pycon + >>> from pydvl.utils import Utility, DataUtilityLearning, Dataset + >>> from sklearn.linear_model import LinearRegression, LogisticRegression + >>> from sklearn.datasets import load_iris + >>> dataset = Dataset.from_sklearn(load_iris(), random_state=16) + >>> u = Utility(LogisticRegression(random_state=16), dataset) + >>> u(dataset.indices) + 0.9 + ``` """ @@ -152,6 +172,11 @@ def _initialize_utility_wrapper(self): self._utility_wrapper = self._utility def __call__(self, indices: Iterable[int]) -> float: + """ + Args: + indices: a subset of valid indices for the + `x_train` attribute of [Dataset][pydvl.utils.dataset.Dataset]. + """ utility: float = self._utility_wrapper(frozenset(indices)) return utility @@ -159,19 +184,22 @@ def _utility(self, indices: FrozenSet) -> float: """Clones the model, fits it on a subset of the training data and scores it on the test data. - If the object is constructed with ``enable_cache = True``, results are + If the object is constructed with `enable_cache = True`, results are memoized to avoid duplicate computation. This is useful in particular when computing utilities of permutations of indices or when randomly sampling from the powerset of indices. - :param indices: a subset of valid indices for - :attr:`~pydvl.utils.dataset.Dataset.x_train`. The type must be - hashable for the caching to work, e.g. wrap the argument with - `frozenset `_ - (rather than `tuple` since order should not matter) - :return: 0 if no indices are passed, :attr:`default_score`` if we fail - to fit the model or the scorer returns `NaN`. Otherwise, the score - of the model on the test data. + Args: + indices: a subset of valid indices for the + `x_train` attribute of [Dataset][pydvl.utils.dataset.Dataset]. + The type must be hashable for the caching to work, + e.g. wrap the argument with [frozenset][] + (rather than `tuple` since order should not matter) + + Returns: + 0 if no indices are passed, `default_score` if we fail + to fit the model or the scorer returns [numpy.NaN][]. Otherwise, the score + of the model on the test data. """ if not indices: return 0.0 @@ -205,8 +233,9 @@ def _clone_model(model: SupervisedModel) -> SupervisedModel: """Clones the passed model to avoid the possibility of reusing a fitted estimator - :param model: Any supervised model. Typical choices can be found at - https://scikit-learn.org/stable/supervised_learning.html + Args: + model: Any supervised model. Typical choices can be found + on [this page](https://scikit-learn.org/stable/supervised_learning.html) """ try: model = clone(model) @@ -225,7 +254,7 @@ def signature(self): @property def cache_stats(self) -> Optional[CacheStats]: """Cache statistics are gathered when cache is enabled. - See :class:`~pydvl.utils.caching.CacheInfo` for all fields returned. + See [CacheStats][pydvl.utils.caching.CacheStats] for all fields returned. """ if self.enable_cache: return self._utility_wrapper.stats # type: ignore @@ -244,34 +273,36 @@ def __setstate__(self, state): class DataUtilityLearning: - """Implementation of Data Utility Learning algorithm - :footcite:t:`wang_improving_2022`. + """Implementation of Data Utility Learning + (Wang et al., 2022)1. - This object wraps a :class:`~pydvl.utils.utility.Utility` and delegates + This object wraps a [Utility][pydvl.utils.utility.Utility] and delegates calls to it, up until a given budget (number of iterations). Every tuple of input and output (a so-called *utility sample*) is stored. Once the budget is exhausted, `DataUtilityLearning` fits the given model to the utility samples. Subsequent calls will use the learned model to predict the utility instead of delegating. - :param u: The :class:`~pydvl.utils.utility.Utility` to learn. - :param training_budget: Number of utility samples to collect before fitting - the given model - :param model: A supervised regression model - - :Example: - - >>> from pydvl.utils import Utility, DataUtilityLearning, Dataset - >>> from sklearn.linear_model import LinearRegression, LogisticRegression - >>> from sklearn.datasets import load_iris - >>> dataset = Dataset.from_sklearn(load_iris()) - >>> u = Utility(LogisticRegression(), dataset) - >>> wrapped_u = DataUtilityLearning(u, 3, LinearRegression()) - ... # First 3 calls will be computed normally - >>> for i in range(3): - ... _ = wrapped_u((i,)) - >>> wrapped_u((1, 2, 3)) # Subsequent calls will be computed using the fit model for DUL - 0.0 + Args: + u: The [Utility][pydvl.utils.utility.Utility] to learn. + training_budget: Number of utility samples to collect before fitting + the given model. + model: A supervised regression model + + ??? Example + ``` pycon + >>> from pydvl.utils import Utility, DataUtilityLearning, Dataset + >>> from sklearn.linear_model import LinearRegression, LogisticRegression + >>> from sklearn.datasets import load_iris + >>> dataset = Dataset.from_sklearn(load_iris()) + >>> u = Utility(LogisticRegression(), dataset) + >>> wrapped_u = DataUtilityLearning(u, 3, LinearRegression()) + ... # First 3 calls will be computed normally + >>> for i in range(3): + ... _ = wrapped_u((i,)) + >>> wrapped_u((1, 2, 3)) # Subsequent calls will be computed using the fit model for DUL + 0.0 + ``` """ @@ -286,7 +317,9 @@ def __init__( self._utility_samples: Dict[FrozenSet, Tuple[NDArray[np.bool_], float]] = {} def _convert_indices_to_boolean_vector(self, x: Iterable[int]) -> NDArray[np.bool_]: - boolean_vector = np.zeros((1, len(self.utility.data)), dtype=bool) + boolean_vector: NDArray[np.bool_] = np.zeros( + (1, len(self.utility.data)), dtype=bool + ) if x is not None: boolean_vector[:, tuple(x)] = True return boolean_vector @@ -312,7 +345,7 @@ def __call__(self, indices: Iterable[int]) -> float: @property def data(self) -> Dataset: - """Returns the wrapped utility's :class:`~pydvl.utils.dataset.Dataset`.""" + """Returns the wrapped utility's [Dataset][pydvl.utils.dataset.Dataset].""" return self.utility.data @@ -321,8 +354,8 @@ class MinerGameUtility(Utility): Consider a group of n miners, who have discovered large bars of gold. - If two miners can carry one piece of gold, - then the payoff of a coalition $S$ is: + If two miners can carry one piece of gold, then the payoff of a + coalition $S$ is: $${ v(S) = \left\{\begin{array}{lll} @@ -336,9 +369,10 @@ class MinerGameUtility(Utility): If there is an odd number of miners, then the core is empty. - Taken from: https://en.wikipedia.org/wiki/Core_(game_theory) + Taken from [Wikipedia](https://en.wikipedia.org/wiki/Core_(game_theory)) - :param n_miners: Number of miners that participate in the game. + Args: + n_miners: Number of miners that participate in the game. """ def __init__(self, n_miners: int, **kwargs): @@ -392,8 +426,9 @@ class GlovesGameUtility(Utility): Where $L$, respectively $R$, is the set of players with left gloves, respectively right gloves. - :param left: Number of players with a left glove. - :param right: Number of player with a right glove. + Args: + left: Number of players with a left glove. + right: Number of player with a right glove. """ diff --git a/src/pydvl/value/__init__.py b/src/pydvl/value/__init__.py index 5fb7a82ad..f49d7bc73 100644 --- a/src/pydvl/value/__init__.py +++ b/src/pydvl/value/__init__.py @@ -1,8 +1,9 @@ -r""" -Algorithms for the exact and approximate computation of value and semi-value. +""" +This module implements algorithms for the exact and approximate computation of +values and semi-values. -See :ref:`data valuation` for an introduction to the concepts and methods -implemented here. +See [Data valuation][computing-data-values] for an introduction to the concepts +and methods implemented here. """ from .result import * # isort: skip diff --git a/src/pydvl/value/least_core/__init__.py b/src/pydvl/value/least_core/__init__.py index 319b074a3..8451dd4f0 100644 --- a/src/pydvl/value/least_core/__init__.py +++ b/src/pydvl/value/least_core/__init__.py @@ -1,21 +1,21 @@ """ -.. versionadded:: 0.4.0 +!!! tip "New in version 0.4.0" This package holds all routines for the computation of Least Core data values. -Please refer to :ref:`data valuation` for an overview. +Please refer to [Data valuation][computing-data-values] for an overview. In addition to the standard interface via -:func:`~pydvl.value.least_core.compute_least_core_values`, because computing the +[compute_least_core_values()][pydvl.value.least_core.compute_least_core_values], because computing the Least Core values requires the solution of a linear and a quadratic problem *after* computing all the utility values, there is the possibility of performing each step separately. This is useful when running multiple experiments: use -:func:`~pydvl.value.least_core.naive.lc_prepare_problem` or -:func:`~pydvl.value.least_core.montecarlo.mclc_prepare_problem` to prepare a +[lc_prepare_problem()][pydvl.value.least_core.naive.lc_prepare_problem] or +[mclc_prepare_problem()][pydvl.value.least_core.montecarlo.mclc_prepare_problem] to prepare a list of problems to solve, then solve them in parallel with -:func:`~pydvl.value.least_core.common.lc_solve_problems`. +[lc_solve_problems()][pydvl.value.least_core.common.lc_solve_problems]. -Note that :func:`~pydvl.value.least_core.montecarlo.mclc_prepare_problem` is +Note that [mclc_prepare_problem()][pydvl.value.least_core.montecarlo.mclc_prepare_problem] is parallelized itself, so preparing the problems should be done in sequence in this case. The solution of the linear systems can then be done in parallel. @@ -52,30 +52,33 @@ def compute_least_core_values( """Umbrella method to compute Least Core values with any of the available algorithms. - See :ref:`data valuation` for an overview. + See [Data valuation][computing-data-values] for an overview. The following algorithms are available. Note that the exact method can only work with very small datasets and is thus intended only for testing. - - ``exact``: uses the complete powerset of the training set for the constraints - :func:`~pydvl.value.shapley.naive.combinatorial_exact_shapley`. - - ``montecarlo``: uses the approximate Monte Carlo Least Core algorithm. - Implemented in :func:`~pydvl.value.least_core.montecarlo.montecarlo_least_core`. - - :param u: Utility object with model, data, and scoring function - :param n_jobs: Number of jobs to run in parallel. Only used for Monte Carlo - Least Core. - :param n_iterations: Number of subsets to sample and evaluate the utility on. - Only used for Monte Carlo Least Core. - :param mode: Algorithm to use. See :class:`LeastCoreMode` for available - options. - :param non_negative_subsidy: If True, the least core subsidy $e$ is constrained - to be non-negative. - :param solver_options: Optional dictionary of options passed to the solvers. - - :return: ValuationResult object with the computed values. - - .. versionadded:: 0.5.0 + - `exact`: uses the complete powerset of the training set for the constraints + [combinatorial_exact_shapley()][pydvl.value.shapley.naive.combinatorial_exact_shapley]. + - `montecarlo`: uses the approximate Monte Carlo Least Core algorithm. + Implemented in [montecarlo_least_core()][pydvl.value.least_core.montecarlo.montecarlo_least_core]. + + Args: + u: Utility object with model, data, and scoring function + n_jobs: Number of jobs to run in parallel. Only used for Monte Carlo + Least Core. + n_iterations: Number of subsets to sample and evaluate the utility on. + Only used for Monte Carlo Least Core. + mode: Algorithm to use. See + [LeastCoreMode][pydvl.value.least_core.LeastCoreMode] for available + options. + non_negative_subsidy: If True, the least core subsidy $e$ is constrained + to be non-negative. + solver_options: Optional dictionary of options passed to the solvers. + + Returns: + Object with the computed values. + + !!! tip "New in version 0.5.0" """ progress: bool = kwargs.pop("progress", False) diff --git a/src/pydvl/value/least_core/common.py b/src/pydvl/value/least_core/common.py index 74d2922d4..f29e48a4a 100644 --- a/src/pydvl/value/least_core/common.py +++ b/src/pydvl/value/least_core/common.py @@ -35,12 +35,13 @@ def lc_solve_problem( solver_options: Optional[dict] = None, **options, ) -> ValuationResult: - """Solves a linear problem prepared by :func:`mclc_prepare_problem`. + """Solves a linear problem as prepared by + [mclc_prepare_problem()][pydvl.value.least_core.montecarlo.mclc_prepare_problem]. Useful for parallel execution of multiple experiments by running this as a remote task. - See :func:`~pydvl.value.least_core.naive.exact_least_core` or - :func:`~pydvl.value.least_core.montecarlo.montecarlo_least_core` for + See [exact_least_core()][pydvl.value.least_core.naive.exact_least_core] or + [montecarlo_least_core()][pydvl.value.least_core.montecarlo.montecarlo_least_core] for argument descriptions. """ n = len(u.data) @@ -95,7 +96,7 @@ def lc_solve_problem( # because given the equality constraint # it is the same as using the constraint e >= 0 # (i.e. setting non_negative_subsidy = True). - mask = np.ones_like(b_lb, dtype=bool) + mask: NDArray[np.bool_] = np.ones_like(b_lb, dtype=bool) mask[total_utility_indices] = False b_lb = b_lb[mask] A_lb = A_lb[mask] @@ -169,17 +170,20 @@ def lc_solve_problems( ) -> List[ValuationResult]: """Solves a list of linear problems in parallel. - :param u: Utility. - :param problems: Least Core problems to solve, as returned by - :func:`~pydvl.value.least_core.montecarlo.mclc_prepare_problem`. - :param algorithm: Name of the valuation algorithm. - :param config: Object configuring parallel computation, with cluster - address, number of cpus, etc. - :param n_jobs: Number of parallel jobs to run. - :param non_negative_subsidy: If True, the least core subsidy $e$ is constrained - to be non-negative. - :param solver_options: Additional options to pass to the solver. - :return: List of solutions. + Args: + u: Utility. + problems: Least Core problems to solve, as returned by + [mclc_prepare_problem()][pydvl.value.least_core.montecarlo.mclc_prepare_problem]. + algorithm: Name of the valuation algorithm. + config: Object configuring parallel computation, with cluster address, + number of cpus, etc. + n_jobs: Number of parallel jobs to run. + non_negative_subsidy: If True, the least core subsidy $e$ is constrained + to be non-negative. + solver_options: Additional options to pass to the solver. + + Returns: + List of solutions. """ def _map_func( @@ -216,35 +220,35 @@ def _solve_least_core_linear_program( solver_options: dict, non_negative_subsidy: bool = False, ) -> Tuple[Optional[NDArray[np.float_]], Optional[float]]: - """Solves the Least Core's linear program using cvxopt. - - .. math:: + r"""Solves the Least Core's linear program using cvxopt. + $$ \text{minimize} \ & e \\ \mbox{such that} \ & A_{eq} x = b_{eq}, \\ & A_{lb} x + e \ge b_{lb},\\ & A_{eq} x = b_{eq},\\ & x in \mathcal{R}^n , \\ - - where :math:`x` is a vector of decision variables; , - :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and - :math:`A_{ub}` and :math:`A_{eq}` are matrices. + $$ + where $x$ is a vector of decision variables; , + $b_{ub}$, $b_{eq}$, $l$, and $u$ are vectors; and + $A_{ub}$ and $A_{eq}$ are matrices. if `non_negative_subsidy` is True, then an additional constraint $e \ge 0$ is used. - :param A_eq: The equality constraint matrix. Each row of ``A_eq`` specifies the - coefficients of a linear equality constraint on ``x``. - :param b_eq: The equality constraint vector. Each element of ``A_eq @ x`` must equal - the corresponding element of ``b_eq``. - :param A_lb: The inequality constraint matrix. Each row of ``A_lb`` specifies the - coefficients of a linear inequality constraint on ``x``. - :param b_lb: The inequality constraint vector. Each element represents a - lower bound on the corresponding value of ``A_lb @ x``. - :param non_negative_subsidy: If True, the least core subsidy $e$ is constrained - to be non-negative. - :param options: Keyword arguments that will be used to select a solver - and to configure it. For all possible options, refer to `cvxpy's documentation - `_ + Args: + A_eq: The equality constraint matrix. Each row of `A_eq` specifies the + coefficients of a linear equality constraint on `x`. + b_eq: The equality constraint vector. Each element of `A_eq @ x` must equal + the corresponding element of `b_eq`. + A_lb: The inequality constraint matrix. Each row of `A_lb` specifies the + coefficients of a linear inequality constraint on `x`. + b_lb: The inequality constraint vector. Each element represents a + lower bound on the corresponding value of `A_lb @ x`. + non_negative_subsidy: If True, the least core subsidy $e$ is constrained + to be non-negative. + options: Keyword arguments that will be used to select a solver + and to configure it. For all possible options, refer to [cvxpy's + documentation](https://www.cvxpy.org/tutorial/advanced/index.html#setting-solver-options). """ logger.debug(f"Solving linear program : {A_eq=}, {b_eq=}, {A_lb=}, {b_lb=}") @@ -293,33 +297,35 @@ def _solve_egalitarian_least_core_quadratic_program( b_lb: NDArray[np.float_], solver_options: dict, ) -> Optional[NDArray[np.float_]]: - """Solves the egalitarian Least Core's quadratic program using cvxopt. - - .. math:: + r"""Solves the egalitarian Least Core's quadratic program using cvxopt. + $$ \text{minimize} \ & \| x \|_2 \\ \mbox{such that} \ & A_{eq} x = b_{eq}, \\ & A_{lb} x + e \ge b_{lb},\\ & A_{eq} x = b_{eq},\\ & x in \mathcal{R}^n , \\ & e \text{ is a constant.} - - where :math:`x` is a vector of decision variables; , - :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and - :math:`A_{ub}` and :math:`A_{eq}` are matrices. - - :param subsidy: Minimal subsidy returned by :func:`_solve_least_core_linear_program` - :param A_eq: The equality constraint matrix. Each row of ``A_eq`` specifies the - coefficients of a linear equality constraint on ``x``. - :param b_eq: The equality constraint vector. Each element of ``A_eq @ x`` must equal - the corresponding element of ``b_eq``. - :param A_lb: The inequality constraint matrix. Each row of ``A_lb`` specifies the - coefficients of a linear inequality constraint on ``x``. - :param b_lb: The inequality constraint vector. Each element represents a - lower bound on the corresponding value of ``A_lb @ x``. - :param solver_options: Keyword arguments that will be used to select a solver - and to configure it. Refer to the following page for all possible options: - https://www.cvxpy.org/tutorial/advanced/index.html#setting-solver-options + $$ + where $x$ is a vector of decision variables; , + $b_{ub}$, $b_{eq}$, $l$, and $u$ are vectors; and + $A_{ub}$ and $A_{eq}$ are matrices. + + Args: + subsidy: Minimal subsidy returned by + [_solve_least_core_linear_program()][pydvl.value.least_core.common._solve_least_core_linear_program] + A_eq: The equality constraint matrix. Each row of `A_eq` specifies the + coefficients of a linear equality constraint on `x`. + b_eq: The equality constraint vector. Each element of `A_eq @ x` must equal + the corresponding element of `b_eq`. + A_lb: The inequality constraint matrix. Each row of `A_lb` specifies the + coefficients of a linear inequality constraint on `x`. + b_lb: The inequality constraint vector. Each element represents a + lower bound on the corresponding value of `A_lb @ x`. + solver_options: Keyword arguments that will be used to select a solver + and to configure it. Refer to [cvxpy's + documentation](https://www.cvxpy.org/tutorial/advanced/index.html#setting-solver-options) + for all possible options. """ logger.debug(f"Solving quadratic program : {A_eq=}, {b_eq=}, {A_lb=}, {b_lb=}") diff --git a/src/pydvl/value/least_core/montecarlo.py b/src/pydvl/value/least_core/montecarlo.py index ddb9f2347..fc2f9fe92 100644 --- a/src/pydvl/value/least_core/montecarlo.py +++ b/src/pydvl/value/least_core/montecarlo.py @@ -3,6 +3,7 @@ from typing import Iterable, Optional import numpy as np +from numpy.typing import NDArray from pydvl.utils.config import ParallelConfig from pydvl.utils.numeric import random_powerset @@ -47,19 +48,24 @@ def montecarlo_least_core( * $m$ is the number of subsets that will be sampled and whose utility will be computed and used to compute the data values. - :param u: Utility object with model, data, and scoring function - :param n_iterations: total number of iterations to use - :param n_jobs: number of jobs across which to distribute the computation - :param config: Object configuring parallel computation, with cluster - address, number of cpus, etc. - :param non_negative_subsidy: If True, the least core subsidy $e$ is constrained - to be non-negative. - :param solver_options: Dictionary of options that will be used to select a solver - and to configure it. Refer to the following page for all possible options: - https://www.cvxpy.org/tutorial/advanced/index.html#setting-solver-options - :param options: (Deprecated) Dictionary of solver options. Use solver_options instead. - :param progress: If True, shows a tqdm progress bar - :return: Object with the data values and the least core value. + Args: + u: Utility object with model, data, and scoring function + n_iterations: total number of iterations to use + n_jobs: number of jobs across which to distribute the computation + config: Object configuring parallel computation, with cluster + address, number of cpus, etc. + non_negative_subsidy: If True, the least core subsidy $e$ is constrained + to be non-negative. + solver_options: Dictionary of options that will be used to select a solver + and to configure it. Refer to [cvxpy's + documentation](https://www.cvxpy.org/tutorial/advanced/index.html#setting-solver-options) + for all possible options. + options: (Deprecated) Dictionary of solver options. Use solver_options + instead. + progress: If True, shows a tqdm progress bar + + Returns: + Object with the data values and the least core value. """ # TODO: remove this before releasing version 0.7.0 if options: @@ -95,12 +101,14 @@ def mclc_prepare_problem( config: ParallelConfig = ParallelConfig(), progress: bool = False, ) -> LeastCoreProblem: - """Prepares a linear problem by sampling subsets of the data. - Use this to separate the problem preparation from the solving with - :func:`~pydvl.value.least_core.common.lc_solve_problem`. Useful for - parallel execution of multiple experiments. - - See :func:`montecarlo_least_core` for argument descriptions. + """Prepares a linear problem by sampling subsets of the data. Use this to + separate the problem preparation from the solving with + [lc_solve_problem()][pydvl.value.least_core.common.lc_solve_problem]. Useful + for parallel execution of multiple experiments. + + See + [montecarlo_least_core][pydvl.value.least_core.montecarlo.montecarlo_least_core] + for argument descriptions. """ n = len(u.data) @@ -136,13 +144,17 @@ def mclc_prepare_problem( def _montecarlo_least_core( u: Utility, n_iterations: int, *, progress: bool = False, job_id: int = 1 ) -> LeastCoreProblem: - """Computes utility values and the Least Core upper bound matrix for a given number of iterations. + """Computes utility values and the Least Core upper bound matrix for a given + number of iterations. + + Args: + u: Utility object with model, data, and scoring function + n_iterations: total number of iterations to use + progress: If True, shows a tqdm progress bar + job_id: Integer id used to determine the position of the progress bar - :param u: Utility object with model, data, and scoring function - :param n_iterations: total number of iterations to use - :param progress: If True, shows a tqdm progress bar - :param job_id: Integer id used to determine the position of the progress bar - :return: + Returns: + A solution """ n = len(u.data) @@ -156,7 +168,7 @@ def _montecarlo_least_core( for i, subset in enumerate( maybe_progress(power_set, progress, total=n_iterations, position=job_id) ): - indices = np.zeros(n, dtype=bool) + indices: NDArray[np.bool_] = np.zeros(n, dtype=bool) indices[list(subset)] = True A_lb[i, indices] = 1 utility_values[i] = u(subset) @@ -166,7 +178,8 @@ def _montecarlo_least_core( def _reduce_func(results: Iterable[LeastCoreProblem]) -> LeastCoreProblem: """Combines the results from different parallel runs of - :func:`_montecarlo_least_core`""" + [_montecarlo_least_core()][pydvl.value.least_core.montecarlo._montecarlo_least_core] + """ utility_values_list, A_lb_list = zip(*results) utility_values = np.concatenate(utility_values_list) A_lb = np.concatenate(A_lb_list) diff --git a/src/pydvl/value/least_core/naive.py b/src/pydvl/value/least_core/naive.py index fdcbb97ed..4a6a941f2 100644 --- a/src/pydvl/value/least_core/naive.py +++ b/src/pydvl/value/least_core/naive.py @@ -3,6 +3,7 @@ from typing import Optional import numpy as np +from numpy.typing import NDArray from pydvl.utils import Utility, maybe_progress, powerset from pydvl.value.least_core.common import LeastCoreProblem, lc_solve_problem @@ -23,12 +24,12 @@ def exact_least_core( ) -> ValuationResult: r"""Computes the exact Least Core values. - .. note:: - If the training set contains more than 20 instances a warning is printed - because the computation is very expensive. This method is mostly used for - internal testing and simple use cases. Please refer to the - :func:`Monte Carlo method ` - for practical applications. + !!! Note + If the training set contains more than 20 instances a warning is printed + because the computation is very expensive. This method is mostly used for + internal testing and simple use cases. Please refer to the + [Monte Carlo method][pydvl.value.least_core.montecarlo.montecarlo_least_core] + for practical applications. The least core is the solution to the following Linear Programming problem: @@ -42,16 +43,20 @@ def exact_least_core( Where $N = \{1, 2, \dots, n\}$ are the training set's indices. - :param u: Utility object with model, data, and scoring function - :param non_negative_subsidy: If True, the least core subsidy $e$ is constrained - to be non-negative. - :param solver_options: Dictionary of options that will be used to select a solver - and to configure it. Refer to the following page for all possible options: - https://www.cvxpy.org/tutorial/advanced/index.html#setting-solver-options - :param options: (Deprecated) Dictionary of solver options. Use solver_options instead. - :param progress: If True, shows a tqdm progress bar - - :return: Object with the data values and the least core value. + Args: + u: Utility object with model, data, and scoring function + non_negative_subsidy: If True, the least core subsidy $e$ is constrained + to be non-negative. + solver_options: Dictionary of options that will be used to select a solver + and to configure it. Refer to the [cvxpy's + documentation](https://www.cvxpy.org/tutorial/advanced/index.html#setting-solver-options) + for all possible options. + options: (Deprecated) Dictionary of solver options. Use `solver_options` + instead. + progress: If True, shows a tqdm progress bar + + Returns: + Object with the data values and the least core value. """ n = len(u.data) if n > 20: # Arbitrary choice, will depend on time required, caching, etc. @@ -84,10 +89,10 @@ def exact_least_core( def lc_prepare_problem(u: Utility, progress: bool = False) -> LeastCoreProblem: """Prepares a linear problem with all subsets of the data Use this to separate the problem preparation from the solving with - :func:`~pydvl.value.least_core.common.lc_solve_problem`. Useful for + [lc_solve_problem()][pydvl.value.least_core.common.lc_solve_problem]. Useful for parallel execution of multiple experiments. - See :func:`~pydvl.value.least_core.naive.exact_least_core` for argument + See [exact_least_core()][pydvl.value.least_core.naive.exact_least_core] for argument descriptions. """ n = len(u.data) @@ -103,7 +108,7 @@ def lc_prepare_problem(u: Utility, progress: bool = False) -> LeastCoreProblem: powerset(u.data.indices), progress, total=powerset_size - 1, position=0 ) ): - indices = np.zeros(n, dtype=bool) + indices: NDArray[np.bool_] = np.zeros(n, dtype=bool) indices[list(subset)] = True A_lb[i, indices] = 1 utility_values[i] = u(subset) diff --git a/src/pydvl/value/loo/__init__.py b/src/pydvl/value/loo/__init__.py index e300848c4..6b9e972fc 100644 --- a/src/pydvl/value/loo/__init__.py +++ b/src/pydvl/value/loo/__init__.py @@ -1 +1,2 @@ +from .loo import * from .naive import * diff --git a/src/pydvl/value/loo/loo.py b/src/pydvl/value/loo/loo.py new file mode 100644 index 000000000..893594260 --- /dev/null +++ b/src/pydvl/value/loo/loo.py @@ -0,0 +1,81 @@ +from __future__ import annotations + +from concurrent.futures import FIRST_COMPLETED, Future, wait + +from tqdm import tqdm + +from pydvl.utils import ParallelConfig, Utility, effective_n_jobs, init_executor +from pydvl.value.result import ValuationResult + +__all__ = ["compute_loo"] + + +def compute_loo( + u: Utility, + *, + n_jobs: int = 1, + config: ParallelConfig = ParallelConfig(), + progress: bool = True, +) -> ValuationResult: + r"""Computes leave one out value: + + $$v(i) = u(D) - u(D \setminus \{i\}) $$ + + Args: + u: Utility object with model, data, and scoring function + progress: If True, display a progress bar + n_jobs: Number of parallel jobs to use + config: Object configuring parallel computation, with cluster + address, number of cpus, etc. + progress: If True, display a progress bar + + Returns: + Object with the data values. + + !!! tip "New in version 0.7.0" + Renamed from `naive_loo` and added parallel computation. + """ + + if len(u.data) < 3: + raise ValueError("Dataset must have at least 2 elements") + + result = ValuationResult.zeros( + algorithm="loo", + indices=u.data.indices, + data_names=u.data.data_names, + ) + + all_indices = set(u.data.indices) + total_utility = u(u.data.indices) + + def fun(idx: int) -> tuple[int, float]: + return idx, total_utility - u(all_indices.difference({idx})) + + max_workers = effective_n_jobs(n_jobs, config) + n_submitted_jobs = 2 * max_workers # number of jobs in the queue + + # NOTE: this could be done with a simple executor.map(), but we want to + # display a progress bar + + with init_executor( + max_workers=max_workers, config=config, cancel_futures=True + ) as executor: + pending: set[Future] = set() + index_it = iter(u.data.indices) + + pbar = tqdm(disable=not progress, total=100, unit="%") + while True: + pbar.n = 100 * sum(result.counts) / len(u.data) + pbar.refresh() + completed, pending = wait(pending, timeout=0.1, return_when=FIRST_COMPLETED) + for future in completed: + idx, marginal = future.result() + result.update(idx, marginal) + + # Ensure that we always have n_submitted_jobs running + try: + for _ in range(n_submitted_jobs - len(pending)): + pending.add(executor.submit(fun, next(index_it))) + except StopIteration: + if len(pending) == 0: + return result diff --git a/src/pydvl/value/loo/naive.py b/src/pydvl/value/loo/naive.py index 1b7a1eecd..c50a30f5a 100644 --- a/src/pydvl/value/loo/naive.py +++ b/src/pydvl/value/loo/naive.py @@ -1,35 +1,19 @@ -import numpy as np +from deprecate import deprecated -from pydvl.utils import Utility, maybe_progress -from pydvl.utils.status import Status +from pydvl.utils import Utility from pydvl.value.result import ValuationResult -__all__ = ["naive_loo"] - - -def naive_loo(u: Utility, *, progress: bool = True) -> ValuationResult: - r"""Computes leave one out value: +from .loo import compute_loo - $$v(i) = u(D) - u(D \setminus \{i\}) $$ - - :param u: Utility object with model, data, and scoring function - :param progress: If True, display a progress bar - :return: Object with the data values. - """ - - if len(u.data) < 3: - raise ValueError("Dataset must have at least 2 elements") +__all__ = ["naive_loo"] - values = np.zeros_like(u.data.indices, dtype=np.float_) - all_indices = set(u.data.indices) - total_utility = u(u.data.indices) - for i in maybe_progress(u.data.indices, progress): # type: ignore - subset = all_indices.difference({i}) - values[i] = total_utility - u(subset) - return ValuationResult( - algorithm="naive_loo", - status=Status.Converged, - values=values, - data_names=u.data.data_names, - ) +@deprecated( + target=compute_loo, + deprecated_in="0.7.0", + remove_in="0.8.0", + args_extra=dict(n_jobs=1), +) +def naive_loo(u: Utility, *, progress: bool = True, **kwargs) -> ValuationResult: + """Deprecated. Use [compute_loo][pydvl.value.loo.compute_loo] instead.""" + pass # type: ignore diff --git a/src/pydvl/value/result.py b/src/pydvl/value/result.py index 0c7ae7fe4..989d6d92e 100644 --- a/src/pydvl/value/result.py +++ b/src/pydvl/value/result.py @@ -2,37 +2,42 @@ This module collects types and methods for the inspection of the results of valuation algorithms. -The most important class is :class:`ValuationResult`, which provides access -to raw values, as well as convenient behaviour as a ``Sequence`` with extended -indexing and updating abilities, and conversion to `pandas DataFrames -`_. +The most important class is [ValuationResult][pydvl.value.result.ValuationResult], which provides access +to raw values, as well as convenient behaviour as a `Sequence` with extended +indexing and updating abilities, and conversion to [pandas DataFrames][pandas.DataFrame]. -.. rubric:: Operating on results +# Operating on results -Results can be added together with the standard ``+`` operator. Because values +Results can be added together with the standard `+` operator. Because values are typically running averages of iterative algorithms, addition behaves like a weighted average of the two results, with the weights being the number of updates in each result: adding two results is the same as generating one result with the mean of the values of the two results as values. The variances are -updated accordingly. See :class:`ValuationResult` for details. +updated accordingly. See [ValuationResult][pydvl.value.result.ValuationResult] for details. Results can also be sorted by value, variance or number of updates, see -:meth:`ValuationResult.sort`. The arrays of :attr:`ValuationResult.values`, -:attr:`ValuationResult.variances`, :attr:`ValuationResult.counts`, -:attr:`ValuationResult.indices` and :attr:`ValuationResult.names` are sorted in +[sort()][pydvl.value.result.ValuationResult.sort]. The arrays of +[ValuationResult.values][pydvl.value.result.ValuationResult.values], +[ValuationResult.variances][pydvl.value.result.ValuationResult.variances], +[ValuationResult.counts][pydvl.value.result.ValuationResult.counts], +[ValuationResult.indices][pydvl.value.result.ValuationResult.indices], +[ValuationResult.names][pydvl.value.result.ValuationResult.names] are sorted in the same way. -Indexing and slicing of results is supported and :class:`ValueItem` objects are -returned. These objects can be compared with the usual operators, which take -only the :attr:`ValueItem.value` into account. +Indexing and slicing of results is supported and +[ValueItem][pydvl.value.result.ValueItem] objects are returned. These objects +can be compared with the usual operators, which take only the +[ValueItem.value][pydvl.value.result.ValueItem] into account. -.. rubric:: Creating result objects +# Creating result objects -The most commonly used factory method is :meth:`ValuationResult.zeros`, which +The most commonly used factory method is +[ValuationResult.zeros()][pydvl.value.result.ValuationResult.zeros], which creates a result object with all values, variances and counts set to zero. -:meth:`ValuationResult.empty` creates an empty result object, which can be used -as a starting point for adding results together. Empty results are discarded -when added to other results. Finally, :meth:`ValuationResult.from_random` +[ValuationResult.empty()][pydvl.value.result.ValuationResult.empty] creates an +empty result object, which can be used as a starting point for adding results +together. Empty results are discarded when added to other results. Finally, +[ValuationResult.from_random()][pydvl.value.result.ValuationResult.from_random] samples random values uniformly. """ @@ -66,6 +71,7 @@ from pydvl.utils.dataset import Dataset from pydvl.utils.numeric import running_moments from pydvl.utils.status import Status +from pydvl.utils.types import Seed try: import pandas # Try to import here for the benefit of mypy @@ -86,24 +92,27 @@ class ValueItem(Generic[IndexT, NameT]): """The result of a value computation for one datum. - ``ValueItems`` can be compared with the usual operators, forming a total - order. Comparisons take only the :attr:`value` into account. - - .. todo:: - Maybe have a mode of comparing similar to `np.isclose`, or taking the - :attr:`variance` into account. + `ValueItems` can be compared with the usual operators, forming a total + order. Comparisons take only the `value` into account. + + !!! todo + Maybe have a mode of comparing similar to `np.isclose`, or taking the + `variance` into account. + + Attributes: + index: Index of the sample with this value in the original + [Dataset][pydvl.utils.dataset.Dataset] + name: Name of the sample if it was provided. Otherwise, `str(index)` + value: The value + variance: Variance of the value if it was computed with an approximate + method + count: Number of updates for this value """ - #: Index of the sample with this value in the original - # :class:`~pydvl.utils.dataset.Dataset` index: IndexT - #: Name of the sample if it was provided. Otherwise, `str(index)` name: NameT - #: The value value: float - #: Variance of the value if it was computed with an approximate method variance: Optional[float] - #: Number of updates for this value count: Optional[int] def __lt__(self, other): @@ -128,76 +137,78 @@ class ValuationResult( ): """Objects of this class hold the results of valuation algorithms. - These include indices in the original :class:`Dataset`, any data names (e.g. - group names in :class:`GroupedDataset`), the values themselves, and variance - of the computation in the case of Monte Carlo methods. ``ValuationResults`` - can be iterated over like any ``Sequence``: ``iter(valuation_result)`` - returns a generator of :class:`ValueItem` in the order in which the object + These include indices in the original [Dataset][pydvl.utils.dataset.Dataset], + any data names (e.g. group names in [GroupedDataset][pydvl.utils.dataset.GroupedDataset]), + the values themselves, and variance of the computation in the case of Monte + Carlo methods. `ValuationResults` can be iterated over like any `Sequence`: + `iter(valuation_result)` returns a generator of + [ValueItem][pydvl.value.result.ValueItem] in the order in which the object is sorted. - .. rubric:: Indexing + ## Indexing Indexing can be position-based, when accessing any of the attributes - :attr:`values`, :attr:`variances`, :attr:`counts` and :attr:`indices`, as + [values][pydvl.value.result.ValuationResult.values], [variances][pydvl.value.result.ValuationResult.variances], + [counts][pydvl.value.result.ValuationResult.counts] and [indices][pydvl.value.result.ValuationResult.indices], as well as when iterating over the object, or using the item access operator, both getter and setter. The "position" is either the original sequence in which the data was passed to the constructor, or the sequence in which the object is sorted, see below. Alternatively, indexing can be data-based, i.e. using the indices in the - original dataset. This is the case for the methods :meth:`get` and - :meth:`update`. + original dataset. This is the case for the methods [get()][pydvl.value.result.ValuationResult.get] and + [update()][pydvl.value.result.ValuationResult.update]. - .. rubric:: Sorting + ## Sorting - Results can be sorted in-place with :meth:`sort`, or alternatively using - python's standard ``sorted()`` and ``reversed()`` Note that sorting values - affects how iterators and the object itself as ``Sequence`` behave: - ``values[0]`` returns a :class:`ValueItem` with the highest or lowest + Results can be sorted in-place with [sort()][pydvl.value.result.ValuationResult.sort], or alternatively using + python's standard `sorted()` and `reversed()` Note that sorting values + affects how iterators and the object itself as `Sequence` behave: + `values[0]` returns a [ValueItem][pydvl.value.result.ValueItem] with the highest or lowest ranking point if this object is sorted by descending or ascending value, - respectively. If unsorted, ``values[0]`` returns the ``ValueItem`` at - position 0, which has data index ``indices[0]`` in the - :class:`~pydvl.utils.dataset.Dataset`. + respectively. If unsorted, `values[0]` returns the `ValueItem` at + position 0, which has data index `indices[0]` in the + [Dataset][pydvl.utils.dataset.Dataset]. - The same applies to direct indexing of the ``ValuationResult``: the index + The same applies to direct indexing of the `ValuationResult`: the index is positional, according to the sorting. It does not refer to the "data - index". To sort according to data index, use :meth:`sort` with - ``key="index"``. + index". To sort according to data index, use [sort()][pydvl.value.result.ValuationResult.sort] with + `key="index"`. - In order to access :class:`ValueItem` objects by their data index, use - :meth:`get`. + In order to access [ValueItem][pydvl.value.result.ValueItem] objects by their data index, use + [get()][pydvl.value.result.ValuationResult.get]. - .. rubric:: Operating on results + ## Operating on results - Results can be added to each other with the ``+`` operator. Means and - variances are correctly updated, using the ``counts`` attribute. + Results can be added to each other with the `+` operator. Means and + variances are correctly updated, using the `counts` attribute. - Results can also be updated with new values using :meth:`update`. Means and + Results can also be updated with new values using [update()][pydvl.value.result.ValuationResult.update]. Means and variances are updated accordingly using the Welford algorithm. - Empty objects behave in a special way, see :meth:`empty`. - - :param values: An array of values. If omitted, defaults to an empty array - or to an array of zeros if ``indices`` are given. - :param indices: An optional array of indices in the original dataset. If - omitted, defaults to ``np.arange(len(values))``. **Warning:** It is - common to pass the indices of a :class:`Dataset` here. Attention must be - paid in a parallel context to copy them to the local process. Just do - ``indices=np.copy(data.indices)``. - :param variance: An optional array of variances in the computation of each - value. - :param counts: An optional array with the number of updates for each value. - Defaults to an array of ones. - :param data_names: Names for the data points. Defaults to index numbers - if not set. - :param algorithm: The method used. - :param status: The end status of the algorithm. - :param sort: Whether to sort the indices by ascending value. See above how - this affects usage as an iterable or sequence. - :param extra_values: Additional values that can be passed as keyword arguments. - This can contain, for example, the least core value. - - :raise ValueError: If input arrays have mismatching lengths. + Empty objects behave in a special way, see [empty()][pydvl.value.result.ValuationResult.empty]. + + Args: + values: An array of values. If omitted, defaults to an empty array + or to an array of zeros if `indices` are given. + indices: An optional array of indices in the original dataset. If + omitted, defaults to `np.arange(len(values))`. **Warning:** It is + common to pass the indices of a [Dataset][pydvl.utils.dataset.Dataset] + here. Attention must be paid in a parallel context to copy them to + the local process. Just do `indices=np.copy(data.indices)`. + variances: An optional array of variances in the computation of each value. + counts: An optional array with the number of updates for each value. + Defaults to an array of ones. + data_names: Names for the data points. Defaults to index numbers if not set. + algorithm: The method used. + status: The end status of the algorithm. + sort: Whether to sort the indices by ascending value. See above how + this affects usage as an iterable or sequence. + extra_values: Additional values that can be passed as keyword arguments. + This can contain, for example, the least core value. + + Raises: + ValueError: If input arrays have mismatching lengths. """ _indices: NDArray[IndexT] @@ -258,7 +269,9 @@ def __init__( self._indices = indices self._positions = {idx: pos for pos, idx in enumerate(indices)} - self._sort_positions = np.arange(len(self._values), dtype=np.int_) + self._sort_positions: NDArray[np.int_] = np.arange( + len(self._values), dtype=np.int_ + ) if sort: self.sort() @@ -268,16 +281,21 @@ def sort( # Need a "Comparable" type here key: Literal["value", "variance", "index", "name"] = "value", ) -> None: - """Sorts the indices in place by ``key``. + """Sorts the indices in place by `key`. Once sorted, iteration over the results, and indexing of all the - properties :attr:`ValuationResult.values`, - :attr:`ValuationResult.variances`, :attr:`ValuationResult.counts`, - :attr:`ValuationResult.indices` and :attr:`ValuationResult.names` will - follow the same order. - - :param reverse: Whether to sort in descending order by value. - :param key: The key to sort by. Defaults to :attr:`ValueItem.value`. + properties + [ValuationResult.values][pydvl.value.result.ValuationResult.values], + [ValuationResult.variances][pydvl.value.result.ValuationResult.variances], + [ValuationResult.counts][pydvl.value.result.ValuationResult.counts], + [ValuationResult.indices][pydvl.value.result.ValuationResult.indices] + and [ValuationResult.names][pydvl.value.result.ValuationResult.names] + will follow the same order. + + Args: + reverse: Whether to sort in descending order by value. + key: The key to sort by. Defaults to + [ValueItem.value][pydvl.value.result.ValueItem]. """ keymap = { "index": "_indices", @@ -317,7 +335,7 @@ def indices(self) -> NDArray[IndexT]: """The indices for the values, possibly sorted. If the object is unsorted, then these are the same as declared at - construction or ``np.arange(len(values))`` if none were passed. + construction or `np.arange(len(values))` if none were passed. """ return self._indices[self._sort_positions] @@ -325,7 +343,7 @@ def indices(self) -> NDArray[IndexT]: def names(self) -> NDArray[NameT]: """The names for the values, possibly sorted. If the object is unsorted, then these are the same as declared at - construction or ``np.arange(len(values))`` if none were passed. + construction or `np.arange(len(values))` if none were passed. """ return self._names[self._sort_positions] @@ -420,8 +438,8 @@ def __setitem__( raise TypeError("Indices must be integers, iterable or slices") def __iter__(self) -> Iterator[ValueItem[IndexT, NameT]]: - """Iterate over the results returning :class:`ValueItem` objects. - To sort in place before iteration, use :meth:`sort`. + """Iterate over the results returning [ValueItem][pydvl.value.result.ValueItem] objects. + To sort in place before iteration, use [sort()][pydvl.value.result.ValuationResult.sort]. """ for pos in self._sort_positions: yield ValueItem( @@ -481,21 +499,21 @@ def __add__(self, other: "ValuationResult") -> "ValuationResult": to this is if one argument has empty values, in which case the other argument is returned. - .. warning:: - Abusing this will introduce numerical errors. + !!! Warning + Abusing this will introduce numerical errors. Means and standard errors are correctly handled. Statuses are added with - bit-wise ``&``, see :class:`~pydvl.value.result.Status`. - ``data_names`` are taken from the left summand, or if unavailable from - the right one. The ``algorithm`` string is carried over if both terms + bit-wise `&`, see [Status][pydvl.value.result.Status]. + `data_names` are taken from the left summand, or if unavailable from + the right one. The `algorithm` string is carried over if both terms have the same one or concatenated. It is possible to add ValuationResults of different lengths, and with different or overlapping indices. The result will have the union of indices, and the values. - .. warning:: - FIXME: Arbitrary ``extra_values`` aren't handled. + !!! Warning + FIXME: Arbitrary `extra_values` aren't handled. """ # empty results @@ -510,12 +528,12 @@ def __add__(self, other: "ValuationResult") -> "ValuationResult": this_pos = np.searchsorted(indices, self._indices) other_pos = np.searchsorted(indices, other._indices) - n = np.zeros_like(indices, dtype=int) - m = np.zeros_like(indices, dtype=int) - xn = np.zeros_like(indices, dtype=float) - xm = np.zeros_like(indices, dtype=float) - vn = np.zeros_like(indices, dtype=float) - vm = np.zeros_like(indices, dtype=float) + n: NDArray[np.int_] = np.zeros_like(indices, dtype=int) + m: NDArray[np.int_] = np.zeros_like(indices, dtype=int) + xn: NDArray[np.int_] = np.zeros_like(indices, dtype=float) + xm: NDArray[np.int_] = np.zeros_like(indices, dtype=float) + vn: NDArray[np.int_] = np.zeros_like(indices, dtype=float) + vm: NDArray[np.int_] = np.zeros_like(indices, dtype=float) n[this_pos] = self._counts xn[this_pos] = self._values @@ -553,18 +571,24 @@ def __add__(self, other: "ValuationResult") -> "ValuationResult": f"{other._names.dtype} to {self._names.dtype}" ) - this_names = np.empty_like(indices, dtype=object) - other_names = np.empty_like(indices, dtype=object) - this_names[this_pos] = self._names - other_names[other_pos] = other._names - both = np.where(this_pos == other_pos) + both_pos = np.intersect1d(this_pos, other_pos) + + if len(both_pos) > 0: + this_names: NDArray = np.empty_like(indices, dtype=object) + other_names: NDArray = np.empty_like(indices, dtype=object) + this_names[this_pos] = self._names + other_names[other_pos] = other._names + + this_shared_names = np.take(this_names, both_pos) + other_shared_names = np.take(other_names, both_pos) + + if np.any(this_shared_names != other_shared_names): + raise ValueError(f"Mismatching names in ValuationResults") + names = np.empty_like(indices, dtype=self._names.dtype) names[this_pos] = self._names names[other_pos] = other._names - if np.any(other_names[both] != this_names[both]): - raise ValueError(f"Mismatching names in ValuationResults") - return ValuationResult( algorithm=self.algorithm or other.algorithm or "", status=self.status & other.status, @@ -581,10 +605,15 @@ def update(self, idx: int, new_value: float) -> "ValuationResult": """Updates the result in place with a new value, using running mean and variance. - :param idx: Data index of the value to update. - :param new_value: New value to add to the result. - :return: A reference to the same, modified result. - :raises IndexError: If the index is not found. + Args: + idx: Data index of the value to update. + new_value: New value to add to the result. + + Returns: + A reference to the same, modified result. + + Raises: + IndexError: If the index is not found. """ try: pos = self._positions[idx] @@ -605,7 +634,9 @@ def update(self, idx: int, new_value: float) -> "ValuationResult": def get(self, idx: Integral) -> ValueItem: """Retrieves a ValueItem by data index, as opposed to sort index, like the indexing operator. - :raises IndexError: If the index is not found. + + Raises: + IndexError: If the index is not found. """ try: pos = self._positions[idx] @@ -625,14 +656,18 @@ def to_dataframe( ) -> pandas.DataFrame: """Returns values as a dataframe. - :param column: Name for the column holding the data value. Defaults to - the name of the algorithm used. - :param use_names: Whether to use data names instead of indices for the - DataFrame's index. - :return: A dataframe with two columns, one for the values, with name - given as explained in `column`, and another with standard errors for - approximate algorithms. The latter will be named `column+'_stderr'`. - :raise ImportError: If pandas is not installed + Args: + column: Name for the column holding the data value. Defaults to + the name of the algorithm used. + use_names: Whether to use data names instead of indices for the + DataFrame's index. + + Returns: + A dataframe with two columns, one for the values, with name + given as explained in `column`, and another with standard errors for + approximate algorithms. The latter will be named `column+'_stderr'`. + Raises: + ImportError: If pandas is not installed """ if not pandas: raise ImportError("Pandas required for DataFrame export") @@ -649,28 +684,38 @@ def to_dataframe( @classmethod def from_random( - cls, size: int, total: Optional[float] = None, **kwargs + cls, + size: int, + total: Optional[float] = None, + seed: Optional[Seed] = None, + **kwargs, ) -> "ValuationResult": - """Creates a :class:`ValuationResult` object and fills it with an array + """Creates a [ValuationResult][pydvl.value.result.ValuationResult] object and fills it with an array of random values from a uniform distribution in [-1,1]. The values can be made to sum up to a given total number (doing so will change their range). - :param size: Number of values to generate - :param total: If set, the values are normalized to sum to this number - ("efficiency" property of Shapley values). - :param kwargs: Additional options to pass to the constructor of - :class:`ValuationResult`. Use to override status, names, etc. - :return: A valuation result with its status set to - :attr:`Status.Converged` by default. - :raises ValueError: If ``size`` is less than 1. - - .. versionchanged:: 0.6.0 - Added parameter ``total``. Check for zero size + Args: + size: Number of values to generate + total: If set, the values are normalized to sum to this number + ("efficiency" property of Shapley values). + kwargs: Additional options to pass to the constructor of + [ValuationResult][pydvl.value.result.ValuationResult]. Use to override status, names, etc. + + Returns: + A valuation result with its status set to + [Status.Converged][pydvl.utils.status.Status] by default. + + Raises: + ValueError: If `size` is less than 1. + + !!! tip "Changed in version 0.6.0" + Added parameter `total`. Check for zero size """ if size < 1: raise ValueError("Size must be a positive integer") - values = np.random.uniform(low=-1, high=1, size=size) + rng = np.random.default_rng(seed) + values = rng.uniform(low=-1, high=1, size=size) if total is not None: values *= total / np.sum(values) @@ -694,13 +739,16 @@ def empty( data_names: Optional[Sequence[NameT] | NDArray[NameT]] = None, n_samples: int = 0, ) -> "ValuationResult": - """Creates an empty :class:`ValuationResult` object. + """Creates an empty [ValuationResult][pydvl.value.result.ValuationResult] object. Empty results are characterised by having an empty array of values. When another result is added to an empty one, the empty one is discarded. - :param algorithm: Name of the algorithm used to compute the values - :return: An instance of :class:`ValuationResult` + Args: + algorithm: Name of the algorithm used to compute the values + + Returns: + Object with the results. """ if indices is not None or data_names is not None or n_samples != 0: return cls.zeros( @@ -719,19 +767,22 @@ def zeros( data_names: Optional[Sequence[NameT] | NDArray[NameT]] = None, n_samples: int = 0, ) -> "ValuationResult": - """Creates an empty :class:`ValuationResult` object. + """Creates an empty [ValuationResult][pydvl.value.result.ValuationResult] object. Empty results are characterised by having an empty array of values. When another result is added to an empty one, the empty one is ignored. - :param algorithm: Name of the algorithm used to compute the values - :param indices: Data indices to use. A copy will be made. If not given, - the indices will be set to the range ``[0, n_samples)``. - :param data_names: Data names to use. A copy will be made. If not given, - the names will be set to the string representation of the indices. - :param n_samples: Number of data points whose values are computed. If - not given, the length of ``indices`` will be used. - :return: An instance of :class:`ValuationResult` + Args: + algorithm: Name of the algorithm used to compute the values + indices: Data indices to use. A copy will be made. If not given, + the indices will be set to the range `[0, n_samples)`. + data_names: Data names to use. A copy will be made. If not given, + the names will be set to the string representation of the indices. + n_samples: Number of data points whose values are computed. If + not given, the length of `indices` will be used. + + Returns: + Object with the results. """ if indices is None: indices = np.arange(n_samples, dtype=np.int_) diff --git a/src/pydvl/value/sampler.py b/src/pydvl/value/sampler.py index 86c29ec3d..0e3e479e9 100644 --- a/src/pydvl/value/sampler.py +++ b/src/pydvl/value/sampler.py @@ -1,30 +1,41 @@ -""" +r""" Samplers iterate over subsets of indices. The classes in this module are used to iterate over indices and subsets of their complement in the whole set, as required for the computation of marginal utility for semi-values. The elements returned when iterating over any subclass of -:class:`PowersetSampler` are tuples of the form ``(idx, subset)``, where ``idx`` -is the index of the element being added to the subset, and ``subset`` is the -subset of the complement of ``idx``. - -.. note:: - This is the natural mode of iteration for the combinatorial definition of - semi-values, in particular Shapley value. For the computation using - permutations, adhering to this interface is not ideal, but we stick to it for - consistency. - -The samplers are used in the :mod:`pydvl.value.semivalues` module to compute any -semi-value, in particular Shapley and Beta values, and Banzhaf indices. - -.. rubric:: Slicing of samplers +[PowersetSampler][pydvl.value.sampler.PowersetSampler] are tuples of the form +`(idx, subset)`, where `idx` is the index of the element being added to the +subset, and `subset` is the subset of the complement of `idx`. +The classes in this module are used to iterate over an index set $I$ as required +for the computation of marginal utility for semi-values. The elements returned +when iterating over any subclass of :class:`PowersetSampler` are tuples of the +form $(i, S)$, where $i$ is an index of interest, and $S \subset I \setminus \{i\}$ +is a subset of the complement of $i$. + +The iteration happens in two nested loops. An outer loop iterates over $I$, and +an inner loop iterates over the powerset of $I \setminus \{i\}$. The outer +iteration can be either sequential or at random. + +!!! Note + This is the natural mode of iteration for the combinatorial definition of + semi-values, in particular Shapley value. For the computation using + permutations, adhering to this interface is not ideal, but we stick to it for + consistency. + +The samplers are used in the [semivalues][pydvl.value.semivalues] module to +compute any semi-value, in particular Shapley and Beta values, and Banzhaf +indices. + +# Slicing of samplers The samplers can be sliced for parallel computation. For those which are embarrassingly parallel, this is done by slicing the set of "outer" indices and returning new samplers over those slices. This includes all truly powerset-based -samplers, such as :class:`DeterministicCombinatorialSampler` and -:class:`UniformSampler`. In contrast, slicing a :class:`PermutationSampler` -creates a new sampler which iterates over the same indices. +samplers, such as [DeterministicUniformSampler][pydvl.value.sampler.DeterministicUniformSampler] +and [UniformSampler][pydvl.value.sampler.UniformSampler]. In contrast, slicing a +[PermutationSampler][pydvl.value.sampler.PermutationSampler] creates a new +sampler which iterates over the same indices. """ from __future__ import annotations @@ -33,48 +44,71 @@ import math from enum import Enum from itertools import permutations -from typing import Generic, Iterable, Iterator, Sequence, Tuple, TypeVar, overload +from typing import ( + Generic, + Iterable, + Iterator, + Optional, + Sequence, + Tuple, + TypeVar, + Union, + overload, +) import numpy as np +from deprecate import deprecated, void from numpy.typing import NDArray from pydvl.utils.numeric import powerset, random_subset, random_subset_of_size +from pydvl.utils.types import Seed __all__ = [ "AntitheticSampler", - "DeterministicCombinatorialSampler", + "DeterministicUniformSampler", "DeterministicPermutationSampler", "PermutationSampler", "PowersetSampler", "RandomHierarchicalSampler", "UniformSampler", + "StochasticSamplerMixin", ] + T = TypeVar("T", bound=np.generic) -SampleType = Tuple[T, NDArray[T]] +SampleT = Tuple[T, NDArray[T]] Sequence.register(np.ndarray) -class PowersetSampler(abc.ABC, Iterable[SampleType], Generic[T]): - """Samplers iterate over subsets of indices. +class PowersetSampler(abc.ABC, Iterable[SampleT], Generic[T]): + """Samplers are custom iterables over subsets of indices. + + Calling ``iter()`` on a sampler returns an iterator over tuples of the form + $(i, S)$, where $i$ is an index of interest, and $S \subset I \setminus \{i\}$ + is a subset of the complement of $i$. - This is done in nested loops, where the outer loop iterates over the set of - indices, and the inner loop iterates over subsets of the complement of the - current index. The outer iteration can be either sequential or at random. + This is done in two nested loops, where the outer loop iterates over the set + of indices, and the inner loop iterates over subsets of the complement of + the current index. The outer iteration can be either sequential or at random. - :Example: + !!! Note + Samplers are **not** iterators themselves, so that each call to ``iter()`` + e.g. in a for loop creates a new iterator. - >>>for idx, s in DeterministicCombinatorialSampler([1,2]): - >>> print(s, end="") - ()(2,)()(1,) + ??? Example + ``` pycon + >>>for idx, s in DeterministicUniformSampler(np.arange(2)): + >>> print(s, end="") + [][2,][][1,] + ``` - .. rubric:: Methods required in subclasses + # Methods required in subclasses - Samplers must define a :meth:`weight` function to be used as a multiplier in - Monte Carlo sums, so that the limit expectation coincides with the - semi-value. + Samplers must implement a [weight()][pydvl.value.sampler.PowersetSampler.weight] + function to be used as a multiplier in Monte Carlo sums, so that the limit + expectation coincides with the semi-value. - .. rubric:: Slicing of samplers + # Slicing of samplers The samplers can be sliced for parallel computation. For those which are embarrassingly parallel, this is done by slicing the set of "outer" indices @@ -89,15 +123,16 @@ def __init__( self, indices: NDArray[T], index_iteration: IndexIteration = IndexIteration.Sequential, - outer_indices: NDArray[T] = None, + outer_indices: NDArray[T] | None = None, ): """ - :param indices: The set of items (indices) to sample from. - :param index_iteration: the order in which indices are iterated over - :param outer_indices: The set of items (indices) over which to iterate - when sampling. Subsets are taken from the complement of each index - in succession. For embarrassingly parallel computations, this set - is sliced and the samplers are used to iterate over the slices. + Args: + indices: The set of items (indices) to sample from. + index_iteration: the order in which indices are iterated over + outer_indices: The set of items (indices) over which to iterate + when sampling. Subsets are taken from the complement of each index + in succession. For embarrassingly parallel computations, this set + is sliced and the samplers are used to iterate over the slices. """ self._indices = indices self._index_iteration = index_iteration @@ -138,19 +173,19 @@ def iterindices(self) -> Iterator[T]: yield np.random.choice(self._outer_indices, size=1).item() @overload - def __getitem__(self, key: slice) -> "PowersetSampler[T]": + def __getitem__(self, key: slice) -> PowersetSampler[T]: ... @overload - def __getitem__(self, key: list[int]) -> "PowersetSampler[T]": + def __getitem__(self, key: list[int]) -> PowersetSampler[T]: ... - def __getitem__(self, key: slice | list[int]) -> "PowersetSampler[T]": + def __getitem__(self, key: slice | list[int]) -> PowersetSampler[T]: if isinstance(key, slice) or isinstance(key, Iterable): return self.__class__( self._indices, index_iteration=self._index_iteration, - outer_indices=self._indices[key], + outer_indices=self._outer_indices[key], ) raise TypeError("Indices must be an iterable or a slice") @@ -162,20 +197,21 @@ def __str__(self): return f"{self.__class__.__name__}" def __repr__(self): - return f"{self.__class__.__name__}({self._indices})" + return f"{self.__class__.__name__}({self._indices}, {self._outer_indices})" @abc.abstractmethod - def __iter__(self) -> Iterator[SampleType]: + def __iter__(self) -> Iterator[SampleT]: ... + @classmethod @abc.abstractmethod - def weight(self, subset: NDArray[T]) -> float: + def weight(cls, n: int, subset_len: int) -> float: r"""Factor by which to multiply Monte Carlo samples, so that the mean converges to the desired expression. By the Law of Large Numbers, the sample mean of $\delta_i(S_j)$ - converges - to the expectation under the distribution from which $S_j$ is sampled. + converges to the expectation under the distribution from which $S_j$ is + sampled. $$ \frac{1}{m} \sum_{j = 1}^m \delta_i (S_j) c (S_j) \longrightarrow \underset{S \sim \mathcal{D}_{- i}}{\mathbb{E}} [\delta_i (S) c ( @@ -187,52 +223,110 @@ def weight(self, subset: NDArray[T]) -> float: ... -class DeterministicCombinatorialSampler(PowersetSampler[T]): +class StochasticSamplerMixin: + """Mixin class for samplers which use a random number generator.""" + + def __init__(self, *args, seed: Optional[Seed] = None, **kwargs): + super().__init__(*args, **kwargs) + self._rng = np.random.default_rng(seed) + + +class DeterministicUniformSampler(PowersetSampler[T]): def __init__(self, indices: NDArray[T], *args, **kwargs): - """Uniform deterministic sampling of subsets. + """An iterator to perform uniform deterministic sampling of subsets. + + For every index $i$, each subset of the complement `indices - {i}` is + returned. + + !!! Note + Indices are always iterated over sequentially, irrespective of + the value of `index_iteration` upon construction. - For every index $i$, each subset of `indices - {i}` has equal - probability $2^{n-1}$. + ??? Example + ``` pycon + >>> for idx, s in DeterministicUniformSampler(np.arange(2)): + >>> print(f"{idx} - {s}", end=", ") + 1 - [], 1 - [2], 2 - [], 2 - [1], + ``` - :param indices: The set of items (indices) to sample from. + Args: + indices: The set of items (indices) to sample from. """ # Force sequential iteration kwargs.update({"index_iteration": PowersetSampler.IndexIteration.Sequential}) super().__init__(indices, *args, **kwargs) - def __iter__(self) -> Iterator[SampleType]: + def __iter__(self) -> Iterator[SampleT]: for idx in self.iterindices(): - for subset in powerset(self.complement([idx])): + # FIXME: type ignore just necessary for CI ?? + for subset in powerset(self.complement([idx])): # type: ignore yield idx, np.array(subset) self._n_samples += 1 - def weight(self, subset: NDArray[T]) -> float: - return float(2 ** (self._n - 1)) if self._n > 0 else 1.0 - + @classmethod + def weight(cls, n: int, subset_len: int) -> float: + return float(2 ** (n - 1)) if n > 0 else 1.0 + + +class UniformSampler(StochasticSamplerMixin, PowersetSampler[T]): + """An iterator to perform uniform random sampling of subsets. + + Iterating over every index $i$, either in sequence or at random depending on + the value of ``index_iteration``, one subset of the complement + ``indices - {i}`` is sampled with equal probability $2^{n-1}$. The + iterator never ends. + + ??? Example + The code + ```python + for idx, s in UniformSampler(np.arange(3)): + print(f"{idx} - {s}", end=", ") + ``` + Produces the output: + ``` + 0 - [1 4], 1 - [2 3], 2 - [0 1 3], 3 - [], 4 - [2], 0 - [1 3 4], 1 - [0 2] + (...) + ``` + """ -class UniformSampler(PowersetSampler[T]): - def __iter__(self) -> Iterator[SampleType]: + def __iter__(self) -> Iterator[SampleT]: while True: for idx in self.iterindices(): - subset = random_subset(self.complement([idx])) + subset = random_subset(self.complement([idx]), seed=self._rng) yield idx, subset self._n_samples += 1 if self._n_samples == 0: # Empty index set break - def weight(self, subset: NDArray[T]) -> float: + @classmethod + def weight(cls, n: int, subset_len: int) -> float: """Correction coming from Monte Carlo integration so that the mean of the marginals converges to the value: the uniform distribution over the - powerset of a set with n-1 elements has mass 2^{n-1} over each subset. - The factor 1 / n corresponds to the one in the Shapley definition.""" - return float(2 ** (self._n - 1)) if self._n > 0 else 1.0 + powerset of a set with n-1 elements has mass 2^{n-1} over each subset.""" + return float(2 ** (n - 1)) if n > 0 else 1.0 -class AntitheticSampler(PowersetSampler[T]): - def __iter__(self) -> Iterator[SampleType]: +class DeterministicCombinatorialSampler(DeterministicUniformSampler[T]): + @deprecated( + target=DeterministicUniformSampler, deprecated_in="0.6.0", remove_in="0.8.0" + ) + def __init__(self, indices: NDArray[T], *args, **kwargs): + void(indices, args, kwargs) + + +class AntitheticSampler(StochasticSamplerMixin, PowersetSampler[T]): + """An iterator to perform uniform random sampling of subsets, and their + complements. + + Works as :class:`~pydvl.value.sampler.UniformSampler`, but for every tuple + $(i,S)$, it subsequently returns $(i,S^c)$, where $S^c$ is the complement of + the set $S$, including the index $i$ itself. + """ + + def __iter__(self) -> Iterator[SampleT]: while True: for idx in self.iterindices(): - subset = random_subset(self.complement([idx])) + subset = random_subset(self.complement([idx]), seed=self._rng) yield idx, subset self._n_samples += 1 yield idx, self.complement(np.concatenate((subset, np.array([idx])))) @@ -240,35 +334,45 @@ def __iter__(self) -> Iterator[SampleType]: if self._n_samples == 0: # Empty index set break - def weight(self, subset: NDArray[T]) -> float: - return float(2 ** (self._n - 1)) if self._n > 0 else 1.0 + @classmethod + def weight(cls, n: int, subset_len: int) -> float: + return float(2 ** (n - 1)) if n > 0 else 1.0 + + +class PermutationSampler(StochasticSamplerMixin, PowersetSampler[T]): + """Sample permutations of indices and iterate through each returning + increasing subsets, as required for the permutation definition of + semi-values. + This sampler does not implement the two loops described in + [PowersetSampler][pydvl.value.sampler.PowersetSampler]. Instead, for a + permutation `(3,1,4,2)`, it returns in sequence the tuples of index and + sets: `(3, {})`, `(1, {3})`, `(4, {3,1})` and `(2, {3,1,4})`. -class PermutationSampler(PowersetSampler[T]): - """Sample permutations of indices and iterate through each returning sets, - as required for the permutation definition of semi-values. + Note that the full index set is never returned. - .. warning:: - This sampler requires caching to be enabled or computation - will be doubled wrt. a "direct" implementation of permutation MC + !!! Warning + This sampler requires caching to be enabled or computation + will be doubled wrt. a "direct" implementation of permutation MC """ - def __iter__(self) -> Iterator[SampleType]: + def __iter__(self) -> Iterator[SampleT]: while True: - permutation = np.random.permutation(self._indices) + permutation = self._rng.permutation(self._indices) for i, idx in enumerate(permutation): yield idx, permutation[:i] self._n_samples += 1 if self._n_samples == 0: # Empty index set break - def __getitem__(self, key: slice | list[int]) -> "PowersetSampler[T]": + def __getitem__(self, key: slice | list[int]) -> PowersetSampler[T]: """Permutation samplers cannot be split across indices, so we return a copy of the full sampler.""" return super().__getitem__(slice(None)) - def weight(self, subset: NDArray[T]) -> float: - return self._n * math.comb(self._n - 1, len(subset)) if self._n > 0 else 1.0 + @classmethod + def weight(cls, n: int, subset_len: int) -> float: + return n * math.comb(n - 1, subset_len) if n > 0 else 1.0 class DeterministicPermutationSampler(PermutationSampler[T]): @@ -276,36 +380,49 @@ class DeterministicPermutationSampler(PermutationSampler[T]): iterates through them, returning sets as required for the permutation-based definition of semi-values. - .. warning:: - This sampler requires caching to be enabled or computation - will be doubled wrt. a "direct" implementation of permutation MC + !!! Warning + This sampler requires caching to be enabled or computation + will be doubled wrt. a "direct" implementation of permutation MC + + !!! Warning + This sampler is not parallelizable, as it always iterates over the whole + set of permutations in the same order. Different processes would always + return the same values for all indices. """ - def __iter__(self) -> Iterator[SampleType]: + def __iter__(self) -> Iterator[SampleT]: for permutation in permutations(self._indices): for i, idx in enumerate(permutation): yield idx, np.array(permutation[:i], dtype=self._indices.dtype) self._n_samples += 1 - if self._n_samples == 0: # Empty index set - break -class RandomHierarchicalSampler(PowersetSampler[T]): +class RandomHierarchicalSampler(StochasticSamplerMixin, PowersetSampler[T]): """For every index, sample a set size, then a set of that size. - .. todo:: - This is unnecessary, but a step towards proper stratified sampling. + !!! Todo + This is unnecessary, but a step towards proper stratified sampling. """ - def __iter__(self) -> Iterator[SampleType]: + def __iter__(self) -> Iterator[SampleT]: while True: for idx in self.iterindices(): - k = np.random.choice(np.arange(len(self._indices)), size=1).item() - subset = random_subset_of_size(self.complement([idx]), size=k) + k = self._rng.choice(np.arange(len(self._indices)), size=1).item() + subset = random_subset_of_size( + self.complement([idx]), size=k, seed=self._rng + ) yield idx, subset self._n_samples += 1 if self._n_samples == 0: # Empty index set break - def weight(self, subset: NDArray[T]) -> float: - return float(2 ** (self._n - 1)) if self._n > 0 else 1.0 + @classmethod + def weight(cls, n: int, subset_len: int) -> float: + return float(2 ** (n - 1)) if n > 0 else 1.0 + + +# TODO Replace by Intersection[StochasticSamplerMixin, PowersetSampler[T]] +# See https://github.com/python/typing/issues/213 +StochasticSampler = Union[ + UniformSampler, PermutationSampler, AntitheticSampler, RandomHierarchicalSampler +] diff --git a/src/pydvl/value/semivalues.py b/src/pydvl/value/semivalues.py index 6dfb94116..488a25037 100644 --- a/src/pydvl/value/semivalues.py +++ b/src/pydvl/value/semivalues.py @@ -9,119 +9,145 @@ $$\sum_{k=1}^n w(k) = 1.$$ +!!! Note + For implementation consistency, we slightly depart from the common definition + of semi-values, which includes a factor $1/n$ in the sum over subsets. + Instead, we subsume this factor into the coefficient $w(k)$. + As such, the computation of a semi-value requires two components: 1. A **subset sampler** that generates subsets of the set $D$ of interest. 2. A **coefficient** $w(k)$ that assigns a weight to each subset size $k$. -Samplers can be found in :mod:`pydvl.value.sampler`, and can be classified into -two categories: powerset samplers and (one) permutation sampler. Powerset +Samplers can be found in [sampler][pydvl.value.sampler], and can be classified +into two categories: powerset samplers and permutation samplers. Powerset samplers generate subsets of $D_{-i}$, while the permutation sampler generates permutations of $D$. The former conform to the above definition of semi-values, while the latter reformulates it as: $$ -v_u(x_i) = \frac{1}{n!} \sum_{\sigma \in \Pi(n)} -\tilde{w}( | \sigma_{:i} | )[u(\sigma_{:i} \cup \{i\}) − u(\sigma_{:i})], +v(i) = \frac{1}{n!} \sum_{\sigma \in \Pi(n)} +\tilde{w}( | \sigma_{:i} | )[U(\sigma_{:i} \cup \{i\}) − U(\sigma_{:i})], $$ where $\sigma_{:i}$ denotes the set of indices in permutation sigma before the -position where $i$ appears (see :ref:`data valuation` for details), and -$\tilde{w}(k) = n \choose{n-1}{k} w(k)$ is the weight correction due to the -reformulation. +position where $i$ appears (see [Data valuation][computing-data-values] for +details), and + +$$ \tilde{w} (k) = n \binom{n - 1}{k} w (k) $$ + +is the weight correction due to the reformulation. + +!!! Warning + Both [PermutationSampler][pydvl.value.sampler.PermutationSampler] and + [DeterministicPermutationSampler][pydvl.value.sampler.DeterministicPermutationSampler] + require caching to be enabled or computation will be doubled wrt. a 'direct' + implementation of permutation MC. + +There are several pre-defined coefficients, including the Shapley value of +(Ghorbani and Zou, 2019)[^1], the Banzhaf index of (Wang and Jia)[^3], and the Beta +coefficient of (Kwon and Zou, 2022)[^2]. For each of these methods, there is a +convenience wrapper function. Respectively, these are: +[compute_shapley_semivalues][pydvl.value.semivalues.compute_shapley_semivalues], +[compute_banzhaf_semivalues][pydvl.value.semivalues.compute_banzhaf_semivalues], +and [compute_beta_shapley_semivalues][pydvl.value.semivalues.compute_beta_shapley_semivalues]. +instead. -There are several pre-defined coefficients, including the Shapley value -of :footcite:t:`ghorbani_data_2019`, the Banzhaf index of -:footcite:t:`wang_data_2022`, and the Beta coefficient of -:footcite:t:`kwon_beta_2022`. +## References -.. note:: - For implementation consistency, we slightly depart from the common definition - of semi-values, which includes a factor $1/n$ in the sum over subsets. - Instead, we subsume this factor into the coefficient $w(k)$. +[^1]: Ghorbani, A., Zou, J., 2019. + [Data Shapley: Equitable Valuation of Data for Machine Learning](http://proceedings.mlr.press/v97/ghorbani19c.html). + In: Proceedings of the 36th International Conference on Machine Learning, PMLR, pp. 2242–2251. +[^2]: Kwon, Y. and Zou, J., 2022. + [Beta Shapley: A Unified and Noise-reduced Data Valuation Framework for Machine Learning](http://arxiv.org/abs/2110.14049). + In: Proceedings of the 25th International Conference on Artificial Intelligence and Statistics (AISTATS) 2022, Vol. 151. PMLR, Valencia, Spain. + +[^3]: Wang, J.T. and Jia, R., 2022. + [Data Banzhaf: A Robust Data Valuation Framework for Machine Learning](http://arxiv.org/abs/2205.15466). + ArXiv preprint arXiv:2205.15466. """ +from __future__ import annotations +import logging import math -import operator from enum import Enum -from functools import reduce -from itertools import takewhile -from typing import Protocol, Type, cast +from typing import Optional, Protocol, Tuple, Type, TypeVar, cast +import numpy as np import scipy as sp +from deprecate import deprecated from tqdm import tqdm -from pydvl.utils import MapReduceJob, ParallelConfig, Utility +from pydvl.utils import ParallelConfig, Utility +from pydvl.utils.types import Seed from pydvl.value import ValuationResult -from pydvl.value.sampler import PermutationSampler, PowersetSampler +from pydvl.value.sampler import ( + PermutationSampler, + PowersetSampler, + SampleT, + StochasticSampler, +) from pydvl.value.stopping import MaxUpdates, StoppingCriterion __all__ = [ - "banzhaf_coefficient", + "compute_banzhaf_semivalues", + "compute_beta_shapley_semivalues", + "compute_shapley_semivalues", "beta_coefficient", + "banzhaf_coefficient", "shapley_coefficient", - "semivalues", + "compute_generic_semivalues", + "compute_semivalues", "SemiValueMode", ] +log = logging.getLogger(__name__) + class SVCoefficient(Protocol): """A coefficient for the computation of semi-values.""" - __name__: str - def __call__(self, n: int, k: int) -> float: """Computes the coefficient for a given subset size. - :param n: Total number of elements in the set. - :param k: Size of the subset for which the coefficient is being computed + Args: + n: Total number of elements in the set. + k: Size of the subset for which the coefficient is being computed """ ... -def _semivalues( - sampler: PowersetSampler, - u: Utility, - coefficient: SVCoefficient, - done: StoppingCriterion, - *, - progress: bool = False, - job_id: int = 1, -) -> ValuationResult: - r"""Serial computation of semi-values. This is a helper function for - :func:`semivalues`. - - :param sampler: The subset sampler to use for utility computations. - :param u: Utility object with model, data, and scoring function. - :param coefficient: The semivalue coefficient - :param done: Stopping criterion. - :param progress: Whether to display progress bars for each job. - :param job_id: id to use for reporting progress. - :return: Object with the results. - """ - n = len(u.data.indices) - result = ValuationResult.zeros( - algorithm=f"semivalue-{str(sampler)}-{coefficient.__name__}", - indices=sampler.indices, - data_names=[u.data.data_names[i] for i in sampler.indices], - ) +IndexT = TypeVar("IndexT", bound=np.generic) +MarginalT = Tuple[IndexT, float] - samples = takewhile(lambda _: not done(result), sampler) - pbar = tqdm(disable=not progress, position=job_id, total=100, unit="%") - for idx, s in samples: - pbar.n = 100 * done.completion() - pbar.refresh() - marginal = ( - (u({idx}.union(s)) - u(s)) * coefficient(n, len(s)) * sampler.weight(s) - ) - result.update(idx, marginal) - return result +def _marginal(u: Utility, coefficient: SVCoefficient, sample: SampleT) -> MarginalT: + """Computation of marginal utility. This is a helper function for + [compute_generic_semivalues][pydvl.value.semivalues.compute_generic_semivalues]. + Args: + u: Utility object with model, data, and scoring function. + coefficient: The semivalue coefficient and sampler weight + sample: A tuple of index and subset of indices to compute a marginal + utility. -def semivalues( + Returns: + Tuple with index and its marginal utility. + """ + n = len(u.data) + idx, s = sample + marginal = (u({idx}.union(s)) - u(s)) * coefficient(n, len(s)) + return idx, marginal + + +# @deprecated( +# target=compute_semivalues, # TODO: rename this to compute_semivalues +# deprecated_in="0.8.0", +# remove_in="0.9.0", +# ) +def compute_generic_semivalues( sampler: PowersetSampler, u: Utility, coefficient: SVCoefficient, @@ -131,29 +157,78 @@ def semivalues( config: ParallelConfig = ParallelConfig(), progress: bool = False, ) -> ValuationResult: + """Computes semi-values for a given utility function and subset sampler. + + Args: + sampler: The subset sampler to use for utility computations. + u: Utility object with model, data, and scoring function. + coefficient: The semi-value coefficient + done: Stopping criterion. + n_jobs: Number of parallel jobs to use. + config: Object configuring parallel computation, with cluster + address, number of cpus, etc. + progress: Whether to display a progress bar. + + Returns: + Object with the results. """ - Computes semi-values for a given utility function and subset sampler. - - :param sampler: The subset sampler to use for utility computations. - :param u: Utility object with model, data, and scoring function. - :param coefficient: The semi-value coefficient - :param done: Stopping criterion. - :param n_jobs: Number of parallel jobs to use. - :param config: Object configuring parallel computation, with cluster - address, number of cpus, etc. - :param progress: Whether to display progress bars for each job. - :return: Object with the results. + from concurrent.futures import FIRST_COMPLETED, Future, wait - """ - map_reduce_job: MapReduceJob[PowersetSampler, ValuationResult] = MapReduceJob( - sampler, - map_func=_semivalues, - reduce_func=lambda results: reduce(operator.add, results), - map_kwargs=dict(u=u, coefficient=coefficient, done=done, progress=progress), - config=config, - n_jobs=n_jobs, + from pydvl.utils import effective_n_jobs, init_executor, init_parallel_backend + + if isinstance(sampler, PermutationSampler) and not u.enable_cache: + log.warning( + "PermutationSampler requires caching to be enabled or computation " + "will be doubled wrt. a 'direct' implementation of permutation MC" + ) + + result = ValuationResult.zeros( + algorithm=f"semivalue-{str(sampler)}-{coefficient.__name__}", # type: ignore + indices=u.data.indices, + data_names=u.data.data_names, ) - return map_reduce_job() + + parallel_backend = init_parallel_backend(config) + u = parallel_backend.put(u) + correction = parallel_backend.put( + lambda n, k: coefficient(n, k) * sampler.weight(n, k) + ) + + max_workers = effective_n_jobs(n_jobs, config) + n_submitted_jobs = 2 * max_workers # number of jobs in the queue + + sampler_it = iter(sampler) + pbar = tqdm(disable=not progress, total=100, unit="%") + + with init_executor( + max_workers=max_workers, config=config, cancel_futures=True + ) as executor: + pending: set[Future] = set() + while True: + pbar.n = 100 * done.completion() + pbar.refresh() + + completed, pending = wait(pending, timeout=1, return_when=FIRST_COMPLETED) + for future in completed: + idx, marginal = future.result() + result.update(idx, marginal) + if done(result): + return result + + # Ensure that we always have n_submitted_jobs running + try: + for _ in range(n_submitted_jobs - len(pending)): + pending.add( + executor.submit( + _marginal, + u=u, + coefficient=correction, + sample=next(sampler_it), + ) + ) + except StopIteration: + if len(pending) == 0: + return result def shapley_coefficient(n: int, k: int) -> float: @@ -186,49 +261,210 @@ def beta_coefficient_w(n: int, k: int) -> float: return cast(SVCoefficient, beta_coefficient_w) +def compute_shapley_semivalues( + u: Utility, + *, + done: StoppingCriterion = MaxUpdates(100), + sampler_t: Type[StochasticSampler] = PermutationSampler, + n_jobs: int = 1, + config: ParallelConfig = ParallelConfig(), + progress: bool = False, + seed: Optional[Seed] = None, +) -> ValuationResult: + """Computes Shapley values for a given utility function. + + This is a convenience wrapper for + [compute_generic_semivalues][pydvl.value.semivalues.compute_generic_semivalues] + with the Shapley coefficient. Use + [compute_shapley_values][pydvl.value.shapley.common.compute_shapley_values] + for a more flexible interface and additional methods, including TMCS. + + Args: + u: Utility object with model, data, and scoring function. + done: Stopping criterion. + sampler_t: The sampler type to use. See :mod:`pydvl.value.sampler` + for a list. + n_jobs: Number of parallel jobs to use. + config: Object configuring parallel computation, with cluster + address, number of cpus, etc. + seed: Either an instance of a numpy random number generator or a seed for it. + progress: Whether to display a progress bar. + + Returns: + Object with the results. + """ + return compute_generic_semivalues( + sampler_t(u.data.indices, seed=seed), + u, + shapley_coefficient, + done, + n_jobs=n_jobs, + config=config, + progress=progress, + ) + + +def compute_banzhaf_semivalues( + u: Utility, + *, + done: StoppingCriterion = MaxUpdates(100), + sampler_t: Type[StochasticSampler] = PermutationSampler, + n_jobs: int = 1, + config: ParallelConfig = ParallelConfig(), + progress: bool = False, + seed: Optional[Seed] = None, +) -> ValuationResult: + """Computes Banzhaf values for a given utility function. + + This is a convenience wrapper for + [compute_generic_semivalues][pydvl.value.semivalues.compute_generic_semivalues] + with the Banzhaf coefficient. + + Args: + u: Utility object with model, data, and scoring function. + done: Stopping criterion. + sampler_t: The sampler type to use. See :mod:`pydvl.value.sampler` for a + list. + n_jobs: Number of parallel jobs to use. + seed: Either an instance of a numpy random number generator or a seed for it. + config: Object configuring parallel computation, with cluster address, + number of cpus, etc. + progress: Whether to display a progress bar. + + Returns: + Object with the results. + """ + return compute_generic_semivalues( + sampler_t(u.data.indices, seed=seed), + u, + banzhaf_coefficient, + done, + n_jobs=n_jobs, + config=config, + progress=progress, + ) + + +def compute_beta_shapley_semivalues( + u: Utility, + *, + alpha: float = 1, + beta: float = 1, + done: StoppingCriterion = MaxUpdates(100), + sampler_t: Type[StochasticSampler] = PermutationSampler, + n_jobs: int = 1, + config: ParallelConfig = ParallelConfig(), + progress: bool = False, + seed: Optional[Seed] = None, +) -> ValuationResult: + """Computes Beta Shapley values for a given utility function. + + This is a convenience wrapper for + [compute_generic_semivalues][pydvl.value.semivalues.compute_generic_semivalues] + with the Beta Shapley coefficient. + + Args: + u: Utility object with model, data, and scoring function. + alpha: Alpha parameter of the Beta distribution. + beta: Beta parameter of the Beta distribution. + done: Stopping criterion. + sampler_t: The sampler type to use. See :mod:`pydvl.value.sampler` for a list. + n_jobs: Number of parallel jobs to use. + seed: Either an instance of a numpy random number generator or a seed for it. + config: Object configuring parallel computation, with cluster address, number of + cpus, etc. + progress: Whether to display a progress bar. + + Returns: + Object with the results. + """ + return compute_generic_semivalues( + sampler_t(u.data.indices, seed=seed), + u, + beta_coefficient(alpha, beta), + done, + n_jobs=n_jobs, + config=config, + progress=progress, + ) + + +@deprecated( + target=True, + deprecated_in="0.7.0", + remove_in="0.8.0", +) class SemiValueMode(str, Enum): + """Enumeration of semi-value modes. + + !!! warning "Deprecation notice" + This enum and the associated methods are deprecated and will be removed + in 0.8.0. + """ + Shapley = "shapley" BetaShapley = "beta_shapley" Banzhaf = "banzhaf" +@deprecated(target=True, deprecated_in="0.7.0", remove_in="0.8.0") def compute_semivalues( u: Utility, *, done: StoppingCriterion = MaxUpdates(100), mode: SemiValueMode = SemiValueMode.Shapley, - sampler_t: Type[PowersetSampler] = PermutationSampler, + sampler_t: Type[StochasticSampler] = PermutationSampler, n_jobs: int = 1, + seed: Optional[Seed] = None, **kwargs, ) -> ValuationResult: - """Entry point for most common semi-value computations. All are implemented - with permutation sampling. - - For any other sampling method, use :func:`parallel_semivalues` directly. - - See :ref:`data valuation` for an overview of valuation. - - The modes supported are: - - - :attr:`SemiValueMode.Shapley`: Shapley values. - - :attr:`SemiValueMode.BetaShapley`: Implements the Beta Shapley semi-value - as introduced in :footcite:t:`kwon_beta_2022`. Pass additional keyword - arguments ``alpha`` and ``beta`` to set the parameters of the Beta - distribution (both default to 1). - - :attr:`SemiValueMode.Banzhaf`: Implements the Banzhaf semi-value as - introduced in :footcite:t:`wang_data_2022`. - - :param u: Utility object with model, data, and scoring function. - :param done: Stopping criterion. - :param mode: The semi-value mode to use. See :class:`SemiValueMode` for a - list. - :param sampler_t: The sampler type to use. See :mod:`pydvl.value.sampler` - for a list. - :param n_jobs: Number of parallel jobs to use. - :param kwargs: Additional keyword arguments passed to - :func:`~pydvl.value.semivalues.semivalues`. + """Convenience entry point for most common semi-value computations. + + !!! warning "Deprecation warning" + This method is deprecated and will be replaced in 0.8.0 by the more + general implementation of + [compute_generic_semivalues][pydvl.value.semivalues.compute_generic_semivalues]. + Use + [compute_shapley_semivalues][pydvl.value.semivalues.compute_shapley_semivalues], + [compute_banzhaf_semivalues][pydvl.value.semivalues.compute_banzhaf_semivalues], + or + [compute_beta_shapley_semivalues][pydvl.value.semivalues.compute_beta_shapley_semivalues] + instead. + + The modes supported with this interface are the following. For greater + flexibility use + [compute_generic_semivalues][pydvl.value.semivalues.compute_generic_semivalues] + directly. + + - [SemiValueMode.Shapley][pydvl.value.semivalues.SemiValueMode]: + Shapley values. + - [SemiValueMode.BetaShapley][pydvl.value.semivalues.SemiValueMode.BetaShapley]: + Implements the Beta Shapley semi-value as introduced in + (Kwon and Zou, 2022)1. + Pass additional keyword arguments `alpha` and `beta` to set the + parameters of the Beta distribution (both default to 1). + - [SemiValueMode.Banzhaf][SemiValueMode.Banzhaf]: Implements the Banzhaf + semi-value as introduced in (Wang and Jia, 2022)1. + + See [[data-valuation]] for an overview of valuation. + - [SemiValueMode.Banzhaf][pydvl.value.semivalues.SemiValueMode]: Implements + the Banzhaf semi-value as introduced in [@wang_data_2022]. + + Args: + u: Utility object with model, data, and scoring function. + done: Stopping criterion. + mode: The semi-value mode to use. See + [SemiValueMode][pydvl.value.semivalues.SemiValueMode] for a list. + sampler_t: The sampler type to use. See [sampler][pydvl.value.sampler] + for a list. + n_jobs: Number of parallel jobs to use. + seed: Either an instance of a numpy random number generator or a seed for it. + kwargs: Additional keyword arguments passed to + [compute_generic_semivalues][pydvl.value.semivalues.compute_generic_semivalues]. + + Returns: + Object with the results. """ - sampler_instance = sampler_t(u.data.indices) if mode == SemiValueMode.Shapley: coefficient = shapley_coefficient elif mode == SemiValueMode.BetaShapley: @@ -240,4 +476,11 @@ def compute_semivalues( else: raise ValueError(f"Unknown mode {mode}") coefficient = cast(SVCoefficient, coefficient) - return semivalues(sampler_instance, u, coefficient, done, n_jobs=n_jobs, **kwargs) + return compute_generic_semivalues( + sampler_t(u.data.indices, seed=seed), + u, + coefficient, + done, + n_jobs=n_jobs, + **kwargs, + ) diff --git a/src/pydvl/value/shapley/__init__.py b/src/pydvl/value/shapley/__init__.py index 6f93cd60e..d4730237e 100644 --- a/src/pydvl/value/shapley/__init__.py +++ b/src/pydvl/value/shapley/__init__.py @@ -1,9 +1,12 @@ """ This package holds all routines for the computation of Shapley Data value. Users -will want to use :func:`~pydvl.value.shapley.common.compute_shapley_values` as a -single interface to all methods defined in the modules. +will want to use +[compute_shapley_values][pydvl.value.shapley.common.compute_shapley_values] or +[compute_semivalues][pydvl.value.semivalues.compute_semivalues] as interfaces to +most methods defined in the modules. -Please refer to :ref:`data valuation` for an overview of Shapley Data value. +Please refer to [the guide on data valuation][data-valuation] for an overview of +all methods. """ from ..result import * diff --git a/src/pydvl/value/shapley/common.py b/src/pydvl/value/shapley/common.py index 751185cbd..383ff589f 100644 --- a/src/pydvl/value/shapley/common.py +++ b/src/pydvl/value/shapley/common.py @@ -1,4 +1,7 @@ +from typing import Optional + from pydvl.utils import Utility +from pydvl.utils.types import Seed from pydvl.value.result import ValuationResult from pydvl.value.shapley.gt import group_testing_shapley from pydvl.value.shapley.knn import knn_shapley @@ -24,73 +27,75 @@ def compute_shapley_values( done: StoppingCriterion = MaxUpdates(100), mode: ShapleyMode = ShapleyMode.TruncatedMontecarlo, n_jobs: int = 1, + seed: Optional[Seed] = None, **kwargs, ) -> ValuationResult: """Umbrella method to compute Shapley values with any of the available algorithms. - See :ref:`data valuation` for an overview. + See [[data-valuation]] for an overview. The following algorithms are available. Note that the exact methods can only work with very small datasets and are thus intended only for testing. Some algorithms also accept additional arguments, please refer to the documentation of each particular method. - - ``combinatorial_exact``: uses the combinatorial implementation of data + - `combinatorial_exact`: uses the combinatorial implementation of data Shapley. Implemented in - :func:`~pydvl.value.shapley.naive.combinatorial_exact_shapley`. - - ``combinatorial_montecarlo``: uses the approximate Monte Carlo + [combinatorial_exact_shapley()][pydvl.value.shapley.naive.combinatorial_exact_shapley]. + - `combinatorial_montecarlo`: uses the approximate Monte Carlo implementation of combinatorial data Shapley. Implemented in - :func:`~pydvl.value.shapley.montecarlo.combinatorial_montecarlo_shapley`. - - ``permutation_exact``: uses the permutation-based implementation of data + [combinatorial_montecarlo_shapley()][pydvl.value.shapley.montecarlo.combinatorial_montecarlo_shapley]. + - `permutation_exact`: uses the permutation-based implementation of data Shapley. Computation is **not parallelized**. Implemented in - :func:`~pydvl.value.shapley.naive.permutation_exact_shapley`. - - ``permutation_montecarlo``: uses the approximate Monte Carlo - implementation of permutation data Shapley. Implemented in - :func:`~pydvl.value.shapley.montecarlo.permutation_montecarlo_shapley`. - - ``truncated_montecarlo``: default option, same as ``permutation_montecarlo`` - but stops the computation whenever a certain accuracy is reached. - Implemented in - :func:`~pydvl.value.shapley.montecarlo.truncated_montecarlo_shapley`. - - ``owen_sampling``: Uses the Owen continuous extension of the utility + [permutation_exact_shapley()][pydvl.value.shapley.naive.permutation_exact_shapley]. + - `permutation_montecarlo`: uses the approximate Monte Carlo + implementation of permutation data Shapley. Accepts a + [TruncationPolicy][pydvl.value.shapley.truncated.TruncationPolicy] to stop + computing marginals. Implemented in + [permutation_montecarlo_shapley()][pydvl.value.shapley.montecarlo.permutation_montecarlo_shapley]. + - `owen_sampling`: Uses the Owen continuous extension of the utility function to the unit cube. Implemented in - :func:`~pydvl.value.shapley.montecarlo.owen_sampling_shapley`. This - method does not take a :class:`~pydvl.value.stopping.StoppingCriterion` - but instead requires a parameter ``q_max`` for the number of subdivisions + [owen_sampling_shapley()][pydvl.value.shapley.owen.owen_sampling_shapley]. This + method does not take a [StoppingCriterion][pydvl.value.stopping.StoppingCriterion] + but instead requires a parameter `q_max` for the number of subdivisions of the unit interval to use for integration, and another parameter - ``n_samples`` for the number of subsets to sample for each $q$. - - ``owen_halved``: Same as 'owen_sampling' but uses correlated samples in the + `n_samples` for the number of subsets to sample for each $q$. + - `owen_halved`: Same as 'owen_sampling' but uses correlated samples in the expectation. Implemented in - :func:`~pydvl.value.shapley.montecarlo.owen_sampling_shapley`. + [owen_sampling_shapley()][pydvl.value.shapley.owen.owen_sampling_shapley]. This method requires an additional parameter `q_max` for the number of subdivisions of the interval [0,0.5] to use for integration, and another - parameter ``n_samples`` for the number of subsets to sample for each $q$. - - ``group_testing``: estimates differences of Shapley values and solves a + parameter `n_samples` for the number of subsets to sample for each $q$. + - `group_testing`: estimates differences of Shapley values and solves a constraint satisfaction problem. High sample complexity, not recommended. - Implemented in :func:`~pydvl.value.shapley.gt.group_testing_shapley`. This - method does not take a :class:`~pydvl.value.stopping.StoppingCriterion` - but instead requires a parameter ``n_samples`` for the number of + Implemented in [group_testing_shapley()][pydvl.value.shapley.gt.group_testing_shapley]. This + method does not take a [StoppingCriterion][pydvl.value.stopping.StoppingCriterion] + but instead requires a parameter `n_samples` for the number of iterations to run. Additionally, one can use model-specific methods: - - ``knn``: Exact method for K-Nearest neighbour models. Implemented in - :func:`~pydvl.value.shapley.knn.knn_shapley`. + - `knn`: Exact method for K-Nearest neighbour models. Implemented in + [knn_shapley()][pydvl.value.shapley.knn.knn_shapley]. - :param u: :class:`~pydvl.utils.utility.Utility` object with model, data, and - scoring function. - :param done: :class:`~pydvl.value.stopping.StoppingCriterion` object, used - to determine when to stop the computation for Monte Carlo methods. The - default is to stop after 100 iterations. See the available criteria in - :mod:`~pydvl.value.stopping`. It is possible to combine several criteria - using boolean operators. Some methods ignore this argument, others - require specific subtypes. - :param n_jobs: Number of parallel jobs (available only to some methods) - :param mode: Choose which shapley algorithm to use. See - :class:`~pydvl.value.shapley.ShapleyMode` for a list of allowed value. + Args: + u: [Utility][pydvl.utils.utility.Utility] object with model, data, and + scoring function. + done: Object used to determine when to stop the computation for Monte + Carlo methods. The default is to stop after 100 iterations. See the + available criteria in [stopping][pydvl.value.stopping]. It is + possible to combine several of them using boolean operators. Some + methods ignore this argument, others require specific subtypes. + n_jobs: Number of parallel jobs (available only to some methods) + seed: Either an instance of a numpy random number generator or a seed + for it. + mode: Choose which shapley algorithm to use. See + [ShapleyMode][pydvl.value.shapley.ShapleyMode] for a list of allowed + value. - :return: A :class:`~pydvl.value.result.ValuationResult` object with the - results. + Returns: + Object with the results. """ progress: bool = kwargs.pop("progress", False) @@ -98,24 +103,18 @@ def compute_shapley_values( if mode not in list(ShapleyMode): raise ValueError(f"Invalid value encountered in {mode=}") - if mode == ShapleyMode.TruncatedMontecarlo: + if mode in ( + ShapleyMode.PermutationMontecarlo, + ShapleyMode.ApproShapley, + ShapleyMode.TruncatedMontecarlo, + ): truncation = kwargs.pop("truncation", NoTruncation()) - return truncated_montecarlo_shapley( # type: ignore - u=u, done=done, n_jobs=n_jobs, truncation=truncation, **kwargs + return permutation_montecarlo_shapley( # type: ignore + u=u, done=done, truncation=truncation, n_jobs=n_jobs, seed=seed, **kwargs ) elif mode == ShapleyMode.CombinatorialMontecarlo: return combinatorial_montecarlo_shapley( - u, done=done, n_jobs=n_jobs, progress=progress - ) - elif mode in (ShapleyMode.PermutationMontecarlo, ShapleyMode.ApproShapley): - truncation = kwargs.pop("truncation", NoTruncation()) - return permutation_montecarlo_shapley( - u, - done=done, - n_jobs=n_jobs, - progress=progress, - truncation=truncation, - **kwargs, + u, done=done, n_jobs=n_jobs, seed=seed, progress=progress ) elif mode == ShapleyMode.CombinatorialExact: return combinatorial_exact_shapley(u, n_jobs=n_jobs, progress=progress) @@ -138,6 +137,7 @@ def compute_shapley_values( max_q=int(kwargs.get("max_q", -1)), method=method, n_jobs=n_jobs, + seed=seed, ) elif mode == ShapleyMode.KNN: return knn_shapley(u, progress=progress) @@ -151,11 +151,12 @@ def compute_shapley_values( delta = kwargs.pop("delta", 0.05) return group_testing_shapley( u, - epsilon=epsilon, + epsilon=float(epsilon), delta=delta, - n_samples=n_samples, + n_samples=int(n_samples), n_jobs=n_jobs, progress=progress, + seed=seed, **kwargs, ) else: diff --git a/src/pydvl/value/shapley/gt.py b/src/pydvl/value/shapley/gt.py index b4b093637..b78ac346c 100644 --- a/src/pydvl/value/shapley/gt.py +++ b/src/pydvl/value/shapley/gt.py @@ -1,32 +1,39 @@ """ This module implements Group Testing for the approximation of Shapley values, as -introduced in :footcite:t:`jia_efficient_2019`. The sampling of index subsets is +introduced in (Jia, R. et al., 2019)[^1]. The sampling of index subsets is done in such a way that an approximation to the true Shapley values can be computed with guarantees. -.. warning:: - This method is very inefficient. Potential improvements to the - implementation notwithstanding, convergence seems to be very slow (in terms - of evaluations of the utility required). We recommend other Monte Carlo - methods instead. +!!! Warning + This method is very inefficient. Potential improvements to the + implementation notwithstanding, convergence seems to be very slow (in terms + of evaluations of the utility required). We recommend other Monte Carlo + methods instead. -You can read more :ref:`in the documentation`. +You can read more [in the documentation][computing-data-values]. -.. versionadded:: 0.4.0 +!!! tip "New in version 0.4.0" +## References + +[^1]: Jia, R. et al., 2019. + [Towards Efficient Data Valuation Based on the Shapley Value](http://proceedings.mlr.press/v89/jia19a.html). + In: Proceedings of the 22nd International Conference on Artificial Intelligence and Statistics, pp. 1167–1176. PMLR. """ import logging from collections import namedtuple -from typing import Iterable, Tuple, TypeVar, cast +from typing import Iterable, Optional, Tuple, TypeVar, Union, cast import cvxpy as cp import numpy as np +from numpy.random import SeedSequence from numpy.typing import NDArray from pydvl.utils import MapReduceJob, ParallelConfig, Utility, maybe_progress from pydvl.utils.numeric import random_subset_of_size from pydvl.utils.parallel.backend import effective_n_jobs from pydvl.utils.status import Status +from pydvl.utils.types import Seed, ensure_seed_sequence from pydvl.value import ValuationResult __all__ = ["group_testing_shapley", "num_samples_eps_delta"] @@ -43,20 +50,21 @@ def _constants( """A helper function returning the constants for the algorithm. Pretty ugly, yes. - :param n: The number of data points. - :param epsilon: The error tolerance. - :param delta: The confidence level. - :param utility_range: The range of the utility function. - - :return: A namedtuple with the constants. The fields are the same as in the - paper: - - kk: the sample sizes (i.e. an array of 1, 2, ..., n - 1) - - Z: the normalization constant - - q: the probability of drawing a sample of size k - - q_tot: another normalization constant - - T: the number of iterations. This will be -1 if the utility_range is - infinite. E.g. because the :class:`~pydvl.utils.score.Scorer` does - not define a range. + Args: + n: The number of data points. + epsilon: The error tolerance. + delta: The confidence level. + utility_range: The range of the utility function. + + Returns: + A namedtuple with the constants. The fields are the same as in the paper: + - kk: the sample sizes (i.e. an array of 1, 2, ..., n - 1) + - Z: the normalization constant + - q: the probability of drawing a sample of size k + - q_tot: another normalization constant + - T: the number of iterations. This will be -1 if the utility_range is + infinite. E.g. because the [Scorer][pydvl.utils.score.Scorer] does + not define a range. """ r = utility_range @@ -93,20 +101,21 @@ def h(u: T) -> T: def num_samples_eps_delta( eps: float, delta: float, n: int, utility_range: float ) -> int: - r"""Implements the formula in Theorem 3 of :footcite:t:`jia_efficient_2019` + r"""Implements the formula in Theorem 3 of (Jia, R. et al., 2019)1 which gives a lower bound on the number of samples required to obtain an (ε/√n,δ/(N(N-1))-approximation to all pair-wise differences of Shapley values, wrt. $\ell_2$ norm. - :param eps: ε - :param delta: δ - :param n: Number of data points - :param utility_range: Range of the :class:`~pydvl.utils.utility.Utility` - function - :return: Number of samples from $2^{[n]}$ guaranteeing ε/√n-correct Shapley - pair-wise differences of values with probability 1-δ/(N(N-1)). + Args: + eps: ε + delta: δ + n: Number of data points + utility_range: Range of the [Utility][pydvl.utils.utility.Utility] function + Returns: + Number of samples from $2^{[n]}$ guaranteeing ε/√n-correct Shapley + pair-wise differences of values with probability 1-δ/(N(N-1)). - .. versionadded:: 0.4.0 + !!! tip "New in version 0.4.0" """ constants = _constants(n=n, epsilon=eps, delta=delta, utility_range=utility_range) @@ -114,29 +123,39 @@ def num_samples_eps_delta( def _group_testing_shapley( - u: Utility, n_samples: int, progress: bool = False, job_id: int = 1 + u: Utility, + n_samples: int, + progress: bool = False, + job_id: int = 1, + seed: Optional[Union[Seed, SeedSequence]] = None, ): - """Helper function for :func:`group_testing_shapley`. + """Helper function for + [group_testing_shapley()][pydvl.value.shapley.gt.group_testing_shapley]. Computes utilities of sets sampled using the strategy for estimating the differences in Shapley values. - :param u: Utility object with model, data, and scoring function. - :param n_samples: total number of samples (subsets) to use. - :param progress: Whether to display progress bars for each job. - :param job_id: id to use for reporting progress (e.g. to place progres bars) - :return: + Args: + u: Utility object with model, data, and scoring function. + n_samples: total number of samples (subsets) to use. + progress: Whether to display progress bars for each job. + job_id: id to use for reporting progress (e.g. to place progres bars) + seed: Either an instance of a numpy random number generator or a seed for it. + Returns: + """ - rng = np.random.default_rng() + rng = np.random.default_rng(seed) n = len(u.data.indices) const = _constants(n, 1, 1, 1) # don't care about eps,delta,range - betas = np.zeros(shape=(n_samples, n), dtype=np.int_) # indicator vars + betas: NDArray[np.int_] = np.zeros( + shape=(n_samples, n), dtype=np.int_ + ) # indicator vars uu = np.empty(n_samples) # utilities for t in maybe_progress(n_samples, progress=progress, position=job_id): k = rng.choice(const.kk, size=1, p=const.q).item() - s = random_subset_of_size(u.data.indices, k) + s = random_subset_of_size(u.data.indices, k, seed=rng) uu[t] = u(s) betas[t, s] = 1 return uu, betas @@ -151,46 +170,51 @@ def group_testing_shapley( n_jobs: int = 1, config: ParallelConfig = ParallelConfig(), progress: bool = False, + seed: Optional[Seed] = None, **options, ) -> ValuationResult: """Implements group testing for approximation of Shapley values as described - in :footcite:t:`jia_efficient_2019`. + in (Jia, R. et al., 2019)1. - .. warning:: - This method is very inefficient. It requires several orders of magnitude - more evaluations of the utility than others in - :mod:`~pydvl.value.shapley.montecarlo`. It also uses several intermediate - objects like the results from the runners and the constraint matrices - which can become rather large. + !!! Warning + This method is very inefficient. It requires several orders of magnitude + more evaluations of the utility than others in + [montecarlo][pydvl.value.shapley.montecarlo]. It also uses several intermediate + objects like the results from the runners and the constraint matrices + which can become rather large. By picking a specific distribution over subsets, the differences in Shapley values can be approximated with a Monte Carlo sum. These are then used to solve for the individual values in a feasibility problem. - :param u: Utility object with model, data, and scoring function - :param n_samples: Number of tests to perform. Use - :func:`num_samples_eps_delta` to estimate this. - :param epsilon: From the (ε,δ) sample bound. Use the same as for the - estimation of ``n_iterations``. - :param delta: From the (ε,δ) sample bound. Use the same as for the - estimation of ``n_iterations``. - :param n_jobs: Number of parallel jobs to use. Each worker performs a chunk - of all tests (i.e. utility evaluations). - :param config: Object configuring parallel computation, with cluster - address, number of cpus, etc. - :param progress: Whether to display progress bars for each job. - :param options: Additional options to pass to `cvxpy.Problem.solve() - `_. - E.g. to change the solver (which defaults to `cvxpy.SCS`) pass - `solver=cvxpy.CVXOPT`. - - :return: Object with the data values. - - .. versionadded:: 0.4.0 - - .. versionchanged:: 0.5.0 - Changed the solver to cvxpy instead of scipy's linprog. Added the ability - to pass arbitrary options to it. + Args: + u: Utility object with model, data, and scoring function + n_samples: Number of tests to perform. Use + [num_samples_eps_delta][pydvl.value.shapley.gt.num_samples_eps_delta] + to estimate this. + epsilon: From the (ε,δ) sample bound. Use the same as for the + estimation of `n_iterations`. + delta: From the (ε,δ) sample bound. Use the same as for the + estimation of `n_iterations`. + n_jobs: Number of parallel jobs to use. Each worker performs a chunk + of all tests (i.e. utility evaluations). + config: Object configuring parallel computation, with cluster + address, number of cpus, etc. + progress: Whether to display progress bars for each job. + seed: Either an instance of a numpy random number generator or a seed for it. + options: Additional options to pass to + [cvxpy.Problem.solve()](https://www.cvxpy.org/tutorial/advanced/index.html#solve-method-options). + E.g. to change the solver (which defaults to `cvxpy.SCS`) pass + `solver=cvxpy.CVXOPT`. + + Returns: + Object with the data values. + + !!! tip "New in version 0.4.0" + + !!! tip "Changed in version 0.5.0" + Changed the solver to cvxpy instead of scipy's linprog. Added the ability + to pass arbitrary options to it. """ n = len(u.data.indices) @@ -217,6 +241,9 @@ def reducer( np.float_ ), np.concatenate(list(x[1] for x in results_it)).astype(np.int_) + seed_sequence = ensure_seed_sequence(seed) + map_reduce_seed_sequence, cvxpy_seed = tuple(seed_sequence.spawn(2)) + map_reduce_job: MapReduceJob[Utility, Tuple[NDArray, NDArray]] = MapReduceJob( u, map_func=_group_testing_shapley, @@ -225,7 +252,7 @@ def reducer( config=config, n_jobs=n_jobs, ) - uu, betas = map_reduce_job() + uu, betas = map_reduce_job(seed=map_reduce_seed_sequence) # Matrix of estimated differences. See Eqs. (3) and (4) in the paper. C = np.zeros(shape=(n, n)) diff --git a/src/pydvl/value/shapley/knn.py b/src/pydvl/value/shapley/knn.py index 22bb857fb..5356ab946 100644 --- a/src/pydvl/value/shapley/knn.py +++ b/src/pydvl/value/shapley/knn.py @@ -1,13 +1,23 @@ """ This module contains Shapley computations for K-Nearest Neighbours. -.. todo:: - Implement approximate KNN computation for sublinear complexity) +!!! Todo + Implement approximate KNN computation for sublinear complexity + + +## References + +[^1]: Jia, R. et al., 2019. [Efficient + Task-Specific Data Valuation for Nearest Neighbor + Algorithms](https://doi.org/10.14778/3342263.3342637). In: Proceedings of + the VLDB Endowment, Vol. 12, No. 11, pp. 1610–1623. + """ from typing import Dict, Union import numpy as np +from numpy.typing import NDArray from sklearn.neighbors import KNeighborsClassifier, NearestNeighbors from pydvl.utils import Utility, maybe_progress @@ -20,20 +30,25 @@ def knn_shapley(u: Utility, *, progress: bool = True) -> ValuationResult: """Computes exact Shapley values for a KNN classifier. - This implements the method described in :footcite:t:`jia_efficient_2019a`. + This implements the method described in (Jia, R. et al., 2019)1. It exploits the local structure of K-Nearest Neighbours to reduce the number of calls to the utility function to a constant number per index, thus reducing computation time to $O(n)$. - :param u: Utility with a KNN model to extract parameters from. The object - will not be modified nor used other than to call `get_params() - `_ - :param progress: Whether to display a progress bar. - :return: Object with the data values. - :raises TypeError: If the model in the utility is not a `KNeighborsClassifier - `_ + Args: + u: Utility with a KNN model to extract parameters from. The object + will not be modified nor used other than to call [get_params()]( + ) + progress: Whether to display a progress bar. + + Returns: + Object with the data values. + + Raises: + TypeError: If the model in the utility is not a + [sklearn.neighbors.KNeighborsClassifier][]. - .. versionadded:: 0.1.0 + !!! tip "New in version 0.1.0" """ if not isinstance(u.model, KNeighborsClassifier): @@ -57,7 +72,7 @@ def knn_shapley(u: Utility, *, progress: bool = True) -> ValuationResult: # closest to farthest _, indices = nns.kneighbors(u.data.x_test) - values = np.zeros_like(u.data.indices, dtype=np.float_) + values: NDArray[np.float_] = np.zeros_like(u.data.indices, dtype=np.float_) n = len(u.data) yt = u.data.y_train iterator = enumerate(zip(u.data.y_test, indices), start=1) diff --git a/src/pydvl/value/shapley/montecarlo.py b/src/pydvl/value/shapley/montecarlo.py index ad43edad1..e9aba420b 100644 --- a/src/pydvl/value/shapley/montecarlo.py +++ b/src/pydvl/value/shapley/montecarlo.py @@ -1,49 +1,66 @@ r""" Monte Carlo approximations to Shapley Data values. -.. warning:: - You probably want to use the common interface provided by - :func:`~pydvl.value.shapley.compute_shapley_values` instead of directly using - the functions in this module. +!!! Warning + You probably want to use the common interface provided by + [compute_shapley_values()][pydvl.value.shapley.compute_shapley_values] instead of directly using + the functions in this module. Because exact computation of Shapley values requires $\mathcal{O}(2^n)$ -re-trainings of the model, several Monte Carlo approximations are available. -The first two sample from the powerset of the training data directly: -:func:`combinatorial_montecarlo_shapley` and :func:`owen_sampling_shapley`. The -latter uses a reformulation in terms of a continuous extension of the utility. +re-trainings of the model, several Monte Carlo approximations are available. The +first two sample from the powerset of the training data directly: +[combinatorial_montecarlo_shapley()][pydvl.value.shapley.montecarlo.combinatorial_montecarlo_shapley] +and [owen_sampling_shapley()][pydvl.value.shapley.owen.owen_sampling_shapley]. +The latter uses a reformulation in terms of a continuous extension of the +utility. Alternatively, employing another reformulation of the expression above as a sum over permutations, one has the implementation in -:func:`permutation_montecarlo_shapley`, or using an early stopping strategy to -reduce computation :func:`truncated_montecarlo_shapley`. - -.. seealso:: - It is also possible to use :func:`~pydvl.value.shapley.gt.group_testing_shapley` - to reduce the number of evaluations of the utility. The method is however - typically outperformed by others in this module. - -.. seealso:: - Additionally, you can consider grouping your data points using - :class:`~pydvl.utils.dataset.GroupedDataset` and computing the values of the - groups instead. This is not to be confused with "group testing" as - implemented in :func:`~pydvl.value.shapley.gt.group_testing_shapley`: any of - the algorithms mentioned above, including Group Testing, can work to valuate - groups of samples as units. +[permutation_montecarlo_shapley()][pydvl.value.shapley.montecarlo.permutation_montecarlo_shapley], +or using an early stopping strategy to reduce computation +[truncated_montecarlo_shapley()][pydvl.value.shapley.truncated.truncated_montecarlo_shapley]. + +!!! info "Also see" + It is also possible to use [group_testing_shapley()][pydvl.value.shapley.gt.group_testing_shapley] + to reduce the number of evaluations of the utility. The method is however + typically outperformed by others in this module. + +!!! info "Also see" + Additionally, you can consider grouping your data points using + [GroupedDataset][pydvl.utils.dataset.GroupedDataset] and computing the values + of the groups instead. This is not to be confused with "group testing" as + implemented in [group_testing_shapley()][pydvl.value.shapley.gt.group_testing_shapley]: any of + the algorithms mentioned above, including Group Testing, can work to valuate + groups of samples as units. + +## References + +[^1]: Ghorbani, A., Zou, J., 2019. + [Data Shapley: Equitable Valuation of Data for Machine Learning](http://proceedings.mlr.press/v97/ghorbani19c.html). + In: Proceedings of the 36th International Conference on Machine Learning, PMLR, pp. 2242–2251. + """ +from __future__ import annotations + import logging import math import operator +from concurrent.futures import FIRST_COMPLETED, Future, wait from functools import reduce from itertools import cycle, takewhile -from typing import Sequence +from typing import Optional, Sequence, Union import numpy as np +from deprecate import deprecated +from numpy.random import SeedSequence from numpy.typing import NDArray from tqdm import tqdm +from pydvl.utils import effective_n_jobs, init_executor, init_parallel_backend from pydvl.utils.config import ParallelConfig from pydvl.utils.numeric import random_powerset -from pydvl.utils.parallel import MapReduceJob +from pydvl.utils.parallel import CancellationPolicy, MapReduceJob +from pydvl.utils.types import Seed, ensure_seed_sequence from pydvl.utils.utility import Utility from pydvl.value.result import ValuationResult from pydvl.value.shapley.truncated import NoTruncation, TruncationPolicy @@ -54,56 +71,63 @@ __all__ = ["permutation_montecarlo_shapley", "combinatorial_montecarlo_shapley"] -def _permutation_montecarlo_shapley( +def _permutation_montecarlo_one_step( u: Utility, - *, - done: StoppingCriterion, truncation: TruncationPolicy, - algorithm_name: str = "permutation_montecarlo_shapley", - progress: bool = False, - job_id: int = 1, + algorithm_name: str, + seed: Optional[Union[Seed, SeedSequence]] = None, ) -> ValuationResult: - """Helper function for :func:`permutation_montecarlo_shapley`. - - Computes marginal utilities of each training sample in - :obj:`pydvl.utils.utility.Utility.data` by iterating through randomly - sampled permutations. - - :param u: Utility object with model, data, and scoring function - :param done: Check on the results which decides when to stop - :param truncation: A callable which decides whether to interrupt - processing a permutation and set all subsequent marginals to zero. - :param algorithm_name: For the results object. Used internally by different - variants of Shapley using this subroutine - :param progress: Whether to display progress bars for each job. - :param job_id: id to use for reporting progress (e.g. to place progres bars) - :return: An object with the results + """Helper function for [permutation_montecarlo_shapley()][pydvl.value.shapley.montecarlo.permutation_montecarlo_shapley]. + + Computes marginal utilities of each training sample in a randomly sampled + permutation. + Args: + u: Utility object with model, data, and scoring function + truncation: A callable which decides whether to interrupt + processing a permutation and set all subsequent marginals to zero. + algorithm_name: For the results object. Used internally by different + variants of Shapley using this subroutine + seed: Either an instance of a numpy random number generator or a seed for it. + + Returns: + An object with the results """ + result = ValuationResult.zeros( algorithm=algorithm_name, indices=u.data.indices, data_names=u.data.data_names ) - - pbar = tqdm(disable=not progress, position=job_id, total=100, unit="%") - while not done(result): - pbar.n = 100 * done.completion() - pbar.refresh() - prev_score = 0.0 - permutation = np.random.permutation(u.data.indices) - permutation_done = False - truncation.reset() - for i, idx in enumerate(permutation): - if permutation_done: - score = prev_score - else: - score = u(permutation[: i + 1]) - marginal = score - prev_score - result.update(idx, marginal) - prev_score = score - if not permutation_done and truncation(i, score): - permutation_done = True + prev_score = 0.0 + permutation = np.random.default_rng(seed).permutation(u.data.indices) + permutation_done = False + truncation.reset() + for i, idx in enumerate(permutation): + if permutation_done: + score = prev_score + else: + score = u(permutation[: i + 1]) + marginal = score - prev_score + result.update(idx, marginal) + prev_score = score + if not permutation_done and truncation(i, score): + permutation_done = True + nans = np.isnan(result.values).sum() + if nans > 0: + logger.warning( + f"{nans} NaN values in current permutation, ignoring. " + "Consider setting a default value for the Scorer" + ) + result = ValuationResult.empty(algorithm=algorithm_name) return result +@deprecated( + target=True, + deprecated_in="0.7.0", + remove_in="0.8.0", + args_mapping=dict( + coordinator_update_period=None, worker_update_period=None, progress=None + ), +) def permutation_montecarlo_shapley( u: Utility, done: StoppingCriterion, @@ -112,44 +136,100 @@ def permutation_montecarlo_shapley( n_jobs: int = 1, config: ParallelConfig = ParallelConfig(), progress: bool = False, + seed: Seed = None, ) -> ValuationResult: - r"""Computes an approximate Shapley value by sampling independent index - permutations to approximate the sum: + r"""Computes an approximate Shapley value by sampling independent + permutations of the index set, approximating the sum: $$ v_u(x_i) = \frac{1}{n!} \sum_{\sigma \in \Pi(n)} \tilde{w}( | \sigma_{:i} | )[u(\sigma_{:i} \cup \{i\}) − u(\sigma_{:i})], $$ - where $\sigma_{:i}$ denotes the set of indices in permutation sigma before the - position where $i$ appears (see :ref:`data valuation` for details). - - :param u: Utility object with model, data, and scoring function. - :param done: function checking whether computation must stop. - :param truncation: An optional callable which decides whether to - interrupt processing a permutation and set all subsequent marginals to - zero. Typically used to stop computation when the marginal is small. - :param n_jobs: number of jobs across which to distribute the computation. - :param config: Object configuring parallel computation, with cluster - address, number of cpus, etc. - :param progress: Whether to display progress bars for each job. - :return: Object with the data values. + where $\sigma_{:i}$ denotes the set of indices in permutation sigma before + the position where $i$ appears (see [[data-valuation]] for details). + + This implements the method described in (Ghorbani and Zou, 2019)1 + with a double stopping criterion. + + .. todo:: + Think of how to add Robin-Gelman or some other more principled stopping + criterion. + + Instead of naively implementing the expectation, we sequentially add points + to coalitions from a permutation and incrementally compute marginal utilities. + We stop computing marginals for a given permutation based on a + [TruncationPolicy][pydvl.value.shapley.truncated.TruncationPolicy]. + (Ghorbani and Zou, 2019)1 + mention two policies: one that stops after a certain + fraction of marginals are computed, implemented in + [FixedTruncation][pydvl.value.shapley.truncated.FixedTruncation], + and one that stops if the last computed utility ("score") is close to the + total utility using the standard deviation of the utility as a measure of + proximity, implemented in + [BootstrapTruncation][pydvl.value.shapley.truncated.BootstrapTruncation]. + + We keep sampling permutations and updating all shapley values + until the [StoppingCriterion][pydvl.value.stopping.StoppingCriterion] returns + `True`. + + Args: + u: Utility object with model, data, and scoring function. + done: function checking whether computation must stop. + truncation: An optional callable which decides whether to interrupt + processing a permutation and set all subsequent marginals to + zero. Typically used to stop computation when the marginal is small. + n_jobs: number of jobs across which to distribute the computation. + config: Object configuring parallel computation, with cluster address, + number of cpus, etc. + progress: Whether to display a progress bar. + seed: Either an instance of a numpy random number generator or a seed for it. + + Returns: + Object with the data values. """ - - map_reduce_job: MapReduceJob[Utility, ValuationResult] = MapReduceJob( - u, - map_func=_permutation_montecarlo_shapley, - reduce_func=lambda results: reduce(operator.add, results), - map_kwargs=dict( - algorithm_name="permutation_montecarlo_shapley", - done=done, - truncation=truncation, - progress=progress, - ), - config=config, - n_jobs=n_jobs, - ) - return map_reduce_job() + algorithm = "permutation_montecarlo_shapley" + + parallel_backend = init_parallel_backend(config) + u = parallel_backend.put(u) + max_workers = effective_n_jobs(n_jobs, config) + n_submitted_jobs = 2 * max_workers # number of jobs in the executor's queue + + seed_sequence = ensure_seed_sequence(seed) + result = ValuationResult.zeros(algorithm=algorithm) + + pbar = tqdm(disable=not progress, total=100, unit="%") + + with init_executor( + max_workers=max_workers, config=config, cancel_futures=CancellationPolicy.ALL + ) as executor: + pending: set[Future] = set() + while True: + pbar.n = 100 * done.completion() + pbar.refresh() + + completed, pending = wait( + pending, timeout=config.wait_timeout, return_when=FIRST_COMPLETED + ) + for future in completed: + result += future.result() + # we could check outside the loop, but that means more + # submissions if the stopping criterion is unstable + if done(result): + return result + + # Ensure that we always have n_submitted_jobs in the queue or running + n_remaining_slots = n_submitted_jobs - len(pending) + seeds = seed_sequence.spawn(n_remaining_slots) + for i in range(n_remaining_slots): + future = executor.submit( + _permutation_montecarlo_one_step, + u, + truncation, + algorithm, + seed=seeds[i], + ) + pending.add(future) def _combinatorial_montecarlo_shapley( @@ -159,19 +239,26 @@ def _combinatorial_montecarlo_shapley( *, progress: bool = False, job_id: int = 1, + seed: Optional[Seed] = None, ) -> ValuationResult: - """Helper function for :func:`combinatorial_montecarlo_shapley`. + """Helper function for + [combinatorial_montecarlo_shapley][pydvl.value.shapley.montecarlo.combinatorial_montecarlo_shapley]. This is the code that is sent to workers to compute values using the combinatorial definition. - :param indices: Indices of the samples to compute values for. - :param u: Utility object with model, data, and scoring function - :param done: Check on the results which decides when to stop sampling - subsets for an index. - :param progress: Whether to display progress bars for each job. - :param job_id: id to use for reporting progress - :return: A tuple of ndarrays with estimated values and standard errors + Args: + indices: Indices of the samples to compute values for. + u: Utility object with model, data, and scoring function + done: Check on the results which decides when to stop sampling + subsets for an index. + progress: Whether to display progress bars for each job. + seed: Either an instance of a numpy random number generator or a seed + for it. + job_id: id to use for reporting progress + + Returns: + The results for the indices. """ n = len(u.data) @@ -186,6 +273,7 @@ def _combinatorial_montecarlo_shapley( data_names=[u.data.data_names[i] for i in indices], ) + rng = np.random.default_rng(seed) repeat_indices = takewhile(lambda _: not done(result), cycle(indices)) pbar = tqdm(disable=not progress, position=job_id, total=100, unit="%") for idx in repeat_indices: @@ -193,7 +281,7 @@ def _combinatorial_montecarlo_shapley( pbar.refresh() # Randomly sample subsets of full dataset without idx subset = np.setxor1d(u.data.indices, [idx], assume_unique=True) - s = next(random_powerset(subset, n_samples=1)) + s = next(random_powerset(subset, n_samples=1, seed=rng)) marginal = (u({idx}.union(s)) - u(s)) / math.comb(n - 1, len(s)) result.update(idx, correction * marginal) @@ -207,6 +295,7 @@ def combinatorial_montecarlo_shapley( n_jobs: int = 1, config: ParallelConfig = ParallelConfig(), progress: bool = False, + seed: Optional[Seed] = None, ) -> ValuationResult: r"""Computes an approximate Shapley value using the combinatorial definition: @@ -215,26 +304,30 @@ def combinatorial_montecarlo_shapley( \binom{n-1}{ | S | }^{-1} [u(S \cup \{i\}) − u(S)]$$ This consists of randomly sampling subsets of the power set of the training - indices in :attr:`~pydvl.utils.utility.Utility.data`, and computing their - marginal utilities. See :ref:`data valuation` for details. + indices in [u.data][pydvl.utils.utility.Utility], and computing their + marginal utilities. See [Data valuation][computing-data-values] for details. Note that because sampling is done with replacement, the approximation is poor even for $2^{m}$ subsets with $m>n$, even though there are $2^{n-1}$ subsets for each $i$. Prefer - :func:`~pydvl.shapley.montecarlo.permutation_montecarlo_shapley`. + [permutation_montecarlo_shapley()][pydvl.value.shapley.montecarlo.permutation_montecarlo_shapley]. Parallelization is done by splitting the set of indices across processes and computing the sum over subsets $S \subseteq N \setminus \{i\}$ separately. - :param u: Utility object with model, data, and scoring function - :param done: Stopping criterion for the computation. - :param n_jobs: number of parallel jobs across which to distribute the - computation. Each worker receives a chunk of - :attr:`~pydvl.utils.dataset.Dataset.indices` - :param config: Object configuring parallel computation, with cluster - address, number of cpus, etc. - :param progress: Whether to display progress bars for each job. - :return: Object with the data values. + Args: + u: Utility object with model, data, and scoring function + done: Stopping criterion for the computation. + n_jobs: number of parallel jobs across which to distribute the + computation. Each worker receives a chunk of + [indices][pydvl.utils.dataset.Dataset.indices] + config: Object configuring parallel computation, with cluster address, + number of cpus, etc. + progress: Whether to display progress bars for each job. + seed: Either an instance of a numpy random number generator or a seed for it. + + Returns: + Object with the data values. """ map_reduce_job: MapReduceJob[NDArray, ValuationResult] = MapReduceJob( @@ -245,4 +338,4 @@ def combinatorial_montecarlo_shapley( n_jobs=n_jobs, config=config, ) - return map_reduce_job() + return map_reduce_job(seed=seed) diff --git a/src/pydvl/value/shapley/naive.py b/src/pydvl/value/shapley/naive.py index d903ff80b..d1a29e8fd 100644 --- a/src/pydvl/value/shapley/naive.py +++ b/src/pydvl/value/shapley/naive.py @@ -1,7 +1,7 @@ import math import warnings from itertools import permutations -from typing import List, Sequence +from typing import Collection, List import numpy as np from numpy.typing import NDArray @@ -18,16 +18,19 @@ def permutation_exact_shapley(u: Utility, *, progress: bool = True) -> Valuation $$v_u(x_i) = \frac{1}{n!} \sum_{\sigma \in \Pi(n)} [u(\sigma_{i-1} \cup {i}) − u(\sigma_{i})].$$ - See :ref:`data valuation` for details. + See [Data valuation][computing-data-values] for details. When the length of the training set is > 10 this prints a warning since the computation becomes too expensive. Used mostly for internal testing and - simple use cases. Please refer to the :mod:`Monte Carlo - ` approximations for practical applications. + simple use cases. Please refer to the [Monte Carlo + approximations][pydvl.value.shapley.montecarlo] for practical applications. - :param u: Utility object with model, data, and scoring function - :param progress: Whether to display progress bars for each job. - :return: Object with the data values. + Args: + u: Utility object with model, data, and scoring function + progress: Whether to display progress bars for each job. + + Returns: + Object with the data values. """ n = len(u.data) @@ -59,9 +62,10 @@ def permutation_exact_shapley(u: Utility, *, progress: bool = True) -> Valuation def _combinatorial_exact_shapley( - indices: Sequence[int], u: Utility, progress: bool + indices: NDArray, u: Utility, progress: bool ) -> NDArray: - """Helper function for :func:`combinatorial_exact_shapley`. + """Helper function for + [combinatorial_exact_shapley()][pydvl.value.shapley.naive.combinatorial_exact_shapley]. Computes the marginal utilities for the set of indices passed and returns the value of the samples according to the exact combinatorial definition. @@ -69,7 +73,9 @@ def _combinatorial_exact_shapley( n = len(u.data) local_values = np.zeros(n) for i in indices: - subset = np.setxor1d(u.data.indices, [i], assume_unique=True).astype(np.int_) + subset: NDArray[np.int_] = np.setxor1d( + u.data.indices, [i], assume_unique=True + ).astype(np.int_) for s in maybe_progress( powerset(subset), progress, @@ -92,21 +98,24 @@ def combinatorial_exact_shapley( $$v_u(i) = \frac{1}{n} \sum_{S \subseteq N \setminus \{i\}} \binom{n-1}{ | S | }^{-1} [u(S \cup \{i\}) − u(S)].$$ - See :ref:`data valuation` for details. - - .. note:: - If the length of the training set is > n_jobs*20 this prints a warning - because the computation is very expensive. Used mostly for internal testing - and simple use cases. Please refer to the - :mod:`Monte Carlo ` approximations for practical - applications. - - :param u: Utility object with model, data, and scoring function - :param n_jobs: Number of parallel jobs to use - :param config: Object configuring parallel computation, with cluster address, - number of cpus, etc. - :param progress: Whether to display progress bars for each job. - :return: Object with the data values. + See [Data valuation][computing-data-values] for details. + + !!! Note + If the length of the training set is > n_jobs*20 this prints a warning + because the computation is very expensive. Used mostly for internal testing + and simple use cases. Please refer to the + [Monte Carlo][pydvl.value.shapley.montecarlo] approximations for practical + applications. + + Args: + u: Utility object with model, data, and scoring function + n_jobs: Number of parallel jobs to use + config: Object configuring parallel computation, with cluster address, + number of cpus, etc. + progress: Whether to display progress bars for each job. + + Returns: + Object with the data values. """ # Arbitrary choice, will depend on time required, caching, etc. if len(u.data) // n_jobs > 20: diff --git a/src/pydvl/value/shapley/owen.py b/src/pydvl/value/shapley/owen.py index ec61b4f4d..69b5dda89 100644 --- a/src/pydvl/value/shapley/owen.py +++ b/src/pydvl/value/shapley/owen.py @@ -1,14 +1,23 @@ +""" +## References + +[^1]: Okhrati, R., Lipani, A., 2021. + [A Multilinear Sampling Algorithm to Estimate Shapley Values](https://ieeexplore.ieee.org/abstract/document/9412511). + In: 2020 25th International Conference on Pattern Recognition (ICPR), pp. 7992–7999. IEEE. +""" + import operator from enum import Enum from functools import reduce from itertools import cycle, takewhile -from typing import Sequence +from typing import Optional, Sequence import numpy as np from numpy.typing import NDArray from tqdm import tqdm from pydvl.utils import MapReduceJob, ParallelConfig, Utility, random_powerset +from pydvl.utils.types import Seed from pydvl.value import ValuationResult from pydvl.value.stopping import MinUpdates @@ -29,25 +38,31 @@ def _owen_sampling_shapley( *, progress: bool = False, job_id: int = 1, + seed: Optional[Seed] = None ) -> ValuationResult: r"""This is the algorithm as detailed in the paper: to compute the outer integral over q ∈ [0,1], use uniformly distributed points for evaluation of the integrand. For the integrand (the expected marginal utility over the power set), use Monte Carlo. - .. todo:: + !!! Todo We might want to try better quadrature rules like Gauss or Rombert or use Monte Carlo for the double integral. - :param indices: Indices to compute the value for - :param u: Utility object with model, data, and scoring function - :param method: Either :attr:`~OwenAlgorithm.Full` for $q \in [0,1]$ or - :attr:`~OwenAlgorithm.Halved` for $q \in [0,0.5]$ and correlated samples - :param n_samples: Number of subsets to sample to estimate the integrand - :param max_q: number of subdivisions for the integration over $q$ - :param progress: Whether to display progress bars for each job - :param job_id: For positioning of the progress bar - :return: Object with the data values, errors. + Args: + indices: Indices to compute the value for + u: Utility object with model, data, and scoring function + method: Either [OwenAlgorithm.Full][pydvl.value.shapley.owen.OwenAlgorithm] + for q ∈ [0, 1] or [OwenAlgorithm.Halved][pydvl.value.shapley.owen.OwenAlgorithm] + for q ∈ [0, 0.5] and correlated samples + n_samples: Number of subsets to sample to estimate the integrand + max_q: number of subdivisions for the integration over $q$ + progress: Whether to display progress bars for each job + job_id: For positioning of the progress bar + seed: Either an instance of a numpy random number generator or a seed for it. + + Returns: + Object with the data values, errors. """ q_stop = {OwenAlgorithm.Standard: 1.0, OwenAlgorithm.Antithetic: 0.5} q_steps = np.linspace(start=0, stop=q_stop[method], num=max_q) @@ -58,6 +73,7 @@ def _owen_sampling_shapley( data_names=[u.data.data_names[i] for i in indices], ) + rng = np.random.default_rng(seed) done = MinUpdates(1) repeat_indices = takewhile(lambda _: not done(result), cycle(indices)) pbar = tqdm(disable=not progress, position=job_id, total=100, unit="%") @@ -67,7 +83,7 @@ def _owen_sampling_shapley( e = np.zeros(max_q) subset = np.setxor1d(u.data.indices, [idx], assume_unique=True) for j, q in enumerate(q_steps): - for s in random_powerset(subset, n_samples=n_samples, q=q): + for s in random_powerset(subset, n_samples=n_samples, q=q, seed=rng): marginal = u({idx}.union(s)) - u(s) if method == OwenAlgorithm.Antithetic and q != 0.5: s_complement = np.setxor1d(subset, s, assume_unique=True) @@ -93,9 +109,10 @@ def owen_sampling_shapley( n_jobs: int = 1, config: ParallelConfig = ParallelConfig(), progress: bool = False, + seed: Optional[Seed] = None ) -> ValuationResult: r"""Owen sampling of Shapley values as described in - :footcite:t:`okhrati_multilinear_2021`. + (Okhrati and Lipani, 2021)1. This function computes a Monte Carlo approximation to @@ -122,28 +139,34 @@ def owen_sampling_shapley( where now $q_j = \frac{j}{2Q} \in [0,\frac{1}{2}]$, and $S^c$ is the complement of $S$. - .. note:: - The outer integration could be done instead with a quadrature rule. - - :param u: :class:`~pydvl.utils.utility.Utility` object holding data, model - and scoring function. - :param n_samples: Numer of sets to sample for each value of q - :param max_q: Number of subdivisions for q ∈ [0,1] (the element sampling - probability) used to approximate the outer integral. - :param method: Selects the algorithm to use, see the description. Either - :attr:`~OwenAlgorithm.Full` for $q \in [0,1]$ or - :attr:`~OwenAlgorithm.Halved` for $q \in [0,0.5]$ and correlated samples - :param n_jobs: Number of parallel jobs to use. Each worker receives a chunk - of the total of `max_q` values for q. - :param config: Object configuring parallel computation, with cluster - address, number of cpus, etc. - :param progress: Whether to display progress bars for each job. - :return: Object with the data values. - - .. versionadded:: 0.3.0 - - .. versionchanged:: 0.5.0 - Support for parallel computation and enable antithetic sampling. + !!! Note + The outer integration could be done instead with a quadrature rule. + + Args: + u: [Utility][pydvl.utils.utility.Utility] object holding data, model + and scoring function. + n_samples: Numer of sets to sample for each value of q + max_q: Number of subdivisions for q ∈ [0,1] (the element sampling + probability) used to approximate the outer integral. + method: Selects the algorithm to use, see the description. Either + [OwenAlgorithm.Full][pydvl.value.shapley.owen.OwenAlgorithm] for + $q \in [0,1]$ or + [OwenAlgorithm.Halved][pydvl.value.shapley.owen.OwenAlgorithm] for + $q \in [0,0.5]$ and correlated samples + n_jobs: Number of parallel jobs to use. Each worker receives a chunk + of the total of `max_q` values for q. + config: Object configuring parallel computation, with cluster address, + number of cpus, etc. + progress: Whether to display progress bars for each job. + seed: Either an instance of a numpy random number generator or a seed for it. + + Returns: + Object with the data values. + + !!! tip "New in version 0.3.0" + + !!! tip "Changed in version 0.5.0" + Support for parallel computation and enable antithetic sampling. """ map_reduce_job: MapReduceJob[NDArray, ValuationResult] = MapReduceJob( @@ -161,4 +184,4 @@ def owen_sampling_shapley( config=config, ) - return map_reduce_job() + return map_reduce_job(seed=seed) diff --git a/src/pydvl/value/shapley/truncated.py b/src/pydvl/value/shapley/truncated.py index 23b871699..9efe87480 100644 --- a/src/pydvl/value/shapley/truncated.py +++ b/src/pydvl/value/shapley/truncated.py @@ -1,15 +1,21 @@ +""" +## References + +[^1]: Ghorbani, A., Zou, J., 2019. + [Data Shapley: Equitable Valuation of Data for Machine Learning](http://proceedings.mlr.press/v97/ghorbani19c.html). + In: Proceedings of the 36th International Conference on Machine Learning, PMLR, pp. 2242–2251. + +""" import abc import logging -from concurrent.futures import FIRST_COMPLETED, wait +from typing import cast import numpy as np from deprecate import deprecated from pydvl.utils import ParallelConfig, Utility, running_moments -from pydvl.utils.parallel.backend import effective_n_jobs, init_parallel_backend -from pydvl.utils.parallel.futures import init_executor from pydvl.value import ValuationResult -from pydvl.value.stopping import MaxChecks, StoppingCriterion +from pydvl.value.stopping import StoppingCriterion __all__ = [ "TruncationPolicy", @@ -28,14 +34,17 @@ class TruncationPolicy(abc.ABC): """A policy for deciding whether to stop computing marginals in a permutation. - Statistics are kept on the number of calls and truncations as :attr:`n_calls` - and :attr:`n_truncations` respectively. + Statistics are kept on the number of calls and truncations as `n_calls` and + `n_truncations` respectively. - .. todo:: - Because the policy objects are copied to the workers, the statistics - are not accessible from the - :class:`~pydvl.value.shapley.actor.ShapleyCoordinator`. We need to add - methods for this. + Attributes: + n_calls: Number of calls to the policy. + n_truncations: Number of truncations made by the policy. + + !!! Todo + Because the policy objects are copied to the workers, the statistics + are not accessible from the coordinating process. We need to add methods + for this. """ def __init__(self): @@ -55,9 +64,12 @@ def reset(self): def __call__(self, idx: int, score: float) -> bool: """Check whether the computation should be interrupted. - :param idx: Position in the permutation currently being computed. - :param score: Last utility computed. - :return: ``True`` if the computation should be interrupted. + Args: + idx: Position in the permutation currently being computed. + score: Last utility computed. + + Returns: + `True` if the computation should be interrupted. """ ret = self._check(idx, score) self.n_calls += 1 @@ -78,9 +90,17 @@ def reset(self): class FixedTruncation(TruncationPolicy): """Break a permutation after computing a fixed number of marginals. - :param u: Utility object with model, data, and scoring function - :param fraction: Fraction of marginals in a permutation to compute before - stopping (e.g. 0.5 to compute half of the marginals). + The experiments in Appendix B of (Ghorbani and Zou, 2019)1 + show that when the training set size is large enough, one can simply truncate the iteration + over permutations after a fixed number of steps. This happens because beyond + a certain number of samples in a training set, the model becomes insensitive + to new ones. Alas, this strongly depends on the data distribution and the + model and there is no automatic way of estimating this number. + + Args: + u: Utility object with model, data, and scoring function + fraction: Fraction of marginals in a permutation to compute before + stopping (e.g. 0.5 to compute half of the marginals). """ def __init__(self, u: Utility, fraction: float): @@ -101,11 +121,12 @@ def reset(self): class RelativeTruncation(TruncationPolicy): """Break a permutation if the marginal utility is too low. - This is called "performance tolerance" in :footcite:t:`ghorbani_data_2019`. + This is called "performance tolerance" in (Ghorbani and Zou, 2019)1. - :param u: Utility object with model, data, and scoring function - :param rtol: Relative tolerance. The permutation is broken if the - last computed utility is less than ``total_utility * rtol``. + Args: + u: Utility object with model, data, and scoring function + rtol: Relative tolerance. The permutation is broken if the + last computed utility is less than `total_utility * rtol`. """ def __init__(self, u: Utility, rtol: float): @@ -115,7 +136,8 @@ def __init__(self, u: Utility, rtol: float): self.total_utility = u(u.data.indices) def _check(self, idx: int, score: float) -> bool: - return np.allclose(score, self.total_utility, rtol=self.rtol) + # Explicit cast for the benefit of mypy 🤷 + return bool(np.allclose(score, self.total_utility, rtol=self.rtol)) def reset(self): pass @@ -125,10 +147,11 @@ class BootstrapTruncation(TruncationPolicy): """Break a permutation if the last computed utility is close to the total utility, measured as a multiple of the standard deviation of the utilities. - :param u: Utility object with model, data, and scoring function - :param n_samples: Number of bootstrap samples to use to compute the variance - of the utilities. - :param sigmas: Number of standard deviations to use as a threshold. + Args: + u: Utility object with model, data, and scoring function + n_samples: Number of bootstrap samples to use to compute the variance + of the utilities. + sigmas: Number of standard deviations to use as a threshold. """ def __init__(self, u: Utility, n_samples: int, sigmas: float = 1): @@ -160,34 +183,10 @@ def reset(self): self.variance = self.mean = 0 -def _permutation_montecarlo_one_step( - u: Utility, - truncation: TruncationPolicy, - algorithm: str, -) -> ValuationResult: - # Avoid circular imports - from .montecarlo import _permutation_montecarlo_shapley - - result = _permutation_montecarlo_shapley( - u, - done=MaxChecks(1), - truncation=truncation, - algorithm_name=algorithm, - ) - nans = np.isnan(result.values).sum() - if nans > 0: - logger.warning( - f"{nans} NaN values in current permutation, ignoring. " - "Consider setting a default value for the Scorer" - ) - result = ValuationResult.empty(algorithm="truncated_montecarlo_shapley") - return result - - @deprecated( target=True, - deprecated_in="0.6.1", - remove_in="0.7.0", + deprecated_in="0.7.0", + remove_in="0.8.0", args_mapping=dict(coordinator_update_period=None, worker_update_period=None), ) def truncated_montecarlo_shapley( @@ -200,89 +199,32 @@ def truncated_montecarlo_shapley( coordinator_update_period: int = 10, worker_update_period: int = 5, ) -> ValuationResult: - """Monte Carlo approximation to the Shapley value of data points. - - This implements the permutation-based method described in - :footcite:t:`ghorbani_data_2019`. It is a Monte Carlo estimate of the sum - over all possible permutations of the index set, with a double stopping - criterion. - - .. todo:: - Think of how to add Robin-Gelman or some other more principled stopping - criterion. - - Instead of naively implementing the expectation, we sequentially add points - to a dataset from a permutation and incrementally compute marginal utilities. - We stop computing marginals for a given permutation based on a - :class:`TruncationPolicy`. :footcite:t:`ghorbani_data_2019` mention two - policies: one that stops after a certain fraction of marginals are computed, - implemented in :class:`FixedTruncation`, and one that stops if the last - computed utility ("score") is close to the total utility using the standard - deviation of the utility as a measure of proximity, implemented in - :class:`BootstrapTruncation`. - - We keep sampling permutations and updating all shapley values - until the :class:`StoppingCriterion` returns ``True``. - - :param u: Utility object with model, data, and scoring function - :param done: Check on the results which decides when to stop - sampling permutations. - :param truncation: callable that decides whether to stop computing - marginals for a given permutation. - :param config: Object configuring parallel computation, with cluster - address, number of cpus, etc. - :param n_jobs: Number of permutation monte carlo jobs - to run concurrently. - :param coordinator_update_period: in seconds. How often to check the - accumulated results from the workers for convergence. - :param worker_update_period: interval in seconds between different - updates to and from the coordinator - :return: Object with the data values. - """ - algorithm = "truncated_montecarlo_shapley" - - parallel_backend = init_parallel_backend(config) - u = parallel_backend.put(u) - # This represents the number of jobs that are running - n_jobs = effective_n_jobs(n_jobs, config) - # This determines the total number of submitted jobs - # including the ones that are running - n_submitted_jobs = 2 * n_jobs - - accumulated_result = ValuationResult.zeros(algorithm=algorithm) - - with init_executor(max_workers=n_jobs, config=config) as executor: - futures = set() - # Initial batch of computations - for _ in range(n_submitted_jobs): - future = executor.submit( - _permutation_montecarlo_one_step, - u, - truncation, - algorithm, - ) - futures.add(future) - while futures: - # Wait for the next futures to complete. - completed_futures, futures = wait( - futures, timeout=60, return_when=FIRST_COMPLETED - ) - for future in completed_futures: - accumulated_result += future.result() - if done(accumulated_result): - break - if done(accumulated_result): - break - # Submit more computations - # The goal is to always have `n_jobs` - # computations running - for _ in range(n_submitted_jobs - len(futures)): - future = executor.submit( - _permutation_montecarlo_one_step, - u, - truncation, - algorithm, - ) - futures.add(future) - return accumulated_result + !!! Warning + This method is deprecated and only a wrapper for + [permutation_montecarlo_shapley][pydvl.value.shapley.montecarlo.permutation_montecarlo_shapley]. + + !!! Todo + Think of how to add Robin-Gelman or some other more principled stopping + criterion. + + Args: + u: Utility object with model, data, and scoring function + done: Check on the results which decides when to stop sampling + permutations. + truncation: callable that decides whether to stop computing marginals + for a given permutation. + config: Object configuring parallel computation, with cluster address, + number of cpus, etc. + n_jobs: Number of permutation monte carlo jobs to run concurrently. + Returns: + Object with the data values. + """ + from pydvl.value.shapley.montecarlo import permutation_montecarlo_shapley + + return cast( + ValuationResult, + permutation_montecarlo_shapley( + u, done=done, truncation=truncation, config=config, n_jobs=n_jobs + ), + ) diff --git a/src/pydvl/value/shapley/types.py b/src/pydvl/value/shapley/types.py index 3b0d80d3d..e9a660539 100644 --- a/src/pydvl/value/shapley/types.py +++ b/src/pydvl/value/shapley/types.py @@ -4,8 +4,8 @@ class ShapleyMode(str, Enum): """Supported algorithms for the computation of Shapley values. - .. todo:: - Make algorithms register themselves here. + !!! Todo + Make algorithms register themselves here. """ ApproShapley = "appro_shapley" # Alias for PermutationMontecarlo @@ -17,4 +17,4 @@ class ShapleyMode(str, Enum): OwenAntithetic = "owen_antithetic" PermutationExact = "permutation_exact" PermutationMontecarlo = "permutation_montecarlo" - TruncatedMontecarlo = "truncated_montecarlo" + TruncatedMontecarlo = "truncated_montecarlo" # Alias for PermutationMontecarlo diff --git a/src/pydvl/value/stopping.py b/src/pydvl/value/stopping.py index 09ba84475..57484a81b 100644 --- a/src/pydvl/value/stopping.py +++ b/src/pydvl/value/stopping.py @@ -1,38 +1,49 @@ """ Stopping criteria for value computations. -This module provides a basic set of stopping criteria, like :class:`MaxUpdates`, -:class:`MaxTime`, or :class:`HistoryDeviation` among others. These can behave in -different ways depending on the context. For example, :class:`MaxUpdates` limits +This module provides a basic set of stopping criteria, like [MaxUpdates][pydvl.value.stopping.MaxUpdates], +[MaxTime][pydvl.value.stopping.MaxTime], or [HistoryDeviation][pydvl.value.stopping.HistoryDeviation] among others. +These can behave in different ways depending on the context. +For example, [MaxUpdates][pydvl.value.stopping.MaxUpdates] limits the number of updates to values, which depending on the algorithm may mean a different number of utility evaluations or imply other computations like solving a linear or quadratic program. -.. rubric:: Creating stopping criteria +# Creating stopping criteria The easiest way is to declare a function implementing the interface -:data:`StoppingCriterionCallable` and wrap it with :func:`make_criterion`. This -creates a :class:`StoppingCriterion` object that can be composed with other -stopping criteria. +[StoppingCriterionCallable][pydvl.value.stopping.StoppingCriterionCallable] and +wrap it with [make_criterion()][pydvl.value.stopping.make_criterion]. This +creates a [StoppingCriterion][pydvl.value.stopping.StoppingCriterion] object +that can be composed with other stopping criteria. Alternatively, and in particular if reporting of completion is required, one can inherit from this class and implement the abstract methods -:meth:`~pydvl.value.stopping.StoppingCriterion._check` and -:meth:`~pydvl.value.stopping.StoppingCriterion.completion`. +[_check][pydvl.value.stopping.StoppingCriterion._check] and +[completion][pydvl.value.stopping.StoppingCriterion.completion]. -.. rubric:: Composing stopping criteria +# Composing stopping criteria -Objects of type :class:`StoppingCriterion` can be composed with the binary -operators ``&`` (*and*), and ``|`` (*or*), following the truth tables of -:class:`~pydvl.utils.status.Status`. The unary operator ``~`` (*not*) is also -supported. See :class:`StoppingCriterion` for details on how these operations -affect the behavior of the stopping criteria. +Objects of type [StoppingCriterion][pydvl.value.stopping.StoppingCriterion] can +be composed with the binary operators `&` (*and*), and `|` (*or*), following the +truth tables of [Status][pydvl.utils.status.Status]. The unary operator `~` +(*not*) is also supported. See +[StoppingCriterion][pydvl.value.stopping.StoppingCriterion] for details on how +these operations affect the behavior of the stopping criteria. + +## References + +[^1]: Ghorbani, A., Zou, J., 2019. + [Data Shapley: Equitable Valuation of Data for Machine Learning](http://proceedings.mlr.press/v97/ghorbani19c.html). + In: Proceedings of the 36th International Conference on Machine Learning, PMLR, pp. 2242–2251. """ +from __future__ import annotations + import abc import logging from time import time -from typing import Callable, Optional, Type +from typing import Callable, Optional, Protocol, Type import numpy as np from deprecate import deprecated, void @@ -55,53 +66,69 @@ logger = logging.getLogger(__name__) -StoppingCriterionCallable = Callable[[ValuationResult], Status] + +class StoppingCriterionCallable(Protocol): + """Signature for a stopping criterion""" + + def __call__(self, result: ValuationResult) -> Status: + ... class StoppingCriterion(abc.ABC): """A composable callable object to determine whether a computation must stop. - A ``StoppingCriterion`` is a callable taking a - :class:`~pydvl.value.result.ValuationResult` and returning a - :class:`~pydvl.value.result.Status`. It also keeps track of individual - convergence of values with :meth:`converged`, and reports the overall - completion of the computation with :meth:`completion`. - - Instances of ``StoppingCriterion`` can be composed with the binary operators - ``&`` (*and*), and ``|`` (*or*), following the truth tables of - :class:`~pydvl.utils.status.Status`. The unary operator ``~`` (*not*) is + A `StoppingCriterion` is a callable taking a + [ValuationResult][pydvl.value.result.ValuationResult] and returning a + [Status][pydvl.value.result.Status]. It also keeps track of individual + convergence of values with + [converged][pydvl.value.stopping.StoppingCriterion.converged], and reports + the overall completion of the computation with + [completion][pydvl.value.stopping.StoppingCriterion.completion]. + + Instances of `StoppingCriterion` can be composed with the binary operators + `&` (*and*), and `|` (*or*), following the truth tables of + [Status][pydvl.utils.status.Status]. The unary operator `~` (*not*) is also supported. These boolean operations act according to the following rules: - - The results of :meth:`_check` are combined with the operator. See - :class:`~pydvl.utils.status.Status` for the truth tables. - - The results of :meth:`converged` are combined with the operator (returning - another boolean array). - - The :meth:`completion` method returns the min, max, or the complement to 1 - of the completions of the operands, for AND, OR and NOT respectively. This - is required for cases where one of the criteria does not keep track of the - convergence of single values, e.g. :class:`MaxUpdates`, because - :meth:`completion` by default returns the mean of the boolean convergence - array. - - .. rubric:: Subclassing - - Subclassing this class requires implementing a :meth:`_check` method that - returns a :class:`~pydvl.utils.status.Status` object based on a given - :class:`~pydvl.value.result.ValuationResult`. This method should update the - :attr:`converged` attribute, which is a boolean array indicating whether - the value for each index has converged. When this is not possible, - :meth:`completion` should be overridden to provide an overall completion - value, since the default implementation returns the mean of :attr:`converged`. - - :param modify_result: If ``True`` the status of the input - :class:`~pydvl.value.result.ValuationResult` is modified in place after - the call. + - The results of [_check][pydvl.value.stopping.StoppingCriterion._check] are + combined with the operator. See [Status][pydvl.utils.status.Status] for + the truth tables. + - The results of + [converged][pydvl.value.stopping.StoppingCriterion.converged] are combined + with the operator (returning another boolean array). + - The [completion][pydvl.value.stopping.StoppingCriterion.completion] + method returns the min, max, or the complement to 1 of the completions of + the operands, for AND, OR and NOT respectively. This is required for cases + where one of the criteria does not keep track of the convergence of single + values, e.g. [MaxUpdates][pydvl.value.stopping.MaxUpdates], because + [completion][pydvl.value.stopping.StoppingCriterion.completion] by + default returns the mean of the boolean convergence array. + + # Subclassing + + Subclassing this class requires implementing a + [_check][pydvl.value.stopping.StoppingCriterion._check] method that + returns a [Status][pydvl.utils.status.Status] object based on a given + [ValuationResult][pydvl.value.result.ValuationResult]. This method should + update the attribute [_converged][pydvl.value.stopping.StoppingCriterion._converged], + which is a boolean array indicating whether the value for each index has + converged. When this does not make sense for a particular stopping criterion, + [completion][pydvl.value.stopping.StoppingCriterion.completion] should be + overridden to provide an overall completion value, since its default + implementation attempts to compute the mean of + [_converged][pydvl.value.stopping.StoppingCriterion._converged]. + + Args: + modify_result: If `True` the status of the input + [ValuationResult][pydvl.value.result.ValuationResult] is modified in + place after the call. """ - # A boolean array indicating whether the corresponding element has converged - _converged: NDArray[np.bool_] + _converged: NDArray[ + np.bool_ + ] #: A boolean array indicating whether the corresponding element has converged def __init__(self, modify_result: bool = True): self.modify_result = modify_result @@ -118,15 +145,19 @@ def completion(self) -> float: """ if self.converged.size == 0: return 0.0 - return np.mean(self.converged).item() + return float(np.mean(self.converged).item()) @property def converged(self) -> NDArray[np.bool_]: """Returns a boolean array indicating whether the values have converged for each data point. - Inheriting classes must set the ``_converged`` attribute in their - :meth:`_check`. + Inheriting classes must set the `_converged` attribute in their + [_check][pydvl.value.stopping.StoppingCriterion._check]. + + Returns: + A boolean array indicating whether the values have converged for + each data point. """ return self._converged @@ -135,7 +166,7 @@ def name(self): return type(self).__name__ def __call__(self, result: ValuationResult) -> Status: - """Calls :meth:`_check`, maybe updating the result.""" + """Calls [_check][pydvl.value.stopping.StoppingCriterion._check], maybe updating the result.""" if len(result) == 0: logger.warning( "At least one iteration finished but no results where generated. " @@ -173,28 +204,31 @@ def __invert__(self) -> "StoppingCriterion": def make_criterion( fun: StoppingCriterionCallable, - converged: Callable[[], NDArray[np.bool_]] = None, - completion: Callable[[], float] = None, - name: str = None, + converged: Callable[[], NDArray[np.bool_]] | None = None, + completion: Callable[[], float] | None = None, + name: str | None = None, ) -> Type[StoppingCriterion]: - """Create a new :class:`StoppingCriterion` from a function. + """Create a new [StoppingCriterion][pydvl.value.stopping.StoppingCriterion] from a function. Use this to enable simpler functions to be composed with bitwise operators - :param fun: The callable to wrap. - :param converged: A callable that returns a boolean array indicating what - values have converged. - :param completion: A callable that returns a value between 0 and 1 indicating - the rate of completion of the computation. If not provided, the fraction - of converged values is used. - :param name: The name of the new criterion. If ``None``, the ``__name__`` of - the function is used. - :return: A new subclass of :class:`StoppingCriterion`. + Args: + fun: The callable to wrap. + converged: A callable that returns a boolean array indicating what + values have converged. + completion: A callable that returns a value between 0 and 1 indicating + the rate of completion of the computation. If not provided, the fraction + of converged values is used. + name: The name of the new criterion. If `None`, the `__name__` of + the function is used. + + Returns: + A new subclass of [StoppingCriterion][pydvl.value.stopping.StoppingCriterion]. """ class WrappedCriterion(StoppingCriterion): def __init__(self, modify_result: bool = True): super().__init__(modify_result=modify_result) - self._name = name or fun.__name__ + self._name = name or getattr(fun, "__name__", "WrappedCriterion") def _check(self, result: ValuationResult) -> Status: return fun(result) @@ -221,23 +255,24 @@ class AbsoluteStandardError(StoppingCriterion): r"""Determine convergence based on the standard error of the values. If $s_i$ is the standard error for datum $i$ and $v_i$ its value, then this - criterion returns :attr:`~pydvl.utils.status.Status.Converged` if + criterion returns [Converged][pydvl.utils.status.Status] if $s_i < \epsilon$ for all $i$ and a threshold value $\epsilon \gt 0$. - :param threshold: A value is considered to have converged if the standard - error is below this value. A way of choosing it is to pick some - percentage of the range of the values. For Shapley values this is the - difference between the maximum and minimum of the utility function (to - see this substitute the maximum and minimum values of the utility into - the marginal contribution formula). - :param fraction: The fraction of values that must have converged for the - criterion to return :attr:`~pydvl.utils.status.Status.Converged`. - :param burn_in: The number of iterations to ignore before checking for - convergence. This is required because computations typically start with - zero variance, as a result of using - :meth:`~pydvl.value.result.ValuationResult.empty`. The default is set to - an arbitrary minimum which is usually enough but may need to be - increased. + Args: + threshold: A value is considered to have converged if the standard + error is below this value. A way of choosing it is to pick some + percentage of the range of the values. For Shapley values this is + the difference between the maximum and minimum of the utility + function (to see this substitute the maximum and minimum values of + the utility into the marginal contribution formula). + fraction: The fraction of values that must have converged for the + criterion to return [Converged][pydvl.utils.status.Status]. + burn_in: The number of iterations to ignore before checking for + convergence. This is required because computations typically start + with zero variance, as a result of using + [empty()][pydvl.value.result.ValuationResult.empty]. The default is + set to an arbitrary minimum which is usually enough but may need to + be increased. """ def __init__( @@ -272,9 +307,10 @@ class MaxChecks(StoppingCriterion): A "check" is one call to the criterion. - :param n_checks: Threshold: if ``None``, no _check is performed, - effectively creating a (never) stopping criterion that always returns - ``Pending``. + Args: + n_checks: Threshold: if `None`, no _check is performed, + effectively creating a (never) stopping criterion that always returns + `Pending`. """ def __init__(self, n_checks: Optional[int], modify_result: bool = True): @@ -302,15 +338,20 @@ class MaxUpdates(StoppingCriterion): """Terminate if any number of value updates exceeds or equals the given threshold. - This checks the ``counts`` field of a - :class:`~pydvl.value.result.ValuationResult`, i.e. the number of times that - each index has been updated. For powerset samplers, the maximum of this - number coincides with the maximum number of subsets sampled. For permutation - samplers, it coincides with the number of permutations sampled. + !!! Note + If you want to ensure that **all** values have been updated, you + probably want [MinUpdates][pydvl.value.stopping.MinUpdates] instead. + + This checks the `counts` field of a + [ValuationResult][pydvl.value.result.ValuationResult], i.e. the number of + times that each index has been updated. For powerset samplers, the maximum + of this number coincides with the maximum number of subsets sampled. For + permutation samplers, it coincides with the number of permutations sampled. - :param n_updates: Threshold: if ``None``, no _check is performed, - effectively creating a (never) stopping criterion that always returns - ``Pending``. + Args: + n_updates: Threshold: if `None`, no _check is performed, + effectively creating a (never) stopping criterion that always returns + `Pending`. """ def __init__(self, n_updates: Optional[int], modify_result: bool = True): @@ -340,15 +381,16 @@ def completion(self) -> float: class MinUpdates(StoppingCriterion): """Terminate as soon as all value updates exceed or equal the given threshold. - This checks the ``counts`` field of a - :class:`~pydvl.value.result.ValuationResult`, i.e. the number of times that + This checks the `counts` field of a + [ValuationResult][pydvl.value.result.ValuationResult], i.e. the number of times that each index has been updated. For powerset samplers, the minimum of this number is a lower bound for the number of subsets sampled. For permutation samplers, it lower-bounds the amount of permutations sampled. - :param n_updates: Threshold: if ``None``, no _check is performed, - effectively creating a (never) stopping criterion that always returns - ``Pending``. + Args: + n_updates: Threshold: if `None`, no _check is performed, + effectively creating a (never) stopping criterion that always returns + `Pending`. """ def __init__(self, n_updates: Optional[int], modify_result: bool = True): @@ -378,10 +420,11 @@ class MaxTime(StoppingCriterion): Checks the elapsed time since construction - :param seconds: Threshold: The computation is terminated if the elapsed time - between object construction and a _check exceeds this value. If ``None``, - no _check is performed, effectively creating a (never) stopping criterion - that always returns ``Pending``. + Args: + seconds: Threshold: The computation is terminated if the elapsed time + between object construction and a _check exceeds this value. If `None`, + no _check is performed, effectively creating a (never) stopping criterion + that always returns `Pending`. """ def __init__(self, seconds: Optional[float], modify_result: bool = True): @@ -409,7 +452,7 @@ class HistoryDeviation(StoppingCriterion): r"""A simple check for relative distance to a previous step in the computation. - The method used by :footcite:t:`ghorbani_data_2019` computes the relative + The method used by (Ghorbani and Zou, 2019)1 computes the relative distances between the current values $v_i^t$ and the values at the previous checkpoint $v_i^{t-\tau}$. If the sum is below a given threshold, the computation is terminated. @@ -426,14 +469,15 @@ class HistoryDeviation(StoppingCriterion): pinned to that state. Once all indices have converged the method has converged. - .. warning:: - This criterion is meant for the reproduction of the results in the paper, - but we do not recommend using it in practice. + !!! Warning + This criterion is meant for the reproduction of the results in the paper, + but we do not recommend using it in practice. - :param n_steps: Checkpoint values every so many updates and use these saved - values to compare. - :param rtol: Relative tolerance for convergence ($\epsilon$ in the formula). - :param pin_converged: If ``True``, once an index has converged, it is pinned + Args: + n_steps: Checkpoint values every so many updates and use these saved + values to compare. + rtol: Relative tolerance for convergence ($\epsilon$ in the formula). + pin_converged: If `True`, once an index has converged, it is pinned """ _memory: NDArray[np.float_] diff --git a/tests/conftest.py b/tests/conftest.py index a1e7f2f59..2cf9de4f8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -6,7 +6,6 @@ import numpy as np import pytest -import ray from pymemcache.client import Client from sklearn import datasets from sklearn.utils import Bunch @@ -21,14 +20,7 @@ EXCEPTIONS_TYPE = Optional[Sequence[Type[BaseException]]] -@pytest.fixture(scope="session", autouse=True) -def ray_shutdown(): - yield - ray.shutdown() - - def is_memcache_responsive(hostname, port): - try: client = Client(server=(hostname, port)) client.flush_all() @@ -67,12 +59,24 @@ def seed(request): return 24 +@pytest.fixture() +def seed_alt(request): + return 42 + + +@pytest.fixture() +def collision_tol(request): + return 0.01 + + @pytest.fixture(autouse=True) def pytorch_seed(seed): try: import torch torch.manual_seed(seed) + # TODO if necessary extract this into a separate fixture + torch.use_deterministic_algorithms(True, warn_only=True) except ImportError: pass @@ -84,6 +88,7 @@ def do_not_start_memcache(request): @pytest.fixture(scope="session") def docker_services( + docker_compose_command, docker_compose_file, docker_compose_project_name, docker_setup, @@ -98,6 +103,7 @@ def docker_services( yield else: with get_docker_services( + docker_compose_command, docker_compose_file, docker_compose_project_name, docker_setup, @@ -129,7 +135,6 @@ def memcached_service(docker_ip, docker_services, do_not_start_memcache): @pytest.fixture(scope="function") def memcache_client_config(memcached_service) -> MemcachedClientConfig: - client_config = MemcachedClientConfig( server=memcached_service, connect_timeout=1.0, timeout=1, no_delay=True ) @@ -196,8 +201,8 @@ def num_workers(): # Run with 2 CPUs inside GitHub actions if os.getenv("CI"): return 2 - # And a maximum of 8 CPUs locally (most tests don't really benefit from more) - return max(1, min(available_cpus() - 1, 8)) + # And a maximum of 4 CPUs locally (most tests don't really benefit from more) + return max(1, min(available_cpus() - 1, 4)) @pytest.fixture diff --git a/tests/influence/conftest.py b/tests/influence/conftest.py index 0174cfa6a..ce13e9b32 100644 --- a/tests/influence/conftest.py +++ b/tests/influence/conftest.py @@ -1,14 +1,12 @@ -from typing import TYPE_CHECKING, Tuple +from typing import Tuple import numpy as np import pytest +from numpy.typing import NDArray from sklearn.preprocessing import MinMaxScaler from pydvl.utils import Dataset, random_matrix_with_condition_number -if TYPE_CHECKING: - from numpy.typing import NDArray - @pytest.fixture def input_dimension(request) -> int: @@ -35,36 +33,6 @@ def condition_number(request) -> float: return request.param -@pytest.fixture(scope="function") -def quadratic_linear_equation_system(quadratic_matrix: np.ndarray, batch_size: int): - A = quadratic_matrix - problem_dimension = A.shape[0] - b = np.random.random([batch_size, problem_dimension]) - return A, b - - -@pytest.fixture(scope="function") -def quadratic_matrix(problem_dimension: int, condition_number: float): - return random_matrix_with_condition_number(problem_dimension, condition_number) - - -@pytest.fixture(scope="function") -def singular_quadratic_linear_equation_system( - quadratic_matrix: np.ndarray, batch_size: int -): - A = quadratic_matrix - problem_dimension = A.shape[0] - i, j = tuple(np.random.choice(problem_dimension, replace=False, size=2)) - if j < i: - i, j = j, i - - v = (A[i] + A[j]) / 2 - A[i], A[j] = v, v - b = np.random.random([batch_size, problem_dimension]) - return A, b - - -@pytest.fixture(scope="function") def linear_model(problem_dimension: Tuple[int, int], condition_number: float): output_dimension, input_dimension = problem_dimension A = random_matrix_with_condition_number( @@ -75,14 +43,134 @@ def linear_model(problem_dimension: Tuple[int, int], condition_number: float): return A, b -def create_mock_dataset( - linear_model: Tuple["NDArray[np.float_]", "NDArray[np.float_]"], +def linear_derivative_analytical( + linear_model: Tuple[NDArray[np.float_], NDArray[np.float_]], + x: NDArray[np.float_], + y: NDArray[np.float_], +) -> NDArray[np.float_]: + """ + Given a linear model it returns the first order derivative wrt its parameters. + More precisely, given a couple of matrices $A(\theta)$ and $b(\theta')$, with + $\theta$, $\theta'$ representing their generic entry, it calculates the + derivative wrt. $\theta$ and $\theta'$ of the linear model with the + following quadratic loss: $L(x,y) = (Ax +b - y)^2$. + :param linear_model: A tuple of arrays representing the linear model. + :param x: array, input to the linear model + :param y: array, output of the linear model + :returns: An array where each row holds the derivative over $\theta$ of $L(x, y)]$ + """ + + A, b = linear_model + n, m = list(A.shape) + residuals = x @ A.T + b - y + kron_product = np.expand_dims(residuals, axis=2) * np.expand_dims(x, axis=1) + test_grads = np.reshape(kron_product, [-1, n * m]) + full_grads = np.concatenate((test_grads, residuals), axis=1) + return 2 * full_grads / n # type: ignore + + +def linear_hessian_analytical( + linear_model: Tuple[NDArray[np.float_], NDArray[np.float_]], + x: NDArray[np.float_], + lam: float = 0.0, +) -> NDArray[np.float_]: + """ + Given a linear model it returns the hessian wrt. its parameters. + More precisely, given a couple of matrices $A(\theta)$ and $b(\theta')$, with + $\theta$, $\theta'$ representing their generic entry, it calculates the + second derivative wrt. $\theta$ and $\theta'$ of the linear model with the + following quadratic loss: $L(x,y) = (Ax +b - y)^2$. + :param linear_model: A tuple of arrays representing the linear model. + :param x: array, input to the linear model + :param y: array, output of the linear model + :param lam: hessian regularization parameter + :returns: An matrix where each entry i,j holds the second derivatives over $\theta$ + of $L(x, y)$ + """ + A, b = linear_model + n, m = tuple(A.shape) + d2_theta = np.einsum("ia,ib->iab", x, x) + d2_theta = np.mean(d2_theta, axis=0) + d2_theta = np.kron(np.eye(n), d2_theta) + d2_b = np.eye(n) + mean_x = np.mean(x, axis=0, keepdims=True) + d_theta_d_b = np.kron(np.eye(n), mean_x) + top_matrix = np.concatenate((d2_theta, d_theta_d_b.T), axis=1) + bottom_matrix = np.concatenate((d_theta_d_b, d2_b), axis=1) + full_matrix = np.concatenate((top_matrix, bottom_matrix), axis=0) + return 2 * full_matrix / n + lam * np.identity(len(full_matrix)) # type: ignore + + +def linear_mixed_second_derivative_analytical( + linear_model: Tuple[NDArray[np.float_], NDArray[np.float_]], + x: NDArray[np.float_], + y: NDArray[np.float_], +) -> NDArray[np.float_]: + """ + Given a linear model it returns a second order partial derivative wrt its + parameters . + More precisely, given a couple of matrices $A(\theta)$ and $b(\theta')$, with + $\theta$, $\theta'$ representing their generic entry, it calculates the + second derivative wrt. $\theta$ and $\theta'$ of the linear model with the + following quadratic loss: $L(x,y) = (Ax +b - y)^2$. + :param linear_model: A tuple of arrays representing the linear model. + :param x: array, input to the linear model + :param y: array, output of the linear model + :returns: An matrix where each entry i,j holds the mixed second derivatives + over $\theta$ and $x$ of $L(x, y)$ + """ + + A, b = linear_model + N, M = tuple(A.shape) + residuals = x @ A.T + b - y + B = len(x) + outer_product_matrix = np.einsum("ab,ic->iacb", A, x) + outer_product_matrix = np.reshape(outer_product_matrix, [B, M * N, M]) + tiled_identity = np.tile(np.expand_dims(np.eye(M), axis=0), [B, N, 1]) + outer_product_matrix += tiled_identity * np.expand_dims( + np.repeat(residuals, M, axis=1), axis=2 + ) + b_part_derivative = np.tile(np.expand_dims(A, axis=0), [B, 1, 1]) + full_derivative = np.concatenate((outer_product_matrix, b_part_derivative), axis=1) + return 2 * full_derivative / N # type: ignore + + +def linear_analytical_influence_factors( + linear_model: Tuple[NDArray[np.float_], NDArray[np.float_]], + x: NDArray[np.float_], + y: NDArray[np.float_], + x_test: NDArray[np.float_], + y_test: NDArray[np.float_], + hessian_regularization: float = 0, +) -> NDArray[np.float_]: + """ + Given a linear model it calculates its influence factors. + :param linear_model: A tuple of arrays representing the linear model. + :param x: array, input to the linear model + :param y: array, output of the linear model + :returns: An array with analytical influence factors. + """ + test_grads_analytical = linear_derivative_analytical( + linear_model, + x_test, + y_test, + ) + hessian_analytical = linear_hessian_analytical( + linear_model, + x, + hessian_regularization, + ) + return np.linalg.solve(hessian_analytical, test_grads_analytical.T).T + + +def add_noise_to_linear_model( + linear_model: Tuple[NDArray[np.float_], NDArray[np.float_]], train_set_size: int, test_set_size: int, noise: float = 0.01, ) -> Tuple[ - Tuple["NDArray[np.float_]", "NDArray[np.float_]"], - Tuple["NDArray[np.float_]", "NDArray[np.float_]"], + Tuple[NDArray[np.float_], NDArray[np.float_]], + Tuple[NDArray[np.float_], NDArray[np.float_]], ]: A, b = linear_model o_d, i_d = tuple(A.shape) diff --git a/tests/influence/test_conjugate_gradients.py b/tests/influence/test_conjugate_gradients.py deleted file mode 100644 index 98eee58d8..000000000 --- a/tests/influence/test_conjugate_gradients.py +++ /dev/null @@ -1,110 +0,0 @@ -import itertools -from typing import List - -import numpy as np -import pytest - -from pydvl.influence.conjugate_gradient import ( - batched_preconditioned_conjugate_gradient, - conjugate_gradient_condition_number_based_error_bound, -) - - -class AlgorithmTestSettings: - A_NORM_TOL: float = 1e-4 - ACCEPTABLE_FAILED_PERC_A_NORM: float = 1e-2 - ACCEPTABLE_FAILED_PERC_BOUND: float = 1e-2 - BOUND_TOL: float = 1e-4 - CG_DAMPING: float = 1e-10 - - CG_TEST_CONDITION_NUMBERS: List[int] = [10] - CG_TEST_BATCH_SIZES: List[int] = [16, 32] - CG_TEST_DIMENSIONS: List[int] = [2, 20, 60, 100] - - -test_cases = list( - itertools.product( - AlgorithmTestSettings.CG_TEST_DIMENSIONS, - AlgorithmTestSettings.CG_TEST_BATCH_SIZES, - AlgorithmTestSettings.CG_TEST_CONDITION_NUMBERS, - ) -) - - -def lmb_test_case_to_str(packed_i_test_case): - i, test_case = packed_i_test_case - return f"Problem #{i} of dimension {test_case[0]} with batch size {test_case[1]} and condition number" - - -test_case_ids = list(map(lmb_test_case_to_str, zip(range(len(test_cases)), test_cases))) - - -@pytest.mark.parametrize( - "problem_dimension,batch_size,condition_number", - test_cases, - ids=test_case_ids, - indirect=True, -) -def test_conjugate_gradients_mvp(quadratic_linear_equation_system): - A, b = quadratic_linear_equation_system - x0 = np.zeros_like(b) - xn, n = batched_preconditioned_conjugate_gradient(A, b, x0=x0, rtol=10e-7) - check_solution(A, b, n, x0, xn) - - -@pytest.mark.parametrize( - "problem_dimension,batch_size,condition_number", - test_cases, - ids=test_case_ids, - indirect=True, -) -def test_conjugate_gradients_fn(quadratic_linear_equation_system): - A, b = quadratic_linear_equation_system - new_A = np.copy(A) - A = lambda v: v @ new_A.T - x0 = np.zeros_like(b) - xn, n = batched_preconditioned_conjugate_gradient(A, b, x0=x0, rtol=10e-7) - check_solution(new_A, b, n, x0, xn) - - -@pytest.mark.parametrize( - "problem_dimension,batch_size,condition_number", - test_cases, - ids=test_case_ids, - indirect=True, -) -def test_conjugate_gradients_mvp_preconditioned(quadratic_linear_equation_system): - A, b = quadratic_linear_equation_system - x0 = np.zeros_like(b) - xn, n = batched_preconditioned_conjugate_gradient(A, b, x0=x0, rtol=10e-7) - check_solution(A, b, n, x0, xn) - - -def check_solution(A, b, n, x0, xn): - """ - Uses standard inversion techniques to verify the solution of the problem. It checks: - - - That the solution is not nan at all positions. - - The solution fulfills an error bound, which depends on A and the number of iterations. - - Only a certain percentage of the batch is allowed to be false. - """ - assert np.all(np.logical_not(np.isnan(xn))) - inv_A = np.linalg.pinv(A) - - xt = b @ inv_A.T - bound = conjugate_gradient_condition_number_based_error_bound(A, n, x0, xt) - norm_A = lambda v: np.sqrt(np.einsum("ia,ab,ib->i", v, A, v)) - assert np.all(np.logical_not(np.isnan(xn))) - - error = norm_A(xt - xn) - failed = error > bound + AlgorithmTestSettings.BOUND_TOL - realized_failed_percentage = np.sum(failed) / len(failed) - assert ( - realized_failed_percentage < AlgorithmTestSettings.ACCEPTABLE_FAILED_PERC_BOUND - ) - - failed = error > AlgorithmTestSettings.A_NORM_TOL - realized_failed_percentage = np.sum(failed) / len(failed) - assert ( - realized_failed_percentage < AlgorithmTestSettings.ACCEPTABLE_FAILED_PERC_A_NORM - ) diff --git a/tests/influence/test_influences.py b/tests/influence/test_influences.py index 932ec8c86..ca953f43e 100644 --- a/tests/influence/test_influences.py +++ b/tests/influence/test_influences.py @@ -1,338 +1,487 @@ -import itertools -from typing import List, Tuple +from dataclasses import dataclass +from typing import Callable, Dict, Tuple import numpy as np import pytest -from .conftest import create_mock_dataset - -try: - import torch.nn.functional as F - from torch.optim import Adam, lr_scheduler - - from pydvl.influence.general import compute_influences - from pydvl.influence.linear import ( - compute_linear_influences, - influences_perturbation_linear_regression_analytical, - influences_up_linear_regression_analytical, - ) - from pydvl.influence.model_wrappers import TorchLinearRegression, TorchMLP - from pydvl.utils.dataset import load_wine_dataset -except ImportError: - pass - - -class InfluenceTestSettings: - DATA_OUTPUT_NOISE: float = 0.01 - ACCEPTABLE_ABS_TOL_INFLUENCE: float = 5e-4 - ACCEPTABLE_ABS_TOL_INFLUENCE_CG: float = 1e-3 - - INFLUENCE_TEST_CONDITION_NUMBERS: List[int] = [5] - INFLUENCE_TRAINING_SET_SIZE: List[int] = [500] - INFLUENCE_TEST_SET_SIZE: List[int] = [20] - INFLUENCE_N_JOBS: List[int] = [1] - INFLUENCE_DIMENSIONS: List[Tuple[int, int]] = [ - (10, 10), - (20, 10), - (3, 20), - (20, 20), - ] - - -test_cases = list( - itertools.product( - InfluenceTestSettings.INFLUENCE_TRAINING_SET_SIZE, - InfluenceTestSettings.INFLUENCE_TEST_SET_SIZE, - InfluenceTestSettings.INFLUENCE_DIMENSIONS, - InfluenceTestSettings.INFLUENCE_TEST_CONDITION_NUMBERS, - InfluenceTestSettings.INFLUENCE_N_JOBS, - ) +torch = pytest.importorskip("torch") +import torch +import torch.nn.functional as F +from numpy.typing import NDArray +from torch import nn +from torch.optim import LBFGS +from torch.utils.data import DataLoader, TensorDataset + +from pydvl.influence import InfluenceType, InversionMethod, compute_influences +from pydvl.influence.torch import TorchTwiceDifferentiable, model_hessian_low_rank + +from .conftest import ( + add_noise_to_linear_model, + linear_analytical_influence_factors, + linear_derivative_analytical, + linear_mixed_second_derivative_analytical, + linear_model, ) -def lmb_test_case_to_str(packed_i_test_case): - i, test_case = packed_i_test_case - return ( - f"Problem #{i} of dimension {test_case[2]} with train size {test_case[0]}, " - f"test size {test_case[1]}, condition number {test_case[3]} and {test_case[4]} jobs." +def analytical_linear_influences( + linear_model: Tuple[NDArray[np.float_], NDArray[np.float_]], + x: NDArray[np.float_], + y: NDArray[np.float_], + x_test: NDArray[np.float_], + y_test: NDArray[np.float_], + influence_type: InfluenceType = InfluenceType.Up, + hessian_regularization: float = 0, +): + """Calculates analytically the influence of each training sample on the + test samples for an ordinary least squares model (Ax+b=y with quadratic + loss). + + :param linear_model: A tuple of arrays of shapes (N, M) and N representing A + and b respectively. + :param x: An array of shape (M, K) containing the features of the + training set. + :param y: An array of shape (M, L) containing the targets of the + training set. + :param x_test: An array of shape (N, K) containing the features of the test + set. + :param y_test: An array of shape (N, L) containing the targets of the test + set. + :param influence_type: the type of the influence. + :param hessian_regularization: regularization value for the hessian + :returns: An array of shape (B, C) with the influences of the training points + on the test points if influence_type is "up", an array of shape (K, L, + M) if influence_type is "perturbation". + """ + + s_test_analytical = linear_analytical_influence_factors( + linear_model, x, y, x_test, y_test, hessian_regularization ) - - -test_case_ids = list(map(lmb_test_case_to_str, zip(range(len(test_cases)), test_cases))) + if influence_type == InfluenceType.Up: + train_grads_analytical = linear_derivative_analytical( + linear_model, + x, + y, + ) + result: NDArray = np.einsum( + "ia,ja->ij", s_test_analytical, train_grads_analytical + ) + elif influence_type == InfluenceType.Perturbation: + train_second_deriv_analytical = linear_mixed_second_derivative_analytical( + linear_model, + x, + y, + ) + result: NDArray = np.einsum( + "ia,jab->ijb", s_test_analytical, train_second_deriv_analytical + ) + return result @pytest.mark.torch @pytest.mark.parametrize( - "train_set_size,test_set_size,problem_dimension,condition_number,n_jobs", - test_cases, - ids=test_case_ids, + "influence_type", + InfluenceType, + ids=[ifl.value for ifl in InfluenceType], +) +@pytest.mark.parametrize( + "train_set_size", + [200], + ids=["train_set_size_200"], ) -def test_upweighting_influences_lr_analytical_cg( +@pytest.mark.parametrize( + "inversion_method, inversion_method_kwargs, rtol", + [ + [InversionMethod.Direct, {}, 1e-7], + [InversionMethod.Cg, {}, 1e-1], + [InversionMethod.Lissa, {"maxiter": 6000, "scale": 100}, 0.3], + ], + ids=[inv.value for inv in InversionMethod if inv is not InversionMethod.Arnoldi], +) +def test_influence_linear_model( + influence_type: InfluenceType, + inversion_method: InversionMethod, + inversion_method_kwargs: Dict, + rtol: float, train_set_size: int, - test_set_size: int, - condition_number: float, - linear_model: Tuple[np.ndarray, np.ndarray], - n_jobs: int, + hessian_reg: float = 0.1, + test_set_size: int = 20, + problem_dimension: Tuple[int, int] = (4, 20), + condition_number: float = 2, ): - A, _ = linear_model - train_data, test_data = create_mock_dataset( - linear_model, train_set_size, test_set_size + + A, b = linear_model(problem_dimension, condition_number) + train_data, test_data = add_noise_to_linear_model( + (A, b), train_set_size, test_set_size ) - model = TorchLinearRegression(A.shape[0], A.shape[1], init=linear_model) + linear_layer = nn.Linear(A.shape[0], A.shape[1]) + linear_layer.eval() + linear_layer.weight.data = torch.as_tensor(A) + linear_layer.bias.data = torch.as_tensor(b) loss = F.mse_loss - influence_values_analytical = 2 * influences_up_linear_regression_analytical( - linear_model, + analytical_influences = analytical_linear_influences( + (A, b), *train_data, *test_data, + influence_type=influence_type, + hessian_regularization=hessian_reg, + ) + + train_data_loader = DataLoader(list(zip(*train_data)), batch_size=40, shuffle=True) + input_data = DataLoader(list(zip(*train_data)), batch_size=40) + test_data_loader = DataLoader( + list(zip(*test_data)), + batch_size=40, ) influence_values = compute_influences( - model, - loss, - *train_data, - *test_data, + TorchTwiceDifferentiable(linear_layer, loss), + training_data=train_data_loader, + test_data=test_data_loader, + input_data=input_data, progress=True, - influence_type="up", - inversion_method="cg", - inversion_method_kwargs={"rtol": 10e-7}, - ) + influence_type=influence_type, + inversion_method=inversion_method, + hessian_regularization=hessian_reg, + **inversion_method_kwargs, + ).numpy() + assert np.logical_not(np.any(np.isnan(influence_values))) - assert influence_values.shape == (len(test_data[0]), len(train_data[0])) - influences_max_abs_diff = np.max( - np.abs(influence_values - influence_values_analytical) + abs_influence = np.abs(influence_values) + upper_quantile_mask = abs_influence > np.quantile(abs_influence, 0.9) + assert np.allclose( + influence_values[upper_quantile_mask], + analytical_influences[upper_quantile_mask], + rtol=rtol, ) - assert ( - influences_max_abs_diff < InfluenceTestSettings.ACCEPTABLE_ABS_TOL_INFLUENCE_CG - ), "Upweighting influence values were wrong." -@pytest.mark.torch -@pytest.mark.parametrize( - "train_set_size,test_set_size,problem_dimension,condition_number,n_jobs", - test_cases, - ids=test_case_ids, -) -def test_upweighting_influences_lr_analytical( - train_set_size: int, - test_set_size: int, - condition_number: float, - linear_model: Tuple[np.ndarray, np.ndarray], - n_jobs: int, -): - - A, _ = tuple(linear_model) - train_data, test_data = create_mock_dataset( - linear_model, train_set_size, test_set_size +def create_conv3d_nn(): + return nn.Sequential( + nn.Conv3d(in_channels=5, out_channels=3, kernel_size=2), + nn.Flatten(), + nn.Linear(24, 3), ) - model = TorchLinearRegression(A.shape[0], A.shape[1], init=linear_model) - loss = F.mse_loss - influence_values_analytical = 2 * influences_up_linear_regression_analytical( - linear_model, - *train_data, - *test_data, +def create_conv2d_nn(): + return nn.Sequential( + nn.Conv2d(in_channels=5, out_channels=3, kernel_size=3), + nn.Flatten(), + nn.Linear(27, 3), ) - influence_values = compute_influences( - model, - loss, - *train_data, - *test_data, - progress=True, - influence_type="up", - ) - assert np.logical_not(np.any(np.isnan(influence_values))) - assert influence_values.shape == (len(test_data[0]), len(train_data[0])) - influences_max_abs_diff = np.max( - np.abs(influence_values - influence_values_analytical) + +def create_conv1d_nn(): + return nn.Sequential( + nn.Conv1d(in_channels=5, out_channels=3, kernel_size=2), + nn.Flatten(), + nn.Linear(6, 3), ) - assert ( - influences_max_abs_diff < InfluenceTestSettings.ACCEPTABLE_ABS_TOL_INFLUENCE - ), "Upweighting influence values were wrong." + + +def create_simple_nn_regr(): + return nn.Sequential(nn.Linear(10, 10), nn.Linear(10, 3), nn.Linear(3, 1)) + + +@dataclass +class TestCase: + case_id: str + module_factory: Callable[[], nn.Module] + input_dim: Tuple[int, ...] + output_dim: int + loss: nn.modules.loss._Loss + influence_type: InfluenceType + + +@pytest.fixture +def test_case(request): + return request.param + + +test_cases = [ + TestCase( + case_id="conv3d_nn_up", + module_factory=create_conv3d_nn, + input_dim=(5, 3, 3, 3), + output_dim=3, + loss=nn.MSELoss(), + influence_type=InfluenceType.Up, + ), + TestCase( + case_id="conv3d_nn_pert", + module_factory=create_conv3d_nn, + input_dim=(5, 3, 3, 3), + output_dim=3, + loss=nn.SmoothL1Loss(), + influence_type=InfluenceType.Perturbation, + ), + TestCase( + case_id="conv2d_nn_up", + module_factory=create_conv2d_nn, + input_dim=(5, 5, 5), + output_dim=3, + loss=nn.MSELoss(), + influence_type=InfluenceType.Up, + ), + TestCase( + case_id="conv2d_nn_pert", + module_factory=create_conv2d_nn, + input_dim=(5, 5, 5), + output_dim=3, + loss=nn.SmoothL1Loss(), + influence_type=InfluenceType.Perturbation, + ), + TestCase( + case_id="conv1d_nn_up", + module_factory=create_conv1d_nn, + input_dim=(5, 3), + output_dim=3, + loss=nn.MSELoss(), + influence_type=InfluenceType.Up, + ), + TestCase( + case_id="conv1d_nn_pert", + module_factory=create_conv1d_nn, + input_dim=(5, 3), + output_dim=3, + loss=nn.SmoothL1Loss(), + influence_type=InfluenceType.Perturbation, + ), + TestCase( + case_id="simple_nn_up", + module_factory=create_simple_nn_regr, + input_dim=(10,), + output_dim=1, + loss=nn.MSELoss(), + influence_type=InfluenceType.Up, + ), + TestCase( + case_id="simple_nn_pert", + module_factory=create_simple_nn_regr, + input_dim=(10,), + output_dim=1, + loss=nn.SmoothL1Loss(), + influence_type=InfluenceType.Perturbation, + ), +] + + +def create_random_data_loader( + input_dim: Tuple[int], + output_dim: int, + data_len: int, + batch_size: int = 1, +) -> DataLoader: + """ + Creates DataLoader instances with random data for testing purposes. + + :param input_dim: The dimensions of the input data. + :param output_dim: The dimension of the output data. + :param data_len: The length of the training dataset to be generated. + :param batch_size: The size of the batches to be used in the DataLoader. + + :return: DataLoader instances for data. + """ + x = torch.rand((data_len, *input_dim)) + y = torch.rand((data_len, output_dim)) + + return DataLoader(TensorDataset(x, y), batch_size=batch_size) @pytest.mark.torch @pytest.mark.parametrize( - "train_set_size,test_set_size,problem_dimension,condition_number,n_jobs", + "inversion_method,inversion_method_kwargs", + [ + ("cg", {}), + ( + "lissa", + { + "maxiter": 150, + "scale": 10000, + }, + ), + ], +) +@pytest.mark.parametrize( + "test_case", test_cases, - ids=test_case_ids, + ids=[case.case_id for case in test_cases], + indirect=["test_case"], ) -def test_perturbation_influences_lr_analytical_cg( - train_set_size: int, - test_set_size: int, - problem_dimension: int, - condition_number: float, - linear_model: Tuple[np.ndarray, np.ndarray], - n_jobs: int, +def test_influences_nn( + test_case: TestCase, + inversion_method: InversionMethod, + inversion_method_kwargs: Dict, + data_len: int = 20, + hessian_reg: float = 1e3, + test_data_len: int = 10, + batch_size: int = 10, ): - train_data, test_data = create_mock_dataset( - linear_model, train_set_size, test_set_size + module_factory = test_case.module_factory + input_dim = test_case.input_dim + output_dim = test_case.output_dim + loss = test_case.loss + influence_type = test_case.influence_type + + train_data_loader = create_random_data_loader( + input_dim, output_dim, data_len, batch_size + ) + test_data_loader = create_random_data_loader( + input_dim, output_dim, test_data_len, batch_size ) - A, _ = linear_model - model = TorchLinearRegression(A.shape[0], A.shape[1], init=linear_model) - loss = F.mse_loss + model = module_factory() + model.eval() + model = TorchTwiceDifferentiable(model, loss) - influence_values_analytical = ( - 2 - * influences_perturbation_linear_regression_analytical( - linear_model, - *train_data, - *test_data, - ) - ) - influence_values = compute_influences( + direct_influence = compute_influences( model, - loss, - *train_data, - *test_data, + training_data=train_data_loader, + test_data=test_data_loader, progress=True, - influence_type="perturbation", - inversion_method="cg", - inversion_method_kwargs={"rtol": 10e-7}, - ) - assert np.logical_not(np.any(np.isnan(influence_values))) - assert influence_values.shape == ( - len(test_data[0]), - len(train_data[0]), - A.shape[1], - ) - influences_max_abs_diff = np.max( - np.abs(influence_values - influence_values_analytical) + influence_type=influence_type, + inversion_method=InversionMethod.Direct, + hessian_regularization=hessian_reg, ) - assert ( - influences_max_abs_diff < InfluenceTestSettings.ACCEPTABLE_ABS_TOL_INFLUENCE - ), "Perturbation influence values were wrong." + + approx_influences = compute_influences( + model, + training_data=train_data_loader, + test_data=test_data_loader, + progress=True, + influence_type=influence_type, + inversion_method=inversion_method, + hessian_regularization=hessian_reg, + **inversion_method_kwargs, + ).numpy() + assert not np.any(np.isnan(approx_influences)) + + assert np.allclose(approx_influences, direct_influence, rtol=1e-1) + + if influence_type == InfluenceType.Up: + assert approx_influences.shape == (test_data_len, data_len) + + if influence_type == InfluenceType.Perturbation: + assert approx_influences.shape == (test_data_len, data_len, *input_dim) + + # check that influences are not all constant + assert not np.all(approx_influences == approx_influences.item(0)) + + +def minimal_training( + model: torch.nn.Module, + dataloader: DataLoader, + loss_function: torch.nn.modules.loss._Loss, + lr=0.01, + epochs=50, +): + """ + Trains a PyTorch model using L-BFGS optimizer. + + :param model: The PyTorch model to be trained. + :param dataloader: DataLoader providing the training data. + :param loss_function: The loss function to be used for training. + :param lr: The learning rate for the L-BFGS optimizer. Defaults to 0.01. + :param epochs: The number of training epochs. Defaults to 50. + + :return: The trained model. + """ + model = model.train() + optimizer = LBFGS(model.parameters(), lr=lr) + + for epoch in range(epochs): + data = torch.cat([inputs for inputs, targets in dataloader]) + targets = torch.cat([targets for inputs, targets in dataloader]) + + def closure(): + optimizer.zero_grad() + outputs = model(data) + loss = loss_function(outputs, targets) + loss.backward() + return loss + + optimizer.step(closure) + + return model @pytest.mark.torch @pytest.mark.parametrize( - "train_set_size,test_set_size,problem_dimension,condition_number,n_jobs", + "test_case", test_cases, - ids=test_case_ids, + ids=[case.case_id for case in test_cases], + indirect=["test_case"], ) -def test_perturbation_influences_lr_analytical( - train_set_size: int, - test_set_size: int, - problem_dimension: int, - condition_number: float, - linear_model: Tuple[np.ndarray, np.ndarray], - n_jobs: int, +def test_influences_arnoldi( + test_case: TestCase, + data_len: int = 20, + hessian_reg: float = 20.0, + test_data_len: int = 10, ): - train_data, test_data = create_mock_dataset( - linear_model, train_set_size, test_set_size + module_factory = test_case.module_factory + input_dim = test_case.input_dim + output_dim = test_case.output_dim + loss = test_case.loss + influence_type = test_case.influence_type + + train_data_loader = create_random_data_loader(input_dim, output_dim, data_len) + test_data_loader = create_random_data_loader(input_dim, output_dim, test_data_len) + + nn_architecture = module_factory() + nn_architecture = minimal_training( + nn_architecture, train_data_loader, loss, lr=0.3, epochs=100 ) - A, _ = linear_model + nn_architecture = nn_architecture.eval() - model = TorchLinearRegression(A.shape[0], A.shape[1], init=linear_model) - loss = F.mse_loss + model = TorchTwiceDifferentiable(nn_architecture, loss) - influence_values_analytical = ( - 2 - * influences_perturbation_linear_regression_analytical( - linear_model, - *train_data, - *test_data, - ) - ) - influence_values = compute_influences( + direct_influence = compute_influences( model, - loss, - *train_data, - *test_data, + training_data=train_data_loader, + test_data=test_data_loader, progress=True, - influence_type="perturbation", + influence_type=influence_type, + inversion_method=InversionMethod.Direct, + hessian_regularization=hessian_reg, ) - assert np.logical_not(np.any(np.isnan(influence_values))) - assert influence_values.shape == ( - len(test_data[0]), - len(train_data[0]), - A.shape[1], - ) - influences_max_abs_diff = np.max( - np.abs(influence_values - influence_values_analytical) - ) - assert ( - influences_max_abs_diff < InfluenceTestSettings.ACCEPTABLE_ABS_TOL_INFLUENCE - ), "Perturbation influence values were wrong." - -@pytest.mark.torch -@pytest.mark.parametrize( - "train_set_size,test_set_size,problem_dimension,condition_number", - itertools.product( - InfluenceTestSettings.INFLUENCE_TRAINING_SET_SIZE, - InfluenceTestSettings.INFLUENCE_TEST_SET_SIZE, - InfluenceTestSettings.INFLUENCE_DIMENSIONS, - InfluenceTestSettings.INFLUENCE_TEST_CONDITION_NUMBERS, - ), -) -def test_linear_influences_up_perturbations_analytical( - train_set_size: int, - test_set_size: int, - problem_dimension: int, - condition_number: float, - linear_model: Tuple[np.ndarray, np.ndarray], -): - train_data, test_data = create_mock_dataset( - linear_model, train_set_size, test_set_size - ) - up_influences = compute_linear_influences( - *train_data, - *test_data, - influence_type="up", + num_parameters = sum( + p.numel() for p in nn_architecture.parameters() if p.requires_grad ) - assert np.logical_not(np.any(np.isnan(up_influences))) - assert up_influences.shape == (len(test_data[0]), len(train_data[0])) - pert_influences = compute_linear_influences( - *train_data, - *test_data, - influence_type="perturbation", - ) - assert np.logical_not(np.any(np.isnan(pert_influences))) - assert pert_influences.shape == ( - len(test_data[0]), - len(train_data[0]), - train_data[0].shape[1], + low_rank_influence = compute_influences( + model, + training_data=train_data_loader, + test_data=test_data_loader, + progress=True, + influence_type=influence_type, + inversion_method=InversionMethod.Arnoldi, + hessian_regularization=hessian_reg, + # as the hessian of the small shallow networks is in general not low rank, so for these test cases, we choose + # the rank estimate as high as possible + rank_estimate=num_parameters - 1, ) + assert np.allclose(direct_influence, low_rank_influence, rtol=1e-1) -@pytest.mark.torch -def test_influences_with_neural_network_explicit_hessian(): - train_ds, val_ds, test_ds, feature_names = load_wine_dataset( - train_size=0.3, test_size=0.6 - ) - feature_dimension = train_ds[0].shape[1] - unique_classes = np.unique(np.concatenate((train_ds[1], test_ds[1]))) - num_classes = len(unique_classes) - num_epochs = 300 - network_size = [16, 16] - nn = TorchMLP(feature_dimension, num_classes, network_size) - optimizer = Adam(params=nn.parameters(), lr=0.001, weight_decay=0.001) - loss = F.cross_entropy - nn.fit( - *train_ds, - *test_ds, - num_epochs=num_epochs, - batch_size=32, - loss=loss, - optimizer=optimizer, - scheduler=lr_scheduler.CosineAnnealingLR(optimizer, T_max=num_epochs), + precomputed_low_rank = model_hessian_low_rank( + model, + training_data=train_data_loader, + hessian_perturbation=hessian_reg, + rank_estimate=num_parameters - 1, ) - model = nn - loss = loss - - train_influences = compute_influences( + precomputed_low_rank_influence = compute_influences( model, - loss, - *train_ds, - *test_ds, - inversion_method="direct", + training_data=train_data_loader, + test_data=test_data_loader, + progress=True, + influence_type=influence_type, + inversion_method=InversionMethod.Arnoldi, + low_rank_representation=precomputed_low_rank, ) - assert np.all(np.logical_not(np.isnan(train_influences))) + assert np.allclose(direct_influence, precomputed_low_rank_influence, rtol=1e-1) diff --git a/tests/influence/test_models.py b/tests/influence/test_models.py deleted file mode 100644 index d4d855c07..000000000 --- a/tests/influence/test_models.py +++ /dev/null @@ -1,221 +0,0 @@ -""" -Contains tests for LinearRegression, BinaryLogisticRegression as well as TwiceDifferentiable modules and -its associated gradient and matrix vector product calculations. Note that there is no test for the neural network -module. -""" - -import itertools -from typing import List, Tuple - -import numpy as np -import pytest - -from pydvl.utils import ( - linear_regression_analytical_derivative_d2_theta, - linear_regression_analytical_derivative_d_theta, - linear_regression_analytical_derivative_d_x_d_theta, -) - -try: - import torch.nn.functional as F - - from pydvl.influence.frameworks import TorchTwiceDifferentiable - from pydvl.influence.model_wrappers import TorchLinearRegression -except ImportError: - pass - - -class ModelTestSettings: - DATA_OUTPUT_NOISE: float = 0.01 - ACCEPTABLE_ABS_TOL_MODEL: float = ( - 0.04 # TODO: Reduce bound if tests are running with fixed seeds. - ) - ACCEPTABLE_ABS_TOL_DERIVATIVE: float = 1e-5 - - TEST_CONDITION_NUMBERS: List[int] = [5] - TEST_SET_SIZE: List[int] = [20] - TRAINING_SET_SIZE: List[int] = [500] - PROBLEM_DIMENSIONS: List[Tuple[int, int]] = [ - (2, 2), - (5, 10), - (10, 5), - (10, 10), - ] - - -test_cases_linear_regression_fit = list( - itertools.product( - ModelTestSettings.TRAINING_SET_SIZE, - ModelTestSettings.TEST_SET_SIZE, - ModelTestSettings.PROBLEM_DIMENSIONS, - ModelTestSettings.TEST_CONDITION_NUMBERS, - ) -) - -test_cases_logistic_regression_fit = list( - itertools.product( - ModelTestSettings.TRAINING_SET_SIZE, - ModelTestSettings.TEST_SET_SIZE, - [(1, 3), (1, 7), (1, 20)], - ModelTestSettings.TEST_CONDITION_NUMBERS, - ) -) - -test_cases_linear_regression_derivatives = list( - itertools.product( - ModelTestSettings.TRAINING_SET_SIZE, - ModelTestSettings.PROBLEM_DIMENSIONS, - ModelTestSettings.TEST_CONDITION_NUMBERS, - ) -) - - -def lmb_fit_test_case_to_str(packed_i_test_case): - i, test_case = packed_i_test_case - return f"Problem #{i} of dimension {test_case[2]} with train size {test_case[0]}, test size {test_case[1]} and condition number {test_case[3]}" - - -def lmb_correctness_test_case_to_str(packed_i_test_case): - i, test_case = packed_i_test_case - return f"Problem #{i} of dimension {test_case[1]} with train size {test_case[0]} and condition number {test_case[2]}" - - -fit_test_case_ids = list( - map( - lmb_fit_test_case_to_str, - zip( - range(len(test_cases_linear_regression_fit)), - test_cases_linear_regression_fit, - ), - ) -) -correctness_test_case_ids = list( - map( - lmb_correctness_test_case_to_str, - zip( - range(len(test_cases_linear_regression_derivatives)), - test_cases_linear_regression_derivatives, - ), - ) -) - - -@pytest.mark.torch -@pytest.mark.parametrize( - "train_set_size,problem_dimension,condition_number", - test_cases_linear_regression_derivatives, - ids=correctness_test_case_ids, -) -def test_linear_regression_model_grad( - train_set_size: int, - condition_number: float, - linear_model: Tuple[np.ndarray, np.ndarray], -): - # some settings - A, b = linear_model - output_dimension, input_dimension = tuple(A.shape) - - # generate datasets - data_model = lambda x: np.random.normal( - x @ A.T + b, ModelTestSettings.DATA_OUTPUT_NOISE - ) - train_x = np.random.uniform(size=[train_set_size, input_dimension]) - train_y = data_model(train_x) - - model = TorchLinearRegression(input_dimension, output_dimension, init=linear_model) - loss = F.mse_loss - mvp_model = TorchTwiceDifferentiable(model=model, loss=loss) - - train_grads_analytical = 2 * linear_regression_analytical_derivative_d_theta( - (A, b), train_x, train_y - ) - train_grads_autograd = mvp_model.split_grad(train_x, train_y) - train_grads_max_diff = np.max(np.abs(train_grads_analytical - train_grads_autograd)) - assert ( - train_grads_max_diff < ModelTestSettings.ACCEPTABLE_ABS_TOL_DERIVATIVE - ), "training set produces wrong gradients." - - -@pytest.mark.torch -@pytest.mark.parametrize( - "train_set_size,problem_dimension,condition_number", - test_cases_linear_regression_derivatives, - ids=correctness_test_case_ids, -) -def test_linear_regression_model_hessian( - train_set_size: int, - condition_number: float, - linear_model: Tuple[np.ndarray, np.ndarray], -): - # some settings - A, b = linear_model - output_dimension, input_dimension = tuple(A.shape) - - # generate datasets - data_model = lambda x: np.random.normal( - x @ A.T + b, ModelTestSettings.DATA_OUTPUT_NOISE - ) - train_x = np.random.uniform(size=[train_set_size, input_dimension]) - train_y = data_model(train_x) - model = TorchLinearRegression(input_dimension, output_dimension, init=linear_model) - loss = F.mse_loss - mvp_model = TorchTwiceDifferentiable(model=model, loss=loss) - - test_hessian_analytical = 2 * linear_regression_analytical_derivative_d2_theta( - (A, b), train_x, train_y - ) - grad_xy, _ = mvp_model.grad(train_x, train_y) - estimated_hessian = mvp_model.mvp( - grad_xy, np.eye((input_dimension + 1) * output_dimension) - ) - test_hessian_max_diff = np.max(np.abs(test_hessian_analytical - estimated_hessian)) - assert ( - test_hessian_max_diff < ModelTestSettings.ACCEPTABLE_ABS_TOL_DERIVATIVE - ), "Hessian was wrong." - - -@pytest.mark.torch -@pytest.mark.parametrize( - "train_set_size,problem_dimension,condition_number", - test_cases_linear_regression_derivatives, - ids=correctness_test_case_ids, -) -def test_linear_regression_model_d_x_d_theta( - train_set_size: int, - condition_number: float, - linear_model: Tuple[np.ndarray, np.ndarray], -): - # some settings - A, b = linear_model - output_dimension, input_dimension = tuple(A.shape) - - # generate datasets - data_model = lambda x: np.random.normal( - x @ A.T + b, ModelTestSettings.DATA_OUTPUT_NOISE - ) - train_x = np.random.uniform(size=[train_set_size, input_dimension]) - train_y = data_model(train_x) - model = TorchLinearRegression(input_dimension, output_dimension, init=(A, b)) - loss = F.mse_loss - mvp_model = TorchTwiceDifferentiable(model=model, loss=loss) - - test_derivative = 2 * linear_regression_analytical_derivative_d_x_d_theta( - (A, b), - train_x, - train_y, - ) - model_mvp = [] - for i in range(len(train_x)): - grad_xy, tensor_x = mvp_model.grad(train_x[i], train_y[i]) - model_mvp.append( - mvp_model.mvp( - grad_xy, - np.eye((input_dimension + 1) * output_dimension), - backprop_on=tensor_x, - ) - ) - estimated_derivative = np.stack(model_mvp, axis=0) - test_hessian_max_diff = np.max(np.abs(test_derivative - estimated_derivative)) - assert ( - test_hessian_max_diff < ModelTestSettings.ACCEPTABLE_ABS_TOL_DERIVATIVE - ), "Hessian was wrong." diff --git a/tests/influence/test_torch_differentiable.py b/tests/influence/test_torch_differentiable.py new file mode 100644 index 000000000..2747466a5 --- /dev/null +++ b/tests/influence/test_torch_differentiable.py @@ -0,0 +1,196 @@ +""" +Contains tests for LinearRegression, BinaryLogisticRegression as well as TwiceDifferentiable modules and +its associated gradient and matrix vector product calculations. Note that there is no test for the neural network +module. +""" + +import itertools +from typing import List, Tuple + +import numpy as np +import pytest + +from .conftest import ( + linear_derivative_analytical, + linear_hessian_analytical, + linear_mixed_second_derivative_analytical, + linear_model, +) + +torch = pytest.importorskip("torch") +import torch +import torch.nn.functional as F +from torch import nn +from torch.utils.data import DataLoader + +from pydvl.influence.torch import ( + TorchTwiceDifferentiable, + solve_batch_cg, + solve_linear, + solve_lissa, +) + +DATA_OUTPUT_NOISE: float = 0.01 + +PROBLEM_DIMENSIONS: List[Tuple[int, int]] = [ + (2, 2), + (5, 10), + (10, 5), + (10, 10), +] + + +def linear_mvp_model(A, b): + output_dimension, input_dimension = tuple(A.shape) + model = nn.Linear(input_dimension, output_dimension) + model.eval() + model.weight.data = torch.as_tensor(A) + model.bias.data = torch.as_tensor(b) + loss = F.mse_loss + return TorchTwiceDifferentiable(model=model, loss=loss) + + +@pytest.mark.torch +@pytest.mark.parametrize( + "problem_dimension", + PROBLEM_DIMENSIONS, + ids=[f"problem_dimension={dim}" for dim in PROBLEM_DIMENSIONS], +) +def test_linear_grad( + problem_dimension: Tuple[int, int], + train_set_size: int = 50, + condition_number: float = 5, +): + # some settings + A, b = linear_model(problem_dimension, condition_number) + _, input_dimension = tuple(A.shape) + + # generate datasets + data_model = lambda x: np.random.normal(x @ A.T + b, DATA_OUTPUT_NOISE) + train_x = np.random.uniform(size=[train_set_size, input_dimension]) + train_y = data_model(train_x) + + mvp_model = linear_mvp_model(A, b) + + train_grads_analytical = linear_derivative_analytical((A, b), train_x, train_y) + train_x = torch.as_tensor(train_x).unsqueeze(1) + train_y = torch.as_tensor(train_y) + + train_grads_autograd = torch.stack( + [mvp_model.grad(inpt, target) for inpt, target in zip(train_x, train_y)] + ) + + assert np.allclose(train_grads_analytical, train_grads_autograd, rtol=1e-5) + + +@pytest.mark.torch +@pytest.mark.parametrize( + "problem_dimension", + PROBLEM_DIMENSIONS, + ids=[f"problem_dimension={dim}" for dim in PROBLEM_DIMENSIONS], +) +def test_linear_hessian( + problem_dimension: Tuple[int, int], + train_set_size: int = 50, + condition_number: float = 5, +): + # some settings + A, b = linear_model(problem_dimension, condition_number) + output_dimension, input_dimension = tuple(A.shape) + + # generate datasets + data_model = lambda x: np.random.normal(x @ A.T + b, DATA_OUTPUT_NOISE) + train_x = np.random.uniform(size=[train_set_size, input_dimension]) + train_y = data_model(train_x) + mvp_model = linear_mvp_model(A, b) + + test_hessian_analytical = linear_hessian_analytical((A, b), train_x) + grad_xy = mvp_model.grad( + torch.as_tensor(train_x), torch.as_tensor(train_y), create_graph=True + ) + estimated_hessian = mvp_model.mvp( + grad_xy, + torch.as_tensor(np.eye((input_dimension + 1) * output_dimension)), + mvp_model.parameters, + ) + assert np.allclose(test_hessian_analytical, estimated_hessian, rtol=1e-5) + + +@pytest.mark.torch +@pytest.mark.parametrize( + "problem_dimension", + PROBLEM_DIMENSIONS, + ids=[f"problem_dimension={dim}" for dim in PROBLEM_DIMENSIONS], +) +def test_linear_mixed_derivative( + problem_dimension: Tuple[int, int], + train_set_size: int = 50, + condition_number: float = 5, +): + # some settings + A, b = linear_model(problem_dimension, condition_number) + output_dimension, input_dimension = tuple(A.shape) + + # generate datasets + data_model = lambda x: np.random.normal(x @ A.T + b, DATA_OUTPUT_NOISE) + train_x = np.random.uniform(size=[train_set_size, input_dimension]) + train_y = data_model(train_x) + + mvp_model = linear_mvp_model(A, b) + + test_derivative = linear_mixed_second_derivative_analytical( + (A, b), + train_x, + train_y, + ) + model_mvp = [] + for i in range(len(train_x)): + tensor_x = torch.as_tensor(train_x[i]).requires_grad_(True) + tensor_y = torch.as_tensor(train_y[i]) + grad_xy = mvp_model.grad(tensor_x, tensor_y, create_graph=True) + model_mvp.append( + mvp_model.mvp( + grad_xy, + np.eye((input_dimension + 1) * output_dimension), + backprop_on=tensor_x, + ) + ) + estimated_derivative = np.stack(model_mvp, axis=0) + assert np.allclose(test_derivative, estimated_derivative, rtol=1e-7) + + +REDUCED_PROBLEM_DIMENSIONS: List[Tuple[int, int]] = [(5, 10), (2, 5)] + + +@pytest.mark.torch +@pytest.mark.parametrize( + "problem_dimension", + REDUCED_PROBLEM_DIMENSIONS, + ids=[f"problem_dimension={dim}" for dim in REDUCED_PROBLEM_DIMENSIONS], +) +def test_inversion_methods( + problem_dimension: Tuple[int, int], + train_set_size: int = 50, + condition_number: float = 5, +): + # some settings + A, b = linear_model(problem_dimension, condition_number) + output_dimension, input_dimension = tuple(A.shape) + + # generate datasets + data_model = lambda x: np.random.normal(x @ A.T + b, DATA_OUTPUT_NOISE) + train_x = np.random.uniform(size=[train_set_size, input_dimension]) + train_y = data_model(train_x) + mvp_model = linear_mvp_model(A, b) + + train_data_loader = DataLoader(list(zip(train_x, train_y)), batch_size=128) + b = torch.rand(size=(10, mvp_model.num_params), dtype=torch.float64) + + linear_inverse, _ = solve_linear(mvp_model, train_data_loader, b) + linear_cg, _ = solve_batch_cg(mvp_model, train_data_loader, b) + linear_lissa, _ = solve_lissa( + mvp_model, train_data_loader, b, maxiter=5000, scale=5 + ) + + assert np.allclose(linear_inverse, linear_cg, rtol=1e-1) + assert np.allclose(linear_inverse, linear_lissa, rtol=1e-1, atol=2e-1) diff --git a/tests/influence/test_util.py b/tests/influence/test_util.py new file mode 100644 index 000000000..b381426a9 --- /dev/null +++ b/tests/influence/test_util.py @@ -0,0 +1,226 @@ +from dataclasses import astuple, dataclass +from typing import Any, Dict, Tuple + +import pytest + +torch = pytest.importorskip("torch") +import torch.nn +from numpy.typing import NDArray +from torch.nn.functional import mse_loss +from torch.utils.data import DataLoader, TensorDataset + +from pydvl.influence.torch.functional import batch_loss_function, get_hvp_function, hvp +from pydvl.influence.torch.torch_differentiable import lanzcos_low_rank_hessian_approx +from pydvl.influence.torch.util import ( + TorchTensorContainerType, + align_structure, + flatten_tensors_to_vector, +) +from tests.influence.conftest import linear_hessian_analytical, linear_model + + +@dataclass +class ModelParams: + dimension: Tuple[int, int] + condition_number: float + train_size: int + + +@dataclass +class UtilTestParameters: + """ + Helper class to add more test parameter combinations + """ + + model_params: ModelParams + batch_size: int + rank_estimate: int + regularization: float + + +test_parameters = [ + UtilTestParameters( + ModelParams(dimension=(30, 16), condition_number=4, train_size=60), + batch_size=4, + rank_estimate=200, + regularization=0.0001, + ), + UtilTestParameters( + ModelParams(dimension=(32, 35), condition_number=1e6, train_size=100), + batch_size=5, + rank_estimate=70, + regularization=0.001, + ), + UtilTestParameters( + ModelParams(dimension=(25, 15), condition_number=1e3, train_size=90), + batch_size=10, + rank_estimate=50, + regularization=0.0001, + ), + UtilTestParameters( + ModelParams(dimension=(30, 15), condition_number=1e4, train_size=120), + batch_size=8, + rank_estimate=160, + regularization=0.00001, + ), + UtilTestParameters( + ModelParams(dimension=(40, 13), condition_number=1e5, train_size=900), + batch_size=4, + rank_estimate=250, + regularization=0.00001, + ), +] + + +def linear_torch_model_from_numpy(A: NDArray, b: NDArray) -> torch.nn.Module: + """ + Given numpy arrays representing the model $xA^t + b$, the function returns the corresponding torch model + :param A: + :param b: + :return: + """ + output_dimension, input_dimension = tuple(A.shape) + model = torch.nn.Linear(input_dimension, output_dimension) + model.eval() + model.weight.data = torch.as_tensor(A, dtype=torch.get_default_dtype()) + model.bias.data = torch.as_tensor(b, dtype=torch.get_default_dtype()) + return model + + +@pytest.fixture +def model_data(request): + dimension, condition_number, train_size = request.param + A, b = linear_model(dimension, condition_number) + x = torch.rand(train_size, dimension[-1]) + y = torch.rand(train_size, dimension[0]) + torch_model = linear_torch_model_from_numpy(A, b) + vec = flatten_tensors_to_vector( + tuple( + torch.rand(*p.shape) + for name, p in torch_model.named_parameters() + if p.requires_grad + ) + ) + H_analytical = linear_hessian_analytical((A, b), x.numpy()) + H_analytical = torch.as_tensor(H_analytical) + return torch_model, x, y, vec, H_analytical.to(torch.float32) + + +@pytest.mark.torch +@pytest.mark.parametrize( + "model_data, tol", + [(astuple(tp.model_params), 1e-5) for tp in test_parameters], + indirect=["model_data"], +) +def test_hvp(model_data, tol: float): + torch_model, x, y, vec, H_analytical = model_data + + params = dict(torch_model.named_parameters()) + + f = batch_loss_function(torch_model, torch.nn.functional.mse_loss, x, y) + + Hvp_autograd = hvp(f, params, align_structure(params, vec)) + + flat_Hvp_autograd = flatten_tensors_to_vector(Hvp_autograd.values()) + assert torch.allclose(flat_Hvp_autograd, H_analytical @ vec, rtol=tol) + + +@pytest.mark.torch +@pytest.mark.parametrize( + "use_avg, tol", [(True, 1e-5), (False, 1e-5)], ids=["avg", "full"] +) +@pytest.mark.parametrize( + "model_data, batch_size", + [(astuple(tp.model_params), tp.batch_size) for tp in test_parameters], + indirect=["model_data"], +) +def test_get_hvp_function(model_data, tol: float, use_avg: bool, batch_size: int): + torch_model, x, y, vec, H_analytical = model_data + data_loader = DataLoader(TensorDataset(x, y), batch_size=batch_size) + + Hvp_autograd = get_hvp_function( + torch_model, mse_loss, data_loader, use_hessian_avg=use_avg + )(vec) + + assert torch.allclose(Hvp_autograd, H_analytical @ vec, rtol=tol) + + +@pytest.mark.torch +@pytest.mark.parametrize( + "model_data, batch_size, rank_estimate, regularization", + [astuple(tp) for tp in test_parameters], + indirect=["model_data"], +) +def test_lanzcos_low_rank_hessian_approx( + model_data, batch_size: int, rank_estimate, regularization +): + _, _, _, vec, H_analytical = model_data + + reg_H_analytical = H_analytical + regularization * torch.eye(H_analytical.shape[0]) + low_rank_approx = lanzcos_low_rank_hessian_approx( + lambda z: reg_H_analytical @ z, + reg_H_analytical.shape, + rank_estimate=rank_estimate, + ) + approx_result = low_rank_approx.projections @ ( + torch.diag_embed(low_rank_approx.eigen_vals) + @ (low_rank_approx.projections.t() @ vec.t()) + ) + assert torch.allclose(approx_result, reg_H_analytical @ vec, rtol=1e-1) + + +@pytest.mark.torch +def test_lanzcos_low_rank_hessian_approx_exception(): + """ + In case cuda is not available, and cupy is not installed, the call should raise an import exception + """ + if not torch.cuda.is_available(): + with pytest.raises(ImportError): + lanzcos_low_rank_hessian_approx( + lambda x: x, (3, 3), eigen_computation_on_gpu=True + ) + + +@pytest.mark.parametrize( + "source,target", + [ + ( + {"a": torch.randn(5, 5), "b": torch.randn(5, 5)}, + {"a": torch.randn(5, 5), "b": torch.randn(5, 5)}, + ), + ( + {"a": torch.randn(5, 5), "b": torch.randn(5, 5)}, + (torch.randn(5, 5), torch.randn(5, 5)), + ), + ({"a": torch.randn(5, 5), "b": torch.randn(5, 5)}, torch.randn(50)), + ], +) +def test_align_structure_success( + source: Dict[str, torch.Tensor], target: TorchTensorContainerType +): + result = align_structure(source, target) + assert isinstance(result, dict) + assert list(result.keys()) == list(source.keys()) + assert all([result[k].shape == source[k].shape for k in source.keys()]) + + +@pytest.mark.parametrize( + "source,target", + [ + ( + {"a": torch.randn(5, 5), "b": torch.randn(5, 5)}, + {"a": torch.randn(5, 5), "b": torch.randn(3, 3)}, + ), + ( + {"a": torch.randn(5, 5), "b": torch.randn(5, 5)}, + {"c": torch.randn(5, 5), "d": torch.randn(5, 5)}, + ), + ( + {"a": torch.randn(5, 5), "b": torch.randn(5, 5)}, + "unsupported", + ), + ], +) +def test_align_structure_error(source: Dict[str, torch.Tensor], target: Any): + with pytest.raises(ValueError): + align_structure(source, target) diff --git a/tests/test_results.py b/tests/test_results.py index 50392aeaa..4ea80cf72 100644 --- a/tests/test_results.py +++ b/tests/test_results.py @@ -326,6 +326,18 @@ def test_adding_random(): ["a", "b", "c"], [0, 2, 3], ), + # Overlapping indices with different lengths, change order + ( + [1, 2], + ["b", "c"], + [3, 4], + [0, 1, 2], + ["a", "b", "c"], + [0, 1, 2], + [0, 1, 2], + ["a", "b", "c"], + [0, 2, 3], + ), ], ) def test_adding_different_indices( diff --git a/tests/utils/conftest.py b/tests/utils/conftest.py index df56a9583..923d391fb 100644 --- a/tests/utils/conftest.py +++ b/tests/utils/conftest.py @@ -1,18 +1,25 @@ import pytest -import ray -from ray.cluster_utils import Cluster from pydvl.utils.config import ParallelConfig -@pytest.fixture(scope="module", params=["sequential", "ray-local", "ray-external"]) +@pytest.fixture(scope="module", params=["joblib", "ray-local", "ray-external"]) def parallel_config(request, num_workers): - if request.param == "sequential": - yield ParallelConfig(backend=request.param) + if request.param == "joblib": + yield ParallelConfig(backend="joblib", n_cpus_local=num_workers) elif request.param == "ray-local": + try: + import ray + except ImportError: + pytest.skip("Ray not installed.") yield ParallelConfig(backend="ray", n_cpus_local=num_workers) ray.shutdown() elif request.param == "ray-external": + try: + import ray + from ray.cluster_utils import Cluster + except ImportError: + pytest.skip("Ray not installed.") # Starts a head-node for the cluster. cluster = Cluster( initialize_head=True, diff --git a/tests/utils/test_caching.py b/tests/utils/test_caching.py index b4f350fbf..aae0dd416 100644 --- a/tests/utils/test_caching.py +++ b/tests/utils/test_caching.py @@ -3,6 +3,7 @@ import numpy as np import pytest +from numpy.typing import NDArray from pydvl.utils import MapReduceJob, memcached @@ -13,7 +14,7 @@ def test_failed_connection(): from pydvl.utils import MemcachedClientConfig client_config = MemcachedClientConfig(server=("localhost", 0), connect_timeout=0.1) - with pytest.raises(ConnectionRefusedError): + with pytest.raises((ConnectionRefusedError, OSError)): memcached(client_config)(lambda x: x) @@ -22,7 +23,7 @@ def test_memcached_single_job(memcached_client): # TODO: maybe this should be a fixture too... @memcached(client_config=config, time_threshold=0) # Always cache results - def foo(indices: "NDArray[int]") -> float: + def foo(indices: NDArray[np.int_]) -> float: return float(np.sum(indices)) n = 1000 @@ -43,7 +44,7 @@ def test_memcached_parallel_jobs(memcached_client, parallel_config): # Note that we typically do NOT want to ignore run_id ignore_args=["job_id", "run_id"], ) - def foo(indices: "NDArray[int]", *args, **kwargs) -> float: + def foo(indices: NDArray[np.int_], *args, **kwargs) -> float: # logger.info(f"run_id: {run_id}, running...") return float(np.sum(indices)) @@ -79,7 +80,7 @@ def test_memcached_repeated_training(memcached_client): # Note that we typically do NOT want to ignore run_id ignore_args=["job_id", "run_id"], ) - def foo(indices: "NDArray[int]") -> float: + def foo(indices: NDArray[np.int_]) -> float: # from pydvl.utils.logging import logger # logger.info(f"run_id: {run_id}, running...") return float(np.sum(indices)) + np.random.normal(scale=10) @@ -104,13 +105,13 @@ def test_memcached_faster_with_repeated_training(memcached_client): # Note that we typically do NOT want to ignore run_id ignore_args=["job_id", "run_id"], ) - def foo_cache(indices: "NDArray[int]") -> float: + def foo_cache(indices: NDArray[np.int_]) -> float: # from pydvl.utils.logging import logger # logger.info(f"run_id: {run_id}, running...") sleep(0.01) return float(np.sum(indices)) + np.random.normal(scale=1) - def foo_no_cache(indices: "NDArray[int]") -> float: + def foo_no_cache(indices: NDArray[np.int_]) -> float: # from pydvl.utils.logging import logger # logger.info(f"run_id: {run_id}, running...") sleep(0.01) @@ -138,9 +139,9 @@ def foo_no_cache(indices: "NDArray[int]") -> float: assert fast_time < slow_time -@pytest.mark.parametrize("n, atol", [(10, 4), (20, 10)]) +@pytest.mark.parametrize("n, atol", [(10, 5), (20, 10)]) @pytest.mark.parametrize("n_jobs", [1, 2]) -@pytest.mark.parametrize("n_runs", [100]) +@pytest.mark.parametrize("n_runs", [20]) def test_memcached_parallel_repeated_training( memcached_client, n, atol, n_jobs, n_runs, parallel_config, seed=42 ): @@ -155,12 +156,12 @@ def test_memcached_parallel_repeated_training( # Note that we typically do NOT want to ignore run_id ignore_args=["job_id", "run_id"], ) - def map_func(indices: "NDArray[np.int_]") -> float: + def map_func(indices: NDArray[np.int_]) -> float: # from pydvl.utils.logging import logger # logger.info(f"run_id: {run_id}, running...") return np.sum(indices).item() + np.random.normal(scale=5) - def reduce_func(chunks: "NDArray[np.float_]") -> float: + def reduce_func(chunks: NDArray[np.float_]) -> float: return np.sum(chunks).item() map_reduce_job = MapReduceJob( diff --git a/tests/utils/test_numeric.py b/tests/utils/test_numeric.py index e6101defb..632290cdb 100644 --- a/tests/utils/test_numeric.py +++ b/tests/utils/test_numeric.py @@ -1,5 +1,6 @@ import numpy as np import pytest +from numpy._typing import NDArray from pydvl.utils.numeric import ( powerset, @@ -8,6 +9,7 @@ random_subset_of_size, running_moments, ) +from pydvl.utils.types import Seed def test_powerset(): @@ -68,6 +70,57 @@ def test_random_powerset(n, max_subsets): ) +@pytest.mark.parametrize("n, max_subsets", [(10, 2**10)]) +def test_random_powerset_reproducible(n, max_subsets, seed): + """ + Test that the same seeds produce the same results, and different seeds produce + different results for method :func:`random_powerset`. + """ + n_collisions = _count_random_powerset_generator_collisions( + n, max_subsets, seed, seed + ) + assert n_collisions == max_subsets + + +@pytest.mark.parametrize("n, max_subsets", [(10, 2**10)]) +def test_random_powerset_stochastic(n, max_subsets, seed, seed_alt, collision_tol): + """ + Test that the same seeds produce the same results, and different seeds produce + different results for method :func:`random_powerset`. + """ + n_collisions = _count_random_powerset_generator_collisions( + n, max_subsets, seed, seed_alt + ) + assert n_collisions / max_subsets < collision_tol + + +def _count_random_powerset_generator_collisions( + n: int, max_subsets: int, seed: Seed, seed_alt: Seed +): + """ + Count the number of collisions between two generators of random subsets of a set + with `n` elements, each generating `max_subsets` subsets, using two different seeds. + + Args: + n: number of elements in the set. + max_subsets: number of subsets to generate. + seed: Seed for the first generator. + seed_alt: Seed for the second generator. + + Returns: + Number of collisions between the two generators. + """ + s = np.arange(n) + parallel_subset_generators = zip( + random_powerset(s, n_samples=max_subsets, seed=seed), + random_powerset(s, n_samples=max_subsets, seed=seed_alt), + ) + n_collisions = sum( + map(lambda t: set(t[0]) == set(t[1]), parallel_subset_generators) + ) + return n_collisions + + @pytest.mark.parametrize( "n, size, exception", [(0, 0, None), (0, 1, ValueError), (10, 0, None), (10, 3, None), (1000, 40, None)], @@ -83,6 +136,36 @@ def test_random_subset_of_size(n, size, exception): assert np.all([x in s for x in ss]) +@pytest.mark.parametrize( + "n, size", + [(10, 3), (1000, 40)], +) +def test_random_subset_of_size_stochastic(n, size, seed, seed_alt): + """ + Test that the same seeds produce the same results, and different seeds produce + different results for method :func:`random_subset_of_size`. + """ + s = np.arange(n) + subset_1 = random_subset_of_size(s, size=size, seed=seed) + subset_2 = random_subset_of_size(s, size=size, seed=seed_alt) + assert set(subset_1) != set(subset_2) + + +@pytest.mark.parametrize( + "n, size", + [(10, 3), (1000, 40)], +) +def test_random_subset_of_size_stochastic(n, size, seed): + """ + Test that the same seeds produce the same results, and different seeds produce + different results for method :func:`random_subset_of_size`. + """ + s = np.arange(n) + subset_1 = random_subset_of_size(s, size=size, seed=seed) + subset_2 = random_subset_of_size(s, size=size, seed=seed) + assert set(subset_1) == set(subset_2) + + @pytest.mark.parametrize( "n, cond, exception", [ @@ -109,6 +192,34 @@ def test_random_matrix_with_condition_number(n, cond, exception): pytest.fail("Matrix is not positive definite") +@pytest.mark.parametrize( + "n, cond", + [ + (2, 10), + (7, 23), + (10, 2), + ], +) +def test_random_matrix_with_condition_number_reproducible(n, cond, seed): + mat_1 = random_matrix_with_condition_number(n, cond, seed=seed) + mat_2 = random_matrix_with_condition_number(n, cond, seed=seed) + assert np.all(mat_1 == mat_2) + + +@pytest.mark.parametrize( + "n, cond", + [ + (2, 10), + (7, 23), + (10, 2), + ], +) +def test_random_matrix_with_condition_number_stochastic(n, cond, seed, seed_alt): + mat_1 = random_matrix_with_condition_number(n, cond, seed=seed) + mat_2 = random_matrix_with_condition_number(n, cond, seed=seed_alt) + assert np.any(mat_1 != mat_2) + + def test_running_moments(): """Test that running moments are correct.""" n_samples, n_values = 15, 1000 diff --git a/tests/utils/test_parallel.py b/tests/utils/test_parallel.py index 2d0037abd..8ba145aa8 100644 --- a/tests/utils/test_parallel.py +++ b/tests/utils/test_parallel.py @@ -2,29 +2,25 @@ import os import time from functools import partial, reduce +from typing import List, Optional import numpy as np import pytest from pydvl.utils.parallel import MapReduceJob, init_parallel_backend -from pydvl.utils.parallel.backend import available_cpus, effective_n_jobs +from pydvl.utils.parallel.backend import effective_n_jobs from pydvl.utils.parallel.futures import init_executor -from pydvl.utils.parallel.map_reduce import _get_value +from pydvl.utils.types import Seed def test_effective_n_jobs(parallel_config, num_workers): parallel_backend = init_parallel_backend(parallel_config) - if parallel_config.backend == "sequential": - assert parallel_backend.effective_n_jobs(1) == 1 - assert parallel_backend.effective_n_jobs(4) == 1 - assert parallel_backend.effective_n_jobs(-1) == 1 + assert parallel_backend.effective_n_jobs(1) == 1 + assert parallel_backend.effective_n_jobs(4) == min(4, num_workers) + if parallel_config.address is None: + assert parallel_backend.effective_n_jobs(-1) == num_workers else: - assert parallel_backend.effective_n_jobs(1) == 1 - assert parallel_backend.effective_n_jobs(4) == 4 - if parallel_config.address is None: - assert parallel_backend.effective_n_jobs(-1) == num_workers - else: - assert parallel_backend.effective_n_jobs(-1) == num_workers + assert parallel_backend.effective_n_jobs(-1) == num_workers for n_jobs in [-1, 1, 2]: assert parallel_backend.effective_n_jobs(n_jobs) == effective_n_jobs( @@ -121,10 +117,9 @@ def test_map_reduce_job(map_reduce_job_and_parameters, indices, expected): (np.arange(10), 4, np.array_split(np.arange(10), 4)), ], ) -def test_chunkification(data, n_chunks, expected_chunks): - map_reduce_job = MapReduceJob([], map_func=lambda x: x) +def test_chunkification(parallel_config, data, n_chunks, expected_chunks): + map_reduce_job = MapReduceJob([], map_func=lambda x: x, config=parallel_config) chunks = list(map_reduce_job._chunkify(data, n_chunks)) - chunks = map_reduce_job.parallel_backend.get(chunks) for x, y in zip(chunks, expected_chunks): if not isinstance(x, np.ndarray): assert x == y @@ -132,41 +127,6 @@ def test_chunkification(data, n_chunks, expected_chunks): assert (x == y).all() -@pytest.mark.parametrize( - "max_parallel_tasks, n_finished, n_dispatched, expected_n_finished", - [ - (1, 3, 6, 5), - (3, 3, 3, 3), - (10, 1, 15, 5), - (20, 1, 3, 1), - ], -) -def test_backpressure( - max_parallel_tasks, n_finished, n_dispatched, expected_n_finished -): - def map_func(x): - import time - - time.sleep(1) - return x - - inputs_ = list(range(n_dispatched)) - - map_reduce_job = MapReduceJob( - inputs_, - map_func=map_func, - max_parallel_tasks=max_parallel_tasks, - timeout=10, - ) - - map_func = map_reduce_job._wrap_function(map_func) - jobs = [map_func(x) for x in inputs_] - n_finished = map_reduce_job._backpressure( - jobs, n_finished=n_finished, n_dispatched=n_dispatched - ) - assert n_finished == expected_n_finished - - def test_map_reduce_job_partial_map_and_reduce_func(parallel_config): def map_func(x, y): return x + y @@ -188,21 +148,34 @@ def reduce_func(x, y): @pytest.mark.parametrize( - "x, expected_x", + "seed_1, seed_2, op", [ - (None, None), - ([0, 1], [0, 1]), - (np.arange(3), np.arange(3)), + (None, None, operator.ne), + (None, 42, operator.ne), + (42, None, operator.ne), + (42, 42, operator.eq), ], ) -def test_map_reduce_get_value(x, expected_x, parallel_config): - assert np.all(_get_value(x) == expected_x) - parallel_backend = init_parallel_backend(parallel_config) - x_id = parallel_backend.put(x) - assert np.all(_get_value(x_id) == expected_x) +def test_map_reduce_seeding(parallel_config, seed_1, seed_2, op): + """Test that the same result is obtained when using the same seed. And that + different results are obtained when using different seeds. + """ + + map_reduce_job = MapReduceJob( + None, + map_func=_sum_of_random_integers, + reduce_func=np.mean, + config=parallel_config, + ) + result_1 = map_reduce_job(seed=seed_1) + result_2 = map_reduce_job(seed=seed_2) + assert op(result_1, result_2) def test_wrap_function(parallel_config, num_workers): + if parallel_config.backend != "ray": + pytest.skip("Only makes sense for ray") + def fun(x, **kwargs): return dict(x=x * x, **kwargs) @@ -215,15 +188,14 @@ def fun(x, **kwargs): assert ret["x"] == 4 assert len(ret) == 1 # Ensure that kwargs are not passed to the function - if parallel_config.backend != "sequential": - # Test that the function is executed in different processes - def get_pid(): - time.sleep(2) # FIXME: waiting less means fewer processes are used?! - return os.getpid() + # Test that the function is executed in different processes + def get_pid(): + time.sleep(2) # FIXME: waiting less means fewer processes are used?! + return os.getpid() - wrapped_func = parallel_backend.wrap(get_pid, num_cpus=1) - pids = parallel_backend.get([wrapped_func() for _ in range(num_workers)]) - assert len(set(pids)) == num_workers + wrapped_func = parallel_backend.wrap(get_pid, num_cpus=1) + pids = parallel_backend.get([wrapped_func() for _ in range(num_workers)]) + assert len(set(pids)) == num_workers def test_futures_executor_submit(parallel_config): @@ -255,3 +227,40 @@ def func(_): total_time = end_time - start_time # We expect the time difference to be > 3 / num_workers, but has to be at least 1 assert total_time > max(1.0, 3 / num_workers) + + +def test_future_cancellation(parallel_config): + if parallel_config.backend != "ray": + pytest.skip("Currently this test only works with Ray") + + from pydvl.utils.parallel import CancellationPolicy + + with init_executor( + config=parallel_config, cancel_futures=CancellationPolicy.NONE + ) as executor: + future = executor.submit(lambda x: x + 1, 1) + + assert future.result() == 2 + + from ray.exceptions import TaskCancelledError + + with init_executor( + config=parallel_config, cancel_futures=CancellationPolicy.ALL + ) as executor: + start = time.monotonic() + future = executor.submit(lambda t: time.sleep(t), 5) + + assert future._state == "FINISHED" + + with pytest.raises(TaskCancelledError): + future.result() + + assert time.monotonic() - start < 1 + + +# Helper functions for tests :func:`test_map_reduce_reproducible` and +# :func:`test_map_reduce_stochastic`. +def _sum_of_random_integers(x: None, seed: Optional[Seed] = None): + rng = np.random.default_rng(seed) + values = rng.integers(0, rng.integers(10, 100), 10) + return np.sum(values) diff --git a/tests/utils/test_status.py b/tests/utils/test_status.py index 067b92eb8..4c8cd1ec9 100644 --- a/tests/utils/test_status.py +++ b/tests/utils/test_status.py @@ -48,10 +48,10 @@ def test_and_status(): def test_not_status(): - """The result of bitwise negation of a Status is ``Failed`` - if the status is ``Converged``, or ``Converged`` otherwise: + """The result of bitwise negation of a Status is `Failed` + if the status is `Converged`, or `Converged` otherwise: - ``~P == C, ~C == F, ~F == C`` + `~P == C, ~C == F, ~F == C` """ assert ~Status.Pending == Status.Converged assert ~Status.Converged == Status.Failed diff --git a/tests/value/conftest.py b/tests/value/conftest.py index 2073415a2..d19256beb 100644 --- a/tests/value/conftest.py +++ b/tests/value/conftest.py @@ -1,8 +1,6 @@ import numpy as np import pytest -import ray from numpy.typing import NDArray -from ray.cluster_utils import Cluster from sklearn.linear_model import LinearRegression from sklearn.pipeline import make_pipeline from sklearn.preprocessing import PolynomialFeatures @@ -123,16 +121,6 @@ def linear_shapley(linear_dataset, scorer, n_jobs): return u, exact_values -@pytest.fixture(scope="module", params=["sequential", "ray-local", "ray-external"]) -def parallel_config(request): - if request.param == "sequential": - yield ParallelConfig(backend=request.param) - elif request.param == "ray-local": - yield ParallelConfig(backend="ray") - ray.shutdown() - elif request.param == "ray-external": - # Starts a head-node for the cluster. - cluster = Cluster(initialize_head=True, head_node_args={"num_cpus": 4}) - yield ParallelConfig(backend="ray", address=cluster.address) - ray.shutdown() - cluster.shutdown() +@pytest.fixture(scope="module") +def parallel_config(num_workers): + yield ParallelConfig(backend="joblib", n_cpus_local=num_workers, wait_timeout=0.1) diff --git a/tests/value/loo/test_loo.py b/tests/value/loo/test_loo.py index 2a5b74afd..04922a7a0 100644 --- a/tests/value/loo/test_loo.py +++ b/tests/value/loo/test_loo.py @@ -1,14 +1,14 @@ import pytest -from pydvl.value.loo import naive_loo +from pydvl.value.loo import compute_loo from .. import check_total_value, check_values @pytest.mark.parametrize("num_samples", [10, 100]) -def test_naive_loo(num_samples, analytic_loo): - """Compares the naive loo with analytic values in a dummy model""" +def test_loo(num_samples: int, n_jobs: int, parallel_config, analytic_loo): + """Compares LOO with analytic values in a dummy model""" u, exact_values = analytic_loo - values = naive_loo(u, progress=False) + values = compute_loo(u, n_jobs=n_jobs, config=parallel_config, progress=False) check_total_value(u, values, rtol=0.1) check_values(values, exact_values, rtol=0.1) diff --git a/tests/value/shapley/test_montecarlo.py b/tests/value/shapley/test_montecarlo.py index 0f92cde29..b7961cdb8 100644 --- a/tests/value/shapley/test_montecarlo.py +++ b/tests/value/shapley/test_montecarlo.py @@ -1,18 +1,29 @@ import logging +from copy import copy, deepcopy import numpy as np import pytest from sklearn.linear_model import LinearRegression -from pydvl.utils import GroupedDataset, MemcachedConfig, Status, Utility +from pydvl.utils import ( + Dataset, + GroupedDataset, + MemcachedConfig, + ParallelConfig, + Status, + Utility, +) from pydvl.utils.numeric import num_samples_permutation_hoeffding from pydvl.utils.score import Scorer, squashed_r2 +from pydvl.utils.types import Seed from pydvl.value import compute_shapley_values from pydvl.value.shapley import ShapleyMode from pydvl.value.shapley.naive import combinatorial_exact_shapley from pydvl.value.stopping import MaxChecks, MaxUpdates from .. import check_rank_correlation, check_total_value, check_values +from ..conftest import polynomial_dataset +from ..utils import call_fn_multiple_seeds log = logging.getLogger(__name__) @@ -62,6 +73,74 @@ def test_analytic_montecarlo_shapley( check_values(values, exact_values, rtol=rtol, atol=atol) +test_cases_montecarlo_shapley_reproducible_stochastic = [ + # TODO Add once issue #416 is closed. + # (12, ShapleyMode.PermutationMontecarlo, {"done": MaxChecks(1)}), + ( + 12, + ShapleyMode.CombinatorialMontecarlo, + {"done": MaxChecks(4)}, + ), + (12, ShapleyMode.Owen, dict(n_samples=4, max_q=200)), + (12, ShapleyMode.OwenAntithetic, dict(n_samples=4, max_q=200)), + (4, ShapleyMode.GroupTesting, dict(n_samples=21, epsilon=0.2, delta=0.01)), +] + + +@pytest.mark.parametrize( + "num_samples, fun, kwargs", test_cases_montecarlo_shapley_reproducible_stochastic +) +@pytest.mark.parametrize("num_points, num_features", [(12, 3)]) +def test_montecarlo_shapley_housing_dataset_reproducible( + num_samples: int, + housing_dataset: Dataset, + parallel_config: ParallelConfig, + n_jobs: int, + fun: ShapleyMode, + kwargs: dict, + seed: Seed, +): + values_1, values_2 = call_fn_multiple_seeds( + compute_shapley_values, + Utility(LinearRegression(), data=housing_dataset, scorer="r2"), + mode=fun, + n_jobs=n_jobs, + config=parallel_config, + progress=False, + seeds=(seed, seed), + **deepcopy(kwargs) + ) + np.testing.assert_equal(values_1.values, values_2.values) + + +@pytest.mark.parametrize( + "num_samples, fun, kwargs", test_cases_montecarlo_shapley_reproducible_stochastic +) +@pytest.mark.parametrize("num_points, num_features", [(12, 4)]) +def test_montecarlo_shapley_housing_dataset_stochastic( + num_samples: int, + housing_dataset: Dataset, + parallel_config: ParallelConfig, + n_jobs: int, + fun: ShapleyMode, + kwargs: dict, + seed: Seed, + seed_alt: Seed, +): + values_1, values_2 = call_fn_multiple_seeds( + compute_shapley_values, + Utility(LinearRegression(), data=housing_dataset, scorer="r2"), + mode=fun, + n_jobs=n_jobs, + config=parallel_config, + progress=False, + seeds=(seed, seed_alt), + **deepcopy(kwargs) + ) + with pytest.raises(AssertionError): + np.testing.assert_equal(values_1.values, values_2.values) + + @pytest.mark.parametrize("num_samples, delta, eps", [(8, 0.1, 0.1)]) @pytest.mark.parametrize( "fun", [ShapleyMode.PermutationMontecarlo, ShapleyMode.CombinatorialMontecarlo] diff --git a/tests/value/test_sampler.py b/tests/value/test_sampler.py index 8affc108f..5fbf8f5c0 100644 --- a/tests/value/test_sampler.py +++ b/tests/value/test_sampler.py @@ -1,15 +1,18 @@ from itertools import takewhile +from typing import Iterator, List, Type import numpy as np import pytest from pydvl.utils import powerset +from pydvl.utils.types import Seed from pydvl.value.sampler import ( AntitheticSampler, - DeterministicCombinatorialSampler, DeterministicPermutationSampler, + DeterministicUniformSampler, PermutationSampler, RandomHierarchicalSampler, + StochasticSampler, UniformSampler, ) @@ -17,8 +20,9 @@ @pytest.mark.parametrize( "sampler_class", [ - DeterministicCombinatorialSampler, + DeterministicUniformSampler, UniformSampler, + DeterministicPermutationSampler, PermutationSampler, AntitheticSampler, RandomHierarchicalSampler, @@ -38,7 +42,45 @@ def test_proper(sampler_class, indices): @pytest.mark.parametrize( "sampler_class", [ - DeterministicCombinatorialSampler, + UniformSampler, + PermutationSampler, + AntitheticSampler, + RandomHierarchicalSampler, + ], +) +@pytest.mark.parametrize("indices", [(), (list(range(100)))]) +def test_proper_reproducible(sampler_class, indices, seed): + """Test that the sampler is reproducible.""" + samples_1 = _create_seeded_sample_iter(sampler_class, indices, seed) + samples_2 = _create_seeded_sample_iter(sampler_class, indices, seed) + + for (_, subset_1), (_, subset_2) in zip(samples_1, samples_2): + assert set(subset_1) == set(subset_2) + + +@pytest.mark.parametrize( + "sampler_class", + [ + UniformSampler, + PermutationSampler, + AntitheticSampler, + RandomHierarchicalSampler, + ], +) +@pytest.mark.parametrize("indices", [(), (list(range(100)))]) +def test_proper_stochastic(sampler_class, indices, seed, seed_alt): + """Test that the sampler is reproducible.""" + samples_1 = _create_seeded_sample_iter(sampler_class, indices, seed) + samples_2 = _create_seeded_sample_iter(sampler_class, indices, seed_alt) + + for (_, subset_1), (_, subset_2) in zip(samples_1, samples_2): + assert len(subset_1) == 0 or set(subset_1) != set(subset_2) + + +@pytest.mark.parametrize( + "sampler_class", + [ + DeterministicUniformSampler, UniformSampler, # PermutationSampler, AntitheticSampler, @@ -70,3 +112,14 @@ def test_chunkify_permutation(sampler_class): # Missing tests for: # - Correct distribution of subsets for random samplers + + +def _create_seeded_sample_iter( + sampler_t: Type[StochasticSampler], + indices: List, + seed: Seed, +) -> Iterator: + max_iterations = len(indices) + sampler = sampler_t(indices=np.array(indices), seed=seed) + sample_stream = takewhile(lambda _: sampler.n_samples < max_iterations, sampler) + return sample_stream diff --git a/tests/value/test_semivalues.py b/tests/value/test_semivalues.py index 17063c6c7..ec937d028 100644 --- a/tests/value/test_semivalues.py +++ b/tests/value/test_semivalues.py @@ -1,29 +1,26 @@ import math -from typing import Dict, Type +from typing import Type import numpy as np import pytest -from pydvl.utils import Utility +from pydvl.utils import ParallelConfig from pydvl.value.sampler import ( AntitheticSampler, - DeterministicCombinatorialSampler, DeterministicPermutationSampler, + DeterministicUniformSampler, PermutationSampler, PowersetSampler, UniformSampler, ) from pydvl.value.semivalues import ( - SemiValueMode, SVCoefficient, - _semivalues, banzhaf_coefficient, beta_coefficient, - compute_semivalues, - semivalues, + compute_generic_semivalues, shapley_coefficient, ) -from pydvl.value.stopping import AbsoluteStandardError, MaxUpdates, StoppingCriterion +from pydvl.value.stopping import AbsoluteStandardError, MaxUpdates from . import check_values @@ -32,67 +29,63 @@ @pytest.mark.parametrize( "sampler", [ - DeterministicCombinatorialSampler, + DeterministicUniformSampler, DeterministicPermutationSampler, UniformSampler, PermutationSampler, AntitheticSampler, ], ) -@pytest.mark.parametrize( - "coefficient, criterion", - [ - (shapley_coefficient, AbsoluteStandardError(0.02, 1.0) | MaxUpdates(2**10)), - ( - beta_coefficient(1, 1), - AbsoluteStandardError(0.02, 1.0) | MaxUpdates(2**10), - ), - ], -) -@pytest.mark.parametrize("method", [_semivalues, semivalues]) +@pytest.mark.parametrize("coefficient", [shapley_coefficient, beta_coefficient(1, 1)]) def test_shapley( num_samples: int, analytic_shapley, sampler: Type[PowersetSampler], coefficient: SVCoefficient, - criterion: StoppingCriterion, - method, + n_jobs: int, + parallel_config: ParallelConfig, ): u, exact_values = analytic_shapley - kwargs = dict() - if method == semivalues: - kwargs.update(dict(n_jobs=2)) - values = method(sampler(u.data.indices), u, coefficient, criterion, **kwargs) - check_values(values, exact_values, rtol=0.15) + criterion = AbsoluteStandardError(0.02, 1.0) | MaxUpdates(2 ** (num_samples * 2)) + values = compute_generic_semivalues( + sampler(u.data.indices), + u, + coefficient, + criterion, + n_jobs=n_jobs, + config=parallel_config, + ) + check_values(values, exact_values, rtol=0.2) @pytest.mark.parametrize("num_samples", [5]) @pytest.mark.parametrize( "sampler", [ - DeterministicCombinatorialSampler, + DeterministicUniformSampler, DeterministicPermutationSampler, UniformSampler, PermutationSampler, AntitheticSampler, ], ) -@pytest.mark.parametrize("method", [_semivalues, semivalues]) def test_banzhaf( - num_samples: int, analytic_banzhaf, sampler: Type[PowersetSampler], method + num_samples: int, + analytic_banzhaf, + sampler: Type[PowersetSampler], + n_jobs: int, + parallel_config: ParallelConfig, ): u, exact_values = analytic_banzhaf - kwargs = dict() - if method == semivalues: - kwargs.update(dict(n_jobs=2)) - values = method( + values = compute_generic_semivalues( sampler(u.data.indices), u, banzhaf_coefficient, - AbsoluteStandardError(0.02, 1.0) | MaxUpdates(300), - **kwargs, + AbsoluteStandardError(0.04, 1.0) | MaxUpdates(2 ** (num_samples * 2)), + n_jobs=n_jobs, + config=parallel_config, ) - check_values(values, exact_values, rtol=0.15) + check_values(values, exact_values, rtol=0.2) @pytest.mark.parametrize("n", [10, 100]) @@ -116,27 +109,3 @@ def test_coefficients(n: int, coefficient: SVCoefficient): """ s = [math.comb(n - 1, j - 1) * coefficient(n, j - 1) for j in range(1, n + 1)] assert np.isclose(1, np.sum(s)) - - -@pytest.mark.parametrize("num_samples", [5]) -@pytest.mark.parametrize( - "semi_value_mode,semi_value_mode_kwargs", - [ - (SemiValueMode.Shapley, dict()), - (SemiValueMode.BetaShapley, {"alpha": 1, "beta": 16}), - (SemiValueMode.Banzhaf, dict()), - ], - ids=["shapley", "beta-shapley", "banzhaf"], -) -def test_dispatch_compute_semi_values( - dummy_utility: Utility, - semi_value_mode: SemiValueMode, - semi_value_mode_kwargs: Dict[str, int], -): - values = compute_semivalues( - u=dummy_utility, - mode=semi_value_mode, - done=MaxUpdates(1), - **semi_value_mode_kwargs, - progress=True, - ) diff --git a/tests/value/utils.py b/tests/value/utils.py new file mode 100644 index 000000000..7c38e344f --- /dev/null +++ b/tests/value/utils.py @@ -0,0 +1,25 @@ +from __future__ import annotations + +from copy import deepcopy +from typing import Callable, Tuple + +from pydvl.utils.types import Seed + + +def call_fn_multiple_seeds( + fn: Callable, *args, seeds: Tuple[Seed, ...], **kwargs +) -> Tuple: + """ + Execute a function multiple times with different seeds. It copies the arguments + and keyword arguments before passing them to the function. + + Args: + fn: The function to execute. + args: The arguments to pass to the function. + seeds: The seeds to use. + kwargs: The keyword arguments to pass to the function. + + Returns: + A tuple of the results of the function. + """ + return tuple(fn(*deepcopy(args), **deepcopy(kwargs), seed=seed) for seed in seeds) diff --git a/tox.ini b/tox.ini index 3433fe113..b01f1dfb5 100644 --- a/tox.ini +++ b/tox.ini @@ -1,15 +1,10 @@ [tox] -envlist = base, report +envlist = base, report, docs wheel = true [testenv] deps = - pytest - pytest-cov - pytest-lazy-fixture - pytest-timeout - pytest-mock - pytest-docker==0.12.0 + -r requirements-dev.txt -r requirements.txt setenv = COVERAGE_FILE = {env:COVERAGE_FILE:{toxinidir}/.coverage.{envname}} @@ -28,13 +23,16 @@ extras = [testenv:notebooks] description = Tests notebooks +setenv = + PYTHONPATH={toxinidir}/notebooks commands = pytest notebooks/ --cov "{envsitepackagesdir}/pydvl" deps = {[testenv]deps} jupyter==1.0.0 - nbconvert==6.4.5 + nbconvert datasets==2.6.1 + torchvision==0.14.1 extras = influence passenv = @@ -71,6 +69,7 @@ whitelist_externals = bash [testenv:type-checking] +basepython = python3.8 skip_install = true setenv = MYPY_FORCE_COLOR=1 @@ -83,71 +82,3 @@ deps = -r requirements.txt commands = mypy {posargs:src/} - -[testenv:docs] -; NOTE: we don't use pytest for running the doctest, even though with pytest no -; imports have to be written in them. The reason is that we want to be running -; doctest during the docs build (which might happen on a remote machine, like -; read_the_docs does) with possibly fewer external dependencies and use sphinx' -; ability to automock the missing ones. -commands = - python build_scripts/update_docs.py --clean - sphinx-build -v --color -W -b html -d "{envtmpdir}/doctrees" docs "docs/_build/html" - sphinx-build -v --color -b doctest -d "{envtmpdir}/doctrees" docs "docs/_build/doctest" -deps = - sphinx==5.3.0 - sphinxcontrib-websupport==1.2.4 - sphinx-design - sphinx-math-dollar - sphinx-hoverxref - sphinxcontrib-bibtex - nbsphinx - furo - ipython -extras = - influence - -[testenv:docs-dev] -description = This is a development environment for the docs that supports hot-reloading of the docs -commands = - python build_scripts/update_docs.py --clean - sphinx-autobuild -W -b html -d "{envtmpdir}/doctrees" docs "docs/_build/html" --ignore "*.ipynb" -deps = - {[testenv:docs]deps} - sphinx-autobuild -extras = - influence - -[testenv:publish-test-package] -description = Publish package to TestPyPI -skip_install = true -passenv = - TWINE_* -deps = - wheel - twine -commands = - python setup.py sdist bdist_wheel - twine upload -r testpypi --verbose --non-interactive dist/* - -[testenv:publish-release-package] -description = Publish package to PyPI -skip_install = true -passenv = - TWINE_* -deps = - {[testenv:publish-test-package]deps} -commands = - python setup.py sdist bdist_wheel - twine upload --verbose --non-interactive dist/* - - -[testenv:bump-dev-version] -description = Bumps the build part of the version using the given number -skip_install = true -passenv = - BUILD_NUMBER -deps = - bump2version -commands = - bump2version --no-tag --no-commit --verbose --serialize '\{major\}.\{minor\}.\{patch\}.\{release\}\{$BUILD_NUMBER\}' boguspart